ZGlmZiAtLWdpdCBhL2ZwZGZzZGsvZnBkZl9lZGl0X2VtYmVkZGVydGVzdC5jcHAgYi9mcGRmc2RrL2ZwZGZfZWRpdF9lbWJlZGRlcnRlc3QuY3BwCmluZGV4IGE1NTg3M2IuLmM5MWYwOTIgMTAwNjQ0Ci0tLSBhL2ZwZGZzZGsvZnBkZl9lZGl0X2VtYmVkZGVydGVzdC5jcHAKKysrIGIvZnBkZnNkay9mcGRmX2VkaXRfZW1iZWRkZXJ0ZXN0LmNwcApAQCAtOTg4LDYgKzk4OCw2NiBAQAogICBVbmxvYWRQYWdlKHBhZ2UyKTsKIH0KIAorVEVTVF9GKEZQREZFZGl0RW1iZWRkZXJUZXN0LAorICAgICAgIFJlbW92ZVRleHRPYmplY3RXaXRoVHdvUGFnZXNTaGFyaW5nQ29udGVudEFycmF5QW5kUmVzb3VyY2VzKSB7CisgIC8vIExvYWQgZG9jdW1lbnQgd2l0aCBzb21lIHRleHQuCisgIEFTU0VSVF9UUlVFKE9wZW5Eb2N1bWVudCgiaGVsbG9fd29ybGRfMl9wYWdlc19zcGxpdF9zdHJlYW1zLnBkZiIpKTsKKyAgRlBERl9QQUdFIHBhZ2UxID0gTG9hZFBhZ2UoMCk7CisgIEFTU0VSVF9UUlVFKHBhZ2UxKTsKKyAgRlBERl9QQUdFIHBhZ2UyID0gTG9hZFBhZ2UoMSk7CisgIEFTU0VSVF9UUlVFKHBhZ2UyKTsKKworICAvLyBTaG93IHdoYXQgdGhlIG9yaWdpbmFsIGZpbGUgbG9va3MgbGlrZS4KKyAgeworICAgIFNjb3BlZEZQREZCaXRtYXAgcGFnZTFfYml0bWFwID0gUmVuZGVyUGFnZShwYWdlMSk7CisgICAgQ29tcGFyZUJpdG1hcChwYWdlMV9iaXRtYXAuZ2V0KCksIDIwMCwgMjAwLCBIZWxsb1dvcmxkQ2hlY2tzdW0oKSk7CisgICAgU2NvcGVkRlBERkJpdG1hcCBwYWdlMl9iaXRtYXAgPSBSZW5kZXJQYWdlKHBhZ2UyKTsKKyAgICBDb21wYXJlQml0bWFwKHBhZ2UyX2JpdG1hcC5nZXQoKSwgMjAwLCAyMDAsIEhlbGxvV29ybGRDaGVja3N1bSgpKTsKKyAgfQorCisgIC8vIEdldCB0aGUgIkhlbGxvLCB3b3JsZCEiIHRleHQgb2JqZWN0IGZyb20gcGFnZSAxIGFuZCByZW1vdmUgaXQuCisgIEFTU0VSVF9FUSgyLCBGUERGUGFnZV9Db3VudE9iamVjdHMocGFnZTEpKTsKKyAgeworICAgIFNjb3BlZEZQREZQYWdlT2JqZWN0IHBhZ2Vfb2JqZWN0KEZQREZQYWdlX0dldE9iamVjdChwYWdlMSwgMCkpOworICAgIEFTU0VSVF9UUlVFKHBhZ2Vfb2JqZWN0KTsKKyAgICBBU1NFUlRfRVEoRlBERl9QQUdFT0JKX1RFWFQsIEZQREZQYWdlT2JqX0dldFR5cGUocGFnZV9vYmplY3QuZ2V0KCkpKTsKKyAgICBFWFBFQ1RfVFJVRShGUERGUGFnZV9SZW1vdmVPYmplY3QocGFnZTEsIHBhZ2Vfb2JqZWN0LmdldCgpKSk7CisgIH0KKyAgQVNTRVJUX0VRKDEsIEZQREZQYWdlX0NvdW50T2JqZWN0cyhwYWdlMSkpOworCisgIC8vIFZlcmlmeSB0aGUgIkhlbGxvLCB3b3JsZCEiIHRleHQgaXMgZ29uZSBmcm9tIHBhZ2UgMS4KKyAgeworICAgIFNjb3BlZEZQREZCaXRtYXAgcGFnZTFfYml0bWFwID0gUmVuZGVyUGFnZShwYWdlMSk7CisgICAgQ29tcGFyZUJpdG1hcChwYWdlMV9iaXRtYXAuZ2V0KCksIDIwMCwgMjAwLCBGaXJzdFJlbW92ZWRDaGVja3N1bSgpKTsKKyAgICBTY29wZWRGUERGQml0bWFwIHBhZ2UyX2JpdG1hcCA9IFJlbmRlclBhZ2UocGFnZTIpOworICAgIENvbXBhcmVCaXRtYXAocGFnZTJfYml0bWFwLmdldCgpLCAyMDAsIDIwMCwgSGVsbG9Xb3JsZENoZWNrc3VtKCkpOworICB9CisKKyAgLy8gVmVyaWZ5IHRoZSByZW5kZXJpbmcgYWdhaW4gYWZ0ZXIgY2FsbGluZyBGUERGUGFnZV9HZW5lcmF0ZUNvbnRlbnQoKS4KKyAgQVNTRVJUX1RSVUUoRlBERlBhZ2VfR2VuZXJhdGVDb250ZW50KHBhZ2UxKSk7CisgIHsKKyAgICBTY29wZWRGUERGQml0bWFwIHBhZ2UxX2JpdG1hcCA9IFJlbmRlclBhZ2UocGFnZTEpOworICAgIENvbXBhcmVCaXRtYXAocGFnZTFfYml0bWFwLmdldCgpLCAyMDAsIDIwMCwgRmlyc3RSZW1vdmVkQ2hlY2tzdW0oKSk7CisgICAgU2NvcGVkRlBERkJpdG1hcCBwYWdlMl9iaXRtYXAgPSBSZW5kZXJQYWdlKHBhZ2UyKTsKKyAgICBDb21wYXJlQml0bWFwKHBhZ2UyX2JpdG1hcC5nZXQoKSwgMjAwLCAyMDAsIEhlbGxvV29ybGRDaGVja3N1bSgpKTsKKyAgfQorCisgIC8vIFNhdmUgdGhlIGRvY3VtZW50IGFuZCB2ZXJpZnkgaXQgYWZ0ZXIgcmVsb2FkaW5nLgorICBBU1NFUlRfVFJVRShGUERGX1NhdmVBc0NvcHkoZG9jdW1lbnQoKSwgdGhpcywgMCkpOworICBBU1NFUlRfVFJVRShPcGVuU2F2ZWREb2N1bWVudCgpKTsKKyAgRlBERl9QQUdFIHNhdmVkX3BhZ2UxID0gTG9hZFNhdmVkUGFnZSgwKTsKKyAgVmVyaWZ5U2F2ZWRSZW5kZXJpbmcoc2F2ZWRfcGFnZTEsIDIwMCwgMjAwLCBGaXJzdFJlbW92ZWRDaGVja3N1bSgpKTsKKyAgQ2xvc2VTYXZlZFBhZ2Uoc2F2ZWRfcGFnZTEpOworICBGUERGX1BBR0Ugc2F2ZWRfcGFnZTIgPSBMb2FkU2F2ZWRQYWdlKDEpOworICAvLyBUT0RPKGNyYnVnLmNvbS9wZGZpdW0vMjAxMik6IFNob3VsZCBiZSBgSGVsbG9Xb3JsZENoZWNrc3VtKClgLgorICBWZXJpZnlTYXZlZFJlbmRlcmluZyhzYXZlZF9wYWdlMiwgMjAwLCAyMDAsIEZpcnN0UmVtb3ZlZENoZWNrc3VtKCkpOworICBDbG9zZVNhdmVkUGFnZShzYXZlZF9wYWdlMik7CisgIENsb3NlU2F2ZWREb2N1bWVudCgpOworCisgIFVubG9hZFBhZ2UocGFnZTEpOworICBVbmxvYWRQYWdlKHBhZ2UyKTsKK30KKwogdm9pZCBDaGVja01hcmtDb3VudHMoRlBERl9QQUdFIHBhZ2UsCiAgICAgICAgICAgICAgICAgICAgICBpbnQgc3RhcnRfZnJvbSwKICAgICAgICAgICAgICAgICAgICAgIGludCBleHBlY3RlZF9vYmplY3RfY291bnQsCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9oZWxsb193b3JsZF8yX3BhZ2VzX3NwbGl0X3N0cmVhbXMuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9oZWxsb193b3JsZF8yX3BhZ2VzX3NwbGl0X3N0cmVhbXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWY2OGY1YwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2hlbGxvX3dvcmxkXzJfcGFnZXNfc3BsaXRfc3RyZWFtcy5pbgpAQCAtMCwwICsxLDc1IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMgorICAvS2lkcyBbMyAwIFIgNCAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvRm9udCA8PAorICAgICAgL0YxIDUgMCBSCisgICAgICAvRjIgNiAwIFIKKyAgICA+PgorICA+PgorICAvQ29udGVudHMgNyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL1Jlc291cmNlcyA8PAorICAgIC9Gb250IDw8CisgICAgICAvRjEgNSAwIFIKKyAgICAgIC9GMiA2IDAgUgorICAgID4+CisgID4+CisgIC9Db250ZW50cyA3IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvVGltZXMtUm9tYW4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL0hlbHZldGljYQorPj4KK2VuZG9iagore3tvYmplY3QgNyAwfX0gWzggMCBSIDkgMCBSXQore3tvYmplY3QgOCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorQlQKKzIwIDUwIFRkCisvRjEgMTIgVGYKKyhIZWxsbywgd29ybGQhKSBUagorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDkgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK0JUCisyMCAxMDAgVGQKKy9GMiAxNiBUZgorKEdvb2RieWUsIHdvcmxkISkgVGoKK0VUCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvaGVsbG9fd29ybGRfMl9wYWdlc19zcGxpdF9zdHJlYW1zLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2hlbGxvX3dvcmxkXzJfcGFnZXNfc3BsaXRfc3RyZWFtcy5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FjODI5ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2hlbGxvX3dvcmxkXzJfcGFnZXNfc3BsaXRfc3RyZWFtcy5wZGYKQEAgLTAsMCArMSw5MSBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDIKKyAgL0tpZHMgWzMgMCBSIDQgMCBSXQorICAvTWVkaWFCb3ggWzAgMCAyMDAgMjAwXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvRm9udCA8PAorICAgICAgL0YxIDUgMCBSCisgICAgICAvRjIgNiAwIFIKKyAgICA+PgorICA+PgorICAvQ29udGVudHMgNyAwIFIKKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgICAgL0YyIDYgMCBSCisgICAgPj4KKyAgPj4KKyAgL0NvbnRlbnRzIDcgMCBSCis+PgorZW5kb2JqCis1IDAgb2JqIDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL1RpbWVzLVJvbWFuCis+PgorZW5kb2JqCis2IDAgb2JqIDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL0hlbHZldGljYQorPj4KK2VuZG9iagorNyAwIG9iaiBbOCAwIFIgOSAwIFJdCis4IDAgb2JqIDw8CisgIC9MZW5ndGggNDEKKz4+CitzdHJlYW0KK0JUCisyMCA1MCBUZAorL0YxIDEyIFRmCisoSGVsbG8sIHdvcmxkISkgVGoKK2VuZHN0cmVhbQorZW5kb2JqCis5IDAgb2JqIDw8CisgIC9MZW5ndGggNDcKKz4+CitzdHJlYW0KK0JUCisyMCAxMDAgVGQKKy9GMiAxNiBUZgorKEdvb2RieWUsIHdvcmxkISkgVGoKK0VUCitlbmRzdHJlYW0KK2VuZG9iagoreHJlZgorMCAxMAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDA2OCAwMDAwMCBuIAorMDAwMDAwMDE2MyAwMDAwMCBuIAorMDAwMDAwMDMwNSAwMDAwMCBuIAorMDAwMDAwMDQ0NyAwMDAwMCBuIAorMDAwMDAwMDUyNSAwMDAwMCBuIAorMDAwMDAwMDYwMSAwMDAwMCBuIAorMDAwMDAwMDYyMyAwMDAwMCBuIAorMDAwMDAwMDcxNSAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSAxMAorPj4KK3N0YXJ0eHJlZgorODEzCislJUVPRgo=