ZGlmZiAtLWdpdCBhL2RvY3MveG1sL25naW54L2NoYW5nZXMueG1sIGIvZG9jcy94bWwvbmdpbngvY2hhbmdlcy54bWwKaW5kZXggNjYxZDllMC4uMGRiZDY1MiAxMDA2NDQKLS0tIGEvZG9jcy94bWwvbmdpbngvY2hhbmdlcy54bWwKKysrIGIvZG9jcy94bWwvbmdpbngvY2hhbmdlcy54bWwKQEAgLTksNiArOSwyMiBAQAogPHRpdGxlIGxhbmc9ImVuIj5uZ2lueCBjaGFuZ2Vsb2c8L3RpdGxlPgogCiAKKzxjaGFuZ2VzIHZlcj0iMC4xLjQxIiBkYXRlPSIyNS4wNy4yMDA1Ij4KKworPGNoYW5nZSB0eXBlPSJidWdmaXgiPgorPHBhcmEgbGFuZz0icnUiPgorxdPMySDQxdLFzcXOzsHRIMnT0M/M2NrP18HMwdPYINcgxsHKzMUgy8/OxsnH1dLBw8nJLAor1M8gz87BIM7FIM3Px8zBIMnT0M/M2NrP18HU2NPRINcgU1NJLgorPC9wYXJhPgorPHBhcmEgbGFuZz0iZW4iPgoraWYgdGhlIHZhcmlhYmxlIHdhcyB1c2VkIGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGUsCit0aGVuIGl0IGNhbiBub3QgYmUgdXNlZCBpbiBTU0kuCis8L3BhcmE+Cis8L2NoYW5nZT4KKworPC9jaGFuZ2VzPgorCisKIDxjaGFuZ2VzIHZlcj0iMC4xLjQwIiBkYXRlPSIyMi4wNy4yMDA1Ij4KIAogPGNoYW5nZSB0eXBlPSJidWdmaXgiPgpkaWZmIC0tZ2l0IGEvc3JjL2NvcmUvbmdpbnguaCBiL3NyYy9jb3JlL25naW54LmgKaW5kZXggNmYxNGJkZi4uMjgxMDM2ZiAxMDA2NDQKLS0tIGEvc3JjL2NvcmUvbmdpbnguaAorKysgYi9zcmMvY29yZS9uZ2lueC5oCkBAIC04LDcgKzgsNyBAQAogI2RlZmluZSBfTkdJTlhfSF9JTkNMVURFRF8KIAogCi0jZGVmaW5lIE5HSU5YX1ZFUiAgICAgICAgICAibmdpbngvMC4xLjQwIgorI2RlZmluZSBOR0lOWF9WRVIgICAgICAgICAgIm5naW54LzAuMS40MSIKIAogI2RlZmluZSBOR0lOWF9WQVIgICAgICAgICAgIk5HSU5YIgogI2RlZmluZSBOR1hfTkVXUElEX0VYVCAgICAgIi5uZXdiaW4iCmRpZmYgLS1naXQgYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX3Byb3h5X21vZHVsZS5jIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9wcm94eV9tb2R1bGUuYwppbmRleCA5MjYwNWUwLi44Mjg4ZGYxIDEwMDY0NAotLS0gYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX3Byb3h5X21vZHVsZS5jCisrKyBiL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfcHJveHlfbW9kdWxlLmMKQEAgLTMyMCwxOSArMzIwLDE5IEBACiBzdGF0aWMgbmd4X2h0dHBfdmFyaWFibGVfdCAgbmd4X2h0dHBfcHJveHlfdmFyc1tdID0gewogCiAgICAgeyBuZ3hfc3RyaW5nKCJwcm94eV9ob3N0IiksIG5neF9odHRwX3Byb3h5X2hvc3RfdmFyaWFibGUsIDAsCi0gICAgICBOR1hfSFRUUF9WQVJfQ0hBTkdBQkxFIH0sCisgICAgICBOR1hfSFRUUF9WQVJfQ0hBTkdBQkxFLCAwIH0sCiAKICAgICB7IG5neF9zdHJpbmcoInByb3h5X3BvcnQiKSwgbmd4X2h0dHBfcHJveHlfcG9ydF92YXJpYWJsZSwgMCwKLSAgICAgIE5HWF9IVFRQX1ZBUl9DSEFOR0FCTEUgfSwKKyAgICAgIE5HWF9IVFRQX1ZBUl9DSEFOR0FCTEUsIDAgfSwKIAogICAgIHsgbmd4X3N0cmluZygicHJveHlfYWRkX3hfZm9yd2FyZGVkX2ZvciIpLAotICAgICAgbmd4X2h0dHBfcHJveHlfYWRkX3hfZm9yd2FyZGVkX2Zvcl92YXJpYWJsZSwgMCwgMCB9LAorICAgICAgbmd4X2h0dHBfcHJveHlfYWRkX3hfZm9yd2FyZGVkX2Zvcl92YXJpYWJsZSwgMCwgMCwgMCB9LAogCiAjaWYgMAotICAgIHsgbmd4X3N0cmluZygicHJveHlfYWRkX3ZpYSIpLCBOVUxMLCAwLCAwIH0sCisgICAgeyBuZ3hfc3RyaW5nKCJwcm94eV9hZGRfdmlhIiksIE5VTEwsIDAsIDAsIDAgfSwKICNlbmRpZgogCi0gICAgeyBuZ3hfbnVsbF9zdHJpbmcsIE5VTEwsIDAsIDAgfQorICAgIHsgbmd4X251bGxfc3RyaW5nLCBOVUxMLCAwLCAwLCAwIH0KIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9zc2lfZmlsdGVyX21vZHVsZS5jIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9zc2lfZmlsdGVyX21vZHVsZS5jCmluZGV4IGJmOWMxMjQuLjY1MDcxMDUgMTAwNjQ0Ci0tLSBhL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfc3NpX2ZpbHRlcl9tb2R1bGUuYworKysgYi9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX3NzaV9maWx0ZXJfbW9kdWxlLmMKQEAgLTI3OCwxMiArMjc4LDEyIEBACiBzdGF0aWMgbmd4X2h0dHBfdmFyaWFibGVfdCAgbmd4X2h0dHBfc3NpX3ZhcnNbXSA9IHsKIAogICAgIHsgbmd4X3N0cmluZygiZGF0ZV9sb2NhbCIpLCBuZ3hfaHR0cF9zc2lfZGF0ZV9nbXRfbG9jYWxfdmFyaWFibGUsIDAsCi0gICAgICBOR1hfSFRUUF9WQVJfTk9DQUNIQUJMRSB9LAorICAgICAgTkdYX0hUVFBfVkFSX05PQ0FDSEFCTEUsIDAgfSwKIAogICAgIHsgbmd4X3N0cmluZygiZGF0ZV9nbXQiKSwgbmd4X2h0dHBfc3NpX2RhdGVfZ210X2xvY2FsX3ZhcmlhYmxlLCAxLAotICAgICAgTkdYX0hUVFBfVkFSX05PQ0FDSEFCTEUgfSwKKyAgICAgIE5HWF9IVFRQX1ZBUl9OT0NBQ0hBQkxFLCAwIH0sCiAKLSAgICB7IG5neF9udWxsX3N0cmluZywgTlVMTCwgMCwgMCB9CisgICAgeyBuZ3hfbnVsbF9zdHJpbmcsIE5VTEwsIDAsIDAsIDAgfQogfTsKIAogCmRpZmYgLS1naXQgYS9zcmMvaHR0cC9uZ3hfaHR0cF92YXJpYWJsZXMuYyBiL3NyYy9odHRwL25neF9odHRwX3ZhcmlhYmxlcy5jCmluZGV4IDJhNWNmN2QuLjNlM2Y5ZjcgMTAwNjQ0Ci0tLSBhL3NyYy9odHRwL25neF9odHRwX3ZhcmlhYmxlcy5jCisrKyBiL3NyYy9odHRwL25neF9odHRwX3ZhcmlhYmxlcy5jCkBAIC00Nyw3MSArNDcsNzEgQEAKIHN0YXRpYyBuZ3hfaHR0cF92YXJpYWJsZV90ICBuZ3hfaHR0cF9jb3JlX3ZhcmlhYmxlc1tdID0gewogCiAgICAgeyBuZ3hfc3RyaW5nKCJodHRwX2hvc3QiKSwgbmd4X2h0dHBfdmFyaWFibGVfaGVhZGVyLAotICAgICAgb2Zmc2V0b2Yobmd4X2h0dHBfcmVxdWVzdF90LCBoZWFkZXJzX2luLmhvc3QpLCAwIH0sCisgICAgICBvZmZzZXRvZihuZ3hfaHR0cF9yZXF1ZXN0X3QsIGhlYWRlcnNfaW4uaG9zdCksIDAsIDAgfSwKIAogICAgIHsgbmd4X3N0cmluZygiaHR0cF91c2VyX2FnZW50IiksIG5neF9odHRwX3ZhcmlhYmxlX2hlYWRlciwKLSAgICAgIG9mZnNldG9mKG5neF9odHRwX3JlcXVlc3RfdCwgaGVhZGVyc19pbi51c2VyX2FnZW50KSwgMCB9LAorICAgICAgb2Zmc2V0b2Yobmd4X2h0dHBfcmVxdWVzdF90LCBoZWFkZXJzX2luLnVzZXJfYWdlbnQpLCAwLCAwIH0sCiAKICAgICB7IG5neF9zdHJpbmcoImh0dHBfcmVmZXJlciIpLCBuZ3hfaHR0cF92YXJpYWJsZV9oZWFkZXIsCi0gICAgICBvZmZzZXRvZihuZ3hfaHR0cF9yZXF1ZXN0X3QsIGhlYWRlcnNfaW4ucmVmZXJlciksIDAgfSwKKyAgICAgIG9mZnNldG9mKG5neF9odHRwX3JlcXVlc3RfdCwgaGVhZGVyc19pbi5yZWZlcmVyKSwgMCwgMCB9LAogCiAjaWYgKE5HWF9IVFRQX0daSVApCiAgICAgeyBuZ3hfc3RyaW5nKCJodHRwX3ZpYSIpLCBuZ3hfaHR0cF92YXJpYWJsZV9oZWFkZXIsCi0gICAgICBvZmZzZXRvZihuZ3hfaHR0cF9yZXF1ZXN0X3QsIGhlYWRlcnNfaW4udmlhKSwgMCB9LAorICAgICAgb2Zmc2V0b2Yobmd4X2h0dHBfcmVxdWVzdF90LCBoZWFkZXJzX2luLnZpYSksIDAsIDAgfSwKICNlbmRpZgogCiAjaWYgKE5HWF9IVFRQX1BST1hZKQogICAgIHsgbmd4X3N0cmluZygiaHR0cF94X2ZvcndhcmRlZF9mb3IiKSwgbmd4X2h0dHBfdmFyaWFibGVfaGVhZGVyLAotICAgICAgb2Zmc2V0b2Yobmd4X2h0dHBfcmVxdWVzdF90LCBoZWFkZXJzX2luLnhfZm9yd2FyZGVkX2ZvciksIDAgfSwKKyAgICAgIG9mZnNldG9mKG5neF9odHRwX3JlcXVlc3RfdCwgaGVhZGVyc19pbi54X2ZvcndhcmRlZF9mb3IpLCAwLCAwIH0sCiAjZW5kaWYKIAogICAgIHsgbmd4X3N0cmluZygiaHR0cF9jb29raWUiKSwgbmd4X2h0dHBfdmFyaWFibGVfaGVhZGVycywKLSAgICAgIG9mZnNldG9mKG5neF9odHRwX3JlcXVlc3RfdCwgaGVhZGVyc19pbi5jb29raWVzKSwgMCB9LAorICAgICAgb2Zmc2V0b2Yobmd4X2h0dHBfcmVxdWVzdF90LCBoZWFkZXJzX2luLmNvb2tpZXMpLCAwLCAwIH0sCiAKICAgICB7IG5neF9zdHJpbmcoImNvbnRlbnRfbGVuZ3RoIiksIG5neF9odHRwX3ZhcmlhYmxlX2hlYWRlciwKLSAgICAgIG9mZnNldG9mKG5neF9odHRwX3JlcXVlc3RfdCwgaGVhZGVyc19pbi5jb250ZW50X2xlbmd0aCksIDAgfSwKKyAgICAgIG9mZnNldG9mKG5neF9odHRwX3JlcXVlc3RfdCwgaGVhZGVyc19pbi5jb250ZW50X2xlbmd0aCksIDAsIDAgfSwKIAogICAgIHsgbmd4X3N0cmluZygiY29udGVudF90eXBlIiksIG5neF9odHRwX3ZhcmlhYmxlX2hlYWRlciwKLSAgICAgIG9mZnNldG9mKG5neF9odHRwX3JlcXVlc3RfdCwgaGVhZGVyc19pbi5jb250ZW50X3R5cGUpLCAwIH0sCisgICAgICBvZmZzZXRvZihuZ3hfaHR0cF9yZXF1ZXN0X3QsIGhlYWRlcnNfaW4uY29udGVudF90eXBlKSwgMCwgMCB9LAogCi0gICAgeyBuZ3hfc3RyaW5nKCJob3N0IiksIG5neF9odHRwX3ZhcmlhYmxlX2hvc3QsIDAsIDAgfSwKKyAgICB7IG5neF9zdHJpbmcoImhvc3QiKSwgbmd4X2h0dHBfdmFyaWFibGVfaG9zdCwgMCwgMCwgMCB9LAogCi0gICAgeyBuZ3hfc3RyaW5nKCJyZW1vdGVfYWRkciIpLCBuZ3hfaHR0cF92YXJpYWJsZV9yZW1vdGVfYWRkciwgMCwgMCB9LAorICAgIHsgbmd4X3N0cmluZygicmVtb3RlX2FkZHIiKSwgbmd4X2h0dHBfdmFyaWFibGVfcmVtb3RlX2FkZHIsIDAsIDAsIDAgfSwKIAotICAgIHsgbmd4X3N0cmluZygicmVtb3RlX3BvcnQiKSwgbmd4X2h0dHBfdmFyaWFibGVfcmVtb3RlX3BvcnQsIDAsIDAgfSwKKyAgICB7IG5neF9zdHJpbmcoInJlbW90ZV9wb3J0IiksIG5neF9odHRwX3ZhcmlhYmxlX3JlbW90ZV9wb3J0LCAwLCAwLCAwIH0sCiAKLSAgICB7IG5neF9zdHJpbmcoInNlcnZlcl9hZGRyIiksIG5neF9odHRwX3ZhcmlhYmxlX3NlcnZlcl9hZGRyLCAwLCAwIH0sCisgICAgeyBuZ3hfc3RyaW5nKCJzZXJ2ZXJfYWRkciIpLCBuZ3hfaHR0cF92YXJpYWJsZV9zZXJ2ZXJfYWRkciwgMCwgMCwgMCB9LAogCi0gICAgeyBuZ3hfc3RyaW5nKCJzZXJ2ZXJfcG9ydCIpLCBuZ3hfaHR0cF92YXJpYWJsZV9zZXJ2ZXJfcG9ydCwgMCwgMCB9LAorICAgIHsgbmd4X3N0cmluZygic2VydmVyX3BvcnQiKSwgbmd4X2h0dHBfdmFyaWFibGVfc2VydmVyX3BvcnQsIDAsIDAsIDAgfSwKIAogICAgIHsgbmd4X3N0cmluZygic2VydmVyX3Byb3RvY29sIiksIG5neF9odHRwX3ZhcmlhYmxlX3JlcXVlc3QsCi0gICAgICBvZmZzZXRvZihuZ3hfaHR0cF9yZXF1ZXN0X3QsIGh0dHBfcHJvdG9jb2wpLCAwIH0sCisgICAgICBvZmZzZXRvZihuZ3hfaHR0cF9yZXF1ZXN0X3QsIGh0dHBfcHJvdG9jb2wpLCAwLCAwIH0sCiAKICAgICB7IG5neF9zdHJpbmcoInJlcXVlc3RfdXJpIiksIG5neF9odHRwX3ZhcmlhYmxlX3JlcXVlc3QsCi0gICAgICBvZmZzZXRvZihuZ3hfaHR0cF9yZXF1ZXN0X3QsIHVucGFyc2VkX3VyaSksIDAgfSwKKyAgICAgIG9mZnNldG9mKG5neF9odHRwX3JlcXVlc3RfdCwgdW5wYXJzZWRfdXJpKSwgMCwgMCB9LAogCiAgICAgeyBuZ3hfc3RyaW5nKCJkb2N1bWVudF91cmkiKSwgbmd4X2h0dHBfdmFyaWFibGVfcmVxdWVzdCwKLSAgICAgIG9mZnNldG9mKG5neF9odHRwX3JlcXVlc3RfdCwgdXJpKSwgMCB9LAorICAgICAgb2Zmc2V0b2Yobmd4X2h0dHBfcmVxdWVzdF90LCB1cmkpLCAwLCAwIH0sCiAKLSAgICB7IG5neF9zdHJpbmcoImRvY3VtZW50X3Jvb3QiKSwgbmd4X2h0dHBfdmFyaWFibGVfZG9jdW1lbnRfcm9vdCwgMCwgMCB9LAorICAgIHsgbmd4X3N0cmluZygiZG9jdW1lbnRfcm9vdCIpLCBuZ3hfaHR0cF92YXJpYWJsZV9kb2N1bWVudF9yb290LCAwLCAwLCAwIH0sCiAKICAgICB7IG5neF9zdHJpbmcoInF1ZXJ5X3N0cmluZyIpLCBuZ3hfaHR0cF92YXJpYWJsZV9yZXF1ZXN0LAogICAgICAgb2Zmc2V0b2Yobmd4X2h0dHBfcmVxdWVzdF90LCBhcmdzKSwKLSAgICAgIE5HWF9IVFRQX1ZBUl9OT0NBQ0hBQkxFIH0sCisgICAgICBOR1hfSFRUUF9WQVJfTk9DQUNIQUJMRSwgMCB9LAogCiAgICAgeyBuZ3hfc3RyaW5nKCJyZXF1ZXN0X2ZpbGVuYW1lIiksIG5neF9odHRwX3ZhcmlhYmxlX3JlcXVlc3RfZmlsZW5hbWUsIDAsCi0gICAgICBOR1hfSFRUUF9WQVJfTk9DQUNIQUJMRSB9LAorICAgICAgTkdYX0hUVFBfVkFSX05PQ0FDSEFCTEUsIDAgfSwKIAogICAgIHsgbmd4X3N0cmluZygic2VydmVyX25hbWUiKSwgbmd4X2h0dHBfdmFyaWFibGVfcmVxdWVzdCwKLSAgICAgIG9mZnNldG9mKG5neF9odHRwX3JlcXVlc3RfdCwgc2VydmVyX25hbWUpLCAwIH0sCisgICAgICBvZmZzZXRvZihuZ3hfaHR0cF9yZXF1ZXN0X3QsIHNlcnZlcl9uYW1lKSwgMCwgMCB9LAogCiAgICAgeyBuZ3hfc3RyaW5nKCJyZXF1ZXN0X21ldGhvZCIpLCBuZ3hfaHR0cF92YXJpYWJsZV9yZXF1ZXN0LAotICAgICAgb2Zmc2V0b2Yobmd4X2h0dHBfcmVxdWVzdF90LCBtZXRob2RfbmFtZSksIDAgfSwKKyAgICAgIG9mZnNldG9mKG5neF9odHRwX3JlcXVlc3RfdCwgbWV0aG9kX25hbWUpLCAwLCAwIH0sCiAKICAgICB7IG5neF9zdHJpbmcoInJlbW90ZV91c2VyIiksIG5neF9odHRwX3ZhcmlhYmxlX3JlcXVlc3QsCi0gICAgICBvZmZzZXRvZihuZ3hfaHR0cF9yZXF1ZXN0X3QsIGhlYWRlcnNfaW4udXNlciksIDAgfSwKKyAgICAgIG9mZnNldG9mKG5neF9odHRwX3JlcXVlc3RfdCwgaGVhZGVyc19pbi51c2VyKSwgMCwgMCB9LAogCi0gICAgeyBuZ3hfbnVsbF9zdHJpbmcsIE5VTEwsIDAsIDAgfQorICAgIHsgbmd4X251bGxfc3RyaW5nLCBOVUxMLCAwLCAwLCAwIH0KIH07CiAKIApAQCAtMTU5LDYgKzE1OSw3IEBACiAgICAgdi0+aGFuZGxlciA9IE5VTEw7CiAgICAgdi0+ZGF0YSA9IDA7CiAgICAgdi0+ZmxhZ3MgPSBmbGFnczsKKyAgICB2LT5pbmRleCA9IDA7CiAKICAgICByZXR1cm4gdjsKIH0KQEAgLTIxMiw2ICsyMTMsNyBAQAogICAgIHYtPmhhbmRsZXIgPSBOVUxMOwogICAgIHYtPmRhdGEgPSAwOwogICAgIHYtPmZsYWdzID0gMDsKKyAgICB2LT5pbmRleCA9IGNtY2YtPnZhcmlhYmxlcy5uZWx0cyAtIDE7CiAKICAgICByZXR1cm4gY21jZi0+dmFyaWFibGVzLm5lbHRzIC0gMTsKIH0KQEAgLTI3Nyw3ICsyNzksNyBAQAogICAgICAgICAmJiBuZ3hfc3RybmNtcCh2W2tleV0ubmFtZS5kYXRhLCBuYW1lLT5kYXRhLCBuYW1lLT5sZW4pID09IDApCiAgICAgewogICAgICAgICBpZiAodltrZXldLmZsYWdzICYgTkdYX0hUVFBfVkFSX0lOREVYRUQpIHsKLSAgICAgICAgICAgIHJldHVybiBuZ3hfaHR0cF9nZXRfaW5kZXhlZF92YXJpYWJsZShyLCB2W2tleV0uZGF0YSk7CisgICAgICAgICAgICByZXR1cm4gbmd4X2h0dHBfZ2V0X2luZGV4ZWRfdmFyaWFibGUociwgdltrZXldLmluZGV4KTsKIAogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcmV0dXJuIHZba2V5XS5oYW5kbGVyKHIsIHZba2V5XS5kYXRhKTsKQEAgLTcxMCw2ICs3MTIsOCBAQAogICAgICAgICAgICAgICAgIGF2W25dLmZsYWdzIHw9IE5HWF9IVFRQX1ZBUl9JTkRFWEVEOwogICAgICAgICAgICAgICAgIHZbaV0uZmxhZ3MgPSBhdltuXS5mbGFnczsKIAorICAgICAgICAgICAgICAgIGF2W25dLmluZGV4ID0gaTsKKwogICAgICAgICAgICAgICAgIGdvdG8gbmV4dDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvc3JjL2h0dHAvbmd4X2h0dHBfdmFyaWFibGVzLmggYi9zcmMvaHR0cC9uZ3hfaHR0cF92YXJpYWJsZXMuaAppbmRleCBkOTg2YzdkLi5kZjBmYzllIDEwMDY0NAotLS0gYS9zcmMvaHR0cC9uZ3hfaHR0cF92YXJpYWJsZXMuaAorKysgYi9zcmMvaHR0cC9uZ3hfaHR0cF92YXJpYWJsZXMuaApAQCAtMzgsNiArMzgsNyBAQAogICAgIG5neF9odHRwX2dldF92YXJpYWJsZV9wdCAgIGhhbmRsZXI7CiAgICAgdWludHB0cl90ICAgICAgICAgICAgICAgICAgZGF0YTsKICAgICBuZ3hfdWludF90ICAgICAgICAgICAgICAgICBmbGFnczsKKyAgICBuZ3hfdWludF90ICAgICAgICAgICAgICAgICBpbmRleDsKIH07CiAKIAo=