ZGlmZiAtLWdpdCBhL2RvYy9lZnVuL3NldF9uZXh0X3Jlc2V0IGIvZG9jL2VmdW4vc2V0X25leHRfcmVzZXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzRjZDNiNwotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9lZnVuL3NldF9uZXh0X3Jlc2V0CkBAIC0wLDAgKzEsNTUgQEAKK0ZVTktUSU9OCisgICAgIGludCBzZXRfbmV4dF9yZXNldChpbnQgZGVsYXkpCisKK0FSR1VNRU5URQorICAgICBkZWxheSAtIG1pbmltYWxlIFplaXQgYmlzIHp1bSBuYWVjaHN0ZW4gUmVzZXQgZGVzIE9iamVrdGVzCisKK0JFU0NIUkVJQlVORworICAgICBNaXQgZGllc2VyIGVmdW4gaXN0IGVzIG1vZWdsaWNoIEVpbmZsdXNzIGF1ZiBkYXMgUmVzZXR2ZXJoYWx0ZW4gZGVzCisgICAgIE9iamVrdGVzIHp1IG5laG1lbjoKKworICAgICBEYXMgT2JqZWt0IGJla29tbXQgZWluZW4gcmVzZXQoKS1BdWZydWYgZnJ1ZWhlc3RlbnMgaW4gPGRlbGF5PiBTZWt1bmRlbi4KKyAgICAgQmVpIEFuZ2FiZSBlaW5lcyBXZXJ0ZXMgPDAgd2lyZCBkZXIgcmVzZXQoKSBm/HIgZGFzIE9iamVrdCBhYmdlc2NoYWx0ZXQsCisgICAgIHdhcyBmdWVyIEJsdWVwcmludHMgZ2VsZWdlbnRsaWNoIHNpbm52b2xsIGlzdC4KKworICAgICBJbnRlcm4gd2lyZCBpbiBnbGVpY2hibGVpYmVuZGVuIEFic3RhZW5kZW4gKGRlcnplaXQ6IGluIGRlciBSZWdlbCAycywKKyAgICAga2FubiBzaWNoIGFiZXIgYXVjaCB2ZXJ6b2VnZXJuLCB3ZW5uIGRlciBEcml2ZXIgdmllbCB6dSBoYXQsIHouQi4gYXVmIAorICAgICA0cykgZ2VwcnVlZnQgb2IgZGllIFplaXQgenVtIHp1bSBuYWVjaHN0ZW4gcmVzZXQoKSBhYmdlbGF1ZmVuIGlzdC4gCisgICAgIFNvbGx0ZSBkaWVzIGRlciBGYWxsIHNlaW4sIHdpcmQgZGllIEZ1bmt0aW9uIHJlc2V0KCkgaW0gT2JqZWt0IAorICAgICBhdWZnZXJ1ZmVuLgorCisgICAgIERpZSBGdW5rdGlvbiBnaWJ0IGRpZSB2ZXJibGVpYmVuZGUgWmVpdCBiaXMgenVtIG5hZWNoc3RlbiBSZXNldAorICAgICB6dXJ1ZWNrLCBiZXZvciA8ZGVsYXk+IGdlc2V0enQgd3VyZGUuIERlciBXZXJ0IGthbm4gYXVjaCBuZWdhdGl2CisgICAgIHNlaW4sIHdlbm4gZGVyIFJlc2V0IHVlYmVyZmFlbGxpZyB3YXIuCisKKyAgICAgQWNodHVuZzogZGllIHRhdHNhZWNobGljaGUgWmVpdCwgd2FubiBkZXIgUmVzZXQgaW0gT2JqZWt0IGR1cmNoZ2VmdWVocnQKKyAgICAgd2lyZCwgaGFlbmd0IGF1Y2ggZGF2b24gYWIsIG9iIGRhcyBPYmpla3QgbmFjaCBBYmxhdWYgdm9uIDxkZWxheT4KKyAgICAgdmVyd2VuZGV0IHdpcmQuCisKK0JFSVNQSUVMRQorICAgICAvLyBlaW4gT2JqZWt0IG1pdCB2ZXJrdWVyenRlciByZXNldCgpLVplaXQKKyAgICAgdm9pZCBjcmVhdGUoKSB7CisgICAgICAgLi4uCisgICAgICAgc2V0X25leHRfcmVzZXQoMTUqNjApOwkvLyB+IDE1IE1pbnV0ZW4KKyAgICAgICAuLi4KKyAgICAgfQorCisgICAgIHZvaWQgcmVzZXQoKSB7CisgICAgICAgc2V0X25leHRfcmVzZXQoOTAwKTsJLy8gZGllIG11c3MgaW0gcmVzZXQoKSBpbW1lciB3aWVkZXIKKyAgICAgICA6OnJlc2V0KCk7ICAgICAgICAgICAvLyBuZXUgZ2VzZXR6dCB3ZXJkZW4KKyAgICAgfQorCisgICAgIC8vIGVpbiBPYmpla3QsIGRlc3NlbiBCbHVlcHJpbnQga2VpbmVuIHJlc2V0KCkgYmVrb21tZW4gc29sbAorICAgICB2b2lkIGNyZWF0ZSgpIHsKKyAgICAgICBpZighY2xvbmVwKHRoaXNfb2JqZWN0KCkpKSB7CisgICAgICAgICBzZXRfbmV4dF9yZXNldCgtMSk7CisgICAgICAgICByZXR1cm47CisgICAgICAgfQorICAgICAgIDo6Y3JlYXRlKCk7CisgICAgICAgLi4uCisgICAgIH0KKworU0lFSEUgQVVDSAorICAgICBjYWxsX291dChFKSwgb2JqZWN0X2luZm8oRSksIHJlc2V0KEwpLCBxdWVyeV9uZXh0X3Jlc2V0KEUpCisKKzcuQXVnIDIwMDcgR2xvaW5zb24K