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 1475 invoked from network); 21 Feb 2023 01:23:06 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 21 Feb 2023 01:23:06 -0000 Content-Type: multipart/mixed; boundary="===============7849017472181119255==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BREDO=5D_New_package=3A_qt6-webengine-6=2E4=2E2=2E?= To: ml@inbox.vuxu.org From: sgn Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Tue, 21 Feb 2023 02:23:06 +0100 List-Id: Message-ID: <20230221012306.SseEBk_uwL8aXwoOG4pzNdzoanfbgQq39DrKk0WDeLE@z> GitHub notification mails are now in MIME to allow UTF8. --===============7849017472181119255== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgc2duIGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9zZ24vdm9p ZC1wYWNrYWdlcyBxdDYtd2ViZW5naW5lCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvcHVsbC80MjIyNAoKW1JFRE9dIE5ldyBwYWNrYWdlOiBxdDYtd2ViZW5naW5l LTYuNC4yLgo8IS0tIFVuY29tbWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQgZGVsZXRlIG9wdGlv bnMgd2hpY2ggYXJlIG5vdCBhcHBsaWNhYmxlIC0tPg0KDQojIyMjIFRlc3RpbmcgdGhlIGNoYW5n ZXMNCi0gSSB0ZXN0ZWQgdGhlIGNoYW5nZXMgaW4gdGhpcyBQUjogKipicmllZmx5KioNCg0KPCEt LQ0KIyMjIyBOZXcgcGFja2FnZQ0KLSBUaGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBb cGFja2FnZSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI3BhY2thZ2UtcmVxdWlyZW1lbnRz KTogKipZRVMqKnwqKk5PKioNCi0tPg0KDQo8IS0tIE5vdGU6IElmIHRoZSBidWlsZCBpcyBsaWtl bHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBob3VycywgcGxlYXNlIGFkZCBjaSBza2lwIHRhZyBhcyBk ZXNjcmliZWQgaW4NCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMv YmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24NCmFuZCB0 ZXN0IGF0IGxlYXN0IG9uZSBuYXRpdmUgYnVpbGQgYW5kLCBpZiBzdXBwb3J0ZWQsIGF0IGxlYXN0 IG9uZSBjcm9zcyBidWlsZC4NCklnbm9yZSB0aGlzIHNlY3Rpb24gaWYgdGhpcyBQUiBpcyBub3Qg c2tpcHBpbmcgQ0kuDQotLT4NCg0KIyMjIyBMb2NhbCBidWlsZCB0ZXN0aW5nDQotIEkgYnVpbHQg dGhpcyBQUiBsb2NhbGx5IGZvciBteSBuYXRpdmUgYXJjaGl0ZWN0dXJlOg0KICAgIC0gW3hdIGB4 ODZfNjRgDQogICAgLSBbeF0gYHg4Nl82NC1tdXNsYA0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxs eSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlcyAoaWYgc3VwcG9ydGVkLiBtYXJrIGNyb3NzYnVpbGRz KToNCiAgICAtIFsgXSBhYXJjaDY0DQogICAgLSBbIF0gYWFyY2g2NC1tdXNsDQogICAgLSBbIF0g aTY4Ng0KICAgIC0gWyBdIGFybXY3LW11c2wNCiAgICAtIFsgXSBhcm12Nw0KDQoNCgoKQSBwYXRj aCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9w dWxsLzQyMjI0LnBhdGNoIGlzIGF0dGFjaGVk --===============7849017472181119255== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-qt6-webengine-42224.patch" RnJvbSBjOWUyMTE2NjA5NWU5YjdkMTdjNjhhZWIzMGI2MDc3ZjQ3OTQ1ZTIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogRnJp LCAxNyBGZWIgMjAyMyAxMTo0MzowOSArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMjddIHF0Ni1i YXNlOiB1cGRhdGUgdG8gNi40LjIuCgotLS0KIHNyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9jb21w bGV4LXRleHQucGF0Y2ggICB8ICAwCiBzcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvZmVlbmFibGVl eGNlcHQucGF0Y2ggfCAgNiArLS0KIHNyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9tYXJrZG93bi1t dXNsLnBhdGNoICB8IDI1ICsrLS0tLS0tLS0KIHNyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9tdXNs LWxpbWl0cy5wYXRjaCAgICB8IDEyICsrLS0tCiAuLi4vcXQ2LWJhc2UvcGF0Y2hlcy9tdXNsLXRl c3QtaW1hZ2UucGF0Y2ggICAgfCAxOSArKysrKysrKwogLi4uL3F0Ni1iYXNlL3BhdGNoZXMvbXVz bC11c3ItcGF0aC1oYWNrLnBhdGNoIHwgMTAgKystLQogLi4udXJjZS1yb290LWRpci1sYXN0LW1v ZGlmaWVkLWlzLXZhbGlkLnBhdGNoIHwgIDYgKy0tCiAuLi4vcXQ2LWJhc2UvcGF0Y2hlcy94ODYt cXJvdW5kLXBhc3NlZC5wYXRjaCAgfCAgOCArKy0tCiBzcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMv emZzLXN0b3JhZ2UucGF0Y2ggICAgfCAgNiArLS0KIHNyY3BrZ3MvcXQ2LWJhc2UvdGVtcGxhdGUg ICAgICAgICAgICAgICAgICAgICB8IDQ4ICsrKysrKysrKy0tLS0tLS0tLS0KIDEwIGZpbGVzIGNo YW5nZWQsIDcwIGluc2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9jb21wbGV4LXRleHQucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvbXVzbC10ZXN0LWltYWdlLnBhdGNo CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL2NvbXBsZXgtdGV4dC5wYXRj aCBiL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9jb21wbGV4LXRleHQucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2OWRlMjliYjJkMS4uMDAwMDAwMDAwMDAwCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvZmVlbmFibGVleGNlcHQucGF0Y2ggYi9zcmNw a2dzL3F0Ni1iYXNlL3BhdGNoZXMvZmVlbmFibGVleGNlcHQucGF0Y2gKaW5kZXggMWI1NjE3MzFi NjM0Li45YjI2OGJjOTVkM2UgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9m ZWVuYWJsZWV4Y2VwdC5wYXRjaAorKysgYi9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvZmVlbmFi bGVleGNlcHQucGF0Y2gKQEAgLTEsNiArMSw2IEBACi0tLS0gYS90ZXN0cy9hdXRvL2NvcmVsaWIv dGV4dC9xbG9jYWxlL3RzdF9xbG9jYWxlLmNwcAotKysrIGIvdGVzdHMvYXV0by9jb3JlbGliL3Rl eHQvcWxvY2FsZS90c3RfcWxvY2FsZS5jcHAKLUBAIC0xNDUzLDggKzE0NTMsMTAgQEAgdm9pZCB0 c3RfUUxvY2FsZTo6ZnBFeGNlcHRpb25zKCkKKy0tLSBxdDYtYmFzZS02LjQuMi5vcmlnL3Rlc3Rz L2F1dG8vY29yZWxpYi90ZXh0L3Fsb2NhbGUvdHN0X3Fsb2NhbGUuY3BwCisrKysgcXQ2LWJhc2Ut Ni40LjIvdGVzdHMvYXV0by9jb3JlbGliL3RleHQvcWxvY2FsZS90c3RfcWxvY2FsZS5jcHAKK0BA IC0xNTAyLDggKzE1MDIsMTAgQEAgdm9pZCB0c3RfUUxvY2FsZTo6ZnBFeGNlcHRpb25zKCkKICAg ICAgZmVudl90IGVudnA7CiAgICAgIGZlZ2V0ZW52KCZlbnZwKTsKICAgICAgZmVjbGVhcmV4Y2Vw dChGRV9BTExfRVhDRVBUKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9t YXJrZG93bi1tdXNsLnBhdGNoIGIvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL21hcmtkb3duLW11 c2wucGF0Y2gKaW5kZXggZDI5OTc3YjdkMzNhLi41YzE2YjNmYmIzZWEgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9tYXJrZG93bi1tdXNsLnBhdGNoCisrKyBiL3NyY3BrZ3Mv cXQ2LWJhc2UvcGF0Y2hlcy9tYXJrZG93bi1tdXNsLnBhdGNoCkBAIC0xLDEwICsxLDEwIEBACi0t LS0gYS90ZXN0cy9hdXRvL2d1aS90ZXh0L3F0ZXh0bWFya2Rvd25pbXBvcnRlci90c3RfcXRleHRt YXJrZG93bmltcG9ydGVyLmNwcAotKysrIGIvdGVzdHMvYXV0by9ndWkvdGV4dC9xdGV4dG1hcmtk b3duaW1wb3J0ZXIvdHN0X3F0ZXh0bWFya2Rvd25pbXBvcnRlci5jcHAKLUBAIC0yMjksOSArMjI5 LDExIEBAIHZvaWQgdHN0X1FUZXh0TWFya2Rvd25JbXBvcnRlcjo6bGlzdHNfZGEKKy0tLSBxdDYt YmFzZS02LjQuMi5vcmlnL3Rlc3RzL2F1dG8vZ3VpL3RleHQvcXRleHRtYXJrZG93bmltcG9ydGVy L3RzdF9xdGV4dG1hcmtkb3duaW1wb3J0ZXIuY3BwCisrKysgcXQ2LWJhc2UtNi40LjIvdGVzdHMv YXV0by9ndWkvdGV4dC9xdGV4dG1hcmtkb3duaW1wb3J0ZXIvdHN0X3F0ZXh0bWFya2Rvd25pbXBv cnRlci5jcHAKK0BAIC0yMDQsOSArMjA0LDExIEBAIHZvaWQgdHN0X1FUZXh0TWFya2Rvd25JbXBv cnRlcjo6bGlzdHNfZGEKICAgICAgUVRlc3Q6Om5ld1JvdygibnVtZXJpYyBsaXN0cyBuZXN0ZWQg aW4gZW1wdHkgbGlzdHMiKQogICAgICAgICAgICAgIDw8ICItIFxuICAgIDEuICBhXG4gICAgMi4g IGJcbi0gY1xuICAxLlxuICAgICAgICsgZFxuIiA8PCA0IDw8IGZhbHNlCiAgICAgICAgICAgICAg PDwgIi0gXG4gICAgMS4gIGFcbiAgICAyLiAgYlxuLSBjIDEuICsgZFxuIjsKLSsjaWYgMAorKyNp ZmRlZiBfX0dMSUNfXwogICAgICBRVGVzdDo6bmV3Um93KCJzdHlsZWQgc3BhbnMgaW4gbGlzdCBp dGVtcyIpCiAgICAgICAgICAgICAgPDwgIjEuICBub3JtYWwgdGV4dFxuMi4gICoqYm9sZCoqIHRl eHRcbjMuICBgY29kZWAgaW4gdGhlIGl0ZW1cbjQuICAqaXRhbGljKiB0ZXh0XG41LiAgX3VuZGVy bGluZWRfIHRleHRcbiIgPDwgNSA8PCBmYWxzZQogICAgICAgICAgICAgIDw8ICIxLiAgbm9ybWFs IHRleHRcbjIuICAqKmJvbGQqKiB0ZXh0XG4zLiAgYGNvZGVgIGluIHRoZSBpdGVtXG40LiAgKml0 YWxpYyogdGV4dFxuNS4gIF91bmRlcmxpbmVkXyB0ZXh0XG4iOwpAQCAtMTIsMjAgKzEyLDMgQEAK ICB9CiAgCiAgdm9pZCB0c3RfUVRleHRNYXJrZG93bkltcG9ydGVyOjpsaXN0cygpCi0tLS0gYS90 ZXN0cy9hdXRvL3dpZGdldHMvZ3JhcGhpY3N2aWV3L3FncmFwaGljc3dpZGdldC90c3RfcWdyYXBo aWNzd2lkZ2V0LmNwcAotKysrIGIvdGVzdHMvYXV0by93aWRnZXRzL2dyYXBoaWNzdmlldy9xZ3Jh cGhpY3N3aWRnZXQvdHN0X3FncmFwaGljc3dpZGdldC5jcHAKLUBAIC0xNzc2LDExICsxNzc2LDE0 IEBAIHZvaWQgdHN0X1FHcmFwaGljc1dpZGdldDo6dXBkYXRlRm9jdXNDaGEKLSAgICAgY29uc3Qg UVBvaW50IGNlbnRlcih2aWV3LnZpZXdwb3J0KCktPndpZHRoKCkgLyAyLCB2aWV3LnZpZXdwb3J0 KCktPmhlaWdodCgpIC8gMik7Ci0gICAgIFFUZXN0Ojptb3VzZU1vdmUodmlldy52aWV3cG9ydCgp LCBjZW50ZXIpOwotICAgICBRVGVzdDo6bW91c2VDbGljayh2aWV3LnZpZXdwb3J0KCksIFF0OjpM ZWZ0QnV0dG9uLCB7fSwgY2VudGVyKTsKLSsjaWYgMAotKyAgICAvLyBTYW1lIHN5bXB0b24gd2l0 aCBRVEJVRy0yMzY5OQotICNpZmRlZiBRX09TX01BQwotICAgICBRRVhQRUNUX0ZBSUwoIiIsICJR VEJVRy0yMzY5OSIsIENvbnRpbnVlKTsKLSAjZW5kaWYKLSAgICAgUVRSWV9DT01QQVJFKHFBcHAt PmFjdGl2ZVdpbmRvdygpLCBzdGF0aWNfY2FzdDxRV2lkZ2V0ICo+KCZ2aWV3KSk7Ci0gICAgIFFU UllfQ09NUEFSRShzY2VuZS5mb2N1c0l0ZW0oKSwgc3RhdGljX2Nhc3Q8UUdyYXBoaWNzSXRlbSAq Pih3KSk7Ci0rI2VuZGlmCi0gfQotIAotIHZvaWQgdHN0X1FHcmFwaGljc1dpZGdldDo6c2l6ZUhp bnRfZGF0YSgpCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvbXVzbC1saW1p dHMucGF0Y2ggYi9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvbXVzbC1saW1pdHMucGF0Y2gKaW5k ZXggNWE3NWY0ZmUzOGE1Li5kYTZkMjcyZDk5ZGUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LWJh c2UvcGF0Y2hlcy9tdXNsLWxpbWl0cy5wYXRjaAorKysgYi9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNo ZXMvbXVzbC1saW1pdHMucGF0Y2gKQEAgLTEsNiArMSw2IEBACi0tLS0gYS9xbWFrZS9saWJyYXJ5 L2lvdXRpbHMuY3BwCTIwMjAtMDktMjQgMTc6NTU6NTMuMDAwMDAwMDAwICswMjAwCi0rKysgYi9x bWFrZS9saWJyYXJ5L2lvdXRpbHMuY3BwCTIwMjAtMDktMjQgMTc6NTU6NTMuMDAwMDAwMDAwICsw MjAwCi1AQCAtNDAsNiArNDAsNyBAQAorLS0tIHF0Ni1iYXNlLTYuNC4yLm9yaWcvcW1ha2UvbGli cmFyeS9pb3V0aWxzLmNwcAorKysrIHF0Ni1iYXNlLTYuNC4yL3FtYWtlL2xpYnJhcnkvaW91dGls cy5jcHAKK0BAIC0xNSw2ICsxNSw3IEBACiAgIyAgaW5jbHVkZSA8dW5pc3RkLmg+CiAgIyAgaW5j bHVkZSA8dXRpbWUuaD4KICAjICBpbmNsdWRlIDxmY250bC5oPgpAQCAtOCw5ICs4LDkgQEAKICAj ICBpbmNsdWRlIDxlcnJuby5oPgogICNlbmRpZgogIAotLS0tIGEvc3JjL2NvcmVsaWIvaW8vcXN0 b3JhZ2VpbmZvX3VuaXguY3BwCTIwMjAtMDktMjQgMTc6NTU6NTMuMDAwMDAwMDAwICswMjAwCi0r KysgYi9zcmMvY29yZWxpYi9pby9xc3RvcmFnZWluZm9fdW5peC5jcHAJMjAyMC0wOS0yNCAxNzo1 NTo1My4wMDAwMDAwMDAgKzAyMDAKLUBAIC01OCw2ICs1OCw3IEBACistLS0gcXQ2LWJhc2UtNi40 LjIub3JpZy9zcmMvY29yZWxpYi9pby9xc3RvcmFnZWluZm9fdW5peC5jcHAKKysrKyBxdDYtYmFz ZS02LjQuMi9zcmMvY29yZWxpYi9pby9xc3RvcmFnZWluZm9fdW5peC5jcHAKK0BAIC0yMyw2ICsy Myw3IEBACiAgIyAgaW5jbHVkZSA8c3lzL3Zmcy5oPgogICMgIGluY2x1ZGUgPG1udGVudC5oPgog ICNlbGlmIGRlZmluZWQoUV9PU19MSU5VWCkgfHwgZGVmaW5lZChRX09TX0hVUkQpCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvbXVzbC10ZXN0LWltYWdlLnBhdGNoIGIvc3Jj cGtncy9xdDYtYmFzZS9wYXRjaGVzL211c2wtdGVzdC1pbWFnZS5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmI5NjZhMjJjMTJhNwotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9tdXNsLXRlc3QtaW1hZ2UucGF0Y2gKQEAgLTAs MCArMSwxOSBAQAorLS0tIHF0Ni1iYXNlLTYuNC4yLm9yaWcvdGVzdHMvYXV0by9ndWkvaW1hZ2Uv cWltYWdlL3RzdF9xaW1hZ2UuY3BwCisrKysgcXQ2LWJhc2UtNi40LjIvdGVzdHMvYXV0by9ndWkv aW1hZ2UvcWltYWdlL3RzdF9xaW1hZ2UuY3BwCitAQCAtMTgwNiw2ICsxODA2LDggQEAgdm9pZCB0 c3RfUUltYWdlOjpzbW9vdGhTY2FsZTIoKQorICAgICBRUmdiIGV4cGVjdGVkID0gb3BhcXVlID8g cVJnYig2MywgMTI3LCAyNTUpIDogcVJnYmEoMzEsIDYzLCAxMjcsIDEyNyk7CisgICAgIGltZy5m aWxsKGV4cGVjdGVkKTsKKyAKKysjaWZkZWYgX19HTElCQ19fCisrICAgIC8vIGJyb2tlbiBvbiBt dXNsLCB1bmtub3duIHJlYXNvbgorICAgICAvLyBzY2FsZSB4IGRvd24sIHkgZG93bgorICAgICBR SW1hZ2Ugc2NhbGVkID0gaW1nLnNjYWxlZChRU2l6ZSgxLCAxKSwgUXQ6Oklnbm9yZUFzcGVjdFJh dGlvLCBRdDo6U21vb3RoVHJhbnNmb3JtYXRpb24pOworICAgICBRUmdiIHBpeGVsID0gc2NhbGVk LnBpeGVsKDAsIDApOworQEAgLTE4NjksNiArMTg3MSw3IEBAIHZvaWQgdHN0X1FJbWFnZTo6c21v b3RoU2NhbGUyKCkKKyAgICAgICAgICAgICBRQ09NUEFSRShxQmx1ZShwaXhlbCksIHFCbHVlKGV4 cGVjdGVkKSk7CisgICAgICAgICB9CisgICAgIH0KKysjZW5kaWYKKyB9CisgCisgc3RhdGljIGlu bGluZSBpbnQgcmFuZDgoKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL211 c2wtdXNyLXBhdGgtaGFjay5wYXRjaCBiL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9tdXNsLXVz ci1wYXRoLWhhY2sucGF0Y2gKaW5kZXggYTJlYzc1NTBlN2JiLi45MmVhZTg0MzFhZWEgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9tdXNsLXVzci1wYXRoLWhhY2sucGF0Y2gK KysrIGIvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL211c2wtdXNyLXBhdGgtaGFjay5wYXRjaApA QCAtNiwxMSArNiw5IEBAIFRoaXMgYnJlYWtzIHF0Ni13ZWJlbmdpbmUncyBzZWFyY2ggcGF0aCBm b3IgdHJhbnNsYXRpb25zLgogVXNpbmcgcmVhbHBhdGggaW5zdGVhZCB3b3VsZCBwcm9iYWJseSBi ZSBhIG1vcmUgY29ycmVjdCBzb2x1dGlvbi4KIAogLS0tCi1kaWZmIC0tZ2l0IHF0YmFzZXNyYy9j b3JlbGliL2dsb2JhbC9xbGlicmFyeWluZm8uY3BwIHF0YmFzZXNyYy9jb3JlbGliL2dsb2JhbC9x bGlicmFyeWluZm8uY3BwCi1pbmRleCA4YmNmNjdlNzNkLi4yOGQ3MzU1MzEwIDEwMDY0NAotLS0t IGEvc3JjL2NvcmVsaWIvZ2xvYmFsL3FsaWJyYXJ5aW5mby5jcHAKLSsrKyBiL3NyYy9jb3JlbGli L2dsb2JhbC9xbGlicmFyeWluZm8uY3BwCi1AQCAtNTU4LDYgKzU1OCwxMiBAQCBzdGF0aWMgUVN0 cmluZyBnZXRSZWxvY2F0YWJsZVByZWZpeCgpCistLS0gcXQ2LWJhc2UtNi40LjIub3JpZy9zcmMv Y29yZWxpYi9nbG9iYWwvcWxpYnJhcnlpbmZvLmNwcAorKysrIHF0Ni1iYXNlLTYuNC4yL3NyYy9j b3JlbGliL2dsb2JhbC9xbGlicmFyeWluZm8uY3BwCitAQCAtMzU4LDYgKzM1OCwxMiBAQCBzdGF0 aWMgUVN0cmluZyBnZXRSZWxvY2F0YWJsZVByZWZpeChRTGliCiAgICAgIGludCByZXN1bHQgPSBk bGFkZHIocmVpbnRlcnByZXRfY2FzdDx2b2lkICo+KCZRTGlicmFyeUluZm86OmlzRGVidWdCdWls ZCksICZpbmZvKTsKICAgICAgaWYgKHJlc3VsdCA+IDAgJiYgaW5mby5kbGlfZm5hbWUpCiAgICAg ICAgICBwcmVmaXhQYXRoID0gcHJlZml4RnJvbVF0Q29yZUxpYnJhcnlIZWxwZXIoUVN0cmluZzo6 ZnJvbUxvY2FsOEJpdChpbmZvLmRsaV9mbmFtZSkpOwpAQCAtMjEsNSArMTksNSBAQCBpbmRleCA4 YmNmNjdlNzNkLi4yOGQ3MzU1MzEwIDEwMDY0NAogKyAgICB9CiArI2VuZGlmCiAgI2VsaWYgZGVm aW5lZChRX09TX1dJTikKKyAgICAgUV9VTlVTRUQodXNhZ2VNb2RlKTsKICAgICAgSE1PRFVMRSBo TW9kdWxlID0gZ2V0V2luZG93c01vZHVsZUhhbmRsZSgpOwotICAgICBjb25zdCBpbnQga0J1ZmZl clNpemUgPSA0MDk2OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL3Jlc291 cmNlLXJvb3QtZGlyLWxhc3QtbW9kaWZpZWQtaXMtdmFsaWQucGF0Y2ggYi9zcmNwa2dzL3F0Ni1i YXNlL3BhdGNoZXMvcmVzb3VyY2Utcm9vdC1kaXItbGFzdC1tb2RpZmllZC1pcy12YWxpZC5wYXRj aAppbmRleCBmMTQzNmRmNDJkOGUuLjI4MmI1ODMzMzBjZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9x dDYtYmFzZS9wYXRjaGVzL3Jlc291cmNlLXJvb3QtZGlyLWxhc3QtbW9kaWZpZWQtaXMtdmFsaWQu cGF0Y2gKKysrIGIvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL3Jlc291cmNlLXJvb3QtZGlyLWxh c3QtbW9kaWZpZWQtaXMtdmFsaWQucGF0Y2gKQEAgLTEsNiArMSw2IEBACi0tLS0gYS90ZXN0cy9h dXRvL2NvcmVsaWIvaW8vcXJlc291cmNlZW5naW5lL3RzdF9xcmVzb3VyY2VlbmdpbmUuY3BwCi0r KysgYi90ZXN0cy9hdXRvL2NvcmVsaWIvaW8vcXJlc291cmNlZW5naW5lL3RzdF9xcmVzb3VyY2Vl bmdpbmUuY3BwCi1AQCAtNjA3LDcgKzYwNywxMCBAQCB2b2lkIHRzdF9RUmVzb3VyY2VFbmdpbmU6 Omxhc3RNb2RpZmllZCgpCistLS0gcXQ2LWJhc2UtNi40LjIub3JpZy90ZXN0cy9hdXRvL2NvcmVs aWIvaW8vcXJlc291cmNlZW5naW5lL3RzdF9xcmVzb3VyY2VlbmdpbmUuY3BwCisrKysgcXQ2LWJh c2UtNi40LjIvdGVzdHMvYXV0by9jb3JlbGliL2lvL3FyZXNvdXJjZWVuZ2luZS90c3RfcXJlc291 cmNlZW5naW5lLmNwcAorQEAgLTU5Miw3ICs1OTIsMTAgQEAgdm9pZCB0c3RfUVJlc291cmNlRW5n aW5lOjpsYXN0TW9kaWZpZWQoKQogICAgICB7CiAgICAgICAgICBRRmlsZUluZm8gZmkoIjovIik7 CiAgICAgICAgICBRVkVSSUZZKGZpLmV4aXN0cygpKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2 LWJhc2UvcGF0Y2hlcy94ODYtcXJvdW5kLXBhc3NlZC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LWJhc2Uv cGF0Y2hlcy94ODYtcXJvdW5kLXBhc3NlZC5wYXRjaAppbmRleCA5ZmY5MGQxMDNlYjMuLmY2NThl ZDgzM2U0ZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL3g4Ni1xcm91bmQt cGFzc2VkLnBhdGNoCisrKyBiL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy94ODYtcXJvdW5kLXBh c3NlZC5wYXRjaApAQCAtMSw2ICsxLDYgQEAKLS0tLSBhL3Rlc3RzL2F1dG8vY29yZWxpYi9nbG9i YWwvcWdsb2JhbC90c3RfcWdsb2JhbC5jcHAKLSsrKyBiL3Rlc3RzL2F1dG8vY29yZWxpYi9nbG9i YWwvcWdsb2JhbC90c3RfcWdsb2JhbC5jcHAKLUBAIC02MjQsMTggKzYyNCwxNCBAQCB2b2lkIHRz dF9RR2xvYmFsOjpxUm91bmRGbG9hdHMoKSB7CistLS0gcXQ2LWJhc2UtNi40LjIub3JpZy90ZXN0 cy9hdXRvL2NvcmVsaWIvZ2xvYmFsL3FnbG9iYWwvdHN0X3FnbG9iYWwuY3BwCisrKysgcXQ2LWJh c2UtNi40LjIvdGVzdHMvYXV0by9jb3JlbGliL2dsb2JhbC9xZ2xvYmFsL3RzdF9xZ2xvYmFsLmNw cAorQEAgLTU5OSwxOCArNTk5LDE0IEBAIHZvaWQgdHN0X1FHbG9iYWw6OnFSb3VuZEZsb2F0cygp IHsKICAgICAgUUZFVENIKGZsb2F0LCBleHBlY3RlZCk7CiAgCiAgI2lmICEoZGVmaW5lZChRX1BS T0NFU1NPUl9BUk1fNjQpICYmIChfX2hhc19idWlsdGluKF9fYnVpbHRpbl9yb3VuZCkgfHwgZGVm aW5lZChRX0NDX0dOVSkpICYmICFkZWZpbmVkKFFfQ0NfQ0xBTkcpKQpAQCAtMjMsNyArMjMsNyBA QAogIH0KICAKICB2b2lkIHRzdF9RR2xvYmFsOjpxUm91bmREb3VibGVzX2RhdGEoKSB7Ci1AQCAt NjUzLDE4ICs2NDksMTQgQEAgdm9pZCB0c3RfUUdsb2JhbDo6cVJvdW5kRG91YmxlcygpIHsKK0BA IC02MjgsMTggKzYyNCwxNCBAQCB2b2lkIHRzdF9RR2xvYmFsOjpxUm91bmREb3VibGVzKCkgewog ICAgICBRRkVUQ0goZG91YmxlLCBleHBlY3RlZCk7CiAgCiAgI2lmICEoZGVmaW5lZChRX1BST0NF U1NPUl9BUk1fNjQpICYmIChfX2hhc19idWlsdGluKF9fYnVpbHRpbl9yb3VuZCkgfHwgZGVmaW5l ZChRX0NDX0dOVSkpICYmICFkZWZpbmVkKFFfQ0NfQ0xBTkcpKQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9xdDYtYmFzZS9wYXRjaGVzL3pmcy1zdG9yYWdlLnBhdGNoIGIvc3JjcGtncy9xdDYtYmFzZS9w YXRjaGVzL3pmcy1zdG9yYWdlLnBhdGNoCmluZGV4IDNlNzcyNTQ5NDUxYi4uMDQ3MzgzNmJhN2Q2 IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvemZzLXN0b3JhZ2UucGF0Y2gK KysrIGIvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL3pmcy1zdG9yYWdlLnBhdGNoCkBAIC0xLDYg KzEsNiBAQAotLS0tIGEvdGVzdHMvYXV0by9jb3JlbGliL2lvL3FzdG9yYWdlaW5mby90c3RfcXN0 b3JhZ2VpbmZvLmNwcAkyMDIyLTExLTAzIDAwOjA1OjQ5LjI4MTczNzc3NSArMDEwMAotKysrIC0J MjAyMi0xMS0wMyAwMDowNzo1Mi41MzgxNDUzNjkgKzAxMDAKLUBAIC0xNjUsNiArMTY1LDggQEAK Ky0tLSBxdDYtYmFzZS02LjQuMi5vcmlnL3Rlc3RzL2F1dG8vY29yZWxpYi9pby9xc3RvcmFnZWlu Zm8vdHN0X3FzdG9yYWdlaW5mby5jcHAKKysrKyBxdDYtYmFzZS02LjQuMi90ZXN0cy9hdXRvL2Nv cmVsaWIvaW8vcXN0b3JhZ2VpbmZvL3RzdF9xc3RvcmFnZWluZm8uY3BwCitAQCAtMTY1LDYgKzE2 NSw4IEBAIHZvaWQgdHN0X1FTdG9yYWdlSW5mbzo6dGVtcEZpbGUoKQogICNpZmRlZiBRX09TX0xJ TlVYCiAgICAgIGlmIChzdG9yYWdlMS5maWxlU3lzdGVtVHlwZSgpID09ICJidHJmcyIpCiAgICAg ICAgICBRU0tJUCgiVGhpcyB0ZXN0IGRvZXNuJ3Qgd29yayBvbiBidHJmcywgcHJvYmFibHkgZHVl IHRvIGEgYnRyZnMgYnVnIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1iYXNlL3RlbXBsYXRl IGIvc3JjcGtncy9xdDYtYmFzZS90ZW1wbGF0ZQppbmRleCBjMmQ2NDQzZGRkYWQuLjA5ZTg0NGFj ZGMyYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtYmFzZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L3F0Ni1iYXNlL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn cXQ2LWJhc2UnCiBwa2duYW1lPXF0Ni1iYXNlCi12ZXJzaW9uPTYuNC4wCit2ZXJzaW9uPTYuNC4y CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1ESU5TVEFM TF9EQVRBRElSPXNoYXJlL3F0NgpAQCAtMzAsNyArMzAsNyBAQCBtYWludGFpbmVyPSJKb2huIDxt ZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMuMC1vbmx5IFdJVEggUXQtR1BMLWV4 Y2VwdGlvbi0xLjAsIExHUEwtMy4wLW9ubHksIEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0i aHR0cHM6Ly93d3cucXQuaW8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZG93bmxvYWQucXQuaW8vb2Zm aWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRi YXNlLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Y2I2NDc1YTBi ZDg1NjdjNDlmN2ZmYmIwNzJhMDU1MTZlZTY2NzExNzFiZWQ1NWRiNzViMjJiOTRlYWQ5YjM3ZAor Y2hlY2tzdW09YTg4YmM2Y2VkYmIzNDg3OGE0OWE2MjJiYWE3OWNhY2U3OGNmYmFkNGY5NWZkYmQz NjU2ZGRiMjFjNzA1NTI1ZAogcHl0aG9uX3ZlcnNpb249MwogCiBpZiBbICIkQ1JPU1NfQlVJTEQi IF07IHRoZW4KQEAgLTQ3LDQ3ICs0Nyw0NyBAQCBmaQogZG9fY2hlY2soKSB7CiAJY2QgYnVpbGQK IAlleHBvcnQgUVRfUVBBX1BMQVRGT1JNPW9mZnNjcmVlbgorCWV4cG9ydCBRTUFLRVNQRUM9JHdy a3NyYy9ta3NwZWNzL2xpbnV4LWcrKwogCWxvY2FsIGZhaWxpbmdfdGVzdHM9InRzdF9zZWxmdGVz dHMgdHN0X3FtYWtlIHRzdF9tb2MKIAkJdHN0X3JjYyB0c3RfcWZpbGUgdHN0X3FzdGFuZGFyZHBh dGhzCiAJCXRzdF9xdGVtcG9yYXJ5ZGlyIHRzdF9xdGVtcG9yYXJ5ZmlsZSB0c3RfcWRpcgogCQl0 c3RfcXBsdWdpbmxvYWRlciB0c3RfcWxpYnJhcnkgdHN0X3F0ZXh0c3RyZWFtCi0JCXRzdF9xZGF0 ZSB0c3RfcWRhdGV0aW1lIHRzdF9xdGltZXpvbmUKLQkJdGVzdF91bWJyZWxsYV9jb25maWcgdGVz dF93cmFwX2NwcF9hbmRfcmVzb3VyY2VzCi0JCXRlc3RfZGVwZW5kZW50X21vZHVsZXMgdGVzdF9u ZWVkc3F1b3RpbmdfZGlybmFtZQotCQl0ZXN0X2FkZF9yZXNvdXJjZV9vcHRpb25zIHRlc3Rfd3Jh cF9jcHBfb3B0aW9ucwotCQl0ZXN0X3BsYXRmb3JtX2RlZnNfaW5jbHVkZSB0ZXN0X3F0bWFpbndp bl9saWJyYXJ5Ci0JCXRlc3RfZGJ1c19tb2R1bGUgdGVzdF9tdWx0aXBsZV9maW5kX3BhY2thZ2UK LQkJdGVzdF9hZGRfcmVzb3VyY2VzX2RlbGF5ZWRfZmlsZSB0ZXN0X1FUQlVHLTYzNDIyCi0JCXRl c3RfYWRkX2JpbmFyeV9yZXNvdXJjZXNfZGVsYXllZF9maWxlCi0JCXRlc3RfcHJpdmF0ZV9pbmNs dWRlcyB0ZXN0X3ByaXZhdGVfdGFyZ2V0cwotCQl0ZXN0X3Rlc3RsaWJfZGVmaW5pdGlvbnMgdGVz dF9qc29uX3BsdWdpbl9pbmNsdWRlcwotCQl0ZXN0X3Rlc3RsaWJfbm9fbGlua19ndWkgdGVzdF90 ZXN0bGliX25vX2xpbmtfd2lkZ2V0cwotCQltb2R1bGVfaW5jbHVkZXMgdGVzdF9jb25jdXJyZW50 X21vZHVsZSB0ZXN0X29wZW5nbF9saWIKKwkJdGVzdF9idWlsZF9zaW1wbGVfd2lkZ2V0X2FwcF9x bWFrZQogCQl0ZXN0X2ludGVyZmFjZSB0ZXN0X2ludGVyZmFjZV9saW5rX2xpYnJhcmllcwotCQl0 ZXN0X21vY19tYWNyb190YXJnZXQgdGVzdF9hZGRfYmlnX3Jlc291cmNlCi0JCXRlc3RfdmVyc2lv bmxlc3NfdGFyZ2V0cyB0ZXN0X2FkZF9yZXNvdXJjZXNfYmluYXJ5X2dlbmVyYXRlZAotCQl0ZXN0 X3BsdWdpbl9mbGF2b3Jfc3RhdGljIHRlc3RfcGx1Z2luX2ZsYXZvcl9zaGFyZWQKLQkJdGVzdF9w bHVnaW5fZmxhdm9yX2Rlcml2ZWRfZnJvbV9xdF90eXBlCi0JCXRzdF9xYWRkcHJlcm91dGluZSB0 c3RfcWZvbnQgdHN0X3Fmb250ZGF0YWJhc2UKKwkJdHN0X3Fmb250IHRzdF9xZm9udGRhdGFiYXNl CiAJCXRzdF9xZm9udG1ldHJpY3MgdHN0X3FnbHlwaHJ1biB0c3RfcXJhd2ZvbnQKIAkJdHN0X3F0 ZXh0ZG9jdW1lbnRsYXlvdXQJdHN0X3FvcGVuZ2xjb25maWcKLQkJdHN0X3FvcGVuZ2wgdHN0X3Fk bnNsb29rdXAgdHN0X3FmaWxlZGlhbG9nCisJCXRzdF9xb3BlbmdsIHRzdF9xZmlsZWRpYWxvZwog CQl0c3RfcWdyYXBoaWNzdmlldyB0c3RfcWFwcGxpY2F0aW9uIHRzdF9xZm9udGNvbWJvYm94CiAJ CXRzdF9xbGluZWVkaXQgdHN0X3FtZW51YmFyIHRzdF9xb3Blbmdsd2lkZ2V0CiAJCXRzdF9xeDEx aW5mbyB0c3RfcWNvbXBsZXh0ZXh0Ci0JCXRlc3RfUUZJTkRURVNUREFUQSBydW5fdGVzdF9RRklO RFRFU1REQVRBIgorCQl0c3RfcWFkZHByZXJvdXRpbmUgdHN0X3F0ZXh0Y3Vyc29yIgogCSMgVW5r bm93biBwbGF0Zm9ybSBsaW51eC1nKysgOi8KIAlmYWlsaW5nX3Rlc3RzKz0iIG1vY2twbHVnaW5z IHRlc3RfaW1wb3J0X3BsdWdpbnMKLQkJdGVzdF9zdGF0aWNfcmVzb3VyY2VzIHRlc3RfZ2VuZXJh dGluZ19jcHBfZXhwb3J0cyIKKwkgdGVzdF9zdGF0aWNfcmVzb3VyY2VzIHRlc3RfZ2VuZXJhdGlu Z19jcHBfZXhwb3J0cyIKIAlmYWlsaW5nX3Rlc3RzKz0iIHRzdF9xc3RvcmFnZWluZm8iCi0JIyBi cm9rZW4gd2l0aCAtTywgcGFzc2VkIHdpdGggLU8wLCBwcm9iYWJseSBicm9rZW4gZmxvYXRpbmcg cG9pbnQgY29kZS4KLQlmYWlsaW5nX3Rlc3RzKz0iIHRzdF9xdmVjdG9ybmQiCisJaWYgWyAiJFhC UFNfVEFSR0VUX0xJQkMiID0gbXVzbCBdOyB0aGVuCisJCSMgU29tZSBnbGliYyBzcGVjaWZpYyBE TlMgTG9va3VwCisJCWZhaWxpbmdfdGVzdHMrPSIgdHN0X3FkbnNsb29rdXAiCisJZmkKKwlpZiBb ICIkWEJQU19UQVJHRVRfV09SRFNJWkUiID0gMzIgXTsgdGhlbgorCQkjIGZhaWxpbmcgb24gaTY4 Niwgbm90IGNoZWNrZWQgb24gYXJtCisJCWZhaWxpbmdfdGVzdHMrPSIgdHN0X3F2ZWN0b3JybmQi CisJZmkKIAlsb2NhbCBjdGVzdF9leGNsdWRlPSIoIgogCWZvciBmYWlsdXJlIGluICRmYWlsaW5n X3Rlc3RzOyBkbwogCQljdGVzdF9leGNsdWRlKz0iJGZhaWx1cmV8IgogCWRvbmUKIAljdGVzdF9l eGNsdWRlPSIke2N0ZXN0X2V4Y2x1ZGUlfH0pIgorCWlmIFsgISAtZSAiJHdya3NyYy9idWlsZC9p bmNsdWRlL3F0NiIgXTsgdGhlbgorCQlsbiAtcyAuLiAiJHdya3NyYy9idWlsZC9pbmNsdWRlL3F0 NiIKKwlmaQogCWN0ZXN0IC1FICIkY3Rlc3RfZXhjbHVkZSIKKwlybSAiJHdya3NyYy9idWlsZC9p bmNsdWRlL3F0NiIKK30KKworcG9zdF9pbnN0YWxsKCkgeworCXJtIC1yZiAke0RFU1RESVJ9L3Vz ci90ZXN0cwogfQogCiBxdDYtZ3VpX3BhY2thZ2UoKSB7CgpGcm9tIDY1YjliMmNlYjJlMDNhYWJj ZjYyYzQwZDk1MTlkMTAzNjBmN2IzYmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/ VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/ PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBGcmksIDE3IEZlYiAyMDIzIDExOjQ0OjA5 ICswNzAwClN1YmplY3Q6IFtQQVRDSCAwMi8yN10gcXQ2LWRlY2xhcmF0aXZlOiB1cGRhdGUgdG8g Ni40LjIuCgotLS0KIC4uLi9wYXRjaGVzL2Jpbi1xbWwtbG9jYXRpb24ucGF0Y2ggICAgICAgICAg ICB8IDIwNSArKysrKysrKysrLS0tLS0tLS0KIC4uLi9wYXRjaGVzL3FtbC1icm9rZW4tdGVzdC5w YXRjaCAgICAgICAgICAgICB8ICAgNiArLQogc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUvdGVtcGxh dGUgICAgICAgICAgICAgIHwgIDM4ICsrLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTM1IGluc2VydGlv bnMoKyksIDExNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1kZWNsYXJh dGl2ZS9wYXRjaGVzL2Jpbi1xbWwtbG9jYXRpb24ucGF0Y2ggYi9zcmNwa2dzL3F0Ni1kZWNsYXJh dGl2ZS9wYXRjaGVzL2Jpbi1xbWwtbG9jYXRpb24ucGF0Y2gKaW5kZXggZjkyZTM0NjMyNTAyLi45 MzIzYWVjMDBiNjQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LWRlY2xhcmF0aXZlL3BhdGNoZXMv YmluLXFtbC1sb2NhdGlvbi5wYXRjaAorKysgYi9zcmNwa2dzL3F0Ni1kZWNsYXJhdGl2ZS9wYXRj aGVzL2Jpbi1xbWwtbG9jYXRpb24ucGF0Y2gKQEAgLTEsMTkzICsxLDIwNiBAQAotLS0tIGEvdGVz dHMvYXV0by9xbWwvZGVidWdnZXIvcXFtbGRlYnVndHJhbnNsYXRpb25jbGllbnQvdHN0X3FxbWxk ZWJ1Z3RyYW5zbGF0aW9uY2xpZW50LmNwcAotKysrIGIvdGVzdHMvYXV0by9xbWwvZGVidWdnZXIv cXFtbGRlYnVndHJhbnNsYXRpb25jbGllbnQvdHN0X3FxbWxkZWJ1Z3RyYW5zbGF0aW9uY2xpZW50 LmNwcAotQEAgLTk0LDcgKzk0LDExIEBAIHByaXZhdGU6Ci0gICAgIHsKKy0tLSBxdDYtZGVjbGFy YXRpdmUtNi40LjIub3JpZy90ZXN0cy9hdXRvL3FtbC9kZWJ1Z2dlci9xcW1sZGVidWd0cmFuc2xh dGlvbmNsaWVudC90c3RfcXFtbGRlYnVndHJhbnNsYXRpb25jbGllbnQuY3BwCisrKysgcXQ2LWRl Y2xhcmF0aXZlLTYuNC4yL3Rlc3RzL2F1dG8vcW1sL2RlYnVnZ2VyL3FxbWxkZWJ1Z3RyYW5zbGF0 aW9uY2xpZW50L3RzdF9xcW1sZGVidWd0cmFuc2xhdGlvbmNsaWVudC5jcHAKK0BAIC03MSw2ICs3 MSw5IEBAIHByaXZhdGU6CiAgICAgICAgICBtX2N1cnJlbnRPdXRwdXRMaW5lID0gMDsKICAKLSsj aWZkZWYgUVRfREVDTEFSQVRJVkVfQklOX1BBVEgKLSsgICAgICAgIGF1dG8gZXhlY3V0YWJsZSA9 IFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRIICIvcW1sIjsKLSsjZWxzZQogICAgICAgICAgYXV0byBl eGVjdXRhYmxlID0gUUxpYnJhcnlJbmZvOjpwYXRoKFFMaWJyYXJ5SW5mbzo6QmluYXJpZXNQYXRo KSArICIvcW1sIjsKLSsjZW5kaWYKKysgICAgICAgIGNoYXIgKmJ1aWxkX2Jpbl9wYXRoID0gZ2V0 ZW52KCJRVF9CVUlMRF9CSU5fUEFUSCIpOworKyAgICAgICAgaWYgKGJ1aWxkX2Jpbl9wYXRoICYm ICpidWlsZF9iaW5fcGF0aCkKKysgICAgICAgICAgICBleGVjdXRhYmxlID0gUVN0cmluZyhidWls ZF9iaW5fcGF0aCkgKyAiL3FtbCI7CiAgICAgICAgICBhdXRvIHNlcnZpY2VzID0gUVFtbERlYnVn VHJhbnNsYXRpb25TZXJ2aWNlSW1wbDo6c19rZXk7CiAgICAgICAgICBhdXRvIGV4dHJhQXJncyA9 IHRlc3RGaWxlKFFNTEZJTEUpOwogICAgICAgICAgYXV0byBibG9jayA9IHRydWU7Ci0tLS0gYS90 ZXN0cy9hdXRvL3FtbC9kZWJ1Z2dlci9xcW1saW5zcGVjdG9yL3RzdF9xcW1saW5zcGVjdG9yLmNw cAotKysrIGIvdGVzdHMvYXV0by9xbWwvZGVidWdnZXIvcXFtbGluc3BlY3Rvci90c3RfcXFtbGlu c3BlY3Rvci5jcHAKLUBAIC03Miw3ICs3MiwxMiBAQCB0c3RfUVFtbEluc3BlY3Rvcjo6dHN0X1FR bWxJbnNwZWN0b3IoKQorLS0tIHF0Ni1kZWNsYXJhdGl2ZS02LjQuMi5vcmlnL3Rlc3RzL2F1dG8v cW1sL2RlYnVnZ2VyL3FxbWxpbnNwZWN0b3IvdHN0X3FxbWxpbnNwZWN0b3IuY3BwCisrKysgcXQ2 LWRlY2xhcmF0aXZlLTYuNC4yL3Rlc3RzL2F1dG8vcW1sL2RlYnVnZ2VyL3FxbWxpbnNwZWN0b3Iv dHN0X3FxbWxpbnNwZWN0b3IuY3BwCitAQCAtNDcsNyArNDcsMTEgQEAgdHN0X1FRbWxJbnNwZWN0 b3I6OnRzdF9RUW1sSW5zcGVjdG9yKCkKICBRUW1sRGVidWdUZXN0OjpDb25uZWN0UmVzdWx0IHRz dF9RUW1sSW5zcGVjdG9yOjpzdGFydFFtbFByb2Nlc3MoY29uc3QgUVN0cmluZyAmcW1sRmlsZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYm9vbCByZXN0cmljdFNlcnZpY2VzKQogIHsKIC0gICAgcmV0dXJuIFFRbWxEZWJ1 Z1Rlc3Q6OmNvbm5lY3RUbyhRTGlicmFyeUluZm86OnBhdGgoUUxpYnJhcnlJbmZvOjpCaW5hcmll c1BhdGgpICsgIi9xbWwiLAotKyNpZmRlZiBRVF9ERUNMQVJBVElWRV9CSU5fUEFUSAotKyAgICBh dXRvIGV4ZWN1dGFibGUgPSBRVF9ERUNMQVJBVElWRV9CSU5fUEFUSCAiL3FtbCI7Ci0rI2Vsc2UK ICsgICAgYXV0byBleGVjdXRhYmxlID0gUUxpYnJhcnlJbmZvOjpwYXRoKFFMaWJyYXJ5SW5mbzo6 QmluYXJpZXNQYXRoKSArICIvcW1sIjsKLSsjZW5kaWYKKysgICAgY2hhciAqYnVpbGRfYmluX3Bh dGggPSBnZXRlbnYoIlFUX0JVSUxEX0JJTl9QQVRIIik7CisrICAgIGlmIChidWlsZF9iaW5fcGF0 aCAmJiAqYnVpbGRfYmluX3BhdGgpCisrICAgICAgICBleGVjdXRhYmxlID0gUVN0cmluZyhidWls ZF9iaW5fcGF0aCkgKyAiL3FtbCI7CiArICAgIHJldHVybiBRUW1sRGVidWdUZXN0Ojpjb25uZWN0 VG8oZXhlY3V0YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdHJp Y3RTZXJ2aWNlcyA/IFFTdHJpbmdMaXRlcmFsKCJRbWxJbnNwZWN0b3IiKSA6IFFTdHJpbmcoKSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZpbGUocW1sRmlsZSksIHRy dWUpOwogIH0KLS0tLSBhL3Rlc3RzL2F1dG8vcW1sL2RlYnVnZ2VyL3FxbWxwcm9maWxlcnNlcnZp Y2UvdHN0X3FxbWxwcm9maWxlcnNlcnZpY2UuY3BwCi0rKysgYi90ZXN0cy9hdXRvL3FtbC9kZWJ1 Z2dlci9xcW1scHJvZmlsZXJzZXJ2aWNlL3RzdF9xcW1scHJvZmlsZXJzZXJ2aWNlLmNwcAotQEAg LTIwNCwxMCArMjA0LDE2IEBAIHByaXZhdGU6CistLS0gcXQ2LWRlY2xhcmF0aXZlLTYuNC4yLm9y aWcvdGVzdHMvYXV0by9xbWwvZGVidWdnZXIvcXFtbHByb2ZpbGVyc2VydmljZS90c3RfcXFtbHBy b2ZpbGVyc2VydmljZS5jcHAKKysrKyBxdDYtZGVjbGFyYXRpdmUtNi40LjIvdGVzdHMvYXV0by9x bWwvZGVidWdnZXIvcXFtbHByb2ZpbGVyc2VydmljZS90c3RfcXFtbHByb2ZpbGVyc2VydmljZS5j cHAKK0BAIC0xNzksMTAgKzE3OSwxOCBAQCBwcml2YXRlOgogICAgICAgICAgQ2hlY2tUeXBlID0g Q2hlY2tNZXNzYWdlVHlwZSB8IENoZWNrRGV0YWlsVHlwZSB8IENoZWNrTGluZSB8IENoZWNrQ29s dW1uIHwgQ2hlY2tGaWxlRW5kc1dpdGgKICAgICAgfTsKICAKLSsjaWZkZWYgUVRfREVDTEFSQVRJ VkVfQklOX1BBVEgKLSsjZGVmaW5lIFFNTFNDRU5FX1BBVEggUVRfREVDTEFSQVRJVkVfQklOX1BB VEggIi9xbWwiCi0rI2Vsc2UKLSsjZGVmaW5lIFFNTFNDRU5FX1BBVEggUUxpYnJhcnlJbmZvOjpw YXRoKFFMaWJyYXJ5SW5mbzo6QmluYXJpZXNQYXRoKSArICIvcW1sc2NlbmUiCi0rI2VuZGlmCisr ICAgIHN0YXRpYyBRU3RyaW5nIFFtbFNjZW5lUGF0aCgpCisrICAgIHsKKysgICAgICAgIGNoYXIg KmJ1aWxkX2Jpbl9wYXRoID0gZ2V0ZW52KCJRVF9CVUlMRF9CSU5fUEFUSCIpOworKyAgICAgICAg aWYgKGJ1aWxkX2Jpbl9wYXRoICYmICpidWlsZF9iaW5fcGF0aCkKKysgICAgICAgICAgICByZXR1 cm4gUVN0cmluZyhidWlsZF9iaW5fcGF0aCkgKyAiL3FtbHNjZW5lIjsKKysgICAgICAgIHJldHVy biBRTGlicmFyeUluZm86OnBhdGgoUUxpYnJhcnlJbmZvOjpCaW5hcmllc1BhdGgpICsgIi9xbWxz Y2VuZSI7CisrICAgIH0KICsKICAgICAgQ29ubmVjdFJlc3VsdCBjb25uZWN0VG8oYm9vbCBibG9j aywgY29uc3QgUVN0cmluZyAmZmlsZSwgYm9vbCByZWNvcmRGcm9tU3RhcnQgPSB0cnVlLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludCBmbHVzaEludGVydmFsID0gMCwgYm9vbCByZXN0 cmljdFNlcnZpY2VzID0gdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFT dHJpbmcgJmV4ZWN1dGFibGUKIC0gICAgICAgICAgICA9IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGli cmFyeUluZm86OkJpbmFyaWVzUGF0aCkgKyAiL3FtbHNjZW5lIik7Ci0rICAgICAgICAgICAgPSBR TUxTQ0VORV9QQVRIKTsKKysgICAgICAgICAgICA9IFFtbFNjZW5lUGF0aCgpKTsKICAgICAgdm9p ZCBjaGVja1Byb2Nlc3NUZXJtaW5hdGVkKCk7CiAgICAgIHZvaWQgY2hlY2tUcmFjZVJlY2VpdmVk KCk7CiAgICAgIHZvaWQgY2hlY2tKc0hlYXAoKTsKLS0tLSBhL3Rlc3RzL2F1dG8vcW1sL2RlYnVn Z2VyL3FxbWxkZWJ1Z2dpbmdlbmFibGVyL3FxbWxkZWJ1Z2dpbmdlbmFibGVyL3RzdF9xcW1sZGVi dWdnaW5nZW5hYmxlci5jcHAKLSsrKyBiL3Rlc3RzL2F1dG8vcW1sL2RlYnVnZ2VyL3FxbWxkZWJ1 Z2dpbmdlbmFibGVyL3FxbWxkZWJ1Z2dpbmdlbmFibGVyL3RzdF9xcW1sZGVidWdnaW5nZW5hYmxl ci5jcHAKLUBAIC0xMTAsOCArMTEwLDEzIEBAIHZvaWQgdHN0X1FRbWxEZWJ1Z2dpbmdFbmFibGVy OjpxbWxzY2VuZSgKKy0tLSBxdDYtZGVjbGFyYXRpdmUtNi40LjIub3JpZy90ZXN0cy9hdXRvL3Ft bC9kZWJ1Z2dlci9xcW1sZGVidWdnaW5nZW5hYmxlci9xcW1sZGVidWdnaW5nZW5hYmxlci90c3Rf cXFtbGRlYnVnZ2luZ2VuYWJsZXIuY3BwCisrKysgcXQ2LWRlY2xhcmF0aXZlLTYuNC4yL3Rlc3Rz L2F1dG8vcW1sL2RlYnVnZ2VyL3FxbWxkZWJ1Z2dpbmdlbmFibGVyL3FxbWxkZWJ1Z2dpbmdlbmFi bGVyL3RzdF9xcW1sZGVidWdnaW5nZW5hYmxlci5jcHAKK0BAIC04NSw4ICs4NSwxMiBAQCB2b2lk IHRzdF9RUW1sRGVidWdnaW5nRW5hYmxlcjo6cW1sc2NlbmUoCiAgICAgIFFGRVRDSChib29sLCBi bG9ja01vZGUpOwogICAgICBRRkVUQ0goUVN0cmluZ0xpc3QsIHNlcnZpY2VzKTsKICAKIC0gICAg bV9wcm9jZXNzID0gbmV3IFFRbWxEZWJ1Z1Byb2Nlc3MoCiAtICAgICAgICAgICAgICAgIFFMaWJy YXJ5SW5mbzo6cGF0aChRTGlicmFyeUluZm86OkJpbmFyaWVzUGF0aCkgKyAiL3FtbHNjZW5lIiwg dGhpcyk7Ci0rI2lmZGVmIFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRICi0rICAgIGF1dG8gZXhlY3V0 YWJsZSA9IFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRIICIvcW1sc2NlbmUiOwotKyNlbHNlCiArICAg IGF1dG8gZXhlY3V0YWJsZSA9IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUluZm86OkJpbmFy aWVzUGF0aCkgKyAiL3FtbHNjZW5lIjsKLSsjZW5kaWYKKysgICAgY2hhciAqYnVpbGRfYmluX3Bh dGggPSBnZXRlbnYoIlFUX0JVSUxEX0JJTl9QQVRIIik7CisrICAgIGlmIChidWlsZF9iaW5fcGF0 aCAmJiAqYnVpbGRfYmluX3BhdGgpCisrICAgICAgICBleGVjdXRhYmxlID0gUVN0cmluZyhidWls ZF9iaW5fcGF0aCkgKyAiL3FtbHNjZW5lIjsKICsKICsgICAgbV9wcm9jZXNzID0gbmV3IFFRbWxE ZWJ1Z1Byb2Nlc3MoZXhlY3V0YWJsZSwgdGhpcyk7CiAgICAgIG1fcHJvY2Vzcy0+c2V0TWF4aW11 bUJpbmRFcnJvcnMoMSk7CiAgICAgIG1fcHJvY2Vzcy0+c3RhcnQoUVN0cmluZ0xpc3QoKQogICAg ICAgICAgICAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21MYXRpbjEoIi1xbWxqc2RlYnVnZ2Vy PWNvbm5lY3RvcjolMSUyJTMlNCIpCi0tLS0gYS90ZXN0cy9hdXRvL3FtbC9kZWJ1Z2dlci9xcW1s ZW5naW5lY29udHJvbC90c3RfcXFtbGVuZ2luZWNvbnRyb2wuY3BwCi0rKysgYi90ZXN0cy9hdXRv L3FtbC9kZWJ1Z2dlci9xcW1sZW5naW5lY29udHJvbC90c3RfcXFtbGVuZ2luZWNvbnRyb2wuY3Bw Ci1AQCAtOTEsNyArOTEsMTIgQEAgdHN0X1FRbWxFbmdpbmVDb250cm9sOjp0c3RfUVFtbEVuZ2lu ZUNvbgorLS0tIHF0Ni1kZWNsYXJhdGl2ZS02LjQuMi5vcmlnL3Rlc3RzL2F1dG8vcW1sL2RlYnVn Z2VyL3FxbWxlbmdpbmVjb250cm9sL3RzdF9xcW1sZW5naW5lY29udHJvbC5jcHAKKysrKyBxdDYt ZGVjbGFyYXRpdmUtNi40LjIvdGVzdHMvYXV0by9xbWwvZGVidWdnZXIvcXFtbGVuZ2luZWNvbnRy b2wvdHN0X3FxbWxlbmdpbmVjb250cm9sLmNwcAorQEAgLTY2LDcgKzY2LDExIEBAIHRzdF9RUW1s RW5naW5lQ29udHJvbDo6dHN0X1FRbWxFbmdpbmVDb24KICBRUW1sRGVidWdUZXN0OjpDb25uZWN0 UmVzdWx0IHRzdF9RUW1sRW5naW5lQ29udHJvbDo6Y29ubmVjdFRvKGNvbnN0IFFTdHJpbmcgJmZp bGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYm9vbCByZXN0cmljdFNlcnZpY2VzKQogIHsKIC0gICAgcmV0dXJuIFFRbWxEZWJ1 Z1Rlc3Q6OmNvbm5lY3RUbyhRTGlicmFyeUluZm86OnBhdGgoUUxpYnJhcnlJbmZvOjpCaW5hcmll c1BhdGgpICsgIi9xbWxzY2VuZSIsCi0rI2lmZGVmIFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRICi0r ICAgIGF1dG8gZXhlY3V0YWJsZSA9IFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRIICIvcW1sc2NlbmUi OwotKyNlbHNlCiArICAgIGF1dG8gZXhlY3V0YWJsZSA9IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGli cmFyeUluZm86OkJpbmFyaWVzUGF0aCkgKyAiL3FtbHNjZW5lIjsKLSsjZW5kaWYKKysgICAgY2hh ciAqYnVpbGRfYmluX3BhdGggPSBnZXRlbnYoIlFUX0JVSUxEX0JJTl9QQVRIIik7CisrICAgIGlm IChidWlsZF9iaW5fcGF0aCAmJiAqYnVpbGRfYmluX3BhdGgpCisrICAgICAgICBleGVjdXRhYmxl ID0gUVN0cmluZyhidWlsZF9iaW5fcGF0aCkgKyAiL3FtbHNjZW5lIjsKICsgICAgcmV0dXJuIFFR bWxEZWJ1Z1Rlc3Q6OmNvbm5lY3RUbyhleGVjdXRhYmxlLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXN0cmljdFNlcnZpY2VzID8gUVN0cmluZ0xpdGVyYWwoIkVuZ2luZUNv bnRyb2wiKSA6IFFTdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGVzdEZpbGUoZmlsZSksIHRydWUpOwogIH0KLS0tLSBhL3Rlc3RzL2F1dG8vcW1sL2RlYnVnZ2Vy L3FxbWxlbmdpbmVkZWJ1Z2luc3BlY3RvcmludGVncmF0aW9udGVzdC90c3RfcXFtbGVuZ2luZWRl YnVnaW5zcGVjdG9yaW50ZWdyYXRpb24uY3BwCi0rKysgYi90ZXN0cy9hdXRvL3FtbC9kZWJ1Z2dl ci9xcW1sZW5naW5lZGVidWdpbnNwZWN0b3JpbnRlZ3JhdGlvbnRlc3QvdHN0X3FxbWxlbmdpbmVk ZWJ1Z2luc3BlY3RvcmludGVncmF0aW9uLmNwcAotQEAgLTk2LDcgKzk2LDExIEBAIHRzdF9RUW1s RW5naW5lRGVidWdJbnNwZWN0b3JJbnRlZ3JhdGlvbjoKKy0tLSBxdDYtZGVjbGFyYXRpdmUtNi40 LjIub3JpZy90ZXN0cy9hdXRvL3FtbC9kZWJ1Z2dlci9xcW1sZW5naW5lZGVidWdpbnNwZWN0b3Jp bnRlZ3JhdGlvbnRlc3QvdHN0X3FxbWxlbmdpbmVkZWJ1Z2luc3BlY3RvcmludGVncmF0aW9uLmNw cAorKysrIHF0Ni1kZWNsYXJhdGl2ZS02LjQuMi90ZXN0cy9hdXRvL3FtbC9kZWJ1Z2dlci9xcW1s ZW5naW5lZGVidWdpbnNwZWN0b3JpbnRlZ3JhdGlvbnRlc3QvdHN0X3FxbWxlbmdpbmVkZWJ1Z2lu c3BlY3RvcmludGVncmF0aW9uLmNwcAorQEAgLTcwLDggKzcwLDExIEBAIHRzdF9RUW1sRW5naW5l RGVidWdJbnNwZWN0b3JJbnRlZ3JhdGlvbjoKKyAKICBRUW1sRGVidWdUZXN0OjpDb25uZWN0UmVz dWx0IHRzdF9RUW1sRW5naW5lRGVidWdJbnNwZWN0b3JJbnRlZ3JhdGlvbjo6aW5pdChib29sIHJl c3RyaWN0U2VydmljZXMpCiAgewotICAgICByZXR1cm4gUVFtbERlYnVnVGVzdDo6Y29ubmVjdFRv KAotKyNpZmRlZiBRVF9ERUNMQVJBVElWRV9CSU5fUEFUSAotKyAgICAgICAgICAgICAgICBRVF9E RUNMQVJBVElWRV9CSU5fUEFUSCAiL3FtbCIsCi0rI2Vsc2UKLSAgICAgICAgICAgICAgICAgUUxp YnJhcnlJbmZvOjpwYXRoKFFMaWJyYXJ5SW5mbzo6QmluYXJpZXNQYXRoKSArICIvcW1sIiwKLSsj ZW5kaWYKKy0gICAgcmV0dXJuIFFRbWxEZWJ1Z1Rlc3Q6OmNvbm5lY3RUbygKKy0gICAgICAgICAg ICAgICAgUUxpYnJhcnlJbmZvOjpwYXRoKFFMaWJyYXJ5SW5mbzo6QmluYXJpZXNQYXRoKSArICIv cW1sIiwKKysgICAgYXV0byBleGVjdXRhYmxlID0gUUxpYnJhcnlJbmZvOjpwYXRoKFFMaWJyYXJ5 SW5mbzo6QmluYXJpZXNQYXRoKSArICIvcW1sIjsKKysgICAgY2hhciAqYnVpbGRfYmluX3BhdGgg PSBnZXRlbnYoIlFUX0JVSUxEX0JJTl9QQVRIIik7CisrICAgIGlmIChidWlsZF9iaW5fcGF0aCAm JiAqYnVpbGRfYmluX3BhdGgpCisrICAgICAgICBleGVjdXRhYmxlID0gUVN0cmluZyhidWlsZF9i aW5fcGF0aCkgKyAiL3FtbCI7CisrICAgIHJldHVybiBRUW1sRGVidWdUZXN0Ojpjb25uZWN0VG8o ZXhlY3V0YWJsZSwKICAgICAgICAgICAgICAgICAgcmVzdHJpY3RTZXJ2aWNlcyA/IFFTdHJpbmdM aXRlcmFsKCJRbWxEZWJ1Z2dlcixRbWxJbnNwZWN0b3IiKSA6IFFTdHJpbmcoKSwKICAgICAgICAg ICAgICAgICAgdGVzdEZpbGUoInF0cXVpY2syLnFtbCIpLCB0cnVlKTsKICB9Ci0tLS0gYS90ZXN0 cy9hdXRvL3FtbC9kZWJ1Z2dlci9xcW1scHJldmlldy90c3RfcXFtbHByZXZpZXcuY3BwCi0rKysg Yi90ZXN0cy9hdXRvL3FtbC9kZWJ1Z2dlci9xcW1scHJldmlldy90c3RfcXFtbHByZXZpZXcuY3Bw Ci1AQCAtODEsNyArODEsMTIgQEAgdHN0X1FRbWxQcmV2aWV3Ojp0c3RfUVFtbFByZXZpZXcoKQor LS0tIHF0Ni1kZWNsYXJhdGl2ZS02LjQuMi5vcmlnL3Rlc3RzL2F1dG8vcW1sL2RlYnVnZ2VyL3Fx bWxwcmV2aWV3L3RzdF9xcW1scHJldmlldy5jcHAKKysrKyBxdDYtZGVjbGFyYXRpdmUtNi40LjIv dGVzdHMvYXV0by9xbWwvZGVidWdnZXIvcXFtbHByZXZpZXcvdHN0X3FxbWxwcmV2aWV3LmNwcAor QEAgLTU2LDcgKzU2LDExIEBAIHRzdF9RUW1sUHJldmlldzo6dHN0X1FRbWxQcmV2aWV3KCkKICAK ICBRUW1sRGVidWdUZXN0OjpDb25uZWN0UmVzdWx0IHRzdF9RUW1sUHJldmlldzo6c3RhcnRRbWxQ cm9jZXNzKGNvbnN0IFFTdHJpbmcgJnFtbEZpbGUpCiAgewogLSAgICByZXR1cm4gUVFtbERlYnVn VGVzdDo6Y29ubmVjdFRvKFFMaWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUluZm86OkJpbmFyaWVz UGF0aCkgKyAiL3FtbCIsCi0rI2lmZGVmIFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRICi0rICAgIGF1 dG8gZXhlY3V0YWJsZSA9IFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRIICIvcW1sIjsKLSsjZWxzZQog KyAgICBhdXRvIGV4ZWN1dGFibGUgPSBRTGlicmFyeUluZm86OnBhdGgoUUxpYnJhcnlJbmZvOjpC aW5hcmllc1BhdGgpICsgIi9xbWwiOwotKyNlbmRpZgorKyAgICBjaGFyICpidWlsZF9iaW5fcGF0 aCA9IGdldGVudigiUVRfQlVJTERfQklOX1BBVEgiKTsKKysgICAgaWYgKGJ1aWxkX2Jpbl9wYXRo ICYmICpidWlsZF9iaW5fcGF0aCkKKysgICAgICAgIGV4ZWN1dGFibGUgPSBRU3RyaW5nKGJ1aWxk X2Jpbl9wYXRoKSArICIvcW1sIjsKICsgICAgcmV0dXJuIFFRbWxEZWJ1Z1Rlc3Q6OmNvbm5lY3RU byhleGVjdXRhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRU3RyaW5n TGl0ZXJhbCgiUW1sUHJldmlldyIpLCB0ZXN0RmlsZShxbWxGaWxlKSwgdHJ1ZSk7CiAgfQogIAot LS0tIGEvdGVzdHMvYXV0by9xbWwvcW1sZm9ybWF0L3RzdF9xbWxmb3JtYXQuY3BwCi0rKysgYi90 ZXN0cy9hdXRvL3FtbC9xbWxmb3JtYXQvdHN0X3FtbGZvcm1hdC5jcHAKLUBAIC04OCw3ICs4OCwx MSBAQCBUZXN0UW1sZm9ybWF0OjpUZXN0UW1sZm9ybWF0KCkKLSB2b2lkIFRlc3RRbWxmb3JtYXQ6 OmluaXRUZXN0Q2FzZSgpCistLS0gcXQ2LWRlY2xhcmF0aXZlLTYuNC4yLm9yaWcvdGVzdHMvYXV0 by9xbWwvcW1sZm9ybWF0L3RzdF9xbWxmb3JtYXQuY3BwCisrKysgcXQ2LWRlY2xhcmF0aXZlLTYu NC4yL3Rlc3RzL2F1dG8vcW1sL3FtbGZvcm1hdC90c3RfcW1sZm9ybWF0LmNwcAorQEAgLTY1LDYg KzY1LDkgQEAgdm9pZCBUZXN0UW1sZm9ybWF0Ojppbml0VGVzdENhc2UoKQogIHsKICAgICAgUVFt bERhdGFUZXN0Ojppbml0VGVzdENhc2UoKTsKLSsjaWZkZWYgUVRfREVDTEFSQVRJVkVfQklOX1BB VEgKLSsgICAgbV9xbWxmb3JtYXRQYXRoID0gUUxhdGluMVN0cmluZyhRVF9ERUNMQVJBVElWRV9C SU5fUEFUSCAiL3FtbGZvcm1hdCIpOwotKyNlbHNlCiAgICAgIG1fcW1sZm9ybWF0UGF0aCA9IFFM aWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUluZm86OkJpbmFyaWVzUGF0aCkgKyBRTGF0aW4xU3Ry aW5nKCIvcW1sZm9ybWF0Iik7Ci0rI2VuZGlmCisrICAgIGNoYXIgKmJ1aWxkX2Jpbl9wYXRoID0g Z2V0ZW52KCJRVF9CVUlMRF9CSU5fUEFUSCIpOworKyAgICBpZiAoYnVpbGRfYmluX3BhdGggJiYg KmJ1aWxkX2Jpbl9wYXRoKQorKyAgICAgICAgbV9xbWxmb3JtYXRQYXRoID0gUUxhdGluMVN0cmlu ZyhidWlsZF9iaW5fcGF0aCkgKyAiL3FtbGZvcm1hdCI7CiAgI2lmZGVmIFFfT1NfV0lOCiAgICAg IG1fcW1sZm9ybWF0UGF0aCArPSBRTGF0aW4xU3RyaW5nKCIuZXhlIik7CiAgI2VuZGlmCi0tLS0g YS90ZXN0cy9hdXRvL3FtbC9xbWxpbXBvcnRzY2FubmVyL3RzdF9xbWxpbXBvcnRzY2FubmVyLmNw cAotKysrIGIvdGVzdHMvYXV0by9xbWwvcW1saW1wb3J0c2Nhbm5lci90c3RfcW1saW1wb3J0c2Nh bm5lci5jcHAKLUBAIC02Myw4ICs2MywxMiBAQCBUZXN0UW1saW1wb3J0c2Nhbm5lcjo6VGVzdFFt bGltcG9ydHNjYW5uCi0gdm9pZCBUZXN0UW1saW1wb3J0c2Nhbm5lcjo6aW5pdFRlc3RDYXNlKCkK LSB7CistLS0gcXQ2LWRlY2xhcmF0aXZlLTYuNC4yLm9yaWcvdGVzdHMvYXV0by9xbWwvcW1saW1w b3J0c2Nhbm5lci90c3RfcW1saW1wb3J0c2Nhbm5lci5jcHAKKysrKyBxdDYtZGVjbGFyYXRpdmUt Ni40LjIvdGVzdHMvYXV0by9xbWwvcW1saW1wb3J0c2Nhbm5lci90c3RfcW1saW1wb3J0c2Nhbm5l ci5jcHAKK0BAIC00Miw2ICs0Miw5IEBAIHZvaWQgVGVzdFFtbGltcG9ydHNjYW5uZXI6OmluaXRU ZXN0Q2FzZSgKICAgICAgUVFtbERhdGFUZXN0Ojppbml0VGVzdENhc2UoKTsKLSsjaWZkZWYgUVRf REVDTEFSQVRJVkVfTElCRVhFQ19QQVRICi0rICAgIG1fcW1saW1wb3J0c2Nhbm5lclBhdGggPSBR TGF0aW4xU3RyaW5nKFFUX0RFQ0xBUkFUSVZFX0xJQkVYRUNfUEFUSCAiL3FtbGltcG9ydHNjYW5u ZXIiKTsKLSsjZWxzZQogICAgICBtX3FtbGltcG9ydHNjYW5uZXJQYXRoID0gUUxpYnJhcnlJbmZv OjpwYXRoKFFMaWJyYXJ5SW5mbzo6TGlicmFyeUV4ZWN1dGFibGVzUGF0aCkKICAgICAgICAgICAg ICArIFFMYXRpbjFTdHJpbmcoIi9xbWxpbXBvcnRzY2FubmVyIik7Ci0rI2VuZGlmCisrICAgIGNo YXIgKmJ1aWxkX2xpYmV4ZWMgPSBnZXRlbnYoIlFUX0JVSUxEX0xJQkVYRUNfUEFUSCIpOworKyAg ICBpZiAoYnVpbGRfbGliZXhlYyAmJiAqYnVpbGRfbGliZXhlYykKKysgICAgICAgIG1fcW1saW1w b3J0c2Nhbm5lclBhdGggPSBRTGF0aW4xU3RyaW5nKGJ1aWxkX2xpYmV4ZWMpICsgIi9xbWxpbXBv cnRzY2FubmVyIjsKICAjaWZkZWYgUV9PU19XSU4KICAgICAgbV9xbWxpbXBvcnRzY2FubmVyUGF0 aCArPSBRTGF0aW4xU3RyaW5nKCIuZXhlIik7CiAgI2VuZGlmCi0tLS0gYS90ZXN0cy9hdXRvL3Ft bC9xbWxsaW50L3RzdF9xbWxsaW50LmNwcAotKysrIGIvdGVzdHMvYXV0by9xbWwvcW1sbGludC90 c3RfcW1sbGludC5jcHAKLUBAIC0xMzYsMTEgKzEzNiwxNyBAQCBUZXN0UW1sbGludDo6VGVzdFFt bGxpbnQoKQotIHZvaWQgVGVzdFFtbGxpbnQ6OmluaXRUZXN0Q2FzZSgpCistLS0gcXQ2LWRlY2xh cmF0aXZlLTYuNC4yLm9yaWcvdGVzdHMvYXV0by9xbWwvcW1sbGludC90c3RfcW1sbGludC5jcHAK KysrKyBxdDYtZGVjbGFyYXRpdmUtNi40LjIvdGVzdHMvYXV0by9xbWwvcW1sbGludC90c3RfcW1s bGludC5jcHAKK0BAIC0xNTksMTAgKzE1OSwxOCBAQCB2b2lkIFRlc3RRbWxsaW50Ojppbml0VGVz dENhc2UoKQogIHsKICAgICAgUVFtbERhdGFUZXN0Ojppbml0VGVzdENhc2UoKTsKLSsjaWZkZWYg UVRfREVDTEFSQVRJVkVfQklOX1BBVEgKLSsgICAgbV9xbWxsaW50UGF0aCA9IFFMYXRpbjFTdHJp bmcoUVRfREVDTEFSQVRJVkVfQklOX1BBVEggIi9xbWxsaW50Iik7Ci0rICAgIG1fcW1sanNyb290 Z2VuUGF0aCA9IFFMYXRpbjFTdHJpbmcoUVRfREVDTEFSQVRJVkVfQklOX1BBVEggIi9xbWxqc3Jv b3RnZW4iKTsKLSsgICAgbV9xbWx0eXBlcmVnaXN0cmFyUGF0aCA9IFFMYXRpbjFTdHJpbmcoUVRf REVDTEFSQVRJVkVfQklOX1BBVEggIi9xbWx0eXBlcmVnaXN0cmFyIik7Ci0rI2Vsc2UKICAgICAg bV9xbWxsaW50UGF0aCA9IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUluZm86OkJpbmFyaWVz UGF0aCkgKyBRTGF0aW4xU3RyaW5nKCIvcW1sbGludCIpOworKyAgICBjaGFyICpidWlsZF9iaW4g PSBnZXRlbnYoIlFUX0JVSUxEX0JJTl9QQVRIIik7CisrICAgIGlmIChidWlsZF9iaW4gJiYgKmJ1 aWxkX2JpbikKKysgICAgICAgIG1fcW1sbGludFBhdGggPSBRTGF0aW4xU3RyaW5nKGJ1aWxkX2Jp bikgKyAiL3FtbGxpbnQiOwogICAgICBtX3FtbGpzcm9vdGdlblBhdGggPSBRTGlicmFyeUluZm86 OnBhdGgoUUxpYnJhcnlJbmZvOjpMaWJyYXJ5RXhlY3V0YWJsZXNQYXRoKQogICAgICAgICAgICAg ICsgUUxhdGluMVN0cmluZygiL3FtbGpzcm9vdGdlbiIpOwogICAgICBtX3FtbHR5cGVyZWdpc3Ry YXJQYXRoID0gUUxpYnJhcnlJbmZvOjpwYXRoKFFMaWJyYXJ5SW5mbzo6TGlicmFyeUV4ZWN1dGFi bGVzUGF0aCkKICAgICAgICAgICAgICArIFFMYXRpbjFTdHJpbmcoIi9xbWx0eXBlcmVnaXN0cmFy Iik7Ci0rI2VuZGlmCisrICAgIGNoYXIgKmJ1aWxkX2xpYmV4ZWMgPSBnZXRlbnYoIlFUX0JVSUxE X0xJQkVYRUNfUEFUSCIpOworKyAgICBpZiAoYnVpbGRfbGliZXhlYyAmJiAqYnVpbGRfbGliZXhl YykgeworKyAgICAgICAgbV9xbWxqc3Jvb3RnZW5QYXRoID0gUUxhdGluMVN0cmluZyhidWlsZF9s aWJleGVjKSArICIvcW1sanNyb290Z2VuIjsKKysgICAgICAgIG1fcW1sdHlwZXJlZ2lzdHJhclBh dGggPSBRTGF0aW4xU3RyaW5nKGJ1aWxkX2xpYmV4ZWMpICsgIi9xbWx0eXBlc3JlZ2lzdHJhciI7 CisrICAgIH0KICAjaWZkZWYgUV9PU19XSU4KICAgICAgbV9xbWxsaW50UGF0aCArPSBRTGF0aW4x U3RyaW5nKCIuZXhlIik7CiAgICAgIG1fcW1sanNyb290Z2VuUGF0aCArPSBRTGF0aW4xU3RyaW5n KCIuZXhlIik7Ci0tLS0gYS90ZXN0cy9hdXRvL3FtbC9kZWJ1Z2dlci9xZGVidWdtZXNzYWdlc2Vy dmljZS90c3RfcWRlYnVnbWVzc2FnZXNlcnZpY2UuY3BwCi0rKysgYi90ZXN0cy9hdXRvL3FtbC9k ZWJ1Z2dlci9xZGVidWdtZXNzYWdlc2VydmljZS90c3RfcWRlYnVnbWVzc2FnZXNlcnZpY2UuY3Bw Ci1AQCAtMTQzLDcgKzE0MywxMiBAQCB0c3RfUURlYnVnTWVzc2FnZVNlcnZpY2U6OnRzdF9RRGVi dWdNZXNzCistLS0gcXQ2LWRlY2xhcmF0aXZlLTYuNC4yLm9yaWcvdGVzdHMvYXV0by9xbWwvZGVi dWdnZXIvcWRlYnVnbWVzc2FnZXNlcnZpY2UvdHN0X3FkZWJ1Z21lc3NhZ2VzZXJ2aWNlLmNwcAor KysrIHF0Ni1kZWNsYXJhdGl2ZS02LjQuMi90ZXN0cy9hdXRvL3FtbC9kZWJ1Z2dlci9xZGVidWdt ZXNzYWdlc2VydmljZS90c3RfcWRlYnVnbWVzc2FnZXNlcnZpY2UuY3BwCitAQCAtMTE4LDcgKzEx OCwxMSBAQCB0c3RfUURlYnVnTWVzc2FnZVNlcnZpY2U6OnRzdF9RRGVidWdNZXNzCiAgCiAgdm9p ZCB0c3RfUURlYnVnTWVzc2FnZVNlcnZpY2U6OnJldHJpZXZlRGVidWdPdXRwdXQoKQogIHsKIC0g ICAgUUNPTVBBUkUoUVFtbERlYnVnVGVzdDo6Y29ubmVjdFRvKFFMaWJyYXJ5SW5mbzo6cGF0aChR TGlicmFyeUluZm86OkJpbmFyaWVzUGF0aCkgKyAiL3FtbCIsCi0rI2lmZGVmIFFUX0RFQ0xBUkFU SVZFX0JJTl9QQVRICi0rICAgIGF1dG8gZXhlY3V0YWJsZSA9IFFUX0RFQ0xBUkFUSVZFX0JJTl9Q QVRIICIvcW1sIjsKLSsjZWxzZQogKyAgICBhdXRvIGV4ZWN1dGFibGUgPSBRTGlicmFyeUluZm86 OnBhdGgoUUxpYnJhcnlJbmZvOjpCaW5hcmllc1BhdGgpICsgIi9xbWwiOwotKyNlbmRpZgorKyAg ICBjaGFyICpidWlsZF9iaW5fcGF0aCA9IGdldGVudigiUVRfQlVJTERfQklOX1BBVEgiKTsKKysg ICAgaWYgKGJ1aWxkX2Jpbl9wYXRoICYmICpidWlsZF9iaW5fcGF0aCkKKysgICAgICAgIGV4ZWN1 dGFibGUgPSBRU3RyaW5nKGJ1aWxkX2Jpbl9wYXRoKSArICIvcW1sIjsKICsgICAgUUNPTVBBUkUo UVFtbERlYnVnVGVzdDo6Y29ubmVjdFRvKGV4ZWN1dGFibGUsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUVN0cmluZygpLCB0ZXN0RmlsZShRTUxGSUxFKSwgdHJ1ZSksIENv bm5lY3RTdWNjZXNzKTsKICAKICAgICAgUVRSWV9WRVJJRlkobV9jbGllbnQtPmxvZ0J1ZmZlci5z aXplKCkgPj0gMik7Ci0tLS0gYS90ZXN0cy9hdXRvL3FtbC9xbWxwbHVnaW5kdW1wL3RzdF9xbWxw bHVnaW5kdW1wLmNwcAotKysrIGIvdGVzdHMvYXV0by9xbWwvcW1scGx1Z2luZHVtcC90c3RfcW1s cGx1Z2luZHVtcC5jcHAKLUBAIC02Miw3ICs2MiwxMSBAQCB0c3RfcW1scGx1Z2luZHVtcDo6dHN0 X3FtbHBsdWdpbmR1bXAoKQotIHZvaWQgdHN0X3FtbHBsdWdpbmR1bXA6OmluaXRUZXN0Q2FzZSgp CistLS0gcXQ2LWRlY2xhcmF0aXZlLTYuNC4yLm9yaWcvdGVzdHMvYXV0by9xbWwvcW1scGx1Z2lu ZHVtcC90c3RfcW1scGx1Z2luZHVtcC5jcHAKKysrKyBxdDYtZGVjbGFyYXRpdmUtNi40LjIvdGVz dHMvYXV0by9xbWwvcW1scGx1Z2luZHVtcC90c3RfcW1scGx1Z2luZHVtcC5jcHAKK0BAIC0zOCw2 ICszOCw5IEBAIHZvaWQgdHN0X3FtbHBsdWdpbmR1bXA6OmluaXRUZXN0Q2FzZSgpCiAgewogICAg ICBRUW1sRGF0YVRlc3Q6OmluaXRUZXN0Q2FzZSgpOwotKyNpZmRlZiBRVF9ERUNMQVJBVElWRV9C SU5fUEFUSAotKyAgICBxbWxwbHVnaW5kdW1wUGF0aCA9IFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRI OwotKyNlbHNlCiAgICAgIHFtbHBsdWdpbmR1bXBQYXRoID0gUUxpYnJhcnlJbmZvOjpwYXRoKFFM aWJyYXJ5SW5mbzo6QmluYXJpZXNQYXRoKTsKLSsjZW5kaWYKKysgICAgY2hhciAqYnVpbGRfYmlu X3BhdGggPSBnZXRlbnYoIlFUX0JVSUxEX0JJTl9QQVRIIik7CisrICAgIGlmIChidWlsZF9iaW5f cGF0aCAmJiAqYnVpbGRfYmluX3BhdGgpCisrICAgICAgICBxbWxwbHVnaW5kdW1wUGF0aCA9IGJ1 aWxkX2Jpbl9wYXRoOwogIAogICNpZiBkZWZpbmVkKFFfT1NfV0lOKQogICAgICBxbWxwbHVnaW5k dW1wUGF0aCArPSBRTGF0aW4xU3RyaW5nKCIvcW1scGx1Z2luZHVtcC5leGUiKTsKKy0tLSBxdDYt ZGVjbGFyYXRpdmUtNi40LjIub3JpZy90ZXN0cy9hdXRvL3FtbC9kZWJ1Z2dlci9xcW1sZGVidWdq cy90c3RfcXFtbGRlYnVnanMuY3BwCisrKysgcXQ2LWRlY2xhcmF0aXZlLTYuNC4yL3Rlc3RzL2F1 dG8vcW1sL2RlYnVnZ2VyL3FxbWxkZWJ1Z2pzL3RzdF9xcW1sZGVidWdqcy5jcHAKK0BAIC0xNjMs MTEgKzE2MywxOCBAQCB2b2lkIHRzdF9RUW1sRGVidWdKUzo6aW5pdFRlc3RDYXNlKCkKKyAgICAg UVFtbERlYnVnVGVzdDo6aW5pdFRlc3RDYXNlKCk7CisgfQorICNpbmNsdWRlIDxpb3N0cmVhbT4K KytzdGF0aWMgUVN0cmluZyBxbWxTY2VuZVBhdGgoKQorK3sKKysgICAgY2hhciAqYnVpbGRfYmlu X3BhdGggPSBnZXRlbnYoIlFUX0JVSUxEX0JJTl9QQVRIIik7CisrICAgIGlmIChidWlsZF9iaW5f cGF0aCAmJiAqYnVpbGRfYmluX3BhdGgpCisrICAgICAgICByZXR1cm4gUVN0cmluZyhidWlsZF9i aW5fcGF0aCkgKyAiL3FtbHNjZW5lIjsKKysgICAgcmV0dXJuIFFMaWJyYXJ5SW5mbzo6cGF0aChR TGlicmFyeUluZm86OkJpbmFyaWVzUGF0aCkgKyAiL3FtbHNjZW5lIjsKKyt9CisgUVFtbERlYnVn VGVzdDo6Q29ubmVjdFJlc3VsdCB0c3RfUVFtbERlYnVnSlM6OmluaXQoYm9vbCBxbWxzY2VuZSwg Y29uc3QgUVN0cmluZyAmcW1sRmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBib29sIGJsb2NrTW9kZSwgYm9vbCByZXN0cmljdFNlcnZpY2Vz KQorIHsKKyAgICAgY29uc3QgUVN0cmluZyBleGVjdXRhYmxlID0gcW1sc2NlbmUKKy0gICAgICAg ICAgICA/IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUluZm86OkJpbmFyaWVzUGF0aCkgKyAi L3FtbHNjZW5lIgorKyAgICAgICAgICAgID8gcW1sU2NlbmVQYXRoKCkKKyAgICAgICAgICAgICA6 IGRlYnVnSnNTZXJ2ZXJQYXRoKCJxcW1sZGVidWdqcyIpOworICAgICByZXR1cm4gUVFtbERlYnVn VGVzdDo6Y29ubmVjdFRvKAorICAgICAgICAgICAgICAgICBleGVjdXRhYmxlLCByZXN0cmljdFNl cnZpY2VzID8gUVN0cmluZ0xpdGVyYWwoIlY4RGVidWdnZXIiKSA6IFFTdHJpbmcoKSwKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvcXQ2LWRlY2xhcmF0aXZlL3BhdGNoZXMvcW1sLWJyb2tlbi10ZXN0LnBh dGNoIGIvc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUvcGF0Y2hlcy9xbWwtYnJva2VuLXRlc3QucGF0 Y2gKaW5kZXggNGQ0NGU5MGI2NzhjLi5iMTY0MTJmY2Q1ZTUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv cXQ2LWRlY2xhcmF0aXZlL3BhdGNoZXMvcW1sLWJyb2tlbi10ZXN0LnBhdGNoCisrKyBiL3NyY3Br Z3MvcXQ2LWRlY2xhcmF0aXZlL3BhdGNoZXMvcW1sLWJyb2tlbi10ZXN0LnBhdGNoCkBAIC0xLDYg KzEsNiBAQAotLS0tIGEvdGVzdHMvYXV0by9xdWlja2NvbnRyb2xzMi9jb250cm9scy9kYXRhL3Rz dF9yYW5nZXNsaWRlci5xbWwKLSsrKyBiL3Rlc3RzL2F1dG8vcXVpY2tjb250cm9sczIvY29udHJv bHMvZGF0YS90c3RfcmFuZ2VzbGlkZXIucW1sCi1AQCAtNjQ5LDYxICs2NDksNiBAQCBUZXN0Q2Fz ZSB7CistLS0gcXQ2LWRlY2xhcmF0aXZlLTYuNC4yLm9yaWcvdGVzdHMvYXV0by9xdWlja2NvbnRy b2xzMi9jb250cm9scy9kYXRhL3RzdF9yYW5nZXNsaWRlci5xbWwKKysrKyBxdDYtZGVjbGFyYXRp dmUtNi40LjIvdGVzdHMvYXV0by9xdWlja2NvbnRyb2xzMi9jb250cm9scy9kYXRhL3RzdF9yYW5n ZXNsaWRlci5xbWwKK0BAIC02MDIsNjEgKzYwMiw2IEBAIFRlc3RDYXNlIHsKICAgICAgfQogIAog ICAgICBmdW5jdGlvbiB0ZXN0X292ZXJsYXBwaW5nSGFuZGxlcygpIHsKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ2LWRlY2xhcmF0aXZlL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUv dGVtcGxhdGUKaW5kZXggYzY5MTU5ZjNiNmUxLi5jMDhjMzJmMDE5NjMgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvcXQ2LWRlY2xhcmF0aXZlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LWRlY2xhcmF0 aXZlL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LWRl Y2xhcmF0aXZlJwogcGtnbmFtZT1xdDYtZGVjbGFyYXRpdmUKLXZlcnNpb249Ni40LjAKK3ZlcnNp b249Ni40LjIKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBob3N0bWFrZWRlcGVuZHM9 InF0Ni1iYXNlLWRldmVsIHBlcmwgcGtnLWNvbmZpZyB3YXlsYW5kLWRldmVsCkBAIC0xMSw3ICsx MSw3IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJH UEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCwgTEdQTC0zLjAtb25seSwgR1BM LTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3d3dy5xdC5pbyIKIGRpc3RmaWxlcz0i aHR0cHM6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9 LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdGRlY2xhcmF0aXZlLWV2ZXJ5d2hlcmUtc3JjLSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09MzQzNGU3MmZjY2ZhMGM5MjljMzI2NzkwNzIzZDA1YzE1 NWY1MDY3NzQ2YjFhYjA1Y2ZkN2E5YmE2MzJjNDM4MworY2hlY2tzdW09YTRiZGQ5ODNkZTRlOWNi Y2EwZjg1Yjc2N2RiZGQ4NTk4NzExNTU0ZTM3MGEwNmRhOGY1MDlkZWQ0NDMwZjViZAogcmVwbGFj ZXM9InF0Ni1xdWlja2NvbnRyb2xzMj49MCIKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVu CkBAIC0yNyw0NCArMjcsNDcgQEAgaWYgWyAiJFhCUFNfVEFSR0VUX0VORElBTiIgPSAiYmUiIF07 IHRoZW4KIAlicm9rZW49InNoYWRlciBjb21waWxhdGlvbiBmYWlscyIKIGZpCiAKLXByZV9jb25m aWd1cmUoKSB7Ci0JQ1hYRkxBR1MrPSIgJy1EUVRfREVDTEFSQVRJVkVfQklOX1BBVEg9XCIke3dy a3NyY30vYnVpbGQvbGliL3F0Ni9iaW5cIiciCi0JQ1hYRkxBR1MrPSIgJy1EUVRfREVDTEFSQVRJ VkVfTElCRVhFQ19QQVRIPVwiJHt3cmtzcmN9L2J1aWxkL2xpYi9xdDYvbGliZXhlY1wiJyIKLX0K LQotcHJlX2NoZWNrKCkgewotCWV4cG9ydCBRTUwyX0lNUE9SVF9QQVRIPSIkd3Jrc3JjL2J1aWxk L2xpYi9xdDYvcW1sIgotfQotCiBkb19jaGVjaygpIHsKIAljZCBidWlsZAorCWV4cG9ydCBRTUwy X0lNUE9SVF9QQVRIPSIkd3Jrc3JjL2J1aWxkL2xpYi9xdDYvcW1sIgorCWV4cG9ydCBRVF9CVUlM RF9CSU5fUEFUSD0ke3dya3NyY30vYnVpbGQvbGliL3F0Ni9iaW4KKwlleHBvcnQgUVRfQlVJTERf TElCRVhFQ19QQVRIPSR7d3Jrc3JjfS9idWlsZC9saWIvcXQ2L2xpYmV4ZWMKIAlsb2NhbCBicm9r ZW49InRzdF9xcW1sbG9jYWxlfHRleHR8dHN0X3FxdWlja3dpZGdldCIKIAkjIHJlcXVpcmVzIHF0 Ni1kZWNsYXJhdGl2ZSBpbnN0YWxsZWQKIAlicm9rZW4rPSJ8bW9kdWxlX2luY2x1ZGVzfGNtYWtl X3Rvb2xpbmdfaW1wb3J0c3xlbXB0eV9xbWxkaXIiCiAJYnJva2VuKz0ifHF0cXVpY2tjb21waWxl cnxxbWxxdWVyeSIKLQkjIENvdWxkIHdvcmsgaWYgUXQ2UXVpY2suc28uNiBjb3VsZCBiZSBmb3Vu ZCBieSBxbWwKLQlicm9rZW4rPSJ8dHN0X3FxbWxkZWJ1Z2pzfHRzdF9xcW1saW5zcGVjdG9yIgot CWJyb2tlbis9Inx0c3RfcXFtbHByb2ZpbGVyc2VydmljZXx0c3RfcXFtbGpzc2NvcGUiCi0JYnJv a2VuKz0ifHRzdF9xcW1scHJldmlld3x0c3RfcW1sbGludHx0c3RfcW1sZm9ybWF0IgorCSMgTmVl ZCB0byBpbnZlc3RpZ2F0ZQorCWJyb2tlbis9Inx0c3RfcXFtbGRlYnVnanN8dHN0X3FxbWxqc3Nj b3BlIgorCWJyb2tlbis9Inx0c3RfcXFtbHByZXZpZXd8dHN0X3FtbGxpbnQiCiAJIyBjYW4ndCBm aW5kIHRoZSBzb3VyY2UKIAlicm9rZW4rPSJ8dHN0X3FtbHRjX3Fwcm9jZXNzIgogCWJyb2tlbis9 Inx0c3RfcXF1aWNrZmlsZWRpYWxvZ2ltcGwiCiAJYnJva2VuKz0ifHRzdF9xcXVpY2tmb2xkZXJk aWFsb2dpbXBsIgogCWJyb2tlbis9Inx0c3RfcW1saW1wb3J0c2Nhbm5lcnx0c3RfcXFtbGV4dGVu c2lvbnBsdWdpbiIKKwkjIHVua25vd24KKwlicm9rZW4rPSJ8dHN0X3FtbGRvbWl0ZW18dHN0X2Rv bV9hbGwiCiAJY3Rlc3QgLUUgIigkYnJva2VuKSIKIH0KIAorcG9zdF9pbnN0YWxsKCkgeworCXJt IC1yZiAke0RFU1RESVJ9L3Vzci90ZXN0cworfQorCiBxdDYtZGVjbGFyYXRpdmUtdG9vbHNfcGFj a2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0i CiAJc2hvcnRfZGVzYys9IiAtIHRvb2xzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3Iv bGliL3F0Ni9wbHVnaW5zL3FtbHRvb2xpbmcKKwkJdm1vdmUgdXNyL2xpYi9xdDYvcGx1Z2lucy9x bWxsaW50CiAJCWZvciBiaW4gaW4gcW1sY2FjaGVnZW4gcW1saW1wb3J0c2Nhbm5lciBxbWx0eXBl cmVnaXN0cmFyOyBkbwogCQkJdm1vdmUgdXNyL2xpYi9xdDYvbGliZXhlYy8kYmluCiAJCWRvbmUK IAkJZm9yIGJpbiBpbiBxbWxmb3JtYXQgcW1sbGludCBxbWxwcmV2aWV3IHFtbHByb2ZpbGVyOyBk bwogCQkJdm1vdmUgdXNyL2xpYi9xdDYvYmluLyRiaW4KIAkJZG9uZQorCQlpZiBbICEgIiRDUk9T U19CVUlMRCIgXTsgdGhlbgorCQkJdm1vdmUgInVzci9saWIvcXQ2L2Jpbi9xcW1sZGVidWcqIgor CQlmaQogCX0KIH0KIApAQCAtODEsOSArODQsMTQgQEAgcXQ2LWRlY2xhcmF0aXZlLWRldmVsX3Bh Y2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKIAkJdm1vdmUgInVzci9saWIv bGliUXQ2UXVpY2tUZXN0LnNvLioiCiAJCXZtb3ZlIHVzci9saWIvcXQ2L3FtbC9RdFRlc3QKKwkJ dm1vdmUgdXNyL2xpYi9xdDYvcW1sL1F0L3Rlc3QKIAkJdm1vdmUgdXNyL2xpYi9xdDYvYmluL3Ft bHRlc3RydW5uZXIKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKKwkJdm1vdmUgInVzci9saWIvKi5h IgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKIAkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVz CisJCWlmIFsgISAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCQl2bW92ZSB1c3IvbGliL3F0Ni9i aW4vdGVzdGFwcAorCQlmaQogCX0KIH0KCkZyb20gOGVlMWY5MDAwY2QzZWFmNzYwZWI2MjBlMTFm MDYxMmY3NjQ5MDkwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1D ND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2Rh bmhxeEBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMTcgRmViIDIwMjMgMjI6NDY6NDggKzA3MDAKU3Vi amVjdDogW1BBVENIIDAzLzI3XSBxdDYtbG9jYXRpb246IHVwZGF0ZSB0byA2LjQuMi4KCi0tLQog c3JjcGtncy9xdDYtbG9jYXRpb24vcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoIHwgMTAgKysr KysrKysrKwogc3JjcGtncy9xdDYtbG9jYXRpb24vdGVtcGxhdGUgICAgICAgICAgICAgICAgICAg IHwgIDggKysrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1sb2NhdGlvbi9wYXRjaGVz L25vLWNtYWtlLXRlc3QucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1sb2NhdGlvbi9w YXRjaGVzL25vLWNtYWtlLXRlc3QucGF0Y2ggYi9zcmNwa2dzL3F0Ni1sb2NhdGlvbi9wYXRjaGVz L25vLWNtYWtlLXRlc3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi44NWQ1MTljZWY4OGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni1sb2NhdGlv bi9wYXRjaGVzL25vLWNtYWtlLXRlc3QucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIHF0Ni1s b2NhdGlvbi02LjQuMi5vcmlnL3Rlc3RzL2F1dG8vQ01ha2VMaXN0cy50eHQKKysrKyBxdDYtbG9j YXRpb24tNi40LjIvdGVzdHMvYXV0by9DTWFrZUxpc3RzLnR4dAorQEAgLTE0LDcgKzE0LDYgQEAg YWRkX3N1YmRpcmVjdG9yeShxZ2VvcG9zaXRpb25pbmZvKQorIGFkZF9zdWJkaXJlY3RvcnkocWdl b3NhdGVsbGl0ZWluZm8pCisgYWRkX3N1YmRpcmVjdG9yeShxZ2Vvc2F0ZWxsaXRlaW5mb3NvdXJj ZSkKKyBhZGRfc3ViZGlyZWN0b3J5KHFubWVhc2F0ZWxsaXRlaW5mb3NvdXJjZSkKKy1hZGRfc3Vi ZGlyZWN0b3J5KGNtYWtlKQorIGlmIChRVDZfSVNfU0hBUkVEX0xJQlNfQlVJTEQpCisgICAgIGFk ZF9zdWJkaXJlY3RvcnkocG9zaXRpb25wbHVnaW4pCisgICAgIGFkZF9zdWJkaXJlY3RvcnkocG9z aXRpb25wbHVnaW50ZXN0KQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtbG9jYXRpb24vdGVtcGxh dGUgYi9zcmNwa2dzL3F0Ni1sb2NhdGlvbi90ZW1wbGF0ZQppbmRleCAyY2RlZWMzODM4NDYuLjFk ZDQyOWIyMmM0NSAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtbG9jYXRpb24vdGVtcGxhdGUKKysr IGIvc3JjcGtncy9xdDYtbG9jYXRpb24vdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdxdDYtbG9jYXRpb24nCiBwa2duYW1lPXF0Ni1sb2NhdGlvbgotdmVyc2lv bj02LjQuMAordmVyc2lvbj02LjQuMgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGhv c3RtYWtlZGVwZW5kcz0icGVybCBxdDYtYmFzZS1kZXZlbCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwi CkBAIC0xMCwxMiArMTAsMTYgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2 PiIKIGxpY2Vuc2U9IihMR1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9u bHkpIEFORCBHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCIKIGhvbWVwYWdl PSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmlj aWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0cG9z aXRpb25pbmctZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0yZDFi NWM1ZjZkYWIwMTA4Mzk2ZmVhMzdjYTI4ZWJmYWQyMWE0OGZhMTFkOGM1ZDE3NjIyZDZmNmU1ZmJh ODM0CitjaGVja3N1bT03ZjAxYmFmNWJhODc3YWY1YjIxMWM5ZDMyZTYwNzUwMTlmMDBkOWQ3YTJi YTgxYmIwZjEwY2E3NTllOWFlZjgyCiAKIHByZV9jaGVjaygpIHsKIAlleHBvcnQgUU1MMl9JTVBP UlRfUEFUSD0iJHdya3NyYy9idWlsZC9saWIvcXQ2L3FtbCIKIH0KIAorcG9zdF9pbnN0YWxsKCkg eworCXJtIC1yZiAke0RFU1RESVJ9L3Vzci90ZXN0cworfQorCiBxdDYtbG9jYXRpb24tZGV2ZWxf cGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0gcXQ2LWJhc2UtZGV2ZWw+PSR7dmVyc2lvbn1fMSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxv cG1lbnQgZmlsZXMiCgpGcm9tIDVjZTViMDAyOWRkOWY2ZWYzNmU2NGNjZTFjYzU5M2NmYmUzNzgy YTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEw bj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwu Y29tPgpEYXRlOiBGcmksIDE3IEZlYiAyMDIzIDIyOjQ2OjU2ICswNzAwClN1YmplY3Q6IFtQQVRD SCAwNC8yN10gcXQ2LW11bHRpbWVkaWE6IHVwZGF0ZSB0byA2LjQuMi4KCi0tLQogc3JjcGtncy9x dDYtbXVsdGltZWRpYS90ZW1wbGF0ZSB8IDExICsrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwg OCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2 LW11bHRpbWVkaWEvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3RlbXBsYXRlCmlu ZGV4IGY2ZDM3YmU5Y2E1Zi4uOGI1ZmI5YTM5OGQwIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1t dWx0aW1lZGlhL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LW11bHRpbWVkaWEvdGVtcGxhdGUK QEAgLTEsMTkgKzEsMTkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1tdWx0aW1lZGlhJwog cGtnbmFtZT1xdDYtbXVsdGltZWRpYQotdmVyc2lvbj02LjQuMAordmVyc2lvbj02LjQuMgogcmV2 aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFFUX0ZFQVRVUkVf Z3N0cmVhbWVyPU9OIgogaG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZl bCBwa2ctY29uZmlnCiAgcXQ2LXNoYWRlcnRvb2xzLWRldmVsIgotbWFrZWRlcGVuZHM9InF0Ni1k ZWNsYXJhdGl2ZS1kZXZlbAorbWFrZWRlcGVuZHM9InF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCBwdWxz ZWF1ZGlvLWRldmVsIGZmbXBlZy1kZXZlbCBsaWJ2YS1kZXZlbAogIHF0Ni1zaGFkZXJ0b29scy1k ZXZlbCBsaWJnbGliLWRldmVsIGdzdC1wbHVnaW5zLWJhc2UxLWRldmVsIgogc2hvcnRfZGVzYz0i Q3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIG11bHRpbWVkaWEi CiBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iKExHUEwt My4wLW9ubHkgT1IgR1BMLTIuMC1vbmx5IE9SIEdQTC0zLjAtb25seSkgQU5EIEdQTC0zLjAtb25s eSB3aXRoIFF0LUdQTC1leGNlcHRpb24tMS4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgog ZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2 ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRtdWx0aW1lZGlhLWV2ZXJ5d2hlcmUt c3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTgyZThlODQ3Y2FlMmE5NTFhMTFkYjA1 YjZkMTBhMjJiMjFlM2ExZDcyZTA2YTc3ODFjY2U0YmQxOTdlNzk2ZgorY2hlY2tzdW09N2YyYjcw ZGVlYWRhOTExYzhlNjYwZTI4MDEyODY2NTdmMjk3YTVkMWQ1NDNkMWY2YmZhODU2ZjI4OTcyYzc3 NgogCiBpZiBbICIkWEJQU19NQUNISU5FIiA9ICJpNjg2IiBdOyB0aGVuCiAJQ1hYRkxBR1M9Ii1E UEZGRlRfU0lNRF9ESVNBQkxFPTEiCkBAIC0zMCw2ICszMCwxMCBAQCBkb19jaGVjaygpIHsKIAlj dGVzdCAtRSAiKCRicm9rZW4pIgogfQogCitwb3N0X2luc3RhbGwoKSB7CisJcm0gLXJmICR7REVT VERJUn0vdXNyL3Rlc3RzCit9CisKIHF0Ni1tdWx0aW1lZGlhLWRldmVsX3BhY2thZ2UoKSB7CiAJ ZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IHF0Ni1iYXNlLWRl dmVsPj0ke3ZlcnNpb259XzEiCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgpA QCAtNDIsNiArNDYsNyBAQCBxdDYtbXVsdGltZWRpYS1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92 ZSB1c3IvbGliL3F0Ni9xbWwvUXRNdWx0aW1lZGlhL3BsdWdpbnMucW1sdHlwZXMKIAkJdm1vdmUg dXNyL2xpYi9xdDYvcW1sL1F0TXVsdGltZWRpYS9xbWxkaXIKIAkJdm1vdmUgInVzci9saWIvKi5z byIKKwkJdm1vdmUgInVzci9saWIvKi5hIgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKIAl9CiB9 CgpGcm9tIGZjZjM2ODNkYTk4MzQ2MGY3N2RlNDliNjYxYmM2ZDgwMTU3Y2UwYzggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJB PUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBG cmksIDE3IEZlYiAyMDIzIDIyOjQ3OjA3ICswNzAwClN1YmplY3Q6IFtQQVRDSCAwNS8yN10gcXQ2 LWxvdHRpZTogdXBkYXRlIHRvIDYuNC4yLgoKLS0tCiBzcmNwa2dzL3F0Ni1sb3R0aWUvdGVtcGxh dGUgfCA4ICsrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWxvdHRpZS90ZW1wbGF0ZSBiL3NyY3Br Z3MvcXQ2LWxvdHRpZS90ZW1wbGF0ZQppbmRleCBhNTA1NjgzM2FmZTkuLmUzYjMzYWM4ZDhhYiAx MDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtbG90dGllL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2 LWxvdHRpZS90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0 Ni1sb3R0aWUnCiBwa2duYW1lPXF0Ni1sb3R0aWUKLXZlcnNpb249Ni40LjAKK3ZlcnNpb249Ni40 LjIKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBob3N0bWFrZWRlcGVuZHM9InBlcmwg cXQ2LWJhc2UtZGV2ZWwiCkBAIC0xMCw3ICsxMCw3IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpv aG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6 Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxl YXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdGxvdHRpZS1ldmVy eXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTFjZmNiZmNhOWU1YzY4ZTEz MTdlZGYyMGNhYTBlYWQ0ZTljOGYxZjRmMWRlMTlhOTVhOGMyMzVmNDU3NmM2YjQKK2NoZWNrc3Vt PWFjY2M4ODY5YzcyMDk1Y2U1YjM3M2EzMGMzNjJkMjEyMzUxNDVhNzlmOWUyNzA0ODA3MTJmODYx ZDFkZTFjNTYKIAogaWYgWyAiJFhCUFNfQ0hFQ0tfUEtHUyIgXTsgdGhlbgogCWNvbmZpZ3VyZV9h cmdzPSItRFFUX0JVSUxEX1RFU1RTPU9OIgpAQCAtMjAsNiArMjAsMTAgQEAgcHJlX2NoZWNrKCkg ewogCWV4cG9ydCBRTUwyX0lNUE9SVF9QQVRIPSIkd3Jrc3JjL2J1aWxkL2xpYi9xdDYvcW1sIgog fQogCitwb3N0X2luc3RhbGwoKSB7CisJcm0gLXJmICR7REVTVERJUn0vdXNyL3Rlc3RzCit9CisK IHF0Ni1sb3R0aWUtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVz IgoKRnJvbSBmZWU1MjNkMmJhNTkyMDMzMTU4ZjAxYzE5Y2ZjYTEzZTZjN2NlZWI1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1C QT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTog RnJpLCAxNyBGZWIgMjAyMyAyMjo1ODo1NyArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMjddIHF0 Ni1xdDVjb21wYXQ6IHVwZGF0ZSB0byA2LjQuMi4KCi0tLQogc3JjcGtncy9xdDYtcXQ1Y29tcGF0 L3RlbXBsYXRlIHwgMTAgKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1xdDVjb21wYXQvdGVt cGxhdGUgYi9zcmNwa2dzL3F0Ni1xdDVjb21wYXQvdGVtcGxhdGUKaW5kZXggODJjNzM1YTk4OTNl Li5jYzAyNDFmYzU2NWYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LXF0NWNvbXBhdC90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3F0Ni1xdDVjb21wYXQvdGVtcGxhdGUKQEAgLTEsOCArMSwxMCBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXF0NWNvbXBhdCcKIHBrZ25hbWU9cXQ2LXF0NWNvbXBh dAotdmVyc2lvbj02LjQuMAordmVyc2lvbj02LjQuMgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 Y21ha2UKK2NvbmZpZ3VyZV9hcmdzPSItRFFUX0ZFQVRVUkVfdGV4dGNvZGVjPU9OIC1EUVRfRkVB VFVSRV9jb2RlY3M9T04KKyAtRFFUX0ZFQVRVUkVfaWNvbnY9T04gLURRVF9GRUFUVVJFX2JpZ19j b2RlY3M9T04iCiBob3N0bWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIHF0Ni1kZWNsYXJhdGl2 ZS1kZXZlbCBwZXJsIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwgcXQ2 LWRlY2xhcmF0aXZlLWRldmVsIHF0Ni1zaGFkZXJ0b29scy1kZXZlbCIKIHNob3J0X2Rlc2M9IkNy b3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBRdDUgQ29tcGF0aWJp bHR5IENvbXBvbmVudCIKQEAgLTEwLDEyICsxMiwxNiBAQCBtYWludGFpbmVyPSJKb2huIDxtZUBq b2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMuMC1vbmx5IHdpdGggUXQtR1BMLWV4Y2Vw dGlvbi0xLjAsIExHUEwtMy4wLW9ubHksIEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9y ZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdDVjb21wYXQt ZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03MzQ3NWQwODM3Zjc4 MjQ2ZDUwOTE5OWYyMTFhMzVjNzFmYzM2Y2NjZjY0YjNkZTI1OGViYzYzODcxOTRhNGMwCitjaGVj a3N1bT1mNTFmNTA1YzhlOTg1YjUxYjdkNzMzZTI3ZDc4MmM2ZmNlMTgxYmVlZjUzMzY0YWNiMDM2 OGNjODkyYzRiNzkyCiAKIGlmIFsgIiRYQlBTX0NIRUNLX1BLR1MiIF07IHRoZW4KIAljb25maWd1 cmVfYXJncz0iLURRVF9CVUlMRF9URVNUUz1PTiIKIGZpCiAKK3Bvc3RfaW5zdGFsbCgpIHsKKwly bSAtcmYgJHtERVNURElSfS91c3IvdGVzdHMKK30KKwogcXQ2LXF0NWNvbXBhdC1kZXZlbF9wYWNr YWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBx dDYtYmFzZS1kZXZlbCIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCgpGcm9t IDA0N2I3YTFmNDFhNzY5N2UzNmU3NmFlMDYzNzNiMjExNmNmNGZjMTkgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0y MEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBTYXQsIDE4 IEZlYiAyMDIzIDAwOjAwOjIwICswNzAwClN1YmplY3Q6IFtQQVRDSCAwNy8yN10gcXQ2LXRvb2xz OiB1cGRhdGUgdG8gNi40LjIuCgotLS0KIHNyY3BrZ3MvcXQ2LXRvb2xzL3BhdGNoZXMvbm8tbGl0 ZWh0bWwtdGVzdC5wYXRjaCB8IDExICsrKysrKysrKysrCiBzcmNwa2dzL3F0Ni10b29scy9wYXRj aGVzL3Fkb2MtbG9jYXRpb24ucGF0Y2ggICAgfCAxNCArKysrKysrKysrKysrKwogc3JjcGtncy9x dDYtdG9vbHMvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgIHwgMTUgKysrKysrKysrLS0t LS0tCiAzIGZpbGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtdG9vbHMvcGF0Y2hlcy9uby1saXRlaHRtbC10 ZXN0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtdG9vbHMvcGF0Y2hlcy9x ZG9jLWxvY2F0aW9uLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtdG9vbHMvcGF0Y2hl cy9uby1saXRlaHRtbC10ZXN0LnBhdGNoIGIvc3JjcGtncy9xdDYtdG9vbHMvcGF0Y2hlcy9uby1s aXRlaHRtbC10ZXN0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uMmNiZmFjNWRlODJkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtdG9vbHMvcGF0 Y2hlcy9uby1saXRlaHRtbC10ZXN0LnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBxdDYtdG9v bHMtNi40LjIub3JpZy9zcmMvYXNzaXN0YW50L3FsaXRlaHRtbC9zcmMvM3JkcGFydHkvbGl0ZWh0 bWwvQ01ha2VMaXN0cy50eHQKKysrKyBxdDYtdG9vbHMtNi40LjIvc3JjL2Fzc2lzdGFudC9xbGl0 ZWh0bWwvc3JjLzNyZHBhcnR5L2xpdGVodG1sL0NNYWtlTGlzdHMudHh0CitAQCAtMTkxLDcgKzE5 MSw3IEBAIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygke0NNQUtFX0NVUlIKKyAKKyAjIFRl c3RzCisgCistaWYgKEJVSUxEX1RFU1RJTkcpCisraWYgKEZBTFNFKQorICAgICBpbmNsdWRlKEZl dGNoQ29udGVudCkKKyAgICAgRmV0Y2hDb250ZW50X0RlY2xhcmUoCisgICAgICAgZ29vZ2xldGVz dApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtdG9vbHMvcGF0Y2hlcy9xZG9jLWxvY2F0aW9uLnBh dGNoIGIvc3JjcGtncy9xdDYtdG9vbHMvcGF0Y2hlcy9xZG9jLWxvY2F0aW9uLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNmQ3YzBlYTM0NTM3Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9xdDYtdG9vbHMvcGF0Y2hlcy9xZG9jLWxvY2F0aW9uLnBhdGNo CkBAIC0wLDAgKzEsMTQgQEAKKy0tLSBxdDYtdG9vbHMtNi40LjIub3JpZy90ZXN0cy9hdXRvL3Fk b2MvZ2VuZXJhdGVkb3V0cHV0L3RzdF9nZW5lcmF0ZWRvdXRwdXQuY3BwCisrKysgcXQ2LXRvb2xz LTYuNC4yL3Rlc3RzL2F1dG8vcWRvYy9nZW5lcmF0ZWRvdXRwdXQvdHN0X2dlbmVyYXRlZG91dHB1 dC5jcHAKK0BAIC03NCw3ICs3NCwxMCBAQCBwcml2YXRlOgorIHZvaWQgdHN0X2dlbmVyYXRlZE91 dHB1dDo6aW5pdFRlc3RDYXNlKCkKKyB7CisgICAgIC8vIEJ1aWxkIHRoZSBwYXRoIHRvIHRoZSBR RG9jIGJpbmFyeSB0aGUgc2FtZSB3YXkgbW9jIHRlc3RzIGRvIGZvciBtb2MuCistICAgIGNvbnN0 IGF1dG8gYmlucGF0aCA9IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUluZm86OkJpbmFyaWVz UGF0aCk7CisrICAgIGF1dG8gYmlucGF0aCA9IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUlu Zm86OkJpbmFyaWVzUGF0aCk7CisrICAgIGNoYXIgKmJ1aWxkX2JpbnBhdGggPSBnZXRlbnYoIlFU X0JVSUxEX0JJTl9QQVRIIik7CisrICAgIGlmIChidWlsZF9iaW5wYXRoICYmICpidWlsZF9iaW5w YXRoKQorKyAgICAJICAgIGJpbnBhdGggPSBidWlsZF9iaW5wYXRoOworICAgICBjb25zdCBhdXRv IGV4dGVuc2lvbiA9IFFTeXNJbmZvOjpwcm9kdWN0VHlwZSgpID09ICJ3aW5kb3dzIiA/ICIuZXhl IiA6ICIiOworICAgICBtX3Fkb2MgPSBiaW5wYXRoICsgUUxhdGluMVN0cmluZygiL3Fkb2MiKSAr IGV4dGVuc2lvbjsKKyAgICAgbV9leHBlY3RlZERpci5zZXRQYXRoKFFGSU5EVEVTVERBVEEoImV4 cGVjdGVkX291dHB1dCIpKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXRvb2xzL3RlbXBsYXRl IGIvc3JjcGtncy9xdDYtdG9vbHMvdGVtcGxhdGUKaW5kZXggNzU1ZDJlOTZlYTY0Li4zMDQ3OTky NTBjM2MgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LXRvb2xzL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvcXQ2LXRvb2xzL3RlbXBsYXRlCkBAIC0xLDE5ICsxLDIxIEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdxdDYtdG9vbHMnCiBwa2duYW1lPXF0Ni10b29scwotdmVyc2lvbj02LjQuMAordmVyc2lv bj02LjQuMgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSIt REVYVEVSTkFMX0dVTUJPPU9OIC1ETElURUhUTUxfVVRGOD1PTiAtRFVTRV9JQ1U9T04KLSAtRFFU X0JVSUxEX1NIQVJFRF9MSUJTPU9OIC1EUVRfRkVBVFVSRV9hc3Npc3RhbnQ9T04iCi1ob3N0bWFr ZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIHBlcmwgcXQ2LXBsdWdpbi1zcWxpdGUiCi1tYWtlZGVw ZW5kcz0icXQ2LWJhc2UtZGV2ZWwgbGliYXRvbWljLWRldmVsIHF0Ni1wbHVnaW4tc3FsaXRlCi0g Z3VtYm8tcGFyc2VyLWRldmVsIGljdS1kZXZlbCIKKyAtRFFUX0JVSUxEX1NIQVJFRF9MSUJTPU9O IC1EUVRfRkVBVFVSRV9hc3Npc3RhbnQ9T04KKyAtRFFUX0ZFQVRVUkVfcGl4ZWx0b29sPU9OCisg LURRVF9GRUFUVVJFX2Rpc3RhbmNlZmllbGRnZW5lcmF0b3I9T04iCitob3N0bWFrZWRlcGVuZHM9 InF0Ni1iYXNlLWRldmVsIHBlcmwgcXQ2LXBsdWdpbi1zcWxpdGUgY2xhbmcgbGx2bSBjbGFuZy10 b29scy1leHRyYSIKK21ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBsaWJhdG9taWMtZGV2ZWwg cXQ2LXBsdWdpbi1zcWxpdGUgcXQ2LWRlY2xhcmF0aXZlLWRldmVsCisgZ3VtYm8tcGFyc2VyLWRl dmVsIGljdS1kZXZlbCBsbHZtIGNsYW5nLXRvb2xzLWV4dHJhIgogc2hvcnRfZGVzYz0iQ3Jvc3Mt cGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAoUVQ2KSAtIHF0Ni10b29scyBj b21wb25lbnQiCiBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5z ZT0iR1BMLTMuMC1vbmx5IHdpdGggUXQtR1BMLWV4Y2VwdGlvbi0xLjAsIExHUEwtMy4wLW9ubHks IEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9 Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9 LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHRvb2xzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09OTdmM2Q1Zjg4YzQ1OGJlN2E4ZjdiN2IwOGVmYzA2YzRlYmFkMzlj YTUxNjY5NDc2YjE4YmY5ZTRjMTFhZmJhMgorY2hlY2tzdW09YTMxMzg3OTE2MTg0ZTRhNWVmNTIy ZDNlYTg0MWU4ZTkzMWNjMGY4OGJlMDgyNGE3YTM1NGE1NzJkNTgyNmM2OAogCiBpZiBbICIkQ1JP U1NfQlVJTEQiIF07IHRoZW4KIAljb25maWd1cmVfYXJncys9IiAtRFFUX0ZPUkNFX0JVSUxEX1RP T0xTPVRSVUUiCkBAIC0zMSw2ICszMyw3IEBAIHBvc3RfYnVpbGQoKSB7CiAKIGRvX2NoZWNrKCkg ewogCWNkIGJ1aWxkCisJZXhwb3J0IFFUX0JVSUxEX0JJTl9QQVRIPSR3cmtzcmMvYnVpbGQvbGli L3F0Ni9iaW4KIAkjIFNvbWUgb2YgdGhlc2UgdGVzdHMgZXhwZWN0IHRoYXQgcXQ2LXRvb2xzIGlz IGFscmVhZHkKIAkjIGluc3RhbGxlZCBpbiAvdXNyL2xpYi9xdDYKIAljdGVzdCAtRSAndHN0Xyhs cmVsZWFzZXxsY29udmVydHxsdXBkYXRlfHF0YXR0cmlidXRpb25zc2Nhbm5lcnxxaGVscGNvbnRl bnRtb2RlbHxxaGVscGVuZ2luZWNvcmV8cWhlbHBnZW5lcmF0b3J8cWhlbHBpbmRleG1vZGUpJwoK RnJvbSA2NWMwNmFhMjVhMTM1ODEzNzc5MDI4MjRjYjk3NTEzMTJhODY0MTU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogU2F0 LCAxOCBGZWIgMjAyMyAwOTozNzo1OSArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMjddIHF0Ni0z ZDogdXBkYXRlIHRvIDYuNC4yLgoKLS0tCiBzcmNwa2dzL3F0Ni0zZC90ZW1wbGF0ZSB8IDQgKyst LQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni0zZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LTNkL3RlbXBsYXRl CmluZGV4IGZlNmM2MjE2ZjQwZS4uYWI5ODk2N2I3ZWQ1IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0 Ni0zZC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni0zZC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni0zZCcKIHBrZ25hbWU9cXQ2LTNkCi12ZXJzaW9u PTYuNC4wCit2ZXJzaW9uPTYuNC4yCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQogaG9z dG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKQEAgLTExLDcgKzExLDcg QEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IihMR1BM LTMuMC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9ubHkpIEFORCBHUEwtMy4wLW9u bHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIK IGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7 dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0M2QtZXZlcnl3aGVyZS1zcmMtJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT02YWJkYjViNDIxZjRjOTBmZWM3NDkyZTUxNTcyY2Fh YjZiNDk3MjMzNjA4YTdlZTQzOGM1NDdmNThjZWFiZGViCitjaGVja3N1bT00NTZjMjRjM2QzODQw MjczZTcyMGI3OWZlOGZlZDQ1MmZhODg5YjU0Y2JhZTZiNDVkYjFkMWRlZDRkYTM3MzQxCiAKIHF0 Ni0zZC1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufSIKCkZyb20gMmMyM2QwNzJjODg0MzQ0NjNmZDIxYmI1Y2Q1MTJlYjNmMjRm ZWMxMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9 QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFp bC5jb20+CkRhdGU6IFNhdCwgMTggRmViIDIwMjMgMDk6Mzg6MTcgKzA3MDAKU3ViamVjdDogW1BB VENIIDA5LzI3XSBxdDYtd2ViY2hhbm5lbDogdXBkYXRlIHRvIDYuNC4yLgoKLS0tCiBzcmNwa2dz L3F0Ni13ZWJjaGFubmVsL3RlbXBsYXRlIHwgOCArKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDYg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13 ZWJjaGFubmVsL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtd2ViY2hhbm5lbC90ZW1wbGF0ZQppbmRl eCBhZGQ5M2JhNDgyNmMuLjc3NGE5NmEwNWNkNyAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtd2Vi Y2hhbm5lbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3RlbXBsYXRlCkBA IC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXdlYmNoYW5uZWwnCiBwa2du YW1lPXF0Ni13ZWJjaGFubmVsCi12ZXJzaW9uPTYuNC4wCit2ZXJzaW9uPTYuNC4yCiByZXZpc2lv bj0xCiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1iYXNlLWRl dmVsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKQEAgLTEwLDEyICsxMCwxNiBAQCBtYWludGFpbmVy PSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iKExHUEwtMy4wLW9ubHkgT1Ig R1BMLTIuMC1vbmx5IE9SIEdQTC0zLjAtb25seSkgQU5EIEdQTC0zLjAtb25seSB3aXRoIFF0LUdQ TC1leGNlcHRpb24tMS4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVzPSJo dHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8k e3ZlcnNpb259L3N1Ym1vZHVsZXMvcXR3ZWJjaGFubmVsLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09NTI4ZjZkODM3Y2M1ODg1NGRlYWRkYWZiYjc2ZWIyMzdmNGRi ZDY4OGE0NDA3YjQzOGFiOWMwZGIxNjEzNjk1YQorY2hlY2tzdW09MDY2NTdiMmIyNTA5ZjI2Yzcz M2I3YzQwZGEwZGJiODU3MWEyMTViOTdmOTk2ODVhNmZjM2JjNTFkY2JlYmQ4NwogCiBwcmVfY2hl Y2soKSB7CiAJZXhwb3J0IFFNTDJfSU1QT1JUX1BBVEg9IiR3cmtzcmMvYnVpbGQvbGliL3F0Ni9x bWwiCiB9CiAKK3Bvc3RfaW5zdGFsbCgpIHsKKwlybSAtcmYgJHtERVNURElSfS91c3IvdGVzdHMK K30KKwogcXQ2LXdlYmNoYW5uZWwtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJj ZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcXQ2LWJhc2UtZGV2ZWw+PSR7dmVyc2lvbn1f MQogCSBxdDYtd2Vic29ja2V0cy1kZXZlbD49JHt2ZXJzaW9ufV8xIgoKRnJvbSA1OWRkOTZjM2M3 NmQ4NTYxYmFlM2Q5MGMzYzlhZjIzMTM5ZWFiMjcwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9 MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAxOCBGZWIgMjAyMyAw OTozODoyMiArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMjddIHF0Ni13ZWJzb2NrZXRzOiB1cGRh dGUgdG8gNi40LjIuCgotLS0KIHNyY3BrZ3MvcXQ2LXdlYnNvY2tldHMvdGVtcGxhdGUgfCA4ICsr KysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYnNvY2tldHMvdGVtcGxhdGUgYi9zcmNwa2dzL3F0 Ni13ZWJzb2NrZXRzL3RlbXBsYXRlCmluZGV4IGYzNTBiMzlkMTRiMS4uMWIwMGVkNGIwYWE5IDEw MDY0NAotLS0gYS9zcmNwa2dzL3F0Ni13ZWJzb2NrZXRzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv cXQ2LXdlYnNvY2tldHMvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdxdDYtd2Vic29ja2V0cycKIHBrZ25hbWU9cXQ2LXdlYnNvY2tldHMKLXZlcnNpb249Ni40 LjAKK3ZlcnNpb249Ni40LjIKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBob3N0bWFr ZWRlcGVuZHM9InBlcmwgcXQ2LWJhc2UtZGV2ZWwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIgpAQCAt MTIsMTIgKzEyLDE2IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBs aWNlbnNlPSIoTEdQTC0zLjAtb25seSBPUiBHUEwtMi4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5KSBB TkQgR1BMLTMuMC1vbmx5IHdpdGggUXQtR1BMLWV4Y2VwdGlvbi0xLjAiCiBob21lcGFnZT0iaHR0 cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9y ZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHdlYnNvY2tl dHMtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mZjNjNjYyOWNk NjUzNzI2NjEyM2M0NDE3MDlhY2RkNjdmMjMxZmYyYTA3MjE2ZmM4NDg0NDgyNTViZWM5YmNhCitj aGVja3N1bT03MWNmODU3NTgyZGIyMGMyMDEwM2E1NmY2N2Q1MWMzM2M0YWIwYjcyNDQ4MjA5Yzk2 M2QzYjQ0OWE1MjdjNjI2CiAKIHByZV9jaGVjaygpIHsKIAlleHBvcnQgUU1MMl9JTVBPUlRfUEFU SD0iJHdya3NyYy9idWlsZC9saWIvcXQ2L3FtbCIKIH0KIAorcG9zdF9pbnN0YWxsKCkgeworCXJt IC1yZiAke0RFU1RESVJ9L3Vzci90ZXN0cworfQorCiBxdDYtd2Vic29ja2V0cy1kZXZlbF9wYWNr YWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBx dDYtYmFzZS1kZXZlbD49JHt2ZXJzaW9ufV8xIgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVu dCBmaWxlcyIKCkZyb20gMTU0OTMzMGQwMzQ5ZmVlNzdjNTMwZGZlMTUwMWZjZTAwZThlMDk1MSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIw VHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMTggRmViIDIwMjMgMDk6Mzg6MzEgKzA3MDAKU3ViamVjdDogW1BBVENIIDEx LzI3XSBxdDYtbmV0d29ya2F1dGg6IHVwZGF0ZSB0byA2LjQuMi4KCi0tLQogc3JjcGtncy9xdDYt bmV0d29ya2F1dGgvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtbmV0d29ya2F1 dGgvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1uZXR3b3JrYXV0aC90ZW1wbGF0ZQppbmRleCA1MmNk YmZmOTZjZWUuLmVjZDhlODkxYjc0NyAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtbmV0d29ya2F1 dGgvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtbmV0d29ya2F1dGgvdGVtcGxhdGUKQEAgLTEs NiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtbmV0d29ya2F1dGgnCiBwa2duYW1l PXF0Ni1uZXR3b3JrYXV0aAotdmVyc2lvbj02LjQuMAordmVyc2lvbj02LjQuMgogcmV2aXNpb249 MQogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYtYmFzZS1kZXZl bCIKQEAgLTEwLDcgKzEwLDcgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2 PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb25seSIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRp c3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVy c2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0bmV0d29ya2F1dGgtZXZlcnl3aGVyZS1z cmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT02MDliNzdmOGZkNzdmMWNjMWYwZmFmYTdh Y2RiMGNhNmJiOGE4YWVhNmZlZjQyY2JiNzZmODYzNmNlMGYxN2IzCitjaGVja3N1bT1kZWFiMTdi ZDk1N2QwYTQ5M2JkNzc1N2JjNzEyNzA5MTgxNDc1OTZmYjk2NjFhODg2YjNmMWQzMDUwNDdjMmVl CiAKIGlmIFsgIiRYQlBTX0NIRUNLX1BLR1MiIF07IHRoZW4KIAljb25maWd1cmVfYXJncz0iLURR VF9CVUlMRF9URVNUUz1PTiIKCkZyb20gNWE3ZmFlZGRhZGNmMjQxMzg2MjIzYmRlZWU1ZjE0NzFi NmU3ODIyNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89 QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBn bWFpbC5jb20+CkRhdGU6IFNhdCwgMTggRmViIDIwMjMgMDk6Mzg6NDMgKzA3MDAKU3ViamVjdDog W1BBVENIIDEyLzI3XSBxdDYtc3ZnOiB1cGRhdGUgdG8gNi40LjIuCgotLS0KIHNyY3BrZ3MvcXQ2 LXN2Zy90ZW1wbGF0ZSB8IDggKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtc3ZnL3RlbXBsYXRl IGIvc3JjcGtncy9xdDYtc3ZnL3RlbXBsYXRlCmluZGV4IDFlODFhNWYyMDk0OC4uODk4OTE3YTk3 NDJlIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1zdmcvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9x dDYtc3ZnL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2 LXN2ZycKIHBrZ25hbWU9cXQ2LXN2ZwotdmVyc2lvbj02LjQuMAordmVyc2lvbj02LjQuMgogcmV2 aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2 ZWwgcGVybCIKQEAgLTEwLDcgKzEwLDcgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0 b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb25seSB3aXRoIFF0LUdQTC1leGNlcHRpb24tMS4w LCBHUEwtMi4wLW9yLWxhdGVyLCBMR1BMLTMuMC1vbmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQu aW8vIgogZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMv cXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRzdmctZXZlcnl3aGVyZS1z cmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0wM2ZkYWU5NDM3ZDA3NGRjZmEzODdkYzFm MmM2ZTdlMTRmZWEwZjk4OWJmN2UxYWEyNjVmZDM1ZmZjMmM1YjI1CitjaGVja3N1bT1iNzQ2YWYz Y2IxNzkzNjIxZDhlZDdlYWUzOGQ5YWQ1YTE1NTQxZGMyNzQyMDMxMDY5ZjJhZTNmZTg3NTkwMzE0 CiAKIGlmIFsgIiRYQlBTX0NIRUNLX1BLR1MiIF07IHRoZW4KIAljb25maWd1cmVfYXJncz0iLURR VF9CVUlMRF9URVNUUz1PTiIKQEAgLTIxLDYgKzIxLDEwIEBAIGRvX2NoZWNrKCkgewogCWN0ZXN0 IC1FICd0c3RfcWljb25fc3ZnJwogfQogCitwb3N0X2luc3RhbGwoKSB7CisJcm0gLXJmICR7REVT VERJUn0vdXNyL3Rlc3RzCit9CisKIHF0Ni1zdmctZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRz PSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcXQ2LWJhc2UtZGV2ZWwiCiAJ c2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgoKRnJvbSBlM2ZhZTE1MzY5YzE5MWQ3 YmM2NTU2ZDA4YTgzYjZjOThmYTBhZThhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9 P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5o Pz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAxOCBGZWIgMjAyMyAwOTozODo0 OCArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMjddIHF0Ni13YXlsYW5kOiB1cGRhdGUgdG8gNi40 LjIuCgotLS0KIHNyY3BrZ3MvcXQ2LXdheWxhbmQvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9xdDYtd2F5bGFuZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXdheWxhbmQvdGVtcGxhdGUK aW5kZXggNWMwNDQ5NDcyNDg0Li5kODk4MGQyMDhhMGYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2 LXdheWxhbmQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtd2F5bGFuZC90ZW1wbGF0ZQpAQCAt MSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni13YXlsYW5kJwogcGtnbmFtZT1x dDYtd2F5bGFuZAotdmVyc2lvbj02LjQuMAordmVyc2lvbj02LjQuMgogcmV2aXNpb249MQogYnVp bGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwgcGVybCBwa2ct Y29uZmlnIHdheWxhbmQtZGV2ZWwKQEAgLTE1LDcgKzE1LDcgQEAgbWFpbnRhaW5lcj0iSm9obiA8 bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb25seSB3aXRoIFF0LUdQTC1l eGNlcHRpb24tMS4wLCBMR1BMLTMuMC1vbmx5LCBHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vd3d3LnF0LmlvIgogZGlzdGZpbGVzPSJodHRwczovL2Rvd25sb2FkLnF0LmlvL29m ZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0 d2F5bGFuZC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWYwOGJh OGUxNGZiZWMzNGQ1NzMzMmFkODk3YzVhOTE1MDQ1M2VkMDdhNjExYWJiMThjODljNmNjNWU1YjYy ZmMKK2NoZWNrc3VtPTI0Y2YxYTBhZjc1MWFiMTYzN2I0ODE1ZDVjNWYzNzA0NDgzZDVmYTdiZWRi ZDM1MTllNmZjMDIwZDhiZTEzNWYKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJY29u ZmlndXJlX2FyZ3M9Ii1EUVRfRk9SQ0VfQlVJTERfVE9PTFM9dHJ1ZSIKCkZyb20gY2MwMzlhMGRh YWI0OGU2ZjJmMTM1YzVlNGYyMGM5ZTgyY2IyMTU0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5n PTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMTggRmViIDIwMjMg MDk6Mzg6NTYgKzA3MDAKU3ViamVjdDogW1BBVENIIDE0LzI3XSBxdDYtdmlydHVhbGtleWJvYXJk OiB1cGRhdGUgdG8gNi40LjIuCgotLS0KIHNyY3BrZ3MvcXQ2LXZpcnR1YWxrZXlib2FyZC90ZW1w bGF0ZSB8IDggKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtdmlydHVhbGtleWJvYXJkL3RlbXBs YXRlIGIvc3JjcGtncy9xdDYtdmlydHVhbGtleWJvYXJkL3RlbXBsYXRlCmluZGV4IDY5NWI5NmEx NGMxZC4uYjJjMjc5MTRlYzI5IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni12aXJ0dWFsa2V5Ym9h cmQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtdmlydHVhbGtleWJvYXJkL3RlbXBsYXRlCkBA IC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXZpcnR1YWxrZXlib2FyZCcK IHBrZ25hbWU9cXQ2LXZpcnR1YWxrZXlib2FyZAotdmVyc2lvbj02LjQuMAordmVyc2lvbj02LjQu MgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBw a2ctY29uZmlnIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKQEAgLTEwLDcgKzEwLDcgQEAgbWFpbnRh aW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb25seSIK IGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0 LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1 bGVzL3F0dmlydHVhbGtleWJvYXJkLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09MjVhYjA5YWJhMmFmYjAwMWNiZWRkN2ZmMTZmODc0ZDBlZjhjM2UwMzFkMGI2MjBi YWE3NTRkNDkwZmEzZmQyMAorY2hlY2tzdW09OWMzYzgzMGY2ZTE3ODk2ZWZhY2E1ZmRjN2MxOTEw ODhlZWRkNzBiMDc0OTBiMzg4MzU4NTY1NzkzNDZhNGYyOAogCiBpZiBbICIkWEJQU19DSEVDS19Q S0dTIiBdOyB0aGVuCiAJY29uZmlndXJlX2FyZ3M9Ii1EUVRfQlVJTERfVEVTVFM9T04iCkBAIC0y NCw2ICsyNCwxMCBAQCBkb19jaGVjaygpIHsKIAkjIGlucHV0cGFuZWwgaGFuZ3MKIH0KIAorcG9z dF9pbnN0YWxsKCkgeworCXJtIC1yZiAke0RFU1RESVJ9L3Vzci90ZXN0cworfQorCiBxdDYtdmly dHVhbGtleWJvYXJkLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0k e3ZlcnNpb259XyR7cmV2aXNpb259ICRtYWtlZGVwZW5kcyIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2 ZWxvcG1lbnQgZmlsZXMiCgpGcm9tIDZkM2VkZTNjNGI1YWRkZmI2MjI2ZDY0ZTU5MjEzNTI4NjVl ODVjNzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMz PUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21h aWwuY29tPgpEYXRlOiBTYXQsIDE4IEZlYiAyMDIzIDA5OjM5OjEyICswNzAwClN1YmplY3Q6IFtQ QVRDSCAxNS8yN10gcXQ2LWNvbm5lY3Rpdml0eTogdXBkYXRlIHRvIDYuNC4yLgoKLS0tCiBzcmNw a2dzL3F0Ni1jb25uZWN0aXZpdHkvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYt Y29ubmVjdGl2aXR5L3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtY29ubmVjdGl2aXR5L3RlbXBsYXRl CmluZGV4IGRlODUxZjNkNzdiYy4uN2RhMTlmNDI2NjEyIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0 Ni1jb25uZWN0aXZpdHkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtY29ubmVjdGl2aXR5L3Rl bXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LWNvbm5lY3Rp dml0eScKIHBrZ25hbWU9cXQ2LWNvbm5lY3Rpdml0eQotdmVyc2lvbj02LjQuMAordmVyc2lvbj02 LjQuMgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0icGVy bCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwiCkBAIC0xMCw3ICsxMCw3IEBAIG1haW50YWluZXI9IsSQ b8OgbiBUcuG6p24gQ8O0bmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+IgogbGljZW5zZT0i R1BMLTMuMC1vbmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVzPSJodHRw Oi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3Zl cnNpb259L3N1Ym1vZHVsZXMvcXRjb25uZWN0aXZpdHktZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT01YWRjMTc3ZGI1ZWE2MzRjYzcwNzZhZmQ4MmE2M2JjNWQxMmVk M2I1NWY5YTFlMDQwMGVhZGNiNTYyMTdjNTRlCitjaGVja3N1bT04YzliNDRiMjM5ZTQyYjRjNGQ2 ZmNhNWY0Mjc5MDRlNjg4ODkwYjJhMWJmYjZiY2JlNWU2ZTJhZmNkYzVkN2FmCiAKIHF0Ni1jb25u ZWN0aXZpdHktZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0KCkZyb20gMjk4OWZiM2E1YTk4NTEyMmU0ZDgwNzEwNzg4MjkyYTE2 MzE0ODA1ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89 QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBn bWFpbC5jb20+CkRhdGU6IFNhdCwgMTggRmViIDIwMjMgMDk6Mzk6MjggKzA3MDAKU3ViamVjdDog W1BBVENIIDE2LzI3XSBxdDYtc2hhZGVydG9vbHM6IHVwZGF0ZSB0byA2LjQuMi4KCi0tLQogc3Jj cGtncy9xdDYtc2hhZGVydG9vbHMvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYt c2hhZGVydG9vbHMvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1zaGFkZXJ0b29scy90ZW1wbGF0ZQpp bmRleCBmMjc4NDhmNmRlMmIuLjc4NTQ0Yjk3YTFmZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYt c2hhZGVydG9vbHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtc2hhZGVydG9vbHMvdGVtcGxh dGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtc2hhZGVydG9vbHMn CiBwa2duYW1lPXF0Ni1zaGFkZXJ0b29scwotdmVyc2lvbj02LjQuMAordmVyc2lvbj02LjQuMgog cmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYt YmFzZS1kZXZlbCIKQEAgLTEwLDcgKzEwLDcgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55 bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxl YXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHNoYWRlcnRvb2xz LWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZGJkNmE1ZjAwZTgx NzhjZDJmZWE3ZTg0YzRlZWYzODE4ZGU1Mjg3ZDM0ZTIwYTY4MzgzOTI5Yzc1NGFlM2I5MAorY2hl Y2tzdW09ZmE2NWJmZjg0ZDRlOWMyY2I0Y2JmNmZiMDk4MjA3ZTBlMjNkODYzZGJlNjc1ZWIyNzcw MzRhMjljMjI2YTIxNwogCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAljb25maWd1cmVf YXJncz0iLURRVF9GT1JDRV9CVUlMRF9UT09MUz10cnVlIgoKRnJvbSA3NWQzYWE4OGZlNTMwZTk1 MTRjNjVkOTcyOTlmZWNkZDZjODI2OWYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9 P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5o Pz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAxOCBGZWIgMjAyMyAwOTozOToz MiArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMjddIHF0Ni1zZXJpYWxwb3J0OiB1cGRhdGUgdG8g Ni40LjIuCgotLS0KIHNyY3BrZ3MvcXQ2LXNlcmlhbHBvcnQvdGVtcGxhdGUgfCA0ICsrLS0KIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9xdDYtc2VyaWFscG9ydC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXNlcmlhbHBv cnQvdGVtcGxhdGUKaW5kZXggYzNlZTQxYWQzYjBiLi5kYzk0MmJmMjliODQgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvcXQ2LXNlcmlhbHBvcnQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtc2VyaWFs cG9ydC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1z ZXJpYWxwb3J0JwogcGtnbmFtZT1xdDYtc2VyaWFscG9ydAotdmVyc2lvbj02LjQuMAordmVyc2lv bj02LjQuMgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0i cGVybCBxdDYtYmFzZS1kZXZlbCBwa2ctY29uZmlnIgpAQCAtMTAsNyArMTAsNyBAQCBtYWludGFp bmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iKExHUEwtMy4wLW9ubHkg T1IgR1BMLTIuMC1vbmx5IE9SIEdQTC0zLjAtb25seSkgQU5EIEdQTC0zLjAtb25seSB3aXRoIFF0 LUdQTC1leGNlcHRpb24tMS4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVz PSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4q fS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRzZXJpYWxwb3J0LWV2ZXJ5d2hlcmUtc3JjLSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZjE0OGNjOWU4N2NlMjIyOGU4MmJmZjdhNjRkOTUyMTMz OWVjZTY2YzRjNjZhYTQzYjkxYmFjNjE0ZjRhNDQ4MworY2hlY2tzdW09MzM2ZDk1OTE5MDM3ODAw MTg0YjNjM2RlOGNjYjZmNjI5NTRiMjBmMzc1NmMwNWFkY2U4ZDUwMTA1MDQzNDBmYQogCiBxdDYt c2VyaWFscG9ydC1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSBxdDYtYmFzZS1kZXZlbD49JHt2ZXJzaW9ufV8xIgoKRnJvbSAz YTkwNDg4Yjc4MWViMTYwNDkyODY3Mjc4NzE4NTI4ZWZlOGY3YmQ1IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBD PUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAxOCBG ZWIgMjAyMyAwOTozOTo0NCArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMjddIHF0Ni1pbWFnZWZv cm1hdHM6IHVwZGF0ZSB0byA2LjQuMi4KCi0tLQogc3JjcGtncy9xdDYtaW1hZ2Vmb3JtYXRzL3Rl bXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWltYWdlZm9ybWF0cy90ZW1wbGF0ZSBi L3NyY3BrZ3MvcXQ2LWltYWdlZm9ybWF0cy90ZW1wbGF0ZQppbmRleCBkMTAxZmFhY2ZjNGYuLjIy ZjRkNGU4NGZlOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtaW1hZ2Vmb3JtYXRzL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvcXQ2LWltYWdlZm9ybWF0cy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1pbWFnZWZvcm1hdHMnCiBwa2duYW1lPXF0Ni1pbWFn ZWZvcm1hdHMKLXZlcnNpb249Ni40LjAKK3ZlcnNpb249Ni40LjIKIHJldmlzaW9uPTEKIGJ1aWxk X3N0eWxlPWNtYWtlCiBob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWJhc2UtZGV2ZWwiCkBAIC0x MCw0ICsxMCw0IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNl bnNlPSJMR1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9ubHkiCiBob21l cGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9v ZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9x dGltYWdlZm9ybWF0cy1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PTE0MTlhN2I3NWQwM2MxZjA5OGE4NWZmNzcyYTZiYWFkMzhkMzZiZTFmZDc1NjMzOTA1ZjA0M2Fm NmU5NDVmM2MKK2NoZWNrc3VtPWZjNWY5OTlhZTA3NzlhNjdkNTUwNzk1NmQ0ZGQzMTUzODZlYjgx Y2Y2Y2NiYTYzMmRlMDM5YmI5ZWVlMTE3MDcKCkZyb20gZDVlODhhZGUxODg1Y2MyOTUyZjMxMThj YTE5NjJmOTExODQ5NGE0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9x Pz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29u Z2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMTggRmViIDIwMjMgMDk6Mzk6NTYgKzA3MDAK U3ViamVjdDogW1BBVENIIDE5LzI3XSBxdDYtdHJhbnNsYXRpb25zOiB1cGRhdGUgdG8gNi40LjIu CgotLS0KIHNyY3BrZ3MvcXQ2LXRyYW5zbGF0aW9ucy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni10cmFuc2xhdGlvbnMvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni10cmFuc2xhdGlv bnMvdGVtcGxhdGUKaW5kZXggY2E4NDg4NzAyODU4Li5mOTJjMjdiYzJjZmIgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvcXQ2LXRyYW5zbGF0aW9ucy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni10cmFu c2xhdGlvbnMvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdx dDYtdHJhbnNsYXRpb25zJwogcGtnbmFtZT1xdDYtdHJhbnNsYXRpb25zCi12ZXJzaW9uPTYuNC4w Cit2ZXJzaW9uPTYuNC4yCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2Vk ZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBxdDYtdG9vbHMtZGV2ZWwgcGVybCIKQEAgLTEwLDQgKzEw LDQgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQ TC0zLjAtb25seSB3aXRoIFF0LUdQTC1leGNlcHRpb24tMS4wIgogaG9tZXBhZ2U9Imh0dHBzOi8v cXQuaW8vIgogZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFz ZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXR0cmFuc2xhdGlvbnMt ZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03YWI5M2E5MzBiNjkz ZWViNTNhYjk3YjAzOGI0ZTZlMDU3ZDA2Mzc0ZTZmNDlhMzgxNGQ5OTE0NWEyNzY5MjVmCitjaGVj a3N1bT1iYmUwMjkxNTAyYzI2MDRiNzJmZWY3MzBlMTkzNWJkMjJmOGI5MjFkOGM0NzMyNTBmMjk4 YTcyM2IyYTljNDk2CgpGcm9tIGZmN2FhYWVjOTg5MDc0NzgwMGZjN2ExZmRiMmE5ZDkyMTU4YjBl YWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEw bj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwu Y29tPgpEYXRlOiBTYXQsIDE4IEZlYiAyMDIzIDA5OjQwOjA2ICswNzAwClN1YmplY3Q6IFtQQVRD SCAyMC8yN10gcXQ2LXF1aWNrM2Q6IHVwZGF0ZSB0byA2LjQuMi4KCi0tLQogc3JjcGtncy9xdDYt cXVpY2szZC90ZW1wbGF0ZSB8IDE1ICsrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDEz IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYt cXVpY2szZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXF1aWNrM2QvdGVtcGxhdGUKaW5kZXggNjA4 ZmFiYjc1NTY5Li44YmMzYjBkMmJmYzMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LXF1aWNrM2Qv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtcXVpY2szZC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1xdWljazNkJwogcGtnbmFtZT1xdDYtcXVpY2sz ZAotdmVyc2lvbj02LjQuMAordmVyc2lvbj02LjQuMgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYtYmFzZS1kZXZlbCBxdDYtZGVjbGFyYXRp dmUtZGV2ZWwgcXQ2LXNoYWRlcnRvb2xzLWRldmVsIgpAQCAtMTEsNyArMTEsNyBAQCBtYWludGFp bmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2Fk LnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJt b2R1bGVzL3F0cXVpY2szZC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPWYxMGExNjYwZDRkNDEwM2YwNzQ5ZjI1OGVkZGNlNGQ0ODc4ZmE3YmJiYzVlNjEwYTkwMGJl ZjI4YWRmMDE3ZWMKK2NoZWNrc3VtPTk1M2QzYjZjYTZkYzAwNTYzY2VlYTMzZDUxZjI1ZTIyYjE3 ODhhYjVhYTg2MTk0MTEwMGY2YTFiNjUyOTI2YTcKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0 aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIHF0Ni1xdWljazNkLWRldmVsIgpAQCAtMjMsNiArMjMs MTcgQEAgaWYgWyAiJFhCUFNfVEFSR0VUX0VORElBTiIgPSAiYmUiIF07IHRoZW4KIAlicm9rZW49 IlNoYWRlciBiYWtpbmcgZmFpbGVkOiBDYW5ub3QgcmVzb2x2ZSBleHByZXNzaW9uIHR5cGUuIgog ZmkKIAorZG9fY2hlY2soKSB7CisJY2QgYnVpbGQKKwljdGVzdCAtRSB0c3RfcXF1aWNrM2Ryb3Rh dGlvbmRhdGEKK30KKworcG9zdF9pbnN0YWxsKCkgeworCXJtIC1yZiAke0RFU1RESVJ9L3Vzci90 ZXN0cworCSMgTWF5YmUgbmV3IHBhY2thZ2UgZm9yIGVtYnJlZT8KKwlybSAtcmYgJHtERVNURElS fS91c3IvbGliL2xpYlF0NkJ1bmRsZWRFbWJyZWUuYQorfQorCiBxdDYtcXVpY2szZC1kZXZlbF9w YWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9u fSBxdDYtYmFzZS1kZXZlbCIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCgpG cm9tIGZhOTRhZGJiMDljMDkwYWM1MGI2ZWI1ZDNkNWFmNjI3MjFjMGRjMjYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3 bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBTYXQs IDE4IEZlYiAyMDIzIDA5OjQwOjEwICswNzAwClN1YmplY3Q6IFtQQVRDSCAyMS8yN10gcXQ2LXF1 aWNrdGltZWxpbmU6IHVwZGF0ZSB0byA2LjQuMi4KCi0tLQogc3JjcGtncy9xdDYtcXVpY2t0aW1l bGluZS90ZW1wbGF0ZSB8IDggKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtcXVpY2t0aW1lbGlu ZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXF1aWNrdGltZWxpbmUvdGVtcGxhdGUKaW5kZXggNWQ3 OTZjMDFiZDVmLi5kZTI2N2Y0ZTM3YzMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LXF1aWNrdGlt ZWxpbmUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtcXVpY2t0aW1lbGluZS90ZW1wbGF0ZQpA QCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1xdWlja3RpbWVsaW5lJwog cGtnbmFtZT1xdDYtcXVpY2t0aW1lbGluZQotdmVyc2lvbj02LjQuMAordmVyc2lvbj02LjQuMgog cmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYt YmFzZS1kZXZlbCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwiCkBAIC0xMCw3ICsxMCw3IEBAIG1haW50 YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVzPSJodHRwOi8vZG93bmxv YWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb24vcmMv LXJjfS9zdWJtb2R1bGVzL3F0cXVpY2t0aW1lbGluZS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb24v cmMvLXJjfS50YXIueHoiCi1jaGVja3N1bT03MGU4YTI4YjUzMTBjNDJhOGQ1MGQ5NDliNTVjMWQ3 MjM4Y2Y1MmVhNzc4ZjliYjJlMjU0ODM1YTBlMDU0ZjU3CitjaGVja3N1bT0zMDg4YWJiN2Y0Nzgz NjJhMzU0ZWExNTA5ZDFjM2MzNDAzZTNmNWFkZmI4NGYzZTVjZjMwYTFmMmVmZjA5YTVlCiAKIGlm IFsgIiRYQlBTX0NIRUNLX1BLR1MiIF07IHRoZW4KIAljb25maWd1cmVfYXJncz0iLURRVF9CVUlM RF9URVNUUz1PTiIKQEAgLTIwLDYgKzIwLDEwIEBAIHByZV9jaGVjaygpIHsKIAlleHBvcnQgUU1M Ml9JTVBPUlRfUEFUSD0iJHdya3NyYy9idWlsZC9saWIvcXQ2L3FtbCIKIH0KIAorcG9zdF9pbnN0 YWxsKCkgeworCXJtIC1yZiAke0RFU1RESVJ9L3Vzci90ZXN0cworfQorCiBkb19jaGVjaygpIHsK IAk6ICMgaWdub3JlcyBRTUwyX0lNUE9SVF9QQVRIIHNvbWV3aGVyZSwgbWlzc2VzIHRlc3QgZGF0 YSBpbiBjd2QKIH0KCkZyb20gZTAyMzNjYjQ1ZjFjMjk4YmFhYzk2NmQzNDQ5OTNmNjNlOTc2ZTJj ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBu PTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTggRmViIDIwMjMgMDk6NDA6MTQgKzA3MDAKU3ViamVjdDogW1BBVENI IDIyLzI3XSBxdDYtcmVtb3Rlb2JqZWN0czogdXBkYXRlIHRvIDYuNC4yLgoKLS0tCiBzcmNwa2dz L3F0Ni1yZW1vdGVvYmplY3RzL3RlbXBsYXRlIHwgOCArKysrKystLQogMSBmaWxlIGNoYW5nZWQs IDYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0 Ni1yZW1vdGVvYmplY3RzL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtcmVtb3Rlb2JqZWN0cy90ZW1w bGF0ZQppbmRleCA4YWZhZDg5ODIwMDUuLmM2YWRkMzNjZWM5ZSAxMDA2NDQKLS0tIGEvc3JjcGtn cy9xdDYtcmVtb3Rlb2JqZWN0cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1yZW1vdGVvYmpl Y3RzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXJl bW90ZW9iamVjdHMnCiBwa2duYW1lPXF0Ni1yZW1vdGVvYmplY3RzCi12ZXJzaW9uPTYuNC4wCit2 ZXJzaW9uPTYuNC4yCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2VkZXBl bmRzPSJwZXJsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCBwa2ctY29uZmlnIgpAQCAtMTMsNyArMTMs NyBAQCBtYWludGFpbmVyPSLEkG/DoG4gVHLhuqduIEPDtG5nIERhbmggPGNvbmdkYW5ocXhAZ21h aWwuY29tPiIKIGxpY2Vuc2U9IihMR1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwt My4wLW9ubHkpIEFORCBHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCIKIGhv bWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0Lmlv L29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVz L3F0cmVtb3Rlb2JqZWN0cy1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPWY1MWE3ZGViZWU2ZmVmODZmYmM0NDRkZWNlMDhlMDY0ZjkyNWY0ZDk3Njk0N2ZjNjZmNDEw MDE4ODk1NmUxY2UKK2NoZWNrc3VtPTU4M2M1MzY0MDAyMGQ1ZDA2OGVlZjdhZTE4MGQ3NTAxMjBi YjQ5ZTMwMjQ5YzJmZWJkZDE3M2M1YTc0Mjg4MTIKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0 aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIHF0Ni1yZW1vdGVvYmplY3RzIgpAQCAtMjQsNiArMjQs MTAgQEAgcHJlX2NoZWNrKCkgewogCWV4cG9ydCBRTUwyX0lNUE9SVF9QQVRIPSIkd3Jrc3JjL2J1 aWxkL2xpYi9xdDYvcW1sIgogfQogCitwb3N0X2luc3RhbGwoKSB7CisJcm0gLXJmICR7REVTVERJ Un0vdXNyL3Rlc3RzCit9CisKIHF0Ni1yZW1vdGVvYmplY3RzLWRldmVsX3BhY2thZ2UoKSB7CiAJ ZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259CiAJIHF0Ni1kZWNs YXJhdGl2ZS1kZXZlbD49JHt2ZXJzaW9ufV8xIgoKRnJvbSA2MGZhZmEwNGQ1OWY2ZjJmZmYwMzE2 ZmQ5ZGFhNWQwNzBiOGZmNmRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04 P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxj b25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAxOCBGZWIgMjAyMyAwOTo0MDoxOCArMDcw MApTdWJqZWN0OiBbUEFUQ0ggMjMvMjddIHF0Ni1zY3htbDogdXBkYXRlIHRvIDYuNC4yLgoKLS0t CiBzcmNwa2dzL3F0Ni1zY3htbC90ZW1wbGF0ZSB8IDggKysrKysrLS0KIDEgZmlsZSBjaGFuZ2Vk LCA2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9x dDYtc2N4bWwvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1zY3htbC90ZW1wbGF0ZQppbmRleCA4OWVl ZTFiMDZkMGMuLjg5OTFlNWJlMTliZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtc2N4bWwvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9xdDYtc2N4bWwvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtc2N4bWwnCiBwa2duYW1lPXF0Ni1zY3htbAotdmVyc2lv bj02LjQuMAordmVyc2lvbj02LjQuMgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGhv c3RtYWtlZGVwZW5kcz0icGVybCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwiCkBAIC0xMCw3ICsxMCw3 IEBAIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJMR1BM LTMuMC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9ubHkiCiBob21lcGFnZT0iaHR0 cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9y ZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHNjeG1sLWV2 ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDQwNzczYTVlNjU5NDgy OWFjYTk5Y2NjNzNhYmEzNTU5ZjkzMzAxZWEwODFmZmI3ODY2OGE5YjYxNmQ5NzY2NAorY2hlY2tz dW09MTNiMGQ0MzQ1OTM5NGJlZDI0ODE5NjdhMWZlZmYwMmI2MzIyOGE4MmMxMTM2YTYyOTQxYzBl YjgzZWY1NGU3ZgogCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAljb25maWd1cmVfYXJn cz0iLURRVF9GT1JDRV9CVUlMRF9UT09MUz10cnVlIgpAQCAtMjEsNiArMjEsMTAgQEAgcHJlX2No ZWNrKCkgewogCWV4cG9ydCBRTUwyX0lNUE9SVF9QQVRIPSIkd3Jrc3JjL2J1aWxkL2xpYi9xdDYv cW1sIgogfQogCitwb3N0X2luc3RhbGwoKSB7CisJcm0gLXJmICR7REVTVERJUn0vdXNyL3Rlc3Rz Cit9CisKIHF0Ni1zY3htbC1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtn fT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQg ZmlsZXMiCgpGcm9tIDdhNjllODE3YjYyMWRiYzk1ODczNmY0ZTNmYWExNmYwNTJiNGIzOGMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRy PUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpE YXRlOiBTYXQsIDE4IEZlYiAyMDIzIDA5OjQwOjIyICswNzAwClN1YmplY3Q6IFtQQVRDSCAyNC8y N10gcXQ2LXNlbnNvcnM6IHVwZGF0ZSB0byA2LjQuMi4KCi0tLQogc3JjcGtncy9xdDYtc2Vuc29y cy90ZW1wbGF0ZSB8IDggKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtc2Vuc29ycy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvcXQ2LXNlbnNvcnMvdGVtcGxhdGUKaW5kZXggNmIwYmVmZDRiMzZjLi5kN2Q0 YTI5MzdlOWMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LXNlbnNvcnMvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9xdDYtc2Vuc29ycy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3F0Ni1zZW5zb3JzJwogcGtnbmFtZT1xdDYtc2Vuc29ycwotdmVyc2lvbj02LjQu MAordmVyc2lvbj02LjQuMgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtl ZGVwZW5kcz0icGVybCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwgcXQ2LXN2Zy1kZXZlbCBwa2ctY29u ZmlnIgpAQCAtMTAsNyArMTAsMTEgQEAgbWFpbnRhaW5lcj0ixJBvw6BuIFRy4bqnbiBDw7RuZyBE YW5oIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4iCiBsaWNlbnNlPSIoTEdQTC0zLjAtb25seSBPUiBH UEwtMi4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5KSBBTkQgR1BMLTMuMC1vbmx5IHdpdGggUXQtR1BM LWV4Y2VwdGlvbi0xLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0 dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7 dmVyc2lvbn0vc3VibW9kdWxlcy9xdHNlbnNvcnMtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT1mMzhjMDcyZjViOWY2MjYzMTk4NWYzODVkZTcwY2RjNTRjMTNmMGI4 ODhkOTQ5Njk0MzM0MmUzYmUxY2E1MGRhCitjaGVja3N1bT00NTU2MTlmZjI4YTM5ZjRjYWJhNDlj OWUxOTUyZmJjZmFmYzhmZmM4OTNiNDM3ZDY1M2Q1NDY1YTA3N2VlNjU2CisKK3Bvc3RfaW5zdGFs bCgpIHsKKwlybSAtcmYgJHtERVNURElSfS91c3IvdGVzdHMKK30KIAogcXQ2LXNlbnNvcnMtZGV2 ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0KCkZyb20gMDBlYmQwZGM4YjMzYjAwYWMxM2Q4Zjg1MjZiNTM3MzJkMjIyZGIxOSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9 RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRh dGU6IFNhdCwgMTggRmViIDIwMjMgMDk6NDA6NTEgKzA3MDAKU3ViamVjdDogW1BBVENIIDI1LzI3 XSBxdDYtY2hhcnRzOiB1cGRhdGUgdG8gNi40LjIuCgotLS0KIHNyY3BrZ3MvcXQ2LWNoYXJ0cy90 ZW1wbGF0ZSB8IDggKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtY2hhcnRzL3RlbXBsYXRlIGIv c3JjcGtncy9xdDYtY2hhcnRzL3RlbXBsYXRlCmluZGV4IGU2MDA2ODAzOWM2MS4uY2IzNmYzZmNk Y2M3IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1jaGFydHMvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9xdDYtY2hhcnRzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAncXQ2LWNoYXJ0cycKIHBrZ25hbWU9cXQ2LWNoYXJ0cwotdmVyc2lvbj02LjQuMAordmVyc2lv bj02LjQuMgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0i cGVybCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwiCkBAIC0xMCwxMiArMTAsMTYgQEAgbWFpbnRhaW5l cj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb25seSIKIGhv bWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0Lmlv L29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVz L3F0Y2hhcnRzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Mjhj M2NhY2UyNDUxNWJkYWZlNzYyMTc0MjcyMjgxYWViYzk3YzEzNmNiNzIyZWRlZDk2NGNkMGRkYjM5 NDBkMworY2hlY2tzdW09YTFhN2MwZTA4Yzg4NzBjZjk3ZDFjM2EyZWIzZjM3NjgxYWFlZDAwYTYz YjViMmY3MGJkZjJkYTg3OGQwYTlhYQogCiBwcmVfY2hlY2soKSB7CiAJZXhwb3J0IFFNTDJfSU1Q T1JUX1BBVEg9IiR3cmtzcmMvYnVpbGQvbGliL3F0Ni9xbWwiCiB9CiAKK3Bvc3RfaW5zdGFsbCgp IHsKKwlybSAtcmYgJHtERVNURElSfS91c3IvdGVzdHMKK30KKwogcXQ2LWNoYXJ0cy1kZXZlbF9w YWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9u fSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCgpGcm9tIGVkMDJjNTg5NGFm NTBmYmYwM2JhNzlmZTMyN2JlOWJjYTFjZGYxNGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0y MERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBTdW4sIDExIERlYyAyMDIyIDIx OjQ5OjUzICswNzAwClN1YmplY3Q6IFtQQVRDSCAyNi8yN10ga2xpYmM6IHVwZGF0ZSB0byAyLjAu MTIuCgotLS0KIHNyY3BrZ3Mva2xpYmMvZmlsZXMvaW5pdHJhbWZzLXRvb2xzLWhvb2tzIHwgMzQg KysrKysrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3Mva2xpYmMvdGVtcGxhdGUgICAgICAgICAg ICAgICAgICAgIHwgIDYgKystLQogMiBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNzU1IHNyY3BrZ3Mva2xpYmMvZmlsZXMvaW5p dHJhbWZzLXRvb2xzLWhvb2tzCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9rbGliYy9maWxlcy9pbml0 cmFtZnMtdG9vbHMtaG9va3MgYi9zcmNwa2dzL2tsaWJjL2ZpbGVzL2luaXRyYW1mcy10b29scy1o b29rcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAuLmIyMGEwOTY4YTJk NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mva2xpYmMvZmlsZXMvaW5pdHJhbWZzLXRvb2xz LWhvb2tzCkBAIC0wLDAgKzEsMzQgQEAKKyMhL2Jpbi9zaAorCitwcmVyZXFzKCkKK3sKKwlpZiBb ICIke0JVU1lCT1h9IiA9ICJuIiBdIHx8IFsgISAtZiAiJHtCVVNZQk9YX0VYRUNVVEFCTEV9IiBd OyB0aGVuCisJCWVjaG8gJycKKwllbHNlCisJCSMgRW5zdXJlIGJ1c3lib3ggaW5zdGFsbHMgYWxs IGl0cyBjb21tYW5kcyBiZWZvcmUKKwkJIyBjaGVja2luZyB3aGF0IHdlIHNob3VsZCBwcm92aWRl CisJCWVjaG8genotYnVzeWJveAorCWZpCit9CisKK2Nhc2UgJDEgaW4KK3ByZXJlcXMpCisJcHJl cmVxcworCWV4aXQgMAorCTs7Citlc2FjCisKK2ZvciBzcmMgaW4gL3Vzci9saWIva2xpYmMvYmlu Lyo7IGRvCisJY29tbWFuZD0iJHtzcmMjIyovfSIKKwljYXNlICIkc3JjIiBpbgorCWd6aXAgfCBr aW5pdCB8IHpjYXQpCisJCTs7CisJKikKKwkJIyBEb24ndCBpbnN0YWxsIGNvbW1hbmRzIHRoYXQg YWxyZWFkeSBleGlzdCBpbiAvYmluIG9yIC9zYmluCisJCWlmICEgWyAtZSAiJHtERVNURElSfS9z YmluLyRjb21tYW5kIiBdOyB0aGVuCisJCQljcCAtcG5MICIkc3JjIiAiJHtERVNURElSfS9iaW4i CisJCWZpCisJCTs7CisJZXNhYworZG9uZQorY3AgLXBMIC9saWIva2xpYmMtKi5zbyAiJHtERVNU RElSfS9saWIiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2tsaWJjL3RlbXBsYXRlIGIvc3JjcGtncy9r bGliYy90ZW1wbGF0ZQppbmRleCBiNWI3NTdkMjc0NWIuLjUwYzczZGViNDU0ZSAxMDA2NDQKLS0t IGEvc3JjcGtncy9rbGliYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2tsaWJjL3RlbXBsYXRlCkBA IC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAna2xpYmMnCiBwa2duYW1lPWtsaWJj Ci12ZXJzaW9uPTIuMC4xMQordmVyc2lvbj0yLjAuMTIKIHJldmlzaW9uPTEKIGhvc3RtYWtlZGVw ZW5kcz0icGVybCIKIG1ha2VkZXBlbmRzPSJrZXJuZWwtbGliYy1oZWFkZXJzIgpAQCAtOSw3ICs5 LDcgQEAgbWFpbnRhaW5lcj0ixJBvw6BuIFRy4bqnbiBDw7RuZyBEYW5oIDxjb25nZGFuaHF4QGdt YWlsLmNvbT4iCiBsaWNlbnNlPSJHUEwtMi4wLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly9naXQu a2VybmVsLm9yZy9wdWIvc2NtL2xpYnMva2xpYmMva2xpYmMuZ2l0LyIKIGRpc3RmaWxlcz0iaHR0 cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpYnMva2xpYmMva2xpYmMuZ2l0L3NuYXBzaG90 L2tsaWJjLSR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09YmI5YzQwZmI5YjIwMzM1ZmJkYzQ0 OTA0ZDdjNTc5ZDQzZTM5Y2IwYjU5MjUyZTFhNTZjZTY3MTk0ZmIzODU0MQorY2hlY2tzdW09MDFj YzlkYzMyNDUzYjY2NGM5OThkODExZmI2N2JlOTZmODQyNzQwYTNmZWRmYWY3NDZiYWMyYmQzOTQw MjFjZAogCiBfbWFrZSgpIHsKIAlsb2NhbCBfYXJjaCBfbWtmbGFncz0KQEAgLTEwNSw2ICsxMDUs OCBAQCBkb19pbnN0YWxsKCkgewogCWVsc2UKIAkJdmJpbiBrbGNjLyR7WEJQU19UUklQTEVUL3Vu a25vd24tL30ta2xjYwogCWZpCisJdmluc3RhbGwgJHtGSUxFU0RJUn0vaW5pdHJhbWZzLXRvb2xz LWhvb2tzIDc1NSBcCisJCXVzci9zaGFyZS9pbml0cmFtZnMtdG9vbHMvaG9va3Mga2xpYmMKIH0K IAoga2xpYmMtZGV2ZWxfcGFja2FnZSgpIHsKCkZyb20gNDMxMjliYjQ1ZTdlMDg0ZWIyZTJmMzg0 YjlhNmFiNGQyMDc3NzJhMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9x Pz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29u Z2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzoxMSArMDcwMApT dWJqZWN0OiBbUEFUQ0ggMjcvMjddIE5ldyBwYWNrYWdlOiBxdDYtd2ViZW5naW5lLTYuMy4xLgoK LS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcg Kwogc3JjcGtncy9xdDYtd2ViZW5naW5lLWRldmVsICAgICAgICAgICAgICAgICAgIHwgICAxICsK IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1leGFtcGxlcyAgICAgICAgICAgICAgICB8ICAgMSArCiAu Li4vcGF0Y2hlcy8wMDAxLU5vbmUtbm8tZGVidWcucGF0Y2ggICAgICAgICAgfCAgMTEgKwogLi4u L3BhdGNoZXMvMDAwMy1jcm9zcy1oYWNrLnBhdGNoICAgICAgICAgICAgIHwgIDEwICsKIC4uLi9w YXRjaGVzLzAwNTAtbm8tZ2xpYmMtY21ha2UtY2hlY2sucGF0Y2ggICB8ICAxNCArCiAuLi4vMDEw MC1jaHJvbWl1bS1yZXZlcnQtOWQwODBjMC5wYXRjaCAgICAgICAgfCAxNTQgKysrKwogLi4ub21p dW0tMTAyLWZlbmNlZF9mcmFtZV91dGlscy1pbmNsdWRlLnBhdGNoIHwgIDIwICsKIC4uLjEwMi1j aHJvbWl1bS0xMDItcmVnZXhfcGF0dGVybi1hcnJheS5wYXRjaCB8ICAxNCArCiAuLi4wMTAzLWNo cm9taXVtLWk2ODYtdmFhcGktZnBlcm1pc3NpdmUucGF0Y2ggfCAgMjMgKwogLi4uLzAxMDQtY2hy b21pdW0tbGlieG1sLXVuYnVuZGxlLnBhdGNoICAgICAgIHwgIDEwICsKIC4uLi1jaHJvbWl1bS1y ZXZlcnQtZHJvcC1vZi1zeXN0ZW0tamF2YS5wYXRjaCB8ICAxNSArCiAuLi4vcGF0Y2hlcy8wMTA2 LWNocm9taXVtLXN5c3RlbS1ub2RlanMucGF0Y2ggfCAgMjkgKwogLi4uL3BhdGNoZXMvMDEwNy1j aHJvbWl1bS1jcm9zcy1idWlsZC5wYXRjaCAgIHwgIDY1ICsrCiAuLi4vMDEwOC1jaHJvbWl1bS1j dXJzZWReVXNjb3BlZF9maWxlLnBhdGNoICAgfCAgMTggKwogLi4uY2hyb21pdW0tYWFyY2g2NC1t dXNsLW1lbW9yeS10YWdnaW5nLnBhdGNoIHwgIDI5ICsKIC4uLmZpeC1taXNzaW5nLVRFTVBfRkFJ TFVSRV9SRVRSWS1tYWNyby5wYXRjaCB8ICAyMSArCiAuLi4vcGF0Y2hlcy8wMTExLWNocm9taXVt LWNzdGRpbnQucGF0Y2ggICAgICAgfCAgMTAgKwogLi4uL3BhdGNoZXMvMDExMi1jaHJvbWl1bS11 bmlzdGQuaC5wYXRjaCAgICAgIHwgIDEwICsKIC4uLi8wMTEzLWNocm9taXVtLXB0aHJlYWQtc3Rh Y2tzaXplLnBhdGNoICAgICB8ICAxNiArCiAuLi4vcGF0Y2hlcy8wMTE0LWRvLW5vdC1uYXJyb3ct aW50LnBhdGNoICAgICAgfCAgNTMgKysKIC4uLjUtY2hyb21pdW0tbm8tY2Fub25pY2FsaXplLWZp bGUtbmFtZS5wYXRjaCB8ICAxMiArCiAuLi4vMDExNi1jaHJvbWl1bS1tdXNsLWdldC10aHJlYWQt bmFtZS5wYXRjaCAgfCAgMjIgKwogLi4uL3BhdGNoZXMvMDExNy1jaHJvbWl1bS1tdXNsLXJlc29s dmVyLnBhdGNoIHwgIDY0ICsrCiAuLi4vMDExOS1jaHJvbWl1bS1tdXNsLXN0YWNrLXV0aWxzLnBh dGNoICAgICAgfCAgMjAgKwogLi4uL3BhdGNoZXMvMDEyMC1jaHJvbWl1bS1saWJjLW1hbGxvYy5w YXRjaCAgIHwgIDM0ICsKIC4uLi9wYXRjaGVzLzAxMjEtY2hyb21pdW0tbXVzbC1zdGF0LnBhdGNo ICAgICB8ICAxMiArCiAuLi4vcGF0Y2hlcy8wMTIyLWNocm9taXVtLWNvbmRpdGlvbl92YXIucGF0 Y2ggfCAgMjIgKwogLi4uLzAxMjMtY2hyb21pdW0tbXVzbC1uby1leGVjaW5mby5wYXRjaCAgICAg IHwgIDc1ICsrCiAuLi4vMDEyMy1jaHJvbWl1bS1tdXNsLW5vLWdldGNvbnRleHQucGF0Y2ggICAg fCAgMjcgKwogLi4uL3BhdGNoZXMvMDEyNC1jaHJvbWl1bS1lbmFibGUtaTY4Ni5wYXRjaCAgIHwg IDE3ICsKIC4uLi8wMTI1LWNocm9taXVtLXJlbW92ZS1zdHJpcF9iaW5hcnkucGF0Y2ggICB8ICAz MiArCiAuLi4vcGF0Y2hlcy8wMTI2LWNocm9taXVtLW5vLWNkZWZzLnBhdGNoICAgICAgfCAgMzkg KwogLi4uLzAxMjgtY2hyb21pdW0tc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoICAgIHwgIDEwICsK IC4uLi8wMTI5LWNocm9taXVtLXNhbmRib3gtc2hlZF9nZXRwYXJhbS5wYXRjaCB8ICAyMCArCiAu Li51bmRsZS1mZm1wZWctYXZfc3RyZWFtX2dldF9maXJzdF9kdHMucGF0Y2ggfCAgMTAgKwogLi4u MS1jaHJvbWl1bS11bmJ1bmRsZWQtY3Jvc3MtdG9vbGNoYWluLnBhdGNoIHwgIDEzICsKIC4uLi9w YXRjaGVzLzAxNTItY2hyb21pdW0td2VicnRjLXNpemVfdC5wYXRjaCB8ICAxMCArCiAuLi4vcGF0 Y2hlcy8wMTUzLWNocm9taXVtLXdlYnJ0Yy1zaXplX3QucGF0Y2ggfCAgMTYgKwogLi4uL3BhdGNo ZXMvMDE1NC1jaHJvbWl1bS11aXRfdC5wYXRjaCAgICAgICAgIHwgIDExICsKIC4uLi9wYXRjaGVz LzAyMDAtY2hyb21pdW0tc25kaW8ucGF0Y2ggICAgICAgICB8IDg0OSArKysrKysrKysrKysrKysr KysKIC4uLi9wYXRjaGVzLzAzMDAtY2hyb21pdW0tbXVzbC1oYWNrcy5wYXRjaCAgICB8ICA1MiAr KwogLi4uL3BhdGNoZXMvMDMwMS1jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2ggIHwgIDg2ICsr CiAuLi4vcGF0Y2hlcy8wMzAyLWNocm9taXVtLW5vLW1hbGxpbmZvLnBhdGNoICAgfCAgNjcgKysK IC4uLi9wYXRjaGVzLzA3MDAtYXJtdjdsLW5lb24ucGF0Y2ggICAgICAgICAgICB8ICAxMCArCiAu Li4tY2hyb21pdW0tbXVzbC1jcm9zcy1uby1hc21fcHRyYWNlX2gucGF0Y2ggfCAgMzAgKwogLi4u LzA3NTEtY2hyb21pdW0tbXVzbC1hcm0tdXNlcl92ZnAucGF0Y2ggICAgIHwgIDIwICsKIC4uLi8w NzUyLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2ggICB8ICAxOCArCiAuLi4vcGF0 Y2hlcy8wOTAwLWNyb3NzLWJ1aWxkLWV4YW1wbGVzLnBhdGNoICAgfCAgMTYgKwogc3JjcGtncy9x dDYtd2ViZW5naW5lL3RlbXBsYXRlICAgICAgICAgICAgICAgIHwgMTgzICsrKysKIHNyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS91cGRhdGUgICAgICAgICAgICAgICAgICB8ICAgMSArCiA1MSBmaWxlcyBj aGFuZ2VkLCAyMzI5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3F0 Ni13ZWJlbmdpbmUtZGV2ZWwKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3F0Ni13ZWJlbmdp bmUtZXhhbXBsZXMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMDAxLU5vbmUtbm8tZGVidWcucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAzLWNyb3NzLWhhY2sucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDUwLW5vLWdsaWJjLWNtYWtl LWNoZWNrLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDEwMC1jaHJvbWl1bS1yZXZlcnQtOWQwODBjMC5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDEtY2hyb21pdW0tMTAyLWZlbmNl ZF9mcmFtZV91dGlscy1pbmNsdWRlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMi1jaHJvbWl1bS0xMDItcmVnZXhfcGF0dGVybi1hcnJh eS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAxMDMtY2hyb21pdW0taTY4Ni12YWFwaS1mcGVybWlzc2l2ZS5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDQtY2hyb21pdW0tbGlieG1s LXVuYnVuZGxlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDEwNS1jaHJvbWl1bS1yZXZlcnQtZHJvcC1vZi1zeXN0ZW0tamF2YS5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDYtY2hy b21pdW0tc3lzdGVtLW5vZGVqcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDctY2hyb21pdW0tY3Jvc3MtYnVpbGQucGF0Y2gKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA4LWNocm9taXVt LWN1cnNlZF5Vc2NvcGVkX2ZpbGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA5LWNocm9taXVtLWFhcmNoNjQtbXVzbC1tZW1vcnktdGFn Z2luZy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAxMTAtY2hyb21pdW0tZml4LW1pc3NpbmctVEVNUF9GQUlMVVJFX1JFVFJZLW1hY3JvLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEx MS1jaHJvbWl1bS1jc3RkaW50LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDExMi1jaHJvbWl1bS11bmlzdGQuaC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTMtY2hyb21pdW0tcHRo cmVhZC1zdGFja3NpemUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTE0LWRvLW5vdC1uYXJyb3ctaW50LnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExNS1jaHJvbWl1bS1uby1jYW5v bmljYWxpemUtZmlsZS1uYW1lLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDExNi1jaHJvbWl1bS1tdXNsLWdldC10aHJlYWQtbmFtZS5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTct Y2hyb21pdW0tbXVzbC1yZXNvbHZlci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTktY2hyb21pdW0tbXVzbC1zdGFjay11dGlscy5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjAt Y2hyb21pdW0tbGliYy1tYWxsb2MucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTIxLWNocm9taXVtLW11c2wtc3RhdC5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjItY2hyb21pdW0t Y29uZGl0aW9uX3Zhci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAxMjMtY2hyb21pdW0tbXVzbC1uby1leGVjaW5mby5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjMtY2hyb21pdW0t bXVzbC1uby1nZXRjb250ZXh0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDEyNC1jaHJvbWl1bS1lbmFibGUtaTY4Ni5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjUtY2hyb21pdW0t cmVtb3ZlLXN0cmlwX2JpbmFyeS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjYtY2hyb21pdW0tbm8tY2RlZnMucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTI4LWNocm9taXVtLXNh bmRib3gtbWVtYmFycmllci5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMjktY2hyb21pdW0tc2FuZGJveC1zaGVkX2dldHBhcmFtLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1MC1j aHJvbWl1bS11bmJ1bmRsZS1mZm1wZWctYXZfc3RyZWFtX2dldF9maXJzdF9kdHMucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUxLWNocm9t aXVtLXVuYnVuZGxlZC1jcm9zcy10b29sY2hhaW4ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUyLWNocm9taXVtLXdlYnJ0Yy1zaXplX3Qu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MTUzLWNocm9taXVtLXdlYnJ0Yy1zaXplX3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTU0LWNocm9taXVtLXVpdF90LnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwMC1jaHJvbWl1 bS1zbmRpby5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAzMDAtY2hyb21pdW0tbXVzbC1oYWNrcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAzMDEtY2hyb21pdW0tbXVzbC1zYW5kYm94 LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDMwMi1jaHJvbWl1bS1uby1tYWxsaW5mby5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3MDAtYXJtdjdsLW5lb24ucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUwLWNocm9taXVtLW11 c2wtY3Jvc3Mtbm8tYXNtX3B0cmFjZV9oLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MS1jaHJvbWl1bS1tdXNsLWFybS11c2VyX3ZmcC5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3 NTItY2hyb21pdW0tbXVzbC1hcm0tZWxmX2F1eHZfdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDAtY3Jvc3MtYnVpbGQtZXhhbXBsZXMu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdXBkYXRlCgpkaWZmIC0t Z2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggMGMxZDU0NWZiZTI3Li5l Njk3ZmVmNTdhZjIgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGli cwpAQCAtMjA5Myw2ICsyMDkzLDEzIEBAIGxpYlF0NlBvc2l0aW9uaW5nLnNvLjYgcXQ2LWxvY2F0 aW9uLTYuMi4wYWxwaGFfMQogbGliUXQ2TXVsdGltZWRpYVdpZGdldHMuc28uNiBxdDYtbXVsdGlt ZWRpYS02LjMuMV8xCiBsaWJRdDZNdWx0aW1lZGlhUXVpY2suc28uNiBxdDYtbXVsdGltZWRpYS02 LjMuMV8xCiBsaWJRdDZNdWx0aW1lZGlhLnNvLjYgcXQ2LW11bHRpbWVkaWEtNi4zLjFfMQorbGli UXQ2V2ViRW5naW5lUXVpY2suc28uNiBxdDYtd2ViZW5naW5lLTYuMy4xXzEKK2xpYlF0NlBkZldp ZGdldHMuc28uNiBxdDYtd2ViZW5naW5lLTYuMy4xXzEKK2xpYlF0NlBkZlF1aWNrLnNvLjYgcXQ2 LXdlYmVuZ2luZS02LjMuMV8xCitsaWJRdDZXZWJFbmdpbmVDb3JlLnNvLjYgcXQ2LXdlYmVuZ2lu ZS02LjMuMV8xCitsaWJRdDZQZGYuc28uNiBxdDYtd2ViZW5naW5lLTYuMy4xXzEKK2xpYlF0Nldl YkVuZ2luZVF1aWNrRGVsZWdhdGVzUW1sLnNvLjYgcXQ2LXdlYmVuZ2luZS02LjMuMV8xCitsaWJR dDZXZWJFbmdpbmVXaWRnZXRzLnNvLjYgcXQ2LXdlYmVuZ2luZS02LjMuMV8xCiBsaWJucHRoLnNv LjAgbnB0aC0xLjFfMQogbGlibnB1cG5wLnNvLjkgbGlibnB1cG5wLTUuMC4wXzEKIGxpYmdsZncu c28uMyBnbGZ3LTMuMC40XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1kZXZl bCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRl eCAwMDAwMDAwMDAwMDAuLjhlNGQxYjk5YzU4NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS1kZXZlbApAQCAtMCwwICsxIEBACitxdDYtd2ViZW5naW5lClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lLWV4 YW1wbGVzIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lLWV4YW1wbGVzCm5ldyBmaWxlIG1vZGUgMTIw MDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uOGU0ZDFiOTljNTg3Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lLWV4YW1wbGVzCkBAIC0wLDAgKzEgQEAKK3F0Ni13ZWJlbmdp bmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMDAxLU5vbmUtbm8tZGVidWcucGF0Y2ggYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMDAxLU5vbmUtbm8tZGVidWcucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iMjIxZmRjZDM5MmYKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAxLU5vbmUtbm8tZGVidWcucGF0Y2gK QEAgLTAsMCArMSwxMSBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9jbWFrZS9GdW5j dGlvbnMuY21ha2UKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL2NtYWtlL0Z1bmN0aW9ucy5jbWFr ZQorQEAgLTgyMCw2ICs4MjAsOCBAQCBtYWNybyhhcHBlbmRfYnVpbGRfdHlwZV9zZXR1cCkKKyAg ICAgICAgIGVuZGlmKCkKKyAgICAgZWxzZWlmKCR7Y29uZmlnfSBTVFJFUVVBTCAiTWluU2l6ZVJl bCIpCisgICAgICAgICBsaXN0KEFQUEVORCBnbkFyZ0FyZyBpc19kZWJ1Zz1mYWxzZSBzeW1ib2xf bGV2ZWw9MCBvcHRpbWl6ZV9mb3Jfc2l6ZT10cnVlKQorKyAgICBlbHNlaWYoJHtjb25maWd9IFNU UkVRVUFMICJOb25lIikKKysgICAgICAgIGxpc3QoQVBQRU5EIGduQXJnQXJnIGlzX2RlYnVnPWZh bHNlIHN5bWJvbF9sZXZlbD0wKQorICAgICBlbmRpZigpCisgICAgIGlmKEZFQVRVUkVfZGV2ZWxv cGVyX2J1aWxkIE9SICgke2NvbmZpZ30gU1RSRVFVQUwgIkRlYnVnIikgT1IgUVRfRkVBVFVSRV93 ZWJlbmdpbmVfc2FuaXRpemVyKQorICAgICAgICAgbGlzdChBUFBFTkQgZ25BcmdBcmcKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDMtY3Jvc3MtaGFjay5wYXRj aCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDMtY3Jvc3MtaGFjay5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmEzZjBhNTc5MTQwNgotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDMtY3Jvc3Mt aGFjay5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmln L3NyYy9jb3JlL2FwaS9DTWFrZUxpc3RzLnR4dAorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3Jj L2NvcmUvYXBpL0NNYWtlTGlzdHMudHh0CitAQCAtNTEsNiArNTEsNyBAQCBxdF9pbnRlcm5hbF9h ZGRfbW9kdWxlKFdlYkVuZ2luZUNvcmUKKyAgICAgICAgIFF0OjpHdWkKKyAgICAgICAgIFF0OjpO ZXR3b3JrCisgICAgICAgICBRdDo6UXVpY2sKKysgICAgICAgIFgxMQorICkKKyAKKyBzZXRfdGFy Z2V0X3Byb3BlcnRpZXMoV2ViRW5naW5lQ29yZSBQUk9QRVJUSUVTIFFUV0VCRU5HSU5FUFJPQ0VT U19OQU1FICR7cXRXZWJFbmdpbmVQcm9jZXNzTmFtZX0pCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDUwLW5vLWdsaWJjLWNtYWtlLWNoZWNrLnBhdGNoIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDA1MC1uby1nbGliYy1jbWFrZS1jaGVjay5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ5MTE2ZGM1ODU3ZQot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwNTAtbm8t Z2xpYmMtY21ha2UtY2hlY2sucGF0Y2gKQEAgLTAsMCArMSwxNCBAQAorLS0tIHF0Ni13ZWJlbmdp bmUtNi40LjIub3JpZy9jb25maWd1cmUuY21ha2UKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL2Nv bmZpZ3VyZS5jbWFrZQorQEAgLTQ5OSwxMSArNDk5LDYgQEAgYWRkX2NoZWNrX2Zvcl9zdXBwb3J0 KAorICkKKyBhZGRfY2hlY2tfZm9yX3N1cHBvcnQoCisgICAgTU9EVUxFUyBRdFdlYkVuZ2luZSBR dFBkZgorLSAgIENPTkRJVElPTiBOT1QgTElOVVggT1IgVEVTVF9nbGliYworLSAgIE1FU1NBR0Ug IkEgc3VpdGFibGUgdmVyc2lvbiA+PSAyLjE3IG9mIGdsaWJjIGlzIHJlcXVpcmVkLiIKKy0pCist YWRkX2NoZWNrX2Zvcl9zdXBwb3J0KAorLSAgIE1PRFVMRVMgUXRXZWJFbmdpbmUgUXRQZGYKKyAg ICBDT05ESVRJT04gTk9UIExJTlVYIE9SIFRFU1Rfa2hyCisgICAgTUVTU0FHRSAiQnVpbGQgcmVx dWlyZXMgS2hyb25vcyBkZXZlbG9wbWVudCBoZWFkZXJzIGZvciBidWlsZCAtIHNlZSBtZXNhL2xp YmVnbDEtbWVzYS1kZXYiCisgKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDEwMC1jaHJvbWl1bS1yZXZlcnQtOWQwODBjMC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMDAtY2hyb21pdW0tcmV2ZXJ0LTlkMDgwYzAucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hZGNhMzY0YTQwNjAKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAwLWNocm9taXVtLXJl dmVydC05ZDA4MGMwLnBhdGNoCkBAIC0wLDAgKzEsMTU0IEBACitSZXZlcnQgOWQwODBjMDkzNGI4 NDhlZTRhMDUwMTNjNzg2NDFlNjEyZmNjMWUwMworCistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5v cmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9jb25maWcvc2FuaXRpemVycy9CVUlMRC5n bgorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2Nv bmZpZy9zYW5pdGl6ZXJzL0JVSUxELmduCitAQCAtMjcxLDExICsyNzEsMTEgQEAgY29uZmlnKCJh c2FuX2ZsYWdzIikgeworICAgaWYgKGlzX2FzYW4pIHsKKyAgICAgY2ZsYWdzICs9IFsgIi1mc2Fu aXRpemU9YWRkcmVzcyIgXQorICAgICBpZiAoaXNfd2luKSB7CistICAgICAgaWYgKCFkZWZpbmVk KGFzYW5fd2luX2Jsb2NrbGlzdF9wYXRoKSkgeworLSAgICAgICAgYXNhbl93aW5fYmxvY2tsaXN0 X3BhdGggPQorKyAgICAgIGlmICghZGVmaW5lZChhc2FuX3dpbl9ibGFja2xpc3RfcGF0aCkpIHsK KysgICAgICAgIGFzYW5fd2luX2JsYWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAgICByZWJhc2Vf cGF0aCgiLy90b29scy9tZW1vcnkvYXNhbi9ibG9ja2xpc3Rfd2luLnR4dCIsIHJvb3RfYnVpbGRf ZGlyKQorICAgICAgIH0KKy0gICAgICBjZmxhZ3MgKz0gWyAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0 PSRhc2FuX3dpbl9ibG9ja2xpc3RfcGF0aCIgXQorKyAgICAgIGNmbGFncyArPSBbICItZnNhbml0 aXplLWJsYWNrbGlzdD0kYXNhbl93aW5fYmxhY2tsaXN0X3BhdGgiIF0KKyAgICAgfQorICAgfQor IH0KK0BAIC0zMDUsMTMgKzMwNSwxMyBAQCBjb25maWcoImxpbmtfc2hhcmVkX2xpYnJhcnkiKSB7 CisgY29uZmlnKCJjZmlfZmxhZ3MiKSB7CisgICBjZmxhZ3MgPSBbXQorICAgaWYgKGlzX2NmaSAm JiBjdXJyZW50X3Rvb2xjaGFpbiA9PSBkZWZhdWx0X3Rvb2xjaGFpbikgeworLSAgICBpZiAoIWRl ZmluZWQoY2ZpX2lnbm9yZWxpc3RfcGF0aCkpIHsKKy0gICAgICBjZmlfaWdub3JlbGlzdF9wYXRo ID0KKysgICAgaWYgKCFkZWZpbmVkKGNmaV9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAgICBjZmlf YmxhY2tsaXN0X3BhdGggPQorICAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy9jZmkvaWdu b3Jlcy50eHQiLCByb290X2J1aWxkX2RpcikKKyAgICAgfQorICAgICBjZmxhZ3MgKz0gWworICAg ICAgICItZnNhbml0aXplPWNmaS12Y2FsbCIsCistICAgICAgIi1mc2FuaXRpemUtaWdub3JlbGlz dD0kY2ZpX2lnbm9yZWxpc3RfcGF0aCIsCisrICAgICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSRj ZmlfYmxhY2tsaXN0X3BhdGgiLAorICAgICBdCisgCisgICAgIGlmICh1c2VfY2ZpX2Nhc3QpIHsK K0BAIC00MDgsMTQgKzQwOCwxNCBAQCBjb25maWcoIm1zYW5fZmxhZ3MiKSB7CisgICBpZiAoaXNf bXNhbikgeworICAgICBhc3NlcnQoaXNfbGludXggfHwgaXNfY2hyb21lb3MsCisgICAgICAgICAg ICAibXNhbiBvbmx5IHN1cHBvcnRlZCBvbiBsaW51eCB4ODZfNjQvQ2hyb21lT1MiKQorLSAgICBp ZiAoIWRlZmluZWQobXNhbl9pZ25vcmVsaXN0X3BhdGgpKSB7CistICAgICAgbXNhbl9pZ25vcmVs aXN0X3BhdGggPQorLSAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy9tc2FuL2lnbm9yZWxp c3QudHh0Iiwgcm9vdF9idWlsZF9kaXIpCisrICAgIGlmICghZGVmaW5lZChtc2FuX2JsYWNrbGlz dF9wYXRoKSkgeworKyAgICAgIG1zYW5fYmxhY2tsaXN0X3BhdGggPQorKyAgICAgICAgICByZWJh c2VfcGF0aCgiLy90b29scy9tc2FuL2JsYWNrbGlzdC50eHQiLCByb290X2J1aWxkX2RpcikKKyAg ICAgfQorICAgICBjZmxhZ3MgPSBbCisgICAgICAgIi1mc2FuaXRpemU9bWVtb3J5IiwKKyAgICAg ICAiLWZzYW5pdGl6ZS1tZW1vcnktdHJhY2stb3JpZ2lucz0kbXNhbl90cmFja19vcmlnaW5zIiwK Ky0gICAgICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSRtc2FuX2lnbm9yZWxpc3RfcGF0aCIsCisr ICAgICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSRtc2FuX2JsYWNrbGlzdF9wYXRoIiwKKyAgICAg XQorICAgfQorIH0KK0BAIC00MjMsMTMgKzQyMywxMyBAQCBjb25maWcoIm1zYW5fZmxhZ3MiKSB7 CisgY29uZmlnKCJ0c2FuX2ZsYWdzIikgeworICAgaWYgKGlzX3RzYW4pIHsKKyAgICAgYXNzZXJ0 KGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9zLCAidHNhbiBvbmx5IHN1cHBvcnRlZCBvbiBsaW51eCB4 ODZfNjQiKQorLSAgICBpZiAoIWRlZmluZWQodHNhbl9pZ25vcmVsaXN0X3BhdGgpKSB7CistICAg ICAgdHNhbl9pZ25vcmVsaXN0X3BhdGggPQorKyAgICBpZiAoIWRlZmluZWQodHNhbl9ibGFja2xp c3RfcGF0aCkpIHsKKysgICAgICB0c2FuX2JsYWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAgcmVi YXNlX3BhdGgoIi8vdG9vbHMvbWVtb3J5L3RzYW5fdjIvaWdub3Jlcy50eHQiLCByb290X2J1aWxk X2RpcikKKyAgICAgfQorICAgICBjZmxhZ3MgPSBbCisgICAgICAgIi1mc2FuaXRpemU9dGhyZWFk IiwKKy0gICAgICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSR0c2FuX2lnbm9yZWxpc3RfcGF0aCIs CisrICAgICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSR0c2FuX2JsYWNrbGlzdF9wYXRoIiwKKyAg ICAgXQorICAgfQorIH0KK0BAIC00MzcsOCArNDM3LDggQEAgY29uZmlnKCJ0c2FuX2ZsYWdzIikg eworIGNvbmZpZygidWJzYW5fZmxhZ3MiKSB7CisgICBjZmxhZ3MgPSBbXQorICAgaWYgKGlzX3Vi c2FuKSB7CistICAgIGlmICghZGVmaW5lZCh1YnNhbl9pZ25vcmVsaXN0X3BhdGgpKSB7CistICAg ICAgdWJzYW5faWdub3JlbGlzdF9wYXRoID0KKysgICAgaWYgKCFkZWZpbmVkKHVic2FuX2JsYWNr bGlzdF9wYXRoKSkgeworKyAgICAgIHVic2FuX2JsYWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAg cmViYXNlX3BhdGgoIi8vdG9vbHMvdWJzYW4vaWdub3JlbGlzdC50eHQiLCByb290X2J1aWxkX2Rp cikKKyAgICAgfQorICAgICBjZmxhZ3MgKz0gWworQEAgLTQ1NSw3ICs0NTUsNyBAQCBjb25maWco InVic2FuX2ZsYWdzIikgeworICAgICAgICItZnNhbml0aXplPXNpZ25lZC1pbnRlZ2VyLW92ZXJm bG93IiwKKyAgICAgICAiLWZzYW5pdGl6ZT11bnJlYWNoYWJsZSIsCisgICAgICAgIi1mc2FuaXRp emU9dmxhLWJvdW5kIiwKKy0gICAgICAiLWZzYW5pdGl6ZS1pZ25vcmVsaXN0PSR1YnNhbl9pZ25v cmVsaXN0X3BhdGgiLAorKyAgICAgICItZnNhbml0aXplLWJsYWNrbGlzdD0kdWJzYW5fYmxhY2ts aXN0X3BhdGgiLAorICAgICBdCisgICAgIGlmICghaXNfY2xhbmcpIHsKKyAgICAgICAjIFRoZXNl IGV4cG9zZXMgdG9vIG11Y2ggaWxsZWdhbCBDKysxNCBjb2RlIHRvIGNvbXBpbGUgb24gYW55dGhp bmcgc3RyaWN0ZXIgdGhhbiBjbGFuZzoKK0BAIC00OTYsOCArNDk2LDggQEAgY29uZmlnKCJ1YnNh bl9ub19yZWNvdmVyIikgeworIAorIGNvbmZpZygidWJzYW5fc2VjdXJpdHlfZmxhZ3MiKSB7Cisg ICBpZiAoaXNfdWJzYW5fc2VjdXJpdHkpIHsKKy0gICAgaWYgKCFkZWZpbmVkKHVic2FuX3NlY3Vy aXR5X2lnbm9yZWxpc3RfcGF0aCkpIHsKKy0gICAgICB1YnNhbl9zZWN1cml0eV9pZ25vcmVsaXN0 X3BhdGggPQorKyAgICBpZiAoIWRlZmluZWQodWJzYW5fc2VjdXJpdHlfYmxhY2tsaXN0X3BhdGgp KSB7CisrICAgICAgdWJzYW5fc2VjdXJpdHlfYmxhY2tsaXN0X3BhdGggPQorICAgICAgICAgICBy ZWJhc2VfcGF0aCgiLy90b29scy91YnNhbi9zZWN1cml0eV9pZ25vcmVsaXN0LnR4dCIsIHJvb3Rf YnVpbGRfZGlyKQorICAgICB9CisgICAgIGNmbGFncyA9IFsKK0BAIC01MDUsNyArNTA1LDcgQEAg Y29uZmlnKCJ1YnNhbl9zZWN1cml0eV9mbGFncyIpIHsKKyAgICAgICAiLWZzYW5pdGl6ZT1zaGlm dCIsCisgICAgICAgIi1mc2FuaXRpemU9c2lnbmVkLWludGVnZXItb3ZlcmZsb3ciLAorICAgICAg ICItZnNhbml0aXplPXZsYS1ib3VuZCIsCistICAgICAgIi1mc2FuaXRpemUtaWdub3JlbGlzdD0k dWJzYW5fc2VjdXJpdHlfaWdub3JlbGlzdF9wYXRoIiwKKysgICAgICAiLWZzYW5pdGl6ZS1ibGFj a2xpc3Q9JHVic2FuX3NlY3VyaXR5X2JsYWNrbGlzdF9wYXRoIiwKKyAgICAgXQorICAgfQorIH0K K0BAIC01MTgsMTMgKzUxOCwxMyBAQCBjb25maWcoInVic2FuX251bGxfZmxhZ3MiKSB7CisgCisg Y29uZmlnKCJ1YnNhbl92cHRyX2ZsYWdzIikgeworICAgaWYgKGlzX3Vic2FuX3ZwdHIpIHsKKy0g ICAgaWYgKCFkZWZpbmVkKHVic2FuX3ZwdHJfaWdub3JlbGlzdF9wYXRoKSkgeworLSAgICAgIHVi c2FuX3ZwdHJfaWdub3JlbGlzdF9wYXRoID0KKysgICAgaWYgKCFkZWZpbmVkKHVic2FuX3ZwdHJf YmxhY2tsaXN0X3BhdGgpKSB7CisrICAgICAgdWJzYW5fdnB0cl9ibGFja2xpc3RfcGF0aCA9Cisg ICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xzL3Vic2FuL3ZwdHJfaWdub3JlbGlzdC50eHQi LCByb290X2J1aWxkX2RpcikKKyAgICAgfQorICAgICBjZmxhZ3MgPSBbCisgICAgICAgIi1mc2Fu aXRpemU9dnB0ciIsCistICAgICAgIi1mc2FuaXRpemUtaWdub3JlbGlzdD0kdWJzYW5fdnB0cl9p Z25vcmVsaXN0X3BhdGgiLAorKyAgICAgICItZnNhbml0aXplLWJsYWNrbGlzdD0kdWJzYW5fdnB0 cl9ibGFja2xpc3RfcGF0aCIsCisgICAgIF0KKyAgICAgaWYgKCFpc19jbGFuZykgeworICAgICAg ICMgQ2xhbmcgc3BlY2lmaWMgZmxhZzoKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkX292ZXJyaWRlcy9idWlsZC5nbmkKKysrKyBxdDYtd2Vi ZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZF9vdmVycmlkZXMvYnVpbGQu Z25pCitAQCAtNDMsMTUgKzQzLDE1IEBAIGRlY2xhcmVfYXJncygpIHsKKyAjIEFsbG93cyBkaWZm ZXJlbnQgcHJvamVjdHMgdG8gc3BlY2lmeSB0aGVpciBvd24gc3VwcHJlc3Npb24vaWdub3JlIGxp c3RzIGZvcgorICMgc2FuaXRpemVyIHRvb2xzLgorICMgYXNhbl9zdXBwcmVzc2lvbnNfZmlsZSA9 ICJwYXRoL3RvL2FzYW5fc3VwcHJlc3Npb25zLmNjIgorLSMgYXNhbl93aW5faWdub3JlbGlzdF9w YXRoID0gInBhdGgvdG8vYXNhbi9ibG9ja2xpc3Rfd2luLnR4dCIKKysjIGFzYW5fd2luX2JsYWNr bGlzdF9wYXRoID0gInBhdGgvdG8vYXNhbi9ibG9ja2xpc3Rfd2luLnR4dCIKKyAjIGxzYW5fc3Vw cHJlc3Npb25zX2ZpbGUgPSAicGF0aC90by9sc2FuX3N1cHByZXNzaW9ucy5jYyIKKyAjIHRzYW5f c3VwcHJlc3Npb25zX2ZpbGUgPSAicGF0aC90by90c2FuX3N1cHByZXNzaW9ucy5jYyIKKy0jIHRz YW5faWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vdHNhbi9pZ25vcmVzLnR4dCIKKy0jIG1zYW5f aWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vbXNhbi9pZ25vcmVsaXN0LnR4dCIKKy0jIHVic2Fu X2lnbm9yZWxpc3RfcGF0aCA9ICJwYXRoL3RvL3Vic2FuL2lnbm9yZWxpc3QudHh0IgorLSMgdWJz YW5fdnB0cl9pZ25vcmVsaXN0X3BhdGggPSAicGF0aC90by91YnNhbi92cHRyX2lnbm9yZWxpc3Qu dHh0IgorLSMgdWJzYW5fc2VjdXJpdHlfaWdub3JlbGlzdF9wYXRoID0gInBhdGgvdG8vdWJzYW4v c2VjdXJpdHlfaWdub3JlbGlzdC50eHQiCistIyBjZmlfaWdub3JlbGlzdF9wYXRoID0gInBhdGgv dG8vY2ZpL2lnbm9yZXMudHh0IgorKyMgdHNhbl9ibGFja2xpc3RfcGF0aCA9ICJwYXRoL3RvL3Rz YW4vaWdub3Jlcy50eHQiCisrIyBtc2FuX2JsYWNrbGlzdF9wYXRoID0gInBhdGgvdG8vbXNhbi9i bGFja2xpc3QudHh0IgorKyMgdWJzYW5fYmxhY2tsaXN0X3BhdGggPSAicGF0aC90by91YnNhbi9i bGFja2xpc3QudHh0IgorKyMgdWJzYW5fdnB0cl9ibGFja2xpc3RfcGF0aCA9ICJwYXRoL3RvL3Vi c2FuL3ZwdHJfYmxhY2tsaXN0LnR4dCIKKysjIHVic2FuX3NlY3VyaXR5X2JsYWNrbGlzdF9wYXRo ID0gInBhdGgvdG8vdWJzYW4vc2VjdXJpdHlfYmxhY2tsaXN0LnR4dCIKKysjIGNmaV9ibGFja2xp c3RfcGF0aCA9ICJwYXRoL3RvL2NmaS9pZ25vcmVzLnR4dCIKKyAKKyBpZiAoaG9zdF9vcyA9PSAi bWFjIiB8fCBpc19hcHBsZSkgeworICAgIyBOZWVkZWQgZm9yIGlzX2FwcGxlIHdoZW4gdGFyZ2V0 aW5nIG1hY09TIG9yIGlPUywgaW5kZXBlbmRlbnQgb2YgaG9zdC4KZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDEtY2hyb21pdW0tMTAyLWZlbmNlZF9mcmFtZV91 dGlscy1pbmNsdWRlLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMS1j aHJvbWl1bS0xMDItZmVuY2VkX2ZyYW1lX3V0aWxzLWluY2x1ZGUucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mNDFjNzk4NDg0MGQKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAxLWNocm9taXVtLTEwMi1mZW5j ZWRfZnJhbWVfdXRpbHMtaW5jbHVkZS5wYXRjaApAQCAtMCwwICsxLDIwIEBACitGcm9tIDdjMTM1 YTI5MTE4NGI1OWE1OTY0M2VkNmE4YzQwYjQ0MDVhYzAxNzUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+CitEYXRl OiBXZWQsIDI3IEFwciAyMDIyIDE2OjAxOjAxICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIElXWVU6 IGFkZCBjc3RyaW5nIGZvciBzdGQ6OnN0cmxlbiBpbiBmZW5jZWRfZnJhbWVfdXRpbHMKKworLS0t CisgdGhpcmRfcGFydHkvYmxpbmsvY29tbW9uL2ZlbmNlZF9mcmFtZS9mZW5jZWRfZnJhbWVfdXRp bHMuY2MgfCAyICsrCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQorCistLS0gcXQ2 LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9i bGluay9jb21tb24vZmVuY2VkX2ZyYW1lL2ZlbmNlZF9mcmFtZV91dGlscy5jYworKysrIHF0Ni13 ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JsaW5rL2Nv bW1vbi9mZW5jZWRfZnJhbWUvZmVuY2VkX2ZyYW1lX3V0aWxzLmNjCitAQCAtNiw2ICs2LDggQEAK KyAKKyAjaW5jbHVkZSA8Y3N0cmluZz4KKyAKKysjaW5jbHVkZSA8Y3N0cmluZz4KKysKKyAjaW5j bHVkZSAiYmFzZS9ndWlkLmgiCisgI2luY2x1ZGUgImJhc2Uvc3RyaW5ncy9zdHJpbmdfdXRpbC5o IgorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMi1jaHJv bWl1bS0xMDItcmVnZXhfcGF0dGVybi1hcnJheS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMDItY2hyb21pdW0tMTAyLXJlZ2V4X3BhdHRlcm4tYXJyYXkucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40MjBlZjk0MWEzODYKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAyLWNocm9taXVt LTEwMi1yZWdleF9wYXR0ZXJuLWFycmF5LnBhdGNoCkBAIC0wLDAgKzEsMTQgQEAKKy0tLSBxdDYt d2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2NvbXBvbmVudHMvYXV0 b2ZpbGwvY29yZS9icm93c2VyL0JVSUxELmduCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMv M3JkcGFydHkvY2hyb21pdW0vY29tcG9uZW50cy9hdXRvZmlsbC9jb3JlL2Jyb3dzZXIvQlVJTEQu Z24KK0BAIC0zNCw2ICszNCwxMSBAQCBhY3Rpb24oInJlZ2V4X3BhdHRlcm5zX2lubF9oIikgewor IH0KKyAKKyBqdW1ib19zdGF0aWNfbGlicmFyeSgiYnJvd3NlciIpIHsKKysgIGlmIChpc19jbGFu ZykgeworKyAgICBjZmxhZ3MgPSBbCisrICAgICAgIi1mYnJhY2tldC1kZXB0aD0xMDAwIiwKKysg ICAgXQorKyAgfQorICAgc291cmNlcyA9IFsKKyAgICAgImFkZHJlc3Nfbm9ybWFsaXphdGlvbl9t YW5hZ2VyLmNjIiwKKyAgICAgImFkZHJlc3Nfbm9ybWFsaXphdGlvbl9tYW5hZ2VyLmgiLApkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMy1jaHJvbWl1bS1pNjg2 LXZhYXBpLWZwZXJtaXNzaXZlLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDEwMy1jaHJvbWl1bS1pNjg2LXZhYXBpLWZwZXJtaXNzaXZlLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzA4ZDU2N2EwNGRjCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMy1jaHJvbWl1bS1pNjg2LXZhYXBp LWZwZXJtaXNzaXZlLnBhdGNoCkBAIC0wLDAgKzEsMjMgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYu NC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2dwdS92YWFwaS9CVUlMRC5nbgor KysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2dwdS92 YWFwaS9CVUlMRC5nbgorQEAgLTE0LDYgKzE0LDEyIEBAIGltcG9ydCgiLy91aS9nbC9mZWF0dXJl cy5nbmkiKQorIGFzc2VydChpc19saW51eCB8fCBpc19jaHJvbWVvcykKKyBhc3NlcnQodXNlX3Zh YXBpKQorIAorK2NvbmZpZygidmFhcGlfcGVybWlzc2l2ZSIpIHsKKysgIGlmICh0YXJnZXRfY3B1 ID09ICJ4ODYiKSB7CisrICAgIGNmbGFncyA9IFsgIi1mcGVybWlzc2l2ZSIgXQorKyAgfQorK30K KysKKyBnZW5lcmF0ZV9zdHVicygibGlidmFfc3R1YnMiKSB7CisgICBleHRyYV9oZWFkZXIgPSAi dmFfc3R1Yl9oZWFkZXIuZnJhZ21lbnQiCisgICBzaWdzID0gWyAidmEuc2lncyIgXQorQEAgLTg5 LDYgKzk1LDcgQEAgc291cmNlX3NldCgidmFhcGkiKSB7CisgICBjb25maWdzICs9IFsKKyAgICAg Ii8vYnVpbGQvY29uZmlnL2xpbnV4L2xpYnZhIiwKKyAgICAgIi8vdGhpcmRfcGFydHkvbGlidnB4 OmxpYnZweF9jb25maWciLAorKyAgICAiOnZhYXBpX3Blcm1pc3NpdmUiLAorICAgXQorIAorICAg ZGVwcyA9IFsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDQt Y2hyb21pdW0tbGlieG1sLXVuYnVuZGxlLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDEwNC1jaHJvbWl1bS1saWJ4bWwtdW5idW5kbGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iYWNhNDg0YWJjNGEKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA0LWNocm9taXVtLWxpYnhtbC11bmJ1 bmRsZS5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmln L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9saW51eC91bmJ1bmRsZS9saWJ4bWwuZ24KKysr KyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9saW51eC91 bmJ1bmRsZS9saWJ4bWwuZ24KK0BAIC0xOSw2ICsxOSw3IEBAIHN0YXRpY19saWJyYXJ5KCJsaWJ4 bWxfdXRpbHMiKSB7CisgICAgICI6eG1sX3JlYWRlciIsCisgICAgICI6eG1sX3dyaXRlciIsCisg ICAgICIvL2Jhc2UvdGVzdDp0ZXN0X3N1cHBvcnQiLAorKyAgICAiLy9zZXJ2aWNlcy9kYXRhX2Rl Y29kZXI6bGliIiwKKyAgICAgIi8vc2VydmljZXMvZGF0YV9kZWNvZGVyOnhtbF9wYXJzZXJfZnV6 emVyX2RlcHMiLAorICAgXQorICAgc291cmNlcyA9IFsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDUtY2hyb21pdW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWph dmEucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA1LWNocm9taXVtLXJl dmVydC1kcm9wLW9mLXN5c3RlbS1qYXZhLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uZDZhYmY3YWRjYWJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNS1jaHJvbWl1bS1yZXZlcnQtZHJvcC1vZi1zeXN0ZW0t amF2YS5wYXRjaApAQCAtMCwwICsxLDE1IEBACitUaGlzIHdhcyBkcm9wcGVkIGZvciBzb21lIHJl YXNvbiBpbiA2OTUxYzM3Y2VjZDA1OTc5YjIzMmEzOWU1YzEwZTYzNDZhMGY3NGVmCistLS0gcXQ2 LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9j bG9zdXJlX2NvbXBpbGVyL2NvbXBpbGVyLnB5CisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY2xvc3VyZV9jb21waWxlci9jb21waWxlci5w eQorQEAgLTEzLDggKzEzLDkgQEAgaW1wb3J0IHN1YnByb2Nlc3MKKyAKKyAKKyBfQ1VSUkVOVF9E SVIgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKKy1fSkFWQV9QQVRI ID0gb3MucGF0aC5qb2luKF9DVVJSRU5UX0RJUiwgIi4uIiwgImpkayIsICJjdXJyZW50IiwgImJp biIsICJqYXZhIikKKy1hc3NlcnQgb3MucGF0aC5pc2ZpbGUoX0pBVkFfUEFUSCksICJqYXZhIG9u bHkgYWxsb3dlZCBpbiBhbmRyb2lkIGJ1aWxkcyIKKytfSkFWQV9CSU4gPSAiamF2YSIKKytfSkRL X1BBVEggPSBvcy5wYXRoLmpvaW4oX0NVUlJFTlRfRElSLCAiLi4iLCAiamRrIiwgImN1cnJlbnQi LCAiYmluIiwgImphdmEiKQorK19KQVZBX1BBVEggPSBfSkRLX1BBVEggaWYgb3MucGF0aC5pc2Zp bGUoX0pES19QQVRIKSBlbHNlIF9KQVZBX0JJTgorIAorIGNsYXNzIENvbXBpbGVyKG9iamVjdCk6 CisgICAiIiJSdW5zIHRoZSBDbG9zdXJlIGNvbXBpbGVyIG9uIGdpdmVuIHNvdXJjZSBmaWxlcyB0 byB0eXBlY2hlY2sgdGhlbQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDEwNi1jaHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDEwNi1jaHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTY0OGY3NjRlYTE5Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNi1jaHJvbWl1bS1zeXN0ZW0t bm9kZWpzLnBhdGNoCkBAIC0wLDAgKzEsMjkgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9y aWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L25vZGUvbm9kZS5weQorKysrIHF0 Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L25vZGUv bm9kZS5weQorQEAgLTE4LDI1ICsxOCw3IEBAIGRlZiB3aGljaChjbWQpOgorICAgICByZXR1cm4g Tm9uZQorIAorIGRlZiBHZXRCaW5hcnlQYXRoKCk6CistICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dp bjMyJzoKKy0gICAgbm9kZWpzID0gd2hpY2goJ25vZGUuZXhlJykKKy0gICAgaWYgbm9kZWpzOgor LSAgICAgIHJldHVybiBub2RlanMKKy0gIGVsc2U6CistICAgIG5vZGVqcyA9IHdoaWNoKCdub2Rl anMnKQorLSAgICBpZiBub2RlanM6CistICAgICAgcmV0dXJuIG5vZGVqcworLSAgICBub2RlanMg PSB3aGljaCgnbm9kZScpCistICAgIGlmIG5vZGVqczoKKy0gICAgICByZXR1cm4gbm9kZWpzCist CistICBkYXJ3aW5fbmFtZSA9ICgnbm9kZS1kYXJ3aW4tYXJtNjQnIGlmIHBsYXRmb3JtLm1hY2hp bmUoKSA9PSAnYXJtNjQnIGVsc2UKKy0gICAgICAgICAgICAgICAgICdub2RlLWRhcndpbi14NjQn KQorLSAgcmV0dXJuIG9zX3BhdGguam9pbihvc19wYXRoLmRpcm5hbWUoX19maWxlX18pLCAqewor LSAgICAnRGFyd2luJzogKCdtYWMnLCBkYXJ3aW5fbmFtZSwgJ2JpbicsICdub2RlJyksCistICAg ICdMaW51eCc6ICgnbGludXgnLCAnbm9kZS1saW51eC14NjQnLCAnYmluJywgJ25vZGUnKSwKKy0g ICAgJ1dpbmRvd3MnOiAoJ3dpbicsICdub2RlLmV4ZScpLAorLSAgfVtwbGF0Zm9ybS5zeXN0ZW0o KV0pCisrICByZXR1cm4gIi91c3IvYmluL25vZGUiCisgCisgCisgZGVmIFJ1bk5vZGUoY21kX3Bh cnRzLCBzdGRvdXQ9Tm9uZSk6CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTA3LWNocm9taXVtLWNyb3NzLWJ1aWxkLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDEwNy1jaHJvbWl1bS1jcm9zcy1idWlsZC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ0OTU0ZGZiYjFlNQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDctY2hyb21pdW0tY3Jvc3MtYnVp bGQucGF0Y2gKQEAgLTAsMCArMSw2NSBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9z cmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL2NvbXBpbGVyL0JVSUxELmduCisrKysg cXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL2Nv bXBpbGVyL0JVSUxELmduCitAQCAtNTgsNiArNTgsMTAgQEAgaWYgKCFpc19jbGFuZykgeworIH0K KyAKKyBkZWNsYXJlX2FyZ3MoKSB7CisrICBpc19tdXNsID0gZmFsc2UKKyt9CisrCisrZGVjbGFy ZV9hcmdzKCkgeworICAgIyBOb3JtYWxseSwgQW5kcm9pZCBidWlsZHMgYXJlIGxpZ2h0bHkgb3B0 aW1pemVkLCBldmVuIGZvciBkZWJ1ZyBidWlsZHMsIHRvCisgICAjIGtlZXAgYmluYXJ5IHNpemUg ZG93bi4gU2V0dGluZyB0aGlzIGZsYWcgdG8gdHJ1ZSBkaXNhYmxlcyBzdWNoIG9wdGltaXphdGlv bgorICAgYW5kcm9pZF9mdWxsX2RlYnVnID0gZmFsc2UKK0BAIC05NzAsOCArOTc0LDEzIEBAIGNv bmZpZygiY29tcGlsZXJfY3B1X2FiaSIpIHsKKyAgICAgICB9CisgICAgIH0gZWxzZSBpZiAoY3Vy cmVudF9jcHUgPT0gImFybTY0IikgeworICAgICAgIGlmIChpc19jbGFuZyAmJiAhaXNfYW5kcm9p ZCAmJiAhaXNfbmFjbCAmJiAhaXNfZnVjaHNpYSkgeworLSAgICAgICAgY2ZsYWdzICs9IFsgIi0t dGFyZ2V0PWFhcmNoNjQtbGludXgtZ251IiBdCistICAgICAgICBsZGZsYWdzICs9IFsgIi0tdGFy Z2V0PWFhcmNoNjQtbGludXgtZ251IiBdCisrICAgICAgICBpZiAoaXNfbXVzbCkgeworKyAgICAg ICAgICBjZmxhZ3MgKz0gWyAiLS10YXJnZXQ9YWFyY2g2NC1saW51eC1tdXNsIiBdCisrICAgICAg ICAgIGxkZmxhZ3MgKz0gWyAiLS10YXJnZXQ9YWFyY2g2NC1saW51eC1tdXNsIiBdCisrICAgICAg ICB9IGVsc2UgeworKyAgICAgICAgICBjZmxhZ3MgKz0gWyAiLS10YXJnZXQ9YWFyY2g2NC1saW51 eC1nbnUiIF0KKysgICAgICAgICAgbGRmbGFncyArPSBbICItLXRhcmdldD1hYXJjaDY0LWxpbnV4 LWdudSIgXQorKyAgICAgICAgfQorICAgICAgIH0KKyAgICAgICBpZiAoaXNfYW5kcm9pZCkgewor ICAgICAgICAgIyBPdXRsaW5lIGF0b21pY3MgY3Jhc2ggb24gRXh5bm9zIDk4MTAuIGh0dHA6Ly9j cmJ1Zy5jb20vMTI3Mjc5NQorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFy dHkvY2hyb21pdW0vYnVpbGQvdG9vbGNoYWluL2xpbnV4L3VuYnVuZGxlL0JVSUxELmduCisrKysg cXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvdG9vbGNoYWlu L2xpbnV4L3VuYnVuZGxlL0JVSUxELmduCitAQCAtMzksMyArMzksMjIgQEAgZ2NjX3Rvb2xjaGFp bigiaG9zdCIpIHsKKyAgICAgY3VycmVudF9vcyA9IGN1cnJlbnRfb3MKKyAgIH0KKyB9CisrCisr Z2NjX3Rvb2xjaGFpbigidjhfc25hcHNob3RfY3Jvc3MiKSB7CisrICBjYyA9IGdldGVudigiQlVJ TERfQ0MiKQorKyAgY3h4ID0gZ2V0ZW52KCJCVUlMRF9DWFgiKQorKyAgYXIgPSBnZXRlbnYoIkJV SUxEX0FSIikKKysgIG5tID0gZ2V0ZW52KCJCVUlMRF9OTSIpCisrICBsZCA9IGN4eAorKworKyAg ZXh0cmFfY2ZsYWdzID0gZ2V0ZW52KCJCVUlMRF9DRkxBR1MiKQorKyAgZXh0cmFfY3BwZmxhZ3Mg PSBnZXRlbnYoIkJVSUxEX0NQUEZMQUdTIikKKysgIGV4dHJhX2N4eGZsYWdzID0gZ2V0ZW52KCJC VUlMRF9DWFhGTEFHUyIpCisrICBleHRyYV9sZGZsYWdzID0gZ2V0ZW52KCJCVUlMRF9MREZMQUdT IikKKysKKysgIHRvb2xjaGFpbl9hcmdzID0geworKyAgICBjdXJyZW50X2NwdSA9IGhvc3RfY3B1 CisrICAgIGN1cnJlbnRfb3MgPSBob3N0X29zCisrICAgIHY4X2N1cnJlbnRfY3B1ID0gdGFyZ2V0 X2NwdQorKyAgfQorK30KKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9saW51eC9wa2dfY29uZmlnLmduaQorKysrIHF0Ni13ZWJl bmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9saW51eC9wa2df Y29uZmlnLmduaQorQEAgLTkyLDcgKzkyLDcgQEAgdGVtcGxhdGUoInBrZ19jb25maWciKSB7Cisg ICBhc3NlcnQoZGVmaW5lZChpbnZva2VyLnBhY2thZ2VzKSwKKyAgICAgICAgICAiVmFyaWFibGUg fHBhY2thZ2VzfCBtdXN0IGJlIGRlZmluZWQgdG8gYmUgYSBsaXN0IGluIHBrZ19jb25maWcuIikK KyAgIGNvbmZpZyh0YXJnZXRfbmFtZSkgeworLSAgICBpZiAoaG9zdF90b29sY2hhaW4gPT0gY3Vy cmVudF90b29sY2hhaW4pIHsKKysgICAgaWYgKGN1cnJlbnRfY3B1ICE9IHRhcmdldF9jcHUpIHsK KyAgICAgICBhcmdzID0gY29tbW9uX3BrZ19jb25maWdfYXJncyArIGhvc3RfcGtnX2NvbmZpZ19h cmdzICsgaW52b2tlci5wYWNrYWdlcworICAgICB9IGVsc2UgeworICAgICAgIGFyZ3MgPSBjb21t b25fcGtnX2NvbmZpZ19hcmdzICsgcGtnX2NvbmZpZ19hcmdzICsgaW52b2tlci5wYWNrYWdlcwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOC1jaHJvbWl1bS1j dXJzZWReVXNjb3BlZF9maWxlLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDEwOC1jaHJvbWl1bS1jdXJzZWReVXNjb3BlZF9maWxlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZGQzMWRhOTc5MGFkCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOC1jaHJvbWl1bS1jdXJzZWReVXNjb3Bl ZF9maWxlLnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9y aWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZmlsZXMvc2NvcGVkX2ZpbGVfbGludXguY2MK KysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2ZpbGVz L3Njb3BlZF9maWxlX2xpbnV4LmNjCitAQCAtNzcsMTUgKzc3LDMgQEAgYm9vbCBJc0ZET3duZWQo aW50IGZkKSB7CisgfQorIAorIH0gIC8vIG5hbWVzcGFjZSBiYXNlCistCistZXh0ZXJuICJDIiB7 CistCistaW50IF9fY2xvc2UoaW50KTsKKy0KKy1fX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJk ZWZhdWx0IiksIG5vaW5saW5lKSkgaW50IGNsb3NlKGludCBmZCkgeworLSAgaWYgKGJhc2U6Oklz RkRPd25lZChmZCkgJiYgZ19pc19vd25lcnNoaXBfZW5mb3JjZWQpCistICAgIENyYXNoT25GZE93 bmVyc2hpcFZpb2xhdGlvbigpOworLSAgcmV0dXJuIF9fY2xvc2UoZmQpOworLX0KKy0KKy19ICAv LyBleHRlcm4gIkMiCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MTA5LWNocm9taXVtLWFhcmNoNjQtbXVzbC1tZW1vcnktdGFnZ2luZy5wYXRjaCBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDktY2hyb21pdW0tYWFyY2g2NC1tdXNsLW1lbW9yeS10 YWdnaW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMGZm MmEyYTUxYWFhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDEwOS1jaHJvbWl1bS1hYXJjaDY0LW11c2wtbWVtb3J5LXRhZ2dpbmcucGF0Y2gKQEAgLTAs MCArMSwyOSBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hy b21pdW0vYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9jYXRvci90YWdnaW5nLmNjCisrKysg cXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9hbGxvY2F0b3Iv cGFydGl0aW9uX2FsbG9jYXRvci90YWdnaW5nLmNjCitAQCAtMjgsMTMgKzI4LDI1IEBACisgI2Vu ZGlmCisgI2VuZGlmCisgCistI2lmbmRlZiBIQVNfUFJfTVRFX01BQ1JPUworKyNpZm5kZWYgUFJf TVRFX1RDRl9TSElGVAorICNkZWZpbmUgUFJfTVRFX1RDRl9TSElGVCAxCisrI2VuZGlmCisrI2lm bmRlZiBQUl9NVEVfVENGX05PTkUKKyAjZGVmaW5lIFBSX01URV9UQ0ZfTk9ORSAoMFVMIDw8IFBS X01URV9UQ0ZfU0hJRlQpCisrI2VuZGlmCisrI2lmbmRlZiBQUl9NVEVfVENGX1NZTkMKKyAjZGVm aW5lIFBSX01URV9UQ0ZfU1lOQyAoMVVMIDw8IFBSX01URV9UQ0ZfU0hJRlQpCisrI2VuZGlmCisr I2lmbmRlZiBQUl9NVEVfVENGX0FTWU5DCisgI2RlZmluZSBQUl9NVEVfVENGX0FTWU5DICgyVUwg PDwgUFJfTVRFX1RDRl9TSElGVCkKKysjZW5kaWYKKysjaWZuZGVmIFBSX01URV9UQ0ZfTUFTSwor ICNkZWZpbmUgUFJfTVRFX1RDRl9NQVNLICgzVUwgPDwgUFJfTVRFX1RDRl9TSElGVCkKKysjZW5k aWYKKysjaWZuZGVmIFBSX01URV9UQUdfU0hJRlQKKyAjZGVmaW5lIFBSX01URV9UQUdfU0hJRlQg MworKyNlbmRpZgorKyNpZm5kZWYgUFJfTVRFX1RBR19NQVNLCisgI2RlZmluZSBQUl9NVEVfVEFH X01BU0sgKDB4ZmZmZlVMIDw8IFBSX01URV9UQUdfU0hJRlQpCisgI2VuZGlmCisgI2VuZGlmCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEwLWNocm9taXVtLWZp eC1taXNzaW5nLVRFTVBfRkFJTFVSRV9SRVRSWS1tYWNyby5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMTAtY2hyb21pdW0tZml4LW1pc3NpbmctVEVNUF9GQUlMVVJFX1JF VFJZLW1hY3JvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u NTU1OGM1NGNmODAyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDExMC1jaHJvbWl1bS1maXgtbWlzc2luZy1URU1QX0ZBSUxVUkVfUkVUUlktbWFjcm8u cGF0Y2gKQEAgLTAsMCArMSwyMSBAQAorVGhpcyBtYWNybyBpcyBkZWZpbmVkIGluIGdsaWJjLCBi dXQgbm90IG11c2wuCisKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3VpZC9wcm9jZXNzX3V0aWwuaAorKysrIHF0Ni13ZWJl bmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3VpZC9wcm9j ZXNzX3V0aWwuaAorQEAgLTEyLDYgKzEyLDE2IEBACisgI2luY2x1ZGUgPHN0ZGludC5oPgorICNp bmNsdWRlIDxzeXMvdHlwZXMuaD4KKyAKKysvLyBTb21lIGFkZGl0aW9uYWwgZnVuY3Rpb25zCisr I2lmICFkZWZpbmVkKFRFTVBfRkFJTFVSRV9SRVRSWSkKKysjIGRlZmluZSBURU1QX0ZBSUxVUkVf UkVUUlkoZXhwcmVzc2lvbikgXAorKwkoX19leHRlbnNpb25fXwkJCVwKKysJICh7IGxvbmcgaW50 IF9fcmVzdWx0OwkJXAorKwkgIGRvIF9fcmVzdWx0ID0gKGxvbmcgaW50KSAoZXhwcmVzc2lvbik7 IFwKKysJICB3aGlsZSAoX19yZXN1bHQgPT0gLTFMICYmIGVycm5vID09IEVJTlRSKTsgXAorKwkg IF9fcmVzdWx0OyB9KSkKKysjZW5kaWYKKysKKyAvLyBUaGlzIGFkanVzdHMgL3Byb2MvcHJvY2Vz cy9vb21fc2NvcmVfYWRqIHNvIHRoZSBMaW51eCBPT00ga2lsbGVyCisgLy8gd2lsbCBwcmVmZXIg Y2VydGFpbiBwcm9jZXNzIHR5cGVzIG92ZXIgb3RoZXJzLiBUaGUgcmFuZ2UgZm9yIHRoZQorIC8v IGFkanVzdG1lbnQgaXMgWy0xMDAwLCAxMDAwXSwgd2l0aCBbMCwgMTAwMF0gYmVpbmcgdXNlciBh Y2Nlc3NpYmxlLgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEx MS1jaHJvbWl1bS1jc3RkaW50LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDExMS1jaHJvbWl1bS1jc3RkaW50LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uZjU3ODc2MjFiNTc5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDExMS1jaHJvbWl1bS1jc3RkaW50LnBhdGNoCkBAIC0wLDAgKzEs MTAgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVt L25ldC90aGlyZF9wYXJ0eS9xdWljaGUvc3JjL3F1aWNoZS9odHRwMi9hZGFwdGVyL3dpbmRvd19t YW5hZ2VyLmgKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9u ZXQvdGhpcmRfcGFydHkvcXVpY2hlL3NyYy9xdWljaGUvaHR0cDIvYWRhcHRlci93aW5kb3dfbWFu YWdlci5oCitAQCAtMyw2ICszLDcgQEAKKyAKKyAjaW5jbHVkZSA8c3RkZGVmLmg+CisgCisrI2lu Y2x1ZGUgPGNzdGRpbnQ+CisgI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisgCisgI2luY2x1ZGUgInF1 aWNoZS9jb21tb24vcGxhdGZvcm0vYXBpL3F1aWNoZV9leHBvcnQuaCIKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTItY2hyb21pdW0tdW5pc3RkLmgucGF0Y2gg Yi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEyLWNocm9taXVtLXVuaXN0ZC5oLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmIyNDJhODA4YWNl Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMi1j aHJvbWl1bS11bmlzdGQuaC5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5oCisrKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5o CitAQCAtMTMsNiArMTMsNyBAQAorIAorICNpbmNsdWRlIDxzdHJpbmc+CisgI2luY2x1ZGUgPHZl Y3Rvcj4KKysjaW5jbHVkZSA8dW5pc3RkLmg+CisgCisgI2luY2x1ZGUgInNhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvY2FwYWJpbGl0eS5oIgorICNpbmNsdWRlICJzYW5kYm94L3NhbmRib3hf ZXhwb3J0LmgiCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEz LWNocm9taXVtLXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDExMy1jaHJvbWl1bS1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM4NGZkMGFmMTg2ZAotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTMtY2hyb21pdW0tcHRocmVh ZC1zdGFja3NpemUucGF0Y2gKQEAgLTAsMCArMSwxNiBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40 LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhy ZWFkX2xpbnV4LmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21p dW0vYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjCitAQCAtNDM3LDggKzQz NywxMyBAQCB2b2lkIFRlcm1pbmF0ZU9uVGhyZWFkKCkge30KKyAKKyBzaXplX3QgR2V0RGVmYXVs dFRocmVhZFN0YWNrU2l6ZShjb25zdCBwdGhyZWFkX2F0dHJfdCYgYXR0cmlidXRlcykgeworICNp ZiAhZGVmaW5lZChUSFJFQURfU0FOSVRJWkVSKQorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAg IHJldHVybiAwOworICNlbHNlCisrICAvLyBtdXNsIGxpYmNzIGRlZmF1bHQgaXMgdG9vIHNtYWxs LCB1c2UgOG1iIGxpa2UgZ2xpYmMKKysgIHJldHVybiAoMSA8PCAyMyk7CisrI2VuZGlmCisrI2Vs c2UKKyAgIC8vIFRocmVhZFNhbml0aXplciBibG9hdHMgdGhlIHN0YWNrIGhlYXZpbHkuIEV2aWRl bmNlIGhhcyBiZWVuIHRoYXQgdGhlCisgICAvLyBkZWZhdWx0IHN0YWNrIHNpemUgaXNuJ3QgZW5v dWdoIGZvciBzb21lIGJyb3dzZXIgdGVzdHMuCisgICByZXR1cm4gMiAqICgxIDw8IDIzKTsgIC8v IDIgdGltZXMgODE5MksgKHRoZSBkZWZhdWx0IHN0YWNrIHNpemUgb24gTGludXgpLgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExNC1kby1ub3QtbmFycm93LWlu dC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTQtZG8tbm90LW5hcnJv dy1pbnQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yY2Q2 YTA3MzgyYWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hl cy8wMTE0LWRvLW5vdC1uYXJyb3ctaW50LnBhdGNoCkBAIC0wLDAgKzEsNTMgQEAKKy0tLSBxdDYt d2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZmlsZXMvZmls ZV91dGlsX2xpbnV4LmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hy b21pdW0vYmFzZS9maWxlcy9maWxlX3V0aWxfbGludXguY2MKK0BAIC0yMywxNCArMjMsMTQgQEAg Ym9vbCBHZXRGaWxlU3lzdGVtVHlwZShjb25zdCBGaWxlUGF0aCYgcAorIAorICAgLy8gTm90IGFs bCBwb3NzaWJsZSB8c3RhdGZzX2J1Zi5mX3R5cGV8IHZhbHVlcyBhcmUgaW4gbGludXgvbWFnaWMu aC4KKyAgIC8vIE1pc3NpbmcgdmFsdWVzIGFyZSBjb3BpZWQgZnJvbSB0aGUgc3RhdGZzIG1hbiBw YWdlLgorLSAgc3dpdGNoIChzdGF0ZnNfYnVmLmZfdHlwZSkgeworKyAgc3dpdGNoIChzdGF0aWNf Y2FzdDx1aW50bWF4X3Q+KHN0YXRmc19idWYuZl90eXBlKSkgeworICAgICBjYXNlIDA6CisgICAg ICAgKnR5cGUgPSBGSUxFX1NZU1RFTV8wOworICAgICAgIGJyZWFrOworICAgICBjYXNlIEVYVDJf U1VQRVJfTUFHSUM6ICAvLyBBbHNvIGV4dDMgYW5kIGV4dDQKKyAgICAgY2FzZSBNU0RPU19TVVBF Ul9NQUdJQzoKKyAgICAgY2FzZSBSRUlTRVJGU19TVVBFUl9NQUdJQzoKKy0gICAgY2FzZSBzdGF0 aWNfY2FzdDxpbnQ+KEJUUkZTX1NVUEVSX01BR0lDKToKKysgICAgY2FzZSBCVFJGU19TVVBFUl9N QUdJQzoKKyAgICAgY2FzZSAweDUzNDY1NDRFOiAgLy8gTlRGUworICAgICBjYXNlIDB4NTg0NjUz NDI6ICAvLyBYRlMKKyAgICAgY2FzZSAweDMxNTM0NjRBOiAgLy8gSkZTCitAQCAtNDAsMTQgKzQw LDE0IEBAIGJvb2wgR2V0RmlsZVN5c3RlbVR5cGUoY29uc3QgRmlsZVBhdGgmIHAKKyAgICAgICAq dHlwZSA9IEZJTEVfU1lTVEVNX05GUzsKKyAgICAgICBicmVhazsKKyAgICAgY2FzZSBTTUJfU1VQ RVJfTUFHSUM6CistICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PigweEZGNTM0RDQyKTogIC8vIENJ RlMKKysgICAgY2FzZSAweEZGNTM0RDQyOiAgLy8gQ0lGUworICAgICAgICp0eXBlID0gRklMRV9T WVNURU1fU01COworICAgICAgIGJyZWFrOworICAgICBjYXNlIENPREFfU1VQRVJfTUFHSUM6Cisg ICAgICAgKnR5cGUgPSBGSUxFX1NZU1RFTV9DT0RBOworICAgICAgIGJyZWFrOworLSAgICBjYXNl IHN0YXRpY19jYXN0PGludD4oSFVHRVRMQkZTX01BR0lDKToKKy0gICAgY2FzZSBzdGF0aWNfY2Fz dDxpbnQ+KFJBTUZTX01BR0lDKToKKysgICAgY2FzZSBIVUdFVExCRlNfTUFHSUM6CisrICAgIGNh c2UgUkFNRlNfTUFHSUM6CisgICAgIGNhc2UgVE1QRlNfTUFHSUM6CisgICAgICAgKnR5cGUgPSBG SUxFX1NZU1RFTV9NRU1PUlk7CisgICAgICAgYnJlYWs7CistLS0gcXQ2LXdlYmVuZ2luZS02LjQu Mi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3N5c3RlbS9zeXNfaW5mb19wb3NpeC5j YworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2Uvc3lz dGVtL3N5c19pbmZvX3Bvc2l4LmNjCitAQCAtMTAwLDEwICsxMDAsMTAgQEAgYm9vbCBJc1N0YXRz WmVyb0lmVW5saW1pdGVkKGNvbnN0IGJhc2U6OgorICAgaWYgKEhBTkRMRV9FSU5UUihzdGF0ZnMo cGF0aC52YWx1ZSgpLmNfc3RyKCksICZzdGF0cykpICE9IDApCisgICAgIHJldHVybiBmYWxzZTsK KyAKKy0gIHN3aXRjaCAoc3RhdHMuZl90eXBlKSB7CisrICBzd2l0Y2ggKHN0YXRpY19jYXN0PHVp bnRtYXhfdD4oc3RhdHMuZl90eXBlKSkgeworICAgICBjYXNlIFRNUEZTX01BR0lDOgorLSAgICBj YXNlIHN0YXRpY19jYXN0PGludD4oSFVHRVRMQkZTX01BR0lDKToKKy0gICAgY2FzZSBzdGF0aWNf Y2FzdDxpbnQ+KFJBTUZTX01BR0lDKToKKysgICAgY2FzZSBIVUdFVExCRlNfTUFHSUM6CisrICAg IGNhc2UgUkFNRlNfTUFHSUM6CisgICAgICAgcmV0dXJuIHRydWU7CisgICB9CisgICByZXR1cm4g ZmFsc2U7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTE1LWNo cm9taXVtLW5vLWNhbm9uaWNhbGl6ZS1maWxlLW5hbWUucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTE1LWNocm9taXVtLW5vLWNhbm9uaWNhbGl6ZS1maWxlLW5hbWUucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41NTY3ODRiMDEzZGUK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTE1LWNo cm9taXVtLW5vLWNhbm9uaWNhbGl6ZS1maWxlLW5hbWUucGF0Y2gKQEAgLTAsMCArMSwxMiBAQAor LS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvbmFzbS9jb25maWcvY29uZmlnLWxpbnV4LmgKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4y L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9uYXNtL2NvbmZpZy9jb25maWctbGlu dXguaAorQEAgLTEzOSw3ICsxMzksOSBAQAorICNkZWZpbmUgSEFWRV9BQ0NFU1MgMQorIAorIC8q IERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgY2Fub25pY2FsaXplX2ZpbGVfbmFtZScgZnVu Y3Rpb24uICovCisrI2lmZGVmIF9fR0xJQkNfXworICNkZWZpbmUgSEFWRV9DQU5PTklDQUxJWkVf RklMRV9OQU1FIDEKKysjZW5kaWYKKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg YGNwdV90b19sZTE2JyBpbnRyaW5zaWMgZnVuY3Rpb24uICovCisgLyogI3VuZGVmIEhBVkVfQ1BV X1RPX0xFMTYgKi8KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAx MTYtY2hyb21pdW0tbXVzbC1nZXQtdGhyZWFkLW5hbWUucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMTE2LWNocm9taXVtLW11c2wtZ2V0LXRocmVhZC1uYW1lLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDQ4NTM4NWNiYjYyCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExNi1jaHJvbWl1 bS1tdXNsLWdldC10aHJlYWQtbmFtZS5wYXRjaApAQCAtMCwwICsxLDIyIEBACistLS0gcXQ2LXdl YmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9wZXJm ZXR0by9pbmNsdWRlL3BlcmZldHRvL2V4dC9iYXNlL3RocmVhZF91dGlscy5oCisrKysgcXQ2LXdl YmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvcGVyZmV0dG8v aW5jbHVkZS9wZXJmZXR0by9leHQvYmFzZS90aHJlYWRfdXRpbHMuaAorQEAgLTMwLDcgKzMwLDgg QEAKKyAjaW5jbHVkZSA8YWxnb3JpdGhtPgorICNlbmRpZgorIAorLSNpZiBQRVJGRVRUT19CVUlM REZMQUcoUEVSRkVUVE9fT1NfQU5EUk9JRCkKKysjaWYgUEVSRkVUVE9fQlVJTERGTEFHKFBFUkZF VFRPX09TX0FORFJPSUQpIHx8IFwKKysgICAgKFBFUkZFVFRPX0JVSUxERkxBRyhQRVJGRVRUT19P U19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19fKSkKKyAjaW5jbHVkZSA8c3lzL3ByY3RsLmg+ CisgI2VuZGlmCisgCitAQCAtNTgsNyArNTksOCBAQCBpbmxpbmUgYm9vbCBNYXliZVNldFRocmVh ZE5hbWUoY29uc3Qgc3RkCisgCisgaW5saW5lIGJvb2wgR2V0VGhyZWFkTmFtZShzdGQ6OnN0cmlu ZyYgb3V0X3Jlc3VsdCkgeworICAgY2hhciBidWZbMTZdID0ge307CistI2lmIFBFUkZFVFRPX0JV SUxERkxBRyhQRVJGRVRUT19PU19BTkRST0lEKQorKyNpZiBQRVJGRVRUT19CVUlMREZMQUcoUEVS RkVUVE9fT1NfQU5EUk9JRCkgfHwgXAorKyAgICAoUEVSRkVUVE9fQlVJTERGTEFHKFBFUkZFVFRP X09TX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQorICAgaWYgKHByY3RsKFBSX0dFVF9O QU1FLCBidWYpICE9IDApCisgICAgIHJldHVybiBmYWxzZTsKKyAjZWxzZQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExNy1jaHJvbWl1bS1tdXNsLXJlc29sdmVy LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExNy1jaHJvbWl1bS1tdXNs LXJlc29sdmVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u MTc2NTI0YWRjMDgzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDExNy1jaHJvbWl1bS1tdXNsLXJlc29sdmVyLnBhdGNoCkBAIC0wLDAgKzEsNjQgQEAK Ky0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9k bnMvcHVibGljL3Njb3BlZF9yZXNfc3RhdGUuY2MKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL3B1YmxpYy9zY29wZWRfcmVzX3N0YXRlLmNjCitA QCAtMTMsNyArMTMsNyBAQAorIG5hbWVzcGFjZSBuZXQgeworIAorIFNjb3BlZFJlc1N0YXRlOjpT Y29wZWRSZXNTdGF0ZSgpIHsKKy0jaWYgQlVJTERGTEFHKElTX09QRU5CU0QpIHx8IEJVSUxERkxB RyhJU19GVUNIU0lBKQorKyNpZiBCVUlMREZMQUcoSVNfT1BFTkJTRCkgfHwgQlVJTERGTEFHKElT X0ZVQ0hTSUEpIHx8IChCVUlMREZMQUcoSVNfTElOVVgpICYmICFkZWZpbmVkKF9fR0xJQkNfXykp CisgICAvLyBOb3RlOiByZXNfbmluaXQgaW4gZ2xpYmMgYWx3YXlzIHJldHVybnMgMCBhbmQgc2V0 cyBSRVNfSU5JVC4KKyAgIC8vIHJlc19pbml0IGJlaGF2ZXMgdGhlIHNhbWUgd2F5LgorICAgbWVt c2V0KCZfcmVzLCAwLCBzaXplb2YoX3JlcykpOworQEAgLTI1LDcgKzI1LDcgQEAgU2NvcGVkUmVz U3RhdGU6OlNjb3BlZFJlc1N0YXRlKCkgeworIH0KKyAKKyBTY29wZWRSZXNTdGF0ZTo6flNjb3Bl ZFJlc1N0YXRlKCkgeworLSNpZiAhQlVJTERGTEFHKElTX09QRU5CU0QpICYmICFCVUlMREZMQUco SVNfRlVDSFNJQSkKKysjaWYgIUJVSUxERkxBRyhJU19PUEVOQlNEKSAmJiAhQlVJTERGTEFHKElT X0ZVQ0hTSUEpICYmICEoQlVJTERGTEFHKElTX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18p KQorIAorICAgLy8gUHJlZmVyIHJlc19uZGVzdHJveSB3aGVyZSBhdmFpbGFibGUuCisgI2lmIEJV SUxERkxBRyhJU19BUFBMRSkgfHwgQlVJTERGTEFHKElTX0ZSRUVCU0QpCitAQCAtMzQsNyArMzQs NyBAQCBTY29wZWRSZXNTdGF0ZTo6flNjb3BlZFJlc1N0YXRlKCkgeworICAgcmVzX25jbG9zZSgm cmVzXyk7CisgI2VuZGlmICAvLyBCVUlMREZMQUcoSVNfQVBQTEUpIHx8IEJVSUxERkxBRyhJU19G UkVFQlNEKQorIAorLSNlbmRpZiAgLy8gIUJVSUxERkxBRyhJU19PUEVOQlNEKSAmJiAhQlVJTERG TEFHKElTX0ZVQ0hTSUEpCisrI2VuZGlmICAvLyAhQlVJTERGTEFHKElTX09QRU5CU0QpICYmICFC VUlMREZMQUcoSVNfRlVDSFNJQSkgJiYgIShCVUlMREZMQUcoSVNfTElOVVgpICYmICFkZWZpbmVk KF9fR0xJQkNfXykpCisgfQorIAorIGJvb2wgU2NvcGVkUmVzU3RhdGU6OklzVmFsaWQoKSBjb25z dCB7CistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9u ZXQvZG5zL2hvc3RfcmVzb2x2ZXJfbWFuYWdlci5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNjCitA QCAtMzE1OCw3ICszMTU4LDcgQEAgSG9zdFJlc29sdmVyTWFuYWdlcjo6SG9zdFJlc29sdmVyTWFu YWdlcgorICAgaWYgKHN5c3RlbV9kbnNfY29uZmlnX25vdGlmaWVyXykKKyAgICAgc3lzdGVtX2Ru c19jb25maWdfbm90aWZpZXJfLT5BZGRPYnNlcnZlcih0aGlzKTsKKyAjaWYgQlVJTERGTEFHKElT X1BPU0lYKSAmJiAhQlVJTERGTEFHKElTX0FQUExFKSAmJiAhQlVJTERGTEFHKElTX09QRU5CU0Qp ICYmIFwKKy0gICAgIUJVSUxERkxBRyhJU19BTkRST0lEKQorKyAgICAhQlVJTERGTEFHKElTX0FO RFJPSUQpICYmICEoQlVJTERGTEFHKElTX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQor ICAgRW5zdXJlRG5zUmVsb2FkZXJJbml0KCk7CisgI2VuZGlmCisgCistLS0gcXQ2LXdlYmVuZ2lu ZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL2Ruc19yZWxvYWRlci5j YworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMv ZG5zX3JlbG9hZGVyLmNjCitAQCAtNyw3ICs3LDggQEAKKyAjaW5jbHVkZSAiYnVpbGQvYnVpbGRf Y29uZmlnLmgiCisgCisgI2lmIEJVSUxERkxBRyhJU19QT1NJWCkgJiYgIUJVSUxERkxBRyhJU19B UFBMRSkgJiYgIUJVSUxERkxBRyhJU19PUEVOQlNEKSAmJiBcCistICAgICFCVUlMREZMQUcoSVNf QU5EUk9JRCkgJiYgIUJVSUxERkxBRyhJU19GVUNIU0lBKQorKyAgICAhQlVJTERGTEFHKElTX0FO RFJPSUQpICYmICFCVUlMREZMQUcoSVNfRlVDSFNJQSkgJiYgXAorKyAgICAhKEJVSUxERkxBRyhJ U19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19fKSkKKyAKKyAjaW5jbHVkZSA8cmVzb2x2Lmg+ CisgCistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9u ZXQvZG5zL2hvc3RfcmVzb2x2ZXJfcHJvYy5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvaG9zdF9yZXNvbHZlcl9wcm9jLmNjCitAQCAtMTky LDcgKzE5Miw4IEBAIGludCBTeXN0ZW1Ib3N0UmVzb2x2ZXJDYWxsKGNvbnN0IHN0ZDo6c3QKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOjpCbG9j a2luZ1R5cGU6OldJTExfQkxPQ0spOworIAorICNpZiBCVUlMREZMQUcoSVNfUE9TSVgpICYmIFwK Ky0gICAgIShCVUlMREZMQUcoSVNfQVBQTEUpIHx8IEJVSUxERkxBRyhJU19PUEVOQlNEKSB8fCBC VUlMREZMQUcoSVNfQU5EUk9JRCkpCisrICAgICEoQlVJTERGTEFHKElTX0FQUExFKSB8fCBCVUlM REZMQUcoSVNfT1BFTkJTRCkgfHwgQlVJTERGTEFHKElTX0FORFJPSUQpIHx8IFwKKysgICAgKEJV SUxERkxBRyhJU19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElCQ19fKSkpCisgICBEbnNSZWxvYWRl ck1heWJlUmVsb2FkKCk7CisgI2VuZGlmCisgICBhdXRvIFthaSwgZXJyLCBvc19lcnJvcl0gPSBB ZGRyZXNzSW5mbzo6R2V0KGhvc3QsIGhpbnRzLCBudWxscHRyLCBuZXR3b3JrKTsKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTktY2hyb21pdW0tbXVzbC1zdGFj ay11dGlscy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTktY2hyb21p dW0tbXVzbC1zdGFjay11dGlscy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLjU0OGExZGVjNzZiNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMTktY2hyb21pdW0tbXVzbC1zdGFjay11dGlscy5wYXRjaApAQCAt MCwwICsxLDIwIEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvc3RhY2tfdXRp bC5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9zdGFja191dGlsLmNjCitAQCAtMjks NyArMjksNyBAQCBzaXplX3QgR2V0VW5kZXJlc3RpbWF0ZWRTdGFja1NpemUoKSB7CisgLy8gRklY TUU6IE9uIE1hYyBPU1ggYW5kIExpbnV4LCB0aGlzIG1ldGhvZCBjYW5ub3QgZXN0aW1hdGUgc3Rh Y2sgc2l6ZQorIC8vIGNvcnJlY3RseSBmb3IgdGhlIG1haW4gdGhyZWFkLgorIAorLSNlbGlmIGRl ZmluZWQoX19HTElCQ19fKSB8fCBCVUlMREZMQUcoSVNfQU5EUk9JRCkgfHwgQlVJTERGTEFHKElT X0ZSRUVCU0QpIHx8IFwKKysjZWxpZiBCVUlMREZMQUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJ U19BTkRST0lEKSB8fCBCVUlMREZMQUcoSVNfRlJFRUJTRCkgfHwgXAorICAgICBCVUlMREZMQUco SVNfRlVDSFNJQSkKKyAgIC8vIHB0aHJlYWRfZ2V0YXR0cl9ucCgpIGNhbiBmYWlsIGlmIHRoZSB0 aHJlYWQgaXMgbm90IGludm9rZWQgYnkKKyAgIC8vIHB0aHJlYWRfY3JlYXRlKCkgKGUuZy4sIHRo ZSBtYWluIHRocmVhZCBvZiBibGlua191bml0dGVzdHMpLgorQEAgLTk3LDcgKzk3LDcgQEAgc2l6 ZV90IEdldFVuZGVyZXN0aW1hdGVkU3RhY2tTaXplKCkgeworIH0KKyAKKyB2b2lkKiBHZXRTdGFj a1N0YXJ0KCkgeworLSNpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgQlVJTERGTEFHKElTX0FORFJP SUQpIHx8IEJVSUxERkxBRyhJU19GUkVFQlNEKSB8fCBcCisrI2lmIEJVSUxERkxBRyhJU19MSU5V WCkgfHwgQlVJTERGTEFHKElTX0FORFJPSUQpIHx8IEJVSUxERkxBRyhJU19GUkVFQlNEKSB8fCBc CisgICAgIEJVSUxERkxBRyhJU19GVUNIU0lBKQorICAgcHRocmVhZF9hdHRyX3QgYXR0cjsKKyAg IGludCBlcnJvcjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAx MjAtY2hyb21pdW0tbGliYy1tYWxsb2MucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMTIwLWNocm9taXVtLWxpYmMtbWFsbG9jLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uZmEzMjgzMDc2MGNkCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMC1jaHJvbWl1bS1saWJjLW1hbGxvYy5wYXRj aApAQCAtMCwwICsxLDM0IEBACistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9iYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjCisrKysgcXQ2LXdlYmVu Z2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9wcm9jZXNzL21lbW9yeV9saW51 eC5jYworQEAgLTE4LDYgKzE4LDEzIEBACisgI2luY2x1ZGUgImJhc2UvdGhyZWFkaW5nL3RocmVh ZF9yZXN0cmljdGlvbnMuaCIKKyAjaW5jbHVkZSAiYnVpbGQvYnVpbGRfY29uZmlnLmgiCisgCisr I2lmIGRlZmluZWQoTElCQ19HTElCQykKKytleHRlcm4gIkMiIHsKKytleHRlcm4gdm9pZCAqX19s aWJjX21hbGxvYyhzaXplX3Qgc2l6ZSk7CisrZXh0ZXJuIHZvaWQgKl9fbGliY19mcmVlKHZvaWQg KnB0cik7CisrfQorKyNlbmRpZgorKworIG5hbWVzcGFjZSBiYXNlIHsKKyAKKyBuYW1lc3BhY2Ug eworQEAgLTExMiw3ICsxMTksNyBAQCBib29sIFVuY2hlY2tlZE1hbGxvYyhzaXplX3Qgc2l6ZSwg dm9pZCoqCisgICAgIGRlZmluZWQoVE9PTEtJVF9RVCkgfHwgIWRlZmluZWQoTElCQ19HTElCQykK KyAgICpyZXN1bHQgPSBtYWxsb2Moc2l6ZSk7CisgI2VsaWYgZGVmaW5lZChMSUJDX0dMSUJDKQor LSAgKnJlc3VsdCA9IF9fbGliY19tYWxsb2Moc2l6ZSk7CisrICAqcmVzdWx0ID0gOjpfX2xpYmNf bWFsbG9jKHNpemUpOworICNlbmRpZgorICAgcmV0dXJuICpyZXN1bHQgIT0gbnVsbHB0cjsKKyB9 CitAQCAtMTIzLDcgKzEzMCw3IEBAIHZvaWQgVW5jaGVja2VkRnJlZSh2b2lkKiBwdHIpIHsKKyAj ZWxpZiBkZWZpbmVkKE1FTU9SWV9UT09MX1JFUExBQ0VTX0FMTE9DQVRPUikgfHwgIWRlZmluZWQo TElCQ19HTElCQykgfHwgZGVmaW5lZChUT09MS0lUX1FUKQorICAgZnJlZShwdHIpOworICNlbGlm IGRlZmluZWQoTElCQ19HTElCQykKKy0gIF9fbGliY19mcmVlKHB0cik7CisrICA6Ol9fbGliY19m cmVlKHB0cik7CisgI2VuZGlmCisgfQorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDEyMS1jaHJvbWl1bS1tdXNsLXN0YXQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMTIxLWNocm9taXVtLW11c2wtc3RhdC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhjOGM0Yjg2M2I2NAotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjEtY2hyb21pdW0tbXVzbC1z dGF0LnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcv c3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZmlsZXMvZmlsZS5oCisrKysgcXQ2LXdlYmVuZ2lu ZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9maWxlcy9maWxlLmgKK0BAIC0xOSw3 ICsxOSw4IEBACisgI2luY2x1ZGUgImJ1aWxkL2J1aWxkX2NvbmZpZy5oIgorIAorICNpZiBCVUlM REZMQUcoSVNfQlNEKSB8fCBCVUlMREZMQUcoSVNfQVBQTEUpIHx8IEJVSUxERkxBRyhJU19OQUNM KSB8fCBcCistICAgIEJVSUxERkxBRyhJU19GVUNIU0lBKSB8fCAoQlVJTERGTEFHKElTX0FORFJP SUQpICYmIF9fQU5EUk9JRF9BUElfXyA8IDIxKQorKyAgICBCVUlMREZMQUcoSVNfRlVDSFNJQSkg fHwgKEJVSUxERkxBRyhJU19BTkRST0lEKSAmJiBfX0FORFJPSURfQVBJX18gPCAyMSkgfHwgXAor KyAgICAoQlVJTERGTEFHKElTX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQorIHN0cnVj dCBzdGF0OworIG5hbWVzcGFjZSBiYXNlIHsKKyB0eXBlZGVmIHN0cnVjdCBzdGF0IHN0YXRfd3Jh cHBlcl90OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMi1j aHJvbWl1bS1jb25kaXRpb25fdmFyLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDEyMi1jaHJvbWl1bS1jb25kaXRpb25fdmFyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uNmM0MTMxMmU1MTZiCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMi1jaHJvbWl1bS1jb25kaXRpb25fdmFyLnBh dGNoCkBAIC0wLDAgKzEsMjIgQEAKK1VzZSBtb25vdG9uaWMgY2xvY2sgZm9yIHB0aHJlYWRfY29u ZF90aW1lZHdhaXQgd2l0aCBtdXNsIHRvby4KKworLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3Jp Zy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZh cmlhYmxlLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0v djgvc3JjL2Jhc2UvcGxhdGZvcm0vY29uZGl0aW9uLXZhcmlhYmxlLmNjCitAQCAtMjAsNyArMjAs NyBAQCBuYW1lc3BhY2UgYmFzZSB7CisgCisgQ29uZGl0aW9uVmFyaWFibGU6OkNvbmRpdGlvblZh cmlhYmxlKCkgeworICNpZiAoVjhfT1NfRlJFRUJTRCB8fCBWOF9PU19ORVRCU0QgfHwgVjhfT1Nf T1BFTkJTRCB8fCBcCistICAgICAoVjhfT1NfTElOVVggJiYgVjhfTElCQ19HTElCQykpCisrICAg ICBWOF9PU19MSU5VWCkKKyAgIC8vIE9uIEZyZWUvTmV0L09wZW5CU0QgYW5kIExpbnV4IHdpdGgg Z2xpYmMgd2UgY2FuIGNoYW5nZSB0aGUgdGltZQorICAgLy8gc291cmNlIGZvciBwdGhyZWFkX2Nv bmRfdGltZWR3YWl0KCkgdG8gdXNlIHRoZSBtb25vdG9uaWMgY2xvY2suCisgICBwdGhyZWFkX2Nv bmRhdHRyX3QgYXR0cjsKK0BAIC05Niw3ICs5Niw3IEBAIGJvb2wgQ29uZGl0aW9uVmFyaWFibGU6 OldhaXRGb3IoTXV0ZXgqIG0KKyAgICAgICAmbmF0aXZlX2hhbmRsZV8sICZtdXRleC0+bmF0aXZl X2hhbmRsZSgpLCAmdHMpOworICNlbHNlCisgI2lmIChWOF9PU19GUkVFQlNEIHx8IFY4X09TX05F VEJTRCB8fCBWOF9PU19PUEVOQlNEIHx8IFwKKy0gICAgIChWOF9PU19MSU5VWCAmJiBWOF9MSUJD X0dMSUJDKSkKKysgICAgIFY4X09TX0xJTlVYKQorICAgLy8gT24gRnJlZS9OZXQvT3BlbkJTRCBh bmQgTGludXggd2l0aCBnbGliYyB3ZSBjYW4gY2hhbmdlIHRoZSB0aW1lCisgICAvLyBzb3VyY2Ug Zm9yIHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKSB0byB1c2UgdGhlIG1vbm90b25pYyBjbG9jay4K KyAgIHJlc3VsdCA9IGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmdHMpOwpkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMy1jaHJvbWl1bS1tdXNsLW5v LWV4ZWNpbmZvLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMy1jaHJv bWl1bS1tdXNsLW5vLWV4ZWNpbmZvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uMjVmYWU3YmRlMTEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDEyMy1jaHJvbWl1bS1tdXNsLW5vLWV4ZWNpbmZvLnBhdGNoCkBA IC0wLDAgKzEsNzUgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL2Jhc2UvZGVidWcvc3RhY2tfdHJhY2VfcG9zaXguY2MKKysrKyBxdDYtd2ViZW5n aW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bv c2l4LmNjCitAQCAtMzAsNyArMzAsNyBAQAorICNpZiAhZGVmaW5lZChVU0VfU1lNQk9MSVpFKQor ICNpbmNsdWRlIDxjeHhhYmkuaD4KKyAjZW5kaWYKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykg JiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9B SVgpCisgI2luY2x1ZGUgPGV4ZWNpbmZvLmg+CisgI2VuZGlmCisgCitAQCAtOTcsNyArOTcsNyBA QCB2b2lkIERlbWFuZ2xlU3ltYm9scyhzdGQ6OnN0cmluZyogdGV4dCkKKyAgIC8vIE5vdGU6IGNv ZGUgaW4gdGhpcyBmdW5jdGlvbiBpcyBOT1QgYXN5bmMtc2lnbmFsIHNhZmUgKHN0ZDo6c3RyaW5n IHVzZXMKKyAgIC8vIG1hbGxvYyBpbnRlcm5hbGx5KS4KKyAKKy0jaWYgIWRlZmluZWQoX19VQ0xJ QkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZp bmVkKF9BSVgpCisgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIHNlYXJjaF9mcm9tID0gMDsKKyAg IHdoaWxlIChzZWFyY2hfZnJvbSA8IHRleHQtPnNpemUoKSkgeworICAgICAvLyBMb29rIGZvciB0 aGUgc3RhcnQgb2YgYSBtYW5nbGVkIHN5bWJvbCwgZnJvbSBzZWFyY2hfZnJvbS4KK0BAIC0xNDQs NyArMTQ0LDcgQEAgY2xhc3MgQmFja3RyYWNlT3V0cHV0SGFuZGxlciB7CisgICB2aXJ0dWFsIH5C YWNrdHJhY2VPdXRwdXRIYW5kbGVyKCkgPSBkZWZhdWx0OworIH07CisgCistI2lmICFkZWZpbmVk KF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAm JiAhZGVmaW5lZChfQUlYKQorIHZvaWQgT3V0cHV0UG9pbnRlcih2b2lkKiBwb2ludGVyLCBCYWNr dHJhY2VPdXRwdXRIYW5kbGVyKiBoYW5kbGVyKSB7CisgICAvLyBUaGlzIHNob3VsZCBiZSBtb3Jl IHRoYW4gZW5vdWdoIHRvIHN0b3JlIGEgNjQtYml0IG51bWJlciBpbiBoZXg6CisgICAvLyAxNiBo ZXggZGlnaXRzICsgMSBmb3IgbnVsbC10ZXJtaW5hdG9yLgorQEAgLTg2OCw3ICs4NjgsNyBAQCBz aXplX3QgQ29sbGVjdFN0YWNrVHJhY2Uodm9pZCoqIHRyYWNlLCBzCisgICAvLyBJZiB3ZSBkbyBu b3QgaGF2ZSB1bndpbmQgdGFibGVzLCB0aGVuIHRyeSB0cmFjaW5nIHVzaW5nIGZyYW1lIHBvaW50 ZXJzLgorICAgcmV0dXJuIGJhc2U6OmRlYnVnOjpUcmFjZVN0YWNrRnJhbWVQb2ludGVycyhjb25z dF9jYXN0PGNvbnN0IHZvaWQqKj4odHJhY2UpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb3VudCwgMCk7CistI2VsaWYgIWRlZmluZWQoX19VQ0xJQkNf XykgJiYgIWRlZmluZWQoX0FJWCkKKysjZWxpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmlu ZWQoX0FJWCkKKyAgIC8vIFRob3VnaCB0aGUgYmFja3RyYWNlIEFQSSBtYW4gcGFnZSBkb2VzIG5v dCBsaXN0IGFueSBwb3NzaWJsZSBuZWdhdGl2ZQorICAgLy8gcmV0dXJuIHZhbHVlcywgd2UgdGFr ZSBubyBjaGFuY2UuCisgICByZXR1cm4gYmFzZTo6c2F0dXJhdGVkX2Nhc3Q8c2l6ZV90PihiYWNr dHJhY2UodHJhY2UsIGNvdW50KSk7CitAQCAtODgxLDEzICs4ODEsMTMgQEAgdm9pZCBTdGFja1Ry YWNlOjpQcmludFdpdGhQcmVmaXgoY29uc3QgYworIC8vIE5PVEU6IFRoaXMgY29kZSBNVVNUIGJl IGFzeW5jLXNpZ25hbCBzYWZlIChpdCdzIHVzZWQgYnkgaW4tcHJvY2VzcworIC8vIHN0YWNrIGR1 bXBpbmcgc2lnbmFsIGhhbmRsZXIpLiBOTyBtYWxsb2Mgb3Igc3RkaW8gaXMgYWxsb3dlZCBoZXJl LgorIAorLSNpZiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorKyNpZiBk ZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAgIFByaW50QmFja3RyYWNlT3V0 cHV0SGFuZGxlciBoYW5kbGVyOworICAgUHJvY2Vzc0JhY2t0cmFjZSh0cmFjZV8sIGNvdW50Xywg cHJlZml4X3N0cmluZywgJmhhbmRsZXIpOworICNlbmRpZgorIH0KKyAKKy0jaWYgIWRlZmluZWQo X19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYm ICFkZWZpbmVkKF9BSVgpCisgdm9pZCBTdGFja1RyYWNlOjpPdXRwdXRUb1N0cmVhbVdpdGhQcmVm aXgoc3RkOjpvc3RyZWFtKiBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7CisgICBTdHJlYW1CYWNr dHJhY2VPdXRwdXRIYW5kbGVyIGhhbmRsZXIob3MpOworLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIu b3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvc3JjL2NvZGVnZW4vZXh0ZXJuYWwtcmVmZXJl bmNlLXRhYmxlLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdjgvc3JjL2NvZGVnZW4vZXh0ZXJuYWwtcmVmZXJlbmNlLXRhYmxlLmNjCitAQCAtMTIsNyAr MTIsOSBAQAorIAorICNpZiBkZWZpbmVkKERFQlVHKSAmJiBkZWZpbmVkKFY4X09TX0xJTlVYKSAm JiAhZGVmaW5lZChWOF9PU19BTkRST0lEKQorICNkZWZpbmUgU1lNQk9MSVpFX0ZVTkNUSU9OCisr I2lmIGRlZmluZWQoX19HTElCQ19fKQorICNpbmNsdWRlIDxleGVjaW5mby5oPgorKyNlbmRpZgor IAorICNpbmNsdWRlIDx2ZWN0b3I+CisgCitAQCAtMTAzLDcgKzEwNSw3IEBAIHZvaWQgRXh0ZXJu YWxSZWZlcmVuY2VUYWJsZTo6SW5pdChJc29sYXQKKyB9CisgCisgY29uc3QgY2hhciogRXh0ZXJu YWxSZWZlcmVuY2VUYWJsZTo6UmVzb2x2ZVN5bWJvbCh2b2lkKiBhZGRyZXNzKSB7CistI2lmZGVm IFNZTUJPTElaRV9GVU5DVElPTgorKyNpZiBkZWZpbmVkKFNZTUJPTElaRV9GVU5DVElPTikgJiYg ZGVmaW5lZChfX0dMSUJDX18pCisgICBjaGFyKiogbmFtZXMgPSBiYWNrdHJhY2Vfc3ltYm9scygm YWRkcmVzcywgMSk7CisgICBjb25zdCBjaGFyKiBuYW1lID0gbmFtZXNbMF07CisgICAvLyBUaGUg YXJyYXkgb2YgbmFtZXMgaXMgbWFsbG9jJ2VkLiBIb3dldmVyLCBlYWNoIG5hbWUgc3RyaW5nIGlz IHN0YXRpYwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyMy1j aHJvbWl1bS1tdXNsLW5vLWdldGNvbnRleHQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMTIzLWNocm9taXVtLW11c2wtbm8tZ2V0Y29udGV4dC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ2NTIyZWUwYTA2NgotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjMtY2hyb21pdW0tbXVzbC1u by1nZXRjb250ZXh0LnBhdGNoCkBAIC0wLDAgKzEsMjcgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYu NC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYworKysrIHF0 Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5j YworQEAgLTQ5MCw3ICs0OTAsOSBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OlNpbXVsYXRlU2ln bmFsRGVsCisgICBzaWdpbmZvLnNpX2NvZGUgPSBTSV9VU0VSOworICAgc2lnaW5mby5zaV9waWQg PSBnZXRwaWQoKTsKKyAgIHVjb250ZXh0X3QgY29udGV4dDsKKysjaWYgZGVmaW5lZChfX0dMSUJD X18pCisgICBnZXRjb250ZXh0KCZjb250ZXh0KTsKKysjZW5kaWYKKyAgIHJldHVybiBIYW5kbGVT aWduYWwoc2lnLCAmc2lnaW5mbywgJmNvbnRleHQpOworIH0KKyAKK0BAIC02NzUsOSArNjc3LDE0 IEBAIGJvb2wgRXhjZXB0aW9uSGFuZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKKyAgIHN5c19wcmN0 bChQUl9TRVRfRFVNUEFCTEUsIDEsIDAsIDAsIDApOworIAorICAgQ3Jhc2hDb250ZXh0IGNvbnRl eHQ7CisrCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgaW50IGdldGNvbnRleHRfcmVzdWx0 ID0gZ2V0Y29udGV4dCgmY29udGV4dC5jb250ZXh0KTsKKyAgIGlmIChnZXRjb250ZXh0X3Jlc3Vs dCkKKyAgICAgcmV0dXJuIGZhbHNlOworKyNlbHNlCisrICByZXR1cm4gZmFsc2U7CisrI2VuZGlm CisgCisgI2lmIGRlZmluZWQoX19pMzg2X18pCisgICAvLyBJbiBDUFVGaWxsRnJvbVVDb250ZXh0 IGluIG1pbmlkdW1wd3JpdGVyLmNjIHRoZSBzdGFjayBwb2ludGVyIGlzIHJldHJpZXZlZApkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyNC1jaHJvbWl1bS1lbmFi bGUtaTY4Ni5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjQtY2hyb21p dW0tZW5hYmxlLWk2ODYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi4xMWQ4ZGU3YzIzZjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMTI0LWNocm9taXVtLWVuYWJsZS1pNjg2LnBhdGNoCkBAIC0wLDAgKzEsMTcg QEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL0JV SUxELmduCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vQlVJ TEQuZ24KK0BAIC0xNTM3LDE0ICsxNTM3LDYgQEAgaWYgKCFpc19pb3MgJiYgIXVzZV9xdCkgewor ICAgfQorIH0KKyAKKy0jIFRPRE8oY2Fzc2V3KTogQWRkIG1vcmUgT1MncyB0aGF0IGRvbid0IHN1 cHBvcnQgeDg2LgorLWlzX3ZhbGlkX3g4Nl90YXJnZXQgPQorLSAgICB0YXJnZXRfb3MgIT0gImlv cyIgJiYgdGFyZ2V0X29zICE9ICJtYWMiICYmCistICAgICh0YXJnZXRfb3MgIT0gImxpbnV4IiB8 fCB1c2VfbGliZnV6emVyIHx8ICFidWlsZF93aXRoX2Nocm9taXVtKQorLWFzc2VydCgKKy0gICAg aXNfdmFsaWRfeDg2X3RhcmdldCB8fCB0YXJnZXRfY3B1ICE9ICJ4ODYiLAorLSAgICAiJ3Rhcmdl dF9jcHU9eDg2JyBpcyBub3Qgc3VwcG9ydGVkIGZvciAndGFyZ2V0X29zPSR0YXJnZXRfb3MnLiBD b25zaWRlciBvbWl0dGluZyAndGFyZ2V0X2NwdScgKGRlZmF1bHQpIG9yIHVzaW5nICd0YXJnZXRf Y3B1PXg2NCcgaW5zdGVhZC4iKQorLQorIGdyb3VwKCJjaHJvbWl1bV9idWlsZGVyX3BlcmYiKSB7 CisgICB0ZXN0b25seSA9IHRydWUKKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMjUtY2hyb21pdW0tcmVtb3ZlLXN0cmlwX2JpbmFyeS5wYXRjaCBiL3NyY3Br Z3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjUtY2hyb21pdW0tcmVtb3ZlLXN0cmlwX2JpbmFy eS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjExNWU0NDky YTJiZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAx MjUtY2hyb21pdW0tcmVtb3ZlLXN0cmlwX2JpbmFyeS5wYXRjaApAQCAtMCwwICsxLDMyIEBACist LS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9jaHJvbWUv dGVzdC9jaHJvbWVkcml2ZXIvQlVJTEQuZ24KKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9jaHJvbWUvdGVzdC9jaHJvbWVkcml2ZXIvQlVJTEQuZ24KK0BAIC0z MzUsMTEgKzMzNSw3IEBAIHNvdXJjZV9zZXQoImxpYiIpIHsKKyAgIH0KKyB9CisgCistaWYgKGlz X2xpbnV4KSB7CistICBjaHJvbWVkcml2ZXJfb3V0cHV0ID0gImNocm9tZWRyaXZlci51bnN0cmlw cGVkIgorLX0gZWxzZSB7CistICBjaHJvbWVkcml2ZXJfb3V0cHV0ID0gImNocm9tZWRyaXZlciIK Ky19CisrY2hyb21lZHJpdmVyX291dHB1dCA9ICJjaHJvbWVkcml2ZXIiCisgCisgZXhlY3V0YWJs ZSgiJGNocm9tZWRyaXZlcl9vdXRwdXQiKSB7CisgICB0ZXN0b25seSA9IHRydWUKK0BAIC0zNjEs MTYgKzM1Nyw2IEBAIGV4ZWN1dGFibGUoIiRjaHJvbWVkcml2ZXJfb3V0cHV0IikgeworICAgfQor IH0KKyAKKy1pZiAoaXNfbGludXgpIHsKKy0gIHN0cmlwX2JpbmFyeSgiY2hyb21lZHJpdmVyIikg eworLSAgICB0ZXN0b25seSA9IHRydWUKKy0gICAgYmluYXJ5X2lucHV0ID0gIiRyb290X291dF9k aXIvJGNocm9tZWRyaXZlcl9vdXRwdXQiCistICAgIHN5bWJvbF9vdXRwdXQgPSAiJHJvb3Rfb3V0 X2Rpci9jaHJvbWVkcml2ZXIuZGVidWciCistICAgIHN0cmlwcGVkX2JpbmFyeV9vdXRwdXQgPSAi JHJvb3Rfb3V0X2Rpci9jaHJvbWVkcml2ZXIiCistICAgIGRlcHMgPSBbICI6JGNocm9tZWRyaXZl cl9vdXRwdXQiIF0KKy0gIH0KKy19CistCisgcHl0aG9uX2xpYnJhcnkoImNocm9tZWRyaXZlcl9w eV90ZXN0cyIpIHsKKyAgIHRlc3Rvbmx5ID0gdHJ1ZQorICAgZGVwcyA9IFsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjYtY2hyb21pdW0tbm8tY2RlZnMucGF0 Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTI2LWNocm9taXVtLW5vLWNkZWZz LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOTBmYWEzZDY2 NGQwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEy Ni1jaHJvbWl1bS1uby1jZGVmcy5wYXRjaApAQCAtMCwwICsxLDM5IEBACistLS0gcXQ2LXdlYmVu Z2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3B0cmFjZS5oCisrKysgcXQ2LXdlYmVuZ2luZS02 LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv Y29tcGF0L2xpbnV4L3N5cy9wdHJhY2UuaAorQEAgLTE3LDggKzE3LDYgQEAKKyAKKyAjaW5jbHVk ZV9uZXh0IDxzeXMvcHRyYWNlLmg+CisgCistI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorLQorIC8v IGh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTIyNDMzCisg I2lmICFkZWZpbmVkKFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEpICYmICFkZWZpbmVkKFBUX0dFVF9U SFJFQURfQVJFQSkgJiYgXAorICAgICBkZWZpbmVkKF9fR0xJQkNfXykKKy0tLSBxdDYtd2ViZW5n aW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xpYnN5bmMv c3JjL2luY2x1ZGUvc3luYy9zeW5jLmgKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9saWJzeW5jL3NyYy9pbmNsdWRlL3N5bmMvc3luYy5o CitAQCAtMTksMTIgKzE5LDEzIEBACisgI2lmbmRlZiBfX1NZU19DT1JFX1NZTkNfSAorICNkZWZp bmUgX19TWVNfQ09SRV9TWU5DX0gKKyAKKy0jaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisgI2luY2x1 ZGUgPHN0ZGludC5oPgorIAorICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorIAorLV9fQkVHSU5f REVDTFMKKysjaWZkZWYgX19jcGx1c3BsdXMKKytleHRlcm4gIkMiIHsKKysjZW5kaWYKKyAKKyBz dHJ1Y3Qgc3luY19sZWdhY3lfbWVyZ2VfZGF0YSB7CisgIGludDMyX3QgZmQyOworQEAgLTE1OCw2 ICsxNTksOCBAQCBzdHJ1Y3Qgc3luY19wdF9pbmZvICpzeW5jX3B0X2luZm8oc3RydWN0CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzeW5jX3B0X2luZm8gKml0cik7 Cisgdm9pZCBzeW5jX2ZlbmNlX2luZm9fZnJlZShzdHJ1Y3Qgc3luY19mZW5jZV9pbmZvX2RhdGEg KmluZm8pOworIAorLV9fRU5EX0RFQ0xTCisrI2lmZGVmIF9fY3BsdXNwbHVzCisrfQorKyNlbmRp ZgorIAorICNlbmRpZiAvKiBfX1NZU19DT1JFX1NZTkNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyOC1jaHJvbWl1bS1zYW5kYm94LW1lbWJhcnJpZXIu cGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTI4LWNocm9taXVtLXNhbmRi b3gtbWVtYmFycmllci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjJlMTQ5MmMzZjYyMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMjgtY2hyb21pdW0tc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoCkBAIC0wLDAg KzEsMTAgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKKysr KyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCitAQCAtNDE4LDYgKzQxOCw3IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE8KKyAgIHN3aXRjaCAoc3lz bm8pIHsKKyAgICAgY2FzZSBfX05SX2V4aXQ6CisgICAgIGNhc2UgX19OUl9leGl0X2dyb3VwOgor KyAgICBjYXNlIF9fTlJfbWVtYmFycmllcjoKKyAgICAgY2FzZSBfX05SX3dhaXQ0OgorICAgICBj YXNlIF9fTlJfd2FpdGlkOgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEyOS1jaHJvbWl1bS1zYW5kYm94LXNoZWRfZ2V0 cGFyYW0ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTI5LWNocm9taXVt LXNhbmRib3gtc2hlZF9nZXRwYXJhbS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLjgwZDkxYzc3ZThiYQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAxMjktY2hyb21pdW0tc2FuZGJveC1zaGVkX2dldHBhcmFtLnBh dGNoCkBAIC0wLDAgKzEsMjAgQEAKK0FsbG93IFNZU19zY2hlZF9nZXRwYXJhbSBhbmQgU1lTX3Nj aGVkX2dldHNjaGVkdWxlcgorbXVzbCB1c2VzIHRoZW0gZm9yIHB0aHJlYWRfZ2V0c2NoZWRwYXJh bSgpCisKK3NvdXJjZTogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQv Y29tbXVuaXR5L2Nocm9taXVtP2lkPTU0YWY5ZjhhYzI0ZjUyZDM4MmM1NzU4ZTI0NDViZjAyMDZl ZmY0MGUKKworLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21p dW0vc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYworKysr IHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvcG9saWN5 L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xpY3lfbGludXguY2MKK0BAIC05NywxMCArOTcsMTAgQEAg UmVzdWx0RXhwciBSZW5kZXJlclByb2Nlc3NQb2xpY3k6OkV2YWx1YQorICAgICBjYXNlIF9fTlJf c3lzaW5mbzoKKyAgICAgY2FzZSBfX05SX3RpbWVzOgorICAgICBjYXNlIF9fTlJfdW5hbWU6Cist ICAgICAgcmV0dXJuIEFsbG93KCk7CistICAgIGNhc2UgX19OUl9zY2hlZF9nZXRhZmZpbml0eToK KyAgICAgY2FzZSBfX05SX3NjaGVkX2dldHBhcmFtOgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0 c2NoZWR1bGVyOgorKyAgICAgIHJldHVybiBBbGxvdygpOworKyAgICBjYXNlIF9fTlJfc2NoZWRf Z2V0YWZmaW5pdHk6CisgICAgIGNhc2UgX19OUl9zY2hlZF9zZXRzY2hlZHVsZXI6CisgICAgICAg cmV0dXJuIFJlc3RyaWN0U2NoZWRUYXJnZXQoR2V0UG9saWN5UGlkKCksIHN5c25vKTsKKyAgICAg Y2FzZSBfX05SX3BybGltaXQ2NDoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAxNTAtY2hyb21pdW0tdW5idW5kbGUtZmZtcGVnLWF2X3N0cmVhbV9nZXRfZmlyc3Rf ZHRzLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1MC1jaHJvbWl1bS11 bmJ1bmRsZS1mZm1wZWctYXZfc3RyZWFtX2dldF9maXJzdF9kdHMucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lN2Y2MDQ4ZmJjMWMKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUwLWNocm9taXVtLXVuYnVuZGxl LWZmbXBlZy1hdl9zdHJlYW1fZ2V0X2ZpcnN0X2R0cy5wYXRjaApAQCAtMCwwICsxLDEwIEBACist LS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9s aW51eC91bmJ1bmRsZS9mZm1wZWcuZ24KKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9idWlsZC9saW51eC91bmJ1bmRsZS9mZm1wZWcuZ24KK0BAIC0xMiw2ICsx Miw3IEBAIHBrZ19jb25maWcoInN5c3RlbV9mZm1wZWciKSB7CisgICAgICJsaWJhdmZvcm1hdCIs CisgICAgICJsaWJhdnV0aWwiLAorICAgXQorKyAgZGVmaW5lcyA9IFsgImF2X3N0cmVhbV9nZXRf Zmlyc3RfZHRzKHN0cmVhbSk9c3RyZWFtLT5maXJzdF9kdHMiIF0KKyB9CisgCisgYnVpbGRmbGFn X2hlYWRlcigiZmZtcGVnX2ZlYXR1cmVzIikgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDE1MS1jaHJvbWl1bS11bmJ1bmRsZWQtY3Jvc3MtdG9vbGNoYWluLnBh dGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1MS1jaHJvbWl1bS11bmJ1bmRs ZWQtY3Jvc3MtdG9vbGNoYWluLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uNzQ2ZDJkZmI5YTdlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDE1MS1jaHJvbWl1bS11bmJ1bmRsZWQtY3Jvc3MtdG9vbGNoYWluLnBh dGNoCkBAIC0wLDAgKzEsMTMgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL2J1aWxkL3Rvb2xjaGFpbi9saW51eC91bmJ1bmRsZS9CVUlMRC5nbgor KysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL3Rvb2xj aGFpbi9saW51eC91bmJ1bmRsZS9CVUlMRC5nbgorQEAgLTM1LDggKzM1LDggQEAgZ2NjX3Rvb2xj aGFpbigiaG9zdCIpIHsKKyAgIGV4dHJhX2xkZmxhZ3MgPSBnZXRlbnYoIkJVSUxEX0xERkxBR1Mi KQorIAorICAgdG9vbGNoYWluX2FyZ3MgPSB7CistICAgIGN1cnJlbnRfY3B1ID0gY3VycmVudF9j cHUKKy0gICAgY3VycmVudF9vcyA9IGN1cnJlbnRfb3MKKysgICAgY3VycmVudF9jcHUgPSBob3N0 X2NwdQorKyAgICBjdXJyZW50X29zID0gaG9zdF9vcworICAgfQorIH0KKyAKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxNTItY2hyb21pdW0td2VicnRjLXNpemVf dC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxNTItY2hyb21pdW0td2Vi cnRjLXNpemVfdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjhmNjAyMDRmZjU4NAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAxNTItY2hyb21pdW0td2VicnRjLXNpemVfdC5wYXRjaApAQCAtMCwwICsxLDEwIEBA CistLS0gcXQ2LXdlYmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9hdWRpb19wcm9jZXNzaW5nL2FlYzMvY2xvY2tkcmlmdF9k ZXRlY3Rvci5oCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvd2VicnRjL21vZHVsZXMvYXVkaW9fcHJvY2Vzc2luZy9hZWMzL2Nsb2NrZHJp ZnRfZGV0ZWN0b3IuaAorQEAgLTE0LDYgKzE0LDcgQEAKKyAjaW5jbHVkZSA8c3RkZGVmLmg+Cisg CisgI2luY2x1ZGUgPGFycmF5PgorKyNpbmNsdWRlIDxjc3RkZGVmPgorIAorIG5hbWVzcGFjZSB3 ZWJydGMgeworIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1 My1jaHJvbWl1bS13ZWJydGMtc2l6ZV90LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDE1My1jaHJvbWl1bS13ZWJydGMtc2l6ZV90LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uM2I1YjdhM2Q1M2I5Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1My1jaHJvbWl1bS13ZWJydGMtc2l6ZV90 LnBhdGNoCkBAIC0wLDAgKzEsMTYgQEAKKy0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2FuZ2xlL2luY2x1ZGUvcGxhdGZvcm0vUGxh dGZvcm1NZXRob2RzLmgKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9hbmdsZS9pbmNsdWRlL3BsYXRmb3JtL1BsYXRmb3JtTWV0aG9kcy5o CitAQCAtMjIyLDExICsyMjIsMTEgQEAgaW5saW5lIHZvaWQgRGVmYXVsdEhpc3RvZ3JhbUJvb2xl YW4oUGxhdAorIHVzaW5nIFByb2dyYW1LZXlUeXBlICAgPSBzdGQ6OmFycmF5PHVpbnQ4X3QsIDIw PjsKKyB1c2luZyBDYWNoZVByb2dyYW1GdW5jID0gdm9pZCAoKikoUGxhdGZvcm1NZXRob2RzICpw bGF0Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUHJvZ3Jh bUtleVR5cGUgJmtleSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90 IHByb2dyYW1TaXplLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnNp emVfdCBwcm9ncmFtU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgdWludDhfdCAqcHJvZ3JhbUJ5dGVzKTsKKyBpbmxpbmUgdm9pZCBEZWZhdWx0Q2FjaGVQcm9n cmFtKFBsYXRmb3JtTWV0aG9kcyAqcGxhdGZvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBQcm9ncmFtS2V5VHlwZSAma2V5LAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2l6ZV90IHByb2dyYW1TaXplLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RkOjpzaXplX3QgcHJvZ3JhbVNpemUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCB1aW50OF90ICpwcm9ncmFtQnl0ZXMpCisge30KKyAKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxNTQtY2hyb21pdW0tdWl0X3QucGF0 Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTU0LWNocm9taXVtLXVpdF90LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDEzYTMxZmVlNDAy Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDE1NC1j aHJvbWl1bS11aXRfdC5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gcXQ2LXdlYmVuZ2luZS02 LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL2Ny ZWRlbnRpYWxzLmgKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmgKK0BAIC0xNCw2ICsxNCw4IEBA CisgI2luY2x1ZGUgPHN0cmluZz4KKyAjaW5jbHVkZSA8dmVjdG9yPgorIAorKyNpbmNsdWRlIDxz eXMvdHlwZXMuaD4KKysKKyAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9j YXBhYmlsaXR5LmgiCisgI2luY2x1ZGUgInNhbmRib3gvc2FuZGJveF9leHBvcnQuaCIKKyAKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDAtY2hyb21pdW0tc25k aW8ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAwLWNocm9taXVtLXNu ZGlvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDc2OWI1 MzE0OTdiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDIwMC1jaHJvbWl1bS1zbmRpby5wYXRjaApAQCAtMCwwICsxLDg0OSBAQAorLS0tIHF0Ni13ZWJl bmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvQlVJTEQuZ24KKysr KyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9CVUlMRC5n bgorQEAgLTc4LDYgKzc4LDkgQEAgY29uZmlnKCJtZWRpYV9jb25maWciKSB7CisgICAgICAgZGVm aW5lcyArPSBbICJETE9QRU5fUFVMU0VBVURJTyIgXQorICAgICB9CisgICB9CisrICBpZiAodXNl X3NuZGlvKSB7CisrICAgIGRlZmluZXMgKz0gWyAiVVNFX1NORElPIiBdCisrICB9CisgICBpZiAo dXNlX2NyYXMpIHsKKyAgICAgZGVmaW5lcyArPSBbICJVU0VfQ1JBUyIgXQorICAgfQorLS0tIHF0 Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8v QlVJTEQuZ24KKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9t ZWRpYS9hdWRpby9CVUlMRC5nbgorQEAgLTI0NSw2ICsyNDUsMTcgQEAgc291cmNlX3NldCgiYXVk aW8iKSB7CisgICAgIHNvdXJjZXMgKz0gWyAibGludXgvYXVkaW9fbWFuYWdlcl9saW51eC5jYyIg XQorICAgfQorIAorKyAgaWYgKHVzZV9zbmRpbykgeworKyAgICBsaWJzICs9IFsgInNuZGlvIiBd CisrICAgIHNvdXJjZXMgKz0gWworKyAgICAgICJzbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmNj IiwKKysgICAgICAic25kaW8vc25kaW9faW5wdXQuY2MiLAorKyAgICAgICJzbmRpby9zbmRpb19p bnB1dC5oIiwKKysgICAgICAic25kaW8vc25kaW9fb3V0cHV0LmNjIiwKKysgICAgICAic25kaW8v c25kaW9fb3V0cHV0LmgiCisrICAgIF0KKysgIH0KKysKKyAgIGlmICh1c2VfYWxzYSkgeworICAg ICBsaWJzICs9IFsgImFzb3VuZCIgXQorICAgICBzb3VyY2VzICs9IFsKKy0tLSBxdDYtd2ViZW5n aW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL2xpbnV4L2F1 ZGlvX21hbmFnZXJfbGludXguY2MKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjCitAQCAt MjUsNiArMjUsMTEgQEAKKyAjaW5jbHVkZSAibWVkaWEvYXVkaW8vcHVsc2UvYXVkaW9fbWFuYWdl cl9wdWxzZS5oIgorICNpbmNsdWRlICJtZWRpYS9hdWRpby9wdWxzZS9wdWxzZV91dGlsLmgiCisg I2VuZGlmCisrI2lmIGRlZmluZWQoVVNFX1NORElPKQorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9z bmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlv L3NuZGlvX2lucHV0LmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1 dC5oIgorKyNlbmRpZgorIAorIG5hbWVzcGFjZSBtZWRpYSB7CisgCistLS0gL2Rldi9udWxsCisr KysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8v c25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5jYworQEAgLTAsMCArMSwxNDggQEAKKysvLyBDb3B5 cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu CisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg bGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisr I2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uaCIKKysKKysj aW5jbHVkZSAiYmFzZS9tZXRyaWNzL2hpc3RvZ3JhbV9tYWNyb3MuaCIKKysjaW5jbHVkZSAiYmFz ZS9tZW1vcnkvcHRyX3V0aWwuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fZGV2aWNl X2Rlc2NyaXB0aW9uLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX291dHB1dF9kaXNw YXRjaGVyLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmgiCisr I2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oIgorKyNpbmNsdWRlICJt ZWRpYS9iYXNlL2xpbWl0cy5oIgorKyNpbmNsdWRlICJtZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVz LmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKysKKysvLyBNYXhpbXVtIG51bWJlciBvZiBv dXRwdXQgc3RyZWFtcyB0aGF0IGNhbiBiZSBvcGVuIHNpbXVsdGFuZW91c2x5LgorK3N0YXRpYyBj b25zdCBpbnQga01heE91dHB1dFN0cmVhbXMgPSA0OworKworKy8vIERlZmF1bHQgc2FtcGxlIHJh dGUgZm9yIGlucHV0IGFuZCBvdXRwdXQgc3RyZWFtcy4KKytzdGF0aWMgY29uc3QgaW50IGtEZWZh dWx0U2FtcGxlUmF0ZSA9IDQ4MDAwOworKworK3ZvaWQgQWRkRGVmYXVsdERldmljZShBdWRpb0Rl dmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIHsKKysgIERDSEVDSyhkZXZpY2VfbmFtZXMtPmVtcHR5 KCkpOworKyAgZGV2aWNlX25hbWVzLT5wdXNoX2Zyb250KEF1ZGlvRGV2aWNlTmFtZTo6Q3JlYXRl RGVmYXVsdCgpKTsKKyt9CisrCisrYm9vbCBBdWRpb01hbmFnZXJTbmRpbzo6SGFzQXVkaW9PdXRw dXREZXZpY2VzKCkgeworKyAgcmV0dXJuIHRydWU7CisrfQorKworK2Jvb2wgQXVkaW9NYW5hZ2Vy U25kaW86Okhhc0F1ZGlvSW5wdXREZXZpY2VzKCkgeworKyAgcmV0dXJuIHRydWU7CisrfQorKwor K3ZvaWQgQXVkaW9NYW5hZ2VyU25kaW86OkdldEF1ZGlvSW5wdXREZXZpY2VOYW1lcygKKysgICAg QXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSB7CisrICBEQ0hFQ0soZGV2aWNlX25hbWVz LT5lbXB0eSgpKTsKKysgIEFkZERlZmF1bHREZXZpY2UoZGV2aWNlX25hbWVzKTsKKyt9CisrCisr dm9pZCBBdWRpb01hbmFnZXJTbmRpbzo6R2V0QXVkaW9PdXRwdXREZXZpY2VOYW1lcygKKysgICAg QXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSB7CisrICBBZGREZWZhdWx0RGV2aWNlKGRl dmljZV9uYW1lcyk7CisrfQorKworK2NvbnN0IGNoYXIqIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRO YW1lKCkgeworKyAgcmV0dXJuICJTTkRJTyI7CisrfQorKworK0F1ZGlvUGFyYW1ldGVycyBBdWRp b01hbmFnZXJTbmRpbzo6R2V0SW5wdXRTdHJlYW1QYXJhbWV0ZXJzKAorKyAgICBjb25zdCBzdGQ6 OnN0cmluZyYgZGV2aWNlX2lkKSB7CisrICBzdGF0aWMgY29uc3QgaW50IGtEZWZhdWx0SW5wdXRC dWZmZXJTaXplID0gMTAyNDsKKysKKysgIGludCB1c2VyX2J1ZmZlcl9zaXplID0gR2V0VXNlckJ1 ZmZlclNpemUoKTsKKysgIGludCBidWZmZXJfc2l6ZSA9IHVzZXJfYnVmZmVyX3NpemUgPworKyAg ICAgIHVzZXJfYnVmZmVyX3NpemUgOiBrRGVmYXVsdElucHV0QnVmZmVyU2l6ZTsKKysKKysgIHJl dHVybiBBdWRpb1BhcmFtZXRlcnMoCisrICAgICAgQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01f TE9XX0xBVEVOQ1ksIENIQU5ORUxfTEFZT1VUX1NURVJFTywKKysgICAgICBrRGVmYXVsdFNhbXBs ZVJhdGUsIGJ1ZmZlcl9zaXplKTsKKyt9CisrCisrQXVkaW9NYW5hZ2VyU25kaW86OkF1ZGlvTWFu YWdlclNuZGlvKHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1RocmVhZD4gYXVkaW9fdGhyZWFkLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9Mb2dGYWN0b3J5KiBh dWRpb19sb2dfZmFjdG9yeSkKKysgICAgOiBBdWRpb01hbmFnZXJCYXNlKHN0ZDo6bW92ZShhdWRp b190aHJlYWQpLAorKyAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fbG9nX2ZhY3RvcnkpIHsK KysgIERMT0coV0FSTklORykgPDwgIkF1ZGlvTWFuYWdlclNuZGlvIjsKKysgIFNldE1heE91dHB1 dFN0cmVhbXNBbGxvd2VkKGtNYXhPdXRwdXRTdHJlYW1zKTsKKyt9CisrCisrQXVkaW9NYW5hZ2Vy U25kaW86On5BdWRpb01hbmFnZXJTbmRpbygpIHsKKysgIFNodXRkb3duKCk7CisrfQorKworK0F1 ZGlvT3V0cHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZUxpbmVhck91dHB1dFN0cmVh bSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgIGNvbnN0IExvZ0Nh bGxiYWNrJiBsb2dfY2FsbGJhY2spIHsKKysgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFV RElPX1BDTV9MSU5FQVIsIHBhcmFtcy5mb3JtYXQoKSk7CisrICByZXR1cm4gTWFrZU91dHB1dFN0 cmVhbShwYXJhbXMpOworK30KKysKKytBdWRpb091dHB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25k aW86Ok1ha2VMb3dMYXRlbmN5T3V0cHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRl cnMmIHBhcmFtcywKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwKKysgICAgY29u c3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgeworKyAgRExPR19JRihFUlJPUiwgIWRldmlj ZV9pZC5lbXB0eSgpKSA8PCAiTm90IGltcGxlbWVudGVkISI7CisrICBEQ0hFQ0tfRVEoQXVkaW9Q YXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1ksIHBhcmFtcy5mb3JtYXQoKSk7CisrICBy ZXR1cm4gTWFrZU91dHB1dFN0cmVhbShwYXJhbXMpOworK30KKysKKytBdWRpb0lucHV0U3RyZWFt KiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZUxpbmVhcklucHV0U3RyZWFtKAorKyAgICBjb25zdCBB dWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9p ZCwKKysgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgeworKyAgRENIRUNLX0VR KEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiwgcGFyYW1zLmZvcm1hdCgpKTsKKysg IHJldHVybiBNYWtlSW5wdXRTdHJlYW0ocGFyYW1zKTsKKyt9CisrCisrQXVkaW9JbnB1dFN0cmVh bSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VMb3dMYXRlbmN5SW5wdXRTdHJlYW0oCisrICAgIGNv bnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2 aWNlX2lkLAorKyAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSB7CisrICBEQ0hF Q0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1ksIHBhcmFtcy5mb3Jt YXQoKSk7CisrICByZXR1cm4gTWFrZUlucHV0U3RyZWFtKHBhcmFtcyk7CisrfQorKworK0F1ZGlv UGFyYW1ldGVycyBBdWRpb01hbmFnZXJTbmRpbzo6R2V0UHJlZmVycmVkT3V0cHV0U3RyZWFtUGFy YW1ldGVycygKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQsCisrICAg IGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgaW5wdXRfcGFyYW1zKSB7CisrICAvLyBUT0RPKHRvbW1p KTogU3VwcG9ydCB8b3V0cHV0X2RldmljZV9pZHwuCisrICBETE9HX0lGKEVSUk9SLCAhb3V0cHV0 X2RldmljZV9pZC5lbXB0eSgpKSA8PCAiTm90IGltcGxlbWVudGVkISI7CisrICBzdGF0aWMgY29u c3QgaW50IGtEZWZhdWx0T3V0cHV0QnVmZmVyU2l6ZSA9IDIwNDg7CisrCisrICBDaGFubmVsTGF5 b3V0IGNoYW5uZWxfbGF5b3V0ID0gQ0hBTk5FTF9MQVlPVVRfU1RFUkVPOworKyAgaW50IHNhbXBs ZV9yYXRlID0ga0RlZmF1bHRTYW1wbGVSYXRlOworKyAgaW50IGJ1ZmZlcl9zaXplID0ga0RlZmF1 bHRPdXRwdXRCdWZmZXJTaXplOworKyAgaWYgKGlucHV0X3BhcmFtcy5Jc1ZhbGlkKCkpIHsKKysg ICAgc2FtcGxlX3JhdGUgPSBpbnB1dF9wYXJhbXMuc2FtcGxlX3JhdGUoKTsKKysgICAgY2hhbm5l bF9sYXlvdXQgPSBpbnB1dF9wYXJhbXMuY2hhbm5lbF9sYXlvdXQoKTsKKysgICAgYnVmZmVyX3Np emUgPSBzdGQ6Om1pbihidWZmZXJfc2l6ZSwgaW5wdXRfcGFyYW1zLmZyYW1lc19wZXJfYnVmZmVy KCkpOworKyAgfQorKworKyAgaW50IHVzZXJfYnVmZmVyX3NpemUgPSBHZXRVc2VyQnVmZmVyU2l6 ZSgpOworKyAgaWYgKHVzZXJfYnVmZmVyX3NpemUpCisrICAgIGJ1ZmZlcl9zaXplID0gdXNlcl9i dWZmZXJfc2l6ZTsKKysKKysgIHJldHVybiBBdWRpb1BhcmFtZXRlcnMoCisrICAgICAgQXVkaW9Q YXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1ksIGNoYW5uZWxfbGF5b3V0LAorKyAgICAg IHNhbXBsZV9yYXRlLCBidWZmZXJfc2l6ZSk7CisrfQorKworK0F1ZGlvSW5wdXRTdHJlYW0qIEF1 ZGlvTWFuYWdlclNuZGlvOjpNYWtlSW5wdXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1l dGVycyYgcGFyYW1zKSB7CisrICBETE9HKFdBUk5JTkcpIDw8ICJNYWtlSW5wdXRTdHJlYW0iOwor KyAgcmV0dXJuIG5ldyBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0odGhpcywKKysgICAgICAgICAgICAg QXVkaW9EZXZpY2VEZXNjcmlwdGlvbjo6a0RlZmF1bHREZXZpY2VJZCwgcGFyYW1zKTsKKyt9Cisr CisrQXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpNYWtlT3V0cHV0U3RyZWFt KAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcykgeworKyAgRExPRyhXQVJOSU5H KSA8PCAiTWFrZU91dHB1dFN0cmVhbSI7CisrICByZXR1cm4gbmV3IFNuZGlvQXVkaW9PdXRwdXRT dHJlYW0ocGFyYW1zLCB0aGlzKTsKKyt9CisrCisrfSAgLy8gbmFtZXNwYWNlIG1lZGlhCistLS0g L2Rldi9udWxsCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0v bWVkaWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5oCitAQCAtMCwwICsxLDY1IEBA CisrLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRz IHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg QlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBm aWxlLgorKworKyNpZm5kZWYgTUVESUFfQVVESU9fU05ESU9fQVVESU9fTUFOQUdFUl9TTkRJT19I XworKyNkZWZpbmUgTUVESUFfQVVESU9fU05ESU9fQVVESU9fTUFOQUdFUl9TTkRJT19IXworKwor KyNpbmNsdWRlIDxzZXQ+CisrCisrI2luY2x1ZGUgImJhc2UvY29tcGlsZXJfc3BlY2lmaWMuaCIK KysjaW5jbHVkZSAiYmFzZS9tYWNyb3MuaCIKKysjaW5jbHVkZSAiYmFzZS9tZW1vcnkvcmVmX2Nv dW50ZWQuaCIKKysjaW5jbHVkZSAiYmFzZS90aHJlYWRpbmcvdGhyZWFkLmgiCisrI2luY2x1ZGUg Im1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXJfYmFzZS5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7 CisrCisrY2xhc3MgTUVESUFfRVhQT1JUIEF1ZGlvTWFuYWdlclNuZGlvIDogcHVibGljIEF1ZGlv TWFuYWdlckJhc2UgeworKyBwdWJsaWM6CisrICBBdWRpb01hbmFnZXJTbmRpbyhzdGQ6OnVuaXF1 ZV9wdHI8QXVkaW9UaHJlYWQ+IGF1ZGlvX3RocmVhZCwKKysgICAgICAgICAgICAgICAgICAgQXVk aW9Mb2dGYWN0b3J5KiBhdWRpb19sb2dfZmFjdG9yeSk7CisrICB+QXVkaW9NYW5hZ2VyU25kaW8o KSBvdmVycmlkZTsKKysKKysgIC8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlvTWFuYWdlci4KKysg IGJvb2wgSGFzQXVkaW9PdXRwdXREZXZpY2VzKCkgb3ZlcnJpZGU7CisrICBib29sIEhhc0F1ZGlv SW5wdXREZXZpY2VzKCkgb3ZlcnJpZGU7CisrICB2b2lkIEdldEF1ZGlvSW5wdXREZXZpY2VOYW1l cyhBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIG92ZXJyaWRlOworKyAgdm9pZCBHZXRB dWRpb091dHB1dERldmljZU5hbWVzKEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1lcykgb3Zl cnJpZGU7CisrICBBdWRpb1BhcmFtZXRlcnMgR2V0SW5wdXRTdHJlYW1QYXJhbWV0ZXJzKAorKyAg ICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQpIG92ZXJyaWRlOworKyAgY29uc3QgY2hh ciogR2V0TmFtZSgpIG92ZXJyaWRlOworKworKyAgLy8gSW1wbGVtZW50YXRpb24gb2YgQXVkaW9N YW5hZ2VyQmFzZS4KKysgIEF1ZGlvT3V0cHV0U3RyZWFtKiBNYWtlTGluZWFyT3V0cHV0U3RyZWFt KAorKyAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICAgIGNvbnN0IExv Z0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOworKyAgQXVkaW9PdXRwdXRTdHJlYW0q IE1ha2VMb3dMYXRlbmN5T3V0cHV0U3RyZWFtKAorKyAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVy cyYgcGFyYW1zLAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAgICAg Y29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJpZGU7CisrICBBdWRpb0lucHV0 U3RyZWFtKiBNYWtlTGluZWFySW5wdXRTdHJlYW0oCisrICAgICAgY29uc3QgQXVkaW9QYXJhbWV0 ZXJzJiBwYXJhbXMsCisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwKKysgICAg ICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlkZTsKKysgIEF1ZGlvSW5w dXRTdHJlYW0qIE1ha2VMb3dMYXRlbmN5SW5wdXRTdHJlYW0oCisrICAgICAgY29uc3QgQXVkaW9Q YXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwK KysgICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlkZTsKKysKKysg cHJvdGVjdGVkOgorKyAgQXVkaW9QYXJhbWV0ZXJzIEdldFByZWZlcnJlZE91dHB1dFN0cmVhbVBh cmFtZXRlcnMoCisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQsCisr ICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBpbnB1dF9wYXJhbXMpIG92ZXJyaWRlOworKwor KyBwcml2YXRlOgorKyAgLy8gQ2FsbGVkIGJ5IE1ha2VMaW5lYXJPdXRwdXRTdHJlYW0gYW5kIE1h a2VMb3dMYXRlbmN5T3V0cHV0U3RyZWFtLgorKyAgQXVkaW9PdXRwdXRTdHJlYW0qIE1ha2VPdXRw dXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpOworKyAgQXVkaW9JbnB1dFN0 cmVhbSogTWFrZUlucHV0U3RyZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsKKysK KysgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihBdWRpb01hbmFnZXJTbmRpbyk7CisrfTsKKysK Kyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKysKKysjZW5kaWYgIC8vIE1FRElBX0FVRElPX1NORElP X0FVRElPX01BTkFHRVJfU05ESU9fSF8KKy0tLSAvZGV2L251bGwKKysrKyBxdDYtd2ViZW5naW5l LTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1 dC5jYworQEAgLTAsMCArMSwyMDAgQEAKKysvLyBDb3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0g QXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91 bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaW5jbHVkZSAiYmFzZS9iaW5kLmgiCisrI2lu Y2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorKyNpbmNsdWRlICJiYXNlL21hY3Jvcy5oIgorKyNpbmNs dWRlICJtZWRpYS9iYXNlL2F1ZGlvX3RpbWVzdGFtcF9oZWxwZXIuaCIKKysjaW5jbHVkZSAibWVk aWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5oIgorKyNpbmNsdWRlICJtZWRpYS9h dWRpby9hdWRpb19tYW5hZ2VyLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlv X2lucHV0LmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytzdGF0aWMgY29uc3QgU2FtcGxl Rm9ybWF0IGtTYW1wbGVGb3JtYXQgPSBrU2FtcGxlRm9ybWF0UzE2OworKworK3ZvaWQgU25kaW9B dWRpb0lucHV0U3RyZWFtOjpPbk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSkKKyt7 CisrICBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlv SW5wdXRTdHJlYW0qPihhcmcpOworKworKyAgc2VsZi0+aHdfZGVsYXkgKz0gZGVsdGE7CisrfQor KworK3ZvaWQgKlNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6VGhyZWFkRW50cnkodm9pZCAqYXJnKSB7 CisrICBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlv SW5wdXRTdHJlYW0qPihhcmcpOworKworKyAgc2VsZi0+VGhyZWFkTG9vcCgpOworKyAgcmV0dXJu IE5VTEw7CisrfQorKworK1NuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U25kaW9BdWRpb0lucHV0U3Ry ZWFtKEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9uYW1lLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1ZGlvUGFy YW1ldGVycyYgcGFyYW1zKQorKyAgICA6IG1hbmFnZXIobWFuYWdlciksCisrICAgICAgcGFyYW1z KHBhcmFtcyksCisrICAgICAgYXVkaW9fYnVzKEF1ZGlvQnVzOjpDcmVhdGUocGFyYW1zKSksCisr ICAgICAgc3RhdGUoa0Nsb3NlZCkgeworK30KKysKKytTbmRpb0F1ZGlvSW5wdXRTdHJlYW06On5T bmRpb0F1ZGlvSW5wdXRTdHJlYW0oKSB7CisrICBpZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKysgICAg Q2xvc2UoKTsKKyt9CisrCisrYm9vbCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06Ok9wZW4oKSB7Cisr ICBzdHJ1Y3Qgc2lvX3BhciBwYXI7CisrICBpbnQgc2lnOworKworKyAgaWYgKHN0YXRlICE9IGtD bG9zZWQpCisrICAgIHJldHVybiBmYWxzZTsKKysKKysgIGlmIChwYXJhbXMuZm9ybWF0KCkgIT0g QXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTElORUFSICYmCisrICAgICAgcGFyYW1zLmZvcm1h dCgpICE9IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZKSB7CisrICAgIExP RyhXQVJOSU5HKSA8PCAiVW5zdXBwb3J0ZWQgYXVkaW8gZm9ybWF0LiI7CisrICAgIHJldHVybiBm YWxzZTsKKysgIH0KKysKKysgIHNpb19pbml0cGFyKCZwYXIpOworKyAgcGFyLnJhdGUgPSBwYXJh bXMuc2FtcGxlX3JhdGUoKTsKKysgIHBhci5yY2hhbiA9IHBhcmFtcy5jaGFubmVscygpOworKyAg cGFyLmJpdHMgPSBTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpOwor KyAgcGFyLmJwcyA9IHBhci5iaXRzIC8gODsKKysgIHBhci5zaWcgPSBzaWcgPSBwYXIuYml0cyAh PSA4ID8gMSA6IDA7CisrICBwYXIubGUgPSBTSU9fTEVfTkFUSVZFOworKyAgcGFyLmFwcGJ1ZnN6 ID0gcGFyYW1zLmZyYW1lc19wZXJfYnVmZmVyKCk7CisrCisrICBoZGwgPSBzaW9fb3BlbihTSU9f REVWQU5ZLCBTSU9fUkVDLCAwKTsKKysKKysgIGlmIChoZGwgPT0gTlVMTCkgeworKyAgICBMT0co RVJST1IpIDw8ICJDb3VsZG4ndCBvcGVuIGF1ZGlvIGRldmljZS4iOworKyAgICByZXR1cm4gZmFs c2U7CisrICB9CisrCisrICBpZiAoIXNpb19zZXRwYXIoaGRsLCAmcGFyKSB8fCAhc2lvX2dldHBh cihoZGwsICZwYXIpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHNldCBhdWRpbyBw YXJhbWV0ZXJzLiI7CisrICAgIGdvdG8gYmFkX2Nsb3NlOworKyAgfQorKworKyAgaWYgKHBhci5y YXRlICAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5zYW1wbGVfcmF0ZSgpIHx8CisrICAgICAgcGFy LnJjaGFuICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLmNoYW5uZWxzKCkgfHwKKysgICAgICBwYXIu Yml0cyAgIT0gKHVuc2lnbmVkIGludClTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1w bGVGb3JtYXQpIHx8CisrICAgICAgcGFyLnNpZyAgICE9ICh1bnNpZ25lZCBpbnQpc2lnIHx8Cisr ICAgICAgKHBhci5icHMgPiAxICYmIHBhci5sZSAhPSBTSU9fTEVfTkFUSVZFKSB8fAorKyAgICAg IChwYXIuYml0cyAhPSBwYXIuYnBzICogOCkpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiVW5zdXBw b3J0ZWQgYXVkaW8gcGFyYW1ldGVycy4iOworKyAgICBnb3RvIGJhZF9jbG9zZTsKKysgIH0KKysg IHN0YXRlID0ga1N0b3BwZWQ7CisrICBidWZmZXIgPSBuZXcgY2hhclthdWRpb19idXMtPmZyYW1l cygpICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCldOworKyAgc2lvX29u bW92ZShoZGwsICZPbk1vdmVDYWxsYmFjaywgdGhpcyk7CisrICByZXR1cm4gdHJ1ZTsKKytiYWRf Y2xvc2U6CisrICBzaW9fY2xvc2UoaGRsKTsKKysgIHJldHVybiBmYWxzZTsKKyt9CisrCisrdm9p ZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlN0YXJ0KEF1ZGlvSW5wdXRDYWxsYmFjayogY2IpIHsK KysKKysgIFN0YXJ0QWdjKCk7CisrCisrICBzdGF0ZSA9IGtSdW5uaW5nOworKyAgaHdfZGVsYXkg PSAwOworKyAgY2FsbGJhY2sgPSBjYjsKKysgIHNpb19zdGFydChoZGwpOworKyAgaWYgKHB0aHJl YWRfY3JlYXRlKCZ0aHJlYWQsIE5VTEwsICZUaHJlYWRFbnRyeSwgdGhpcykgIT0gMCkgeworKyAg ICBMT0coRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIHJlYWwtdGltZSB0aHJlYWQgZm9yIHJl Y29yZGluZy4iOworKyAgICBzaW9fc3RvcChoZGwpOworKyAgICBzdGF0ZSA9IGtTdG9wcGVkOwor KyAgfQorK30KKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U3RvcCgpIHsKKysKKysg IGlmIChzdGF0ZSA9PSBrU3RvcHBlZCkKKysgICAgcmV0dXJuOworKworKyAgc3RhdGUgPSBrU3Rv cFdhaXQ7CisrICBwdGhyZWFkX2pvaW4odGhyZWFkLCBOVUxMKTsKKysgIHNpb19zdG9wKGhkbCk7 CisrICBzdGF0ZSA9IGtTdG9wcGVkOworKworKyAgU3RvcEFnYygpOworK30KKysKKyt2b2lkIFNu ZGlvQXVkaW9JbnB1dFN0cmVhbTo6Q2xvc2UoKSB7CisrCisrICBpZiAoc3RhdGUgPT0ga0Nsb3Nl ZCkKKysgICAgcmV0dXJuOworKworKyAgaWYgKHN0YXRlID09IGtSdW5uaW5nKQorKyAgICBTdG9w KCk7CisrCisrICBzdGF0ZSA9IGtDbG9zZWQ7CisrICBkZWxldGUgW10gYnVmZmVyOworKyAgc2lv X2Nsb3NlKGhkbCk7CisrCisrICBtYW5hZ2VyLT5SZWxlYXNlSW5wdXRTdHJlYW0odGhpcyk7Cisr fQorKworK2RvdWJsZSBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OkdldE1heFZvbHVtZSgpIHsKKysg IC8vIE5vdCBzdXBwb3J0ZWQKKysgIHJldHVybiAwLjA7CisrfQorKworK3ZvaWQgU25kaW9BdWRp b0lucHV0U3RyZWFtOjpTZXRWb2x1bWUoZG91YmxlIHZvbHVtZSkgeworKyAgLy8gTm90IHN1cHBv cnRlZC4gRG8gbm90aGluZy4KKyt9CisrCisrZG91YmxlIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6 R2V0Vm9sdW1lKCkgeworKyAgLy8gTm90IHN1cHBvcnRlZC4KKysgIHJldHVybiAwLjA7CisrfQor KworK2Jvb2wgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpJc011dGVkKCkgeworKyAgLy8gTm90IHN1 cHBvcnRlZC4KKysgIHJldHVybiBmYWxzZTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRT dHJlYW06OlNldE91dHB1dERldmljZUZvckFlYygKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91 dHB1dF9kZXZpY2VfaWQpIHsKKysgIC8vIE5vdCBzdXBwb3J0ZWQuCisrfQorKworK3ZvaWQgU25k aW9BdWRpb0lucHV0U3RyZWFtOjpUaHJlYWRMb29wKHZvaWQpIHsKKysgIHNpemVfdCB0b2RvLCBu OworKyAgY2hhciAqZGF0YTsKKysgIHVuc2lnbmVkIGludCBuZnJhbWVzOworKyAgZG91YmxlIG5v cm1hbGl6ZWRfdm9sdW1lID0gMC4wOworKworKyAgbmZyYW1lcyA9IGF1ZGlvX2J1cy0+ZnJhbWVz KCk7CisrCisrICB3aGlsZSAoc3RhdGUgPT0ga1J1bm5pbmcgJiYgIXNpb19lb2YoaGRsKSkgewor KworKyAgICBHZXRBZ2NWb2x1bWUoJm5vcm1hbGl6ZWRfdm9sdW1lKTsKKysKKysgICAgLy8gcmVh ZCBvbmUgYmxvY2sKKysgICAgdG9kbyA9IG5mcmFtZXMgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFt ZShrU2FtcGxlRm9ybWF0KTsKKysgICAgZGF0YSA9IGJ1ZmZlcjsKKysgICAgd2hpbGUgKHRvZG8g PiAwKSB7CisrICAgICAgbiA9IHNpb19yZWFkKGhkbCwgZGF0YSwgdG9kbyk7CisrICAgICAgaWYg KG4gPT0gMCkKKysgICAgICAgIHJldHVybjsJLy8gdW5yZWNvdmVyYWJsZSBJL08gZXJyb3IKKysg ICAgICB0b2RvIC09IG47CisrICAgICAgZGF0YSArPSBuOworKyAgICB9CisrICAgIGh3X2RlbGF5 IC09IG5mcmFtZXM7CisrCisrICAgIC8vIGNvbnZlcnQgZnJhbWVzIGNvdW50IHRvIFRpbWVEZWx0 YQorKyAgICBjb25zdCBiYXNlOjpUaW1lRGVsdGEgZGVsYXkgPSBBdWRpb1RpbWVzdGFtcEhlbHBl cjo6RnJhbWVzVG9UaW1lKGh3X2RlbGF5LAorKyAgICAgIHBhcmFtcy5zYW1wbGVfcmF0ZSgpKTsK KysKKysgICAgLy8gcHVzaCBpbnRvIGJ1cworKyAgICBhdWRpb19idXMtPkZyb21JbnRlcmxlYXZl ZDxTaWduZWRJbnQxNlNhbXBsZVR5cGVUcmFpdHM+KHJlaW50ZXJwcmV0X2Nhc3Q8aW50MTZfdCo+ KGJ1ZmZlciksIG5mcmFtZXMpOworKworKyAgICAvLyBpbnZva2UgY2FsbGJhY2sKKysgICAgY2Fs bGJhY2stPk9uRGF0YShhdWRpb19idXMuZ2V0KCksIGJhc2U6OlRpbWVUaWNrczo6Tm93KCkgLSBk ZWxheSwgMS4pOworKyAgfQorK30KKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKy0tLSAvZGV2 L251bGwKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRp YS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5oCitAQCAtMCwwICsxLDkxIEBACisrLy8gQ29weXJp Z2h0IDIwMTMgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8g VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5z ZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRl ZiBNRURJQV9BVURJT19TTkRJT19TTkRJT19JTlBVVF9IXworKyNkZWZpbmUgTUVESUFfQVVESU9f U05ESU9fU05ESU9fSU5QVVRfSF8KKysKKysjaW5jbHVkZSA8c3RkaW50Lmg+CisrI2luY2x1ZGUg PHN0cmluZz4KKysjaW5jbHVkZSA8c25kaW8uaD4KKysKKysjaW5jbHVkZSAiYmFzZS9jb21waWxl cl9zcGVjaWZpYy5oIgorKyNpbmNsdWRlICJiYXNlL21hY3Jvcy5oIgorKyNpbmNsdWRlICJiYXNl L21lbW9yeS93ZWFrX3B0ci5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUvdGltZS5oIgorKyNpbmNs dWRlICJtZWRpYS9hdWRpby9hZ2NfYXVkaW9fc3RyZWFtLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1 ZGlvL2F1ZGlvX2lvLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2RldmljZV9kZXNj cmlwdGlvbi5oIgorKyNpbmNsdWRlICJtZWRpYS9iYXNlL2F1ZGlvX3BhcmFtZXRlcnMuaCIKKysK KytuYW1lc3BhY2UgbWVkaWEgeworKworK2NsYXNzIEF1ZGlvTWFuYWdlckJhc2U7CisrCisrLy8g SW1wbGVtZW50YXRpb24gb2YgQXVkaW9PdXRwdXRTdHJlYW0gdXNpbmcgc25kaW8oNykKKytjbGFz cyBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0gOiBwdWJsaWMgQWdjQXVkaW9TdHJlYW08QXVkaW9JbnB1 dFN0cmVhbT4geworKyBwdWJsaWM6CisrICAvLyBQYXNzIHRoaXMgdG8gdGhlIGNvbnN0cnVjdG9y IGlmIHlvdSB3YW50IHRvIGF0dGVtcHQgYXV0by1zZWxlY3Rpb24KKysgIC8vIG9mIHRoZSBhdWRp byByZWNvcmRpbmcgZGV2aWNlLgorKyAgc3RhdGljIGNvbnN0IGNoYXIga0F1dG9TZWxlY3REZXZp Y2VbXTsKKysKKysgIC8vIENyZWF0ZSBhIFBDTSBPdXRwdXQgc3RyZWFtIGZvciB0aGUgU05ESU8g ZGV2aWNlIGlkZW50aWZpZWQgYnkKKysgIC8vIHxkZXZpY2VfbmFtZXwuIElmIHVuc3VyZSBvZiB3 aGF0IHRvIHVzZSBmb3IgfGRldmljZV9uYW1lfCwgdXNlCisrICAvLyB8a0F1dG9TZWxlY3REZXZp Y2V8LgorKyAgU25kaW9BdWRpb0lucHV0U3RyZWFtKEF1ZGlvTWFuYWdlckJhc2UqIGF1ZGlvX21h bmFnZXIsCisrICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9u YW1lLAorKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1z KTsKKysKKysgIH5TbmRpb0F1ZGlvSW5wdXRTdHJlYW0oKSBvdmVycmlkZTsKKysKKysgIC8vIElt cGxlbWVudGF0aW9uIG9mIEF1ZGlvSW5wdXRTdHJlYW0uCisrICBib29sIE9wZW4oKSBvdmVycmlk ZTsKKysgIHZvaWQgU3RhcnQoQXVkaW9JbnB1dENhbGxiYWNrKiBjYWxsYmFjaykgb3ZlcnJpZGU7 CisrICB2b2lkIFN0b3AoKSBvdmVycmlkZTsKKysgIHZvaWQgQ2xvc2UoKSBvdmVycmlkZTsKKysg IGRvdWJsZSBHZXRNYXhWb2x1bWUoKSBvdmVycmlkZTsKKysgIHZvaWQgU2V0Vm9sdW1lKGRvdWJs ZSB2b2x1bWUpIG92ZXJyaWRlOworKyAgZG91YmxlIEdldFZvbHVtZSgpIG92ZXJyaWRlOworKyAg Ym9vbCBJc011dGVkKCkgb3ZlcnJpZGU7CisrICB2b2lkIFNldE91dHB1dERldmljZUZvckFlYyhj b25zdCBzdGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCkgb3ZlcnJpZGU7CisrCisrIHByaXZh dGU6CisrCisrICBlbnVtIFN0cmVhbVN0YXRlIHsKKysgICAga0Nsb3NlZCwgICAgICAgICAgICAv LyBOb3Qgb3BlbmVkIHlldAorKyAgICBrU3RvcHBlZCwgICAgICAgICAgIC8vIERldmljZSBvcGVu ZWQsIGJ1dCBub3Qgc3RhcnRlZCB5ZXQKKysgICAga1J1bm5pbmcsICAgICAgICAgICAvLyBTdGFy dGVkLCBkZXZpY2UgcGxheWluZworKyAgICBrU3RvcFdhaXQgICAgICAgICAgIC8vIFN0b3BwaW5n LCB3YWl0aW5nIGZvciB0aGUgcmVhbC10aW1lIHRocmVhZCB0byBleGl0CisrICB9OworKworKyAg Ly8gQy1zdHlsZSBjYWxsLWJhY2tzCisrICBzdGF0aWMgdm9pZCBPbk1vdmVDYWxsYmFjayh2b2lk ICphcmcsIGludCBkZWx0YSk7CisrICBzdGF0aWMgdm9pZCogVGhyZWFkRW50cnkodm9pZCAqYXJn KTsKKysKKysgIC8vIENvbnRpbnVvdXNseSBtb3ZlcyBkYXRhIGZyb20gdGhlIGRldmljZSB0byB0 aGUgY29uc3VtZXIKKysgIHZvaWQgVGhyZWFkTG9vcCgpOworKyAgLy8gT3VyIGNyZWF0b3IsIHRo ZSBhdWRpbyBtYW5hZ2VyIG5lZWRzIHRvIGJlIG5vdGlmaWVkIHdoZW4gd2UgY2xvc2UuCisrICBB dWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyOworKyAgLy8gUGFyYW1ldGVycyBvZiB0aGUgc291cmNl CisrICBBdWRpb1BhcmFtZXRlcnMgcGFyYW1zOworKyAgLy8gV2Ugc3RvcmUgZGF0YSBoZXJlIGZv ciBjb25zdW1lcgorKyAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvQnVzPiBhdWRpb19idXM7CisrICAv LyBDYWxsLWJhY2sgdGhhdCBjb25zdW1lcyByZWNvcmRlZCBkYXRhCisrICBBdWRpb0lucHV0Q2Fs bGJhY2sqIGNhbGxiYWNrOyAgLy8gVmFsaWQgZHVyaW5nIGEgcmVjb3JkaW5nIHNlc3Npb24uCisr ICAvLyBIYW5kbGUgb2YgdGhlIGF1ZGlvIGRldmljZQorKyAgc3RydWN0IHNpb19oZGwqIGhkbDsK KysgIC8vIEN1cnJlbnQgc3RhdGUgb2YgdGhlIHN0cmVhbQorKyAgZW51bSBTdHJlYW1TdGF0ZSBz dGF0ZTsKKysgIC8vIEhpZ2ggcHJpb3JpdHkgdGhyZWFkIHJ1bm5pbmcgVGhyZWFkTG9vcCgpCisr ICBwdGhyZWFkX3QgdGhyZWFkOworKyAgLy8gTnVtYmVyIG9mIGZyYW1lcyBidWZmZXJlZCBpbiB0 aGUgaGFyZHdhcmUKKysgIGludCBod19kZWxheTsKKysgIC8vIFRlbXBvcmFyeSBidWZmZXIgd2hl cmUgZGF0YSBpcyBzdG9yZWQgc25kaW8tY29tcGF0aWJsZSBmb3JtYXQKKysgIGNoYXIqIGJ1ZmZl cjsKKysKKysgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihTbmRpb0F1ZGlvSW5wdXRTdHJlYW0p OworK307CisrCisrfSAgLy8gbmFtZXNwYWNlIG1lZGlhCisrCisrI2VuZGlmICAvLyBNRURJQV9B VURJT19TTkRJT19TTkRJT19JTlBVVF9IXworLS0tIC9kZXYvbnVsbAorKysrIHF0Ni13ZWJlbmdp bmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291 dHB1dC5jYworQEAgLTAsMCArMSwxODMgQEAKKysvLyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENo cm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291 cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor Ky8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2luY2x1ZGUgImJhc2UvbG9nZ2lu Zy5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUvdGltZS5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUv ZGVmYXVsdF90aWNrX2Nsb2NrLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFn ZXJfYmFzZS5oIgorKyNpbmNsdWRlICJtZWRpYS9iYXNlL2F1ZGlvX3RpbWVzdGFtcF9oZWxwZXIu aCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmgiCisrCisrbmFt ZXNwYWNlIG1lZGlhIHsKKysKKytzdGF0aWMgY29uc3QgU2FtcGxlRm9ybWF0IGtTYW1wbGVGb3Jt YXQgPSBrU2FtcGxlRm9ybWF0UzE2OworKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6 T25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpIHsKKysgIFNuZGlvQXVkaW9PdXRw dXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKj4oYXJn KTsKKysKKysgIHNlbGYtPmh3X2RlbGF5IC09IGRlbHRhOworK30KKysKKyt2b2lkIFNuZGlvQXVk aW9PdXRwdXRTdHJlYW06Ok9uVm9sQ2FsbGJhY2sodm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9s KSB7CisrICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9B dWRpb091dHB1dFN0cmVhbSo+KGFyZyk7CisrCisrICBzZWxmLT52b2wgPSB2b2w7CisrfQorKwor K3ZvaWQgKlNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlRocmVhZEVudHJ5KHZvaWQgKmFyZykgewor KyAgU25kaW9BdWRpb091dHB1dFN0cmVhbSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9P dXRwdXRTdHJlYW0qPihhcmcpOworKworKyAgc2VsZi0+VGhyZWFkTG9vcCgpOworKyAgcmV0dXJu IE5VTEw7CisrfQorKworK1NuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlNuZGlvQXVkaW9PdXRwdXRT dHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyKQor KyAgICA6IG1hbmFnZXIobWFuYWdlciksCisrICAgICAgcGFyYW1zKHBhcmFtcyksCisrICAgICAg YXVkaW9fYnVzKEF1ZGlvQnVzOjpDcmVhdGUocGFyYW1zKSksCisrICAgICAgc3RhdGUoa0Nsb3Nl ZCksCisrICAgICAgbXV0ZXgoUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUikgeworK30KKysKKytT bmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjp+U25kaW9BdWRpb091dHB1dFN0cmVhbSgpIHsKKysgIGlm IChzdGF0ZSAhPSBrQ2xvc2VkKQorKyAgICBDbG9zZSgpOworK30KKysKKytib29sIFNuZGlvQXVk aW9PdXRwdXRTdHJlYW06Ok9wZW4oKSB7CisrICBzdHJ1Y3Qgc2lvX3BhciBwYXI7CisrICBpbnQg c2lnOworKworKyAgaWYgKHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElP X1BDTV9MSU5FQVIgJiYKKysgICAgICBwYXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0ZXJz OjpBVURJT19QQ01fTE9XX0xBVEVOQ1kpIHsKKysgICAgTE9HKFdBUk5JTkcpIDw8ICJVbnN1cHBv cnRlZCBhdWRpbyBmb3JtYXQuIjsKKysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKyAgc2lvX2lu aXRwYXIoJnBhcik7CisrICBwYXIucmF0ZSA9IHBhcmFtcy5zYW1wbGVfcmF0ZSgpOworKyAgcGFy LnBjaGFuID0gcGFyYW1zLmNoYW5uZWxzKCk7CisrICBwYXIuYml0cyA9IFNhbXBsZUZvcm1hdFRv Qml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCk7CisrICBwYXIuYnBzID0gcGFyLmJpdHMgLyA4 OworKyAgcGFyLnNpZyA9IHNpZyA9IHBhci5iaXRzICE9IDggPyAxIDogMDsKKysgIHBhci5sZSA9 IFNJT19MRV9OQVRJVkU7CisrICBwYXIuYXBwYnVmc3ogPSBwYXJhbXMuZnJhbWVzX3Blcl9idWZm ZXIoKTsKKysKKysgIGhkbCA9IHNpb19vcGVuKFNJT19ERVZBTlksIFNJT19QTEFZLCAwKTsKKysg IGlmIChoZGwgPT0gTlVMTCkgeworKyAgICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCBvcGVuIGF1 ZGlvIGRldmljZS4iOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrICBpZiAoIXNpb19zZXRw YXIoaGRsLCAmcGFyKSB8fCAhc2lvX2dldHBhcihoZGwsICZwYXIpKSB7CisrICAgIExPRyhFUlJP UikgPDwgIkNvdWxkbid0IHNldCBhdWRpbyBwYXJhbWV0ZXJzLiI7CisrICAgIGdvdG8gYmFkX2Ns b3NlOworKyAgfQorKyAgaWYgKHBhci5yYXRlICAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5zYW1w bGVfcmF0ZSgpIHx8CisrICAgICAgcGFyLnBjaGFuICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLmNo YW5uZWxzKCkgfHwKKysgICAgICBwYXIuYml0cyAgIT0gKHVuc2lnbmVkIGludClTYW1wbGVGb3Jt YXRUb0JpdHNQZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpIHx8CisrICAgICAgcGFyLnNpZyAgICE9 ICh1bnNpZ25lZCBpbnQpc2lnIHx8CisrICAgICAgKHBhci5icHMgPiAxICYmIHBhci5sZSAhPSBT SU9fTEVfTkFUSVZFKSB8fAorKyAgICAgIChwYXIuYml0cyAhPSBwYXIuYnBzICogOCkpIHsKKysg ICAgTE9HKEVSUk9SKSA8PCAiVW5zdXBwb3J0ZWQgYXVkaW8gcGFyYW1ldGVycy4iOworKyAgICBn b3RvIGJhZF9jbG9zZTsKKysgIH0KKysgIHN0YXRlID0ga1N0b3BwZWQ7CisrICB2b2xwZW5kaW5n ID0gMDsKKysgIHZvbCA9IDA7CisrICBidWZmZXIgPSBuZXcgY2hhclthdWRpb19idXMtPmZyYW1l cygpICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCldOworKyAgc2lvX29u bW92ZShoZGwsICZPbk1vdmVDYWxsYmFjaywgdGhpcyk7CisrICBzaW9fb252b2woaGRsLCAmT25W b2xDYWxsYmFjaywgdGhpcyk7CisrICByZXR1cm4gdHJ1ZTsKKysgYmFkX2Nsb3NlOgorKyAgc2lv X2Nsb3NlKGhkbCk7CisrICByZXR1cm4gZmFsc2U7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091 dHB1dFN0cmVhbTo6Q2xvc2UoKSB7CisrICBpZiAoc3RhdGUgPT0ga0Nsb3NlZCkKKysgICAgcmV0 dXJuOworKyAgaWYgKHN0YXRlID09IGtSdW5uaW5nKQorKyAgICBTdG9wKCk7CisrICBzdGF0ZSA9 IGtDbG9zZWQ7CisrICBkZWxldGUgW10gYnVmZmVyOworKyAgc2lvX2Nsb3NlKGhkbCk7CisrICBt YW5hZ2VyLT5SZWxlYXNlT3V0cHV0U3RyZWFtKHRoaXMpOyAgLy8gQ2FsbHMgdGhlIGRlc3RydWN0 b3IKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpTdGFydChBdWRpb1NvdXJj ZUNhbGxiYWNrKiBjYWxsYmFjaykgeworKyAgc3RhdGUgPSBrUnVubmluZzsKKysgIGh3X2RlbGF5 ID0gMDsKKysgIHNvdXJjZSA9IGNhbGxiYWNrOworKyAgc2lvX3N0YXJ0KGhkbCk7CisrICBpZiAo cHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwgJlRocmVhZEVudHJ5LCB0aGlzKSAhPSAwKSB7 CisrICAgIExPRyhFUlJPUikgPDwgIkZhaWxlZCB0byBjcmVhdGUgcmVhbC10aW1lIHRocmVhZC4i OworKyAgICBzaW9fc3RvcChoZGwpOworKyAgICBzdGF0ZSA9IGtTdG9wcGVkOworKyAgfQorK30K KysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlN0b3AoKSB7CisrICBpZiAoc3RhdGUg PT0ga1N0b3BwZWQpCisrICAgIHJldHVybjsKKysgIHN0YXRlID0ga1N0b3BXYWl0OworKyAgcHRo cmVhZF9qb2luKHRocmVhZCwgTlVMTCk7CisrICBzaW9fc3RvcChoZGwpOworKyAgc3RhdGUgPSBr U3RvcHBlZDsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpTZXRWb2x1bWUo ZG91YmxlIHYpIHsKKysgIHB0aHJlYWRfbXV0ZXhfbG9jaygmbXV0ZXgpOworKyAgdm9sID0gdiAq IFNJT19NQVhWT0w7CisrICB2b2xwZW5kaW5nID0gMTsKKysgIHB0aHJlYWRfbXV0ZXhfdW5sb2Nr KCZtdXRleCk7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6R2V0Vm9sdW1l KGRvdWJsZSogdikgeworKyAgcHRocmVhZF9tdXRleF9sb2NrKCZtdXRleCk7CisrICAqdiA9IHZv bCAqICgxLiAvIFNJT19NQVhWT0wpOworKyAgcHRocmVhZF9tdXRleF91bmxvY2soJm11dGV4KTsK Kyt9CisrCisrLy8gVGhpcyBzdHJlYW0gaXMgYWx3YXlzIHVzZWQgd2l0aCBzdWIgc2Vjb25kIGJ1 ZmZlciBzaXplcywgd2hlcmUgaXQncworKy8vIHN1ZmZpY2llbnQgdG8gc2ltcGx5IGFsd2F5cyBm bHVzaCB1cG9uIFN0YXJ0KCkuCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpGbHVzaCgp IHt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpUaHJlYWRMb29wKHZvaWQpIHsK KysgIGludCBhdmFpbCwgY291bnQsIHJlc3VsdDsKKysKKysgIHdoaWxlIChzdGF0ZSA9PSBrUnVu bmluZykgeworKyAgICAvLyBVcGRhdGUgdm9sdW1lIGlmIG5lZWRlZAorKyAgICBwdGhyZWFkX211 dGV4X2xvY2soJm11dGV4KTsKKysgICAgaWYgKHZvbHBlbmRpbmcpIHsKKysgICAgICB2b2xwZW5k aW5nID0gMDsKKysgICAgICBzaW9fc2V0dm9sKGhkbCwgdm9sKTsKKysgICAgfQorKyAgICBwdGhy ZWFkX211dGV4X3VubG9jaygmbXV0ZXgpOworKworKyAgICAvLyBHZXQgZGF0YSB0byBwbGF5Cisr ICAgIGNvbnN0IGJhc2U6OlRpbWVEZWx0YSBkZWxheSA9IEF1ZGlvVGltZXN0YW1wSGVscGVyOjpG cmFtZXNUb1RpbWUoaHdfZGVsYXksCisrCXBhcmFtcy5zYW1wbGVfcmF0ZSgpKTsKKysgICAgY291 bnQgPSBzb3VyY2UtPk9uTW9yZURhdGEoZGVsYXksIGJhc2U6OlRpbWVUaWNrczo6Tm93KCksIDAs IGF1ZGlvX2J1cy5nZXQoKSk7CisrICAgIGF1ZGlvX2J1cy0+VG9JbnRlcmxlYXZlZDxTaWduZWRJ bnQxNlNhbXBsZVR5cGVUcmFpdHM+KGNvdW50LCByZWludGVycHJldF9jYXN0PGludDE2X3QqPihi dWZmZXIpKTsKKysgICAgaWYgKGNvdW50ID09IDApIHsKKysgICAgICAvLyBXZSBoYXZlIHRvIHN1 Ym1pdCBzb21ldGhpbmcgdG8gdGhlIGRldmljZQorKyAgICAgIGNvdW50ID0gYXVkaW9fYnVzLT5m cmFtZXMoKTsKKysgICAgICBtZW1zZXQoYnVmZmVyLCAwLCBjb3VudCAqIHBhcmFtcy5HZXRCeXRl c1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpKTsKKysgICAgICBMT0coV0FSTklORykgPDwgIk5vIGRh dGEgdG8gcGxheSwgcnVubmluZyBlbXB0eSBjeWNsZS4iOworKyAgICB9CisrCisrICAgIC8vIFN1 Ym1pdCBkYXRhIHRvIHRoZSBkZXZpY2UKKysgICAgYXZhaWwgPSBjb3VudCAqIHBhcmFtcy5HZXRC eXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpOworKyAgICByZXN1bHQgPSBzaW9fd3JpdGUoaGRs LCBidWZmZXIsIGF2YWlsKTsKKysgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisrICAgICAgTE9HKFdB Uk5JTkcpIDw8ICJBdWRpbyBkZXZpY2UgZGlzY29ubmVjdGVkLiI7CisrICAgICAgYnJlYWs7Cisr ICAgIH0KKysKKysgICAgLy8gVXBkYXRlIGhhcmR3YXJlIHBvaW50ZXIKKysgICAgaHdfZGVsYXkg Kz0gY291bnQ7CisrICB9CisrfQorKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorLS0tIC9kZXYv bnVsbAorKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlh L2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oCitAQCAtMCwwICsxLDg2IEBACisrLy8gQ29weXJp Z2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor Ky8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxp Y2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNp Zm5kZWYgTUVESUFfQVVESU9fU05ESU9fU05ESU9fT1VUUFVUX0hfCisrI2RlZmluZSBNRURJQV9B VURJT19TTkRJT19TTkRJT19PVVRQVVRfSF8KKysKKysjaW5jbHVkZSA8cHRocmVhZC5oPgorKyNp bmNsdWRlIDxzbmRpby5oPgorKworKyNpbmNsdWRlICJiYXNlL3RpbWUvdGlja19jbG9jay5oIgor KyNpbmNsdWRlICJiYXNlL3RpbWUvdGltZS5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRp b19pby5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7CisrCisrY2xhc3MgQXVkaW9NYW5hZ2VyQmFz ZTsKKysKKysvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb091dHB1dFN0cmVhbSB1c2luZyBzbmRp byg3KQorK2NsYXNzIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0gOiBwdWJsaWMgQXVkaW9PdXRwdXRT dHJlYW0geworKyBwdWJsaWM6CisrICAvLyBUaGUgbWFuYWdlciBpcyBjcmVhdGluZyB0aGlzIG9i amVjdAorKyAgU25kaW9BdWRpb091dHB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBh cmFtcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdl cik7CisrICB2aXJ0dWFsIH5TbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKCk7CisrCisrICAvLyBJbXBs ZW1lbnRhdGlvbiBvZiBBdWRpb091dHB1dFN0cmVhbS4KKysgIGJvb2wgT3BlbigpIG92ZXJyaWRl OworKyAgdm9pZCBDbG9zZSgpIG92ZXJyaWRlOworKyAgdm9pZCBTdGFydChBdWRpb1NvdXJjZUNh bGxiYWNrKiBjYWxsYmFjaykgb3ZlcnJpZGU7CisrICB2b2lkIFN0b3AoKSBvdmVycmlkZTsKKysg IHZvaWQgU2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUpIG92ZXJyaWRlOworKyAgdm9pZCBHZXRWb2x1 bWUoZG91YmxlKiB2b2x1bWUpIG92ZXJyaWRlOworKyAgdm9pZCBGbHVzaCgpIG92ZXJyaWRlOwor KworKyAgZnJpZW5kIHZvaWQgc25kaW9fb25tb3ZlKHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKysg IGZyaWVuZCB2b2lkIHNuZGlvX29udm9sKHZvaWQgKmFyZywgdW5zaWduZWQgaW50IHZvbCk7Cisr ICBmcmllbmQgdm9pZCAqc25kaW9fdGhyZWFkc3RhcnQodm9pZCAqYXJnKTsKKysKKysgcHJpdmF0 ZToKKysgIGVudW0gU3RyZWFtU3RhdGUgeworKyAgICBrQ2xvc2VkLCAgICAgICAgICAgIC8vIE5v dCBvcGVuZWQgeWV0CisrICAgIGtTdG9wcGVkLCAgICAgICAgICAgLy8gRGV2aWNlIG9wZW5lZCwg YnV0IG5vdCBzdGFydGVkIHlldAorKyAgICBrUnVubmluZywgICAgICAgICAgIC8vIFN0YXJ0ZWQs IGRldmljZSBwbGF5aW5nCisrICAgIGtTdG9wV2FpdCAgICAgICAgICAgLy8gU3RvcHBpbmcsIHdh aXRpbmcgZm9yIHRoZSByZWFsLXRpbWUgdGhyZWFkIHRvIGV4aXQKKysgIH07CisrCisrICAvLyBD LXN0eWxlIGNhbGwtYmFja3MKKysgIHN0YXRpYyB2b2lkIE9uTW92ZUNhbGxiYWNrKHZvaWQgKmFy ZywgaW50IGRlbHRhKTsKKysgIHN0YXRpYyB2b2lkIE9uVm9sQ2FsbGJhY2sodm9pZCAqYXJnLCB1 bnNpZ25lZCBpbnQgdm9sKTsKKysgIHN0YXRpYyB2b2lkKiBUaHJlYWRFbnRyeSh2b2lkICphcmcp OworKworKyAgLy8gQ29udGludW91c2x5IG1vdmVzIGRhdGEgZnJvbSB0aGUgcHJvZHVjZXIgdG8g dGhlIGRldmljZQorKyAgdm9pZCBUaHJlYWRMb29wKHZvaWQpOworKworKyAgLy8gT3VyIGNyZWF0 b3IsIHRoZSBhdWRpbyBtYW5hZ2VyIG5lZWRzIHRvIGJlIG5vdGlmaWVkIHdoZW4gd2UgY2xvc2Uu CisrICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyOworKyAgLy8gUGFyYW1ldGVycyBvZiB0aGUg c291cmNlCisrICBBdWRpb1BhcmFtZXRlcnMgcGFyYW1zOworKyAgLy8gU291cmNlIHN0b3JlcyBk YXRhIGhlcmUKKysgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1cz4gYXVkaW9fYnVzOworKyAgLy8g Q2FsbC1iYWNrIHRoYXQgcHJvZHVjZXMgZGF0YSB0byBwbGF5CisrICBBdWRpb1NvdXJjZUNhbGxi YWNrKiBzb3VyY2U7CisrICAvLyBIYW5kbGUgb2YgdGhlIGF1ZGlvIGRldmljZQorKyAgc3RydWN0 IHNpb19oZGwqIGhkbDsKKysgIC8vIEN1cnJlbnQgc3RhdGUgb2YgdGhlIHN0cmVhbQorKyAgZW51 bSBTdHJlYW1TdGF0ZSBzdGF0ZTsKKysgIC8vIEhpZ2ggcHJpb3JpdHkgdGhyZWFkIHJ1bm5pbmcg VGhyZWFkTG9vcCgpCisrICBwdGhyZWFkX3QgdGhyZWFkOworKyAgLy8gUHJvdGVjdHMgdm9sLCB2 b2xwZW5kaW5nIGFuZCBod19kZWxheQorKyAgcHRocmVhZF9tdXRleF90IG11dGV4OworKyAgLy8g Q3VycmVudCB2b2x1bWUgaW4gdGhlIDAuLlNJT19NQVhWT0wgcmFuZ2UKKysgIGludCB2b2w7Cisr ICAvLyBTZXQgdG8gMSBpZiB2b2x1bWVzIG11c3QgYmUgcmVmcmVzaGVkIGluIHRoZSByZWFsdGlt ZSB0aHJlYWQKKysgIGludCB2b2xwZW5kaW5nOworKyAgLy8gTnVtYmVyIG9mIGZyYW1lcyBidWZm ZXJlZCBpbiB0aGUgaGFyZHdhcmUKKysgIGludCBod19kZWxheTsKKysgIC8vIFRlbXBvcmFyeSBi dWZmZXIgd2hlcmUgZGF0YSBpcyBzdG9yZWQgc25kaW8tY29tcGF0aWJsZSBmb3JtYXQKKysgIGNo YXIqIGJ1ZmZlcjsKKysKKysgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihTbmRpb0F1ZGlvT3V0 cHV0U3RyZWFtKTsKKyt9OworKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorKworKyNlbmRpZiAg Ly8gTUVESUFfQVVESU9fU05ESU9fU05ESU9fT1VUUFVUX0hfCistLS0gcXQ2LXdlYmVuZ2luZS02 LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9tZWRpYV9vcHRpb25zLmduaQor KysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL21lZGlh X29wdGlvbnMuZ25pCitAQCAtMTMzLDYgKzEzMyw5IEBAIGRlY2xhcmVfYXJncygpIHsKKyAgICMg RW5hYmxlcyBydW50aW1lIHNlbGVjdGlvbiBvZiBBTFNBIGxpYnJhcnkgZm9yIGF1ZGlvLgorICAg dXNlX2Fsc2EgPSBmYWxzZQorIAorKyAgIyBFbmFibGUgcnVudGltZSBzZWxlY3Rpb24gb2Ygc25k aW8oNykKKysgIHVzZV9zbmRpbyA9IGZhbHNlCisrCisgICAjIEFsc2Egc2hvdWxkIGJlIHVzZWQg b24gbm9uLUFuZHJvaWQsIG5vbi1NYWMgUE9TSVggc3lzdGVtcy4KKyAgICMgQWxzYSBzaG91bGQg YmUgdXNlZCBvbiBkZXNrdG9wIENocm9tZWNhc3QgYW5kIGF1ZGlvLW9ubHkgQ2hyb21lY2FzdCBi dWlsZHMuCisgICBpZiAoaXNfcG9zaXggJiYgIWlzX2FuZHJvaWQgJiYgIWlzX21hYyAmJgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDMwMC1jaHJvbWl1bS1tdXNs LWhhY2tzLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDMwMC1jaHJvbWl1 bS1tdXNsLWhhY2tzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uNTI1YWViOGE2M2QyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDMwMC1jaHJvbWl1bS1tdXNsLWhhY2tzLnBhdGNoCkBAIC0wLDAgKzEsNTIgQEAK Ky0tLSBxdDYtd2ViZW5naW5lLTYuNC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2Uv ZGVidWcvc3RhY2tfdHJhY2UuY2MKKysrKyBxdDYtd2ViZW5naW5lLTYuNC4yL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlLmNjCitAQCAtMjM0LDcgKzIzNCw3IEBA IGJvb2wgU3RhY2tUcmFjZTo6V2lsbFN5bWJvbGl6ZVRvU3RyZWFtRm8KKyAgIC8vIFN5bWJvbHMg YXJlIG5vdCBleHBlY3RlZCB0byBiZSByZWxpYWJsZSB3aGVuIGduIGFyZ3Mgc3BlY2lmaWVzCisg ICAvLyBzeW1ib2xfbGV2ZWw9MC4KKyAgIHJldHVybiBmYWxzZTsKKy0jZWxpZiBkZWZpbmVkKF9f VUNMSUJDX18pIHx8IGRlZmluZWQoX0FJWCkKKysjZWxpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwg ZGVmaW5lZChfQUlYKQorICAgLy8gU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJlYW0oKSBpcyBub3Qg aW1wbGVtZW50ZWQgdW5kZXIgdWNsaWJjLCBub3IgQUlYLgorICAgLy8gU2VlIGh0dHBzOi8vY3Ji dWcuY29tLzcwNjcyOAorICAgcmV0dXJuIGZhbHNlOworQEAgLTI3Myw3ICsyNzMsOSBAQCB2b2lk IFN0YWNrVHJhY2U6OlByaW50KCkgY29uc3QgeworIH0KKyAKKyB2b2lkIFN0YWNrVHJhY2U6Ok91 dHB1dFRvU3RyZWFtKHN0ZDo6b3N0cmVhbSogb3MpIGNvbnN0IHsKKysjaWYgZGVmaW5lZChfX0dM SUJDX18pCisgICBPdXRwdXRUb1N0cmVhbVdpdGhQcmVmaXgob3MsIG51bGxwdHIpOworKyNlbmRp ZgorIH0KKyAKKyBzdGQ6OnN0cmluZyBTdGFja1RyYWNlOjpUb1N0cmluZygpIGNvbnN0IHsKK0BA IC0yODEsMTQgKzI4MywxNCBAQCBzdGQ6OnN0cmluZyBTdGFja1RyYWNlOjpUb1N0cmluZygpIGNv bnN0CisgfQorIHN0ZDo6c3RyaW5nIFN0YWNrVHJhY2U6OlRvU3RyaW5nV2l0aFByZWZpeChjb25z dCBjaGFyKiBwcmVmaXhfc3RyaW5nKSBjb25zdCB7CisgICBzdGQ6OnN0cmluZ3N0cmVhbSBzdHJl YW07CistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRl ZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgT3V0cHV0VG9TdHJlYW1XaXRo UHJlZml4KCZzdHJlYW0sIHByZWZpeF9zdHJpbmcpOworICNlbmRpZgorICAgcmV0dXJuIHN0cmVh bS5zdHIoKTsKKyB9CisgCisgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYg b3MsIGNvbnN0IFN0YWNrVHJhY2UmIHMpIHsKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykgJiYg IWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgp CisgICBzLk91dHB1dFRvU3RyZWFtKCZvcyk7CisgI2Vsc2UKKyAgIG9zIDw8ICJTdGFja1RyYWNl OjpPdXRwdXRUb1N0cmVhbSBub3QgaW1wbGVtZW50ZWQuIjsKKy0tLSBxdDYtd2ViZW5naW5lLTYu NC4yLm9yaWcvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9zb2NrZXQvdWRwX3NvY2tldF9wb3Np eC5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9z b2NrZXQvdWRwX3NvY2tldF9wb3NpeC5jYworQEAgLTExNTcsNyArMTE1NywxMSBAQCBTZW5kUmVz dWx0IFVEUFNvY2tldFBvc2l4U2VuZGVyOjpJbnRlcm5hCisgICAgIG1zZ19pb3YtPnB1c2hfYmFj ayh7Y29uc3RfY2FzdDxjaGFyKj4oYnVmZmVyLT5kYXRhKCkpLCBidWZmZXItPmxlbmd0aCgpfSk7 CisgICBtc2d2ZWMtPnJlc2VydmUoYnVmZmVycy5zaXplKCkpOworICAgZm9yIChzaXplX3QgaiA9 IDA7IGogPCBidWZmZXJzLnNpemUoKTsgaisrKQorKyNpZmRlZiBfX0dMSUJDX18KKyAgICAgbXNn dmVjLT5wdXNoX2JhY2soe3tudWxscHRyLCAwLCAmbXNnX2lvdltqXSwgMSwgbnVsbHB0ciwgMCwg MH0sIDB9KTsKKysjZWxzZQorKyAgICBtc2d2ZWMtPnB1c2hfYmFjayh7e251bGxwdHIsIDAsICZt c2dfaW92W2pdLCAxLCAwLCAwLCAwfSwgMH0pOworKyNlbmRpZgorICAgaW50IHJlc3VsdCA9IEhB TkRMRV9FSU5UUihTZW5kbW1zZyhmZCwgJm1zZ3ZlY1swXSwgYnVmZmVycy5zaXplKCksIDApKTsK KyAgIFNlbmRSZXN1bHQgc2VuZF9yZXN1bHQoMCwgMCwgc3RkOjptb3ZlKGJ1ZmZlcnMpKTsKKyAg IGlmIChyZXN1bHQgPCAwKSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMzAxLWNocm9taXVtLW11c2wtc2FuZGJveC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAzMDEtY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGFmYmVjNWI5OGVmCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDMwMS1jaHJvbWl1bS1tdXNsLXNh bmRib3gucGF0Y2gKQEAgLTAsMCArMSw4NiBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3Jp Zy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJz L3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuY2MKKysrKyBxdDYtd2ViZW5naW5lLTYu NC4yL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBl cnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYworQEAgLTEzNCw2ICsxMzQsNyBA QCBuYW1lc3BhY2Ugc2FuZGJveCB7CisgUmVzdWx0RXhwciBSZXN0cmljdENsb25lVG9UaHJlYWRz QW5kRVBFUk1Gb3JrKCkgeworICAgY29uc3QgQXJnPHVuc2lnbmVkIGxvbmc+IGZsYWdzKDApOwor IAorKyNpZmRlZiBfX0dMSUJDX18KKyAgIC8vIFRPRE8obWRlbXBza3kpOiBFeHRlbmQgRFNMIHRv IHN1cHBvcnQgKGZsYWdzICYgfm1hc2sxKSA9PSBtYXNrMi4KKyAgIGNvbnN0IHVpbnQ2NF90IGtB bmRyb2lkQ2xvbmVNYXNrID0gQ0xPTkVfVk0gfCBDTE9ORV9GUyB8IENMT05FX0ZJTEVTIHwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xPTkVfU0lHSEFORCB8IENMT05F X1RIUkVBRCB8CitAQCAtMTYwLDYgKzE2MSwxNiBAQCBSZXN1bHRFeHByIFJlc3RyaWN0Q2xvbmVU b1RocmVhZHNBbmRFUEVSCisgICByZXR1cm4gSWYoSXNBbmRyb2lkKCkgPyBhbmRyb2lkX3Rlc3Qg OiBnbGliY190ZXN0LCBBbGxvdygpKQorICAgICAgIC5FbHNlSWYoaXNfZm9ya19vcl9jbG9uZV92 Zm9yaywgRXJyb3IoRVBFUk0pKQorICAgICAgIC5FbHNlKENyYXNoU0lHU1lTQ2xvbmUoKSk7Cisr I2Vsc2UKKysgIGNvbnN0IGludCByZXF1aXJlZCA9IENMT05FX1ZNIHwgQ0xPTkVfRlMgfCBDTE9O RV9GSUxFUyB8IENMT05FX1NJR0hBTkQgfAorKyAgICAgICAgICAgICAgICAgICAgICAgQ0xPTkVf VEhSRUFEIHwgQ0xPTkVfU1lTVlNFTTsKKysgIGNvbnN0IGludCBzYWZlID0gQ0xPTkVfU0VUVExT IHwgQ0xPTkVfUEFSRU5UX1NFVFRJRCB8IENMT05FX0NISUxEX0NMRUFSVElEIHwKKysgICAgICAg ICAgICAgICAgICAgQ0xPTkVfREVUQUNIRUQ7CisrICBjb25zdCBCb29sRXhwciB0aHJlYWRfY2xv bmVfb2sgPSAoZmxhZ3MmfnNhZmUpPT1yZXF1aXJlZDsKKysgIHJldHVybiBJZih0aHJlYWRfY2xv bmVfb2ssIEFsbG93KCkpCisrICAgICAgLkVsc2VJZigoZmxhZ3MgJiAoQ0xPTkVfVk0gfCBDTE9O RV9USFJFQUQpKSA9PSAwLCBFcnJvcihFUEVSTSkpCisrICAgICAgLkVsc2UoQ3Jhc2hTSUdTWVND bG9uZSgpKTsKKysjZW5kaWYKKyB9CisgCisgI2lmbmRlZiBQUl9QQUNfUkVTRVRfS0VZUworLS0t IHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYworKysrIHF0Ni13ZWJlbmdp bmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYt aGVscGVycy9zeXNjYWxsX3NldHMuY2MKK0BAIC00MjQsNiArNDI0LDkgQEAgYm9vbCBTeXNjYWxs U2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0TworICNpZiBkZWZpbmVkKF9faTM4Nl9fKQorICAg ICBjYXNlIF9fTlJfd2FpdHBpZDoKKyAjZW5kaWYKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQor KyAgICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgorKyNlbmRpZgorICAgICAgIHJldHVybiB0 cnVlOworICAgICBjYXNlIF9fTlJfY2xvbmU6ICAvLyBTaG91bGQgYmUgcGFyYW1ldGVyLXJlc3Ry aWN0ZWQuCisgICAgIGNhc2UgX19OUl9zZXRuczogIC8vIFByaXZpbGVnZWQuCitAQCAtNDM2LDcg KzQzOSw5IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE8KKyAjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlw c19fKQorICAgICBjYXNlIF9fTlJfc2V0X3RocmVhZF9hcmVhOgorICNlbmRpZgorKyNpZiBkZWZp bmVkKF9fR0xJQkNfXykKKyAgICAgY2FzZSBfX05SX3NldF90aWRfYWRkcmVzczoKKysjZW5kaWYK KyAgICAgY2FzZSBfX05SX3Vuc2hhcmU6CisgI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVm aW5lZChfX2FhcmNoNjRfXykKKyAgICAgY2FzZSBfX05SX3Zmb3JrOgorQEAgLTU1MCw2ICs1NTUs OSBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRBZGRyZXNzU3BhY2VBCisgICAgIGNhc2Ug X19OUl9tbG9jazoKKyAgICAgY2FzZSBfX05SX211bmxvY2s6CisgICAgIGNhc2UgX19OUl9tdW5t YXA6CisrI2lmbmRlZiBfX0dMSUJDX18KKysgICAgY2FzZSBfX05SX21yZW1hcDoKKysjZW5kaWYK KyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgY2FzZSBfX05SX21hZHZpc2U6CisgICAgIGNhc2Ug X19OUl9taW5jb3JlOgorQEAgLTU2Nyw3ICs1NzUsOSBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0Fs bG93ZWRBZGRyZXNzU3BhY2VBCisgICAgIGNhc2UgX19OUl9tb2RpZnlfbGR0OgorICNlbmRpZgor ICAgICBjYXNlIF9fTlJfbXByb3RlY3Q6CisrI2lmZGVmIF9fR0xJQkNfXworICAgICBjYXNlIF9f TlJfbXJlbWFwOgorKyNlbmRpZgorICAgICBjYXNlIF9fTlJfbXN5bmM6CisgICAgIGNhc2UgX19O Ul9tdW5sb2NrYWxsOgorICAgICBjYXNlIF9fTlJfcmVhZGFoZWFkOgorLS0tIHF0Ni13ZWJlbmdp bmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9wb2xpY3kvbGludXgv YnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5kZXJlcl9wb2xp Y3lfbGludXguY2MKK0BAIC05OSw5ICs5OSwxNCBAQCBSZXN1bHRFeHByIFJlbmRlcmVyUHJvY2Vz c1BvbGljeTo6RXZhbHVhCisgICAgIGNhc2UgX19OUl91bmFtZToKKyAgICAgY2FzZSBfX05SX3Nj aGVkX2dldHBhcmFtOgorICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0c2NoZWR1bGVyOgorKyNpZm5k ZWYgX19HTElCQ19fCisrICAgIGNhc2UgX19OUl9zY2hlZF9zZXRzY2hlZHVsZXI6CisrI2VuZGlm CisgICAgICAgcmV0dXJuIEFsbG93KCk7CisgICAgIGNhc2UgX19OUl9zY2hlZF9nZXRhZmZpbml0 eToKKysjaWZkZWYgX19HTElCQ19fCisgICAgIGNhc2UgX19OUl9zY2hlZF9zZXRzY2hlZHVsZXI6 CisrI2VuZGlmCisgICAgICAgcmV0dXJuIFJlc3RyaWN0U2NoZWRUYXJnZXQoR2V0UG9saWN5UGlk KCksIHN5c25vKTsKKyAgICAgY2FzZSBfX05SX3BybGltaXQ2NDoKKyAgICAgICAvLyBTZWUgY3Ji dWcuY29tLzY2MjQ1MCBhbmQgc2V0cmxpbWl0IGNvbW1lbnQgYWJvdmUuCmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMzAyLWNocm9taXVtLW5vLW1hbGxpbmZvLnBh dGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDMwMi1jaHJvbWl1bS1uby1tYWxs aW5mby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjUxOTkz MGU3YmVmMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAzMDItY2hyb21pdW0tbm8tbWFsbGluZm8ucGF0Y2gKQEAgLTAsMCArMSw2NyBAQAorLS0tIHF0 Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9wcm9jZXNz L3Byb2Nlc3NfbWV0cmljc19wb3NpeC5jYworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL2Jhc2UvcHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9zaXguY2MKK0BA IC0xMDUsNyArMTA1LDggQEAgdm9pZCBJbmNyZWFzZUZkTGltaXRUbyh1bnNpZ25lZCBpbnQgbWF4 XworIAorICNlbmRpZiAgLy8gIUJVSUxERkxBRyhJU19GVUNIU0lBKQorIAorLSNpZiBCVUlMREZM QUcoSVNfTElOVVgpIHx8IEJVSUxERkxBRyhJU19DSFJPTUVPUykgfHwgQlVJTERGTEFHKElTX0FO RFJPSUQpCisrI2lmIChCVUlMREZMQUcoSVNfTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSkg fHwgXAorKwlCVUlMREZMQUcoSVNfQ0hST01FT1MpIHx8IEJVSUxERkxBRyhJU19BTkRST0lEKQor IG5hbWVzcGFjZSB7CisgCisgc2l6ZV90IEdldE1hbGxvY1VzYWdlTWFsbGluZm8oKSB7CitAQCAt MTIzLDE3ICsxMjQsMTggQEAgc2l6ZV90IEdldE1hbGxvY1VzYWdlTWFsbGluZm8oKSB7CisgfQor IAorIH0gIC8vIG5hbWVzcGFjZQorLSNlbmRpZiAgLy8gQlVJTERGTEFHKElTX0xJTlVYKSB8fCBC VUlMREZMQUcoSVNfQ0hST01FT1MpIHx8CistICAgICAgICAvLyBCVUlMREZMQUcoSVNfQU5EUk9J RCkKKysjZW5kaWYgIC8vIChCVUlMREZMQUcoSVNfTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19f KSB8fAorKwkvLyBCVUlMREZMQUcoSVNfQ0hST01FT1MpIHx8IEJVSUxERkxBRyhJU19BTkRST0lE KQorIAorIHNpemVfdCBQcm9jZXNzTWV0cmljczo6R2V0TWFsbG9jVXNhZ2UoKSB7CisgI2lmIEJV SUxERkxBRyhJU19BUFBMRSkKKyAgIG1hbGxvY19zdGF0aXN0aWNzX3Qgc3RhdHMgPSB7MH07Cisg ICBtYWxsb2Nfem9uZV9zdGF0aXN0aWNzKG51bGxwdHIsICZzdGF0cyk7CisgICByZXR1cm4gc3Rh dHMuc2l6ZV9pbl91c2U7CistI2VsaWYgQlVJTERGTEFHKElTX0xJTlVYKSB8fCBCVUlMREZMQUco SVNfQ0hST01FT1MpIHx8IEJVSUxERkxBRyhJU19BTkRST0lEKQorKyNlbGlmIChCVUlMREZMQUco SVNfTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSkgfHwgXAorKwlCVUlMREZMQUcoSVNfQ0hS T01FT1MpIHx8IEJVSUxERkxBRyhJU19BTkRST0lEKQorICAgcmV0dXJuIEdldE1hbGxvY1VzYWdl TWFsbGluZm8oKTsKKy0jZWxpZiBCVUlMREZMQUcoSVNfRlVDSFNJQSkKKysjZWxpZiBCVUlMREZM QUcoSVNfRlVDSFNJQSkgfHwgKEJVSUxERkxBRyhJU19MSU5VWCkgJiYgIWRlZmluZWQoX19HTElC Q19fKSkKKyAgIC8vIFRPRE8oZnVjaHNpYSk6IE5vdCBjdXJyZW50bHkgZXhwb3NlZC4gaHR0cHM6 Ly9jcmJ1Zy5jb20vNzM1MDg3LgorICAgcmV0dXJuIDA7CisgI2VuZGlmCistLS0gcXQ2LXdlYmVu Z2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL3RyYWNlX2V2ZW50L21h bGxvY19kdW1wX3Byb3ZpZGVyLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vYmFzZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5jYworQEAg LTE3NCw3ICsxNzQsOCBAQCB2b2lkIFJlcG9ydEFwcGxlQWxsb2NTdGF0cyhzaXplX3QqIHRvdGFs CisgCisgI2lmIChCVUlMREZMQUcoVVNFX1BBUlRJVElPTl9BTExPQ19BU19NQUxMT0MpICYmIEJV SUxERkxBRyhJU19BTkRST0lEKSkgfHwgXAorICAgICAoIUJVSUxERkxBRyhVU0VfUEFSVElUSU9O X0FMTE9DX0FTX01BTExPQykgJiYgIUJVSUxERkxBRyhJU19XSU4pICYmICAgIFwKKy0gICAgICFC VUlMREZMQUcoSVNfQVBQTEUpICYmICFCVUlMREZMQUcoSVNfV0lOKSAmJiAhQlVJTERGTEFHKElT X0ZVQ0hTSUEpKQorKyAgICAgIUJVSUxERkxBRyhJU19BUFBMRSkgJiYgIUJVSUxERkxBRyhJU19X SU4pICYmICFCVUlMREZMQUcoSVNfRlVDSFNJQSkgJiYgXAorKyAgICAgIShCVUlMREZMQUcoSVNf TElOVVgpICYmICFkZWZpbmVkKF9fR0xJQkNfXykpKQorIHZvaWQgUmVwb3J0TWFsbGluZm9TdGF0 cyhQcm9jZXNzTWVtb3J5RHVtcCogcG1kLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl X3QqIHRvdGFsX3ZpcnR1YWxfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90 KiByZXNpZGVudF9zaXplLAorQEAgLTMzOSw3ICszNDAsNyBAQCBib29sIE1hbGxvY0R1bXBQcm92 aWRlcjo6T25NZW1vcnlEdW1wKGNvCisgICAgICAgICAgICAgICAgICAgICAgJmFsbG9jYXRlZF9v YmplY3RzX2NvdW50KTsKKyAjZWxpZiBCVUlMREZMQUcoSVNfRlVDSFNJQSkKKyAvLyBUT0RPKGZ1 Y2hzaWEpOiBQb3J0LCBzZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vNzA2NTkyLgorLSNlbHNlCisrI2Vs aWYgZGVmaW5lZChfX0dMSUJDX18pCisgICBSZXBvcnRNYWxsaW5mb1N0YXRzKC8qcG1kPSovbnVs bHB0ciwgJnRvdGFsX3ZpcnR1YWxfc2l6ZSwgJnJlc2lkZW50X3NpemUsCisgICAgICAgICAgICAg ICAgICAgICAgICZhbGxvY2F0ZWRfb2JqZWN0c19zaXplLCAmYWxsb2NhdGVkX29iamVjdHNfY291 bnQpOworICNlbmRpZgorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvdGZsaXRlL3NyYy90ZW5zb3JmbG93L2xpdGUvcHJvZmlsaW5n L21lbW9yeV9pbmZvLmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvdGZsaXRlL3NyYy90ZW5zb3JmbG93L2xpdGUvcHJvZmlsaW5nL21l bW9yeV9pbmZvLmNjCitAQCAtMzUsNyArMzUsNyBAQCBib29sIE1lbW9yeVVzYWdlOjpJc1N1cHBv cnRlZCgpIHsKKyAKKyBNZW1vcnlVc2FnZSBHZXRNZW1vcnlVc2FnZSgpIHsKKyAgIE1lbW9yeVVz YWdlIHJlc3VsdDsKKy0jaWZkZWYgX19saW51eF9fCisrI2lmIGRlZmluZWQoX19saW51eF9fKSAm JiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIHJ1c2FnZSByZXM7CisgICBpZiAoZ2V0cnVzYWdlKFJV U0FHRV9TRUxGLCAmcmVzKSA9PSAwKSB7CisgICAgIHJlc3VsdC5tYXhfcnNzX2tiID0gcmVzLnJ1 X21heHJzczsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3MDAt YXJtdjdsLW5lb24ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzAwLWFy bXY3bC1uZW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u NWNhMTk1M2QyY2IzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDcwMC1hcm12N2wtbmVvbi5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gcXQ2LXdl YmVuZ2luZS02LjQuMi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9za2lhL0JVSUxELmduCisr KysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2tpYS9CVUlMRC5n bgorQEAgLTc4Niw3ICs3ODYsNiBAQCBza2lhX3NvdXJjZV9zZXQoInNraWFfb3B0cyIpIHsKKyAg ICAgICAgICMgUm9vdCBidWlsZCBjb25maWcgc2V0cyAtbWZwdT0kYXJtX2ZwdSwgd2hpY2ggd2Ug ZXhwZWN0IHRvIGJlIG5lb24KKyAgICAgICAgICMgd2hlbiBydW5uaW5nIHRoaXMuCisgICAgICAg ICBpZiAoIWFybV91c2VfbmVvbikgeworLSAgICAgICAgICBjb25maWdzIC09IFsgIi8vYnVpbGQv Y29uZmlnL2NvbXBpbGVyOmNvbXBpbGVyX2FybV9mcHUiIF0KKyAgICAgICAgICAgY2ZsYWdzICs9 IFsgIi1tZnB1PW5lb24iIF0KKyAgICAgICAgIH0KKyAgICAgICB9CmRpZmYgLS1naXQgYS9zcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUwLWNocm9taXVtLW11c2wtY3Jvc3Mtbm8tYXNt X3B0cmFjZV9oLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MC1jaHJv bWl1bS1tdXNsLWNyb3NzLW5vLWFzbV9wdHJhY2VfaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLmNhN2IwMTUwOTYyYwotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTAtY2hyb21pdW0tbXVzbC1jcm9zcy1uby1h c21fcHRyYWNlX2gucGF0Y2gKQEAgLTAsMCArMSwzMCBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40 LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5j YworKysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xp bnV4X3B0cmFjZV9kdW1wZXIuY2MKK0BAIC0zOCw3ICszOCwxMiBAQAorIAorICNpbmNsdWRlICJj bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuaCIKKyAKKysj aWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysjZWxzZQor Ky8qIEZvciBhcm0qLW11c2wgdGhpcyBkZWZpbml0aW9uIGlzIG1pc3NpbmcgKi8KKysjZGVmaW5l IEFSTV9zcCB1cmVnc1sxM10KKysjZW5kaWYKKyAjaW5jbHVkZSA8YXNzZXJ0Lmg+CisgI2luY2x1 ZGUgPGVycm5vLmg+CisgI2luY2x1ZGUgPGZjbnRsLmg+CistLS0gcXQ2LXdlYmVuZ2luZS02LjQu Mi5vcmlnL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYwor KysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X2NvcmVfZHVtcGVyLmNjCitAQCAtMzIsNyArMzIsMTIgQEAKKyAKKyAjaW5jbHVkZSAiY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5oIgorIAorKyNpZiBkZWZp bmVkKF9fR0xJQkNfXykKKyAjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKyNlbHNlCisrLyogRm9y IGFybSotbXVzbCB0aGlzIGRlZmluaXRpb24gaXMgbWlzc2luZyAqLworKyNkZWZpbmUgQVJNX3Nw IHVyZWdzWzEzXQorKyNlbmRpZgorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8ZWxm Lmg+CisgI2luY2x1ZGUgPHN0ZGlvLmg+CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wNzUxLWNocm9taXVtLW11c2wtYXJtLXVzZXJfdmZwLnBhdGNoIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MS1jaHJvbWl1bS1tdXNsLWFybS11c2VyX3ZmcC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ3YzE4MDM2ZDUw MwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTEt Y2hyb21pdW0tbXVzbC1hcm0tdXNlcl92ZnAucGF0Y2gKQEAgLTAsMCArMSwyMCBAQAorLS0tIHF0 Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCisrKysgcXQ2LXdlYmVu Z2luZS02LjQuMi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCitAQCAtMTcsNiArMTcsMTcgQEAKKyAKKyAj aW5jbHVkZSA8c3RkaW50Lmg+CisgI2luY2x1ZGUgPHN5cy91c2VyLmg+CisrI2lmICFkZWZpbmVk KF9fR0xJQkNfXykKKytzdHJ1Y3QgdXNlcl92ZnAgeworKwl1bnNpZ25lZCBsb25nIGxvbmcgZnBy ZWdzWzMyXTsKKysJdW5zaWduZWQgbG9uZyBmcHNjcjsKKyt9OworK3N0cnVjdCB1c2VyX3ZmcF9l eGMgeworKwl1bnNpZ25lZCBsb25nIGZwZXhjOworKwl1bnNpZ25lZCBsb25nIGZwaW5zdDsKKysJ dW5zaWduZWQgbG9uZyBmcGluc3QyOworK307CisrI2VuZGlmIC8qICFkZWZpbmVkKF9fR0xJQkNf XykgKi8KKyAKKyAjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisgCmRpZmYgLS1naXQgYS9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUyLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3Qu cGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUyLWNocm9taXVtLW11c2wt YXJtLWVsZl9hdXh2X3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi41MmY1ZjQ3YmU4MzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wNzUyLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2gKQEAgLTAs MCArMSwxOCBAQAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9zcmMvM3JkcGFydHkvY2hy b21pdW0vdjgvc3JjL2Jhc2UvY3B1LmNjCisrKysgcXQ2LXdlYmVuZ2luZS02LjQuMi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdjgvc3JjL2Jhc2UvY3B1LmNjCitAQCAtMTY1LDYgKzE2NSwxNSBAQCBz dGF0aWMgVjhfSU5MSU5FIHZvaWQgX19jcHVpZChpbnQgY3B1X2luCisgCisgI2lmIFY4X0hPU1Rf QVJDSF9BUk0gfHwgVjhfSE9TVF9BUkNIX0FSTTY0CisgCisrI2lmbmRlZiBfX0dMSUJDX18KKysj aW5jbHVkZSA8ZWxmLmg+CisrI2lmZGVmIF9fTFA2NF9fCisrdHlwZWRlZiBFbGY2NF9hdXh2X3Qg ZWxmX2F1eHZfdDsKKysjZWxzZQorK3R5cGVkZWYgRWxmMzJfYXV4dl90IGVsZl9hdXh2X3Q7Cisr I2VuZGlmCisrI2VuZGlmCisrCisgc3RhdGljIHVpbnQzMl90IFJlYWRFTEZIV0NhcHMoKSB7Cisg ICB1aW50MzJfdCByZXN1bHQgPSAwOworICNpZiBWOF9HTElCQ19QUkVSRVEoMiwgMTYpCmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAwLWNyb3NzLWJ1aWxkLWV4 YW1wbGVzLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMC1jcm9zcy1i dWlsZC1leGFtcGxlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjlhNmFjYzZhZjZkZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzA5MDAtY3Jvc3MtYnVpbGQtZXhhbXBsZXMucGF0Y2gKQEAgLTAsMCArMSwxNiBA QAorLS0tIHF0Ni13ZWJlbmdpbmUtNi40LjIub3JpZy9leGFtcGxlcy9DTWFrZUxpc3RzLnR4dAor KysrIHF0Ni13ZWJlbmdpbmUtNi40LjIvZXhhbXBsZXMvQ01ha2VMaXN0cy50eHQKK0BAIC0xLDcg KzEsNiBAQAorIGNtYWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lPTiAzLjE2KQorIAorIHF0X2V4 YW1wbGVzX2J1aWxkX2JlZ2luKEVYVEVSTkFMX0JVSUxEKQorLWlmKE5PVCBDTUFLRV9DUk9TU0NP TVBJTElORykgI1FUQlVHLTg2NTMzCisgICAgIGlmKFRBUkdFVCBRdDo6V2ViRW5naW5lQ29yZSkK KyAgICAgICAgIGFkZF9zdWJkaXJlY3Rvcnkod2ViZW5naW5lcXVpY2spCisgICAgIGVuZGlmKCkK K0BAIC0xNCw1ICsxMyw0IEBAIGlmKE5PVCBDTUFLRV9DUk9TU0NPTVBJTElORykgI1FUQlVHLTg2 NTMKKyAgICAgaWYoVEFSR0VUIFF0OjpQZGZXaWRnZXRzKQorICAgICAgICAgYWRkX3N1YmRpcmVj dG9yeShwZGZ3aWRnZXRzKQorICAgICBlbmRpZigpCistZW5kaWYoKQorIHF0X2V4YW1wbGVzX2J1 aWxkX2VuZCgpCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUgYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi44MzA4MGIxMWFlYmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvdGVtcGxhdGUKQEAgLTAsMCArMSwxODMgQEAKKyMgVGVtcGxhdGUgZmlsZSBm b3IgJ3F0Ni13ZWJlbmdpbmUnCitwa2duYW1lPXF0Ni13ZWJlbmdpbmUKK3ZlcnNpb249Ni40LjIK K3JldmlzaW9uPTEKK3dya3NyYz0icXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9u fSIKK2J1aWxkX3N0eWxlPWNtYWtlCitjb25maWd1cmVfYXJncz0iCisgLURRVF9GRUFUVVJFX3dl YmVuZ2luZV9zeXN0ZW1fZmZtcGVnPU9OCisgLURRVF9GRUFUVVJFX3dlYmVuZ2luZV9zeXN0ZW1f bGliZXZlbnQ9T04KKyAtRFFUX0ZFQVRVUkVfd2ViZW5naW5lX3N5c3RlbV9nbj1PTgorIC1EUVRf RkVBVFVSRV93ZWJlbmdpbmVfc3lzdGVtX2ljdT1PTgorIC1EUVRfRkVBVFVSRV93ZWJlbmdpbmVf d2VicnRjX3BpcGV3aXJlPU9OCisgLUROaW5qYV9FWEVDVVRBQkxFPSRYQlBTX1dSQVBQRVJESVIv bmluamEKKyAtRFFUX0JVSUxEX0VYQU1QTEVTPU9OCisgLURQS0dfQ09ORklHX0hPU1RfRVhFQ1VU QUJMRT0ke1BLR19DT05GSUdfRk9SX0JVSUxEfSIKK2hvc3RtYWtlZGVwZW5kcz0icXQ2LWJhc2Ut ZGV2ZWwgcGVybCBwa2ctY29uZmlnIG5vZGVqcyBweXRob24zLWh0bWw1bGliCisgcXQ2LWRlY2xh cmF0aXZlLWRldmVsIHByb3RvYnVmIGdwZXJmIGZsZXggbnNzLWRldmVsIGxpYndlYnAtZGV2ZWwK KyBpY3UtZGV2ZWwgbGliZXZlbnQtZGV2ZWwiCittYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwg cXQ2LWRlY2xhcmF0aXZlLWRldmVsIHB1bHNlYXVkaW8tZGV2ZWwKKyBxdDYtdG9vbHMtZGV2ZWwg cXQ2LXdlYnNvY2tldHMtZGV2ZWwgbGliZmxhYy1kZXZlbCBxdDYtc3ZnLWRldmVsCisgYWxzYS1s aWItZGV2ZWwgbGlidnB4LWRldmVsIHBjaXV0aWxzLWRldmVsIG9wdXMtZGV2ZWwgbGlieHNsdC1k ZXZlbAorIGxpYnhtbDItZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgbGNtczItZGV2ZWwgbGlid2VicC1k ZXZlbCBpY3UtZGV2ZWwKKyByZTItZGV2ZWwgemxpYi1kZXZlbCBsaWJwbmctZGV2ZWwgbWluaXpp cC1kZXZlbCBoYXJmYnV6ei1kZXZlbAorIG5zcy1kZXZlbCBsaWJYY3Vyc29yLWRldmVsIGxpYlhj b21wb3NpdGUtZGV2ZWwgbGliWFNjcm5TYXZlci1kZXZlbAorIHByb3RvYnVmLWRldmVsIGZmbXBl Zy1kZXZlbCBzbmFwcHktZGV2ZWwgbGliZXZlbnQtZGV2ZWwgcGlwZXdpcmUtZGV2ZWwKKyBsaWJ4 a2JmaWxlLWRldmVsIHF0Ni1sb2NhdGlvbi1kZXZlbCBxdDYtd2ViY2hhbm5lbC1kZXZlbCBsaWJ4 c2htZmVuY2UtZGV2ZWwiCisjIE5vdCB3b3JraW5nIHByb3Blcmx5IHdpdGggSFRUUFMgd2l0aG91 dCB0aG9zZSBwYWNrYWdlcworIyBOb3Qgc3RyaWN0IGRlcGVuZGVuY2llcywgdGhvdWdoCitkZXBl bmRzPSJxdDYtcGx1Z2luLXRscy1vcGVuc3NsIHF0Ni1wbHVnaW4tdGxzLXFjZXJ0b25seSIKK3No b3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBX ZWJlbmdpbmUiCittYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgorbGljZW5z ZT0iR1BMLTMuMC1vbmx5LCBHUEwtMi4wLW9ubHksIExHUEwtMy4wLW9ubHksIEJTRC0zLUNsYXVz ZSIKK2hvbWVwYWdlPSJodHRwczovL3d3dy5xdC5pbyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9kb3du bG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0v c3VibW9kdWxlcy9xdHdlYmVuZ2luZS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIK K2NoZWNrc3VtPWZmYTk0NTUxOGQxY2M4ZDllZTczNTIzZThkOWMyMDkwODQ0ZjVhMmQ5YzdlYWMw NWM0YWQwNzk0NzJhMTE5YzkKKworbm9jcm9zcz0idW50aWwgbGF0ZXIsIEkgbmVlZCBjYWxpYnJl IGZpcnN0IgorCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07dGhlbgorCWNvbmZpZ3VyZV9hcmdzKz0i IC1EUVRfQlVJTERfVE9PTFNfV0hFTl9DUk9TU0NPTVBJTElORz1UUlVFIgorCWNvbmZpZ3VyZV9h cmdzKz0iIC1EQ01BS0VfVE9PTENIQUlOX0ZJTEU9L3Vzci9saWIvY21ha2UvUXQ2L3F0LnRvb2xj aGFpbi5jbWFrZSIKK2ZpCisKK2lmIFsgIiRYQlBTX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwlo b3N0bWFrZWRlcGVuZHMrPSIgbXVzbC1sZWdhY3ktY29tcGF0IgorZmkKKworaWYgWyAiJFhCUFNf VEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwltYWtlZGVwZW5kcys9IiBtdXNsLWxlZ2Fj eS1jb21wYXQiCitmaQorCitpZiBbICEgIiRYQlBTX1dPUkRTSVpFIiA9ICIkWEJQU19UQVJHRVRf V09SRFNJWkUiIF07IHRoZW4KKwlicm9rZW49IndlYmVuZ2luZSBjYW4gYmUgYnVpbHQgb25seSBp ZiB3b3JkIHNpemUgbWF0Y2hlcyIKK2ZpCisKK2lmIFsgIiRYQlBTX1dPUkRTSVpFIiA9IDMyIF07 IHRoZW4KKwlDRkxBR1M9LWcxCisJQ1hYRkxBR1M9LWcxCisJTERGTEFHUz0iLVdsLC0tbm8ta2Vl cC1tZW1vcnkiCisJYnJva2VuPSJub2RlanMgY29tcHJlc3MganMgZmlsZXMgZmFpbHVyZSIKK2Zp CisKK2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXBwYyopIGJyb2tlbj0ibm90IHBv cnRlZCIgOzsKK2VzYWMKKworI2J1aWxkX29wdGlvbnM9ImV4YW1wbGVzIgorI2J1aWxkX29wdGlv bnNfZGVmYXVsdD0iZXhhbXBsZXMiCisjZGVzY19vcHRpb25fZXhhbXBsZXM9IkJ1aWxkIGV4YW1w bGVzIgorCitzdWJwYWNrYWdlcz0icXQ2LXdlYmVuZ2luZS1kZXZlbCIKKworI2lmIFsgIiRidWls ZF9vcHRpb25fZXhhbXBsZXMiIF07IHRoZW4KKwlzdWJwYWNrYWdlcys9IiBxdDYtd2ViZW5naW5l LWV4YW1wbGVzIgorI2ZpCisKK19ib290c3RyYXBfZ24oKSB7CisJIyBCb290c3RyYXAgZ24gKGdl bmVyYXRlIG5pbmphKQorCWVjaG8gIkJvb3RzdHJhcHBpbmcgJ2duJyIKKwljZCAke3dya3NyY30v c3JjLzNyZHBhcnR5L2duCisJQ0ZMQUdTPSIkQ0ZMQUdTX2hvc3QiIENYWEZMQUdTPSIkQ1hYRkxB R1NfaG9zdCIgTERGTEFHUz0iJExERkxBR1NfaG9zdCIgXAorCVBLR0NPTkZJRz0vdXNyL2Jpbi9w a2djb25maWcgUEtHX0NPTkZJR19QQVRIPSIvdXNyL2xpYi9wa2djb25maWc6L3Vzci9zaGFyZS9w a2djb25maWciIFwKKwkJcHl0aG9uMyBidWlsZC9nZW4ucHkgLS1uby1sYXN0LWNvbW1pdC1wb3Np dGlvbiAtLW91dC1wYXRoIFwKKwkJCSR7d3Jrc3JjfS9zcmMvM3JkcGFydHkvZ24vb3V0L1JlbGVh c2UgLS1jYyAiJHtDQ19ob3N0Oi0kQ0N9IiBcCisJCQktLWN4eCAiJHtDWFhfaG9zdDotJENYWH0i IC0tbGQgIiR7Q1hYX2hvc3Q6LSRDWFh9IiAtLWFyICIke0FSX2hvc3Q6LSRBUn0iIFwKKwkJCS0t cXQtdmVyc2lvbiAiJHt2ZXJzaW9ufS5xdHdlYmVuZ2luZS5xdC5pbyIKKwluaW5qYSAtQyBvdXQv UmVsZWFzZSBnbgorCWNkICR7d3Jrc3JjfQorfQorCitfdW5idW5kbGVfbGlicygpIHsKKwljZCAk e3dya3NyY30vc3JjLzNyZHBhcnR5L2Nocm9taXVtCisJZWNobyBEcm9wcGluZyBidW5kbGVkIGxp YnMgZnJvbSBjaHJvbWl1bQorCSMgVXNlIHN5c3RlbS1wcm92aWRlZCBsaWJyYXJpZXMuCisJIyBU T0RPOiB1c2Vfc3lzdGVtX2h1bnNwZWxsICh1cHN0cmVhbSBjaGFuZ2VzIG5lZWRlZCkuCisJIyBU T0RPOiB1c2Vfc3lzdGVtX2xpYnNydHAuCisJIyBUT0RPOiB1c2Vfc3lzdGVtX2xpYnVzYiAoaHR0 cDovL2NyYnVnLmNvbS8yNjYxNDkpLgorCSMgVE9ETzogdXNlX3N5c3RlbV9zc2wgKGh0dHA6Ly9j cmJ1Zy5jb20vNTgwODcpLgorCSMgVE9ETzogdXNlX3N5c3RlbV9zcWxpdGUgKGh0dHA6Ly9jcmJ1 Zy5jb20vMjIyMDgpLgorCSMgVE9ETzogdXNlX3N5c3RlbV9pY3UgKHNlZ2ZhdWx0cykKKwkjIHVz ZV9zeXN0ZW1fcHJvdG9idWYKKwkjIHVzZV9zeXN0ZW1fdjg9MQorCSMgdXNlX3N5c3RlbV96bGli PTEKKwkjIGJ6aXAyIGpzb25jcHAgbWluaXppcCB4ZGdfdXRpbHMgc3BlZXgKKwlzeXN0ZW09Igor CQlmZm1wZWcKKwkJZmxhYworCQlmb250Y29uZmlnCisJCWZyZWV0eXBlCisJCWhhcmZidXp6LW5n CisJCWljdQorCQlsaWJkcm0KKwkJbGliZXZlbnQKKwkJbGlianBlZworCQlsaWJwbmcKKwkJbGli d2VicAorCQlsaWJ4bWwKKwkJbGlieHNsdAorCQlvcHVzCisJCXJlMgorCQlzbmFwcHkKKwkiCisJ YnVpbGQvbGludXgvdW5idW5kbGUvcmVwbGFjZV9nbl9maWxlcy5weSAtLXN5c3RlbS1saWJyYXJp ZXMgJHtzeXN0ZW19Cit9CisKKyMgUHJvdmlkZSBhIHdyYXBwZXIgdG8gcnVuIC4veGJwcy1zcmMg LWogMSBidWlsZCBsYXRlcgorX3dyYXBfbmluamEoKSB7CisJY2F0IDw8LSdfRU9GJyA+IiRYQlBT X1dSQVBQRVJESVIiL25pbmphCisJIyEvYmluL3NoCisKKwlleGVjIC91c3IvYmluL25pbmphICRO SU5KQUZMQUdTICIkQCIKKwlfRU9GCisJY2htb2QgK3ggIiRYQlBTX1dSQVBQRVJESVIiL25pbmph Cit9CisKK3ByZV9jb25maWd1cmUoKSB7CisJX2Jvb3RzdHJhcF9nbgorCSMgX3VuYnVuZGxlX2xp YnMKKwlfd3JhcF9uaW5qYQorCWV4cG9ydCBQQVRIPSIkUEFUSDoke3dya3NyY30vc3JjLzNyZHBh cnR5L2duL291dC9SZWxlYXNlIgorfQorCitwcmVfYnVpbGQoKSB7CisJZXhwb3J0IFBBVEg9IiRQ QVRIOiR7d3Jrc3JjfS9zcmMvM3JkcGFydHkvZ24vb3V0L1JlbGVhc2UiCisJZXhwb3J0IE5JTkpB RkxBR1M9IiRtYWtlam9icyIKKworfQorCitwcmVfaW5zdGFsbCgpIHsKKwlleHBvcnQgUEFUSD0i JFBBVEg6JHt3cmtzcmN9L3NyYy8zcmRwYXJ0eS9nbi9vdXQvUmVsZWFzZSIKK30KKworcG9zdF9p bnN0YWxsKCkgeworCWxvY2FsIF9maWxlCisJZmluZCAiJHtERVNURElSfSIvdXNyL2xpYi9xdDYv ZXhhbXBsZXMgXAorCQktcGF0aCAnKi9saWIvcXQ2LyoqL2xpYi9xdDYvKicgLXR5cGUgZiB8CisJ d2hpbGUgcmVhZCBfZmlsZTsgZG8KKwkJbXYgIiRfZmlsZSIgIiR7X2ZpbGUlL2xpYi9xdDYvKn0i CisJZG9uZQorfQorCitxdDYtd2ViZW5naW5lLWRldmVsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0i JHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IHF0Ni13ZWJjaGFubmVsLWRldmVs Pj0ke3ZlcnNpb259XzEKKwkgcXQ2LWRlY2xhcmF0aXZlLWRldmVsPj0ke3ZlcnNpb259XzEgcXQ2 LWxvY2F0aW9uLWRldmVsPj0ke3ZlcnNpb259XzEiCisJc2hvcnRfZGVzYys9IiAtIGRldmVsb3Bt ZW50IGZpbGVzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZQorCQl2bW92 ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCisJCXZtb3ZlIHVzci9s aWIvcXQ2L21rc3BlY3MKKwkJdm1vdmUgInVzci9saWIvKi5zbyIKKwkJdm1vdmUgInVzci9saWIv Ki5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxlcworCX0KK30KKworcXQ2LXdlYmVu Z2luZS1leGFtcGxlc19wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBzYW1wbGUgYnJvd3Nl cnMiCisJZGVwZW5kcz0icXQ2LXN2ZyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2xp Yi9xdDYvZXhhbXBsZXMKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv dXBkYXRlIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3VwZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjg0NDU1MjQ2NTIyMgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS91cGRhdGUKQEAgLTAsMCArMSBAQAorcGtnbmFtZT0iJHtwa2du YW1lLzYtL30tZXZlcnl3aGVyZS1zcmMiCg== --===============7849017472181119255==--