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=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 27588 invoked from network); 24 Jul 2021 16:41:36 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 24 Jul 2021 16:41:36 -0000 Content-Type: multipart/mixed; boundary="===============0414718441993866399==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_tbb=3A_update_to_2021=2E3=2E0?= To: ml@inbox.vuxu.org From: Logarithmus Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 24 Jul 2021 18:41:35 +0200 List-Id: Message-ID: <20210724164135.Q0H2_xubZOqfZmvbNvTTeKbcFW3pKH35bRuoBnrk3zc@z> GitHub notification mails are now in MIME to allow UTF8. --===============0414718441993866399== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgTG9nYXJpdGhtdXMgYWdhaW5zdCBt YXN0ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29t L0xvZ2FyaXRobXVzL3ZvaWQtcGFja2FnZXMgdGJiLTIwMjEKaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzMyMTY2Cgp0YmI6IHVwZGF0ZSB0byAyMDIxLjMu MApGb2xsb3ctdXAgb2YgaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdl cy9wdWxsLzI3NzQ2LCBAdGh5cG9uICYgQG9sYWZtZXJzbWFubiBtaWdodCBiZSBpbnRlcmVzdGVk Lg0KKipUT0RPKiogZml4IHJldmVyc2UgZGVwZW5kZW5jaWVzOg0KLSBbIF0gT3BlblN1YmRpdjog dXBkYXRlIHRvIDMuNC40Lg0KLSBbIF0gUHJ1c2FTbGljZXI6IHVwZGF0ZSB0byAyLjMuMy4NCi0g WyBdIGxlbmRlcjogdXBkYXRlIHRvIDIuOTMuMS4NCi0gWyBdIGVtYnJlZTogdXBkYXRlIHRvIDMu MTMuMC4NCi0gWyBdIG9wZW5pbWFnZWlvOiB1cGRhdGUgdG8gMi4yLjE2LjAuDQotIFsgXSBvcGVu aW1hZ2VkZW5vaXNlOiB1cGRhdGUgdG8gMS40LjEuDQotIFsgXSBvcGVudmRiOiB1cGRhdGUgdG8g OC4xLjAuDQotIFsgXSBwYXJhdmlldzogdXBkYXRlIHRvIDUuOS4xLg0KLSBbIF0gb2NjdDogcmV2 YnVtcCBkdWUgdG8gdGJiIHVwZGF0ZQ0KDQojIyMjIEhhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHBy b3Bvc2VkIGNoYW5nZXMgYmVlbiB0ZXN0ZWQ/DQotIFt4XSBJIHVzZSB0aGUgcGFja2FnZXMgYWZm ZWN0ZWQgYnkgdGhlIHByb3Bvc2VkIGNoYW5nZXMgb24gYSByZWd1bGFyIGJhc2lzIGFuZCBjb25m aXJtIHRoaXMgUFIgd29ya3MgZm9yIG1lDQoKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zMjE2Ni5wYXRjaCBpcyBhdHRh Y2hlZA== --===============0414718441993866399== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-tbb-2021-32166.patch" RnJvbSAwY2Y3NTY5ZDM4YmYyZThhMzJlNzJiNWNlN2E4MTcyZmNmM2ExMjU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11 cy5kZXY+CkRhdGU6IFNhdCwgMTcgSnVsIDIwMjEgMjM6NTc6NTIgKzAzMDAKU3ViamVjdDogW1BB VENIIDAxLzExXSBod2xvYzogYWRkIGxpYnBjaWFjY2Vzcy1kZXZlbCBtYWtlIGRlcGVuZGVuY3kK Ci0tLQogc3JjcGtncy9od2xvYy90ZW1wbGF0ZSB8IDE0ICsrKysrKysrKysrLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2h3bG9jL3RlbXBsYXRlIGIvc3JjcGtncy9od2xvYy90ZW1wbGF0ZQppbmRleCA4MThk YjI2OWNlYmIuLjZjNzlhOTUxM2ExYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9od2xvYy90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2h3bG9jL3RlbXBsYXRlCkBAIC0xLDEwICsxLDEyIEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdod2xvYycKIHBrZ25hbWU9aHdsb2MKIHZlcnNpb249Mi41LjAKLXJldmlz aW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVw ZW5kcz0icGtnLWNvbmZpZyIKLW1ha2VkZXBlbmRzPSJjYWlyby1kZXZlbCBuY3Vyc2VzLWRldmVs IGxpYnhtbDItZGV2ZWwgZXVkZXYtbGlidWRldi1kZXZlbCIKK21ha2VkZXBlbmRzPSJjYWlyby1k ZXZlbCBuY3Vyc2VzLWRldmVsIGxpYnhtbDItZGV2ZWwgbGlicGNpYWNjZXNzLWRldmVsIGV1ZGV2 LWxpYnVkZXYtZGV2ZWwiCitjaGVja2RlcGVuZHM9InRhciIKK21ha2VfY2hlY2tfYXJncz0iVkVS Qk9TRT0xIgogc2hvcnRfZGVzYz0iUG9ydGFibGUgYWJzdHJhY3Rpb24gb2YgaGllcmFyY2hpY2Fs IGhhcmR3YXJlIGFyY2hpdGVjdHVyZXMiCiBtYWludGFpbmVyPSJMZWFoIE5ldWtpcmNoZW4gPGxl YWhAdnV4dS5vcmc+IgogbGljZW5zZT0iQlNELTMtQ2xhdXNlIgpAQCAtMTYsNiArMTgsMTIgQEAg Y2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJaTY4Nip8eDg2XzY0KnxwcGM2NCopIG1h a2VkZXBlbmRzKz0iIGxpYm51bWEtZGV2ZWwiOzsKIGVzYWMKIAorcG9zdF9leHRyYWN0KCkgewor CSMgc3lzY2FsbCAyNzkgKG1vdmVfcGFnZXMpIGlzIHVuYXZhaWxhYmxlIGluc2lkZSBHaXRodWIg QWN0aW9ucycgRG9ja2VyIGNvbnRhaW5lciwKKwkjIHRoYXQncyB3aHkgd2Ugc2tpcCB0aGlzIHRl c3QKKwlybSB0ZXN0cy9od2xvYy9od2xvY19nZXRfYXJlYV9tZW1sb2NhdGlvbi5jCit9CisKIHBv c3RfaW5zdGFsbCgpIHsKIAlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUvZG9jCiB9CkBAIC0z MSw3ICszOSw3IEBAIGxpYmh3bG9jX3BhY2thZ2UoKSB7CiAKIGxpYmh3bG9jLWRldmVsX3BhY2th Z2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgotCWRlcGVuZHM9Imxp Ymh3bG9jPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCWRlcGVuZHM9IiR7bWFrZWRlcGVuZHN9 IGxpYmh3bG9jPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCXBrZ19pbnN0YWxsKCkgewogCQl2 bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjMKCkZyb20gYjViYTQ5 ZTQ5YjFiMWViNmQyY2NlYjk5ZDk2NTY1OGM1OWJiNDQwMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogQXJ0dXIgU2luaWxhIDxmcmVlc29mdHdhcmVAbG9nYXJpdGhtdXMuZGV2PgpEYXRl OiBNb24sIDUgSnVsIDIwMjEgMDI6NTA6MjYgKzAzMDAKU3ViamVjdDogW1BBVENIIDAyLzExXSB0 YmI6IHVwZGF0ZSB0byAyMDIxLjMuMC4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIHNyY3BrZ3MvdGJiL3BhdGNoZXMvMDAtaHdsb2Mt Mi41LnBhdGNoICAgICAgIHwgMzY3ICsrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvdGJiL3Bh dGNoZXMvMDEtaHdsb2MtcGtnY29uZmlnLnBhdGNoIHwgIDUyICsrKwogc3JjcGtncy90YmIvcGF0 Y2hlcy9ob3N0bmFtZS11c2FnZS5wYXRjaCAgICAgfCAgMTEgLQogc3JjcGtncy90YmIvcGF0Y2hl cy9tdXNsLnBhdGNoICAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyY3BrZ3MvdGJiL3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYzICstLS0KIDYgZmlsZXMgY2hhbmdlZCwgNDMz IGluc2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvdGJiL3BhdGNoZXMvMDAtaHdsb2MtMi41LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy90YmIvcGF0Y2hlcy8wMS1od2xvYy1wa2djb25maWcucGF0Y2gKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL3RiYi9wYXRjaGVzL2hvc3RuYW1lLXVzYWdlLnBhdGNoCgpkaWZmIC0tZ2l0 IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggYTdhZmJmMmE1NmY3Li42Yjdj YTVmYmMyNDkgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpA QCAtMjM3NiwxMiArMjM3NiwxMCBAQCBsaWJhbnRoeS11bmljb2RlLnNvLjAgbGliYW50aHktdW5p Y29kZS0xLjAuMC4yMDIwMTEwOV8xCiBsaWJhbnRoeWRpYy11bmljb2RlLnNvLjAgbGliYW50aHkt dW5pY29kZS0xLjAuMC4yMDIwMTEwOV8xCiBsaWJhbnRoeWlucHV0LXVuaWNvZGUuc28uMCBsaWJh bnRoeS11bmljb2RlLTEuMC4wLjIwMjAxMTA5XzEKIGxpYmFudGh5Z29iamVjdC0xLjAuc28uNSBp YnVzLWFudGh5LTEuNS42XzEKLWxpYnRiYm1hbGxvY19wcm94eV9kZWJ1Zy5zby4yIHRiYi00LjNf MQogbGlidGJibWFsbG9jX3Byb3h5LnNvLjIgdGJiLTQuM18xCiBsaWJ0YmJtYWxsb2Muc28uMiB0 YmItNC4zXzEKLWxpYnRiYl9kZWJ1Zy5zby4yIHRiYi00LjNfMQotbGlidGJiLnNvLjIgdGJiLTQu M18xCi1saWJ0YmJtYWxsb2NfZGVidWcuc28uMiB0YmItNC4zXzEKK2xpYnRiYi5zby4xMiB0YmIt MjAyMS4zLjBfMQorbGlidGJiYmluZF8yXzUuc28uMyB0YmItMjAyMS4zLjBfMQogbGliZW1icmVl LnNvLjIgZW1icmVlLTIuNS4xXzEKIGxpYmd0a2ltYWdldmlldy5zby4wIGd0a2ltYWdldmlldy0x LjYuNF8xCiBsaWJnb29jYW52YXMtMi4wLnNvLjkgZ29vY2FudmFzLTIuMC40XzEKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvdGJiL3BhdGNoZXMvMDAtaHdsb2MtMi41LnBhdGNoIGIvc3JjcGtncy90YmIv cGF0Y2hlcy8wMC1od2xvYy0yLjUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi45YzRjOTI4NWM3MWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3RiYi9w YXRjaGVzLzAwLWh3bG9jLTIuNS5wYXRjaApAQCAtMCwwICsxLDM2NyBAQAorQWRqdXN0ZWQgYnkg QXJ0dXIgU2luaWxhIDxmcmVlc29mdHdhcmVAbG9nYXJpdGhtdXMuZGV2PgorCitGcm9tIGU5NmRi ZjRiNDhlNjg5YWI4MTBiMDQyOGQwODU4YTZhYmMyYzgzYmQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBJdmFuIEtvY2hpbiA8aXYua29jaGluQGdtYWlsLmNvbT4KK0RhdGU6IFRodSwg MSBKdWwgMjAyMSAxNTowNzozOSArMDMwMAorU3ViamVjdDogW1BBVENIXSBVcGdyYWRlIGZyb20g SFdMT0MgMi40IHRvIEhXTE9DIDIuNSAoIzQ0OCkKKworKiBVcGdyYWRlIGZyb20gSFdMT0MgMi40 IHRvIEhXTE9DIDIuNQorKiBJbnRyb2R1Y2UgdGJiYmluZF8yXzUgbGlicmFyeQorKiBSZW1vdmUg dGJiYmluZF8yXzQgbGlicmFyeQorKiBVc2UgdGhlIEhXTE9DX1RPUE9MT0dZX0ZMQUdfUkVTVFJJ Q1RfVE9fQ1BVQklORElORyB0b3BvbG9neSBmbGFnIChpbnRyb2R1Y2VzIGFzIGEgcGFydCBvZiBI V0xPQyAyLjUpIHRvIHJlc3RyaWN0IHRvcG9sb2d5IGRpc2NvdmVyaW5nIHRvIHByb2Nlc3MgYmlu ZGluZworKiBGaXggdGVzdGluZyBvbiBMaW51eAorKiBBcHBseSByZXZpZXcgY29tbWVudHMKKyog SW1wcm92ZSB3b3JkaW5nOiB2YXJpYWJsZSAtPiBzdWJzdHJpbmcKKyogVXNlIHJpZ2h0IHRiYmJp bmQgdmVyc2lvbiBmb3IgaW5jb21wYXRpYmxlIGh3bG9jcyB0ZXN0CisqIFJld29yayBvcHRpb24g c2VtYW50aWMKKyogVXBkYXRlIFJFQURNRS5tZCBmb3IgQ01ha2UKKyogUmV3b3JrIHJlYWRtZQor KiBVcGRhdGUgY21ha2UvUkVBRE1FLm1kCisKK1NpZ25lZC1vZmYtYnk6IEtvY2hpbiwgSXZhbiA8 a29jaGluLml2YW5AaW50ZWwuY29tPgorCitDby1hdXRob3JlZC1ieTogQWxla3NlaSBGZWRvdG92 IDxhbGVrc2VpLmZlZG90b3ZAaW50ZWwuY29tPgorLS0tCisgQ01ha2VMaXN0cy50eHQgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMyArKy0KKyBjbWFrZS9SRUFETUUubWQgICAgICAgICAgICAg ICAgICAgICAgICB8IDExICsrKysrLS0tCisgY21ha2UvaHdsb2NfZGV0ZWN0aW9uLmNtYWtlICAg ICAgICAgICAgfCAgOSArKysrLS0tCisgc3JjL3RiYi9nb3Zlcm5vci5jcHAgICAgICAgICAgICAg ICAgICAgfCAgNCArLS0KKyBzcmMvdGJiYmluZC9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICB8 ICAyICstCisgc3JjL3RiYmJpbmQvdGJiX2JpbmQuY3BwICAgICAgICAgICAgICAgfCAyMyArKysr KysrKysrKy0tLS0tCisgdGVzdC9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgfCAz MCArKysrKysrKysrLS0tLS0tLS0tLS0KKyB0ZXN0L2NvbW1vbi9jb21tb25fYXJlbmFfY29uc3Ry YWludHMuaCB8IDM3ICsrKysrKysrKysrKysrKysrKysrKystLS0tCisgOCBmaWxlcyBjaGFuZ2Vk LCA4MiBpbnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL0NNYWtl TGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKK2luZGV4IDM0YTIzZDQwMC4uMzAxODk5YWNhIDEw MDY0NAorLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrKyBiL0NNYWtlTGlzdHMudHh0CitAQCAtMTAw LDYgKzEwMCw3IEBAIG9wdGlvbihUQkJfTk9fQVBQQ09OVEFJTkVSICJBcHBseSAvQVBQQ09OVEFJ TkVSOk5PIChmb3IgdGVzdGluZyBiaW5hcmllcyBmb3IgV2luCisgb3B0aW9uKFRCQjRQWV9CVUlM RCAiRW5hYmxlIHRiYjRweSBidWlsZCIgT0ZGKQorIG9wdGlvbihUQkJfQ1BGICJFbmFibGUgcHJl dmlldyBmZWF0dXJlcyBvZiB0aGUgbGlicmFyeSIgT0ZGKQorIG9wdGlvbihUQkJfRklORF9QQUNL QUdFICJFbmFibGUgc2VhcmNoIGZvciBleHRlcm5hbCBvbmVUQkIgdXNpbmcgZmluZF9wYWNrYWdl IGluc3RlYWQgb2YgYnVpbGQgZnJvbSBzb3VyY2VzIiBPRkYpCisrb3B0aW9uKFRCQl9ESVNBQkxF X0hXTE9DX0FVVE9NQVRJQ19TRUFSQ0ggIkRpc2FibGUgSFdMT0MgYXV0b21hdGljIHNlYXJjaCBi eSBwa2ctY29uZmlnIHRvb2wiIE9GRikKKyAKKyBpZiAoTk9UIERFRklORUQgQlVJTERfU0hBUkVE X0xJQlMpCisgICAgIHNldChCVUlMRF9TSEFSRURfTElCUyBPTikKK0BAIC0xOTUsNyArMTk2LDcg QEAgZWxzZSgpCisgICAgICAgICBhZGRfc3ViZGlyZWN0b3J5KHNyYy90YmJtYWxsb2MpCisgICAg ICAgICBhZGRfc3ViZGlyZWN0b3J5KHNyYy90YmJtYWxsb2NfcHJveHkpCisgICAgICAgICBpZiAo QVBQTEUpCistICAgICAgICAgICAgbWVzc2FnZShTVEFUVVMgIlRCQkJpbmQgYnVpbGQgdGFyZ2V0 IGlzIGRpc2FibGVkIGR1ZSB0byB1bnN1cHBvcnRlZCBlbnZpcm9ubWVudCIpCisrICAgICAgICAg ICAgbWVzc2FnZShTVEFUVVMgIlRCQkJpbmQgYnVpbGQgdGFyZ2V0cyBhcmUgZGlzYWJsZWQgZHVl IHRvIHVuc3VwcG9ydGVkIGVudmlyb25tZW50IikKKyAgICAgICAgIGVsc2UoKQorICAgICAgICAg ICAgIGFkZF9zdWJkaXJlY3Rvcnkoc3JjL3RiYmJpbmQpCisgICAgICAgICBlbmRpZigpCitkaWZm IC0tZ2l0IGEvY21ha2UvUkVBRE1FLm1kIGIvY21ha2UvUkVBRE1FLm1kCitpbmRleCAzNmZjMzAz ZjkuLmI1OGMyZmY2YSAxMDA2NDQKKy0tLSBhL2NtYWtlL1JFQURNRS5tZAorKysrIGIvY21ha2Uv UkVBRE1FLm1kCitAQCAtMTMsNiArMTMsNyBAQCBUQkI0UFlfQlVJTEQ6Qk9PTCAtIEVuYWJsZSAg SW50ZWwoUikgb25lQVBJIFRocmVhZGluZyBCdWlsZGluZyBCbG9ja3MgKG9uZVRCQikgUAorIFRC Ql9DUEY6Qk9PTCAtIEVuYWJsZSBwcmV2aWV3IGZlYXR1cmVzIG9mIHRoZSBsaWJyYXJ5IChPRkYg YnkgZGVmYXVsdCkKKyBUQkJfSU5TVEFMTF9WQVJTOkJPT0wgLSBFbmFibGUgYXV0by1nZW5lcmF0 ZWQgdmFycyBpbnN0YWxsYXRpb24ocGFja2FnZXMgZ2VuZXJhdGVkIGJ5IGBjcGFja2AgYW5kIGBt YWtlIGluc3RhbGxgIHdpbGwgYWxzbyBpbmNsdWRlIHRoZSB2YXJzIHNjcmlwdCkoT0ZGIGJ5IGRl ZmF1bHQpCisgVEJCX1ZBTEdSSU5EX01FTUNIRUNLOkJPT0wgLSBFbmFibGUgc2NhbiBmb3IgbWVt b3J5IGxlYWtzIHVzaW5nIFZhbGdyaW5kIChPRkYgYnkgZGVmYXVsdCkKKytUQkJfRElTQUJMRV9I V0xPQ19BVVRPTUFUSUNfU0VBUkNIIC0gRGlzYWJsZSBIV0xPQyBhdXRvbWF0aWMgc2VhcmNoIGJ5 IHBrZy1jb25maWcgdG9vbCAoT0ZGIGJ5IGRlZmF1bHQpCisgYGBgCisgCisgIyMgQ29uZmlndXJl LCBidWlsZCBhbmQgdGVzdAorQEAgLTQyLDkgKzQzLDkgQEAgU29tZSB1c2VmdWwgb3B0aW9uczoK KyAKKyAjIyMjIFRCQkJpbmQgbGlicmFyeSBjb25maWd1cmF0aW9uCisgCistVGhlIFRCQmJpbmQg bGlicmFyeSBoYXMgdHdvIHZlcnNpb25zOiBgdGJiYmluZGAgYW5kIGB0YmJiaW5kXzJfMGAuIEVh Y2ggb2YgdGhlc2UgdmVyc2lvbnMgaXMgbGlua2VkIHdpdGggY29ycmVzcG9uZGluZyBIV0xPQyBs aWJyYXJ5IHZlcnNpb246IGB0YmJiaW5kYCBsaW5rcyB3aXRoIEhXTE9DIDEuMTEueCAsIGB0YmJi aW5kXzJfMGAgbGlua3Mgd2l0aCBIV0xPQyAyLnguCisrVGhlIFRCQmJpbmQgbGlicmFyeSBoYXMg dGhyZWUgdmVyc2lvbnM6IGB0YmJiaW5kYCwgYHRiYmJpbmRfMl8wYCBhbmQgYHRiYmJpbmRfMl81 YC4gRWFjaCBvZiB0aGVzZSB2ZXJzaW9ucyBpcyBsaW5rZWQgd2l0aCBjb3JyZXNwb25kaW5nIEhX TE9DIGxpYnJhcnkgdmVyc2lvbjogYHRiYmJpbmRgIGxpbmtzIHdpdGggSFdMT0MgMS4xMS54ICwg YHRiYmJpbmRfMl8wYCBsaW5rcyB3aXRoIEhXTE9DIDIuMS0yLjQsIGB0YmJiaW5kXzJfNWAgbGlu a3Mgd2l0aCBIV0xPQyAyLjUgYW5kIGxhdGVyLgorIAorLVRvIGVuYWJsZSB0aGUgVEJCQmluZCBs aWJyYXJ5IGJ1aWxkIG9yIHNwZWNpYWwgdGVzdHMgdGhhdCBwZXJmb3JtZWQgaW5zaWRlIHRoZSBI V0xPQyBlbnZpcm9ubWVudCwgcGxlYXNlIHNwZWNpZnkgdGhlIGZvbGxvd2luZyBDTWFrZSB2YXJp YWJsZXM6CisrVGhlIHNlYXJjaCBmb3IgYSBzdWl0YWJsZSB2ZXJzaW9uIG9mIHRoZSBIV0xPQyBs aWJyYXJ5IGlzIGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IGlmIHlvdSB3YW50IHRvIHVzZSBhIHNw ZWNpZmljIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHlvdSBjYW4gc3BlY2lmeSB0aGUgcGF0aCB0 byBpdCBtYW51YWxseSB1c2luZyB0aGUgZm9sbG93aW5nIENNYWtlIHZhcmlhYmxlczoKKyAKKyAg LSBgQ01BS0VfSFdMT0NfPEhXTE9DX1ZFUj5fTElCUkFSWV9QQVRIYCAtIHBhdGggdG8gdGhlIGNv cnJlc3BvbmRpbmcgSFdMT0MgdmVyc2lvbiBzaGFyZWQgbGlicmFyeSBvbiBMaW51eCBvciBwYXRo IHRvIGAubGliYCBmaWxlIG9uIFdpbmRvd3MuCisgIC0gYENNQUtFX0hXTE9DXzxIV0xPQ19WRVI+ X0lOQ0xVREVfUEFUSGAgLSBwYXRoIHRvIHRoZSBjb3JyZXNwb25kaW5nIEhXTE9DIHZlcnNpb24g aW5jbHVkZXMgZGlyZWN0b3J5LgorQEAgLTUyLDcgKzUzLDExIEBAIFRvIGVuYWJsZSB0aGUgVEJC QmluZCBsaWJyYXJ5IGJ1aWxkIG9yIHNwZWNpYWwgdGVzdHMgdGhhdCBwZXJmb3JtZWQgaW5zaWRl IHRoZSBICisgV2luZG93cyByZXF1aXJlcyBvbmUgYWRkaXRpb25hbCB2YXJpYWJsZSBmb3IgY29y cmVjdCBUQkJCaW5kIGxpYnJhcnkgYnVpbGRpbmc6CisgIC0gYENNQUtFX0hXTE9DXzxIV0xPQ19W RVI+X0RMTF9QQVRIYCAtIHBhdGggdG8gdGhlIGNvcnJlc3BvbmRpbmcgSFdMT0MgdmVyc2lvbiBg LmRsbGAgZmlsZS4KKyAKKy1gSFdMT0NfVkVSYCB2YXJpYWJsZSB1c2VkIGFib3ZlIGNhbiBiZSBy ZXBsYWNlZCB3aXRoIG9uZSBvZiB0aGUgdHdvIHZhbHVlczogYDFfMTFgIGZvciB0aGUgYHRiYmJp bmRgIGxpYnJhcnkgY29uZmlndXJhdGlvbiBhbmQgYDJgIGZvciB0aGUgYHRiYmJpbmRfMl8wYCBs aWJyYXJ5IGNvbmZpZ3VyYXRpb24uCisrYEhXTE9DX1ZFUmAgc3Vic3RyaW5nIHVzZWQgYWJvdmUg Y2FuIGJlIHJlcGxhY2VkIHdpdGggb25lIG9mIHRoZSB0aHJlZSB2YWx1ZXM6IGAxXzExYCBmb3Ig dGhlIGB0YmJiaW5kYCBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24sIGAyYCBmb3IgdGhlIGB0YmJiaW5k XzJfMGAsIGFuZCBgMl81YCBmb3IgdGhlIGB0YmJiaW5kXzJfNWAgbGlicmFyeSBjb25maWd1cmF0 aW9uLgorKworK0lmIHlvdSBzcGVjaWZ5IHZhcmlhYmxlcyBmb3Igc2V2ZXJhbCBUQkJCaW5kIHZl cnNpb25zLCB0aGVuIGJ1aWxkaW5nIHByb2Nlc3MgZm9yIGFsbCBvZiB0aGVzZSB2ZXJzaW9ucyB3 aWxsIGJlIHBlcmZvcm1lZCBkdXJpbmcgc2luZ2xlIGJ1aWxkIHNlc3Npb24uCisrCisrU3BlY2lm eSB0aGUgYFRCQl9ESVNBQkxFX0hXTE9DX0FVVE9NQVRJQ19TRUFSQ0hgIHRvIGRpc2FibGUgSFdM T0MgbGlicmFyaWVzIGF1dG9tYXRpYyBzZWFyY2guCisgCisgIyMjIEJ1aWxkCisgCitkaWZmIC0t Z2l0IGEvY21ha2UvaHdsb2NfZGV0ZWN0aW9uLmNtYWtlIGIvY21ha2UvaHdsb2NfZGV0ZWN0aW9u LmNtYWtlCitpbmRleCBlMWVlY2E1ZmEuLmRlN2YzYzA0NyAxMDA2NDQKKy0tLSBhL2NtYWtlL2h3 bG9jX2RldGVjdGlvbi5jbWFrZQorKysrIGIvY21ha2UvaHdsb2NfZGV0ZWN0aW9uLmNtYWtlCitA QCAtMTIsNyArMTIsNyBAQAorICMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFu Z3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICMgbGltaXRhdGlvbnMgdW5kZXIgdGhl IExpY2Vuc2UuCisgCistbGlzdChBUFBFTkQgSFdMT0NfUkVRVUlSRURfVkVSU0lPTlMgMV8xMSAy IDJfNCkKKytsaXN0KEFQUEVORCBIV0xPQ19SRVFVSVJFRF9WRVJTSU9OUyAxXzExIDIgMl81KQor IAorIGZvcmVhY2goaHdsb2NfdmVyc2lvbiAke0hXTE9DX1JFUVVJUkVEX1ZFUlNJT05TfSkKKyAg ICAgaWYgKE5PVCBXSU4zMikKK0BAIC01NSwxMCArNTYsMTAgQEAgaWYgKE5PVCBIV0xPQ19UQVJH RVRfRVhQTElDSVRMWV9ERUZJTkVEIEFORAorICAgICAgICAgaWYgKEhXTE9DX0ZPVU5EKQorICAg ICAgICAgICAgIGlmIChIV0xPQ19WRVJTSU9OIFZFUlNJT05fTEVTUyAyKQorICAgICAgICAgICAg ICAgICBzZXQoVEJCQklORF9MSUJSQVJZX05BTUUgdGJiYmluZCkKKy0gICAgICAgICAgICBlbHNl aWYoSFdMT0NfVkVSU0lPTiBWRVJTSU9OX0xFU1MgMi40KQorKyAgICAgICAgICAgIGVsc2VpZihI V0xPQ19WRVJTSU9OIFZFUlNJT05fTEVTUyAyLjUpCisgICAgICAgICAgICAgICAgIHNldChUQkJC SU5EX0xJQlJBUllfTkFNRSB0YmJiaW5kXzJfMCkKKyAgICAgICAgICAgICBlbHNlKCkKKy0gICAg ICAgICAgICAgICAgc2V0KFRCQkJJTkRfTElCUkFSWV9OQU1FIHRiYmJpbmRfMl80KQorKyAgICAg ICAgICAgICAgICBzZXQoVEJCQklORF9MSUJSQVJZX05BTUUgdGJiYmluZF8yXzUpCisgICAgICAg ICAgICAgZW5kaWYoKQorICAgICAgICAgZW5kaWYoKQorICAgICBlbmRpZigpCitkaWZmIC0tZ2l0 IGEvc3JjL3RiYi9nb3Zlcm5vci5jcHAgYi9zcmMvdGJiL2dvdmVybm9yLmNwcAoraW5kZXggYmY0 ZTQwMmQxLi5iODQyZTA3NWYgMTAwNjQ0CistLS0gYS9zcmMvdGJiL2dvdmVybm9yLmNwcAorKysr IGIvc3JjL3RiYi9nb3Zlcm5vci5jcHAKK0BAIC0zNjIsNyArMzYyLDcgQEAgc3RhdGljIGNvbnN0 IHVuc2lnbmVkIExpbmtUYWJsZVNpemUgPSBzaXplb2YoVGJiQmluZExpbmtUYWJsZSkgLyBzaXpl b2YoZHluYW1pY18KKyAKKyAjZGVmaW5lIFRCQkJJTkRfTkFNRSBMSUJSQVJZX1BSRUZJWCAidGJi YmluZCIgREVCVUdfU1VGRklYIExJQlJBUllfRVhURU5TSU9OCisgI2RlZmluZSBUQkJCSU5EXzJf MF9OQU1FIExJQlJBUllfUFJFRklYICJ0YmJiaW5kXzJfMCIgREVCVUdfU1VGRklYIExJQlJBUllf RVhURU5TSU9OCistI2RlZmluZSBUQkJCSU5EXzJfNF9OQU1FIExJQlJBUllfUFJFRklYICJ0YmJi aW5kXzJfNCIgREVCVUdfU1VGRklYIExJQlJBUllfRVhURU5TSU9OCisrI2RlZmluZSBUQkJCSU5E XzJfNV9OQU1FIExJQlJBUllfUFJFRklYICJ0YmJiaW5kXzJfNSIgREVCVUdfU1VGRklYIExJQlJB UllfRVhURU5TSU9OCisgI2VuZGlmIC8qIF9XSU4zMiB8fCBfV0lONjQgfHwgX19saW51eF9fICov CisgCisgLy8gUmVwcmVzZW50YXRpb24gb2Ygc3lzdGVtIGhhcmR3YXJlIHRvcG9sb2d5IGluZm9y bWF0aW9uIG9uIHRoZSBUQkIgc2lkZS4KK0BAIC0zODksNyArMzg5LDcgQEAgY29uc3QgY2hhciog bG9hZF90YmJiaW5kX3NoYXJlZF9vYmplY3QoKSB7CisgICAgIEdldE5hdGl2ZVN5c3RlbUluZm8o JnNpKTsKKyAgICAgaWYgKHNpLmR3TnVtYmVyT2ZQcm9jZXNzb3JzID4gMzIpIHJldHVybiBudWxs cHRyOworICNlbmRpZiAvKiBfV0lOMzIgJiYgIV9XSU42NCAqLworLSAgICBmb3IgKGNvbnN0IGF1 dG8mIHRiYmJpbmRfdmVyc2lvbiA6IHtUQkJCSU5EXzJfNF9OQU1FLCBUQkJCSU5EXzJfMF9OQU1F LCBUQkJCSU5EX05BTUV9KSB7CisrICAgIGZvciAoY29uc3QgYXV0byYgdGJiYmluZF92ZXJzaW9u IDoge1RCQkJJTkRfMl81X05BTUUsIFRCQkJJTkRfMl8wX05BTUUsIFRCQkJJTkRfTkFNRX0pIHsK KyAgICAgICAgIGlmIChkeW5hbWljX2xpbmsodGJiYmluZF92ZXJzaW9uLCBUYmJCaW5kTGlua1Rh YmxlLCBMaW5rVGFibGVTaXplKSkgeworICAgICAgICAgICAgIHJldHVybiB0YmJiaW5kX3ZlcnNp b247CisgICAgICAgICB9CitkaWZmIC0tZ2l0IGEvc3JjL3RiYmJpbmQvQ01ha2VMaXN0cy50eHQg Yi9zcmMvdGJiYmluZC9DTWFrZUxpc3RzLnR4dAoraW5kZXggMDI5ODkzNzUxLi5lNWNkYmY4YmIg MTAwNjQ0CistLS0gYS9zcmMvdGJiYmluZC9DTWFrZUxpc3RzLnR4dAorKysrIGIvc3JjL3RiYmJp bmQvQ01ha2VMaXN0cy50eHQKK0BAIC05OSw3ICs5OSw3IEBAIGlmIChOT1QgREVGSU5FRCBIV0xP Q19UQVJHRVRfRVhQTElDSVRMWV9ERUZJTkVEIEFORCBERUZJTkVEIEhXTE9DX0xJQlJBUklFUykK KyBlbHNlKCkKKyAgICAgdGJiYmluZF9idWlsZCh0YmJiaW5kICAgICBIV0xPQzo6aHdsb2NfMV8x MSkKKyAgICAgdGJiYmluZF9idWlsZCh0YmJiaW5kXzJfMCBIV0xPQzo6aHdsb2NfMiAgICkKKy0g ICAgdGJiYmluZF9idWlsZCh0YmJiaW5kXzJfNCBIV0xPQzo6aHdsb2NfMl80ICkKKysgICAgdGJi YmluZF9idWlsZCh0YmJiaW5kXzJfNSBIV0xPQzo6aHdsb2NfMl81ICkKKyBlbmRpZigpCisgCisg CitkaWZmIC0tZ2l0IGEvc3JjL3RiYmJpbmQvdGJiX2JpbmQuY3BwIGIvc3JjL3RiYmJpbmQvdGJi X2JpbmQuY3BwCitpbmRleCA5N2JlMzA4YzcuLjg4Yzk1NmFjYiAxMDA2NDQKKy0tLSBhL3NyYy90 YmJiaW5kL3RiYl9iaW5kLmNwcAorKysrIGIvc3JjL3RiYmJpbmQvdGJiX2JpbmQuY3BwCitAQCAt MzQsNyArMzQsOCBAQAorICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisgI2VuZGlmCisgCist I2RlZmluZSBfX0hXTE9DX0hZQlJJRF9DUFVTX0lOVEVSRkFDRVNfUFJFU0VOVCAoSFdMT0NfQVBJ X1ZFUlNJT04gPj0gMHgyMDQwMCkKKysjZGVmaW5lIF9fVEJCQklORF9IV0xPQ19IWUJSSURfQ1BV U19JTlRFUkZBQ0VTX1BSRVNFTlQgKEhXTE9DX0FQSV9WRVJTSU9OID49IDB4MjA0MDApCisrI2Rl ZmluZSBfX1RCQkJJTkRfSFdMT0NfVE9QT0xPR1lfRkxBR19SRVNUUklDVF9UT19DUFVCSU5ESU5H X1BSRVNFTlQgKEhXTE9DX0FQSV9WRVJTSU9OID49IDB4MjA1MDApCisgCisgLy8gTW9zdCBvZiBo d2xvYyBjYWxscyByZXR1cm5zIG5lZ2F0aXZlIGV4aXQgY29kZSBvbiBlcnJvci4KKyAvLyBUaGlz IG1hY3JvIHRyYWNrcyBlcnJvciBjb2RlcyB0aGF0IGFyZSByZXR1cm5lZCBmcm9tIHRoZSBod2xv YyBpbnRlcmZhY2VzLgorQEAgLTg1LDYgKzg2LDE2IEBAIGNsYXNzIHBsYXRmb3JtX3RvcG9sb2d5 IHsKKyAgICAgICAgIC8vIFBhcnNlIHRvcG9sb2d5CisgICAgICAgICBpZiAoIGh3bG9jX3RvcG9s b2d5X2luaXQoICZ0b3BvbG9neSApID09IDAgKSB7CisgICAgICAgICAgICAgaW5pdGlhbGl6YXRp b25fc3RhdGUgPSB0b3BvbG9neV9hbGxvY2F0ZWQ7CisrI2lmIF9fVEJCQklORF9IV0xPQ19UT1BP TE9HWV9GTEFHX1JFU1RSSUNUX1RPX0NQVUJJTkRJTkdfUFJFU0VOVAorKyAgICAgICAgICAgIGlm ICggZ3JvdXBzX251bSA9PSAxICYmCisrICAgICAgICAgICAgICAgICBod2xvY190b3BvbG9neV9z ZXRfZmxhZ3ModG9wb2xvZ3ksCisrICAgICAgICAgICAgICAgICAgICAgSFdMT0NfVE9QT0xPR1lf RkxBR19JU19USElTU1lTVEVNIHwKKysgICAgICAgICAgICAgICAgICAgICBIV0xPQ19UT1BPTE9H WV9GTEFHX1JFU1RSSUNUX1RPX0NQVUJJTkRJTkcKKysgICAgICAgICAgICAgICAgICkgIT0gMAor KyAgICAgICAgICAgICkgeworKyAgICAgICAgICAgICAgICByZXR1cm47CisrICAgICAgICAgICAg fQorKyNlbmRpZgorICAgICAgICAgICAgIGlmICggaHdsb2NfdG9wb2xvZ3lfbG9hZCggdG9wb2xv Z3kgKSA9PSAwICkgeworICAgICAgICAgICAgICAgICBpbml0aWFsaXphdGlvbl9zdGF0ZSA9IHRv cG9sb2d5X2xvYWRlZDsKKyAgICAgICAgICAgICB9CitAQCAtMTM1LDcgKzE0Niw3IEBAIGNsYXNz IHBsYXRmb3JtX3RvcG9sb2d5IHsKKyAgICAgICAgICAgICBudW1hX2luZGV4ZXNfbGlzdC5yZXNp emUobnVtYV9ub2Rlc19jb3VudCk7CisgICAgICAgICAgICAgaHdsb2Nfb2JqX3Qgbm9kZV9idWZm ZXI7CisgICAgICAgICAgICAgaHdsb2NfYml0bWFwX2ZvcmVhY2hfYmVnaW4oaSwgcHJvY2Vzc19u b2RlX2FmZmluaXR5X21hc2spIHsKKy0gICAgICAgICAgICAgICAgbm9kZV9idWZmZXIgPSBod2xv Y19nZXRfb2JqX2J5X3R5cGUodG9wb2xvZ3ksIEhXTE9DX09CSl9OVU1BTk9ERSwgaSk7CisrICAg ICAgICAgICAgICAgIG5vZGVfYnVmZmVyID0gaHdsb2NfZ2V0X251bWFub2RlX29ial9ieV9vc19p bmRleCh0b3BvbG9neSwgaSk7CisgICAgICAgICAgICAgICAgIG51bWFfaW5kZXhlc19saXN0W2Nv dW50ZXJdID0gc3RhdGljX2Nhc3Q8aW50Pihub2RlX2J1ZmZlci0+bG9naWNhbF9pbmRleCk7Cisg CisgICAgICAgICAgICAgICAgIGlmICggbnVtYV9pbmRleGVzX2xpc3RbY291bnRlcl0gPiBtYXhf bnVtYV9pbmRleCApIHsKK0BAIC0xNTAsNyArMTYxLDcgQEAgY2xhc3MgcGxhdGZvcm1fdG9wb2xv Z3kgeworICAgICAgICAgICAgIG51bWFfYWZmaW5pdHlfbWFza3NfbGlzdC5yZXNpemUobWF4X251 bWFfaW5kZXggKyAxKTsKKyAgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAg IGh3bG9jX2JpdG1hcF9mb3JlYWNoX2JlZ2luKGksIHByb2Nlc3Nfbm9kZV9hZmZpbml0eV9tYXNr KSB7CistICAgICAgICAgICAgICAgIG5vZGVfYnVmZmVyID0gaHdsb2NfZ2V0X29ial9ieV90eXBl KHRvcG9sb2d5LCBIV0xPQ19PQkpfTlVNQU5PREUsIGkpOworKyAgICAgICAgICAgICAgICBub2Rl X2J1ZmZlciA9IGh3bG9jX2dldF9udW1hbm9kZV9vYmpfYnlfb3NfaW5kZXgodG9wb2xvZ3ksIGkp OworICAgICAgICAgICAgICAgICBpbmRleCA9IHN0YXRpY19jYXN0PGludD4obm9kZV9idWZmZXIt PmxvZ2ljYWxfaW5kZXgpOworIAorICAgICAgICAgICAgICAgICBod2xvY19jcHVzZXRfdCYgY3Vy cmVudF9tYXNrID0gbnVtYV9hZmZpbml0eV9tYXNrc19saXN0W2luZGV4XTsKK0BAIC0xNjgsNyAr MTc5LDcgQEAgY2xhc3MgcGxhdGZvcm1fdG9wb2xvZ3kgeworICAgICAgICAgICAgIGNvcmVfdHlw ZXNfaW5kZXhlc19saXN0LnB1c2hfYmFjaygtMSk7CisgICAgICAgICAgICAgcmV0dXJuOworICAg ICAgICAgfQorLSNpZiBfX0hXTE9DX0hZQlJJRF9DUFVTX0lOVEVSRkFDRVNfUFJFU0VOVAorKyNp ZiBfX1RCQkJJTkRfSFdMT0NfSFlCUklEX0NQVVNfSU5URVJGQUNFU19QUkVTRU5UCisgICAgICAg ICBfX1RCQl9BU1NFUlQoaHdsb2NfZ2V0X2FwaV92ZXJzaW9uKCkgPj0gMHgyMDQwMCwgIkh5YnJp ZCBDUFVzIHN1cHBvcnQgaW50ZXJmYWNlcyByZXF1aXJlZCBIV0xPQyA+PSAyLjQiKTsKKyAgICAg ICAgIC8vIFBhcnNpbmcgdGhlIGh5YnJpZCBDUFUgdG9wb2xvZ3kKKyAgICAgICAgIGludCBjb3Jl X3R5cGVzX251bWJlciA9IGh3bG9jX2NwdWtpbmRzX2dldF9ucih0b3BvbG9neSwgMCk7CitAQCAt MTk2LDkgKzIwNyw5IEBAIGNsYXNzIHBsYXRmb3JtX3RvcG9sb2d5IHsKKyAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKy0jZWxzZSAvKiFfX0hXTE9DX0hZQlJJ RF9DUFVTX0lOVEVSRkFDRVNfUFJFU0VOVCovCisrI2Vsc2UgLyohX19UQkJCSU5EX0hXTE9DX0hZ QlJJRF9DUFVTX0lOVEVSRkFDRVNfUFJFU0VOVCovCisgICAgICAgICBib29sIGNvcmVfdHlwZXNf cGFyc2luZ19icm9rZW57dHJ1ZX07CistI2VuZGlmIC8qX19IV0xPQ19IWUJSSURfQ1BVU19JTlRF UkZBQ0VTX1BSRVNFTlQqLworKyNlbmRpZiAvKl9fVEJCQklORF9IV0xPQ19IWUJSSURfQ1BVU19J TlRFUkZBQ0VTX1BSRVNFTlQqLworIAorICAgICAgICAgaWYgKGNvcmVfdHlwZXNfcGFyc2luZ19i cm9rZW4pIHsKKyAgICAgICAgICAgICBmb3IgKGF1dG8mIGNvcmVfdHlwZV9tYXNrIDogY29yZV90 eXBlc19hZmZpbml0eV9tYXNrc19saXN0KSB7CitkaWZmIC0tZ2l0IGEvdGVzdC9DTWFrZUxpc3Rz LnR4dCBiL3Rlc3QvQ01ha2VMaXN0cy50eHQKK2luZGV4IGJkYWU5ZTJiMS4uYzJiOWQ2ZGJhIDEw MDY0NAorLS0tIGEvdGVzdC9DTWFrZUxpc3RzLnR4dAorKysrIGIvdGVzdC9DTWFrZUxpc3RzLnR4 dAorQEAgLTI3NSw5ICsyNzUsOSBAQCBmdW5jdGlvbih0YmJfYWRkX3RiYmJpbmRfdGVzdCkKKyAg ICAgICAgIEZBSUxfUkVHVUxBUl9FWFBSRVNTSU9OICJTdGF0dXM6LipGQUlMVVJFIgorICAgICAp CisgCistICAgIGlmIChUQVJHRVQgSFdMT0M6Omh3bG9jXzJfNCBBTkQgTk9UIEhXTE9DXzJfNF9U RVNUU19TVEFUVVNfU0hPV04pCistICAgICAgICBtZXNzYWdlKFNUQVRVUyAiSFdMT0MgMi40IGRl cGVuZGVudCB0ZXN0cyB3ZXJlIGVuYWJsZWQuIikKKy0gICAgICAgIHNldChIV0xPQ18yXzRfVEVT VFNfU1RBVFVTX1NIT1dOIFRSVUUgUEFSRU5UX1NDT1BFKQorKyAgICBpZiAoVEFSR0VUIEhXTE9D Ojpod2xvY18yXzUgQU5EIE5PVCBIV0xPQ18yXzVfVEVTVFNfU1RBVFVTX1NIT1dOKQorKyAgICAg ICAgbWVzc2FnZShTVEFUVVMgIkhXTE9DIDIuNSBkZXBlbmRlbnQgdGVzdHMgd2VyZSBlbmFibGVk LiIpCisrICAgICAgICBzZXQoSFdMT0NfMl81X1RFU1RTX1NUQVRVU19TSE9XTiBUUlVFIFBBUkVO VF9TQ09QRSkKKyAgICAgZW5kaWYoKQorIAorICAgICBpZiAoVEFSR0VUIEhXTE9DOjpod2xvY18y IEFORCBOT1QgSFdMT0NfMl9URVNUU19TVEFUVVNfU0hPV04pCitAQCAtMjkxLDIyICsyOTEsMjIg QEAgZnVuY3Rpb24odGJiX2FkZF90YmJiaW5kX3Rlc3QpCisgICAgIGVuZGlmKCkKKyAKKyAgICAg bGlzdChBUFBFTkQgSFdMT0NfVEVTVF9DQVNFUworLSAgICAgICAgaHdsb2NfMl80CisrICAgICAg ICBod2xvY18yXzUKKyAgICAgICAgIGh3bG9jXzIKKyAgICAgICAgIGh3bG9jXzFfMTEKKy0gICAg ICAgIGh3bG9jXzJfNF9od2xvY18yCistICAgICAgICBod2xvY18yXzRfaHdsb2NfMV8xMQorKyAg ICAgICAgaHdsb2NfMl81X2h3bG9jXzIKKysgICAgICAgIGh3bG9jXzJfNV9od2xvY18xXzExCisg ICAgICAgICBod2xvY18yX2h3bG9jXzFfMTEKKy0gICAgICAgIGh3bG9jXzJfNF9od2xvY18yX2h3 bG9jXzFfMTEKKysgICAgICAgIGh3bG9jXzJfNV9od2xvY18yX2h3bG9jXzFfMTEKKyAgICAgKQor IAorLSAgICBsaXN0KEFQUEVORCBIV0xPQ19URVNUX0NBU0VfMF9WQVJTIHRiYmJpbmRfMl80ICJo d2xvY18yXzQiKQorKyAgICBsaXN0KEFQUEVORCBIV0xPQ19URVNUX0NBU0VfMF9WQVJTIHRiYmJp bmRfMl81ICJod2xvY18yXzUiKQorICAgICBsaXN0KEFQUEVORCBIV0xPQ19URVNUX0NBU0VfMV9W QVJTIHRiYmJpbmRfMiAgICJod2xvY18yIikKKyAgICAgbGlzdChBUFBFTkQgSFdMT0NfVEVTVF9D QVNFXzJfVkFSUyB0YmJiaW5kICAgICAiaHdsb2NfMV8xMSIpCistICAgIGxpc3QoQVBQRU5EIEhX TE9DX1RFU1RfQ0FTRV8zX1ZBUlMgdGJiYmluZF8yXzQgImh3bG9jXzJfNCxod2xvY18yIikKKy0g ICAgbGlzdChBUFBFTkQgSFdMT0NfVEVTVF9DQVNFXzRfVkFSUyB0YmJiaW5kXzJfNCAiaHdsb2Nf Ml80LGh3bG9jXzFfMTEiKQorKyAgICBsaXN0KEFQUEVORCBIV0xPQ19URVNUX0NBU0VfM19WQVJT IHRiYmJpbmRfMl81ICJod2xvY18yXzUsaHdsb2NfMiIpCisrICAgIGxpc3QoQVBQRU5EIEhXTE9D X1RFU1RfQ0FTRV80X1ZBUlMgdGJiYmluZF8yXzUgImh3bG9jXzJfNSxod2xvY18xXzExIikKKyAg ICAgbGlzdChBUFBFTkQgSFdMT0NfVEVTVF9DQVNFXzVfVkFSUyB0YmJiaW5kXzIgICAiaHdsb2Nf Mixod2xvY18xXzExIikKKy0gICAgbGlzdChBUFBFTkQgSFdMT0NfVEVTVF9DQVNFXzZfVkFSUyB0 YmJiaW5kXzJfNCAiaHdsb2NfMl80LGh3bG9jXzIsaHdsb2NfMV8xMSIpCisrICAgIGxpc3QoQVBQ RU5EIEhXTE9DX1RFU1RfQ0FTRV82X1ZBUlMgdGJiYmluZF8yXzUgImh3bG9jXzJfNSxod2xvY18y LGh3bG9jXzFfMTEiKQorIAorICAgICBmb3JlYWNoKFRFU1RfQ0FTRSAke0hXTE9DX1RFU1RfQ0FT RVN9KQorICAgICAgICAgbGlzdChGSU5EIEhXTE9DX1RFU1RfQ0FTRVMgJHtURVNUX0NBU0V9IFRF U1RfQ0FTRV9JTkRFWCkKK0BAIC0zMzEsNyArMzMxLDcgQEAgZW5kZnVuY3Rpb24oKQorICMgQ29w eSBsaWJyYXJpZXMgdG8gdGVzdCBmb2xkZXIgdG8gbWFrZSBpdCB2aXNpYmxlIGR1cmluZyB0ZXN0 cyBleGVjdXRpb24gaWYgZXh0ZXJuYWwgVEJCIGlzIHRlc3RlZC4KKyAjIFRPRE86IGNoZWNrIGFu ZCB1cGRhdGUgZm9yIG11bHRpLWNvbmZpZyBnZW5lcmF0b3JzLgorIGlmIChUQkJfRk9VTkQpCist ICAgIGxpc3QoQVBQRU5EIF90YmJfdGVzdF9jb21wb25lbnRzIHRiYiB0YmJtYWxsb2MgdGJibWFs bG9jX3Byb3h5IHRiYmJpbmQgdGJiYmluZF8yXzAgdGJiYmluZF8yXzQpCisrICAgIGxpc3QoQVBQ RU5EIF90YmJfdGVzdF9jb21wb25lbnRzIHRiYiB0YmJtYWxsb2MgdGJibWFsbG9jX3Byb3h5IHRi YmJpbmQgdGJiYmluZF8yXzAgdGJiYmluZF8yXzUpCisgICAgIGZvcmVhY2goX2NvbXBvbmVudCAk e190YmJfdGVzdF9jb21wb25lbnRzfSkKKyAgICAgICAgIGlmIChUQVJHRVQgVEJCOjoke19jb21w b25lbnR9KQorICAgICAgICAgICAgIGdldF9wcm9wZXJ0eSgke19jb21wb25lbnR9X2xpYl9maWxl X2xvY2F0aW9uIFRBUkdFVCBUQkI6OiR7X2NvbXBvbmVudH0gUFJPUEVSVFkgTE9DQVRJT04pCitA QCAtNTkzLDYgKzU5Myw2IEBAIGlmIChOT1QgIiR7Q01BS0VfU1lTVEVNX1BST0NFU1NPUn0iIE1B VENIRVMgIm1pcHMiKQorICAgICB0YmJfYWRkX3Rlc3QoU1VCRElSIHRiYm1hbGxvYyBOQU1FIHRl c3RfbWFsbG9jX25ld19oYW5kbGVyIERFUEVOREVOQ0lFUyBUQkI6OnRiYm1hbGxvY19wcm94eSkK KyBlbmRpZigpCisgCistdW5zZXQoSFdMT0NfMl80X1RFU1RTX1NUQVRVU19TSE9XTikKKyt1bnNl dChIV0xPQ18yXzVfVEVTVFNfU1RBVFVTX1NIT1dOKQorIHVuc2V0KEhXTE9DXzJfVEVTVFNfU1RB VFVTX1NIT1dOKQorIHVuc2V0KEhXTE9DXzFfMTFfVEVTVFNfU1RBVFVTX1NIT1dOKQorZGlmZiAt LWdpdCBhL3Rlc3QvY29tbW9uL2NvbW1vbl9hcmVuYV9jb25zdHJhaW50cy5oIGIvdGVzdC9jb21t b24vY29tbW9uX2FyZW5hX2NvbnN0cmFpbnRzLmgKK2luZGV4IDJhMGIxZWE5Ny4uNWVmYzcxMDgy IDEwMDY0NAorLS0tIGEvdGVzdC9jb21tb24vY29tbW9uX2FyZW5hX2NvbnN0cmFpbnRzLmgKKysr KyBiL3Rlc3QvY29tbW9uL2NvbW1vbl9hcmVuYV9jb25zdHJhaW50cy5oCitAQCAtMzgsOSArMzgs MjYgQEAKKyAKKyAjaWYgKF9XSU4zMiB8fCBfV0lONjQpICYmIF9fVEJCX0hXTE9DX1ZBTElEX0VO VklST05NRU5UCisgI2luY2x1ZGUgPHdpbmRvd3MuaD4KKy1pbnQgZ2V0X3Byb2Nlc3NvcnNfZ3Jv dXBzX2NvdW50KCkgeyByZXR1cm4gR2V0QWN0aXZlUHJvY2Vzc29yR3JvdXBDb3VudCgpOyB9Cisr aW50IGdldF9wcm9jZXNzb3JzX2dyb3VwX2NvdW50KCkgeworKyAgICBTWVNURU1fSU5GTyBzaTsK KysgICAgR2V0TmF0aXZlU3lzdGVtSW5mbygmc2kpOworKyAgICBEV09SRF9QVFIgcGFtLCBzYW0s IG0gPSAxOworKyAgICBHZXRQcm9jZXNzQWZmaW5pdHlNYXNrKCBHZXRDdXJyZW50UHJvY2Vzcygp LCAmcGFtLCAmc2FtICk7CisrICAgIGludCBucHJvYyA9IDA7CisrICAgIGZvciAoIHN0ZDo6c2l6 ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKERXT1JEX1BUUikgKiBDSEFSX0JJVDsgKytpLCBtIDw8PSAx ICkgeworKyAgICAgICAgaWYgKCBwYW0gJiBtICkKKysgICAgICAgICAgICArK25wcm9jOworKyAg ICB9CisrICAgIC8vIFNldHRpbmcgdXAgcHJvY2Vzc29yIGdyb3VwcyBpbiBjYXNlIHRoZSBwcm9j ZXNzIGRvZXMgbm90IHJlc3RyaWN0IGFmZmluaXR5IG1hc2sgYW5kIG1vcmUgdGhhbiBvbmUgcHJv Y2Vzc29yIGdyb3VwIGlzIHByZXNlbnQKKysgICAgaWYgKCBucHJvYyA9PSAoaW50KXNpLmR3TnVt YmVyT2ZQcm9jZXNzb3JzICApIHsKKysgICAgICAgIC8vIFRoZSBwcm9jZXNzIGRvZXMgbm90IGhh dmUgcmVzdHJpY3RpbmcgYWZmaW5pdHkgbWFzayBhbmQgbXVsdGlwbGUgcHJvY2Vzc29yIGdyb3Vw cyBhcmUgcG9zc2libGUKKysgICAgICAgIHJldHVybiAoaW50KUdldEFjdGl2ZVByb2Nlc3Nvckdy b3VwQ291bnQoKTsKKysgICAgfSBlbHNlIHsKKysgICAgICAgIHJldHVybiAxOworKyAgICB9Cisr fQorICNlbHNlCistaW50IGdldF9wcm9jZXNzb3JzX2dyb3Vwc19jb3VudCgpIHsgcmV0dXJuIDE7 IH0KKytpbnQgZ2V0X3Byb2Nlc3NvcnNfZ3JvdXBfY291bnQoKSB7IHJldHVybiAxOyB9CisgI2Vu ZGlmCisgCisgLy9UT0RPOiBXcml0ZSBhIHRlc3QgdGhhdCBjaGVja3MgZm9yIG1lbW9yeSBsZWFr cyBkdXJpbmcgZHluYW1pYyBsaW5rL3VubGluayBvZiBUQkJiaW5kLgorQEAgLTY5LDYgKzg2LDcg QEAgaW50IGdldF9wcm9jZXNzb3JzX2dyb3Vwc19jb3VudCgpIHsgcmV0dXJuIDE7IH0KKyAjZW5k aWYKKyAKKyAjZGVmaW5lIF9fSFdMT0NfSFlCUklEX0NQVVNfSU5URVJGQUNFU19QUkVTRU5UIChI V0xPQ19BUElfVkVSU0lPTiA+PSAweDIwNDAwKQorKyNkZWZpbmUgX19IV0xPQ19UT1BPTE9HWV9G TEFHX1JFU1RSSUNUX1RPX0NQVUJJTkRJTkdfUFJFU0VOVCAoSFdMT0NfQVBJX1ZFUlNJT04gPj0g MHgyMDUwMCkKKyAvLyBBdCB0aGlzIG1vbWVudCB0aGUgaHlicmlkIENQVXMgSFdMT0MgaW50ZXJm YWNlcyByZXR1cm5zIHVuZXhwZWN0ZWQgcmVzdWx0cyBvbiBzb21lIFdpbmRvd3MgbWFjaGluZXMK KyAvLyBpbiB0aGUgMzItYml0IGFyY2ggbW9kZS4KKyAjZGVmaW5lIF9fSFdMT0NfSFlCUklEX0NQ VVNfSU5URVJGQUNFU19WQUxJRCAoIV9XSU4zMiB8fCBfV0lONjQpCitAQCAtMTUzLDkgKzE3MSwx OCBAQCBjbGFzcyBzeXN0ZW1faW5mbyB7CisgCisgICAgIHN5c3RlbV9pbmZvKCkgeworICAgICAg ICAgaHdsb2NfcmVxdWlyZV9leChod2xvY190b3BvbG9neV9pbml0LCAmdG9wb2xvZ3kpOworKyNp ZiBfX0hXTE9DX1RPUE9MT0dZX0ZMQUdfUkVTVFJJQ1RfVE9fQ1BVQklORElOR19QUkVTRU5UCisr ICAgICAgICBpZiAoIGdldF9wcm9jZXNzb3JzX2dyb3VwX2NvdW50KCkgPT0gMSApIHsKKysgICAg ICAgICAgICBSRVFVSVJFKAorKyAgICAgICAgICAgICAgICBod2xvY190b3BvbG9neV9zZXRfZmxh Z3ModG9wb2xvZ3ksCisrICAgICAgICAgICAgICAgICAgICBIV0xPQ19UT1BPTE9HWV9GTEFHX0lT X1RISVNTWVNURU0gfAorKyAgICAgICAgICAgICAgICAgICAgSFdMT0NfVE9QT0xPR1lfRkxBR19S RVNUUklDVF9UT19DUFVCSU5ESU5HKSA9PSAwCisrICAgICAgICAgICAgKTsKKysgICAgICAgIH0K KysjZW5kaWYKKyAgICAgICAgIGh3bG9jX3JlcXVpcmVfZXgoaHdsb2NfdG9wb2xvZ3lfbG9hZCwg dG9wb2xvZ3kpOworIAorLSAgICAgICAgaWYgKCBnZXRfcHJvY2Vzc29yc19ncm91cHNfY291bnQo KSA+IDEgKSB7CisrICAgICAgICBpZiAoIGdldF9wcm9jZXNzb3JzX2dyb3VwX2NvdW50KCkgPiAx ICkgeworICAgICAgICAgICAgIHByb2Nlc3NfY3B1c2V0ID0gaHdsb2NfYml0bWFwX2R1cChod2xv Y190b3BvbG9neV9nZXRfY29tcGxldGVfY3B1c2V0KHRvcG9sb2d5KSk7CisgICAgICAgICB9IGVs c2UgeworICAgICAgICAgICAgIHByb2Nlc3NfY3B1c2V0ID0gaHdsb2NfYml0bWFwX2FsbG9jKCk7 CitAQCAtNDM0LDcgKzQ2MSw3IEBAIHN5c3RlbV9pbmZvOjphZmZpbml0eV9tYXNrIGdldF9hcmVu YV9hZmZpbml0eSh0YmI6OnRhc2tfYXJlbmEmIHRhKSB7CisgICAgICAgICAgICAgICAgIGJhcnJp ZXIud2FpdCgpOworICAgICAgICAgICAgICAgICB0YmI6OnNwaW5fbXV0ZXg6OnNjb3BlZF9sb2Nr IGxvY2soYWZmaW5pdHlfbXV0ZXgpOworICAgICAgICAgICAgICAgICBzeXN0ZW1faW5mbzo6YWZm aW5pdHlfbWFzayB0aHJlYWRfYWZmaW5pdHkgPSBzeXN0ZW1faW5mbzo6YWxsb2NhdGVfY3VycmVu dF9hZmZpbml0eV9tYXNrKCk7CistICAgICAgICAgICAgICAgIGlmIChnZXRfcHJvY2Vzc29yc19n cm91cHNfY291bnQoKSA9PSAxKSB7CisrICAgICAgICAgICAgICAgIGlmIChnZXRfcHJvY2Vzc29y c19ncm91cF9jb3VudCgpID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgIFJFUVVJUkVfTUVT U0FHRShod2xvY19iaXRtYXBfaXNlcXVhbCh0aHJlYWRfYWZmaW5pdHksIGFyZW5hX2FmZmluaXR5 KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiVGhyZWFkcyBoYXZlIGRpZmZlcmVudCBtYXNr cyBvbiBtYWNoaW5lIHdpdGhvdXQgc2V2ZXJhbCBwcm9jZXNzb3JzIGdyb3Vwcy4iKTsKKyAgICAg ICAgICAgICAgICAgfQorQEAgLTUzMiw3ICs1NTksNyBAQCBjb25zdHJhaW50c19jb250YWluZXIg Z2VuZXJhdGVfY29uc3RyYWludHNfdmFyaWV0eSgpIHsKKyAgICAgICAgIH0KKyAKKyAgICAgICAg IC8vIFNvbWUgY29uc3RyYWludHMgbWF5IGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3IsIHdoaWNo IHdvdWxkIGJlIGZpeGVkIGxhdGVyLgorLSAgICAgICAgaWYgKGdldF9wcm9jZXNzb3JzX2dyb3Vw c19jb3VudCgpID4gMSkgeworKyAgICAgICAgaWYgKGdldF9wcm9jZXNzb3JzX2dyb3VwX2NvdW50 KCkgPiAxKSB7CisgICAgICAgICAgICAgZm9yKGF1dG8gaXQgPSByZXN1bHRzLmJlZ2luKCk7IGl0 ICE9IHJlc3VsdHMuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgICAgICAgICAgaWYgKGl0LT5tYXhf dGhyZWFkc19wZXJfY29yZSAhPSB0YmI6OnRhc2tfYXJlbmE6OmF1dG9tYXRpYworICAgICAgICAg ICAgICAgICAgICAmJiAoaXQtPm51bWFfaWQgPT0gdGJiOjp0YXNrX2FyZW5hOjphdXRvbWF0aWMg fHwgdGJiOjppbmZvOjpudW1hX25vZGVzKCkuc2l6ZSgpID09IDEpCmRpZmYgLS1naXQgYS9zcmNw a2dzL3RiYi9wYXRjaGVzLzAxLWh3bG9jLXBrZ2NvbmZpZy5wYXRjaCBiL3NyY3BrZ3MvdGJiL3Bh dGNoZXMvMDEtaHdsb2MtcGtnY29uZmlnLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uMjc5ZWJjNDM5N2NkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy90 YmIvcGF0Y2hlcy8wMS1od2xvYy1wa2djb25maWcucGF0Y2gKQEAgLTAsMCArMSw1MiBAQAorQmFz ZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL29uZWFwaS1zcmMvb25lVEJCL3B1bGwvNDk4CitUd2Vh a2VkIGEgYml0IHRvIHdvcmsgb24gYHYyMDIxLjMuMGAKKworZGlmZiAtLWdpdCBhL3NyYy90YmJi aW5kL0NNYWtlTGlzdHMudHh0IGIvc3JjL3RiYmJpbmQvQ01ha2VMaXN0cy50eHQKK2luZGV4IGU1 Y2RiZjhiYi4uYTQwMzMyMTBhIDEwMDY0NAorLS0tIGEvc3JjL3RiYmJpbmQvQ01ha2VMaXN0cy50 eHQKKysrKyBiL3NyYy90YmJiaW5kL0NNYWtlTGlzdHMudHh0CitAQCAtMzcsNiArMzcsMTAgQEAg ZnVuY3Rpb24odGJiYmluZF9idWlsZCBUQkJCSU5EX05BTUUgUkVRVUlSRURfSFdMT0NfVEFSR0VU KQorICAgICAgICAgJDxJTlNUQUxMX0lOVEVSRkFDRToke0NNQUtFX0lOU1RBTExfSU5DTFVERURJ Un0+CisgICAgICAgICAke0hXTE9DX0lOQ0xVREVfRElSU30gIyBwa2ctY29uZmlnIGRlZmluZWQK KyAgICAgKQorKwl0YXJnZXRfbGlua19kaXJlY3Rvcmllcygke1RCQkJJTkRfTkFNRX0KKysJCVBS SVZBVEUKKysJCSR7SFdMT0NfTElCUkFSWV9ESVJTfSAjIHBrZy1jb25maWcgZGVmaW5lZAorKwkp CisgCisgICAgIHRhcmdldF9jb21waWxlX29wdGlvbnMoJHtUQkJCSU5EX05BTUV9CisgICAgICAg ICBQUklWQVRFCitAQCAtNjksNyArNjksNiBAQCBmdW5jdGlvbih0YmJiaW5kX2J1aWxkIFRCQkJJ TkRfTkFNRSBSRVFVSVJFRF9IV0xPQ19UQVJHRVQpCisgICAgICAgICAgICAgUFJJVkFURQorICAg ICAgICAgICAgICR7VEJCX0xJQl9MSU5LX0ZMQUdTfQorICAgICAgICAgICAgICR7VEJCX0NPTU1P Tl9MSU5LX0ZMQUdTfQorLSAgICAgICAgICAgICR7SFdMT0NfTElCUkFSWV9ESVJTfSAjIHBrZy1j b25maWcgZGVmaW5lZAorICAgICAgICAgKQorICAgICBlbHNlKCkKKyAgICAgICAgIHRhcmdldF9s aW5rX2xpYnJhcmllcygke1RCQkJJTkRfTkFNRX0KK0BAIC03Niw3ICs3Niw2IEBAIGZ1bmN0aW9u KHRiYmJpbmRfYnVpbGQgVEJCQklORF9OQU1FIFJFUVVJUkVEX0hXTE9DX1RBUkdFVCkKKyAgICAg ICAgICAgICBQUklWQVRFCisgICAgICAgICAgICAgJHtUQkJfTElCX0xJTktfRkxBR1N9CisgICAg ICAgICAgICAgJHtUQkJfQ09NTU9OX0xJTktfRkxBR1N9CistICAgICAgICAgICAgJHtIV0xPQ19M SUJSQVJZX0RJUlN9ICMgcGtnLWNvbmZpZyBkZWZpbmVkCisgICAgICAgICApCisgICAgIGVuZGlm KCkKKyAKK2RpZmYgLS1naXQgYS90ZXN0L0NNYWtlTGlzdHMudHh0IGIvdGVzdC9DTWFrZUxpc3Rz LnR4dAoraW5kZXggYjc2ODc1OWQ1Li4zZWI4MzU3ZTYgMTAwNjQ0CistLS0gYS90ZXN0L0NNYWtl TGlzdHMudHh0CisrKysgYi90ZXN0L0NNYWtlTGlzdHMudHh0CitAQCAtMjU4LDcgKzI1OCwxMiBA QCBmdW5jdGlvbih0YmJfYWRkX3RiYmJpbmRfdGVzdCkKKyAgICAgICAgICkKKyAgICAgICAgIHNl dF9wcm9wZXJ0eSgKKyAgICAgICAgICAgICBUQVJHRVQgJHtfdGJiYmluZF90ZXN0X05BTUV9Cist ICAgICAgICAgICAgUFJPUEVSVFkgTElOS19MSUJSQVJJRVMgJHtIV0xPQ19MSUJSQVJZX0RJUlN9 ICR7SFdMT0NfTElCUkFSSUVTfQorKyAgICAgICAgICAgIFBST1BFUlRZIExJTktfTElCUkFSSUVT ICR7SFdMT0NfTElCUkFSSUVTfQorKyAgICAgICAgICAgIEFQUEVORAorKyAgICAgICAgKQorKyAg ICAgICAgc2V0X3Byb3BlcnR5KAorKyAgICAgICAgICAgIFRBUkdFVCAke190YmJiaW5kX3Rlc3Rf TkFNRX0KKysJCQlQUk9QRVJUWSBMSU5LX0RJUkVDVE9SSUVTICR7SFdMT0NfTElCUkFSWV9ESVJT fQorICAgICAgICAgICAgIEFQUEVORAorICAgICAgICAgKQorICAgICAgICAgc2V0X3Byb3BlcnR5 KApkaWZmIC0tZ2l0IGEvc3JjcGtncy90YmIvcGF0Y2hlcy9ob3N0bmFtZS11c2FnZS5wYXRjaCBi L3NyY3BrZ3MvdGJiL3BhdGNoZXMvaG9zdG5hbWUtdXNhZ2UucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDRhZWZlZmYxOTJiNS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv dGJiL3BhdGNoZXMvaG9zdG5hbWUtdXNhZ2UucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSAr MCwwIEBACi0tLS0gYS9idWlsZC92ZXJzaW9uX2luZm9fbGludXguc2gKLSsrKyBiL2J1aWxkL3Zl cnNpb25faW5mb19saW51eC5zaAotQEAgLTIwLDcgKzIwLDcgQEAKLSAKLSAjIFNjcmlwdCB1c2Vk IHRvIGdlbmVyYXRlIHZlcnNpb24gaW5mbyBzdHJpbmcKLSBlY2hvICIjZGVmaW5lIF9fVEJCX1ZF UlNJT05fU1RSSU5HUyhOKSBcXCIKLS1lY2hvICcjTiI6IEJVSUxEX0hPU1QnIlx0XHQiYGhvc3Ru YW1lIC1zYCIgKCJgdW5hbWUgLW1gIikiJyIgRU5ETCBcJwotK2VjaG8gJyNOIjogQlVJTERfSE9T VCciXHRcdCJgaG9zdG5hbWVgIiAoImB1bmFtZSAtbWAiKSInIiBFTkRMIFwnCi0gIyBmaW5kIE9T IG5hbWUgaW4gKi1yZWxlYXNlIGFuZCBpc3N1ZSogZmlsZXMgYnkgZmlsdGVyaW5nIGJsYW5rIGxp bmVzIGFuZCBsc2ItcmVsZWFzZSBjb250ZW50IG91dAotIGVjaG8gJyNOIjogQlVJTERfT1MnIlx0 XHQiYGxzYl9yZWxlYXNlIC1zZCAyPi9kZXYvbnVsbCB8IGdyZXAgLWloICdbYS16XSAnIC0gL2V0 Yy8qcmVsZWFzZSAvZXRjL2lzc3VlIDI+L2Rldi9udWxsIHwgaGVhZCAtMSB8IHNlZCAtZSAncy9b IlxcXFxdLy9nJ2AnIiBFTkRMIFwnCi0gZWNobyAnI04iOiBCVUlMRF9LRVJORUwnIlx0ImB1bmFt ZSAtc3J2YCciIEVOREwgXCcKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdGJiL3BhdGNoZXMvbXVzbC5w YXRjaCBiL3NyY3BrZ3MvdGJiL3BhdGNoZXMvbXVzbC5wYXRjaAppbmRleCBhODg2N2ViNTM3OTMu LmVjODljNmE5NWZjNiAxMDA2NDQKLS0tIGEvc3JjcGtncy90YmIvcGF0Y2hlcy9tdXNsLnBhdGNo CisrKyBiL3NyY3BrZ3MvdGJiL3BhdGNoZXMvbXVzbC5wYXRjaApAQCAtMSw1ICsxLDUgQEAKLS0t LSBhL3NyYy90YmJtYWxsb2MvcHJveHkuY3BwCTIwMTgtMTAtMTcgMTQ6MDU6MzEuMzExNzIzMDEz ICswMjAwCi0rKysgYi9zcmMvdGJibWFsbG9jL3Byb3h5LmNwcAkyMDE4LTEwLTE3IDE0OjA2OjMy Ljk3MjcyNjE5NCArMDIwMAorLS0tIGEvc3JjL3RiYm1hbGxvY19wcm94eS9wcm94eS5jcHAJMjAx OC0xMC0xNyAxNDowNTozMS4zMTE3MjMwMTMgKzAyMDAKKysrKyBiL3NyYy90YmJtYWxsb2NfcHJv eHkvcHJveHkuY3BwCTIwMTgtMTAtMTcgMTQ6MDY6MzIuOTcyNzI2MTk0ICswMjAwCiBAQCAtMjgs NiArMjgsNyBAQAogIC8vIG9mIGFsaWduZWRfYWxsb2MgYXMgcmVxdWlyZWQgYnkgbmV3IEMrKyBz dGFuZGFyZCwgdGhpcyBtYWtlcyBpdCBoYXJkIHRvCiAgLy8gcmVkZWZpbmUgYWxpZ25lZF9hbGxv YyBoZXJlLiBIb3dldmVyLCBydW5uaW5nIG9uIHN5c3RlbXMgd2l0aCBuZXcgbGliYwpkaWZmIC0t Z2l0IGEvc3JjcGtncy90YmIvdGVtcGxhdGUgYi9zcmNwa2dzL3RiYi90ZW1wbGF0ZQppbmRleCBh ZWVmNmViZGQwNjEuLjQ3NjU1ODI5Zjc0NCAxMDA2NDQKLS0tIGEvc3JjcGtncy90YmIvdGVtcGxh dGUKKysrIGIvc3JjcGtncy90YmIvdGVtcGxhdGUKQEAgLTEsNzYgKzEsMzMgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ3RiYicKIHBrZ25hbWU9dGJiCi12ZXJzaW9uPTIwMjAuVTMKK3ZlcnNpb249 MjAyMS4zLjAKIHJldmlzaW9uPTEKLSMgdmVyc2lvbiByZXdyaXRlOiAyMDE3X1U3ICh1cHN0cmVh bSkgPT4gMjAxNy43ICh4YnBzKQotX3Zlcj0ke3ZlcnNpb24vLi9ffQotd3Jrc3JjPSJvbmVUQkIt JHtfdmVyfSIKLWJ1aWxkX3N0eWxlPWdudS1tYWtlZmlsZQotaG9zdG1ha2VkZXBlbmRzPSJjbWFr ZSIKK3dya3NyYz0ib25lVEJCLSR7dmVyc2lvbn0iCitidWlsZF9zdHlsZT1jbWFrZQorbWFrZWRl cGVuZHM9ImxpYmh3bG9jLWRldmVsIGxpYmdvbXAtZGV2ZWwiCiBzaG9ydF9kZXNjPSJJbnRlbCBU aHJlYWRpbmcgQnVpbGRpbmcgQmxvY2tzIgogbWFpbnRhaW5lcj0iQW5kcmVhIEJyYW5jYWxlb25p IDxhYmNAcG9tcGVsLm1lPiIKIGxpY2Vuc2U9IkFwYWNoZS0yLjAiCiBob21lcGFnZT0iaHR0cHM6 Ly93d3cudGhyZWFkaW5nYnVpbGRpbmdibG9ja3Mub3JnIgotZGlzdGZpbGVzPSJodHRwczovL2dp dGh1Yi5jb20vb25lYXBpLXNyYy9vbmVUQkIvYXJjaGl2ZS8ke192ZXJ9LnRhci5neiIKLWNoZWNr c3VtPTIxMDNjYzYyMzhjOTM1NjY0Zjg3NjgwNjE4ZjY2ODRkNTc1MDFkNGEyZmE4ZWE4ZjZjOTdh ZDZmZjdkYzcyMmEKLQotY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JeDg2XzY0KikK LQkJbWFrZV9idWlsZF9hcmdzPSJhcmNoPWludGVsNjQiCi0JCTs7Ci0JaTY4NiopCi0JCW1ha2Vf YnVpbGRfYXJncz0iYXJjaD1pYTMyIgotCQk7OwotCWFybXY3bCopCi0JCW1ha2VfYnVpbGRfYXJn cz0iYXJjaD1hcm12NyIKLQkJOzsKLQlhYXJjaDY0KikKLQkJbWFrZV9idWlsZF9hcmdzPSJhcmNo PWFybTY0IgotCQk7OwotCXBwYzY0KikKLQkJbWFrZV9idWlsZF9hcmdzPSJhcmNoPXBwYzY0Igot CQk7OwotCXBwYyopCi0JCW1ha2VfYnVpbGRfYXJncz0iYXJjaD1wcGMzMiIKLQkJOzsKLQkqKQot CQkjIG1ha2Ugc3VyZSB0byBmYWxsIGJhY2sgaW5zdGVhZCBvZiBsZXR0aW5nIGhvc3QgdW5hbWUg Y29udHJvbCBpdAotCQltYWtlX2J1aWxkX2FyZ3M9ImFyY2g9Z2VuZXJpYyIKLQkJOzsKLWVzYWMK LQotcG9zdF9leHRyYWN0KCkgewotCXNlZCAtaSAnc3xDUExVUyA9IGcuLnxDUExVUyA9ICQoQ1hY KXxnJyBidWlsZC9saW51eC5nY2MuaW5jCi0Jc2VkIC1pICdzfENPTkxZID0gZ2NjfENPTkxZID0g JChDQyl8ZycgYnVpbGQvbGludXguZ2NjLmluYworZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5j b20vb25lYXBpLXNyYy9vbmVUQkIvYXJjaGl2ZS92JHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1 bT04ZjYxNjU2MTYwMzY5NWJiYjgzODcxODc1ZDJjNjA1MWVhMjhmODE4N2RiZTU5Mjk5OTYxMzY5 OTA0ZDFkNDllCiAKK3ByZV9wYXRjaCgpIHsKIAkjIGFsdGVybmF0aXZlIG1pZ2h0IGJlOgogCSMg aHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2NnaXQvYXBvcnRzL3RyZWUvdGVzdGluZy9saWJ0 YmIvZ2xpYmMtc3RydWN0LW1hbGxpbmZvLnBhdGNoCiAJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMi ID0gIm11c2wiIF07IHRoZW4KIAkJdnNlZCAtZSAic0AjZGVmaW5lIE1BTExPQ19VTklYTElLRV9P VkVSTE9BRF9FTkFCTEVEIF9fbGludXhfX0BAIiBcCi0JCSAgLWkgc3JjL3RiYm1hbGxvYy9wcm94 eS5oCisJCSAgLWkgc3JjL3RiYm1hbGxvY19wcm94eS9wcm94eS5oCiAJZmkKIH0KIAotZG9faW5z dGFsbCgpIHsKLQl2bWtkaXIgdXNyL2xpYgotCXZjb3B5IGJ1aWxkL2xpbnV4XyovKi5zbyogdXNy L2xpYgotCXZta2RpciB1c3IvaW5jbHVkZS90YmIKLQl2Y29weSBpbmNsdWRlL3RiYi8qIHVzci9p bmNsdWRlL3RiYgotCi0JY21ha2UgXAotCQktRElOU1RBTExfRElSPSRERVNURElSL3Vzci9saWIv Y21ha2UvVEJCIFwKLQkJLURTWVNURU1fTkFNRT1MaW51eCBcCi0JCS1ETElCX1JFTF9QQVRIPS4u Ly4uIFwKLQkJLURJTkNfUkVMX1BBVEg9Li4vLi4vLi4vaW5jbHVkZSBcCi0JCS1QIGNtYWtlL3Ri Yl9jb25maWdfaW5zdGFsbGVyLmNtYWtlCi19Ci0KIHRiYi1kZXZlbF9wYWNrYWdlKCkgewogCWRl cGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9ydF9kZXNj Kz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9p bmNsdWRlCi0JCXZtb3ZlICJ1c3IvbGliLyouc28iCiAJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJ dm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwkJdm1vdmUgdXNyL2xpYi8qLnNvCiAJfQogfQoKRnJv bSAzY2NhYzc4OWQ1MTE0NmFlM2Q1MDdkYzYzYzU4MTdkNGRiMzdkMDAwIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5k ZXY+CkRhdGU6IFN1biwgMTggSnVsIDIwMjEgMTg6Mjk6MzggKzAzMDAKU3ViamVjdDogW1BBVENI IDAzLzExXSBPcGVuU3ViZGl2OiB1cGRhdGUgdG8gMy40LjQuCgotLS0KIHNyY3BrZ3MvT3BlblN1 YmRpdi90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL09wZW5TdWJkaXYvdGVtcGxhdGUg Yi9zcmNwa2dzL09wZW5TdWJkaXYvdGVtcGxhdGUKaW5kZXggYjdhNWUxNmVmYmNmLi5kZmJmMjlj YzFhNTIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvT3BlblN1YmRpdi90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL09wZW5TdWJkaXYvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdPcGVuU3ViZGl2JwogcGtnbmFtZT1PcGVuU3ViZGl2Ci12ZXJzaW9uPTMuNC4zCit2ZXJz aW9uPTMuNC40CiByZXZpc2lvbj0xCiB3cmtzcmM9Ik9wZW5TdWJkaXYtJHt2ZXJzaW9uLy8uL199 IgogYnVpbGRfc3R5bGU9Y21ha2UKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5lcj0iSm9obiA8 bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkFwYWNoZS0yLjAiCiBob21lcGFnZT0iaHR0 cDovL2dyYXBoaWNzLnBpeGFyLmNvbS9vcGVuc3ViZGl2L2RvY3MvaW50cm8uaHRtbCIKIGRpc3Rm aWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL1BpeGFyQW5pbWF0aW9uU3R1ZGlvcy9PcGVuU3ViZGl2 L2FyY2hpdmUvdiR7dmVyc2lvbi8vLi9ffS50YXIuZ3oiCi1jaGVja3N1bT03YjIyZWIyN2Q2MzZh YjBjMWUwMzcyMmM3YTVhNWJkNGYxMTY2NGVlNjVjOWI0OGYzNDFhNmQwY2U3ZjM2NzQ1CitjaGVj a3N1bT0yMGQ0OWY4MGEyYjc3OGFkNGQwMWYwOTFhZDg4ZDhjMmY5MWNmNmM3MzYzOTQwYzYyMTMy NDFjZTZmMTA0OGZiCiAKIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCWhvc3RtYWtlZGVw ZW5kcys9IiBPcGVuU3ViZGl2IgoKRnJvbSBlZWEwMzA0M2Q1MjE0MTI5MmI3OWE2ZmI3MTgyZDgz ZWU1NzU1MTkwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZy ZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CkRhdGU6IFN1biwgMTggSnVsIDIwMjEgMTg6Mjk6 MzggKzAzMDAKU3ViamVjdDogW1BBVENIIDA0LzExXSBQcnVzYVNsaWNlcjogdXBkYXRlIHRvIDIu My4zLgoKLS0tCiBzcmNwa2dzL1BydXNhU2xpY2VyL3BhdGNoZXMvY3Jvc3MucGF0Y2ggfCAxMSAt LS0tLS0tLS0tLQogc3JjcGtncy9QcnVzYVNsaWNlci90ZW1wbGF0ZSAgICAgICAgICAgIHwgIDQg KystLQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvUHJ1c2FTbGljZXIvcGF0Y2hlcy9jcm9zcy5wYXRj aAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvUHJ1c2FTbGljZXIvcGF0Y2hlcy9jcm9zcy5wYXRjaCBi L3NyY3BrZ3MvUHJ1c2FTbGljZXIvcGF0Y2hlcy9jcm9zcy5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggZDY0YTQ1MGQ5ZTlmLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9Q cnVzYVNsaWNlci9wYXRjaGVzL2Nyb3NzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAs MCBAQAotLS0tIGEvc3JjL2F2cmR1ZGUvQ01ha2VMaXN0cy50eHQJMjAyMC0wNi0wNCAwOToxOToy Ni4wMTcyNTEyMTUgKzAyMDAKLSsrKyBiL3NyYy9hdnJkdWRlL0NNYWtlTGlzdHMudHh0CTIwMjAt MDYtMDQgMDk6MTk6MzYuNDY4MjUwNzcxICswMjAwCi1AQCAtODMsNyArODMsNyBAQCBhZGRfZXhl Y3V0YWJsZShhdnJkdWRlLWNvbmYtZ2VuIGNvbmYtZ2VuCi0gYWRkX2N1c3RvbV9jb21tYW5kKAot ICAgICBERVBFTkRTIGF2cmR1ZGUtY29uZi1nZW4gJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9 L2F2cmR1ZGUtc2xpYzNyLmNvbmYKLSAgICAgT1VUUFVUICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllf RElSfS9hdnJkdWRlLXNsaWMzci5jb25mLmgKLS0gICAgQ09NTUFORCAkPFRBUkdFVF9GSUxFOmF2 cmR1ZGUtY29uZi1nZW4+IGF2cmR1ZGUtc2xpYzNyLmNvbmYgYXZyZHVkZV9zbGljM3JfY29uZiAk e0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vYXZyZHVkZS1zbGljM3IuY29uZi5oCi0rICAgIENP TU1BTkQgYXZyZHVkZS1jb25mLWdlbiBhdnJkdWRlLXNsaWMzci5jb25mIGF2cmR1ZGVfc2xpYzNy X2NvbmYgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9L2F2cmR1ZGUtc2xpYzNyLmNvbmYuaAot ICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0KLSApCi0g CmRpZmYgLS1naXQgYS9zcmNwa2dzL1BydXNhU2xpY2VyL3RlbXBsYXRlIGIvc3JjcGtncy9QcnVz YVNsaWNlci90ZW1wbGF0ZQppbmRleCBkZDBlNzZjYjgwMTcuLmE5MzgzMmFjMDJlNCAxMDA2NDQK LS0tIGEvc3JjcGtncy9QcnVzYVNsaWNlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL1BydXNhU2xp Y2VyL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnUHJ1c2FT bGljZXInCiBwa2duYW1lPVBydXNhU2xpY2VyCi12ZXJzaW9uPTIuMy4wCit2ZXJzaW9uPTIuMy4z CiByZXZpc2lvbj0xCiB3cmtzcmM9IlBydXNhU2xpY2VyLXZlcnNpb25fJHt2ZXJzaW9ufSIKIGJ1 aWxkX3N0eWxlPWNtYWtlCkBAIC0xNiw3ICsxNiw3IEBAIG1haW50YWluZXI9Ikphc3BlciBDaGFu IDxqYXNwZXJjaGFuNTE1QGdtYWlsLmNvbT4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnBydXNhM2QuY29tL3BydXNhc2xpY2VyLyIKIGRpc3RmaWxl cz0iaHR0cHM6Ly9naXRodWIuY29tL3BydXNhM2QvUHJ1c2FzbGljZXIvYXJjaGl2ZS92ZXJzaW9u XyR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09Y2QzYmFjNWUyOWI1NDQxZmM0NjkwZjI4Y2Q3 YjEwNjRlOTdkYzAwMjA3YmJkYzg4ZjdiZDc4MzIzMDhkNmNhNQorY2hlY2tzdW09ZGVkYTIwOTUw NWY3NDBhYzNkNmY1OWNiMmE5NjBmNGRmOTA4MjY5ZWUwOWJkMzBjZDRlZGI5ZmM0NzJkMjlhYwog bm9jcm9zcz0iaHR0cHM6Ly9idWlsZC52b2lkbGludXgub3JnL2J1aWxkZXJzL2FybXY3bF9idWls ZGVyL2J1aWxkcy8yNTIzMC9zdGVwcy9zaGVsbF8zL2xvZ3Mvc3RkaW8iCiAKIFNsaWMzclBFX3Bh Y2thZ2UoKSB7CgpGcm9tIDhjZDc5ZmI4MmRkZjI4YzlhOGRlOGQ2YTY0ZDZjYzFhMjQ5YjQ1ODMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFydHVyIFNpbmlsYSA8ZnJlZXNvZnR3YXJl QGxvZ2FyaXRobXVzLmRldj4KRGF0ZTogU3VuLCAxOCBKdWwgMjAyMSAxODoyOTozOSArMDMwMApT dWJqZWN0OiBbUEFUQ0ggMDUvMTFdIGJsZW5kZXI6IHVwZGF0ZSB0byAyLjkzLjEuCgotLS0KIHNy Y3BrZ3MvYmxlbmRlci90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmxlbmRlci90ZW1wbGF0 ZSBiL3NyY3BrZ3MvYmxlbmRlci90ZW1wbGF0ZQppbmRleCBhZjk0NmMyYjc5OTkuLjgzMTgzMTdj ODJiZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9ibGVuZGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv YmxlbmRlci90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Js ZW5kZXInCiBwa2duYW1lPWJsZW5kZXIKLXZlcnNpb249Mi45My4wCit2ZXJzaW9uPTIuOTMuMQog cmV2aXNpb249MQogYXJjaHM9Ing4Nl82NCogcHBjNjQqIgogYnVpbGRfc3R5bGU9ImNtYWtlIgoK RnJvbSBmOGU2NGViNDMyYzY4N2I3ZjE4MjYyOGFmMDRhZmNjMzk4NTBhZDhkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11 cy5kZXY+CkRhdGU6IFN1biwgMTggSnVsIDIwMjEgMTg6Mjk6MzkgKzAzMDAKU3ViamVjdDogW1BB VENIIDA2LzExXSBlbWJyZWU6IHVwZGF0ZSB0byAzLjEzLjAuCgotLS0KIHNyY3BrZ3MvZW1icmVl L3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbWJyZWUvdGVtcGxhdGUgYi9zcmNw a2dzL2VtYnJlZS90ZW1wbGF0ZQppbmRleCA1NzViOWJjYjQwMWMuLmI2ZjM3NmQzMGVmYSAxMDA2 NDQKLS0tIGEvc3JjcGtncy9lbWJyZWUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9lbWJyZWUvdGVt cGxhdGUKQEAgLTEsOCArMSw4IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdlbWJyZWUnCiBwa2du YW1lPWVtYnJlZQotdmVyc2lvbj0yLjE3LjcKLXJldmlzaW9uPTIKLWFyY2hzPSJ4ODZfNjQiCit2 ZXJzaW9uPTMuMTMuMAorcmV2aXNpb249MQorYXJjaHM9Ing4Nl82NCoiCiBidWlsZF9zdHlsZT1j bWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EVEJCX1JPT1Q9L3VzciAtREVNQlJFRV9JR05PUkVfQ01B S0VfQ1hYX0ZMQUdTPU9GRiIKIGhvc3RtYWtlZGVwZW5kcz0iaXNwYyIKCkZyb20gOTI0YzhjOGRk ZmM5NDAwMGNjNTJjNDNjZDJjYzI4NWJhZmI1M2Y0NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogQXJ0dXIgU2luaWxhIDxmcmVlc29mdHdhcmVAbG9nYXJpdGhtdXMuZGV2PgpEYXRlOiBT YXQsIDI0IEp1bCAyMDIxIDAzOjM0OjQzICswMzAwClN1YmplY3Q6IFtQQVRDSCAwNy8xMV0gb3Bl bmltYWdlaW86IHVwZGF0ZSB0byAyLjIuMTYuMC4KCi0tLQogc3JjcGtncy9vcGVuaW1hZ2Vpby90 ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmltYWdlaW8vdGVtcGxhdGUgYi9z cmNwa2dzL29wZW5pbWFnZWlvL3RlbXBsYXRlCmluZGV4IGRlOGUxY2QwNDQwOS4uM2JmZGQ0ZTBl ZDFlIDEwMDY0NAotLS0gYS9zcmNwa2dzL29wZW5pbWFnZWlvL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3Mvb3BlbmltYWdlaW8vdGVtcGxhdGUKQEAgLTEsMTEgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ29wZW5pbWFnZWlvJwogcGtnbmFtZT1vcGVuaW1hZ2VpbwotdmVyc2lvbj0yLjIuMTUu MQordmVyc2lvbj0yLjIuMTYuMAogcmV2aXNpb249MQogd3Jrc3JjPSJvaWlvLVJlbGVhc2UtJHt2 ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURVU0VfT1BFTkdM PTAgLURVU0VfUVQ9MCAtRFVTRV9QWVRIT049MCAtRE9JSU9fQlVJTERfVEVTVFM9MQotIC1EU1RP UF9PTl9XQVJOSU5HPTAgLURVU0VfU1REX1JFR0VYX0VYSVRDT0RFPTAiCisgLURTVE9QX09OX1dB Uk5JTkc9MCAtRFVTRV9TVERfUkVHRVhfRVhJVENPREU9MCAtRENNQUtFX0NYWF9TVEFOREFSRD0x NCIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBnaXQiCiBtYWtlZGVwZW5kcz0iYm9vc3Qt ZGV2ZWwgZ2lmbGliLWRldmVsIGxpYnJhdy1kZXZlbCBsaWJvcGVuanBlZy1kZXZlbCBsaWJ3ZWJw LWRldmVsCiAgbGlianBlZy10dXJiby1kZXZlbCB0aWZmLWRldmVsIGxpYnBuZy1kZXZlbCBsaWJv cGVuZXhyLWRldmVsIGZyZWV0eXBlLWRldmVsCkBAIC0xNyw3ICsxNyw3IEBAIGxpY2Vuc2U9IkJT RC0zLUNsYXVzZSIKIGhvbWVwYWdlPSJodHRwczovL3NpdGVzLmdvb2dsZS5jb20vc2l0ZS9vcGVu aW1hZ2Vpby9ob21lIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5j b20vT3BlbkltYWdlSU8vb2lpby9yZWxlYXNlL0NIQU5HRVMubWQiCiBkaXN0ZmlsZXM9Imh0dHBz Oi8vZ2l0aHViLmNvbS9PcGVuSW1hZ2VJTy9vaWlvL2FyY2hpdmUvUmVsZWFzZS0ke3ZlcnNpb259 LnRhci5neiIKLWNoZWNrc3VtPWYyMjJjNmI1MWE0MGFhYmJjODBkZGY0MDU1NTM1YmU5YWYxZmZh OTA3NDUyZmE2ZDFmZmE3Njc0ODU0YWFiMTcKK2NoZWNrc3VtPWQxYTU5ZjMyZGJiYTNiYTcxYWQy ZTYyZTEwNzAzNGQxYzUyODdiY2ExYjA2OTY0NzRlOTI3ZDUwNGNkMDVlZjQKICMgUnVucyBjaGVj a3MgZXZlbiBmb3IgZmVhdHVyZXMgd2UgZGlzYWJsZWQuCiBtYWtlX2NoZWNrPW5vCiAKCkZyb20g ZWNiNTgzNzVjOWM5Mjc0YTFiZTE2MzcxMDQ5ZGQ1MWQxYjBmMzRmNCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogQXJ0dXIgU2luaWxhIDxmcmVlc29mdHdhcmVAbG9nYXJpdGhtdXMuZGV2 PgpEYXRlOiBTdW4sIDE4IEp1bCAyMDIxIDE4OjI5OjQwICswMzAwClN1YmplY3Q6IFtQQVRDSCAw OC8xMV0gb3BlbmltYWdlZGVub2lzZTogdXBkYXRlIHRvIDEuNC4xLgoKLS0tCiBzcmNwa2dzL29w ZW5pbWFnZWRlbm9pc2UvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5pbWFnZWRlbm9p c2UvdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5pbWFnZWRlbm9pc2UvdGVtcGxhdGUKaW5kZXggYzcz OTEzYjRlOWQ3Li4xNDA1NWFmZjFjMjcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb3BlbmltYWdlZGVu b2lzZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29wZW5pbWFnZWRlbm9pc2UvdGVtcGxhdGUKQEAg LTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVuaW1hZ2VkZW5vaXNlJwogcGtn bmFtZT1vcGVuaW1hZ2VkZW5vaXNlCi12ZXJzaW9uPTEuNC4wCit2ZXJzaW9uPTEuNC4xCiByZXZp c2lvbj0xCiBhcmNocz0ieDg2XzY0KiIKIHdya3NyYz1vaWRuLSR7dmVyc2lvbn0KCkZyb20gMDRl ZTRjMTQ5NzQyZmQ2ZDU2ZjlhNjJkZDhkODYxYmQ2MTIxNzA4NSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQXJ0dXIgU2luaWxhIDxmcmVlc29mdHdhcmVAbG9nYXJpdGhtdXMuZGV2PgpE YXRlOiBTdW4sIDE4IEp1bCAyMDIxIDE4OjI5OjQwICswMzAwClN1YmplY3Q6IFtQQVRDSCAwOS8x MV0gb3BlbnZkYjogdXBkYXRlIHRvIDguMS4wLgoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKy0KIHNyY3BrZ3Mvb3BlbnZkYi9wYXRjaGVzLzAw LXRiYi0yMDIxLnBhdGNoIHwgMTMyMCArKysrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3Mvb3Bl bnZkYi90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgIHwgICAxNiArLQogMyBmaWxlcyBjaGFuZ2Vk LCAxMzI1IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3Mvb3BlbnZkYi9wYXRjaGVzLzAwLXRiYi0yMDIxLnBhdGNoCgpkaWZmIC0tZ2l0IGEv Y29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggNmI3Y2E1ZmJjMjQ5Li4yYTdhY2Ri MjUzYTcgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAt Mzg4Myw3ICszODgzLDcgQEAgbGliamFuZXQuc28uMS4xNiBqYW5ldC0xLjE2LjBfMQogbGliT3Bl bkltYWdlRGVub2lzZS5zby4xIG9wZW5pbWFnZWRlbm9pc2UtMS4zLjBfMQogbGliY2JhbmcwLnNv IGNiYW5nLTEuNi4wXzMKIGxpYmJsb3NjLnNvLjEgYy1ibG9zYy0xLjE3LjFfMQotbGlib3BlbnZk Yi5zby43LjAgb3BlbnZkYi03LjAuMF8xCitsaWJvcGVudmRiLnNvLjguMSBvcGVudmRiLTguMS4w XzEKIGxpYkFsZW1iaWMuc28uMS43IGFsZW1iaWMtMS43LjEzXzEKIGxpYm1vZHNlY3VyaXR5LnNv LjMgbW9kc2VjdXJpdHktMy4wLjRfMQogbGlicmF2ZW4uc28uMCBidWRnaWUtZGVza3RvcC0xMC41 LjFfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVudmRiL3BhdGNoZXMvMDAtdGJiLTIwMjEucGF0 Y2ggYi9zcmNwa2dzL29wZW52ZGIvcGF0Y2hlcy8wMC10YmItMjAyMS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjI3MTEwNGFmM2RmOQotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3Mvb3BlbnZkYi9wYXRjaGVzLzAwLXRiYi0yMDIxLnBhdGNoCkBAIC0wLDAg KzEsMTMyMCBAQAoraHR0cHM6Ly9naXRodWIuY29tL0FjYWRlbXlTb2Z0d2FyZUZvdW5kYXRpb24v b3BlbnZkYi9wdWxsLzEwMjcKK1Nob3VsZCBiZSBkcm9wcGVkIGFmdGVyIDguMS4xIHJlbGVhc2Uu CisKK2RpZmYgLS1naXQgYS9jbWFrZS9GaW5kVEJCLmNtYWtlIGIvY21ha2UvRmluZFRCQi5jbWFr ZQoraW5kZXggZDQxNDM2YjFjLi4wNmRlMmIzZjMgMTAwNjQ0CistLS0gYS9jbWFrZS9GaW5kVEJC LmNtYWtlCisrKysgYi9jbWFrZS9GaW5kVEJCLmNtYWtlCitAQCAtMTY5LDggKzE2OSwyMiBAQCBm aW5kX3BhdGgoVGJiX0lOQ0xVREVfRElSIHRiYi90YmJfc3RkZGVmLmgKKyAgIFBBVEhfU1VGRklY RVMgJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9IGluY2x1ZGUKKyApCisgCistaWYoRVhJU1RT ICIke1RiYl9JTkNMVURFX0RJUn0vdGJiL3RiYl9zdGRkZWYuaCIpCistICBmaWxlKFNUUklOR1Mg IiR7VGJiX0lOQ0xVREVfRElSfS90YmIvdGJiX3N0ZGRlZi5oIgorK3NldChfdGJiX3ZlcnNpb25f ZmlsZSAiJHtUYmJfSU5DTFVERV9ESVJ9L3RiYi90YmJfc3RkZGVmLmgiKQorKworK2lmKE5PVCBF WElTVFMgJHtfdGJiX3ZlcnNpb25fZmlsZX0pCisrICAjIEZyb20gVEJCIDIwMjEsIHRiYl9zdGRk ZWYgaXMgcmVtb3ZlZCBhbmQgdGhlIGRpcmVjdG9yeSBpbmNsdWRlL3RiYiBpcworKyAgIyBzaW1w bHkgYW4gYWxpYXMgZm9yIGluY2x1ZGUvb25lYXBpL3RiYi4gVHJ5IGFuZCBmaW5kIHRoZSB2ZXJz aW9uIGhlYWRlcgorKyAgIyBpbiBvbmVhcGkvdGJiCisrICBmaW5kX3BhdGgoVGJiX0lOQ0xVREVf RElSIG9uZWFwaS90YmIvdmVyc2lvbi5oCisrICAgICR7X0ZJTkRfVEJCX0FERElUSU9OQUxfT1BU SU9OU30KKysgICAgUEFUSFMgJHtfVEJCX0lOQ0xVREVfU0VBUkNIX0RJUlN9CisrICAgIFBBVEhf U1VGRklYRVMgJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9IGluY2x1ZGUKKysgICkKKysgIHNl dChfdGJiX3ZlcnNpb25fZmlsZSAiJHtUYmJfSU5DTFVERV9ESVJ9L29uZWFwaS90YmIvdmVyc2lv bi5oIikKKytlbmRpZigpCisrCisraWYoRVhJU1RTICR7X3RiYl92ZXJzaW9uX2ZpbGV9KQorKyAg ZmlsZShTVFJJTkdTICR7X3RiYl92ZXJzaW9uX2ZpbGV9CisgICAgIF90YmJfdmVyc2lvbl9tYWpv cl9zdHJpbmcgUkVHRVggIiNkZWZpbmUgVEJCX1ZFUlNJT05fTUFKT1IgIgorICAgKQorICAgc3Ry aW5nKFJFR0VYIFJFUExBQ0UgIiNkZWZpbmUgVEJCX1ZFUlNJT05fTUFKT1IiICIiCitAQCAtMTc4 LDcgKzE5Miw3IEBAIGlmKEVYSVNUUyAiJHtUYmJfSU5DTFVERV9ESVJ9L3RiYi90YmJfc3RkZGVm LmgiKQorICAgKQorICAgc3RyaW5nKFNUUklQICIke190YmJfdmVyc2lvbl9tYWpvcl9zdHJpbmd9 IiBUYmJfVkVSU0lPTl9NQUpPUikKKyAKKy0gIGZpbGUoU1RSSU5HUyAiJHtUYmJfSU5DTFVERV9E SVJ9L3RiYi90YmJfc3RkZGVmLmgiCisrICBmaWxlKFNUUklOR1MgJHtfdGJiX3ZlcnNpb25fZmls ZX0KKyAgICAgIF90YmJfdmVyc2lvbl9taW5vcl9zdHJpbmcgUkVHRVggIiNkZWZpbmUgVEJCX1ZF UlNJT05fTUlOT1IgIgorICAgKQorICAgc3RyaW5nKFJFR0VYIFJFUExBQ0UgIiNkZWZpbmUgVEJC X1ZFUlNJT05fTUlOT1IiICIiCitAQCAtMTkyLDYgKzIwNiw4IEBAIGlmKEVYSVNUUyAiJHtUYmJf SU5DTFVERV9ESVJ9L3RiYi90YmJfc3RkZGVmLmgiKQorICAgc2V0KFRiYl9WRVJTSU9OICR7VGJi X1ZFUlNJT05fTUFKT1J9LiR7VGJiX1ZFUlNJT05fTUlOT1J9KQorIGVuZGlmKCkKKyAKKyt1bnNl dChfdGJiX3ZlcnNpb25fZmlsZSkKKysKKyAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICMgIFNlYXJjaCBm b3IgVEJCIGxpYiBESVIKKyAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZGlmZiAtLWdpdCBhL29wZW52ZGIv b3BlbnZkYi9DTWFrZUxpc3RzLnR4dCBiL29wZW52ZGIvb3BlbnZkYi9DTWFrZUxpc3RzLnR4dAor aW5kZXggODg1NDNkZjNhLi45MjlmZTk0ZDEgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIv Q01ha2VMaXN0cy50eHQKKysrKyBiL29wZW52ZGIvb3BlbnZkYi9DTWFrZUxpc3RzLnR4dAorQEAg LTQzNyw2ICs0MzcsMTAgQEAgc2V0KE9QRU5WREJfTElCUkFSWV9VVElMX0lOQ0xVREVfRklMRVMK KyAgIHV0aWwvVXRpbC5oCisgKQorIAorK3NldChPUEVOVkRCX0xJQlJBUllfVEhSRUFEX0lOQ0xV REVfRklMRVMKKysgIHRocmVhZC9UaHJlYWRpbmcuaAorKykKKysKKyAjIEB0b2RvIENNYWtlID49 IDMuMTIsIHVzZSBhbiBvYmplY3QgbGlicmFyeSB0byBjb25zb2xpZGF0ZSBzaGFyZWQvc3RhdGlj CisgIyBidWlsZHMuIFRoZXJlIGFyZSBsaW1pdGF0aW9ucyB3aXRoIGVhcmxpZXIgdmVyc2lvbnMg b2YgQ01ha2Ugd2hlbiB1c2VkIHdpdGgKKyAjIGltcG9ydGVkIHRhcmdldHMuCitAQCAtNTkyLDMg KzU5Niw0IEBAIGluc3RhbGwoRklMRVMgJHtPUEVOVkRCX0xJQlJBUllfUE9JTlRTX0lOQ0xVREVf RklMRVN9IERFU1RJTkFUSU9OICR7T1BFTlZEQl9JTlNUCisgaW5zdGFsbChGSUxFUyAke09QRU5W REJfTElCUkFSWV9UT09MU19JTkNMVURFX0ZJTEVTfSBERVNUSU5BVElPTiAke09QRU5WREJfSU5T VEFMTF9JTkNMVURFRElSfS90b29scykKKyBpbnN0YWxsKEZJTEVTICR7T1BFTlZEQl9MSUJSQVJZ X1RSRUVfSU5DTFVERV9GSUxFU30gREVTVElOQVRJT04gJHtPUEVOVkRCX0lOU1RBTExfSU5DTFVE RURJUn0vdHJlZSkKKyBpbnN0YWxsKEZJTEVTICR7T1BFTlZEQl9MSUJSQVJZX1VUSUxfSU5DTFVE RV9GSUxFU30gREVTVElOQVRJT04gJHtPUEVOVkRCX0lOU1RBTExfSU5DTFVERURJUn0vdXRpbCkK KytpbnN0YWxsKEZJTEVTICR7T1BFTlZEQl9MSUJSQVJZX1RIUkVBRF9JTkNMVURFX0ZJTEVTfSBE RVNUSU5BVElPTiAke09QRU5WREJfSU5TVEFMTF9JTkNMVURFRElSfS90aHJlYWQpCitkaWZmIC0t Z2l0IGEvb3BlbnZkYi9vcGVudmRiL2NtZC9vcGVudmRiX3JlbmRlci5jYyBiL29wZW52ZGIvb3Bl bnZkYi9jbWQvb3BlbnZkYl9yZW5kZXIuY2MKK2luZGV4IGVlNWI3MzdjNS4uMmM5ODMxYmEzIDEw MDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL2NtZC9vcGVudmRiX3JlbmRlci5jYworKysrIGIv b3BlbnZkYi9vcGVudmRiL2NtZC9vcGVudmRiX3JlbmRlci5jYworQEAgLTE5LDcgKzE5LDE0IEBA CisgI2luY2x1ZGUgPE9wZW5FWFIvSW1mSGVhZGVyLmg+CisgI2luY2x1ZGUgPE9wZW5FWFIvSW1m T3V0cHV0RmlsZS5oPgorICNpbmNsdWRlIDxPcGVuRVhSL0ltZlBpeGVsVHlwZS5oPgorLSNpbmNs dWRlIDx0YmIvdGFza19zY2hlZHVsZXJfaW5pdC5oPgorKworKy8vIHRiYi90YXNrX3NjaGVkdWxl cl9pbml0Lmggd2FzIHJlbW92ZWQgaW4gVEJCIDIwMjEuIFRoZSBiZXN0IGNvbnN0cnVjdCB0byBz d2FwCisrLy8gdG8gaXMgdGJiL2dsb2JhbF9jb250cm9sIChmb3IgZXhlY3V0YWJsZXMpLiBnbG9i YWxfY29udHJvbCB3YXMgb25seSBvZmZpY2lhbGx5CisrLy8gYWRkZWQgaW4gVEJCIDIwMTlVNCBi dXQgZXhpc3RzIGluIDIwMTggYXMgYSBwcmV2aWV3IGZlYXR1cmUuIFRvIGF2b2lkIG1vcmUKKysv LyBjb21waWxlIHRpbWUgYnJhbmNoaW5nIChhcyB3ZSBzdGlsbCBzdXBwb3J0IDIwMTgpLCB3ZSB1 c2UgaXQgaW4gMjAxOCB0b28gYnkKKysvLyBlbmFibGluZyB0aGUgYmVsb3cgZGVmaW5lLgorKyNk ZWZpbmUgVEJCX1BSRVZJRVdfR0xPQkFMX0NPTlRST0wgMQorKyNpbmNsdWRlIDx0YmIvZ2xvYmFs X2NvbnRyb2wuaD4KKyAjaW5jbHVkZSA8dGJiL3RpY2tfY291bnQuaD4KKyAKKyAjaW5jbHVkZSA8 YWxnb3JpdGhtPgorQEAgLTYwNiw4ICs2MTMsMTIgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQorICAgICB9CisgCisgICAgIHRyeSB7CistICAgICAgICB0YmI6OnRhc2tfc2NoZWR1bGVy X2luaXQgc2NoZWR1bGVySW5pdCgKKy0gICAgICAgICAgICAob3B0cy50aHJlYWRzID09IDApID8g dGJiOjp0YXNrX3NjaGVkdWxlcl9pbml0OjphdXRvbWF0aWMgOiBvcHRzLnRocmVhZHMpOworKyAg ICAgICAgc3RkOjp1bmlxdWVfcHRyPHRiYjo6Z2xvYmFsX2NvbnRyb2w+IGNvbnRyb2w7CisrICAg ICAgICBpZiAob3B0cy50aHJlYWRzID4gMCkgeworKyAgICAgICAgICAgIC8vIG5vdGUsIG9wdHMu dGhyZWFkcyA9PSAwIG1lYW5zIHVzZSBhbGwgdGhyZWFkcyAoZGVmYXVsdCksIHNvIGRvbid0Cisr ICAgICAgICAgICAgLy8gbWFudWFsbHkgY3JlYXRlIGEgdGJiOjpnbG9iYWxfY29udHJvbCBpbiB0 aGlzIGNhc2UKKysgICAgICAgICAgICBjb250cm9sLnJlc2V0KG5ldyB0YmI6Omdsb2JhbF9jb250 cm9sKHRiYjo6Z2xvYmFsX2NvbnRyb2w6Om1heF9hbGxvd2VkX3BhcmFsbGVsaXNtLCBvcHRzLnRo cmVhZHMpKTsKKysgICAgICAgIH0KKyAKKyAgICAgICAgIG9wZW52ZGI6OmluaXRpYWxpemUoKTsK KyAKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvaW8vUXVldWUuY2MgYi9vcGVudmRiL29w ZW52ZGIvaW8vUXVldWUuY2MKK2luZGV4IGVmNWQyOTYxYS4uMjBmZjFhMGMxIDEwMDY0NAorLS0t IGEvb3BlbnZkYi9vcGVudmRiL2lvL1F1ZXVlLmNjCisrKysgYi9vcGVudmRiL29wZW52ZGIvaW8v UXVldWUuY2MKK0BAIC01LDIwICs1LDIyIEBACisgLy8vIEBhdXRob3IgUGV0ZXIgQ3Vja2EKKyAK KyAjaW5jbHVkZSAiUXVldWUuaCIKKy0KKyAjaW5jbHVkZSAiRmlsZS5oIgorICNpbmNsdWRlICJT dHJlYW0uaCIKKy0jaW5jbHVkZSA8b3BlbnZkYi9FeGNlcHRpb25zLmg+CistI2luY2x1ZGUgPG9w ZW52ZGIvdXRpbC9sb2dnaW5nLmg+CisrI2luY2x1ZGUgIm9wZW52ZGIvRXhjZXB0aW9ucy5oIgor KyNpbmNsdWRlICJvcGVudmRiL3V0aWwvbG9nZ2luZy5oIgorKworICNpbmNsdWRlIDx0YmIvY29u Y3VycmVudF9oYXNoX21hcC5oPgorLSNpbmNsdWRlIDx0YmIvdGFzay5oPgorLSNpbmNsdWRlIDx0 YmIvdGJiX3RocmVhZC5oPiAvLyBmb3IgdGJiOjp0aGlzX3RiYl90aHJlYWQ6OnNsZWVwKCkKKy0j aW5jbHVkZSA8dGJiL3RpY2tfY291bnQuaD4KKysjaW5jbHVkZSA8dGJiL3Rhc2tfYXJlbmEuaD4K KysKKysjaW5jbHVkZSA8dGhyZWFkPgorICNpbmNsdWRlIDxhbGdvcml0aG0+IC8vIGZvciBzdGQ6 Om1heCgpCisgI2luY2x1ZGUgPGF0b21pYz4KKyAjaW5jbHVkZSA8aW9zdHJlYW0+CisgI2luY2x1 ZGUgPG1hcD4KKyAjaW5jbHVkZSA8bXV0ZXg+CisrI2luY2x1ZGUgPGNocm9ubz4KKysKKyAKKyBu YW1lc3BhY2Ugb3BlbnZkYiB7CisgT1BFTlZEQl9VU0VfVkVSU0lPTl9OQU1FU1BBQ0UKK0BAIC0y OCwxOCArMzAsMTkgQEAgbmFtZXNwYWNlIGlvIHsKKyBuYW1lc3BhY2UgeworIAorIC8vIEFic3Ry YWN0IGJhc2UgY2xhc3MgZm9yIHF1ZXVhYmxlIFRCQiB0YXNrcyB0aGF0IGFkZHMgYSB0YXNrIGNv bXBsZXRpb24gY2FsbGJhY2sKKy1jbGFzcyBUYXNrOiBwdWJsaWMgdGJiOjp0YXNrCisrY2xhc3Mg VGFzaworIHsKKyBwdWJsaWM6CisgICAgIFRhc2soUXVldWU6OklkIGlkKTogbUlkKGlkKSB7fQor LSAgICB+VGFzaygpIG92ZXJyaWRlIHt9CisrICAgIHZpcnR1YWwgflRhc2soKSB7fQorIAorICAg ICBRdWV1ZTo6SWQgaWQoKSBjb25zdCB7IHJldHVybiBtSWQ7IH0KKyAKKyAgICAgdm9pZCBzZXRO b3RpZmllcihRdWV1ZTo6Tm90aWZpZXImIG5vdGlmaWVyKSB7IG1Ob3RpZnkgPSBub3RpZmllcjsg fQorKyAgICB2aXJ0dWFsIHZvaWQgZXhlY3V0ZSgpIGNvbnN0ID0gMDsKKyAKKyBwcm90ZWN0ZWQ6 CistICAgIHZvaWQgbm90aWZ5KFF1ZXVlOjpTdGF0dXMgc3RhdHVzKSB7IGlmIChtTm90aWZ5KSBt Tm90aWZ5KHRoaXMtPmlkKCksIHN0YXR1cyk7IH0KKysgICAgdm9pZCBub3RpZnkoUXVldWU6OlN0 YXR1cyBzdGF0dXMpIGNvbnN0IHsgaWYgKG1Ob3RpZnkpIG1Ob3RpZnkodGhpcy0+aWQoKSwgc3Rh dHVzKTsgfQorIAorIHByaXZhdGU6CisgICAgIFF1ZXVlOjpJZCBtSWQ7CitAQCAtNDgsNyArNTEs NyBAQCBjbGFzcyBUYXNrOiBwdWJsaWMgdGJiOjp0YXNrCisgCisgCisgLy8gUXVldWFibGUgVEJC IHRhc2sgdGhhdCB3cml0ZXMgb25lIG9yIG1vcmUgZ3JpZHMgdG8gYSAudmRiIGZpbGUgb3IgYW4g b3V0cHV0IHN0cmVhbQorLWNsYXNzIE91dHB1dFRhc2s6IHB1YmxpYyBUYXNrCisrY2xhc3MgT3V0 cHV0VGFzayA6IHB1YmxpYyBUYXNrCisgeworIHB1YmxpYzoKKyAgICAgT3V0cHV0VGFzayhRdWV1 ZTo6SWQgaWQsIGNvbnN0IEdyaWRDUHRyVmVjJiBncmlkcywgY29uc3QgQXJjaGl2ZSYgYXJjaGl2 ZSwKK0BAIC01NiwxMCArNTksMTAgQEAgY2xhc3MgT3V0cHV0VGFzazogcHVibGljIFRhc2sKKyAg ICAgICAgIDogVGFzayhpZCkKKyAgICAgICAgICwgbUdyaWRzKGdyaWRzKQorICAgICAgICAgLCBt QXJjaGl2ZShhcmNoaXZlLmNvcHkoKSkKKy0gICAgICAgICwgbU1ldGFkYXRhKG1ldGFkYXRhKQor LSAgICB7fQorKyAgICAgICAgLCBtTWV0YWRhdGEobWV0YWRhdGEpIHt9CisrICAgIH5PdXRwdXRU YXNrKCkgb3ZlcnJpZGUge30KKyAKKy0gICAgdGJiOjp0YXNrKiBleGVjdXRlKCkgb3ZlcnJpZGUK KysgICAgdm9pZCBleGVjdXRlKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICAgeworICAgICAgICAgUXVl dWU6OlN0YXR1cyBzdGF0dXMgPSBRdWV1ZTo6RkFJTEVEOworICAgICAgICAgdHJ5IHsKK0BAIC02 OSwxMCArNzIsOCBAQCBjbGFzcyBPdXRwdXRUYXNrOiBwdWJsaWMgVGFzaworICAgICAgICAgICAg IGlmIChjb25zdCBjaGFyKiBtc2cgPSBlLndoYXQoKSkgeworICAgICAgICAgICAgICAgICBPUEVO VkRCX0xPR19FUlJPUihtc2cpOworICAgICAgICAgICAgIH0KKy0gICAgICAgIH0gY2F0Y2ggKC4u LikgeworLSAgICAgICAgfQorKyAgICAgICAgfSBjYXRjaCAoLi4uKSB7fQorICAgICAgICAgdGhp cy0+bm90aWZ5KHN0YXR1cyk7CistICAgICAgICByZXR1cm4gbnVsbHB0cjsgLy8gbm8gc3VjY2Vz c29yIHRvIHRoaXMgdGFzaworICAgICB9CisgCisgcHJpdmF0ZToKK0BAIC05NCw3ICs5NSw2IEBA IHN0cnVjdCBRdWV1ZTo6SW1wbAorICAgICAvLy8gQHRvZG8gUHJvdmlkZSBtb3JlIGluZm9ybWF0 aW9uIHRoYW4ganVzdCAic3VjY2VlZGVkIiBvciAiZmFpbGVkIj8KKyAgICAgdXNpbmcgU3RhdHVz TWFwID0gdGJiOjpjb25jdXJyZW50X2hhc2hfbWFwPFF1ZXVlOjpJZCwgUXVldWU6OlN0YXR1cz47 CisgCistCisgICAgIEltcGwoKQorICAgICAgICAgOiBtVGltZW91dChRdWV1ZTo6REVGQVVMVF9U SU1FT1VUKQorICAgICAgICAgLCBtQ2FwYWNpdHkoUXVldWU6OkRFRkFVTFRfQ0FQQUNJVFkpCitA QCAtMTU5LDEyICsxNTksMTUgQEAgc3RydWN0IFF1ZXVlOjpJbXBsCisgCisgICAgIGJvb2wgY2Fu RW5xdWV1ZSgpIGNvbnN0IHsgcmV0dXJuIG1OdW1UYXNrcyA8IEludDY0KG1DYXBhY2l0eSk7IH0K KyAKKy0gICAgdm9pZCBlbnF1ZXVlKFRhc2smIHRhc2spCisrICAgIHZvaWQgZW5xdWV1ZShPdXRw dXRUYXNrJiB0YXNrKQorICAgICB7CistICAgICAgICB0YmI6OnRpY2tfY291bnQgc3RhcnQgPSB0 YmI6OnRpY2tfY291bnQ6Om5vdygpOworKyAgICAgICAgYXV0byBzdGFydCA9IHN0ZDo6Y2hyb25v OjpzdGVhZHlfY2xvY2s6Om5vdygpOworICAgICAgICAgd2hpbGUgKCFjYW5FbnF1ZXVlKCkpIHsK Ky0gICAgICAgICAgICB0YmI6OnRoaXNfdGJiX3RocmVhZDo6c2xlZXAodGJiOjp0aWNrX2NvdW50 OjppbnRlcnZhbF90KDAuNS8qc2VjKi8pKTsKKy0gICAgICAgICAgICBpZiAoKHRiYjo6dGlja19j b3VudDo6bm93KCkgLSBzdGFydCkuc2Vjb25kcygpID4gZG91YmxlKG1UaW1lb3V0KSkgeworKyAg ICAgICAgICAgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcigvKjAuNXMqL3N0ZDo6Y2hyb25v OjptaWxsaXNlY29uZHMoNTAwKSk7CisrICAgICAgICAgICAgYXV0byBkdXJhdGlvbiA9IHN0ZDo6 Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+KAorKyAgICAg ICAgICAgICAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSAtIHN0YXJ0KTsKKysg ICAgICAgICAgICBjb25zdCBkb3VibGUgc2Vjb25kcyA9IGRvdWJsZShkdXJhdGlvbi5jb3VudCgp KSAvIDEwMDAuMDsKKysgICAgICAgICAgICBpZiAoc2Vjb25kcyA+IGRvdWJsZShtVGltZW91dCkp IHsKKyAgICAgICAgICAgICAgICAgT1BFTlZEQl9USFJPVyhSdW50aW1lRXJyb3IsCisgICAgICAg ICAgICAgICAgICAgICAidW5hYmxlIHRvIHF1ZXVlIEkvTyB0YXNrOyAiIDw8IG1UaW1lb3V0IDw8 ICItc2Vjb25kIHRpbWUgbGltaXQgZXhwaXJlZCIpOworICAgICAgICAgICAgIH0KK0BAIC0xNzMs NyArMTc2LDEwIEBAIHN0cnVjdCBRdWV1ZTo6SW1wbAorICAgICAgICAgICAgIHN0ZDo6cGxhY2Vo b2xkZXJzOjpfMSwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8yKTsKKyAgICAgICAgIHRhc2suc2V0Tm90 aWZpZXIobm90aWZ5KTsKKyAgICAgICAgIHRoaXMtPnNldFN0YXR1cyh0YXNrLmlkKCksIFF1ZXVl OjpQRU5ESU5HKTsKKy0gICAgICAgIHRiYjo6dGFzazo6ZW5xdWV1ZSh0YXNrKTsKKysKKysgICAg ICAgIC8vIGdldCB0aGUgZ2xvYmFsIHRhc2sgYXJlbmEKKysgICAgICAgIHRiYjo6dGFza19hcmVu YSBhcmVuYSh0YmI6OnRhc2tfYXJlbmE6OmF0dGFjaHt9KTsKKysgICAgICAgIGFyZW5hLmVucXVl dWUoW3Rhc2sgPSBzdGQ6Om1vdmUodGFzayldIHsgdGFzay5leGVjdXRlKCk7IH0pOworICAgICAg ICAgKyttTnVtVGFza3M7CisgICAgIH0KKyAKK0BAIC0yMDQsNyArMjEwLDcgQEAgUXVldWU6On5R dWV1ZSgpCisgICAgIC8vLyAoZS5nLiwgYnkga2VlcGluZyBhIHN0YXRpYyByZWdpc3RyeSBvZiBx dWV1ZXMgdGhhdCBhbHNvIGRpc3BhdGNoZXMKKyAgICAgLy8vIG9yIGJsb2NrcyBub3RpZmljYXRp b25zKT8KKyAgICAgd2hpbGUgKG1JbXBsLT5tTnVtVGFza3MgPiAwKSB7CistICAgICAgICB0YmI6 OnRoaXNfdGJiX3RocmVhZDo6c2xlZXAodGJiOjp0aWNrX2NvdW50OjppbnRlcnZhbF90KDAuNS8q c2VjKi8pKTsKKysgICAgICAgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcigvKjAuNXMqL3N0 ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNTAwKSk7CisgICAgIH0KKyB9CisgCitAQCAtMjkwLDE2 ICsyOTYsOCBAQCBRdWV1ZTo6SWQKKyBRdWV1ZTo6d3JpdGVHcmlkVmVjKGNvbnN0IEdyaWRDUHRy VmVjJiBncmlkcywgY29uc3QgQXJjaGl2ZSYgYXJjaGl2ZSwgY29uc3QgTWV0YU1hcCYgbWV0YWRh dGEpCisgeworICAgICBjb25zdCBRdWV1ZTo6SWQgdGFza0lkID0gbUltcGwtPm1OZXh0SWQrKzsK Ky0gICAgLy8gRnJvbSB0aGUgIkdVSSBUaHJlYWQiIGNoYXB0ZXIgaW4gdGhlIFRCQiBEZXNpZ24g UGF0dGVybnMgZ3VpZGUKKy0gICAgT3V0cHV0VGFzayogdGFzayA9CistICAgICAgICBuZXcodGJi Ojp0YXNrOjphbGxvY2F0ZV9yb290KCkpIE91dHB1dFRhc2sodGFza0lkLCBncmlkcywgYXJjaGl2 ZSwgbWV0YWRhdGEpOworLSAgICB0cnkgeworLSAgICAgICAgbUltcGwtPmVucXVldWUoKnRhc2sp OworLSAgICB9IGNhdGNoIChvcGVudmRiOjpSdW50aW1lRXJyb3ImKSB7CistICAgICAgICAvLyBE ZXN0cm95IHRoZSB0YXNrIGlmIGl0IGNvdWxkIG5vdCBiZSBlbnF1ZXVlZCwgdGhlbiByZXRocm93 IHRoZSBleGNlcHRpb24uCistICAgICAgICB0YmI6OnRhc2s6OmRlc3Ryb3koKnRhc2spOworLSAg ICAgICAgdGhyb3c7CistICAgIH0KKysgICAgT3V0cHV0VGFzayB0YXNrKHRhc2tJZCwgZ3JpZHMs IGFyY2hpdmUsIG1ldGFkYXRhKTsKKysgICAgbUltcGwtPmVucXVldWUodGFzayk7CisgICAgIHJl dHVybiB0YXNrSWQ7CisgfQorIAorZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi9tYXRoL0Nv b3JkLmggYi9vcGVudmRiL29wZW52ZGIvbWF0aC9Db29yZC5oCitpbmRleCA1MDRiNWU5YTQuLjJl OWNmZWQ1ZCAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi9tYXRoL0Nvb3JkLmgKKysrKyBi L29wZW52ZGIvb3BlbnZkYi9tYXRoL0Nvb3JkLmgKK0BAIC0xMyw4ICsxMyw3IEBACisgI2luY2x1 ZGUgIk1hdGguaCIKKyAjaW5jbHVkZSAiVmVjMy5oIgorIAorLW5hbWVzcGFjZSB0YmIgeyBjbGFz cyBzcGxpdDsgfSAvLyBmb3J3YXJkIGRlY2xhcmF0aW9uCistCisrI2luY2x1ZGUgPHRiYi9ibG9j a2VkX3JhbmdlLmg+IC8vIGZvciB0YmI6OnNwbGl0CisgCisgbmFtZXNwYWNlIG9wZW52ZGIgewor IE9QRU5WREJfVVNFX1ZFUlNJT05fTkFNRVNQQUNFCitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVu dmRiL3BvaW50cy9Qb2ludFNhbXBsZS5oIGIvb3BlbnZkYi9vcGVudmRiL3BvaW50cy9Qb2ludFNh bXBsZS5oCitpbmRleCBhMTIyY2M0ZmIuLjI3ZWMzZmIyOSAxMDA2NDQKKy0tLSBhL29wZW52ZGIv b3BlbnZkYi9wb2ludHMvUG9pbnRTYW1wbGUuaAorKysrIGIvb3BlbnZkYi9vcGVudmRiL3BvaW50 cy9Qb2ludFNhbXBsZS5oCitAQCAtMTAsOCArMTAsOSBAQAorICNpZm5kZWYgT1BFTlZEQl9QT0lO VFNfUE9JTlRfU0FNUExFX0hBU19CRUVOX0lOQ0xVREVECisgI2RlZmluZSBPUEVOVkRCX1BPSU5U U19QT0lOVF9TQU1QTEVfSEFTX0JFRU5fSU5DTFVERUQKKyAKKy0jaW5jbHVkZSA8b3BlbnZkYi91 dGlsL051bGxJbnRlcnJ1cHRlci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3Rvb2xzL0ludGVycG9s YXRpb24uaD4KKysjaW5jbHVkZSAib3BlbnZkYi91dGlsL051bGxJbnRlcnJ1cHRlci5oIgorKyNp bmNsdWRlICJvcGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90 b29scy9JbnRlcnBvbGF0aW9uLmgiCisgCisgI2luY2x1ZGUgIlBvaW50RGF0YUdyaWQuaCIKKyAj aW5jbHVkZSAiUG9pbnRBdHRyaWJ1dGUuaCIKK0BAIC0xOSw3ICsyMCw2IEBACisgI2luY2x1ZGUg PHNzdHJlYW0+CisgI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgorIAorLQorIG5hbWVzcGFjZSBvcGVu dmRiIHsKKyBPUEVOVkRCX1VTRV9WRVJTSU9OX05BTUVTUEFDRQorIG5hbWVzcGFjZSBPUEVOVkRC X1ZFUlNJT05fTkFNRSB7CitAQCAtMjk5LDcgKzI5OSw3IEBAIGNsYXNzIFBvaW50RGF0YVNhbXBs ZXIKKyAgICAgICAgICAgICB1c2luZyBUYXJnZXRIYW5kbGVUID0gQXR0cmlidXRlV3JpdGVIYW5k bGU8dHlwZW5hbWUgU2FtcGxlcldyYXBwZXJUOjpWYWx1ZVR5cGU+OworIAorICAgICAgICAgICAg IGlmICh1dGlsOjp3YXNJbnRlcnJ1cHRlZChpbnRlcnJ1cHRlcikpIHsKKy0gICAgICAgICAgICAg ICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOworKyAgICAgICAg ICAgICAgICB0aHJlYWQ6OmNhbmNlbEdyb3VwRXhlY3V0aW9uKCk7CisgICAgICAgICAgICAgICAg IHJldHVybjsKKyAgICAgICAgICAgICB9CisgCitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRi L3RocmVhZC9UaHJlYWRpbmcuaCBiL29wZW52ZGIvb3BlbnZkYi90aHJlYWQvVGhyZWFkaW5nLmgK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAuLjBjM2IzNTZlMworLS0tIC9k ZXYvbnVsbAorKysrIGIvb3BlbnZkYi9vcGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaAorQEAgLTAs MCArMSw1NCBAQAorKy8vIENvcHlyaWdodCBDb250cmlidXRvcnMgdG8gdGhlIE9wZW5WREIgUHJv amVjdAorKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wCisrLy8KKysvLy8gQGZp bGUgVGhyZWFkaW5nLmgKKysKKysjaWZuZGVmIE9QRU5WREJfVEhSRUFEX1RIUkVBRElOR19IQVNf QkVFTl9JTkNMVURFRAorKyNkZWZpbmUgT1BFTlZEQl9USFJFQURfVEhSRUFESU5HX0hBU19CRUVO X0lOQ0xVREVECisrCisrI2luY2x1ZGUgIm9wZW52ZGIvdmVyc2lvbi5oIgorKworKy8vLyBAbm90 ZSB0YmIvYmxvY2tlZF9yYW5nZS5oIGlzIHRoZSBPTkxZIGluY2x1ZGUgdGhhdCBwZXJzaXN0cyBm cm9tIFRCQiAyMDIwCisrLy8vICAgdG8gVEJCIDIwMjEgdGhhdCBpdHNlbGYgaW5jbHVkZXMgdGhl IFRCQiBzcGVjaWZpYyB2ZXJzaW9uIGhlYWRlciBmaWxlcy4KKysvLy8gICBJbiBUQkIgMjAyMCwg dGhlIHZlcnNpb24gaGVhZGVyIHdhcyBjYWxsZWQgdGJiL3N0ZGRlZi5oLiBJbiAyMDIxLCBpdCdz CisrLy8vICAgY2FsbGVkIHRiYi92ZXJzaW9uLmguIFdlIGluY2x1ZGUgdGJiL2Jsb2NrZWRfcmFu Z2UuaCBoZXJlIHRvIGluZGlyZWN0bHkKKysvLy8gICBhY2Nlc3MgdGhlIHZlcnNpb24gZGVmaW5l cyBpbiBhIGNvbnNpc3RlbnQgd2F5IHNvIHRoYXQgZG93bnN0cmVhbQorKy8vLyAgIHNvZnR3YXJl IGRvZXNuJ3QgbmVlZCB0byBwcm92aWRlIGNvbXBpbGUgdGltZSBkZWZpbmVzLgorKyNpbmNsdWRl IDx0YmIvYmxvY2tlZF9yYW5nZS5oPgorKyNpbmNsdWRlIDx0YmIvdGFzay5oPgorKyNpbmNsdWRl IDx0YmIvdGFza19ncm91cC5oPgorKworK25hbWVzcGFjZSBvcGVudmRiIHsKKytPUEVOVkRCX1VT RV9WRVJTSU9OX05BTUVTUEFDRQorK25hbWVzcGFjZSBPUEVOVkRCX1ZFUlNJT05fTkFNRSB7Cisr bmFtZXNwYWNlIHRocmVhZCB7CisrCisraW5saW5lIGJvb2wgY2FuY2VsR3JvdXBFeGVjdXRpb24o KQorK3sKKysgICAgLy8gQG5vdGUgMTIwMDAgd2FzIHRoZSAyMDIxLjEtYmV0YTA1IHJlbGVhc2Uu IFRoZSAyMDIxLjEtYmV0YTA4IHJlbGVhc2UKKysgICAgLy8gICBpbnRyb2R1Y2VkIGN1cnJlbnRf Y29udGV4dCgpLgorKyNpZiBUQkJfSU5URVJGQUNFX1ZFUlNJT04gPj0gMTIwMDIKKysgICAgYXV0 byBjdHggPSB0YmI6OnRhc2s6OmN1cnJlbnRfY29udGV4dCgpOworKyAgICByZXR1cm4gY3R4ID8g Y3R4LT5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCkgOiBmYWxzZTsKKysjZWxzZQorKyAgICByZXR1 cm4gdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOworKyNlbmRpZgor K30KKysKKytpbmxpbmUgYm9vbCBpc0dyb3VwRXhlY3V0aW9uQ2FuY2VsbGVkKCkKKyt7CisrICAg IC8vIEBub3RlIDEyMDAwIHdhcyB0aGUgMjAyMS4xLWJldGEwNSByZWxlYXNlLiBUaGUgMjAyMS4x LWJldGEwOCByZWxlYXNlCisrICAgIC8vICAgaW50cm9kdWNlZCBjdXJyZW50X2NvbnRleHQoKS4K KysjaWYgVEJCX0lOVEVSRkFDRV9WRVJTSU9OID49IDEyMDAyCisrICAgIGF1dG8gY3R4ID0gdGJi Ojp0YXNrOjpjdXJyZW50X2NvbnRleHQoKTsKKysgICAgcmV0dXJuIGN0eCA/IGN0eC0+aXNfZ3Jv dXBfZXhlY3V0aW9uX2NhbmNlbGxlZCgpIDogZmFsc2U7CisrI2Vsc2UKKysgICAgcmV0dXJuIHRi Yjo6dGFzazo6c2VsZigpLmlzX2NhbmNlbGxlZCgpOworKyNlbmRpZgorK30KKysKKyt9IC8vIG5h bWVzcGFjZSB0aHJlYWQKKyt9IC8vIG5hbWVzcGFjZSBPUEVOVkRCX1ZFUlNJT05fTkFNRQorK30g Ly8gbmFtZXNwYWNlIG9wZW52ZGIKKysKKysjZW5kaWYgLy8gT1BFTlZEQl9USFJFQURfVEhSRUFE SU5HX0hBU19CRUVOX0lOQ0xVREVECitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xz L0NvbXBvc2l0ZS5oIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL0NvbXBvc2l0ZS5oCitpbmRleCA2 YmMxNzBiZjcuLjg4ZmY4NmY5ZiAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi90b29scy9D b21wb3NpdGUuaAorKysrIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL0NvbXBvc2l0ZS5oCitAQCAt MjQsNyArMjQsNiBAQAorICNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfZm9yLmg+CisgI2luY2x1ZGUg PHRiYi9wYXJhbGxlbF9yZWR1Y2UuaD4KKyAjaW5jbHVkZSA8dGJiL3Rhc2tfZ3JvdXAuaD4KKy0j aW5jbHVkZSA8dGJiL3Rhc2tfc2NoZWR1bGVyX2luaXQuaD4KKyAKKyAjaW5jbHVkZSA8dHlwZV90 cmFpdHM+CisgI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVu dmRiL3Rvb2xzL0RpYWdub3N0aWNzLmggYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvRGlhZ25vc3Rp Y3MuaAoraW5kZXggNjk0ZDIxNTVmLi5lNTg0NGU0NDggMTAwNjQ0CistLS0gYS9vcGVudmRiL29w ZW52ZGIvdG9vbHMvRGlhZ25vc3RpY3MuaAorKysrIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL0Rp YWdub3N0aWNzLmgKK0BAIC0xMSwxNCArMTEsMTcgQEAKKyAjaWZuZGVmIE9QRU5WREJfVE9PTFNf RElBR05PU1RJQ1NfSEFTX0JFRU5fSU5DTFVERUQKKyAjZGVmaW5lIE9QRU5WREJfVE9PTFNfRElB R05PU1RJQ1NfSEFTX0JFRU5fSU5DTFVERUQKKyAKKy0jaW5jbHVkZSA8b3BlbnZkYi9HcmlkLmg+ CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9NYXRoLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0 aC9WZWMzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9TdGVuY2lscy5oPgorLSNpbmNsdWRl IDxvcGVudmRiL21hdGgvT3BlcmF0b3JzLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdHJlZS9MZWFm TWFuYWdlci5oPgorKyNpbmNsdWRlICJvcGVudmRiL0dyaWQuaCIKKysjaW5jbHVkZSAib3BlbnZk Yi9tYXRoL01hdGguaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL1ZlYzMuaCIKKysjaW5jbHVk ZSAib3BlbnZkYi9tYXRoL1N0ZW5jaWxzLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9PcGVy YXRvcnMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90cmVlL0xlYWZNYW5hZ2VyLmgiCisrI2luY2x1 ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIgorKworICNpbmNsdWRlIDx0YmIvYmxvY2tl ZF9yYW5nZS5oPgorICNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfcmVkdWNlLmg+CisrCisgI2luY2x1 ZGUgPGNtYXRoPiAvLyBmb3Igc3RkOjppc25hbigpLCBzdGQ6OmlzZmluaXRlKCkKKyAjaW5jbHVk ZSA8c2V0PgorICNpbmNsdWRlIDxzc3RyZWFtPgorQEAgLTI2LDcgKzI5LDYgQEAKKyAjaW5jbHVk ZSA8dHlwZV90cmFpdHM+CisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAKKy0KKyBuYW1lc3BhY2Ugb3Bl bnZkYiB7CisgT1BFTlZEQl9VU0VfVkVSU0lPTl9OQU1FU1BBQ0UKKyBuYW1lc3BhY2UgT1BFTlZE Ql9WRVJTSU9OX05BTUUgeworQEAgLTExNjAsMTMgKzExNjIsMTMgQEAgSW5hY3RpdmVWb3hlbFZh bHVlczxUcmVlVHlwZT46Om9wZXJhdG9yKCkoY29uc3QgdGJiOjpibG9ja2VkX3JhbmdlPHNpemVf dD4mIHJhbmcKKyB7CisgICAgIHR5cGVuYW1lIFRyZWVUeXBlOjpMZWFmTm9kZVR5cGU6OlZhbHVl T2ZmQ0l0ZXIgaXRlcjsKKyAKKy0gICAgZm9yIChzaXplX3QgbiA9IHJhbmdlLmJlZ2luKCk7IG4g PCByYW5nZS5lbmQoKSAmJiAhdGJiOjp0YXNrOjpzZWxmKCkuaXNfY2FuY2VsbGVkKCk7ICsrbikg eworKyAgICBmb3IgKHNpemVfdCBuID0gcmFuZ2UuYmVnaW4oKTsgbiA8IHJhbmdlLmVuZCgpICYm ICF0aHJlYWQ6OmlzR3JvdXBFeGVjdXRpb25DYW5jZWxsZWQoKTsgKytuKSB7CisgICAgICAgICBm b3IgKGl0ZXIgPSBtTGVhZkFycmF5LmxlYWYobikuY2JlZ2luVmFsdWVPZmYoKTsgaXRlcjsgKytp dGVyKSB7CisgICAgICAgICAgICAgbUluYWN0aXZlVmFsdWVzLmluc2VydChpdGVyLmdldFZhbHVl KCkpOworICAgICAgICAgfQorIAorICAgICAgICAgaWYgKG1JbmFjdGl2ZVZhbHVlcy5zaXplKCkg PiBtTnVtVmFsdWVzKSB7CistICAgICAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dy b3VwX2V4ZWN1dGlvbigpOworKyAgICAgICAgICAgIHRocmVhZDo6Y2FuY2VsR3JvdXBFeGVjdXRp b24oKTsKKyAgICAgICAgIH0KKyAgICAgfQorIH0KK0BAIC0xMjUwLDE0ICsxMjUyLDE0IEBAIHRl bXBsYXRlPHR5cGVuYW1lIFRyZWVUeXBlPgorIGlubGluZSB2b2lkCisgSW5hY3RpdmVUaWxlVmFs dWVzPFRyZWVUeXBlPjo6b3BlcmF0b3IoKShJdGVyUmFuZ2UmIHJhbmdlKQorIHsKKy0gICAgZm9y ICg7IHJhbmdlICYmICF0YmI6OnRhc2s6OnNlbGYoKS5pc19jYW5jZWxsZWQoKTsgKytyYW5nZSkg eworKyAgICBmb3IgKDsgcmFuZ2UgJiYgIXRocmVhZDo6aXNHcm91cEV4ZWN1dGlvbkNhbmNlbGxl ZCgpOyArK3JhbmdlKSB7CisgICAgICAgICB0eXBlbmFtZSBUcmVlVHlwZTo6VmFsdWVPZmZDSXRl ciBpdGVyID0gcmFuZ2UuaXRlcmF0b3IoKTsKKyAgICAgICAgIGZvciAoOyBpdGVyOyArK2l0ZXIp IHsKKyAgICAgICAgICAgICBtSW5hY3RpdmVWYWx1ZXMuaW5zZXJ0KGl0ZXIuZ2V0VmFsdWUoKSk7 CisgICAgICAgICB9CisgCisgICAgICAgICBpZiAobUluYWN0aXZlVmFsdWVzLnNpemUoKSA+IG1O dW1WYWx1ZXMpIHsKKy0gICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBf ZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgdGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigp OworICAgICAgICAgfQorICAgICB9CisgfQorZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90 b29scy9GaWx0ZXIuaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9GaWx0ZXIuaAoraW5kZXggNDA4 Yzc1NTQxLi5iNzAyMTI1MjAgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvRmls dGVyLmgKKysrKyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9GaWx0ZXIuaAorQEAgLTE0LDIxICsx NCwyNCBAQAorICNpZm5kZWYgT1BFTlZEQl9UT09MU19GSUxURVJfSEFTX0JFRU5fSU5DTFVERUQK KyAjZGVmaW5lIE9QRU5WREJfVE9PTFNfRklMVEVSX0hBU19CRUVOX0lOQ0xVREVECisgCistI2lu Y2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9UeXBlcy5oPgor LSNpbmNsdWRlIDxvcGVudmRiL21hdGgvTWF0aC5oPgorLSNpbmNsdWRlIDxvcGVudmRiL21hdGgv U3RlbmNpbHMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL1RyYW5zZm9ybS5oPgorLSNpbmNs dWRlIDxvcGVudmRiL3RyZWUvTm9kZU1hbmFnZXIuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi90cmVl L0xlYWZNYW5hZ2VyLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIu aD4KKy0jaW5jbHVkZSA8b3BlbnZkYi91dGlsL1V0aWwuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9H cmlkLmg+CisrI2luY2x1ZGUgIm9wZW52ZGIvVHlwZXMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9H cmlkLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9NYXRoLmgiCisrI2luY2x1ZGUgIm9wZW52 ZGIvbWF0aC9TdGVuY2lscy5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvVHJhbnNmb3JtLmgi CisrI2luY2x1ZGUgIm9wZW52ZGIvdHJlZS9Ob2RlTWFuYWdlci5oIgorKyNpbmNsdWRlICJvcGVu dmRiL3RyZWUvTGVhZk1hbmFnZXIuaCIKKysjaW5jbHVkZSAib3BlbnZkYi91dGlsL051bGxJbnRl cnJ1cHRlci5oIgorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwvVXRpbC5oIgorKyNpbmNsdWRlICJv cGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaCIKKyAjaW5jbHVkZSAiSW50ZXJwb2xhdGlvbi5oIgor KworKyNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfZm9yLmg+CisrI2luY2x1ZGUgPHRiYi9jb25jdXJy ZW50X3ZlY3Rvci5oPgorKworICNpbmNsdWRlIDxhbGdvcml0aG0+IC8vIGZvciBzdGQ6Om1heCgp CisgI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisgI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgorLSNpbmNs dWRlIDx0YmIvY29uY3VycmVudF92ZWN0b3IuaD4KKyAKKyBuYW1lc3BhY2Ugb3BlbnZkYiB7Cisg T1BFTlZEQl9VU0VfVkVSU0lPTl9OQU1FU1BBQ0UKK0BAIC04MzMsNyArODM2LDcgQEAgaW5saW5l IGJvb2wKKyBGaWx0ZXI8R3JpZFQsIE1hc2tULCBJbnRlcnJ1cHRUPjo6d2FzSW50ZXJydXB0ZWQo KQorIHsKKyAgICAgaWYgKHV0aWw6Ondhc0ludGVycnVwdGVkKG1JbnRlcnJ1cHRlcikpIHsKKy0g ICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysgICAg ICAgIHRocmVhZDo6Y2FuY2VsR3JvdXBFeGVjdXRpb24oKTsKKyAgICAgICAgIHJldHVybiB0cnVl OworICAgICB9CisgICAgIHJldHVybiBmYWxzZTsKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52 ZGIvdG9vbHMvR3JpZE9wZXJhdG9ycy5oIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL0dyaWRPcGVy YXRvcnMuaAoraW5kZXggMzEzMDVhMWFiLi43OGZhZmVhZDkgMTAwNjQ0CistLS0gYS9vcGVudmRi L29wZW52ZGIvdG9vbHMvR3JpZE9wZXJhdG9ycy5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9v bHMvR3JpZE9wZXJhdG9ycy5oCitAQCAtOSwxNCArOSwxNSBAQAorICNpZm5kZWYgT1BFTlZEQl9U T09MU19HUklEX09QRVJBVE9SU19IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9U T09MU19HUklEX09QRVJBVE9SU19IQVNfQkVFTl9JTkNMVURFRAorIAorLSNpbmNsdWRlIDxvcGVu dmRiL0dyaWQuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL09wZXJhdG9ycy5oPgorLSNpbmNs dWRlIDxvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmg+CistI2luY2x1ZGUgPG9wZW52ZGIv dHJlZS9MZWFmTWFuYWdlci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3RyZWUvVmFsdWVBY2Nlc3Nv ci5oPgorKyNpbmNsdWRlICJvcGVudmRiL0dyaWQuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRo L09wZXJhdG9ycy5oIgorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmgi CisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIgorKyNpbmNsdWRlICJvcGVu dmRiL3RyZWUvTGVhZk1hbmFnZXIuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90cmVlL1ZhbHVlQWNj ZXNzb3IuaCIKKyAjaW5jbHVkZSAiVmFsdWVUcmFuc2Zvcm1lci5oIiAvLyBmb3IgdG9vbHM6OmZv cmVhY2goKQorLSNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfZm9yLmg+CisgCisrI2luY2x1ZGUgPHRi Yi9wYXJhbGxlbF9mb3IuaD4KKyAKKyBuYW1lc3BhY2Ugb3BlbnZkYiB7CisgT1BFTlZEQl9VU0Vf VkVSU0lPTl9OQU1FU1BBQ0UKK0BAIC0zODMsNyArMzg0LDkgQEAgY2xhc3MgR3JpZE9wZXJhdG9y CisgICAgIC8vLyBUQkIgdGhyZWFkcyBvbmx5IQorICAgICB2b2lkIG9wZXJhdG9yKCkoY29uc3Qg dHlwZW5hbWUgTGVhZk1hbmFnZXJUOjpMZWFmUmFuZ2UmIHJhbmdlKSBjb25zdAorICAgICB7Cist ICAgICAgICBpZiAodXRpbDo6d2FzSW50ZXJydXB0ZWQobUludGVycnVwdCkpIHRiYjo6dGFzazo6 c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysgICAgICAgIGlmICh1dGlsOjp3YXNJ bnRlcnJ1cHRlZChtSW50ZXJydXB0KSkgeworKyAgICAgICAgICAgIHRocmVhZDo6Y2FuY2VsR3Jv dXBFeGVjdXRpb24oKTsKKysgICAgICAgIH0KKyAKKyAgICAgICAgIGZvciAodHlwZW5hbWUgTGVh Zk1hbmFnZXJUOjpMZWFmUmFuZ2U6Okl0ZXJhdG9yIGxlYWY9cmFuZ2UuYmVnaW4oKTsgbGVhZjsg KytsZWFmKSB7CisgICAgICAgICAgICAgZm9yICh0eXBlbmFtZSBPdXRMZWFmVDo6VmFsdWVPbkl0 ZXIgdmFsdWU9bGVhZi0+YmVnaW5WYWx1ZU9uKCk7IHZhbHVlOyArK3ZhbHVlKSB7CitkaWZmIC0t Z2l0IGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL0xldmVsU2V0TWVhc3VyZS5oIGIvb3BlbnZkYi9v cGVudmRiL3Rvb2xzL0xldmVsU2V0TWVhc3VyZS5oCitpbmRleCBlZmUxOTA3NGQuLjU5OTY5Y2Rj ZiAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi90b29scy9MZXZlbFNldE1lYXN1cmUuaAor KysrIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL0xldmVsU2V0TWVhc3VyZS5oCitAQCAtOCwxOCAr OCwyMSBAQAorICNpZm5kZWYgT1BFTlZEQl9UT09MU19MRVZFTFNFVE1FQVNVUkVfSEFTX0JFRU5f SU5DTFVERUQKKyAjZGVmaW5lIE9QRU5WREJfVE9PTFNfTEVWRUxTRVRNRUFTVVJFX0hBU19CRUVO X0lOQ0xVREVECisgCistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9NYXRoLmg+CistI2luY2x1ZGUg PG9wZW52ZGIvVHlwZXMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9HcmlkLmg+CistI2luY2x1ZGUg PG9wZW52ZGIvdHJlZS9MZWFmTWFuYWdlci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3RyZWUvVmFs dWVBY2Nlc3Nvci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL21hdGgvRmluaXRlRGlmZmVyZW5jZS5o PgorLSNpbmNsdWRlIDxvcGVudmRiL21hdGgvT3BlcmF0b3JzLmg+CistI2luY2x1ZGUgPG9wZW52 ZGIvbWF0aC9TdGVuY2lscy5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3V0aWwvTnVsbEludGVycnVw dGVyLmg+CisrI2luY2x1ZGUgIm9wZW52ZGIvVHlwZXMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9H cmlkLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdHJlZS9MZWFmTWFuYWdlci5oIgorKyNpbmNsdWRl ICJvcGVudmRiL3RyZWUvVmFsdWVBY2Nlc3Nvci5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgv TWF0aC5oIgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvRmluaXRlRGlmZmVyZW5jZS5oIgorKyNp bmNsdWRlICJvcGVudmRiL21hdGgvT3BlcmF0b3JzLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0 aC9TdGVuY2lscy5oIgorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmgi CisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGluZy5oIgorKworICNpbmNsdWRlIDx0 YmIvcGFyYWxsZWxfZm9yLmg+CisgI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9zb3J0Lmg+CisgI2lu Y2x1ZGUgPHRiYi9wYXJhbGxlbF9pbnZva2UuaD4KKysKKyAjaW5jbHVkZSA8dHlwZV90cmFpdHM+ CisgCisgbmFtZXNwYWNlIG9wZW52ZGIgeworQEAgLTMyOSw3ICszMzIsNyBAQCBpbmxpbmUgYm9v bAorIExldmVsU2V0TWVhc3VyZTxHcmlkVCwgSW50ZXJydXB0VD46OmNoZWNrSW50ZXJydXB0ZXIo KQorIHsKKyAgICAgaWYgKHV0aWw6Ondhc0ludGVycnVwdGVkKG1JbnRlcnJ1cHRlcikpIHsKKy0g ICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysgICAg ICAgIHRocmVhZDo6Y2FuY2VsR3JvdXBFeGVjdXRpb24oKTsKKyAgICAgICAgIHJldHVybiBmYWxz ZTsKKyAgICAgfQorICAgICByZXR1cm4gdHJ1ZTsKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52 ZGIvdG9vbHMvTGV2ZWxTZXRUcmFja2VyLmggYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvTGV2ZWxT ZXRUcmFja2VyLmgKK2luZGV4IGNiZGMyNjdlOC4uYmZjODAwNGU3IDEwMDY0NAorLS0tIGEvb3Bl bnZkYi9vcGVudmRiL3Rvb2xzL0xldmVsU2V0VHJhY2tlci5oCisrKysgYi9vcGVudmRiL29wZW52 ZGIvdG9vbHMvTGV2ZWxTZXRUcmFja2VyLmgKK0BAIC0xMiwyNCArMTIsMjYgQEAKKyAjaWZuZGVm IE9QRU5WREJfVE9PTFNfTEVWRUxfU0VUX1RSQUNLRVJfSEFTX0JFRU5fSU5DTFVERUQKKyAjZGVm aW5lIE9QRU5WREJfVE9PTFNfTEVWRUxfU0VUX1RSQUNLRVJfSEFTX0JFRU5fSU5DTFVERUQKKyAK Ky0jaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zvci5oPgorLSNpbmNsdWRlIDxvcGVudmRiL1R5cGVz Lmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9NYXRoLmg+CistI2luY2x1ZGUgPG9wZW52ZGIv bWF0aC9GaW5pdGVEaWZmZXJlbmNlLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvbWF0aC9PcGVyYXRv cnMuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL1N0ZW5jaWxzLmg+CistI2luY2x1ZGUgPG9w ZW52ZGIvbWF0aC9UcmFuc2Zvcm0uaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9HcmlkLmg+CistI2lu Y2x1ZGUgPG9wZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaD4KKy0jaW5jbHVkZSA8b3BlbnZk Yi90cmVlL1ZhbHVlQWNjZXNzb3IuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi90cmVlL0xlYWZNYW5h Z2VyLmg+CisrI2luY2x1ZGUgIm9wZW52ZGIvVHlwZXMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9H cmlkLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9NYXRoLmgiCisrI2luY2x1ZGUgIm9wZW52 ZGIvbWF0aC9GaW5pdGVEaWZmZXJlbmNlLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvbWF0aC9PcGVy YXRvcnMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL1N0ZW5jaWxzLmgiCisrI2luY2x1ZGUg Im9wZW52ZGIvbWF0aC9UcmFuc2Zvcm0uaCIKKysjaW5jbHVkZSAib3BlbnZkYi91dGlsL051bGxJ bnRlcnJ1cHRlci5oIgorKyNpbmNsdWRlICJvcGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaCIKKysj aW5jbHVkZSAib3BlbnZkYi90cmVlL1ZhbHVlQWNjZXNzb3IuaCIKKysjaW5jbHVkZSAib3BlbnZk Yi90cmVlL0xlYWZNYW5hZ2VyLmgiCisgI2luY2x1ZGUgIkNoYW5nZUJhY2tncm91bmQuaCIvLyBm b3IgY2hhbmdlTGV2ZWxTZXRCYWNrZ3JvdW5kCisgI2luY2x1ZGUgIk1vcnBob2xvZ3kuaCIvL2Zv ciBkaWxhdGVBY3RpdmVWYWx1ZXMKKyAjaW5jbHVkZSAiUHJ1bmUuaCIvLyBmb3IgcHJ1bmVMZXZl bFNldAorKworKyNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfZm9yLmg+CisrCisgI2luY2x1ZGUgPGZ1 bmN0aW9uYWw+CisgI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgorIAorLQorIG5hbWVzcGFjZSBvcGVu dmRiIHsKKyBPUEVOVkRCX1VTRV9WRVJTSU9OX05BTUVTUEFDRQorIG5hbWVzcGFjZSBPUEVOVkRC X1ZFUlNJT05fTkFNRSB7CitAQCAtMzgzLDcgKzM4NSw3IEBAIExldmVsU2V0VHJhY2tlcjxHcmlk VCwgSW50ZXJydXB0VD46OgorIGNoZWNrSW50ZXJydXB0ZXIoKQorIHsKKyAgICAgaWYgKHV0aWw6 Ondhc0ludGVycnVwdGVkKG1JbnRlcnJ1cHRlcikpIHsKKy0gICAgICAgIHRiYjo6dGFzazo6c2Vs ZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysgICAgICAgIHRocmVhZDo6Y2FuY2VsR3Jv dXBFeGVjdXRpb24oKTsKKyAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorICAgICByZXR1 cm4gdHJ1ZTsKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvTWVzaFRvVm9sdW1l LmggYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvTWVzaFRvVm9sdW1lLmgKK2luZGV4IDY2NDNjOGYw NS4uZGUzNDA2ZWRhIDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL01lc2hUb1Zv bHVtZS5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvTWVzaFRvVm9sdW1lLmgKK0BAIC0x NiwxMiArMTYsMTMgQEAKKyAjaWZuZGVmIE9QRU5WREJfVE9PTFNfTUVTSF9UT19WT0xVTUVfSEFT X0JFRU5fSU5DTFVERUQKKyAjZGVmaW5lIE9QRU5WREJfVE9PTFNfTUVTSF9UT19WT0xVTUVfSEFT X0JFRU5fSU5DTFVERUQKKyAKKy0jaW5jbHVkZSA8b3BlbnZkYi9QbGF0Zm9ybS5oPiAvLyBmb3Ig T1BFTlZEQl9IQVNfQ1hYMTEKKy0jaW5jbHVkZSA8b3BlbnZkYi9UeXBlcy5oPgorLSNpbmNsdWRl IDxvcGVudmRiL21hdGgvRmluaXRlRGlmZmVyZW5jZS5oPiAvLyBmb3IgR29kdW5vdnNOb3JtU3Fy ZAorLSNpbmNsdWRlIDxvcGVudmRiL21hdGgvUHJveGltaXR5Lmg+IC8vIGZvciBjbG9zZXN0UG9p bnRPblRyaWFuZ2xlVG9Qb2ludAorLSNpbmNsdWRlIDxvcGVudmRiL3V0aWwvTnVsbEludGVycnVw dGVyLmg+CistI2luY2x1ZGUgPG9wZW52ZGIvdXRpbC9VdGlsLmg+CisrI2luY2x1ZGUgIm9wZW52 ZGIvUGxhdGZvcm0uaCIgLy8gZm9yIE9QRU5WREJfSEFTX0NYWDExCisrI2luY2x1ZGUgIm9wZW52 ZGIvVHlwZXMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL0Zpbml0ZURpZmZlcmVuY2UuaCIg Ly8gZm9yIEdvZHVub3ZzTm9ybVNxcmQKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL1Byb3hpbWl0 eS5oIiAvLyBmb3IgY2xvc2VzdFBvaW50T25UcmlhbmdsZVRvUG9pbnQKKysjaW5jbHVkZSAib3Bl bnZkYi91dGlsL051bGxJbnRlcnJ1cHRlci5oIgorKyNpbmNsdWRlICJvcGVudmRiL3V0aWwvVXRp bC5oIgorKyNpbmNsdWRlICJvcGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaCIKKyAKKyAjaW5jbHVk ZSAiQ2hhbmdlQmFja2dyb3VuZC5oIgorICNpbmNsdWRlICJQcnVuZS5oIiAvLyBmb3IgcHJ1bmVJ bmFjdGl2ZSBhbmQgcHJ1bmVMZXZlbFNldAorQEAgLTMzLDcgKzM0LDcgQEAKKyAjaW5jbHVkZSA8 dGJiL3BhcmFsbGVsX3JlZHVjZS5oPgorICNpbmNsdWRlIDx0YmIvcGFydGl0aW9uZXIuaD4KKyAj aW5jbHVkZSA8dGJiL3Rhc2tfZ3JvdXAuaD4KKy0jaW5jbHVkZSA8dGJiL3Rhc2tfc2NoZWR1bGVy X2luaXQuaD4KKysjaW5jbHVkZSA8dGJiL3Rhc2tfYXJlbmEuaD4KKyAKKyAjaW5jbHVkZSA8YWxn b3JpdGhtPiAvLyBmb3Igc3RkOjpzb3J0KCkKKyAjaW5jbHVkZSA8Y21hdGg+IC8vIGZvciBzdGQ6 OmlzZmluaXRlKCksIHN0ZDo6aXNuYW4oKQorQEAgLTExMzIsNyArMTEzMyw3IEBAIGlubGluZSB2 b2lkCisgZmlsbEFycmF5KFZhbHVlVHlwZSogYXJyYXksIGNvbnN0IFZhbHVlVHlwZSB2YWwsIGNv bnN0IHNpemVfdCBsZW5ndGgpCisgeworICAgICBjb25zdCBhdXRvIGdyYWluU2l6ZSA9IHN0ZDo6 bWF4PHNpemVfdD4oCistICAgICAgICBsZW5ndGggLyB0YmI6OnRhc2tfc2NoZWR1bGVyX2luaXQ6 OmRlZmF1bHRfbnVtX3RocmVhZHMoKSwgMTAyNCk7CisrICAgICAgICBsZW5ndGggLyB0YmI6OnRo aXNfdGFza19hcmVuYTo6bWF4X2NvbmN1cnJlbmN5KCksIDEwMjQpOworICAgICBjb25zdCB0YmI6 OmJsb2NrZWRfcmFuZ2U8c2l6ZV90PiByYW5nZSgwLCBsZW5ndGgsIGdyYWluU2l6ZSk7CisgICAg IHRiYjo6cGFyYWxsZWxfZm9yKHJhbmdlLCBGaWxsQXJyYXk8VmFsdWVUeXBlPihhcnJheSwgdmFs KSwgdGJiOjpzaW1wbGVfcGFydGl0aW9uZXIoKSk7CisgfQorQEAgLTE5ODksNyArMTk5MCw3IEBA IGNsYXNzIFZveGVsaXplUG9seWdvbnMKKyAgICAgICAgIGZvciAoc2l6ZV90IG4gPSByYW5nZS5i ZWdpbigpLCBOID0gcmFuZ2UuZW5kKCk7IG4gPCBOOyArK24pIHsKKyAKKyAgICAgICAgICAgICBp ZiAodGhpcy0+d2FzSW50ZXJydXB0ZWQoKSkgeworLSAgICAgICAgICAgICAgICB0YmI6OnRhc2s6 OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgICAgIHRocmVh ZDo6Y2FuY2VsR3JvdXBFeGVjdXRpb24oKTsKKyAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICAgfQorIAorQEAgLTIxNDMsNyArMjE0NCw3IEBAIGNsYXNzIFZveGVsaXplUG9seWdv bnMKKyAKKyAgICAgICAgIHdoaWxlICghY29vcmRMaXN0LmVtcHR5KCkpIHsKKyAgICAgICAgICAg ICBpZiAoaW50ZXJydXB0ZXIgJiYgaW50ZXJydXB0ZXItPndhc0ludGVycnVwdGVkKCkpIHsKKy0g ICAgICAgICAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigp OworKyAgICAgICAgICAgICAgICB0aHJlYWQ6OmNhbmNlbEdyb3VwRXhlY3V0aW9uKCk7CisgICAg ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBmb3IgKElu dDMyIHBhc3MgPSAwOyBwYXNzIDwgMTA0ODU3NiAmJiAhY29vcmRMaXN0LmVtcHR5KCk7ICsrcGFz cykgeworZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi90b29scy9Nb3JwaG9sb2d5LmggYi9v cGVudmRiL29wZW52ZGIvdG9vbHMvTW9ycGhvbG9neS5oCitpbmRleCA3MzY5ODJlZjUuLjBhMWU3 MTAwOSAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi90b29scy9Nb3JwaG9sb2d5LmgKKysr KyBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Nb3JwaG9sb2d5LmgKK0BAIC0yNCw3ICsyNCw3IEBA CisgI2luY2x1ZGUgIm9wZW52ZGIvdHJlZS9WYWx1ZUFjY2Vzc29yLmgiCisgI2luY2x1ZGUgIm9w ZW52ZGIvdHJlZS9MZWFmTWFuYWdlci5oIgorIAorLSNpbmNsdWRlIDx0YmIvdGFza19zY2hlZHVs ZXJfaW5pdC5oPgorKyNpbmNsdWRlIDx0YmIvdGFza19hcmVuYS5oPgorICNpbmNsdWRlIDx0YmIv ZW51bWVyYWJsZV90aHJlYWRfc3BlY2lmaWMuaD4KKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX2Zv ci5oPgorIAorQEAgLTcyNiw3ICs3MjYsNyBAQCB2b2lkIE1vcnBob2xvZ3k8VHJlZVR5cGU+Ojpk aWxhdGVWb3hlbHMoY29uc3Qgc2l6ZV90IGl0ZXIsCisgICAgICAgICB9CisgCisgICAgICAgICAv LyBAbm90ZSB0aGlzIGdyYWluIHNpemUgaXMgdXNlZCBmb3Igb3B0aW1hbCB0aHJlYWRpbmcKKy0g ICAgICAgIGNvbnN0IHNpemVfdCBudW1UaHJlYWRzID0gc2l6ZV90KHRiYjo6dGFza19zY2hlZHVs ZXJfaW5pdDo6ZGVmYXVsdF9udW1fdGhyZWFkcygpKTsKKysgICAgICAgIGNvbnN0IHNpemVfdCBu dW1UaHJlYWRzID0gc2l6ZV90KHRiYjo6dGhpc190YXNrX2FyZW5hOjptYXhfY29uY3VycmVuY3ko KSk7CisgICAgICAgICBjb25zdCBzaXplX3Qgc3ViVHJlZVNpemUgPSBtYXRoOjpNYXgoc2l6ZV90 KDEpLCBhcnJheS5zaXplKCkvKDIqbnVtVGhyZWFkcykpOworIAorICAgICAgICAgLy8gcGVyZm9y bSByZWN1cnNpdmUgZGlsYXRpb24gdG8gc3ViIHRyZWVzCitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9v cGVudmRiL3Rvb2xzL1BhcnRpY2xlc1RvTGV2ZWxTZXQuaCBiL29wZW52ZGIvb3BlbnZkYi90b29s cy9QYXJ0aWNsZXNUb0xldmVsU2V0LmgKK2luZGV4IDczOWFmMmI2OS4uZjljMTk5MTFjIDEwMDY0 NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL1BhcnRpY2xlc1RvTGV2ZWxTZXQuaAorKysr IGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL1BhcnRpY2xlc1RvTGV2ZWxTZXQuaAorQEAgLTYyLDE5 ICs2MiwyMyBAQAorICNpZm5kZWYgT1BFTlZEQl9UT09MU19QQVJUSUNMRVNfVE9fTEVWRUxTRVRf SEFTX0JFRU5fSU5DTFVERUQKKyAjZGVmaW5lIE9QRU5WREJfVE9PTFNfUEFSVElDTEVTX1RPX0xF VkVMU0VUX0hBU19CRUVOX0lOQ0xVREVECisgCistI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9yZWR1 Y2UuaD4KKy0jaW5jbHVkZSA8dGJiL2Jsb2NrZWRfcmFuZ2UuaD4KKy0jaW5jbHVkZSA8b3BlbnZk Yi9UeXBlcy5oPgorLSNpbmNsdWRlIDxvcGVudmRiL0dyaWQuaD4KKy0jaW5jbHVkZSA8b3BlbnZk Yi9tYXRoL01hdGguaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9tYXRoL1RyYW5zZm9ybS5oPgorLSNp bmNsdWRlIDxvcGVudmRiL3RyZWUvTGVhZk1hbmFnZXIuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi91 dGlsL2xvZ2dpbmcuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi91dGlsL051bGxJbnRlcnJ1cHRlci5o PgorKyNpbmNsdWRlICJvcGVudmRiL1R5cGVzLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvR3JpZC5o IgorKyNpbmNsdWRlICJvcGVudmRiL21hdGgvTWF0aC5oIgorKyNpbmNsdWRlICJvcGVudmRiL21h dGgvVHJhbnNmb3JtLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdHJlZS9MZWFmTWFuYWdlci5oIgor KyNpbmNsdWRlICJvcGVudmRiL3V0aWwvbG9nZ2luZy5oIgorKyNpbmNsdWRlICJvcGVudmRiL3V0 aWwvTnVsbEludGVycnVwdGVyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGlu Zy5oIgorKworICNpbmNsdWRlICJDb21wb3NpdGUuaCIgLy8gZm9yIGNzZ1VuaW9uKCkKKyAjaW5j bHVkZSAiUG9pbnRQYXJ0aXRpb25lci5oIgorICNpbmNsdWRlICJQcnVuZS5oIgorICNpbmNsdWRl ICJTaWduZWRGbG9vZEZpbGwuaCIKKysKKysjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX3JlZHVjZS5o PgorKyNpbmNsdWRlIDx0YmIvYmxvY2tlZF9yYW5nZS5oPgorKworICNpbmNsdWRlIDxmdW5jdGlv bmFsPgorICNpbmNsdWRlIDxpb3N0cmVhbT4KKyAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CitAQCAt NzM4LDcgKzc0Miw3IEBAIHN0cnVjdCBQYXJ0aWNsZXNUb0xldmVsU2V0PFNkZkdyaWRULCBBdHRy aWJ1dGVULCBJbnRlcnJ1cHRlclQ+OjpSYXN0ZXIKKyAgICAgICAgIGZvciAoQ29vcmQgYyA9IGxv OyBjLngoKSA8PSBoaS54KCk7ICsrYy54KCkpIHsKKyAgICAgICAgICAgICAvL29ubHkgY2hlY2sg aW50ZXJydXB0ZXIgZXZlcnkgMzIndGggc2NhbiBpbiB4CisgICAgICAgICAgICAgaWYgKCEoY291 bnQrKyAmICgoMTw8NSktMSkpICYmIHV0aWw6Ondhc0ludGVycnVwdGVkKG1QYXJlbnQubUludGVy cnVwdGVyKSkgeworLSAgICAgICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3Jv dXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgICAgIHRocmVhZDo6Y2FuY2VsR3JvdXBFeGVj dXRpb24oKTsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICBjb25zdCBSZWFsIHgyID0gbWF0aDo6UG93MihjLngoKSAtIFBbMF0pOwor QEAgLTgwNCw3ICs4MDgsNyBAQCBzdHJ1Y3QgUGFydGljbGVzVG9MZXZlbFNldDxTZGZHcmlkVCwg QXR0cmlidXRlVCwgSW50ZXJydXB0ZXJUPjo6UmFzdGVyCisgICAgICAgICAvLyBEZW5zZWx5IGZp bGwgdGhlIHJlbWFpbmluZyByZWdpb25zLgorICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBiYm94 OiBwYWRkaW5nKSB7CisgICAgICAgICAgICAgaWYgKHV0aWw6Ondhc0ludGVycnVwdGVkKG1QYXJl bnQubUludGVycnVwdGVyKSkgeworLSAgICAgICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5j YW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgICAgIHRocmVhZDo6Y2FuY2Vs R3JvdXBFeGVjdXRpb24oKTsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICBjb25zdCBDb29yZCAmYm1pbiA9IGJib3gubWluKCksICZi bWF4ID0gYmJveC5tYXgoKTsKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9p bnRBZHZlY3QuaCBiL29wZW52ZGIvb3BlbnZkYi90b29scy9Qb2ludEFkdmVjdC5oCitpbmRleCAx MmIxMTc3YWQuLmU0ODdiZmIzZSAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi90b29scy9Q b2ludEFkdmVjdC5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9pbnRBZHZlY3QuaAor QEAgLTEwLDE2ICsxMCwxOSBAQAorICNpZm5kZWYgT1BFTlZEQl9UT09MU19QT0lOVF9BRFZFQ1Rf SEFTX0JFRU5fSU5DTFVERUQKKyAjZGVmaW5lIE9QRU5WREJfVE9PTFNfUE9JTlRfQURWRUNUX0hB U19CRUVOX0lOQ0xVREVECisgCistI2luY2x1ZGUgPG9wZW52ZGIvb3BlbnZkYi5oPgorLSNpbmNs dWRlIDxvcGVudmRiL21hdGgvTWF0aC5oPiAgICAgICAgICAgICAvLyBtaW4KKy0jaW5jbHVkZSA8 b3BlbnZkYi9UeXBlcy5oPiAgICAgICAgICAgICAgICAgLy8gVmVjMyB0eXBlcyBhbmQgdmVyc2lv biBudW1iZXIKKy0jaW5jbHVkZSA8b3BlbnZkYi9HcmlkLmg+ICAgICAgICAgICAgICAgICAgLy8g Z3JpZAorLSNpbmNsdWRlIDxvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmg+CisrI2luY2x1 ZGUgIm9wZW52ZGIvb3BlbnZkYi5oIgorKyNpbmNsdWRlICJvcGVudmRiL1R5cGVzLmgiICAgICAg ICAgICAgICAgICAvLyBWZWMzIHR5cGVzIGFuZCB2ZXJzaW9uIG51bWJlcgorKyNpbmNsdWRlICJv cGVudmRiL0dyaWQuaCIgICAgICAgICAgICAgICAgICAvLyBncmlkCisrI2luY2x1ZGUgIm9wZW52 ZGIvbWF0aC9NYXRoLmgiICAgICAgICAgICAgIC8vIG1pbgorKyNpbmNsdWRlICJvcGVudmRiL3V0 aWwvTnVsbEludGVycnVwdGVyLmgiCisrI2luY2x1ZGUgIm9wZW52ZGIvdGhyZWFkL1RocmVhZGlu Zy5oIgorICNpbmNsdWRlICJJbnRlcnBvbGF0aW9uLmgiICAgICAgICAgICAgICAgICAvLyBzYW1w bGluZworICNpbmNsdWRlICJWZWxvY2l0eUZpZWxkcy5oIiAgICAgICAgICAgICAgICAvLyBWZWxv Y2l0eUludGVncmF0b3IKKysKKyAjaW5jbHVkZSA8dGJiL2Jsb2NrZWRfcmFuZ2UuaD4gICAgICAg ICAgICAgLy8gdGhyZWFkaW5nCisgI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3IuaD4gICAgICAg ICAgICAgIC8vIHRocmVhZGluZworICNpbmNsdWRlIDx0YmIvdGFzay5oPiAgICAgICAgICAgICAg ICAgICAgICAvLyBmb3IgY2FuY2VsCisrCisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAKKyAKK0BAIC0x NjcsNyArMTcwLDcgQEAgY2xhc3MgUG9pbnRBZHZlY3QKKyAgICAgdm9pZCBvcGVyYXRvcigpIChj b25zdCB0YmI6OmJsb2NrZWRfcmFuZ2U8c2l6ZV90PiAmcmFuZ2UpIGNvbnN0CisgICAgIHsKKyAg ICAgICAgIGlmIChtSW50ZXJydXB0ZXIgJiYgbUludGVycnVwdGVyLT53YXNJbnRlcnJ1cHRlZCgp KSB7CistICAgICAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlv bigpOworKyAgICAgICAgICAgIHRocmVhZDo6Y2FuY2VsR3JvdXBFeGVjdXRpb24oKTsKKyAgICAg ICAgIH0KKyAKKyAgICAgICAgIFZlbG9jaXR5RmllbGRJbnRlZ3JhdG9yICB2ZWxGaWVsZCgqbVZl bEdyaWQpOworQEAgLTMwNyw3ICszMTAsNyBAQCBjbGFzcyBDb25zdHJhaW5lZFBvaW50QWR2ZWN0 CisgICAgIHZvaWQgb3BlcmF0b3IoKSAoY29uc3QgdGJiOjpibG9ja2VkX3JhbmdlPHNpemVfdD4g JnJhbmdlKSBjb25zdAorICAgICB7CisgICAgICAgICBpZiAobUludGVycnVwdGVyICYmIG1JbnRl cnJ1cHRlci0+d2FzSW50ZXJydXB0ZWQoKSkgeworLSAgICAgICAgICAgIHRiYjo6dGFzazo6c2Vs ZigpLmNhbmNlbF9ncm91cF9leGVjdXRpb24oKTsKKysgICAgICAgICAgICB0aHJlYWQ6OmNhbmNl bEdyb3VwRXhlY3V0aW9uKCk7CisgICAgICAgICB9CisgCisgICAgICAgICBWZWxvY2l0eUludGVn cmF0b3JUeXBlIHZlbEZpZWxkKCptVmVsR3JpZCk7CitkaWZmIC0tZ2l0IGEvb3BlbnZkYi9vcGVu dmRiL3Rvb2xzL1BvaW50SW5kZXhHcmlkLmggYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9pbnRJ bmRleEdyaWQuaAoraW5kZXggZTllYmY5NmY3Li5iMmUzNzhhNzkgMTAwNjQ0CistLS0gYS9vcGVu dmRiL29wZW52ZGIvdG9vbHMvUG9pbnRJbmRleEdyaWQuaAorKysrIGIvb3BlbnZkYi9vcGVudmRi L3Rvb2xzL1BvaW50SW5kZXhHcmlkLmgKK0BAIC0xNiw2ICsxNiw3IEBACisgI2lmbmRlZiBPUEVO VkRCX1RPT0xTX1BPSU5UX0lOREVYX0dSSURfSEFTX0JFRU5fSU5DTFVERUQKKyAjZGVmaW5lIE9Q RU5WREJfVE9PTFNfUE9JTlRfSU5ERVhfR1JJRF9IQVNfQkVFTl9JTkNMVURFRAorIAorKyNpbmNs dWRlICJvcGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaCIKKyAjaW5jbHVkZSAiUG9pbnRQYXJ0aXRp b25lci5oIgorIAorICNpbmNsdWRlIDxvcGVudmRiL3ZlcnNpb24uaD4KK0BAIC0zNTUsNyArMzU2 LDcgQEAgc3RydWN0IFZhbGlkUGFydGl0aW9uaW5nT3AKKyAgICAgdm9pZCBvcGVyYXRvcigpKExl YWZUICZsZWFmLCBzaXplX3QgLypsZWFmSW5kZXgqLykgY29uc3QKKyAgICAgeworICAgICAgICAg aWYgKCgqbUhhc0NoYW5nZWQpKSB7CistICAgICAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2Fu Y2VsX2dyb3VwX2V4ZWN1dGlvbigpOworKyAgICAgICAgICAgIHRocmVhZDo6Y2FuY2VsR3JvdXBF eGVjdXRpb24oKTsKKyAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICB9CisgCitkaWZmIC0t Z2l0IGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL1BvaW50UGFydGl0aW9uZXIuaCBiL29wZW52ZGIv b3BlbnZkYi90b29scy9Qb2ludFBhcnRpdGlvbmVyLmgKK2luZGV4IGNjZjUwYWIwNS4uZjdmNmZj MTNkIDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL1BvaW50UGFydGl0aW9uZXIu aAorKysrIGIvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL1BvaW50UGFydGl0aW9uZXIuaAorQEAgLTIz LDcgKzIzLDcgQEAKKyAKKyAjaW5jbHVkZSA8dGJiL2Jsb2NrZWRfcmFuZ2UuaD4KKyAjaW5jbHVk ZSA8dGJiL3BhcmFsbGVsX2Zvci5oPgorLSNpbmNsdWRlIDx0YmIvdGFza19zY2hlZHVsZXJfaW5p dC5oPgorKyNpbmNsdWRlIDx0YmIvdGFza19hcmVuYS5oPgorIAorICNpbmNsdWRlIDxhbGdvcml0 aG0+CisgI2luY2x1ZGUgPGNtYXRoPiAvLyBmb3Igc3RkOjppc2Zpbml0ZSgpCitAQCAtNzY0LDcg Kzc2NCw3IEBAIGlubGluZSB2b2lkIGJpbkFuZFNlZ21lbnQoCisgICAgIHVzaW5nIEluZGV4UGFp ckxpc3RNYXAgPSBzdGQ6Om1hcDxDb29yZCwgSW5kZXhQYWlyTGlzdFB0cj47CisgICAgIHVzaW5n IEluZGV4UGFpckxpc3RNYXBQdHIgPSBzdGQ6OnNoYXJlZF9wdHI8SW5kZXhQYWlyTGlzdE1hcD47 CisgCistICAgIHNpemVfdCBudW1UYXNrcyA9IDEsIG51bVRocmVhZHMgPSBzaXplX3QodGJiOjp0 YXNrX3NjaGVkdWxlcl9pbml0OjpkZWZhdWx0X251bV90aHJlYWRzKCkpOworKyAgICBzaXplX3Qg bnVtVGFza3MgPSAxLCBudW1UaHJlYWRzID0gc2l6ZV90KHRiYjo6dGhpc190YXNrX2FyZW5hOjpt YXhfY29uY3VycmVuY3koKSk7CisgICAgIGlmIChwb2ludHMuc2l6ZSgpID4gKG51bVRocmVhZHMg KiAyKSkgbnVtVGFza3MgPSBudW1UaHJlYWRzICogMjsKKyAgICAgZWxzZSBpZiAocG9pbnRzLnNp emUoKSA+IG51bVRocmVhZHMpIG51bVRhc2tzID0gbnVtVGhyZWFkczsKKyAKK2RpZmYgLS1naXQg YS9vcGVudmRiL29wZW52ZGIvdG9vbHMvUG9pbnRzVG9NYXNrLmggYi9vcGVudmRiL29wZW52ZGIv dG9vbHMvUG9pbnRzVG9NYXNrLmgKK2luZGV4IDU5MmFiN2ExNS4uOGEyNzZmYjA0IDEwMDY0NAor LS0tIGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL1BvaW50c1RvTWFzay5oCisrKysgYi9vcGVudmRi L29wZW52ZGIvdG9vbHMvUG9pbnRzVG9NYXNrLmgKK0BAIC00NiwxNCArNDYsMTggQEAKKyAjaWZu ZGVmIE9QRU5WREJfVE9PTFNfUE9JTlRTVE9NQVNLX0hBU19CRUVOX0lOQ0xVREVECisgI2RlZmlu ZSBPUEVOVkRCX1RPT0xTX1BPSU5UU1RPTUFTS19IQVNfQkVFTl9JTkNMVURFRAorIAorKworKyNp bmNsdWRlICJvcGVudmRiL29wZW52ZGIuaCIgLy8gZm9yIE1hc2tHcmlkCisrI2luY2x1ZGUgIm9w ZW52ZGIvR3JpZC5oIgorKyNpbmNsdWRlICJvcGVudmRiL1R5cGVzLmgiCisrI2luY2x1ZGUgIm9w ZW52ZGIvdXRpbC9OdWxsSW50ZXJydXB0ZXIuaCIKKysjaW5jbHVkZSAib3BlbnZkYi90aHJlYWQv VGhyZWFkaW5nLmgiCisrCisgI2luY2x1ZGUgPHRiYi9lbnVtZXJhYmxlX3RocmVhZF9zcGVjaWZp Yy5oPgorICNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfZm9yLmg+CisgI2luY2x1ZGUgPHRiYi9wYXJh bGxlbF9yZWR1Y2UuaD4KKyAjaW5jbHVkZSA8dGJiL2Jsb2NrZWRfcmFuZ2UuaD4KKy0jaW5jbHVk ZSA8b3BlbnZkYi9vcGVudmRiLmg+IC8vIGZvciBNYXNrR3JpZAorLSNpbmNsdWRlIDxvcGVudmRi L0dyaWQuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9UeXBlcy5oPgorLSNpbmNsdWRlIDxvcGVudmRi L3V0aWwvTnVsbEludGVycnVwdGVyLmg+CisrCisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAKKyAKK0BA IC0xNTAsNyArMTU0LDcgQEAgY2xhc3MgUG9pbnRzVG9NYXNrCisgICAgIGJvb2wgaW50ZXJydXB0 KCkgY29uc3QKKyAgICAgeworICAgICAgICAgaWYgKG1JbnRlcnJ1cHRlciAmJiB1dGlsOjp3YXNJ bnRlcnJ1cHRlZChtSW50ZXJydXB0ZXIpKSB7CistICAgICAgICAgICAgdGJiOjp0YXNrOjpzZWxm KCkuY2FuY2VsX2dyb3VwX2V4ZWN1dGlvbigpOworKyAgICAgICAgICAgIHRocmVhZDo6Y2FuY2Vs R3JvdXBFeGVjdXRpb24oKTsKKyAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgIH0K KyAgICAgICAgIHJldHVybiBmYWxzZTsKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9v bHMvVm9sdW1lQWR2ZWN0LmggYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvVm9sdW1lQWR2ZWN0LmgK K2luZGV4IGU3ZWVjNzQwZS4uZjM4ZWFhOWMyIDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRi L3Rvb2xzL1ZvbHVtZUFkdmVjdC5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvVm9sdW1l QWR2ZWN0LmgKK0BAIC0xMywxNSArMTMsMTggQEAKKyAjaWZuZGVmIE9QRU5WREJfVE9PTFNfVk9M VU1FX0FEVkVDVF9IQVNfQkVFTl9JTkNMVURFRAorICNkZWZpbmUgT1BFTlZEQl9UT09MU19WT0xV TUVfQURWRUNUX0hBU19CRUVOX0lOQ0xVREVECisgCistI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9m b3IuaD4KKy0jaW5jbHVkZSA8b3BlbnZkYi9UeXBlcy5oPgorLSNpbmNsdWRlIDxvcGVudmRiL21h dGgvTWF0aC5oPgorLSNpbmNsdWRlIDxvcGVudmRiL3V0aWwvTnVsbEludGVycnVwdGVyLmg+Cisr I2luY2x1ZGUgIm9wZW52ZGIvVHlwZXMuaCIKKysjaW5jbHVkZSAib3BlbnZkYi9tYXRoL01hdGgu aCIKKysjaW5jbHVkZSAib3BlbnZkYi91dGlsL051bGxJbnRlcnJ1cHRlci5oIgorKyNpbmNsdWRl ICJvcGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaCIKKyAjaW5jbHVkZSAiSW50ZXJwb2xhdGlvbi5o Ii8vIGZvciBTYW1wbGVyCisgI2luY2x1ZGUgIlZlbG9jaXR5RmllbGRzLmgiIC8vIGZvciBWZWxv Y2l0eUludGVncmF0b3IKKyAjaW5jbHVkZSAiTW9ycGhvbG9neS5oIi8vZm9yIGRpbGF0ZUFjdGl2 ZVZhbHVlcworICNpbmNsdWRlICJQcnVuZS5oIi8vIGZvciBwcnVuZQorICNpbmNsdWRlICJTdGF0 aXN0aWNzLmgiIC8vIGZvciBleHRyZW1hCisrCisrI2luY2x1ZGUgPHRiYi9wYXJhbGxlbF9mb3Iu aD4KKysKKyAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyAKKyAKK0BAIC0yOTQsNyArMjk3LDcgQEAg Y2xhc3MgVm9sdW1lQWR2ZWN0aW9uCisgICAgIGJvb2wgaW50ZXJydXB0KCkgY29uc3QKKyAgICAg eworICAgICAgICAgaWYgKG1JbnRlcnJ1cHRlciAmJiB1dGlsOjp3YXNJbnRlcnJ1cHRlZChtSW50 ZXJydXB0ZXIpKSB7CistICAgICAgICAgICAgdGJiOjp0YXNrOjpzZWxmKCkuY2FuY2VsX2dyb3Vw X2V4ZWN1dGlvbigpOworKyAgICAgICAgICAgIHRocmVhZDo6Y2FuY2VsR3JvdXBFeGVjdXRpb24o KTsKKyAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgIH0KKyAgICAgICAgIHJldHVy biBmYWxzZTsKK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdG9vbHMvVm9sdW1lVG9NZXNo LmggYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvVm9sdW1lVG9NZXNoLmgKK2luZGV4IGE4MzRkZDNi My4uYTQ0NmY4MDZhIDEwMDY0NAorLS0tIGEvb3BlbnZkYi9vcGVudmRiL3Rvb2xzL1ZvbHVtZVRv TWVzaC5oCisrKysgYi9vcGVudmRiL29wZW52ZGIvdG9vbHMvVm9sdW1lVG9NZXNoLmgKK0BAIC0x OCw3ICsxOCw3IEBACisgI2luY2x1ZGUgPHRiYi9ibG9ja2VkX3JhbmdlLmg+CisgI2luY2x1ZGUg PHRiYi9wYXJhbGxlbF9mb3IuaD4KKyAjaW5jbHVkZSA8dGJiL3BhcmFsbGVsX3JlZHVjZS5oPgor LSNpbmNsdWRlIDx0YmIvdGFza19zY2hlZHVsZXJfaW5pdC5oPgorKyNpbmNsdWRlIDx0YmIvdGFz a19hcmVuYS5oPgorIAorICNpbmNsdWRlIDxjbWF0aD4gLy8gZm9yIHN0ZDo6aXNmaW5pdGUoKQor ICNpbmNsdWRlIDxtYXA+CitAQCAtMzg4LDcgKzM4OCw3IEBAIGlubGluZSB2b2lkCisgZmlsbEFy cmF5KFZhbHVlVHlwZSogYXJyYXksIGNvbnN0IFZhbHVlVHlwZSYgdmFsLCBjb25zdCBzaXplX3Qg bGVuZ3RoKQorIHsKKyAgICAgY29uc3QgYXV0byBncmFpblNpemUgPSBzdGQ6Om1heDxzaXplX3Q+ KAorLSAgICAgICAgbGVuZ3RoIC8gdGJiOjp0YXNrX3NjaGVkdWxlcl9pbml0OjpkZWZhdWx0X251 bV90aHJlYWRzKCksIDEwMjQpOworKyAgICAgICAgbGVuZ3RoIC8gdGJiOjp0aGlzX3Rhc2tfYXJl bmE6Om1heF9jb25jdXJyZW5jeSgpLCAxMDI0KTsKKyAgICAgY29uc3QgdGJiOjpibG9ja2VkX3Jh bmdlPHNpemVfdD4gcmFuZ2UoMCwgbGVuZ3RoLCBncmFpblNpemUpOworICAgICB0YmI6OnBhcmFs bGVsX2ZvcihyYW5nZSwgRmlsbEFycmF5PFZhbHVlVHlwZT4oYXJyYXksIHZhbCksIHRiYjo6c2lt cGxlX3BhcnRpdGlvbmVyKCkpOworIH0KK2RpZmYgLS1naXQgYS9vcGVudmRiL29wZW52ZGIvdW5p dHRlc3QvVGVzdENvb3JkLmNjIGIvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RDb29yZC5j YworaW5kZXggYmUxYzI0Y2VkLi4xNDg2OTAwNDEgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52 ZGIvdW5pdHRlc3QvVGVzdENvb3JkLmNjCisrKysgYi9vcGVudmRiL29wZW52ZGIvdW5pdHRlc3Qv VGVzdENvb3JkLmNjCitAQCAtMiw5ICsyLDkgQEAKKyAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogTVBMLTIuMAorIAorICNpbmNsdWRlIDxvcGVudmRiL1R5cGVzLmg+CisrI2luY2x1ZGUgPG9w ZW52ZGIvbWF0aC9Db29yZC5oPgorIAorICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorLSNpbmNs dWRlIDx0YmIvdGJiX3N0ZGRlZi5oPiAvLyBmb3IgdGJiOjpzcGxpdAorIAorICNpbmNsdWRlIDx1 bm9yZGVyZWRfbWFwPgorICNpbmNsdWRlIDxzc3RyZWFtPgorZGlmZiAtLWdpdCBhL29wZW52ZGIv b3BlbnZkYi91bml0dGVzdC9UZXN0RmlsZS5jYyBiL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9U ZXN0RmlsZS5jYworaW5kZXggODA3NDE2NmQyLi4wNTM0NDhmMzAgMTAwNjQ0CistLS0gYS9vcGVu dmRiL29wZW52ZGIvdW5pdHRlc3QvVGVzdEZpbGUuY2MKKysrKyBiL29wZW52ZGIvb3BlbnZkYi91 bml0dGVzdC9UZXN0RmlsZS5jYworQEAgLTEzLDggKzEzLDExIEBACisgI2luY2x1ZGUgPG9wZW52 ZGIvdmVyc2lvbi5oPgorICNpbmNsdWRlIDxvcGVudmRiL29wZW52ZGIuaD4KKyAjaW5jbHVkZSAi dXRpbC5oIiAvLyBmb3IgdW5pdHRlc3RfdXRpbDo6bWFrZVNwaGVyZSgpCisrCisgI2luY2x1ZGUg PGd0ZXN0L2d0ZXN0Lmg+CistI2luY2x1ZGUgPHRiYi90YmJfdGhyZWFkLmg+IC8vIGZvciB0YmI6 OnRoaXNfdGJiX3RocmVhZDo6c2xlZXAoKQorKworKyNpbmNsdWRlIDx0aHJlYWQ+CisrI2luY2x1 ZGUgPGNocm9ubz4KKyAjaW5jbHVkZSA8YWxnb3JpdGhtPiAvLyBmb3Igc3RkOjpzb3J0KCkKKyAj aW5jbHVkZSA8Y3N0ZGlvPiAvLyBmb3IgcmVtb3ZlKCkgYW5kIHJlbmFtZSgpCisgI2luY2x1ZGUg PGZzdHJlYW0+CitAQCAtMjM0NSwxMiArMjM0OCwxNCBAQCBURVNUX0YoVGVzdEZpbGUsIHRlc3RB c3luYykKKyAgICAgICAgICAgICBoZWxwZXIuaW5zZXJ0KGlkLCBmaWxlbmFtZSk7CisgICAgICAg ICB9CisgCistICAgICAgICB0YmI6OnRpY2tfY291bnQgc3RhcnQgPSB0YmI6OnRpY2tfY291bnQ6 Om5vdygpOworKyAgICAgICAgYXV0byBzdGFydCA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6 Om5vdygpOworICAgICAgICAgd2hpbGUgKCFoZWxwZXIuaWRzLmVtcHR5KCkpIHsKKy0gICAgICAg ICAgICBpZiAoKHRiYjo6dGlja19jb3VudDo6bm93KCkgLSBzdGFydCkuc2Vjb25kcygpID4gNjAp IGJyZWFrOyAvLyB0aW1lIG91dCBhZnRlciAxIG1pbnV0ZQorKyAgICAgICAgICAgIGF1dG8gZHVy YXRpb24gPSBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6c2Vjb25kcz4o CisrICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpIC0gc3Rh cnQpOworKyAgICAgICAgICAgIGlmIChzaXplX3QoZHVyYXRpb24uY291bnQoKSkgPiA2MCkgIGJy ZWFrOyAvLyB0aW1lIG91dCBhZnRlciAxIG1pbnV0ZQorIAorICAgICAgICAgICAgIC8vIFdhaXQg b25lIHNlY29uZCBmb3IgdGFza3MgdG8gY29tcGxldGUuCistICAgICAgICAgICAgdGJiOjp0aGlz X3RiYl90aHJlYWQ6OnNsZWVwKHRiYjo6dGlja19jb3VudDo6aW50ZXJ2YWxfdCgxLjAvKnNlYyov KSk7CisrICAgICAgICAgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKHN0ZDo6Y2hyb25v OjpzZWNvbmRzKDEpKTsKKyAKKyAgICAgICAgICAgICAvLyBQb2xsIGVhY2ggdGFzayBpbiB0aGUg cGVuZGluZyBtYXAuCisgICAgICAgICAgICAgc3RkOjpzZXQ8aW86OlF1ZXVlOjpJZD4gaWRzID0g aGVscGVyLmlkczsgLy8gaXRlcmF0ZSBvdmVyIGEgY29weQorQEAgLTIzODAsNyArMjM4NSw3IEBA IFRFU1RfRihUZXN0RmlsZSwgdGVzdEFzeW5jKQorICAgICAgICAgICAgIGhlbHBlci5pbnNlcnQo aWQsIGZpbGVuYW1lKTsKKyAgICAgICAgIH0KKyAgICAgICAgIHdoaWxlICghcXVldWUuZW1wdHko KSkgeworLSAgICAgICAgICAgIHRiYjo6dGhpc190YmJfdGhyZWFkOjpzbGVlcCh0YmI6OnRpY2tf Y291bnQ6OmludGVydmFsX3QoMS4wLypzZWMqLykpOworKyAgICAgICAgICAgIHN0ZDo6dGhpc190 aHJlYWQ6OnNsZWVwX2ZvcihzdGQ6OmNocm9ubzo6c2Vjb25kcygxKSk7CisgICAgICAgICB9Cisg ICAgIH0KKyAgICAgeworQEAgLTI0MDUsNyArMjQxMCw3IEBAIFRFU1RfRihUZXN0RmlsZSwgdGVz dEFzeW5jKQorICAgICAgICAgRVhQRUNUX1RIUk9XKHF1ZXVlLndyaXRlKGdyaWRzLCBpbzo6U3Ry ZWFtKGZpbGUyKSksIG9wZW52ZGI6OlJ1bnRpbWVFcnJvcik7CisgCisgICAgICAgICB3aGlsZSAo IXF1ZXVlLmVtcHR5KCkpIHsKKy0gICAgICAgICAgICB0YmI6OnRoaXNfdGJiX3RocmVhZDo6c2xl ZXAodGJiOjp0aWNrX2NvdW50OjppbnRlcnZhbF90KDEuMC8qc2VjKi8pKTsKKysgICAgICAgICAg ICBzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3Ioc3RkOjpjaHJvbm86OnNlY29uZHMoMSkpOwor ICAgICAgICAgfQorICAgICB9CisgfQorZGlmZiAtLWdpdCBhL29wZW52ZGIvb3BlbnZkYi91bml0 dGVzdC9UZXN0VXRpbC5jYyBiL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0VXRpbC5jYwor aW5kZXggNzBlN2RmNWY3Li42YjIyMDQ3NzEgMTAwNjQ0CistLS0gYS9vcGVudmRiL29wZW52ZGIv dW5pdHRlc3QvVGVzdFV0aWwuY2MKKysrKyBiL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0 VXRpbC5jYworQEAgLTgsNyArOCw2IEBACisgCisgI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+Cisg CistI2luY2x1ZGUgPHRiYi90YXNrX3NjaGVkdWxlcl9pbml0Lmg+CisgI2luY2x1ZGUgPHRiYi9l bnVtZXJhYmxlX3RocmVhZF9zcGVjaWZpYy5oPgorICNpbmNsdWRlIDx0YmIvcGFyYWxsZWxfZm9y Lmg+CisgI2luY2x1ZGUgPHRiYi9ibG9ja2VkX3JhbmdlLmg+CitkaWZmIC0tZ2l0IGEvb3BlbnZk Yi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RWYWx1ZUFjY2Vzc29yLmNjIGIvb3BlbnZkYi9vcGVudmRi L3VuaXR0ZXN0L1Rlc3RWYWx1ZUFjY2Vzc29yLmNjCitpbmRleCBmZDJkZDVkODEuLjVjMWNiYjE4 YiAxMDA2NDQKKy0tLSBhL29wZW52ZGIvb3BlbnZkYi91bml0dGVzdC9UZXN0VmFsdWVBY2Nlc3Nv ci5jYworKysrIGIvb3BlbnZkYi9vcGVudmRiL3VuaXR0ZXN0L1Rlc3RWYWx1ZUFjY2Vzc29yLmNj CitAQCAtNiw2ICs2LDcgQEAKKyAKKyAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKyAjaW5jbHVk ZSA8dGJiL3Rhc2suaD4KKysjaW5jbHVkZSA8dGJiL3Rhc2tfZ3JvdXAuaD4KKyAKKyAjaW5jbHVk ZSA8dHlwZV90cmFpdHM+CisgCitAQCAtMzc4LDIyICszNzksMjEgQEAgVEVTVF9GKFRlc3RWYWx1 ZUFjY2Vzc29yLCB0ZXN0TXVsdGl0aHJlYWRlZEFjY2Vzc29yKQorICAgICAvL3VzaW5nIEFjY2Vz c29yVCA9IG9wZW52ZGI6OnRyZWU6OlZhbHVlQWNjZXNzb3I8VHJlZTRUeXBlPjsKKyAKKyAgICAg Ly8gVGFzayB0byBwZXJmb3JtIG11bHRpcGxlIHJlYWRzIHRocm91Z2ggYSBzaGFyZWQgYWNjZXNz b3IKKy0gICAgc3RydWN0IFJlYWRUYXNrOiBwdWJsaWMgdGJiOjp0YXNrIHsKKysgICAgc3RydWN0 IFJlYWRUYXNrIHsKKyAgICAgICAgIEFjY2Vzc29yVCYgYWNjOworICAgICAgICAgUmVhZFRhc2so QWNjZXNzb3JUJiBjKTogYWNjKGMpIHt9CistICAgICAgICB0YmI6OnRhc2sqIGV4ZWN1dGUoKQor KyAgICAgICAgdm9pZCBleGVjdXRlKCkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBmb3IgKGlu dCBpID0gLU1BWF9DT09SRDsgaSA8IE1BWF9DT09SRDsgKytpKSB7CisgICAgICAgICAgICAgICAg IEFTU0VSVF9ET1VCTEVTX0VYQUNUTFlfRVFVQUwoZG91YmxlKGkpLCBhY2MuZ2V0VmFsdWUob3Bl bnZkYjo6Q29vcmQoaSkpKTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgcmV0dXJuIG51 bGxwdHI7CisgICAgICAgICB9CisgICAgIH07CisgICAgIC8vIFRhc2sgdG8gcGVyZm9ybSBtdWx0 aXBsZSB3cml0ZXMgdGhyb3VnaCBhIHNoYXJlZCBhY2Nlc3NvcgorLSAgICBzdHJ1Y3QgV3JpdGVU YXNrOiBwdWJsaWMgdGJiOjp0YXNrIHsKKysgICAgc3RydWN0IFdyaXRlVGFzayB7CisgICAgICAg ICBBY2Nlc3NvclQmIGFjYzsKKyAgICAgICAgIFdyaXRlVGFzayhBY2Nlc3NvclQmIGMpOiBhY2Mo Yykge30KKy0gICAgICAgIHRiYjo6dGFzayogZXhlY3V0ZSgpCisrICAgICAgICB2b2lkIGV4ZWN1 dGUoKQorICAgICAgICAgeworICAgICAgICAgICAgIGZvciAoaW50IGkgPSAtTUFYX0NPT1JEOyBp IDwgTUFYX0NPT1JEOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgZmxvYXQgZiA9IGFjYy5nZXRW YWx1ZShvcGVudmRiOjpDb29yZChpKSk7CitAQCAtNDAxLDI2ICs0MDEsMjAgQEAgVEVTVF9GKFRl c3RWYWx1ZUFjY2Vzc29yLCB0ZXN0TXVsdGl0aHJlYWRlZEFjY2Vzc29yKQorICAgICAgICAgICAg ICAgICBhY2Muc2V0VmFsdWUob3BlbnZkYjo6Q29vcmQoaSksIGZsb2F0KGkpKTsKKyAgICAgICAg ICAgICAgICAgQVNTRVJUX0RPVUJMRVNfRVhBQ1RMWV9FUVVBTChmbG9hdChpKSwgYWNjLmdldFZh bHVlKG9wZW52ZGI6OkNvb3JkKGkpKSk7CisgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIHJl dHVybiBudWxscHRyOworICAgICAgICAgfQorICAgICB9OworICAgICAvLyBQYXJlbnQgdGFzayB0 byBzcGF3biBtdWx0aXBsZSBwYXJhbGxlbCByZWFkIGFuZCB3cml0ZSB0YXNrcworLSAgICBzdHJ1 Y3QgUm9vdFRhc2s6IHB1YmxpYyB0YmI6OnRhc2sgeworKyAgICBzdHJ1Y3QgUm9vdFRhc2sgewor ICAgICAgICAgQWNjZXNzb3JUJiBhY2M7CisgICAgICAgICBSb290VGFzayhBY2Nlc3NvclQmIGMp OiBhY2MoYykge30KKy0gICAgICAgIHRiYjo6dGFzayogZXhlY3V0ZSgpCisrICAgICAgICB2b2lk IGV4ZWN1dGUoKQorICAgICAgICAgeworLSAgICAgICAgICAgIFJlYWRUYXNrKiByWzNdOyBXcml0 ZVRhc2sqIHdbM107CisrICAgICAgICAgICAgdGJiOjp0YXNrX2dyb3VwIHRhc2tzOworICAgICAg ICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgKytpKSB7CistICAgICAgICAgICAgICAgIHJb aV0gPSBuZXcoYWxsb2NhdGVfY2hpbGQoKSkgUmVhZFRhc2soYWNjKTsKKy0gICAgICAgICAgICAg ICAgd1tpXSA9IG5ldyhhbGxvY2F0ZV9jaGlsZCgpKSBXcml0ZVRhc2soYWNjKTsKKysgICAgICAg ICAgICAgICAgdGFza3MucnVuKFsmXSB7IFJlYWRUYXNrIHIoYWNjKTsgci5leGVjdXRlKCk7IH0p OworKyAgICAgICAgICAgICAgICB0YXNrcy5ydW4oWyZdIHsgV3JpdGVUYXNrIHcoYWNjKTsgdy5l eGVjdXRlKCk7IH0pOworICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICBzZXRfcmVmX2NvdW50 KDYgLypjaGlsZHJlbiovICsgMSAvKndhaXQqLyk7CistICAgICAgICAgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCAzOyArK2kpIHsKKy0gICAgICAgICAgICAgICAgc3Bhd24oKnJbaV0pOyBzcGF3bigq d1tpXSk7CistICAgICAgICAgICAgfQorLSAgICAgICAgICAgIHdhaXRfZm9yX2FsbCgpOworLSAg ICAgICAgICAgIHJldHVybiBudWxscHRyOworKyAgICAgICAgICAgIHRhc2tzLndhaXQoKTsKKyAg ICAgICAgIH0KKyAgICAgfTsKKyAKK0BAIC00MzIsOCArNDI2LDggQEAgVEVTVF9GKFRlc3RWYWx1 ZUFjY2Vzc29yLCB0ZXN0TXVsdGl0aHJlYWRlZEFjY2Vzc29yKQorICAgICB9CisgCisgICAgIC8v IFJ1biBtdWx0aXBsZSByZWFkIGFuZCB3cml0ZSB0YXNrcyBpbiBwYXJhbGxlbC4KKy0gICAgUm9v dFRhc2smIHJvb3QgPSAqbmV3KHRiYjo6dGFzazo6YWxsb2NhdGVfcm9vdCgpKSBSb290VGFzayhh Y2MpOworLSAgICB0YmI6OnRhc2s6OnNwYXduX3Jvb3RfYW5kX3dhaXQocm9vdCk7CisrICAgIFJv b3RUYXNrIHJvb3QoYWNjKTsKKysgICAgcm9vdC5leGVjdXRlKCk7CisgCisgI3VuZGVmIE1BWF9D T09SRAorIH0KK2RpZmYgLS1naXQgYS9vcGVudmRiX2hvdWRpbmkvb3BlbnZkYl9ob3VkaW5pL1NP UF9PcGVuVkRCX1Jhc3Rlcml6ZV9Qb2ludHMuY2MgYi9vcGVudmRiX2hvdWRpbmkvb3BlbnZkYl9o b3VkaW5pL1NPUF9PcGVuVkRCX1Jhc3Rlcml6ZV9Qb2ludHMuY2MKK2luZGV4IDBlMWI0ZDg1NS4u NmQ5YmI1MjhiIDEwMDY0NAorLS0tIGEvb3BlbnZkYl9ob3VkaW5pL29wZW52ZGJfaG91ZGluaS9T T1BfT3BlblZEQl9SYXN0ZXJpemVfUG9pbnRzLmNjCisrKysgYi9vcGVudmRiX2hvdWRpbmkvb3Bl bnZkYl9ob3VkaW5pL1NPUF9PcGVuVkRCX1Jhc3Rlcml6ZV9Qb2ludHMuY2MKK0BAIC0yMCw2ICsy MCw3IEBACisgI2luY2x1ZGUgPG9wZW52ZGIvdG9vbHMvR3JpZFRyYW5zZm9ybWVyLmg+CisgI2lu Y2x1ZGUgPG9wZW52ZGIvdG9vbHMvUG9pbnRJbmRleEdyaWQuaD4KKyAjaW5jbHVkZSA8b3BlbnZk Yi90b29scy9QcnVuZS5oPgorKyNpbmNsdWRlIDxvcGVudmRiL3RocmVhZC9UaHJlYWRpbmcuaD4K KyAKKyAjaW5jbHVkZSA8Q0gvQ0hfTWFuYWdlci5oPgorICNpbmNsdWRlIDxDVkVYL0NWRVhfQ29u dGV4dC5oPgorQEAgLTc4Niw3ICs3ODcsNyBAQCBzdHJ1Y3QgQ29uc3RydWN0Q2FuZGlkYXRlVm94 ZWxNYXNrCisgICAgICAgICBmb3IgKHNpemVfdCBuID0gcmFuZ2UuYmVnaW4oKSwgTiA9IHJhbmdl LmVuZCgpOyBuICE9IE47ICsrbikgeworIAorICAgICAgICAgICAgIGlmICh0aGlzLT53YXNJbnRl cnJ1cHRlZCgpKSB7CistICAgICAgICAgICAgICAgIHRiYjo6dGFzazo6c2VsZigpLmNhbmNlbF9n cm91cF9leGVjdXRpb24oKTsKKysgICAgICAgICAgICAgICAgb3BlbnZkYjo6dGhyZWFkOjpjYW5j ZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg ICB9CisgCitAQCAtMjA5Miw3ICsyMDkzLDcgQEAgc3RydWN0IFJhc3Rlcml6ZVBvaW50cworICAg ICAgICAgZm9yIChzaXplX3QgbiA9IHJhbmdlLmJlZ2luKCksIE4gPSByYW5nZS5lbmQoKTsgbiAh PSBOOyArK24pIHsKKyAKKyAgICAgICAgICAgICBpZiAodGhpcy0+d2FzSW50ZXJydXB0ZWQoKSkg eworLSAgICAgICAgICAgICAgICB0YmI6OnRhc2s6OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0 aW9uKCk7CisrICAgICAgICAgICAgICAgIG9wZW52ZGI6OnRocmVhZDo6Y2FuY2VsR3JvdXBFeGVj dXRpb24oKTsKKyAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgfQorIAorZGlm ZiAtLWdpdCBhL29wZW52ZGJfaG91ZGluaS9vcGVudmRiX2hvdWRpbmkvU09QX09wZW5WREJfU2Ft cGxlX1BvaW50cy5jYyBiL29wZW52ZGJfaG91ZGluaS9vcGVudmRiX2hvdWRpbmkvU09QX09wZW5W REJfU2FtcGxlX1BvaW50cy5jYworaW5kZXggNzU3ZmRjOGM2Li5kYmVlNzRiMzIgMTAwNjQ0Cist LS0gYS9vcGVudmRiX2hvdWRpbmkvb3BlbnZkYl9ob3VkaW5pL1NPUF9PcGVuVkRCX1NhbXBsZV9Q b2ludHMuY2MKKysrKyBiL29wZW52ZGJfaG91ZGluaS9vcGVudmRiX2hvdWRpbmkvU09QX09wZW5W REJfU2FtcGxlX1BvaW50cy5jYworQEAgLTE2LDEzICsxNiwxMSBAQAorICNpbmNsdWRlIDxvcGVu dmRiX2hvdWRpbmkvU09QX05vZGVWREIuaD4KKyAKKyAjaW5jbHVkZSA8b3BlbnZkYi90b29scy9J bnRlcnBvbGF0aW9uLmg+ICAvLyBmb3IgYm94IHNhbXBsZXIKKysjaW5jbHVkZSA8b3BlbnZkYi90 aHJlYWQvVGhyZWFkaW5nLmg+CisgI2luY2x1ZGUgPG9wZW52ZGIvcG9pbnRzL1BvaW50Q291bnQu aD4KKyAjaW5jbHVkZSA8b3BlbnZkYi9wb2ludHMvUG9pbnRTYW1wbGUuaD4KKyAjaW5jbHVkZSA8 b3BlbnZkYi9wb2ludHMvSW5kZXhGaWx0ZXIuaD4gICAvLyBmb3IgTXVsdGlHcm91cEZpbHRlcgor IAorLSNpbmNsdWRlIDx0YmIvdGlja19jb3VudC5oPiAgICAgICAgICAgICAgICAgLy8gZm9yIHRp bWluZworLSNpbmNsdWRlIDx0YmIvdGFzay5oPiAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9y IGNhbmNlbAorLQorICNpbmNsdWRlIDxVVC9VVF9JbnRlcnJ1cHQuaD4KKyAjaW5jbHVkZSA8R0Ev R0FfUGFnZUhhbmRsZS5oPgorICNpbmNsdWRlIDxHQS9HQV9QYWdlSXRlcmF0b3IuaD4KK0BAIC0z OCw2ICszNiw3IEBACisgI2luY2x1ZGUgPHN0ZGV4Y2VwdD4KKyAjaW5jbHVkZSA8c3RyaW5nPgor ICNpbmNsdWRlIDx2ZWN0b3I+CisrI2luY2x1ZGUgPGNocm9ubz4KKyAKKyAKKyAKK0BAIC0zMjcs NyArMzI2LDcgQEAgY2xhc3MgUG9pbnRTYW1wbGVyCisgICAgIHsKKyAKKyAgICAgICAgIGlmICht SW50ZXJydXB0ZXItPndhc0ludGVycnVwdGVkKCkpIHsKKy0gICAgICAgICAgICB0YmI6OnRhc2s6 OnNlbGYoKS5jYW5jZWxfZ3JvdXBfZXhlY3V0aW9uKCk7CisrICAgICAgICAgICAgb3BlbnZkYjo6 dGhyZWFkOjpjYW5jZWxHcm91cEV4ZWN1dGlvbigpOworICAgICAgICAgfQorICAgICAgICAgY29u c3QgR3JpZFR5cGUmIGdyaWQgPSBVVHZkYkdyaWRDYXN0PEdyaWRUeXBlPihtR3JpZCk7CisgICAg ICAgICAvLyB0YXNrIGxvY2FsIGdyaWQgYWNjZXNzb3IKK0BAIC00ODEsNyArNDgwLDcgQEAgU09Q X09wZW5WREJfU2FtcGxlX1BvaW50czo6Q2FjaGU6OmNvb2tWREJTb3AoT1BfQ29udGV4dCYgY29u dGV4dCkKKyAgICAgICAgIGludCBudW1Vbm5hbWVkR3JpZHMgPSAwOworIAorICAgICAgICAgLy8g c3RhcnQgdGltZQorLSAgICAgICAgdGJiOjp0aWNrX2NvdW50IHRpbWVfc3RhcnQgPSB0YmI6OnRp Y2tfY291bnQ6Om5vdygpOworKyAgICAgICAgYXV0byB0aW1lX3N0YXJ0ID0gc3RkOjpjaHJvbm86 OnN0ZWFkeV9jbG9jazo6bm93KCk7CisgICAgICAgICBVVF9BdXRvSW50ZXJydXB0IHByb2dyZXNz KCJTYW1wbGluZyBmcm9tIFZEQiBncmlkcyIpOworIAorICAgICAgICAgZm9yIChodmRiOjpWZGJQ cmltQ0l0ZXJhdG9yIGl0KGJHZHAsIGdyb3VwKTsgaXQ7ICsraXQpIHsKK0BAIC03MDYsMTUgKzcw NSwxNiBAQCBTT1BfT3BlblZEQl9TYW1wbGVfUG9pbnRzOjpDYWNoZTo6Y29va1ZEQlNvcChPUF9D b250ZXh0JiBjb250ZXh0KQorICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAKKy0gICAgICAg IC8vIHRpbWluZzogZW5kIHRpbWUKKy0gICAgICAgIHRiYjo6dGlja19jb3VudCB0aW1lX2VuZCA9 IHRiYjo6dGlja19jb3VudDo6bm93KCk7CistCisgICAgICAgICBpZiAodmVyYm9zZSkgeworKyAg ICAgICAgICAgIC8vIHRpbWluZzogZW5kIHRpbWUKKysgICAgICAgICAgICBhdXRvIGR1cmF0aW9u ID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4o CisrICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpIC0gdGlt ZV9zdGFydCk7CisrICAgICAgICAgICAgY29uc3QgZG91YmxlIHNlY29uZHMgPSBkb3VibGUoZHVy YXRpb24uY291bnQoKSkgLyAxMDAwLjA7CisgICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJTYW1w bGluZyAiIDw8IG5Qb2ludHMgKyBuVkRCUG9pbnRzIDw8ICIgcG9pbnRzIGluICIKKyAgICAgICAg ICAgICAgICAgICAgICAgPDwgbnVtVmVjdG9yR3JpZHMgPDwgIiB2ZWN0b3IgZ3JpZCIgPDwgKG51 bVZlY3RvckdyaWRzID09IDEgPyAiIiA6ICJzIikKKyAgICAgICAgICAgICAgICAgICAgICAgPDwg IiBhbmQgIiA8PCBudW1TY2FsYXJHcmlkcyA8PCAiIHNjYWxhciBncmlkIgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgPDwgKG51bVNjYWxhckdyaWRzID09IDEgPyAiIiA6ICJzIikKKy0gICAg ICAgICAgICAgICAgICAgICAgPDwgIiB0b29rICIgPDwgKHRpbWVfZW5kIC0gdGltZV9zdGFydCku c2Vjb25kcygpIDw8ICIgc2Vjb25kc1xuICIKKysgICAgICAgICAgICAgICAgICAgICAgPDwgIiB0 b29rICIgPDwgc2Vjb25kcyA8PCAiIHNlY29uZHNcbiAiCisgICAgICAgICAgICAgICAgICAgICAg IDw8ICh0aHJlYWRlZCA/ICJ0aHJlYWRlZCIgOiAibm9uLXRocmVhZGVkIikgPDwgc3RkOjplbmRs OworICAgICAgICAgfQorIAorZGlmZiAtLWdpdCBhL29wZW52ZGJfbWF5YS9vcGVudmRiX21heWEv T3BlblZEQlBsdWdpbi5jYyBiL29wZW52ZGJfbWF5YS9vcGVudmRiX21heWEvT3BlblZEQlBsdWdp bi5jYworaW5kZXggM2Q1NTlmOGNjLi5kNjNlZDE1OTEgMTAwNjQ0CistLS0gYS9vcGVudmRiX21h eWEvb3BlbnZkYl9tYXlhL09wZW5WREJQbHVnaW4uY2MKKysrKyBiL29wZW52ZGJfbWF5YS9vcGVu dmRiX21heWEvT3BlblZEQlBsdWdpbi5jYworQEAgLTQ3LDExICs0Nyw4IEBAIHN0cnVjdCBOb2Rl SW5mbyB7CisgCisgdHlwZWRlZiBzdGQ6OnZlY3RvcjxOb2RlSW5mbz4gTm9kZUxpc3Q7CisgCist dHlwZWRlZiB0YmI6Om11dGV4IE11dGV4OworLXR5cGVkZWYgTXV0ZXg6OnNjb3BlZF9sb2NrIExv Y2s7CistCisgLy8gRGVjbGFyZSB0aGlzIGF0IGZpbGUgc2NvcGUgdG8gZW5zdXJlIHRocmVhZC1z YWZlIGluaXRpYWxpemF0aW9uLgorLU11dGV4IHNSZWdpc3RyeU11dGV4OworK3N0ZDo6bXV0ZXgg c1JlZ2lzdHJ5TXV0ZXg7CisgCisgTm9kZUxpc3QgKiBnTm9kZXMgPSBOVUxMOworIAorQEAgLTcw LDcgKzY3LDcgQEAgTm9kZVJlZ2lzdHJ5OjpOb2RlUmVnaXN0cnkoY29uc3QgTVN0cmluZyYgdHlw ZU5hbWUsIGNvbnN0IE1UeXBlSWQmIHR5cGVJZCwKKyAgICAgbm9kZS50eXBlICAgICAgICAgICAg ICAgPSB0eXBlOworICAgICBub2RlLmNsYXNzaWZpY2F0aW9uICAgICA9IGNsYXNzaWZpY2F0aW9u OworIAorLSAgICBMb2NrIGxvY2soc1JlZ2lzdHJ5TXV0ZXgpOworKyAgICBzdGQ6OmxvY2tfZ3Vh cmQ8c3RkOjptdXRleD4gbG9jayhzUmVnaXN0cnlNdXRleCk7CisgCisgICAgIGlmICghZ05vZGVz KSB7CisgICAgICAgICBPUEVOVkRCX1NUQVJUX1RIUkVBRFNBRkVfU1RBVElDX1dSSVRFCitAQCAt ODUsNyArODIsNyBAQCBOb2RlUmVnaXN0cnk6Ok5vZGVSZWdpc3RyeShjb25zdCBNU3RyaW5nJiB0 eXBlTmFtZSwgY29uc3QgTVR5cGVJZCYgdHlwZUlkLAorIHZvaWQKKyBOb2RlUmVnaXN0cnk6OnJl Z2lzdGVyTm9kZXMoTUZuUGx1Z2luJiBwbHVnaW4sIE1TdGF0dXMmIHN0YXR1cykKKyB7CistICAg IExvY2sgbG9jayhzUmVnaXN0cnlNdXRleCk7CisrICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11 dGV4PiBsb2NrKHNSZWdpc3RyeU11dGV4KTsKKyAKKyAgICAgaWYgKGdOb2RlcykgeworICAgICAg ICAgZm9yIChzaXplX3QgbiA9IDAsIE4gPSBnTm9kZXMtPnNpemUoKTsgbiA8IE47ICsrbikgewor QEAgLTEwOSw3ICsxMDYsNyBAQCBOb2RlUmVnaXN0cnk6OnJlZ2lzdGVyTm9kZXMoTUZuUGx1Z2lu JiBwbHVnaW4sIE1TdGF0dXMmIHN0YXR1cykKKyB2b2lkCisgTm9kZVJlZ2lzdHJ5OjpkZXJlZ2lz dGVyTm9kZXMoTUZuUGx1Z2luJiBwbHVnaW4sIE1TdGF0dXMmIHN0YXR1cykKKyB7CistICAgIExv Y2sgbG9jayhzUmVnaXN0cnlNdXRleCk7CisrICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4 PiBsb2NrKHNSZWdpc3RyeU11dGV4KTsKKyAKKyAgICAgaWYgKGdOb2RlcykgeworICAgICAgICAg Zm9yIChzaXplX3QgbiA9IDAsIE4gPSBnTm9kZXMtPnNpemUoKTsgbiA8IE47ICsrbikgeworZGlm ZiAtLWdpdCBhL29wZW52ZGJfbWF5YS9vcGVudmRiX21heWEvT3BlblZEQlV0aWwuaCBiL29wZW52 ZGJfbWF5YS9vcGVudmRiX21heWEvT3BlblZEQlV0aWwuaAoraW5kZXggYjU4YmQ2ZjJjLi42YTA0 YjFlYWYgMTAwNjQ0CistLS0gYS9vcGVudmRiX21heWEvb3BlbnZkYl9tYXlhL09wZW5WREJVdGls LmgKKysrKyBiL29wZW52ZGJfbWF5YS9vcGVudmRiX21heWEvT3BlblZEQlV0aWwuaAorQEAgLTE0 LDggKzE0LDcgQEAKKyAjaW5jbHVkZSA8b3BlbnZkYi90cmVlL0xlYWZNYW5hZ2VyLmg+CisgI2lu Y2x1ZGUgPG9wZW52ZGIvdG9vbHMvVm9sdW1lVG9NZXNoLmg+CisgI2luY2x1ZGUgPG9wZW52ZGIv dXRpbC9Gb3JtYXRzLmg+IC8vIHByaW50Qnl0ZXMKKy0KKy0jaW5jbHVkZSA8dGJiL3RpY2tfY291 bnQuaD4KKysjaW5jbHVkZSA8b3BlbnZkYi90aHJlYWQvVGhyZWFkaW5nLmg+CisgCisgI2luY2x1 ZGUgPG1heWEvTTNkVmlldy5oPgorICNpbmNsdWRlIDxtYXlhL01TdHJpbmcuaD4KK0BAIC00MCw2 ICszOSw3IEBACisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5jbHVkZSA8dHlwZV90cmFpdHM+Cisg I2luY2x1ZGUgPHZlY3Rvcj4KKysjaW5jbHVkZSA8Y2hyb25vPgorIAorIAorIC8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK0BAIC0xMTYsMTEgKzExNiwxNSBAQCBpbnNl cnRGcmFtZU51bWJlcihzdGQ6OnN0cmluZyYgc3RyLCBjb25zdCBNVGltZSYgdGltZSwgaW50IG51 bWJlcmluZ1NjaGVtZSA9IDApOworIAorIHN0cnVjdCBUaW1lcgorIHsKKy0gICAgVGltZXIoKSA6 IG1TdGFtcCh0YmI6OnRpY2tfY291bnQ6Om5vdygpKSB7IH0KKysgICAgVGltZXIoKSA6IG1TdGFt cChzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSkgeyB9CisgCistICAgIHZvaWQgcmVz ZXQoKSB7IG1TdGFtcCA9IHRiYjo6dGlja19jb3VudDo6bm93KCk7IH0KKysgICAgdm9pZCByZXNl dCgpIHsgbVN0YW1wID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7IH0KKyAKKy0g ICAgZG91YmxlIHNlY29uZHMoKSBjb25zdCB7IHJldHVybiAodGJiOjp0aWNrX2NvdW50Ojpub3co KSAtIG1TdGFtcCkuc2Vjb25kcygpOyB9CisrICAgIGRvdWJsZSBzZWNvbmRzKCkgY29uc3Qgewor KyAgICAgICAgYXV0byBkdXJhdGlvbiA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6 Y2hyb25vOjptaWxsaXNlY29uZHM+KAorKyAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlf Y2xvY2s6Om5vdygpIC0gbVN0YW1wKTsKKysgICAgICAgIHJldHVybiBkb3VibGUoZHVyYXRpb24u Y291bnQoKSkgLyAxMDAwLjA7CisrICAgIH0KKyAKKyAgICAgc3RkOjpzdHJpbmcgZWxhcHNlZFRp bWUoKSBjb25zdCB7CisgICAgICAgICBkb3VibGUgc2VjID0gc2Vjb25kcygpOworQEAgLTEyOCw3 ICsxMzIsNyBAQCBzdHJ1Y3QgVGltZXIKKyAgICAgfQorIAorIHByaXZhdGU6CistICAgIHRiYjo6 dGlja19jb3VudCBtU3RhbXA7CisrICAgICBzdGQ6OmNocm9ubzo6dGltZV9wb2ludDxzdGQ6OmNo cm9ubzo6c3RlYWR5X2Nsb2NrPiBtU3RhbXA7CisgfTsKKyAKKyAKK2RpZmYgLS1naXQgYS9wZW5k aW5nY2hhbmdlcy90YmIyMDIxLnR4dCBiL3BlbmRpbmdjaGFuZ2VzL3RiYjIwMjEudHh0CituZXcg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwLi44MTA5YzI1NTIKKy0tLSAvZGV2L251 bGwKKysrKyBiL3BlbmRpbmdjaGFuZ2VzL3RiYjIwMjEudHh0CitAQCAtMCwwICsxLDYgQEAKKytJ bXByb3ZlbWVudHM6CisrICAtIE1vdmVkIGZyb20gdGhlIGRlcHJlY2F0ZWQgVEJCIHRhc2sgc2No ZWR1bGVyIHRvIFRCQiBhcmVuYXMuIFZhcmlvdXMgbWV0aG9kcyBub3cgcmVzcGVjdCB0aGUgVEJC IGFyZW5hIHN0YXRlIHRoZXkgd2VyZSBpbnZva2VkIGZyb20uCisrICAtIEludHJvZHVjZWQgYSBu ZXcgdGhyZWFkL1RocmVhZGluZy5oIGhlYWRlciB0byBjb25zb2xpZGF0ZSBjYWxscyB0byB0aGly ZC1wYXJ0eSB0aHJlYWRpbmcgbWV0aG9kcy4KKysKKytCdWlsZDoKKysgIC0gQWRkZWQgc3VwcG9y dCBmb3IgVEJCIDIwMjEuCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW52ZGIvdGVtcGxhdGUgYi9z cmNwa2dzL29wZW52ZGIvdGVtcGxhdGUKaW5kZXggNzJmZGU1YmM2Mzc1Li5kNDIwYTNlZTVmNWQg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb3BlbnZkYi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29wZW52 ZGIvdGVtcGxhdGUKQEAgLTEsMjYgKzEsMTggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW52 ZGInCiBwa2duYW1lPW9wZW52ZGIKLXZlcnNpb249Ny4wLjAKK3ZlcnNpb249OC4xLjAKIHJldmlz aW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURPUEVOVkRCX0JVSUxE X1ZEQl9WSUVXPTEiCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWciCi1tYWtlZGVwZW5kcz0i Ym9vc3QtZGV2ZWwgdGJiLWRldmVsIGlsbWJhc2UtZGV2ZWwgbGlib3BlbmV4ci1kZXZlbCBjLWJs b3NjLWRldmVsIGdsZnctZGV2ZWwiCittYWtlZGVwZW5kcz0iYm9vc3QtZGV2ZWwgdGJiLWRldmVs IGlsbWJhc2UtZGV2ZWwgbGlib3BlbmV4ci1kZXZlbCBjLWJsb3NjLWRldmVsCisgZ2xmdy1kZXZl bCBqZW1hbGxvYy1kZXZlbCIKIHNob3J0X2Rlc2M9IlNwYXJzZSB2b2x1bWUgZGF0YSBzdHJ1Y3R1 cmUgYW5kIHRvb2xzIgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3Jn PiIKIGxpY2Vuc2U9Ik1QTC0yLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9vcGVudmRiLm9yZyIKIGRp c3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL0FjYWRlbXlTb2Z0d2FyZUZvdW5kYXRpb24vb3Bl bnZkYi9hcmNoaXZlL3Yke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTk3YmM4YWUzNWVmN2Nj YmY0OWE0ZTI1Y2I3M2U4YzJlY2NhZTZiMjM1YmFjODZmMjE1MDcwN2VmY2QxZTkxMGQKLQotaWYg WyAiJFhCUFNfVEFSR0VUX05PX0FUT01JQzgiIF07IHRoZW4KLQltYWtlZGVwZW5kcys9IiBsaWJh dG9taWMtZGV2ZWwiCi1maQotCi1wb3N0X3BhdGNoKCkgewotCVsgIiRYQlBTX1RBUkdFVF9OT19B VE9NSUM4IiBdIHx8IHJldHVybiAwCi0JdnNlZCAtaSAncyxaTElCOjpaTElCLFpMSUI6OlpMSUIg YXRvbWljLCcgb3BlbnZkYi9DTWFrZUxpc3RzLnR4dAotfQorY2hlY2tzdW09M2UwOWQ0NzMzMTQy OWJlNzQwOWEzYTNjMjdmZGQzYzI5N2Y5NmQzMWQyMTUzZmViZTE5NGU2NjRhOTlkNjE4MwogCiBw b3N0X2luc3RhbGwoKSB7CiAJdmxpY2Vuc2UgTElDRU5TRQoKRnJvbSA1NzU0NGY5NmMyNTMzMTI1 N2ZkMjllNTJlMTgwYTM5NDkwYzg3YjY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBB cnR1ciBTaW5pbGEgPGZyZWVzb2Z0d2FyZUBsb2dhcml0aG11cy5kZXY+CkRhdGU6IFN1biwgMTgg SnVsIDIwMjEgMTg6Mjk6NDAgKzAzMDAKU3ViamVjdDogW1BBVENIIDEwLzExXSBwYXJhdmlldzog dXBkYXRlIHRvIDUuOS4xLgoKLS0tCiBzcmNwa2dzL3BhcmF2aWV3L3RlbXBsYXRlIHwgNCArKy0t CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvcGFyYXZpZXcvdGVtcGxhdGUgYi9zcmNwa2dzL3BhcmF2aWV3L3RlbXBs YXRlCmluZGV4IDIwYTdmNTU4OTY3Ny4uZTZjMzk0MWNlOTBhIDEwMDY0NAotLS0gYS9zcmNwa2dz L3BhcmF2aWV3L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcGFyYXZpZXcvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwYXJhdmlldycKIHBrZ25hbWU9cGFyYXZp ZXcKLXZlcnNpb249NS44LjEKLXJldmlzaW9uPTMKK3ZlcnNpb249NS45LjEKK3JldmlzaW9uPTEK IHdya3NyYz1QYXJhVmlldy12JHt2ZXJzaW9ufQogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3Vy ZV9hcmdzPSItRENNQUtFX1BSRUZJWF9QQVRIPSR7WEJQU19DUk9TU19CQVNFfS91c3IKCkZyb20g MTVhYTc3YTkyMDgzODUxMDlkMmJlZTI4YjhjYzI1NmIxMWVkNzIxMCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogQXJ0dXIgU2luaWxhIDxmcmVlc29mdHdhcmVAbG9nYXJpdGhtdXMuZGV2 PgpEYXRlOiBTdW4sIDE4IEp1bCAyMDIxIDE4OjI5OjM5ICswMzAwClN1YmplY3Q6IFtQQVRDSCAx MS8xMV0gb2NjdDogcmV2YnVtcCBkdWUgdG8gdGJiIHVwZGF0ZQoKLS0tCiBzcmNwa2dzL29jY3Qv dGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29jY3QvdGVtcGxhdGUgYi9zcmNwa2dzL29jY3Qv dGVtcGxhdGUKaW5kZXggOTI5OGVkYzc2ZTA4Li4wMDZmODllYmI4Y2UgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3Mvb2NjdC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29jY3QvdGVtcGxhdGUKQEAgLTIsNyAr Miw3IEBACiBwa2duYW1lPW9jY3QKIHJldmVydHM9Ny41LjBfMQogdmVyc2lvbj03LjQuMHAxCi1y ZXZpc2lvbj0zCityZXZpc2lvbj00CiBfZ2l0dGFnPSJWJHt2ZXJzaW9uLy8uL199Igogd3Jrc3Jj PW9jY3QtJHtfZ2l0dGFnfQogYnVpbGRfc3R5bGU9Y21ha2UK --===============0414718441993866399==--