ZGlmZiAtLWdpdCBhL2ZwZGZzZGsvc3JjL2ZwZGZkb2NfZW1iZWRkZXJ0ZXN0LmNwcCBiL2ZwZGZzZGsvc3JjL2ZwZGZkb2NfZW1iZWRkZXJ0ZXN0LmNwcAppbmRleCA4YjFjNGZiLi5jODNiMmViIDEwMDY0NAotLS0gYS9mcGRmc2RrL3NyYy9mcGRmZG9jX2VtYmVkZGVydGVzdC5jcHAKKysrIGIvZnBkZnNkay9zcmMvZnBkZmRvY19lbWJlZGRlcnRlc3QuY3BwCkBAIC0yLDkgKzIsMTEgQEAKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKKyNpbmNsdWRlICIuLi8uLi9jb3JlL2luY2x1ZGUvZnhjcnQvZnhfc3RyaW5nLmgiCiAjaW5jbHVkZSAiLi4vLi4vcHVibGljL2ZwZGZfZG9jLmgiCiAjaW5jbHVkZSAiLi4vLi4vcHVibGljL2ZwZGZ2aWV3LmgiCiAjaW5jbHVkZSAiLi4vLi4vdGVzdGluZy9lbWJlZGRlcl90ZXN0LmgiCisjaW5jbHVkZSAiLi4vLi4vdGVzdGluZy9meF9zdHJpbmdfdGVzdGhlbHBlcnMuaCIKICNpbmNsdWRlICJ0ZXN0aW5nL2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaCIKIAogY2xhc3MgRlBERkRvY0VtYmVkZGVydGVzdCA6IHB1YmxpYyBFbWJlZGRlclRlc3Qge307CkBAIC02MCwzICs2Miw0MCBAQAogCiAgIEZQREZfQ2xvc2VQYWdlKHBhZ2UpOwogfQorCitURVNUX0YoRlBERkRvY0VtYmVkZGVydGVzdCwgTm9Cb29rbWFya3MpIHsKKyAgLy8gT3BlbiBhIGZpbGUgd2l0aCBubyBib29rbWFya3MuCisgIEVYUEVDVF9UUlVFKE9wZW5Eb2N1bWVudCgidGVzdGluZy9yZXNvdXJjZXMvbmFtZWRfZGVzdHMucGRmIikpOworCisgIC8vIFRoZSBub24tZXhpc3RlbnQgdG9wLWxldmVsIGJvb2ttYXJrIGhhcyBubyB0aXRsZS4KKyAgdW5zaWduZWQgc2hvcnQgYnVmWzEyOF07CisgIEVYUEVDVF9FUSgwLCBGUERGQm9va21hcmtfR2V0VGl0bGUobnVsbHB0ciwgYnVmLCBzaXplb2YoYnVmKSkpOworCisgIC8vIFRoZSBub24tZXhpc3RlbnQgdG9wLWxldmVsIGJvb2ttYXJrIGhhcyBubyBjaGlsZHJlbi4KKyAgRVhQRUNUX0VRKG51bGxwdHIsIEZQREZCb29rbWFya19HZXRGaXJzdENoaWxkKGRvY3VtZW50KCksIG51bGxwdHIpKTsKK30KKworVEVTVF9GKEZQREZEb2NFbWJlZGRlcnRlc3QsIEJvb2ttYXJrcykgeworICAvLyBPcGVuIGEgZmlsZSB3aXRoIHR3byBib29rbWFya3MuCisgIEVYUEVDVF9UUlVFKE9wZW5Eb2N1bWVudCgidGVzdGluZy9yZXNvdXJjZXMvYm9va21hcmtzLnBkZiIpKTsKKworICAvLyBUaGUgZXhpc3RlbnQgdG9wLWxldmVsIGJvb2ttYXJrIGhhcyBubyB0aXRsZS4KKyAgdW5zaWduZWQgc2hvcnQgYnVmWzEyOF07CisgIEVYUEVDVF9FUSgwLCBGUERGQm9va21hcmtfR2V0VGl0bGUobnVsbHB0ciwgYnVmLCBzaXplb2YoYnVmKSkpOworCisgIEZQREZfQk9PS01BUksgY2hpbGQgPSBGUERGQm9va21hcmtfR2V0Rmlyc3RDaGlsZChkb2N1bWVudCgpLCBudWxscHRyKTsKKyAgRVhQRUNUX05FKG51bGxwdHIsIGNoaWxkKTsKKyAgRVhQRUNUX0VRKDM0LCBGUERGQm9va21hcmtfR2V0VGl0bGUoY2hpbGQsIGJ1Ziwgc2l6ZW9mKGJ1ZikpKTsKKyAgRVhQRUNUX0VRKENGWF9XaWRlU3RyaW5nKEwiQSBHb29kIEJlZ2lubmluZyIpLAorICAgICAgICAgICAgQ0ZYX1dpZGVTdHJpbmc6OkZyb21VVEYxNkxFKGJ1ZiwgMTYpKTsKKworICBFWFBFQ1RfRVEobnVsbHB0ciwgRlBERkJvb2ttYXJrX0dldEZpcnN0Q2hpbGQoZG9jdW1lbnQoKSwgY2hpbGQpKTsKKworICBGUERGX0JPT0tNQVJLIHNpYmxpbmcgPSBGUERGQm9va21hcmtfR2V0TmV4dFNpYmxpbmcoZG9jdW1lbnQoKSwgY2hpbGQpOworICBFWFBFQ1RfTkUobnVsbHB0ciwgc2libGluZyk7CisgIEVYUEVDVF9FUSgyOCwgRlBERkJvb2ttYXJrX0dldFRpdGxlKHNpYmxpbmcsIGJ1Ziwgc2l6ZW9mKGJ1ZikpKTsKKyAgRVhQRUNUX0VRKENGWF9XaWRlU3RyaW5nKEwiQSBHb29kIEVuZGluZyIpLAorICAgICAgICAgICAgQ0ZYX1dpZGVTdHJpbmc6OkZyb21VVEYxNkxFKGJ1ZiwgMTMpKTsKKworICBFWFBFQ1RfRVEobnVsbHB0ciwgRlBERkJvb2ttYXJrX0dldE5leHRTaWJsaW5nKGRvY3VtZW50KCksIHNpYmxpbmcpKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2Jvb2ttYXJrcy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2Jvb2ttYXJrcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZmE2ZTE0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYm9va21hcmtzLmluCkBAIC0wLDAgKzEsOTggQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvT3V0bGluZXMgMTQgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDIKKyAgL0tpZHMgWworICAgIDMgMCBSCisgICAgNCAwIFIKKyAgXQorPj4KK2VuZG9iagorJSBQYWdlIG51bWJlciAwLgore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwvRjEgMTUgMCBSPj4KKyAgPj4KKyAgL0NvbnRlbnRzIFsyMSAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCis+PgorZW5kb2JqCislIFBhZ2UgbnVtYmVyIDEuCit7e29iamVjdCA0IDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9SZXNvdXJjZXMgIDw8CisgICAgL0ZvbnQgPDwvRjEgMTUgMCBSPj4KKyAgPj4KKyAgL0NvbnRlbnRzIFsyMiAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCis+PgorZW5kb2JqCislIEZpcnN0IGJvb2ttYXJrCit7e29iamVjdCAxMCAwfX0gPDwKKyAgL1RpdGxlIChBIEdvb2QgQmVnaW5uaW5nKQorICAvUGFyZW50IDE0IDAgUgorICAvTmV4dCAxMSAwIFIKKyAgL0Rlc3QgKGZvbykKKz4+CitlbmRvYmoKKyUgTGFzdCBib29rbWFyawore3tvYmplY3QgMTEgMH19IDw8CisgIC9UaXRsZSAoQSBHb29kIEVuZGluZykKKyAgL1BhcmVudCAxNCAwIFIKKyAgL1ByZXYgMTAgMCBSCisgIC9EZXN0IChiYXIpCis+PgorZW5kb2JqCislIFJvb3QgYm9va21hcmsKK3t7b2JqZWN0IDE0IDB9fSA8PAorICAvVHlwZSAvT3V0bGluZXMKKyAgL0ZpcnN0IDEwIDAgUgorICAvTGFzdCAgMTEgMCBSCisgIC9Db3VudCAyCis+PgorZW5kb2JqCislIEZvbnQgcmVzb3VyY2UuCit7e29iamVjdCAxNSAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvQXJpYWwKKz4+CitlbmRvYmoKKyUgQ29udGVudCBmb3IgcGFnZSAwLgore3tvYmplY3QgMjEgMH19IDw8CisgIC9MZW5ndGggMAorPj4KK3N0cmVhbQorQlQKKy9GMSAyMCBUZgorMTAwIDYwMCBURCAoUGFnZTEpVGoKK0VUCitlbmRzdHJlYW0KK2VuZG9iagorJSBDb250ZW50IGZvciBwYWdlIDEuCit7e29iamVjdCAyMiAwfX0gPDwKKyAgL0xlbmd0aCAwCis+Pgorc3RyZWFtCitCVAorL0YxIDIwIFRmCisxMDAgNjAwIFREIChQYWdlMilUagorRVQKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQordHJhaWxlciA8PAorICAvU2l6ZSA2CisgIC9Sb290IDEgMCBSCis+Pgore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2Jvb2ttYXJrcy5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9ib29rbWFya3MucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyNGNlNzgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9ib29rbWFya3MucGRmCkBAIC0wLDAgKzEsMTI0IEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9PdXRsaW5lcyAxNCAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAyCisgIC9LaWRzIFsKKyAgICAzIDAgUgorICAgIDQgMCBSCisgIF0KKz4+CitlbmRvYmoKKyUgUGFnZSBudW1iZXIgMC4KKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwvRjEgMTUgMCBSPj4KKyAgPj4KKyAgL0NvbnRlbnRzIFsyMSAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCis+PgorZW5kb2JqCislIFBhZ2UgbnVtYmVyIDEuCis0IDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL1Jlc291cmNlcyAgPDwKKyAgICAvRm9udCA8PC9GMSAxNSAwIFI+PgorICA+PgorICAvQ29udGVudHMgWzIyIDAgUl0KKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKz4+CitlbmRvYmoKKyUgRmlyc3QgYm9va21hcmsKKzEwIDAgb2JqIDw8CisgIC9UaXRsZSAoQSBHb29kIEJlZ2lubmluZykKKyAgL1BhcmVudCAxNCAwIFIKKyAgL05leHQgMTEgMCBSCisgIC9EZXN0IChmb28pCis+PgorZW5kb2JqCislIExhc3QgYm9va21hcmsKKzExIDAgb2JqIDw8CisgIC9UaXRsZSAoQSBHb29kIEVuZGluZykKKyAgL1BhcmVudCAxNCAwIFIKKyAgL1ByZXYgMTAgMCBSCisgIC9EZXN0IChiYXIpCis+PgorZW5kb2JqCislIFJvb3QgYm9va21hcmsKKzE0IDAgb2JqIDw8CisgIC9UeXBlIC9PdXRsaW5lcworICAvRmlyc3QgMTAgMCBSCisgIC9MYXN0ICAxMSAwIFIKKyAgL0NvdW50IDIKKz4+CitlbmRvYmoKKyUgRm9udCByZXNvdXJjZS4KKzE1IDAgb2JqIDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL0FyaWFsCis+PgorZW5kb2JqCislIENvbnRlbnQgZm9yIHBhZ2UgMC4KKzIxIDAgb2JqIDw8CisgIC9MZW5ndGggMAorPj4KK3N0cmVhbQorQlQKKy9GMSAyMCBUZgorMTAwIDYwMCBURCAoUGFnZTEpVGoKK0VUCitlbmRzdHJlYW0KK2VuZG9iagorJSBDb250ZW50IGZvciBwYWdlIDEuCisyMiAwIG9iaiA8PAorICAvTGVuZ3RoIDAKKz4+CitzdHJlYW0KK0JUCisvRjEgMjAgVGYKKzEwMCA2MDAgVEQgKFBhZ2UyKVRqCitFVAorZW5kc3RyZWFtCitlbmRvYmoKK3hyZWYKKzAgMjMKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAwODcgMDAwMDAgbiAKKzAwMDAwMDAxODUgMDAwMDAgbiAKKzAwMDAwMDAzNDYgMDAwMDAgbiAKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDA1MDggMDAwMDAgbiAKKzAwMDAwMDA2MjAgMDAwMDAgbiAKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDA3MjkgMDAwMDAgbiAKKzAwMDAwMDA4MjkgMDAwMDAgbiAKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDA5MjQgMDAwMDAgbiAKKzAwMDAwMDEwMzQgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1NpemUgNgorICAvUm9vdCAxIDAgUgorPj4KK3N0YXJ0eHJlZgorMTEyMgorJSVFT0YK