From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Christoph Junghans To: git-commits@fedoraproject.org Subject: [rpms/hpx] rawhide: Fix build with asio-1.38.1 Date: Fri, 21 Aug 2026 13:51:57 GMT Message-ID: <178732031743.1.13901536458588590092.rpms-hpx-32238e23ab7a@fedoraproject.org> List-ID: X-Git-Repo: rpms/hpx X-Git-Branch: rawhide X-Git-Rev: 32238e23ab7a9331f856ff9328a4e484a3e2d7cc ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvaHB4CiAgICAgICAgICAgIEJyYW5jaCA6IHJhd2hpZGUKICAgICAgICAgICAg Q29tbWl0IDogMzIyMzhlMjNhYjdhOTMzMWY4NTZmZjkzMjhhNGU0ODRhM2UyZDdjYwogICAgICAg ICAgICBBdXRob3IgOiBDaHJpc3RvcGggSnVuZ2hhbnMgPGp1bmdoYW5zQHZvdGNhLm9yZz4KICAg ICAgICAgICAgRGF0ZSAgIDogMjAyNi0wOC0yMVQwNzo1MTo1MC0wNjowMAogICAgICAgICAgICBT dGF0cyAgOiArMTgzMS8tMSBpbiAyIGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0cHM6 Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9ocHgvYy8zMjIzOGUyM2FiN2E5MzMxZjg1NmZm OTMyOGE0ZTQ4NGEzZTJkN2NjP2JyYW5jaD1yYXdoaWRlCgogICAgICAgICAgICBMb2c6CiAgICAg ICAgICAgIEZpeCBidWlsZCB3aXRoIGFzaW8tMS4zOC4xCgpGaXhlczogcmhieiMyNTA0MTI5Cgot LS0KZGlmZiAtLWdpdCBhLzc0NjMuZGlmZiBiLzc0NjMuZGlmZgpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5hM2FhNDJiCi0tLSAvZGV2L251bGwKKysrIGIvNzQ2My5kaWZmCkBA IC0wLDAgKzEsMTgyNCBAQAorZGlmZiAtLWdpdCBhLy5naXRodWIvd29ya2Zsb3dzL3dpbmRvd3Nf Y2xhbmdfZGVidWcueW1sIGIvLmdpdGh1Yi93b3JrZmxvd3Mvd2luZG93c19jbGFuZ19kZWJ1Zy55 bWwKK2luZGV4IGIxZWM1NjViODEyZC4uMjMyOWIyNWJiMTQzIDEwMDY0NAorLS0tIGEvLmdpdGh1 Yi93b3JrZmxvd3Mvd2luZG93c19jbGFuZ19kZWJ1Zy55bWwKKysrKyBiLy5naXRodWIvd29ya2Zs b3dzL3dpbmRvd3NfY2xhbmdfZGVidWcueW1sCitAQCAtOSwyMCArOSwyMyBAQCBuYW1lOiBXaW5k b3dzIENJIChDbGFuZ0NMLCBEZWJ1ZykKKyAKKyBvbjogW3B1bGxfcmVxdWVzdF0KKyAKKytjb25j dXJyZW5jeToKKysgIGdyb3VwOiAke3sgZ2l0aHViLndvcmtmbG93IH19LSR7eyBnaXRodWIucmVm IH19CisrICBjYW5jZWwtaW4tcHJvZ3Jlc3M6IHRydWUKKysKKyBqb2JzOgorICAgYnVpbGQ6Cist ICAgIHJ1bnMtb246IHdpbmRvd3MtbGF0ZXN0CisrICAgIHJ1bnMtb246IHdpbmRvd3MtMjAyMgor IAorICAgICBzdGVwczoKKy0gICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHY0CistICAgIC0g dXNlczogandsYXdzb24vYWN0aW9ucy1zZXR1cC1jbWFrZUB2Mi4wCistICAgICAgd2l0aDoKKy0g ICAgICAgIGNtYWtlLXZlcnNpb246ICczLjIyLngnCisrICAgIC0gdXNlczogYWN0aW9ucy9jaGVj a291dEB2NworKyAgICAtIHVzZXM6IGx1a2thL2dldC1jbWFrZUB2NC40LjIKKysKKyAgICAgLSBu YW1lOiBJbnN0YWxsIGRlcGVuZGVuY2llcworICAgICAgIHJ1bjogfAorICAgICAgICAgbWQgQzpc cHJvamVjdHMKKyAgICAgICAgICRjbGllbnQgPSBuZXctb2JqZWN0IFN5c3RlbS5OZXQuV2ViQ2xp ZW50CistICAgICAgICAkY2xpZW50LkRvd25sb2FkRmlsZSgiaHR0cHM6Ly9yb3N0YW0uY2N0Lmxz dS5lZHUvZG93bmxvYWQvYnVpbGRlci92Y3BrZy1leHBvcnQtaHB4LWRlcGVuZGVuY2llcy0yMDI0 Ljd6IiwiQzpccHJvamVjdHNcdmNwa2ctZXhwb3J0LWhweC1kZXBlbmRlbmNpZXMuN3oiKQorKyAg ICAgICAgJGNsaWVudC5Eb3dubG9hZEZpbGUoImh0dHBzOi8vcm9zdGFtLmNjdC5sc3UuZWR1L2Rv d25sb2FkL2J1aWxkZXIvdmNwa2ctZXhwb3J0LWhweC1kZXBlbmRlbmNpZXMtMjAyNi43eiIsIkM6 XHByb2plY3RzXHZjcGtnLWV4cG9ydC1ocHgtZGVwZW5kZW5jaWVzLjd6IikKKyAgICAgICAgIDd6 IHggQzpccHJvamVjdHNcdmNwa2ctZXhwb3J0LWhweC1kZXBlbmRlbmNpZXMuN3ogLXkgLW9DOlxw cm9qZWN0c1x2Y3BrZworICAgICAtIG5hbWU6IENvbmZpZ3VyZQorICAgICAgIHNoZWxsOiBiYXNo CitkaWZmIC0tZ2l0IGEvLmdpdGh1Yi93b3JrZmxvd3Mvd2luZG93c19jbGFuZ19yZWxlYXNlLnlt bCBiLy5naXRodWIvd29ya2Zsb3dzL3dpbmRvd3NfY2xhbmdfcmVsZWFzZS55bWwKK2luZGV4IGM3 NjljMWJkNDJiNy4uN2YyZThiYWJlYTA0IDEwMDY0NAorLS0tIGEvLmdpdGh1Yi93b3JrZmxvd3Mv d2luZG93c19jbGFuZ19yZWxlYXNlLnltbAorKysrIGIvLmdpdGh1Yi93b3JrZmxvd3Mvd2luZG93 c19jbGFuZ19yZWxlYXNlLnltbAorQEAgLTksMjAgKzksMjMgQEAgbmFtZTogV2luZG93cyBDSSAo Q2xhbmdDTCwgUmVsZWFzZSkKKyAKKyBvbjogW3B1bGxfcmVxdWVzdF0KKyAKKytjb25jdXJyZW5j eToKKysgIGdyb3VwOiAke3sgZ2l0aHViLndvcmtmbG93IH19LSR7eyBnaXRodWIucmVmIH19Cisr ICBjYW5jZWwtaW4tcHJvZ3Jlc3M6IHRydWUKKysKKyBqb2JzOgorICAgYnVpbGQ6CistICAgIHJ1 bnMtb246IHdpbmRvd3MtbGF0ZXN0CisrICAgIHJ1bnMtb246IHdpbmRvd3MtMjAyMgorIAorICAg ICBzdGVwczoKKy0gICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHY0CistICAgIC0gdXNlczog andsYXdzb24vYWN0aW9ucy1zZXR1cC1jbWFrZUB2Mi4wCistICAgICAgd2l0aDoKKy0gICAgICAg IGNtYWtlLXZlcnNpb246ICczLjIyLngnCisrICAgIC0gdXNlczogYWN0aW9ucy9jaGVja291dEB2 NworKyAgICAtIHVzZXM6IGx1a2thL2dldC1jbWFrZUB2NC40LjIKKysKKyAgICAgLSBuYW1lOiBJ bnN0YWxsIGRlcGVuZGVuY2llcworICAgICAgIHJ1bjogfAorICAgICAgICAgbWQgQzpccHJvamVj dHMKKyAgICAgICAgICRjbGllbnQgPSBuZXctb2JqZWN0IFN5c3RlbS5OZXQuV2ViQ2xpZW50Cist ICAgICAgICAkY2xpZW50LkRvd25sb2FkRmlsZSgiaHR0cHM6Ly9yb3N0YW0uY2N0LmxzdS5lZHUv ZG93bmxvYWQvYnVpbGRlci92Y3BrZy1leHBvcnQtaHB4LWRlcGVuZGVuY2llcy0yMDI0Ljd6Iiwi QzpccHJvamVjdHNcdmNwa2ctZXhwb3J0LWhweC1kZXBlbmRlbmNpZXMuN3oiKQorKyAgICAgICAg JGNsaWVudC5Eb3dubG9hZEZpbGUoImh0dHBzOi8vcm9zdGFtLmNjdC5sc3UuZWR1L2Rvd25sb2Fk L2J1aWxkZXIvdmNwa2ctZXhwb3J0LWhweC1kZXBlbmRlbmNpZXMtMjAyNi43eiIsIkM6XHByb2pl Y3RzXHZjcGtnLWV4cG9ydC1ocHgtZGVwZW5kZW5jaWVzLjd6IikKKyAgICAgICAgIDd6IHggQzpc cHJvamVjdHNcdmNwa2ctZXhwb3J0LWhweC1kZXBlbmRlbmNpZXMuN3ogLXkgLW9DOlxwcm9qZWN0 c1x2Y3BrZworICAgICAtIG5hbWU6IENvbmZpZ3VyZQorICAgICAgIHNoZWxsOiBiYXNoCitkaWZm IC0tZ2l0IGEvLmdpdGh1Yi93b3JrZmxvd3Mvd2luZG93c19kZWJ1Z192czIwMTkueW1sIGIvLmdp dGh1Yi93b3JrZmxvd3Mvd2luZG93c19kZWJ1Z192czIwMTkueW1sCitpbmRleCA4NjRjY2FlNzFi MGUuLjA5NzJlZTJmMjE5ZiAxMDA2NDQKKy0tLSBhLy5naXRodWIvd29ya2Zsb3dzL3dpbmRvd3Nf ZGVidWdfdnMyMDE5LnltbAorKysrIGIvLmdpdGh1Yi93b3JrZmxvd3Mvd2luZG93c19kZWJ1Z192 czIwMTkueW1sCitAQCAtNSwyOSArNSwyOCBAQAorICMgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJv b3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZworICMg ZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNF TlNFXzFfMC50eHQpCisgCistbmFtZTogV2luZG93cyBDSSAoRGVidWcsIFZTMjAxOSB0b29sc2V0 KQorK25hbWU6IFdpbmRvd3MgQ0kgKERlYnVnLCBWUzIwMjIgdG9vbHNldCwgTG9jYWwgUnVudGlt ZSkKKyAKKyBvbjogW3B1bGxfcmVxdWVzdF0KKyAKKyBqb2JzOgorICAgYnVpbGQ6CistICAgIHJ1 bnMtb246IHdpbmRvd3MtbGF0ZXN0CisrICAgIHJ1bnMtb246IHdpbmRvd3MtMjAyMgorIAorICAg ICBzdGVwczoKKy0gICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHY0CistICAgIC0gdXNlczog andsYXdzb24vYWN0aW9ucy1zZXR1cC1jbWFrZUB2Mi4wCistICAgICAgd2l0aDoKKy0gICAgICAg IGNtYWtlLXZlcnNpb246ICczLjIyLngnCisrICAgIC0gdXNlczogYWN0aW9ucy9jaGVja291dEB2 NworKyAgICAtIHVzZXM6IGx1a2thL2dldC1jbWFrZUB2NC40LjIKKysKKyAgICAgLSBuYW1lOiBJ bnN0YWxsIGRlcGVuZGVuY2llcworICAgICAgIHJ1bjogfAorICAgICAgICAgbWQgQzpccHJvamVj dHMKKyAgICAgICAgICRjbGllbnQgPSBuZXctb2JqZWN0IFN5c3RlbS5OZXQuV2ViQ2xpZW50Cist ICAgICAgICAkY2xpZW50LkRvd25sb2FkRmlsZSgiaHR0cHM6Ly9yb3N0YW0uY2N0LmxzdS5lZHUv ZG93bmxvYWQvYnVpbGRlci92Y3BrZy1leHBvcnQtaHB4LWRlcGVuZGVuY2llcy0yMDI0Ljd6Iiwi QzpccHJvamVjdHNcdmNwa2ctZXhwb3J0LWhweC1kZXBlbmRlbmNpZXMuN3oiKQorKyAgICAgICAg JGNsaWVudC5Eb3dubG9hZEZpbGUoImh0dHBzOi8vcm9zdGFtLmNjdC5sc3UuZWR1L2Rvd25sb2Fk L2J1aWxkZXIvdmNwa2ctZXhwb3J0LWhweC1kZXBlbmRlbmNpZXMtMjAyNi43eiIsIkM6XHByb2pl Y3RzXHZjcGtnLWV4cG9ydC1ocHgtZGVwZW5kZW5jaWVzLjd6IikKKyAgICAgICAgIDd6IHggQzpc cHJvamVjdHNcdmNwa2ctZXhwb3J0LWhweC1kZXBlbmRlbmNpZXMuN3ogLXkgLW9DOlxwcm9qZWN0 c1x2Y3BrZworICAgICAtIG5hbWU6IENvbmZpZ3VyZQorICAgICAgIHNoZWxsOiBiYXNoCisgICAg ICAgcnVuOiB8CistICAgICAgICAgIGNtYWtlIC4gLUJidWlsZCAtRydWaXN1YWwgU3R1ZGlvIDE3 IDIwMjInIC1UIHYxNDIgXAorKyAgICAgICAgICBjbWFrZSAuIC1CYnVpbGQgLUcnVmlzdWFsIFN0 dWRpbyAxNyAyMDIyJyBcCisgICAgICAgICAgICAgICAtRENNQUtFX0JVSUxEX1RZUEU9RGVidWcg XAorICAgICAgICAgICAgICAgLURDTUFLRV9UT09MQ0hBSU5fRklMRT0nQzovcHJvamVjdHMvdmNw a2cvc2NyaXB0cy9idWlsZHN5c3RlbXMvdmNwa2cuY21ha2UnIFwKKyAgICAgICAgICAgICAgIC1E SFBYX1dJVEhfRkVUQ0hfQVNJTz1PTiBcCitkaWZmIC0tZ2l0IGEvLmdpdGh1Yi93b3JrZmxvd3Mv d2luZG93c19kZWJ1Z192czIwMjIueW1sIGIvLmdpdGh1Yi93b3JrZmxvd3Mvd2luZG93c19kZWJ1 Z192czIwMjIueW1sCitpbmRleCBjZWJlY2Q5OTIxNDAuLjY3ZTFlNTRmOWRkZiAxMDA2NDQKKy0t LSBhLy5naXRodWIvd29ya2Zsb3dzL3dpbmRvd3NfZGVidWdfdnMyMDIyLnltbAorKysrIGIvLmdp dGh1Yi93b3JrZmxvd3Mvd2luZG93c19kZWJ1Z192czIwMjIueW1sCitAQCAtOSwyMCArOSwyMyBA QCBuYW1lOiBXaW5kb3dzIENJIChEZWJ1ZywgVlMyMDIyIHRvb2xzZXQpCisgCisgb246IFtwdWxs X3JlcXVlc3RdCisgCisrY29uY3VycmVuY3k6CisrICBncm91cDogJHt7IGdpdGh1Yi53b3JrZmxv dyB9fS0ke3sgZ2l0aHViLnJlZiB9fQorKyAgY2FuY2VsLWluLXByb2dyZXNzOiB0cnVlCisrCisg am9iczoKKyAgIGJ1aWxkOgorLSAgICBydW5zLW9uOiB3aW5kb3dzLWxhdGVzdAorKyAgICBydW5z LW9uOiB3aW5kb3dzLTIwMjIKKyAKKyAgICAgc3RlcHM6CistICAgIC0gdXNlczogYWN0aW9ucy9j aGVja291dEB2NAorLSAgICAtIHVzZXM6IGp3bGF3c29uL2FjdGlvbnMtc2V0dXAtY21ha2VAdjIu MAorLSAgICAgIHdpdGg6CistICAgICAgICBjbWFrZS12ZXJzaW9uOiAnMy4yMi54JworKyAgICAt IHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjcKKysgICAgLSB1c2VzOiBsdWtrYS9nZXQtY21ha2VA djQuNC4yCisrCisgICAgIC0gbmFtZTogSW5zdGFsbCBkZXBlbmRlbmNpZXMKKyAgICAgICBydW46 IHwKKyAgICAgICAgIG1kIEM6XHByb2plY3RzCisgICAgICAgICAkY2xpZW50ID0gbmV3LW9iamVj dCBTeXN0ZW0uTmV0LldlYkNsaWVudAorLSAgICAgICAgJGNsaWVudC5Eb3dubG9hZEZpbGUoImh0 dHBzOi8vcm9zdGFtLmNjdC5sc3UuZWR1L2Rvd25sb2FkL2J1aWxkZXIvdmNwa2ctZXhwb3J0LWhw eC1kZXBlbmRlbmNpZXMtMjAyNC43eiIsIkM6XHByb2plY3RzXHZjcGtnLWV4cG9ydC1ocHgtZGVw ZW5kZW5jaWVzLjd6IikKKysgICAgICAgICRjbGllbnQuRG93bmxvYWRGaWxlKCJodHRwczovL3Jv c3RhbS5jY3QubHN1LmVkdS9kb3dubG9hZC9idWlsZGVyL3ZjcGtnLWV4cG9ydC1ocHgtZGVwZW5k ZW5jaWVzLTIwMjYuN3oiLCJDOlxwcm9qZWN0c1x2Y3BrZy1leHBvcnQtaHB4LWRlcGVuZGVuY2ll cy43eiIpCisgICAgICAgICA3eiB4IEM6XHByb2plY3RzXHZjcGtnLWV4cG9ydC1ocHgtZGVwZW5k ZW5jaWVzLjd6IC15IC1vQzpccHJvamVjdHNcdmNwa2cKKyAgICAgLSBuYW1lOiBDb25maWd1cmUK KyAgICAgICBzaGVsbDogYmFzaAorQEAgLTMxLDYgKzM0LDcgQEAgam9iczoKKyAgICAgICAgICAg ICAgIC1EQ01BS0VfQlVJTERfVFlQRT1EZWJ1ZyBcCisgICAgICAgICAgICAgICAtRENNQUtFX1RP T0xDSEFJTl9GSUxFPSdDOi9wcm9qZWN0cy92Y3BrZy9zY3JpcHRzL2J1aWxkc3lzdGVtcy92Y3Br Zy5jbWFrZScgXAorICAgICAgICAgICAgICAgLURIUFhfV0lUSF9GRVRDSF9BU0lPPU9OIFwKKysg ICAgICAgICAgICAgIC1ESFBYX1dJVEhfQVNJT19UQUc9YXNpby0xLTM0LTIgXAorICAgICAgICAg ICAgICAgLURIUFhfV0lUSF9FWEFNUExFUz1PTiBcCisgICAgICAgICAgICAgICAtREhQWF9XSVRI X1RFU1RTPU9OIFwKKyAgICAgICAgICAgICAgIC1ESFBYX1dJVEhfVEVTVFNfRVhBTVBMRVM9T04g XAorZGlmZiAtLWdpdCBhLy5naXRodWIvd29ya2Zsb3dzL3dpbmRvd3NfZGVidWdfdnMyMDIyX2Zl dGNoX2Jvb3N0LnltbCBiLy5naXRodWIvd29ya2Zsb3dzL3dpbmRvd3NfZGVidWdfdnMyMDIyX2Zl dGNoX2Jvb3N0LnltbAoraW5kZXggMDU3MDFiOGQyZWMzLi42ODJmOWJmZTM3ZmEgMTAwNjQ0Cist LS0gYS8uZ2l0aHViL3dvcmtmbG93cy93aW5kb3dzX2RlYnVnX3ZzMjAyMl9mZXRjaF9ib29zdC55 bWwKKysrKyBiLy5naXRodWIvd29ya2Zsb3dzL3dpbmRvd3NfZGVidWdfdnMyMDIyX2ZldGNoX2Jv b3N0LnltbAorQEAgLTgsMjAgKzgsMjMgQEAgbmFtZTogV2luZG93cyBDSSAoRGVidWcsIFZTMjAy MiB0b29sc2V0KSB3aXRoIEJvb3N0IEZldGNoCisgCisgb246IFtwdWxsX3JlcXVlc3RdCisgCisr Y29uY3VycmVuY3k6CisrICBncm91cDogJHt7IGdpdGh1Yi53b3JrZmxvdyB9fS0ke3sgZ2l0aHVi LnJlZiB9fQorKyAgY2FuY2VsLWluLXByb2dyZXNzOiB0cnVlCisrCisgam9iczoKKyAgIGJ1aWxk OgorLSAgICBydW5zLW9uOiB3aW5kb3dzLWxhdGVzdAorKyAgICBydW5zLW9uOiB3aW5kb3dzLTIw MjIKKyAKKyAgICAgc3RlcHM6CistICAgICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHY0Cist ICAgICAgLSB1c2VzOiBqd2xhd3Nvbi9hY3Rpb25zLXNldHVwLWNtYWtlQHYyLjAKKy0gICAgICAg IHdpdGg6CistICAgICAgICAgIGNtYWtlLXZlcnNpb246ICczLjIyLngnCisrICAgICAgLSB1c2Vz OiBhY3Rpb25zL2NoZWNrb3V0QHY3CisrICAgICAgLSB1c2VzOiBsdWtrYS9nZXQtY21ha2VAdjQu NC4yCisrCisgICAgICAgLSBuYW1lOiBJbnN0YWxsIGRlcGVuZGVuY2llcworICAgICAgICAgcnVu OiB8CisgICAgICAgICAgIG1kIEM6XHByb2plY3RzCisgICAgICAgICAgICRjbGllbnQgPSBuZXct b2JqZWN0IFN5c3RlbS5OZXQuV2ViQ2xpZW50CistICAgICAgICAgICRjbGllbnQuRG93bmxvYWRG aWxlKCJodHRwczovL3Jvc3RhbS5jY3QubHN1LmVkdS9kb3dubG9hZC9idWlsZGVyL3ZjcGtnLWV4 cG9ydC1ocHgtZGVwZW5kZW5jaWVzLTIwMjQuN3oiLCJDOlxwcm9qZWN0c1x2Y3BrZy1leHBvcnQt aHB4LWRlcGVuZGVuY2llcy43eiIpCisrICAgICAgICAgICRjbGllbnQuRG93bmxvYWRGaWxlKCJo dHRwczovL3Jvc3RhbS5jY3QubHN1LmVkdS9kb3dubG9hZC9idWlsZGVyL3ZjcGtnLWV4cG9ydC1o cHgtZGVwZW5kZW5jaWVzLTIwMjYuN3oiLCJDOlxwcm9qZWN0c1x2Y3BrZy1leHBvcnQtaHB4LWRl cGVuZGVuY2llcy43eiIpCisgICAgICAgICAgIDd6IHggQzpccHJvamVjdHNcdmNwa2ctZXhwb3J0 LWhweC1kZXBlbmRlbmNpZXMuN3ogLXkgLW9DOlxwcm9qZWN0c1x2Y3BrZworICAgICAgIC0gbmFt ZTogQ29uZmlndXJlCisgICAgICAgICBzaGVsbDogYmFzaAorZGlmZiAtLWdpdCBhLy5naXRodWIv d29ya2Zsb3dzL3dpbmRvd3NfZGVidWdfdnMyMDIyX2ZldGNoX2h3bG9jLnltbCBiLy5naXRodWIv d29ya2Zsb3dzL3dpbmRvd3NfZGVidWdfdnMyMDIyX2ZldGNoX2h3bG9jLnltbAoraW5kZXggY2Q1 NjgwZjFiNWRhLi41OTgzYTAxNDZhY2UgMTAwNjQ0CistLS0gYS8uZ2l0aHViL3dvcmtmbG93cy93 aW5kb3dzX2RlYnVnX3ZzMjAyMl9mZXRjaF9od2xvYy55bWwKKysrKyBiLy5naXRodWIvd29ya2Zs b3dzL3dpbmRvd3NfZGVidWdfdnMyMDIyX2ZldGNoX2h3bG9jLnltbAorQEAgLTksMjAgKzksMjMg QEAgbmFtZTogV2luZG93cyBDSSAoRGVidWcsIFZTMjAyMiB0b29sc2V0KSB3aXRoIEhXTG9jIGZl dGNoCisgCisgb246IFtwdWxsX3JlcXVlc3RdCisgCisrY29uY3VycmVuY3k6CisrICBncm91cDog JHt7IGdpdGh1Yi53b3JrZmxvdyB9fS0ke3sgZ2l0aHViLnJlZiB9fQorKyAgY2FuY2VsLWluLXBy b2dyZXNzOiB0cnVlCisrCisgam9iczoKKyAgIGJ1aWxkOgorLSAgICBydW5zLW9uOiB3aW5kb3dz LWxhdGVzdAorKyAgICBydW5zLW9uOiB3aW5kb3dzLTIwMjIKKyAKKyAgICAgc3RlcHM6CistICAg IC0gdXNlczogYWN0aW9ucy9jaGVja291dEB2NAorLSAgICAtIHVzZXM6IGp3bGF3c29uL2FjdGlv bnMtc2V0dXAtY21ha2VAdjIuMAorLSAgICAgIHdpdGg6CistICAgICAgICBjbWFrZS12ZXJzaW9u OiAnMy4yMi54JworKyAgICAtIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjcKKysgICAgLSB1c2Vz OiBsdWtrYS9nZXQtY21ha2VAdjQuNC4yCisrCisgICAgIC0gbmFtZTogSW5zdGFsbCBkZXBlbmRl bmNpZXMKKyAgICAgICBydW46IHwKKyAgICAgICAgIG1kIEM6XHByb2plY3RzCisgICAgICAgICAk Y2xpZW50ID0gbmV3LW9iamVjdCBTeXN0ZW0uTmV0LldlYkNsaWVudAorLSAgICAgICAgJGNsaWVu dC5Eb3dubG9hZEZpbGUoImh0dHBzOi8vcm9zdGFtLmNjdC5sc3UuZWR1L2Rvd25sb2FkL2J1aWxk ZXIvdmNwa2ctZXhwb3J0LWhweC1kZXBlbmRlbmNpZXMtMjAyNC43eiIsIkM6XHByb2plY3RzXHZj cGtnLWV4cG9ydC1ocHgtZGVwZW5kZW5jaWVzLjd6IikKKysgICAgICAgICRjbGllbnQuRG93bmxv YWRGaWxlKCJodHRwczovL3Jvc3RhbS5jY3QubHN1LmVkdS9kb3dubG9hZC9idWlsZGVyL3ZjcGtn LWV4cG9ydC1ocHgtZGVwZW5kZW5jaWVzLTIwMjYuN3oiLCJDOlxwcm9qZWN0c1x2Y3BrZy1leHBv cnQtaHB4LWRlcGVuZGVuY2llcy43eiIpCisgICAgICAgICA3eiB4IEM6XHByb2plY3RzXHZjcGtn LWV4cG9ydC1ocHgtZGVwZW5kZW5jaWVzLjd6IC15IC1vQzpccHJvamVjdHNcdmNwa2cKKyAgICAg LSBuYW1lOiBDb25maWd1cmUKKyAgICAgICBzaGVsbDogYmFzaAorZGlmZiAtLWdpdCBhLy5naXRo dWIvd29ya2Zsb3dzL3dpbmRvd3NfcmVsZWFzZV8yMDIyLnltbCBiLy5naXRodWIvd29ya2Zsb3dz L3dpbmRvd3NfcmVsZWFzZV8yMDIyLnltbAoraW5kZXggMTRlOTZhMjlmOTg5Li4wZmYwNzA4MTE5 YWYgMTAwNjQ0CistLS0gYS8uZ2l0aHViL3dvcmtmbG93cy93aW5kb3dzX3JlbGVhc2VfMjAyMi55 bWwKKysrKyBiLy5naXRodWIvd29ya2Zsb3dzL3dpbmRvd3NfcmVsZWFzZV8yMDIyLnltbAorQEAg LTgsMjAgKzgsMjMgQEAgbmFtZTogV2luZG93cyBDSSAoUmVsZWFzZSwgVlMyMDIyIHRvb2xzZXQp CisgCisgb246IFtwdWxsX3JlcXVlc3RdCisgCisrY29uY3VycmVuY3k6CisrICBncm91cDogJHt7 IGdpdGh1Yi53b3JrZmxvdyB9fS0ke3sgZ2l0aHViLnJlZiB9fQorKyAgY2FuY2VsLWluLXByb2dy ZXNzOiB0cnVlCisrCisgam9iczoKKyAgIGJ1aWxkOgorLSAgICBydW5zLW9uOiB3aW5kb3dzLWxh dGVzdAorKyAgICBydW5zLW9uOiB3aW5kb3dzLTIwMjIKKyAKKyAgICAgc3RlcHM6CistICAgIC0g dXNlczogYWN0aW9ucy9jaGVja291dEB2NAorLSAgICAtIHVzZXM6IGp3bGF3c29uL2FjdGlvbnMt c2V0dXAtY21ha2VAdjIuMAorLSAgICAgIHdpdGg6CistICAgICAgICBjbWFrZS12ZXJzaW9uOiAn My4yMi54JworKyAgICAtIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjcKKysgICAgLSB1c2VzOiBs dWtrYS9nZXQtY21ha2VAdjQuNC4yCisrCisgICAgIC0gbmFtZTogSW5zdGFsbCBkZXBlbmRlbmNp ZXMKKyAgICAgICBydW46IHwKKyAgICAgICAgIG1kIEM6XHByb2plY3RzCisgICAgICAgICAkY2xp ZW50ID0gbmV3LW9iamVjdCBTeXN0ZW0uTmV0LldlYkNsaWVudAorLSAgICAgICAgJGNsaWVudC5E b3dubG9hZEZpbGUoImh0dHBzOi8vcm9zdGFtLmNjdC5sc3UuZWR1L2Rvd25sb2FkL2J1aWxkZXIv dmNwa2ctZXhwb3J0LWhweC1kZXBlbmRlbmNpZXMtMjAyNC43eiIsIkM6XHByb2plY3RzXHZjcGtn LWV4cG9ydC1ocHgtZGVwZW5kZW5jaWVzLjd6IikKKysgICAgICAgICRjbGllbnQuRG93bmxvYWRG aWxlKCJodHRwczovL3Jvc3RhbS5jY3QubHN1LmVkdS9kb3dubG9hZC9idWlsZGVyL3ZjcGtnLWV4 cG9ydC1ocHgtZGVwZW5kZW5jaWVzLTIwMjYuN3oiLCJDOlxwcm9qZWN0c1x2Y3BrZy1leHBvcnQt aHB4LWRlcGVuZGVuY2llcy43eiIpCisgICAgICAgICA3eiB4IEM6XHByb2plY3RzXHZjcGtnLWV4 cG9ydC1ocHgtZGVwZW5kZW5jaWVzLjd6IC15IC1vQzpccHJvamVjdHNcdmNwa2cKKyAgICAgLSBu YW1lOiBDb25maWd1cmUKKyAgICAgICBzaGVsbDogYmFzaAorZGlmZiAtLWdpdCBhLy5naXRodWIv d29ya2Zsb3dzL3dpbmRvd3NfcmVsZWFzZV9nY2NfbWluZ3cueW1sIGIvLmdpdGh1Yi93b3JrZmxv d3Mvd2luZG93c19yZWxlYXNlX2djY19taW5ndy55bWwKK2luZGV4IDEzODA1ODc2NGVmNy4uYzYx Yzk2YWUzYWIxIDEwMDY0NAorLS0tIGEvLmdpdGh1Yi93b3JrZmxvd3Mvd2luZG93c19yZWxlYXNl X2djY19taW5ndy55bWwKKysrKyBiLy5naXRodWIvd29ya2Zsb3dzL3dpbmRvd3NfcmVsZWFzZV9n Y2NfbWluZ3cueW1sCitAQCAtOCwxNSArOCwxOCBAQCBuYW1lOiBXaW5kb3dzIENJIChSZWxlYXNl LCBnY2MvbWluZ3cgdG9vbHNldCkKKyAKKyBvbjogW3B1bGxfcmVxdWVzdF0KKyAKKytjb25jdXJy ZW5jeToKKysgIGdyb3VwOiAke3sgZ2l0aHViLndvcmtmbG93IH19LSR7eyBnaXRodWIucmVmIH19 CisrICBjYW5jZWwtaW4tcHJvZ3Jlc3M6IHRydWUKKysKKyBqb2JzOgorICAgYnVpbGQ6CistICAg IHJ1bnMtb246IHdpbmRvd3MtbGF0ZXN0CisrICAgIHJ1bnMtb246IHdpbmRvd3MtMjAyMgorIAor ICAgICBzdGVwczoKKy0gICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHY0CistICAgIC0gdXNl czogandsYXdzb24vYWN0aW9ucy1zZXR1cC1jbWFrZUB2Mi4wCistICAgICAgd2l0aDoKKy0gICAg ICAgIGNtYWtlLXZlcnNpb246ICczLjIyLngnCisrICAgIC0gdXNlczogYWN0aW9ucy9jaGVja291 dEB2NworKyAgICAtIHVzZXM6IGx1a2thL2dldC1jbWFrZUB2NC40LjIKKysKKyAgICAgLSBuYW1l OiBJbnN0YWxsIGRlcGVuZGVuY2llcworICAgICAgIHJ1bjogfAorICAgICAgICAgY2hvY28gaW5z dGFsbCBuaW5qYSAteQorZGlmZiAtLWdpdCBhLy5naXRodWIvd29ya2Zsb3dzL3dpbmRvd3NfcmVs ZWFzZV9zdGF0aWMueW1sIGIvLmdpdGh1Yi93b3JrZmxvd3Mvd2luZG93c19yZWxlYXNlX3N0YXRp Yy55bWwKK2luZGV4IDFiMDQ5MGQxYjhkNC4uNzEwMjEzYjJjNDIzIDEwMDY0NAorLS0tIGEvLmdp dGh1Yi93b3JrZmxvd3Mvd2luZG93c19yZWxlYXNlX3N0YXRpYy55bWwKKysrKyBiLy5naXRodWIv d29ya2Zsb3dzL3dpbmRvd3NfcmVsZWFzZV9zdGF0aWMueW1sCitAQCAtOSwyMCArOSwyMyBAQCBu YW1lOiBXaW5kb3dzIENJIChSZWxlYXNlLCBTdGF0aWMpCisgCisgb246IFtwdWxsX3JlcXVlc3Rd CisgCisrY29uY3VycmVuY3k6CisrICBncm91cDogJHt7IGdpdGh1Yi53b3JrZmxvdyB9fS0ke3sg Z2l0aHViLnJlZiB9fQorKyAgY2FuY2VsLWluLXByb2dyZXNzOiB0cnVlCisrCisgam9iczoKKyAg IGJ1aWxkOgorLSAgICBydW5zLW9uOiB3aW5kb3dzLWxhdGVzdAorKyAgICBydW5zLW9uOiB3aW5k b3dzLTIwMjIKKyAKKyAgICAgc3RlcHM6CistICAgIC0gdXNlczogYWN0aW9ucy9jaGVja291dEB2 NAorLSAgICAtIHVzZXM6IGp3bGF3c29uL2FjdGlvbnMtc2V0dXAtY21ha2VAdjIuMAorLSAgICAg IHdpdGg6CistICAgICAgICBjbWFrZS12ZXJzaW9uOiAnMy4yMi54JworKyAgICAtIHVzZXM6IGFj dGlvbnMvY2hlY2tvdXRAdjcKKysgICAgLSB1c2VzOiBsdWtrYS9nZXQtY21ha2VAdjQuNC4yCisr CisgICAgIC0gbmFtZTogSW5zdGFsbCBkZXBlbmRlbmNpZXMKKyAgICAgICBydW46IHwKKyAgICAg ICAgIG1kIEM6XHByb2plY3RzCisgICAgICAgICAkY2xpZW50ID0gbmV3LW9iamVjdCBTeXN0ZW0u TmV0LldlYkNsaWVudAorLSAgICAgICAgJGNsaWVudC5Eb3dubG9hZEZpbGUoImh0dHBzOi8vcm9z dGFtLmNjdC5sc3UuZWR1L2Rvd25sb2FkL2J1aWxkZXIvdmNwa2ctZXhwb3J0LWhweC1kZXBlbmRl bmNpZXMtMjAyNC43eiIsIkM6XHByb2plY3RzXHZjcGtnLWV4cG9ydC1ocHgtZGVwZW5kZW5jaWVz Ljd6IikKKysgICAgICAgICRjbGllbnQuRG93bmxvYWRGaWxlKCJodHRwczovL3Jvc3RhbS5jY3Qu bHN1LmVkdS9kb3dubG9hZC9idWlsZGVyL3ZjcGtnLWV4cG9ydC1ocHgtZGVwZW5kZW5jaWVzLTIw MjYuN3oiLCJDOlxwcm9qZWN0c1x2Y3BrZy1leHBvcnQtaHB4LWRlcGVuZGVuY2llcy43eiIpCisg ICAgICAgICA3eiB4IEM6XHByb2plY3RzXHZjcGtnLWV4cG9ydC1ocHgtZGVwZW5kZW5jaWVzLjd6 IC15IC1vQzpccHJvamVjdHNcdmNwa2cKKyAgICAgLSBuYW1lOiBDb25maWd1cmUKKyAgICAgICBz aGVsbDogYmFzaAorZGlmZiAtLWdpdCBhL2NtYWtlL0hQWF9TZXR1cEFzaW8uY21ha2UgYi9jbWFr ZS9IUFhfU2V0dXBBc2lvLmNtYWtlCitpbmRleCBlYTE3YTU3NDQ3MmUuLmQ4ZDA4MWYzODc3ZSAx MDA2NDQKKy0tLSBhL2NtYWtlL0hQWF9TZXR1cEFzaW8uY21ha2UKKysrKyBiL2NtYWtlL0hQWF9T ZXR1cEFzaW8uY21ha2UKK0BAIC0xNCw3ICsxNCwxNyBAQCBpZihBU0lPX1JPT1QgQU5EIE5PVCBB c2lvX1JPT1QpCisgZW5kaWYoKQorIAorIGlmKE5PVCBIUFhfV0lUSF9GRVRDSF9BU0lPKQorLSAg ZmluZF9wYWNrYWdlKEFzaW8gMS4xMi4wIFJFUVVJUkVEKQorKyAgZmluZF9wYWNrYWdlKEFzaW8g MS4xMi4wKQorKyAgaWYoTk9UIEFzaW9fRk9VTkQpCisrICAgIGhweF9lcnJvcigKKysgICAgICAi Q291bGQgbm90IGZpbmQgQXNpby4gU2V0IEFzaW9fUk9PVCBhcyBhIENNYWtlIG9yIGVudmlyb25t ZW50IHZhcmlhYmxlIHRvICIKKysgICAgICAicG9pbnQgdG8gdGhlIEFzaW8gcm9vdCBpbnN0YWxs IGRpcmVjdG9yeS4gQWx0ZXJuYXRpdmVseSwgc2V0ICIKKysgICAgICAiSFBYX1dJVEhfRkVUQ0hf QVNJTz1PTiB0byBmZXRjaCBBc2lvIHVzaW5nIENNYWtlJ3MgRmV0Y2hDb250ZW50ICh0aGlzIGlz ICIKKysgICAgICAiY3VycmVudGx5IHRoZSBkZWZhdWx0LCBidXQgbWlnaHQgaGF2ZSBmYWlsZWQg b3IgYmVlbiBkaXNhYmxlZCkuIE5vdGUgdGhhdCAiCisrICAgICAgIkFzaW8gaXMgaW5zdGFsbGVk IHRvZ2V0aGVyIHdpdGggSFBYLCBiZSBjYXJlZnVsIGFib3V0IGNvbmZsaWN0cyB3aXRoICIKKysg ICAgICAic2VwYXJhdGVseSBpbnN0YWxsZWQgdmVyc2lvbnMgb2YgQXNpby4iCisrICAgICkKKysg IGVuZGlmKCkKKyBlbHNlaWYoTk9UIFRBUkdFVCBBc2lvOjphc2lvIEFORCBOT1QgSFBYX0ZJTkRf UEFDS0FHRSkKKyAgIGlmKEZFVENIQ09OVEVOVF9TT1VSQ0VfRElSX0FTSU8pCisgICAgIGhweF9p bmZvKAorQEAgLTM2LDggKzQ2LDIwIEBAIGVsc2VpZihOT1QgVEFSR0VUIEFzaW86OmFzaW8gQU5E IE5PVCBIUFhfRklORF9QQUNLQUdFKQorICAgc2V0KEFzaW9fUk9PVCAke2FzaW9fU09VUkNFX0RJ Un0pCisgCisgICBhZGRfbGlicmFyeShhc2lvIElOVEVSRkFDRSkKKysKKysgICMgY29udmVydCBB U0lPIHRhZyBpbnRvIENNYWtlIHZlcnNpb24KKysgIHN0cmluZyhSRUdFWCBSRVBMQUNFICJhc2lv LShbMC05XSspLShbMC05XSspLShbMC05XSspIiAiXFwxLlxcMi5cXDMiIFZFUlNJT04KKysgICAg ICAgICAgICAgICAgICAgICAgICIke0hQWF9XSVRIX0FTSU9fVEFHfSIKKysgICkKKysKKysgICMg c3RhcnRpbmcgdjEuMzcuMCBBU0lPIGhhcyBjaGFuZ2VkIGl0cyBkaXJlY3Rvcnkgc3RydWN0dXJl CisrICBzZXQoYXNpb19iYXNlX2RpcmVjdG9yeSAke0FzaW9fUk9PVH0vYXNpby9pbmNsdWRlKQor KyAgaWYoVkVSU0lPTiBWRVJTSU9OX0dSRUFURVIgIjEuMzYuMCIpCisrICAgIHNldChhc2lvX2Jh c2VfZGlyZWN0b3J5ICR7QXNpb19ST09UfS9pbmNsdWRlKQorKyAgZW5kaWYoKQorKworICAgdGFy Z2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoCistICAgIGFzaW8gU1lTVEVNIElOVEVSRkFDRSAkPEJV SUxEX0lOVEVSRkFDRToke0FzaW9fUk9PVH0vYXNpby9pbmNsdWRlPgorKyAgICBhc2lvIFNZU1RF TSBJTlRFUkZBQ0UgJDxCVUlMRF9JTlRFUkZBQ0U6JHthc2lvX2Jhc2VfZGlyZWN0b3J5fT4KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICQ8SU5TVEFMTF9JTlRFUkZBQ0U6JHtDTUFLRV9JTlNU QUxMX0lOQ0xVREVESVJ9PgorICAgKQorIAorQEAgLTQ4LDcgKzcwLDcgQEAgZWxzZWlmKE5PVCBU QVJHRVQgQXNpbzo6YXNpbyBBTkQgTk9UIEhQWF9GSU5EX1BBQ0tBR0UpCisgICApCisgCisgICBp bnN0YWxsKAorLSAgICBESVJFQ1RPUlkgJHtBc2lvX1JPT1R9L2FzaW8vaW5jbHVkZS8KKysgICAg RElSRUNUT1JZICR7YXNpb19iYXNlX2RpcmVjdG9yeX0vCisgICAgIERFU1RJTkFUSU9OICR7Q01B S0VfSU5TVEFMTF9JTkNMVURFRElSfQorICAgICBDT01QT05FTlQgY29yZQorICAgICBGSUxFU19N QVRDSElORworZGlmZiAtLWdpdCBhL2NvbXBvbmVudHMvaW9zdHJlYW1zL3NyYy9zZXJ2ZXIvb3V0 cHV0X3N0cmVhbS5jcHAgYi9jb21wb25lbnRzL2lvc3RyZWFtcy9zcmMvc2VydmVyL291dHB1dF9z dHJlYW0uY3BwCitpbmRleCBkZDBhNTE5YjI3ZjguLmU3MWUzYWI1MjgxOCAxMDA2NDQKKy0tLSBh L2NvbXBvbmVudHMvaW9zdHJlYW1zL3NyYy9zZXJ2ZXIvb3V0cHV0X3N0cmVhbS5jcHAKKysrKyBi L2NvbXBvbmVudHMvaW9zdHJlYW1zL3NyYy9zZXJ2ZXIvb3V0cHV0X3N0cmVhbS5jcHAKK0BAIC05 LDcgKzksOSBAQAorICNpbmNsdWRlIDxocHgvY29uZmlnLmhwcD4KKyAjaW5jbHVkZSA8aHB4L2Z1 bmN0aW9uYWwvYmluZF9mcm9udC5ocHA+CisgCisrI2luY2x1ZGUgPGhweC9pb19zZXJ2aWNlL2lv X3NlcnZpY2VfcG9vbC5ocHA+CisgI2luY2x1ZGUgPGhweC9ydW50aW1lX2Rpc3RyaWJ1dGVkL3J1 bnRpbWVfZndkLmhwcD4KKysjaW5jbHVkZSA8aHB4L3J1bnRpbWVfbG9jYWwvcnVudGltZV9sb2Nh bF9md2QuaHBwPgorICNpbmNsdWRlIDxocHgvc2VyaWFsaXphdGlvbi9zZXJpYWxpemUuaHBwPgor ICNpbmNsdWRlIDxocHgvc2VyaWFsaXphdGlvbi9zaGFyZWRfcHRyLmhwcD4KKyAjaW5jbHVkZSA8 aHB4L3NlcmlhbGl6YXRpb24vdmVjdG9yLmhwcD4KK0BAIC0xOSw3ICsyMSwxMSBAQAorICNpbmNs dWRlIDxocHgvY29tcG9uZW50cy9pb3N0cmVhbXMvc2VydmVyL2J1ZmZlci5ocHA+CisgI2luY2x1 ZGUgPGhweC9jb21wb25lbnRzL2lvc3RyZWFtcy9zZXJ2ZXIvb3V0cHV0X3N0cmVhbS5ocHA+Cisg CistI2luY2x1ZGUgPGhweC9pb19zZXJ2aWNlL2lvX3NlcnZpY2VfcG9vbC5ocHA+CisrI2luY2x1 ZGUgPGFzaW8vaW9fY29udGV4dC5ocHA+CisrI2luY2x1ZGUgPGFzaW8vdmVyc2lvbi5ocHA+Cisr I2lmIEFTSU9fVkVSU0lPTiA+PSAxMDM0MDAKKysjaW5jbHVkZSA8YXNpby9wb3N0LmhwcD4KKysj ZW5kaWYKKyAKKyAjaW5jbHVkZSA8Y3N0ZGludD4KKyAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KK0BA IC0zNCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBocHg6Omlvc3RyZWFtczo6ZGV0YWlsIHsKKyAgICAg ICAgIGFyIDw8IHZhbGlkOworICAgICAgICAgaWYgKHZhbGlkKQorICAgICAgICAgeworLSAgICAg ICAgICAgIGFyJiBkYXRhXzsKKysgICAgICAgICAgICBhciAmIGRhdGFfOworICAgICAgICAgfQor ICAgICB9CisgCitAQCAtNDQsNyArNTAsNyBAQCBuYW1lc3BhY2UgaHB4Ojppb3N0cmVhbXM6OmRl dGFpbCB7CisgICAgICAgICBhciA+PiB2YWxpZDsKKyAgICAgICAgIGlmICh2YWxpZCkKKyAgICAg ICAgIHsKKy0gICAgICAgICAgICBhciYgZGF0YV87CisrICAgICAgICAgICAgYXIgJiBkYXRhXzsK KyAgICAgICAgIH0KKyAgICAgfQorIH0gICAgLy8gbmFtZXNwYWNlIGhweDo6aW9zdHJlYW1zOjpk ZXRhaWwKK0BAIC02MCwxNiArNjYsMjIgQEAgbmFtZXNwYWNlIGhweDo6aW9zdHJlYW1zOjpzZXJ2 ZXIgeworIAorICAgICB2b2lkIG91dHB1dF9zdHJlYW06OndyaXRlX2FzeW5jKHN0ZDo6dWludDMy X3QgbG9jYWxpdHlfaWQsCisgICAgICAgICBzdGQ6OnVpbnQ2NF90IGNvdW50LCBkZXRhaWw6OmJ1 ZmZlciBjb25zdCYgYnVmX2luKQorLSAgICB7ICAgIC8vIHt7eworKyAgICB7CisgICAgICAgICAv LyBQZXJmb3JtIHRoZSBJTyBpbiBhbm90aGVyIE9TIHRocmVhZC4KKyAgICAgICAgIGRldGFpbDo6 YnVmZmVyIGluKGJ1Zl9pbik7CisgICAgICAgICAvLyB3ZSBuZWVkIHRvIGNhcHR1cmUgdGhlIEdJ RCBvZiB0aGUgY29tcG9uZW50IHRvIGtlZXAgaXQgYWxpdmUgbG9uZworICAgICAgICAgLy8gZW5v dWdoLgorICAgICAgICAgaHB4OjppZF90eXBlIHRoaXNfaWQgPSB0aGlzLT5nZXRfaWQoKTsKKysj aWYgQVNJT19WRVJTSU9OID49IDEwMzQwMAorKyAgICAgICAgOjphc2lvOjpwb3N0KGhweDo6Z2V0 X3RocmVhZF9wb29sKCJpb19wb29sIiktPmdldF9pb19zZXJ2aWNlKCksCisrICAgICAgICAgICAg aHB4OjpiaW5kX2Zyb250KCZvdXRwdXRfc3RyZWFtOjpjYWxsX3dyaXRlX2FzeW5jLCB0aGlzLCBs b2NhbGl0eV9pZCwKKysgICAgICAgICAgICAgICAgY291bnQsIEhQWF9NT1ZFKGluKSwgSFBYX01P VkUodGhpc19pZCkpKTsKKysjZWxzZQorICAgICAgICAgaHB4OjpnZXRfdGhyZWFkX3Bvb2woImlv X3Bvb2wiKS0+Z2V0X2lvX3NlcnZpY2UoKS5wb3N0KAorICAgICAgICAgICAgIGhweDo6YmluZF9m cm9udCgmb3V0cHV0X3N0cmVhbTo6Y2FsbF93cml0ZV9hc3luYywgdGhpcywgbG9jYWxpdHlfaWQs CisgICAgICAgICAgICAgICAgIGNvdW50LCBIUFhfTU9WRShpbiksIEhQWF9NT1ZFKHRoaXNfaWQp KSk7CistICAgIH0gICAgLy8gfX19CisrI2VuZGlmCisrICAgIH0KKyAKKyAgICAgLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vCisgICAgIHZvaWQgb3V0cHV0X3N0cmVhbTo6Y2FsbF93cml0ZV9zeW5jKHN0ZDo6 dWludDMyX3QgbG9jYWxpdHlfaWQsCitAQCAtODYsMTYgKzk4LDIxIEBAIG5hbWVzcGFjZSBocHg6 Omlvc3RyZWFtczo6c2VydmVyIHsKKyAKKyAgICAgdm9pZCBvdXRwdXRfc3RyZWFtOjp3cml0ZV9z eW5jKHN0ZDo6dWludDMyX3QgbG9jYWxpdHlfaWQsCisgICAgICAgICBzdGQ6OnVpbnQ2NF90IGNv dW50LCBkZXRhaWw6OmJ1ZmZlciBjb25zdCYgYnVmX2luKQorLSAgICB7ICAgIC8vIHt7eworKyAg ICB7CisgICAgICAgICAvLyBQZXJmb3JtIHRoZSBJTyBpbiBhbm90aGVyIE9TIHRocmVhZC4KKyAg ICAgICAgIGRldGFpbDo6YnVmZmVyIGluKGJ1Zl9pbik7CistICAgICAgICBocHg6OmdldF90aHJl YWRfcG9vbCgiaW9fcG9vbCIpLT5nZXRfaW9fc2VydmljZSgpLnBvc3QoCisrI2lmIEFTSU9fVkVS U0lPTiA+PSAxMDM0MDAKKysgICAgICAgIDo6YXNpbzo6cG9zdChocHg6OmdldF90aHJlYWRfcG9v bCgiaW9fcG9vbCIpLT5nZXRfaW9fc2VydmljZSgpLAorICAgICAgICAgICAgIGhweDo6YmluZF9m cm9udCgmb3V0cHV0X3N0cmVhbTo6Y2FsbF93cml0ZV9zeW5jLCB0aGlzLCBsb2NhbGl0eV9pZCwK KyAgICAgICAgICAgICAgICAgY291bnQsIHN0ZDo6cmVmKGluKSwKKy0gICAgICAgICAgICAgICAg dGhyZWFkczo6dGhyZWFkX2lkX3JlZl90eXBlKHRocmVhZHM6OmdldF9vdXRlcl9zZWxmX2lkKCkp KSk7CistCisrICAgICAgICAgICAgICAgIHRocmVhZHM6OnRocmVhZF9pZF9yZWZfdHlwZSh0aHJl YWRzOjpnZXRfc2VsZl9pZCgpKSkpOworKyNlbHNlCisrICAgICAgICBocHg6OmdldF90aHJlYWRf cG9vbCgiaW9fcG9vbCIpLT5nZXRfaW9fc2VydmljZSgpLnBvc3QoaHB4OjpiaW5kX2Zyb250KAor KyAgICAgICAgICAgICZvdXRwdXRfc3RyZWFtOjpjYWxsX3dyaXRlX3N5bmMsIHRoaXMsIGxvY2Fs aXR5X2lkLCBjb3VudCwKKysgICAgICAgICAgICBzdGQ6OnJlZihpbiksIHRocmVhZHM6OnRocmVh ZF9pZF9yZWZfdHlwZSh0aHJlYWRzOjpnZXRfc2VsZl9pZCgpKSkpOworKyNlbmRpZgorICAgICAg ICAgLy8gU2xlZXAgdW50aWwgdGhlIHdvcmtlciB0aHJlYWQgd2FrZXMgdXMgdXAuCisgICAgICAg ICB0aGlzX3RocmVhZDo6c3VzcGVuZCh0aHJlYWRzOjp0aHJlYWRfc2NoZWR1bGVfc3RhdGU6OnN1 c3BlbmRlZCwKKyAgICAgICAgICAgICAib3V0cHV0X3N0cmVhbTo6d3JpdGVfc3luYyIpOworLSAg ICB9ICAgIC8vIH19fQorKyAgICB9CisgfSAgICAvLyBuYW1lc3BhY2UgaHB4Ojppb3N0cmVhbXM6 OnNlcnZlcgorZGlmZiAtLWdpdCBhL2V4YW1wbGVzL2FzeW5jX2lvL2FzeW5jX2lvX2xvd19sZXZl bC5jcHAgYi9leGFtcGxlcy9hc3luY19pby9hc3luY19pb19sb3dfbGV2ZWwuY3BwCitpbmRleCA3 NTMxMjk4NGJmN2YuLjc3NmU5NzMwMDZjNSAxMDA2NDQKKy0tLSBhL2V4YW1wbGVzL2FzeW5jX2lv L2FzeW5jX2lvX2xvd19sZXZlbC5jcHAKKysrKyBiL2V4YW1wbGVzL2FzeW5jX2lvL2FzeW5jX2lv X2xvd19sZXZlbC5jcHAKK0BAIC0xLDQgKzEsNCBAQAorLS8vICBDb3B5cmlnaHQgKGMpIDIwMDct MjAxMyBIYXJ0bXV0IEthaXNlcgorKy8vICBDb3B5cmlnaHQgKGMpIDIwMDctMjAyNiBIYXJ0bXV0 IEthaXNlcgorIC8vCisgLy8gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0wtMS4wCisgLy8g IERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEu MC4gKFNlZSBhY2NvbXBhbnlpbmcKK0BAIC0xNCw2ICsxNCwxNCBAQAorICNpbmNsdWRlIDxocHgv aW9fc2VydmljZS9pb19zZXJ2aWNlX3Bvb2wuaHBwPgorICNpbmNsdWRlIDxocHgvaW9zdHJlYW0u aHBwPgorIAorKyNpbmNsdWRlIDxocHgvbW9kdWxlcy9pb19zZXJ2aWNlLmhwcD4KKysKKysjaW5j bHVkZSA8YXNpby9pb19jb250ZXh0LmhwcD4KKysjaW5jbHVkZSA8YXNpby92ZXJzaW9uLmhwcD4K KysjaWYgQVNJT19WRVJTSU9OID49IDEwMzQwMAorKyNpbmNsdWRlIDxhc2lvL3Bvc3QuaHBwPgor KyNlbmRpZgorKworICNpbmNsdWRlIDxpb3N0cmVhbT4KKyAjaW5jbHVkZSA8bWVtb3J5PgorIAor QEAgLTM5LDcgKzQ3LDEyIEBAIGhweDo6ZnV0dXJlPGludD4gYXN5bmNfaW8oY2hhciBjb25zdCog c3RyaW5nX3RvX3dyaXRlKQorICAgICAgICAgaHB4OjpnZXRfcnVudGltZSgpLmdldF90aHJlYWRf cG9vbCgiaW9fcG9vbCIpOworIAorICAgICAvLyAuLi4gYW5kIHNjaGVkdWxlIHRoZSBoYW5kbGVy IHRvIHJ1biBvbiBvbmUgb2YgaXRzIE9TLXRocmVhZHMuCisrI2lmIEFTSU9fVkVSU0lPTiA+PSAx MDM0MDAKKysgICAgOjphc2lvOjpwb3N0KAorKyAgICAgICAgcG9vbC0+Z2V0X2lvX3NlcnZpY2Uo KSwgaHB4OjpiaW5kKCZkb19hc3luY19pbywgc3RyaW5nX3RvX3dyaXRlLCBwKSk7CisrI2Vsc2UK KyAgICAgcG9vbC0+Z2V0X2lvX3NlcnZpY2UoKS5wb3N0KGhweDo6YmluZCgmZG9fYXN5bmNfaW8s IHN0cmluZ190b193cml0ZSwgcCkpOworKyNlbmRpZgorIAorICAgICByZXR1cm4gcC0+Z2V0X2Z1 dHVyZSgpOworIH0KK2RpZmYgLS1naXQgYS9saWJzL2NvcmUvYXNpby9pbmNsdWRlL2hweC9hc2lv L2FzaW9fdXRpbC5ocHAgYi9saWJzL2NvcmUvYXNpby9pbmNsdWRlL2hweC9hc2lvL2FzaW9fdXRp bC5ocHAKK2luZGV4IDI4NjUzNjY5MjEwMi4uN2RhZWY1NGUwOThlIDEwMDY0NAorLS0tIGEvbGli cy9jb3JlL2FzaW8vaW5jbHVkZS9ocHgvYXNpby9hc2lvX3V0aWwuaHBwCisrKysgYi9saWJzL2Nv cmUvYXNpby9pbmNsdWRlL2hweC9hc2lvL2FzaW9fdXRpbC5ocHAKK0BAIC0xLDQgKzEsNCBAQAor LS8vICBDb3B5cmlnaHQgKGMpIDIwMDctMjAyMyBIYXJ0bXV0IEthaXNlcgorKy8vICBDb3B5cmln aHQgKGMpIDIwMDctMjAyNiBIYXJ0bXV0IEthaXNlcgorIC8vICBDb3B5cmlnaHQgKGMpIDIwMTEg ICAgICBCcnljZSBMZWxiYWNoCisgLy8KKyAvLyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJT TC0xLjAKK0BAIC0xNyw2ICsxNyw3IEBACisgI2VuZGlmCisgI2luY2x1ZGUgPGFzaW8vaW9fY29u dGV4dC5ocHA+CisgI2luY2x1ZGUgPGFzaW8vaXAvdGNwLmhwcD4KKysjaW5jbHVkZSA8YXNpby92 ZXJzaW9uLmhwcD4KKyAKKyAvKiBUaGUgYXNpbyBzdXBwb3J0IGluY2x1ZGVzIHRlcm1pb3MuaC4K KyAgKiBUaGUgdGVybWlvcy5oIGZpbGUgb24gcHBjNjRsZSBkZWZpbmVzIHRoZXNlIG1hY3Jvcywg d2hpY2gKK0BAIC0yOSwxNyArMzAsMTcgQEAgbmFtZXNwYWNlIGhweDo6dXRpbCB7CisgCisgICAg IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLworICAgICBIUFhfQ09SRV9FWFBPUlQgYm9vbCBnZXRfZW5kcG9p bnQoc3RkOjpzdHJpbmcgY29uc3QmIGFkZHIsCistICAgICAgICBzdGQ6OnVpbnQxNl90IHBvcnQs IGFzaW86OmlwOjp0Y3A6OmVuZHBvaW50JiBlcCwKKysgICAgICAgIHN0ZDo6dWludDE2X3QgcG9y dCwgOjphc2lvOjppcDo6dGNwOjplbmRwb2ludCYgZXAsCisgICAgICAgICBib29sIGZvcmNlX2lw djQgPSBmYWxzZSk7CisgCisgICAgIEhQWF9DT1JFX0VYUE9SVCBzdGQ6OnN0cmluZyBnZXRfZW5k cG9pbnRfbmFtZSgKKy0gICAgICAgIGFzaW86OmlwOjp0Y3A6OmVuZHBvaW50IGNvbnN0JiBlcCk7 CisrICAgICAgICA6OmFzaW86OmlwOjp0Y3A6OmVuZHBvaW50IGNvbnN0JiBlcCk7CisgCisgICAg IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLworICAgICAvLyBwcm9wZXJseSByZXNvbHZlIGEgZ2l2ZSBob3N0 IG5hbWUgdG8gdGhlIGNvcnJlc3BvbmRpbmcgSVAgYWRkcmVzcworLSAgICBIUFhfQ09SRV9FWFBP UlQgYXNpbzo6aXA6OnRjcDo6ZW5kcG9pbnQgcmVzb2x2ZV9ob3N0bmFtZSgKKysgICAgSFBYX0NP UkVfRVhQT1JUIDo6YXNpbzo6aXA6OnRjcDo6ZW5kcG9pbnQgcmVzb2x2ZV9ob3N0bmFtZSgKKyAg ICAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0JiBob3N0bmFtZSwgc3RkOjp1aW50MTZfdCBwb3J0LAor LSAgICAgICAgYXNpbzo6aW9fY29udGV4dCYgaW9fc2VydmljZSwgYm9vbCBmb3JjZV9pcHY0ID0g ZmFsc2UpOworKyAgICAgICAgOjphc2lvOjppb19jb250ZXh0JiBpb19zZXJ2aWNlLCBib29sIGZv cmNlX2lwdjQgPSBmYWxzZSk7CisgCisgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAvLyBy ZXR1cm4gdGhlIHB1YmxpYyBJUCBhZGRyZXNzIG9mIHRoZSBsb2NhbCBub2RlCitAQCAtNTAsNDMg KzUxLDUxIEBAIG5hbWVzcGFjZSBocHg6OnV0aWwgeworICAgICBbW25vZGlzY2FyZF1dIEhQWF9D T1JFX0VYUE9SVCBzdGQ6OnN0cmluZyBjbGVhbnVwX2lwX2FkZHJlc3MoCisgICAgICAgICBzdGQ6 OnN0cmluZyBjb25zdCYgYWRkcik7CisgCistICAgIHVzaW5nIGVuZHBvaW50X2l0ZXJhdG9yX3R5 cGUgPSBhc2lvOjppcDo6dGNwOjpyZXNvbHZlcjo6aXRlcmF0b3I7CisrICAgIG5hbWVzcGFjZSBk ZXRhaWwgeworIAorLSAgICBbW25vZGlzY2FyZF1dIGVuZHBvaW50X2l0ZXJhdG9yX3R5cGUgSFBY X0NPUkVfRVhQT1JUIGNvbm5lY3RfYmVnaW4oCisrI2lmIEFTSU9fVkVSU0lPTiA+PSAxMDM0MDAK KysgICAgICAgIHVzaW5nIGVuZHBvaW50X2l0ZXJhdG9yX3R5cGUgPQorKyAgICAgICAgICAgIDo6 YXNpbzo6aXA6OmJhc2ljX3Jlc29sdmVyX2l0ZXJhdG9yPGFzaW86OmlwOjp0Y3A+OworKyNlbHNl CisrICAgICAgICB1c2luZyBlbmRwb2ludF9pdGVyYXRvcl90eXBlID0gOjphc2lvOjppcDo6dGNw OjpyZXNvbHZlcjo6aXRlcmF0b3I7CisrI2VuZGlmCisrICAgIH0gICAgLy8gbmFtZXNwYWNlIGRl dGFpbAorKworKyAgICBbW25vZGlzY2FyZF1dIEhQWF9DT1JFX0VYUE9SVCBkZXRhaWw6OmVuZHBv aW50X2l0ZXJhdG9yX3R5cGUgY29ubmVjdF9iZWdpbigKKyAgICAgICAgIHN0ZDo6c3RyaW5nIGNv bnN0JiBhZGRyZXNzLCBzdGQ6OnVpbnQxNl90IHBvcnQsCistICAgICAgICBhc2lvOjppb19jb250 ZXh0JiBpb19zZXJ2aWNlKTsKKysgICAgICAgIDo6YXNpbzo6aW9fY29udGV4dCYgaW9fc2Vydmlj ZSk7CisgCisgICAgIC8vLyBcYnJpZWYgUmV0dXJucyBhbiBpdGVyYXRvciB3aGljaCB3aGVuIGRl cmVmZXJlbmNlZCB3aWxsIGdpdmUgYW4KKyAgICAgLy8vICAgICAgICBlbmRwb2ludCBzdWl0YWJs ZSBmb3IgYSBjYWxsIHRvIGNvbm5lY3QoKSByZWxhdGVkIHRvIHRoaXMKKyAgICAgLy8vICAgICAg ICBsb2NhbGl0eQorICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgTG9jYWxpdHk+CistICAgIFtbbm9k aXNjYXJkXV0gZW5kcG9pbnRfaXRlcmF0b3JfdHlwZSBjb25uZWN0X2JlZ2luKAorLSAgICAgICAg TG9jYWxpdHkgY29uc3QmIGxvYywgYXNpbzo6aW9fY29udGV4dCYgaW9fc2VydmljZSkKKysgICAg W1tub2Rpc2NhcmRdXSBkZXRhaWw6OmVuZHBvaW50X2l0ZXJhdG9yX3R5cGUgY29ubmVjdF9iZWdp bigKKysgICAgICAgIExvY2FsaXR5IGNvbnN0JiBsb2MsIDo6YXNpbzo6aW9fY29udGV4dCYgaW9f c2VydmljZSkKKyAgICAgeworICAgICAgICAgcmV0dXJuIGNvbm5lY3RfYmVnaW4obG9jLmFkZHJl c3MoKSwgbG9jLnBvcnQoKSwgaW9fc2VydmljZSk7CisgICAgIH0KKyAKKy0gICAgW1tub2Rpc2Nh cmRdXSBpbmxpbmUgZW5kcG9pbnRfaXRlcmF0b3JfdHlwZSBjb25uZWN0X2VuZCgpCisrICAgIFtb bm9kaXNjYXJkXV0gaW5saW5lIGRldGFpbDo6ZW5kcG9pbnRfaXRlcmF0b3JfdHlwZSBjb25uZWN0 X2VuZCgpCisgICAgIHsKKyAgICAgICAgIHJldHVybiB7fTsKKyAgICAgfQorIAorLSAgICBbW25v ZGlzY2FyZF1dIGVuZHBvaW50X2l0ZXJhdG9yX3R5cGUgSFBYX0NPUkVfRVhQT1JUIGFjY2VwdF9i ZWdpbigKKysgICAgW1tub2Rpc2NhcmRdXSBIUFhfQ09SRV9FWFBPUlQgZGV0YWlsOjplbmRwb2lu dF9pdGVyYXRvcl90eXBlIGFjY2VwdF9iZWdpbigKKyAgICAgICAgIHN0ZDo6c3RyaW5nIGNvbnN0 JiBhZGRyZXNzLCBzdGQ6OnVpbnQxNl90IHBvcnQsCistICAgICAgICBhc2lvOjppb19jb250ZXh0 JiBpb19zZXJ2aWNlKTsKKysgICAgICAgIDo6YXNpbzo6aW9fY29udGV4dCYgaW9fc2VydmljZSk7 CisgCisgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgICAvLy8gXGJyaWVmIFJldHVybnMgYW4g aXRlcmF0b3Igd2hpY2ggd2hlbiBkZXJlZmVyZW5jZWQgd2lsbCBnaXZlIGFuCisgICAgIC8vLyAg ICAgICAgZW5kcG9pbnQgc3VpdGFibGUgZm9yIGEgY2FsbCB0byBhY2NlcHQoKSByZWxhdGVkIHRv IHRoaXMKKyAgICAgLy8vICAgICAgICBsb2NhbGl0eQorICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUg TG9jYWxpdHk+CistICAgIFtbbm9kaXNjYXJkXV0gZW5kcG9pbnRfaXRlcmF0b3JfdHlwZSBhY2Nl cHRfYmVnaW4oCistICAgICAgICBMb2NhbGl0eSBjb25zdCYgbG9jLCBhc2lvOjppb19jb250ZXh0 JiBpb19zZXJ2aWNlKQorKyAgICBbW25vZGlzY2FyZF1dIGRldGFpbDo6ZW5kcG9pbnRfaXRlcmF0 b3JfdHlwZSBhY2NlcHRfYmVnaW4oCisrICAgICAgICBMb2NhbGl0eSBjb25zdCYgbG9jLCA6OmFz aW86OmlvX2NvbnRleHQmIGlvX3NlcnZpY2UpCisgICAgIHsKKyAgICAgICAgIHJldHVybiBhY2Nl cHRfYmVnaW4obG9jLmFkZHJlc3MoKSwgbG9jLnBvcnQoKSwgaW9fc2VydmljZSk7CisgICAgIH0K KyAKKy0gICAgW1tub2Rpc2NhcmRdXSBpbmxpbmUgZW5kcG9pbnRfaXRlcmF0b3JfdHlwZSBhY2Nl cHRfZW5kKCkgICAgLy8tVjUyNAorKyAgICBbW25vZGlzY2FyZF1dIGlubGluZSBkZXRhaWw6OmVu ZHBvaW50X2l0ZXJhdG9yX3R5cGUgYWNjZXB0X2VuZCgpICAgIC8vLVY1MjQKKyAgICAgeworICAg ICAgICAgcmV0dXJuIHt9OworICAgICB9CitkaWZmIC0tZ2l0IGEvbGlicy9jb3JlL2FzaW8vc3Jj L2FzaW9fdXRpbC5jcHAgYi9saWJzL2NvcmUvYXNpby9zcmMvYXNpb191dGlsLmNwcAoraW5kZXgg YjU0NDNlNWRmYTRlLi41ZDk4ZWNlMWQ1NTMgMTAwNjQ0CistLS0gYS9saWJzL2NvcmUvYXNpby9z cmMvYXNpb191dGlsLmNwcAorKysrIGIvbGlicy9jb3JlL2FzaW8vc3JjL2FzaW9fdXRpbC5jcHAK K0BAIC0xLDQgKzEsNCBAQAorLS8vICBDb3B5cmlnaHQgKGMpIDIwMDctMjAyMyBIYXJ0bXV0IEth aXNlcgorKy8vICBDb3B5cmlnaHQgKGMpIDIwMDctMjAyNiBIYXJ0bXV0IEthaXNlcgorIC8vICBD b3B5cmlnaHQgKGMpICAgICAgMjAxMSBCcnljZSBMZWxiYWNoCisgLy8KKyAvLyAgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEJTTC0xLjAKK0BAIC0yNiw3ICsyNiw5IEBACisgI2luY2x1ZGUgPGFz aW8vaXAvaG9zdF9uYW1lLmhwcD4KKyAjaW5jbHVkZSA8YXNpby9pcC90Y3AuaHBwPgorIAorKyNp bmNsdWRlIDxjc3RkaW50PgorICNpbmNsdWRlIDxleGNlcHRpb24+CisrI2luY2x1ZGUgPHN0cmlu Zz4KKyAjaW5jbHVkZSA8c3lzdGVtX2Vycm9yPgorIAorICNpZiBkZWZpbmVkKEhQWF9XSU5ET1dT KSAmJiAhZGVmaW5lZChIUFhfSEFWRV9TVEFUSUNfTElOS0lORykKK0BAIC0zOSwyMyArNDEsMzAg QEAKKyAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6IDQwNzMpCisgI2VuZGlmCisgI3ByYWdtYSBp bml0X3NlZyhsaWIpCistYXNpbzo6ZGV0YWlsOjp3aW5zb2NrX2luaXQ8Pjo6bWFudWFsIG1hbnVh bF93aW5zb2NrX2luaXQ7CisrOjphc2lvOjpkZXRhaWw6OndpbnNvY2tfaW5pdDw+OjptYW51YWwg bWFudWFsX3dpbnNvY2tfaW5pdDsKKyAjaWYgZGVmaW5lZChIUFhfTVNWQ19XQVJOSU5HX1BSQUdN QSkKKyAjcHJhZ21hIHdhcm5pbmcocG9wKQorICNlbmRpZgorICNlbmRpZgorIAorKyNpbmNsdWRl IDxocHgvY29uZmlnL3dhcm5pbmdzX3ByZWZpeC5ocHA+CisrCisgLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLworIG5hbWVzcGFjZSBocHg6OnV0aWwgeworIAorICAgICAvLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K KyAgICAgYm9vbCBnZXRfZW5kcG9pbnQoc3RkOjpzdHJpbmcgY29uc3QmIGFkZHIsIHN0ZDo6dWlu dDE2X3QgcG9ydCwKKy0gICAgICAgIGFzaW86OmlwOjp0Y3A6OmVuZHBvaW50JiBlcCwgYm9vbCBm b3JjZV9pcHY0KQorKyAgICAgICAgOjphc2lvOjppcDo6dGNwOjplbmRwb2ludCYgZXAsIGJvb2wg Zm9yY2VfaXB2NCkKKyAgICAgeworLSAgICAgICAgdXNpbmcgbmFtZXNwYWNlIGFzaW86OmlwOwor KyAgICAgICAgdXNpbmcgbmFtZXNwYWNlIDo6YXNpbzo6aXA7CisgICAgICAgICBzdGQ6OmVycm9y X2NvZGUgZWM7CisrI2lmIEFTSU9fVkVSU0lPTiA+PSAxMDM0MDAKKysgICAgICAgIGFkZHJlc3Nf djQgY29uc3QgYWRkcjQgPSAgICAvLy1WODIxCisrICAgICAgICAgICAgbWFrZV9hZGRyZXNzX3Y0 KGFkZHIuY19zdHIoKSwgZWMpOworKyNlbHNlCisgICAgICAgICBhZGRyZXNzX3Y0IGNvbnN0IGFk ZHI0ID0gICAgLy8tVjgyMQorICAgICAgICAgICAgIGFkZHJlc3NfdjQ6OmZyb21fc3RyaW5nKGFk ZHIuY19zdHIoKSwgZWMpOworKyNlbmRpZgorICAgICAgICAgaWYgKCFlYykKKyAgICAgICAgIHsg ICAgLy8gaXQncyBhbiBJUFY0IGFkZHJlc3MKKyAgICAgICAgICAgICBlcCA9IHRjcDo6ZW5kcG9p bnQoYWRkcmVzcyhhZGRyNCksIHBvcnQpOworQEAgLTY0LDggKzczLDEzIEBAIG5hbWVzcGFjZSBo cHg6OnV0aWwgeworIAorICAgICAgICAgaWYgKCFmb3JjZV9pcHY0KQorICAgICAgICAgeworKyNp ZiBBU0lPX1ZFUlNJT04gPj0gMTAzNDAwCisrICAgICAgICAgICAgYWRkcmVzc192NiBjb25zdCBh ZGRyNiA9ICAgIC8vLVY4MjEKKysgICAgICAgICAgICAgICAgbWFrZV9hZGRyZXNzX3Y2KGFkZHIu Y19zdHIoKSwgZWMpOworKyNlbHNlCisgICAgICAgICAgICAgYWRkcmVzc192NiBjb25zdCBhZGRy NiA9ICAgIC8vLVY4MjEKKyAgICAgICAgICAgICAgICAgYWRkcmVzc192Njo6ZnJvbV9zdHJpbmco YWRkci5jX3N0cigpLCBlYyk7CisrI2VuZGlmCisgICAgICAgICAgICAgaWYgKCFlYykKKyAgICAg ICAgICAgICB7ICAgIC8vIGl0J3MgYW4gSVBWNiBhZGRyZXNzCisgICAgICAgICAgICAgICAgIGVw ID0gdGNwOjplbmRwb2ludChhZGRyZXNzKGFkZHI2KSwgcG9ydCk7CitAQCAtNzYsMTcgKzkwLDE3 IEBAIG5hbWVzcGFjZSBocHg6OnV0aWwgeworICAgICB9CisgCisgICAgIC8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLworLSAgICBzdGQ6OnN0cmluZyBnZXRfZW5kcG9pbnRfbmFtZShhc2lvOjppcDo6dGNwOjpl bmRwb2ludCBjb25zdCYgZXApCisrICAgIHN0ZDo6c3RyaW5nIGdldF9lbmRwb2ludF9uYW1lKDo6 YXNpbzo6aXA6OnRjcDo6ZW5kcG9pbnQgY29uc3QmIGVwKQorICAgICB7CisgICAgICAgICByZXR1 cm4gZXAuYWRkcmVzcygpLnRvX3N0cmluZygpOworICAgICB9CisgCisgICAgIC8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLworICAgICAvLyBwcm9wZXJseSByZXNvbHZlIGEgZ2l2ZSBob3N0IG5hbWUgdG8gdGhl IGNvcnJlc3BvbmRpbmcgSVAgYWRkcmVzcworLSAgICBhc2lvOjppcDo6dGNwOjplbmRwb2ludCBy ZXNvbHZlX2hvc3RuYW1lKHN0ZDo6c3RyaW5nIGNvbnN0JiBob3N0bmFtZSwKKy0gICAgICAgIHN0 ZDo6dWludDE2X3QgcG9ydCwgYXNpbzo6aW9fY29udGV4dCYgaW9fc2VydmljZSwgYm9vbCBmb3Jj ZV9pcHY0KQorKyAgICA6OmFzaW86OmlwOjp0Y3A6OmVuZHBvaW50IHJlc29sdmVfaG9zdG5hbWUo c3RkOjpzdHJpbmcgY29uc3QmIGhvc3RuYW1lLAorKyAgICAgICAgc3RkOjp1aW50MTZfdCBwb3J0 LCA6OmFzaW86OmlvX2NvbnRleHQmIGlvX3NlcnZpY2UsIGJvb2wgZm9yY2VfaXB2NCkKKyAgICAg eworLSAgICAgICAgdXNpbmcgYXNpbzo6aXA6OnRjcDsKKysgICAgICAgIHVzaW5nIDo6YXNpbzo6 aXA6OnRjcDsKKyAKKyAgICAgICAgIC8vIGNvbGxlY3QgZXJyb3JzIGhlcmUKKyAgICAgICAgIGV4 Y2VwdGlvbl9saXN0IGVycm9yczsKK0BAIC0xMDgsOSArMTIyLDI3IEBAIG5hbWVzcGFjZSBocHg6 OnV0aWwgeworICAgICAgICAgeworICAgICAgICAgICAgIC8vIHJlc29sdmUgdGhlIGdpdmVuIGFk ZHJlc3MKKyAgICAgICAgICAgICB0Y3A6OnJlc29sdmVyIHJlc29sdmVyKGlvX3NlcnZpY2UpOwor LSAgICAgICAgICAgIHRjcDo6cmVzb2x2ZXI6OnF1ZXJ5IHF1ZXJ5KGhvc3RuYW1lLCBzdGQ6OnRv X3N0cmluZyhwb3J0KSk7CisgCistICAgICAgICAgICAgYXNpbzo6aXA6OnRjcDo6cmVzb2x2ZXI6 Oml0ZXJhdG9yIGl0ID0gcmVzb2x2ZXIucmVzb2x2ZShxdWVyeSk7CisrI2lmIEFTSU9fVkVSU0lP TiA+PSAxMDM0MDAKKysgICAgICAgICAgICBhdXRvIHJlc29sdmVyX3Jlc3VsdHMgPSByZXNvbHZl ci5yZXNvbHZlKAorKyAgICAgICAgICAgICAgICA6OmFzaW86OmlwOjp0Y3A6OnY0KCksIGhvc3Ru YW1lLCBzdGQ6OnRvX3N0cmluZyhwb3J0KSk7CisrCisrICAgICAgICAgICAgYXV0byBpdCA9IHJl c29sdmVyX3Jlc3VsdHMuYmVnaW4oKTsKKysgICAgICAgICAgICBhdXRvIGVuZCA9IHJlc29sdmVy X3Jlc3VsdHMuYmVnaW4oKTsKKysKKysgICAgICAgICAgICAvLyBza2lwIGlwdjYgcmVzdWx0cywg aWYgcmVxdWlyZWQKKysgICAgICAgICAgICBpZiAoaXQgPT0gZW5kICYmICFmb3JjZV9pcHY0KQor KyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgcmVzb2x2ZXJfcmVzdWx0cyA9IHJlc29s dmVyLnJlc29sdmUoCisrICAgICAgICAgICAgICAgICAgICA6OmFzaW86OmlwOjp0Y3A6OnY2KCks IGhvc3RuYW1lLCBzdGQ6OnRvX3N0cmluZyhwb3J0KSk7CisrICAgICAgICAgICAgICAgIGl0ID0g cmVzb2x2ZXJfcmVzdWx0cy5iZWdpbigpOworKyAgICAgICAgICAgIH0KKysKKysgICAgICAgICAg ICBIUFhfQVNTRVJUKGl0ICE9IGVuZCk7CisrICAgICAgICAgICAgcmV0dXJuICppdDsKKysjZWxz ZQorKyAgICAgICAgICAgIHRjcDo6cmVzb2x2ZXI6OnF1ZXJ5IHF1ZXJ5KGhvc3RuYW1lLCBzdGQ6 OnRvX3N0cmluZyhwb3J0KSk7CisrICAgICAgICAgICAgOjphc2lvOjppcDo6dGNwOjpyZXNvbHZl cjo6aXRlcmF0b3IgaXQgPSByZXNvbHZlci5yZXNvbHZlKHF1ZXJ5KTsKKyAKKyAgICAgICAgICAg ICAvLyBza2lwIGlwdjYgcmVzdWx0cywgaWYgcmVxdWlyZWQKKyAgICAgICAgICAgICBpZiAoZm9y Y2VfaXB2NCkKK0BAIC0xMjEsOSArMTUzLDkgQEAgbmFtZXNwYWNlIGhweDo6dXRpbCB7CisgICAg ICAgICAgICAgICAgICAgICArK2l0OworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg fQorLQorLSAgICAgICAgICAgIEhQWF9BU1NFUlQoaXQgIT0gYXNpbzo6aXA6OnRjcDo6cmVzb2x2 ZXI6Oml0ZXJhdG9yKCkpOworKyAgICAgICAgICAgIEhQWF9BU1NFUlQoaXQgIT0gOjphc2lvOjpp cDo6dGNwOjpyZXNvbHZlcjo6aXRlcmF0b3IoKSk7CisgICAgICAgICAgICAgcmV0dXJuICppdDsK KysjZW5kaWYKKyAgICAgICAgIH0KKyAgICAgICAgIGNhdGNoIChzdGQ6OnN5c3RlbV9lcnJvciBj b25zdCYpCisgICAgICAgICB7CitAQCAtMTQwLDE3ICsxNzIsMzAgQEAgbmFtZXNwYWNlIGhweDo6 dXRpbCB7CisgICAgIC8vIHJldHVybiB0aGUgcHVibGljIElQIGFkZHJlc3Mgb2YgdGhlIGxvY2Fs IG5vZGUKKyAgICAgc3RkOjpzdHJpbmcgcmVzb2x2ZV9wdWJsaWNfaXBfYWRkcmVzcygpCisgICAg IHsKKy0gICAgICAgIHVzaW5nIGFzaW86OmlwOjp0Y3A7CisrICAgICAgICB1c2luZyA6OmFzaW86 OmlwOjp0Y3A7CisgCisgICAgICAgICAvLyBjb2xsZWN0IGVycm9ycyBoZXJlCisgICAgICAgICBl eGNlcHRpb25fbGlzdCBlcnJvcnM7CisgCisgICAgICAgICB0cnkKKyAgICAgICAgIHsKKy0gICAg ICAgICAgICBhc2lvOjppb19jb250ZXh0IGlvX3NlcnZpY2U7CisrICAgICAgICAgICAgOjphc2lv Ojppb19jb250ZXh0IGlvX3NlcnZpY2U7CisgICAgICAgICAgICAgdGNwOjpyZXNvbHZlciByZXNv bHZlcihpb19zZXJ2aWNlKTsKKy0gICAgICAgICAgICB0Y3A6OnJlc29sdmVyOjpxdWVyeSBxdWVy eShhc2lvOjppcDo6aG9zdF9uYW1lKCksICIiKTsKKysKKysjaWYgQVNJT19WRVJTSU9OID49IDEw MzQwMAorKyAgICAgICAgICAgIGF1dG8gcmVzb2x2ZXJfcmVzdWx0cyA9IHJlc29sdmVyLnJlc29s dmUoCisrICAgICAgICAgICAgICAgIDo6YXNpbzo6aXA6OnRjcDo6djQoKSwgYXNpbzo6aXA6Omhv c3RfbmFtZSgpLCAiIik7CisrICAgICAgICAgICAgYXV0byBpdCA9IHJlc29sdmVyX3Jlc3VsdHMu YmVnaW4oKTsKKysgICAgICAgICAgICBpZiAoaXQgPT0gcmVzb2x2ZXJfcmVzdWx0cy5lbmQoKSkK KysgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAgIHJlc29sdmVyX3Jlc3VsdHMgPSByZXNv bHZlci5yZXNvbHZlKAorKyAgICAgICAgICAgICAgICAgICAgOjphc2lvOjppcDo6dGNwOjp2Nigp LCBhc2lvOjppcDo6aG9zdF9uYW1lKCksICIiKTsKKysgICAgICAgICAgICAgICAgaXQgPSByZXNv bHZlcl9yZXN1bHRzLmJlZ2luKCk7CisrICAgICAgICAgICAgfQorKyNlbHNlCisrICAgICAgICAg ICAgdGNwOjpyZXNvbHZlcjo6cXVlcnkgcXVlcnkoOjphc2lvOjppcDo6aG9zdF9uYW1lKCksICIi KTsKKyAgICAgICAgICAgICB0Y3A6OnJlc29sdmVyOjppdGVyYXRvciBpdCA9IHJlc29sdmVyLnJl c29sdmUocXVlcnkpOworKyNlbmRpZgorICAgICAgICAgICAgIHRjcDo6ZW5kcG9pbnQgZW5kcG9p bnQgPSAqaXQ7CisgICAgICAgICAgICAgcmV0dXJuIGVuZHBvaW50LmFkZHJlc3MoKS50b19zdHJp bmcoKTsKKyAgICAgICAgIH0KK0BAIC0xODQsNyArMjI5LDcgQEAgbmFtZXNwYWNlIGhweDo6dXRp bCB7CisgICAgICAgICBmb3IgKC8qKi87IGkgPCAyOyArK2kpCisgICAgICAgICB7CisgI2lmIGRl ZmluZWQoSFBYX1dJTkRPV1MpCistICAgICAgICAgICAgaW50IGNvbnN0IHMgPSBhc2lvOjpkZXRh aWw6OnNvY2tldF9vcHM6OmluZXRfcHRvbigKKysgICAgICAgICAgICBpbnQgY29uc3QgcyA9IDo6 YXNpbzo6ZGV0YWlsOjpzb2NrZXRfb3BzOjppbmV0X3B0b24oCisgICAgICAgICAgICAgICAgIGRv bWFpbltpXSwgYWRkci5kYXRhKCksIGJ1ZiwgJnNjb3BlX2lkLCBlYyk7CisgICAgICAgICAgICAg aWYgKHMgPiAwICYmICFlYykKKyAgICAgICAgICAgICAgICAgYnJlYWs7CitAQCAtMjAxLDcgKzI0 Niw3IEBAIG5hbWVzcGFjZSBocHg6OnV0aWwgeworICAgICAgICAgfQorIAorICNpZiBkZWZpbmVk KEhQWF9XSU5ET1dTKQorLSAgICAgICAgaWYgKGFzaW86OmRldGFpbDo6c29ja2V0X29wczo6aW5l dF9udG9wKAorKyAgICAgICAgaWYgKDo6YXNpbzo6ZGV0YWlsOjpzb2NrZXRfb3BzOjppbmV0X250 b3AoCisgICAgICAgICAgICAgICAgIGRvbWFpbltpXSwgYnVmLCBzdHIsIElORVQ2X0FERFJTVFJM RU4sIHNjb3BlX2lkLCBlYykgPT0gbnVsbHB0cikKKyAgICAgICAgIHsKKyAjZWxzZQorQEAgLTIx NCwxMCArMjU5LDEwIEBAIG5hbWVzcGFjZSBocHg6OnV0aWwgeworICAgICAgICAgcmV0dXJuIHtz dHJ9OworICAgICB9CisgCistICAgIGVuZHBvaW50X2l0ZXJhdG9yX3R5cGUgY29ubmVjdF9iZWdp bihzdGQ6OnN0cmluZyBjb25zdCYgYWRkcmVzcywKKy0gICAgICAgIHN0ZDo6dWludDE2X3QgcG9y dCwgYXNpbzo6aW9fY29udGV4dCYgaW9fc2VydmljZSkKKysgICAgZGV0YWlsOjplbmRwb2ludF9p dGVyYXRvcl90eXBlIGNvbm5lY3RfYmVnaW4oc3RkOjpzdHJpbmcgY29uc3QmIGFkZHJlc3MsCisr ICAgICAgICBzdGQ6OnVpbnQxNl90IHBvcnQsIDo6YXNpbzo6aW9fY29udGV4dCYgaW9fc2Vydmlj ZSkKKyAgICAgeworLSAgICAgICAgdXNpbmcgYXNpbzo6aXA6OnRjcDsKKysgICAgICAgIHVzaW5n IDo6YXNpbzo6aXA6OnRjcDsKKyAKKyAgICAgICAgIC8vIGNvbGxlY3QgZXJyb3JzIGhlcmUKKyAg ICAgICAgIGV4Y2VwdGlvbl9saXN0IGVycm9yczsKK0BAIC0yMzAsOCArMjc1LDE0IEBAIG5hbWVz cGFjZSBocHg6OnV0aWwgeworICAgICAgICAgICAgIHRjcDo6ZW5kcG9pbnQgZXA7CisgICAgICAg ICAgICAgaWYgKHV0aWw6OmdldF9lbmRwb2ludChhZGRyZXNzLCBwb3J0LCBlcCkpCisgICAgICAg ICAgICAgeworKyNpZiBBU0lPX1ZFUlNJT04gPj0gMTAzNDAwCisrICAgICAgICAgICAgICAgIGF1 dG8gcmVzb2x2ZXJfcmVzdWx0cyA9CisrICAgICAgICAgICAgICAgICAgICB0Y3A6OnJlc29sdmVy OjpyZXN1bHRzX3R5cGU6OmNyZWF0ZShlcCwgYWRkcmVzcywgcG9ydF9zdHIpOworKyAgICAgICAg ICAgICAgICByZXR1cm4gcmVzb2x2ZXJfcmVzdWx0cy5iZWdpbigpOworKyNlbHNlCisgICAgICAg ICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgICAgICB0Y3A6OnJlc29sdmVyOjpy ZXN1bHRzX3R5cGU6OmNyZWF0ZShlcCwgYWRkcmVzcywgcG9ydF9zdHIpfTsKKysjZW5kaWYKKyAg ICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgICBjYXRjaCAoc3RkOjpzeXN0ZW1fZXJy b3IgY29uc3QmKQorQEAgLTI0NCwxMCArMjk1LDI0IEBAIG5hbWVzcGFjZSBocHg6OnV0aWwgewor ICAgICAgICAgeworICAgICAgICAgICAgIC8vIHJlc29sdmUgdGhlIGdpdmVuIGFkZHJlc3MKKyAg ICAgICAgICAgICB0Y3A6OnJlc29sdmVyIHJlc29sdmVyKGlvX3NlcnZpY2UpOworLSAgICAgICAg ICAgIHRjcDo6cmVzb2x2ZXI6OnF1ZXJ5IHF1ZXJ5KAorLSAgICAgICAgICAgICAgICAhYWRkcmVz cy5lbXB0eSgpID8gYWRkcmVzcyA6IGFzaW86OmlwOjpob3N0X25hbWUoKSwgcG9ydF9zdHIpOwor IAorKyNpZiBBU0lPX1ZFUlNJT04gPj0gMTAzNDAwCisrICAgICAgICAgICAgYXV0byByZXNvbHZl cl9yZXN1bHRzID0gcmVzb2x2ZXIucmVzb2x2ZSg6OmFzaW86OmlwOjp0Y3A6OnY0KCksCisrICAg ICAgICAgICAgICAgICFhZGRyZXNzLmVtcHR5KCkgPyBhZGRyZXNzIDogOjphc2lvOjppcDo6aG9z dF9uYW1lKCksIHBvcnRfc3RyKTsKKysgICAgICAgICAgICBhdXRvIGl0ID0gcmVzb2x2ZXJfcmVz dWx0cy5iZWdpbigpOworKyAgICAgICAgICAgIGlmIChpdCA9PSByZXNvbHZlcl9yZXN1bHRzLmVu ZCgpKQorKyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgcmVzb2x2ZXJfcmVzdWx0cyA9 IHJlc29sdmVyLnJlc29sdmUoOjphc2lvOjppcDo6dGNwOjp2NigpLAorKyAgICAgICAgICAgICAg ICAgICAgIWFkZHJlc3MuZW1wdHkoKSA/IGFkZHJlc3MgOiA6OmFzaW86OmlwOjpob3N0X25hbWUo KSwKKysgICAgICAgICAgICAgICAgICAgIHBvcnRfc3RyKTsKKysgICAgICAgICAgICAgICAgaXQg PSByZXNvbHZlcl9yZXN1bHRzLmJlZ2luKCk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAg IHJldHVybiBpdDsKKysjZWxzZQorKyAgICAgICAgICAgIHRjcDo6cmVzb2x2ZXI6OnF1ZXJ5IHF1 ZXJ5KAorKyAgICAgICAgICAgICAgICAhYWRkcmVzcy5lbXB0eSgpID8gYWRkcmVzcyA6IDo6YXNp bzo6aXA6Omhvc3RfbmFtZSgpLCBwb3J0X3N0cik7CisgICAgICAgICAgICAgcmV0dXJuIHtyZXNv bHZlci5yZXNvbHZlKHF1ZXJ5KX07CisrI2VuZGlmCisgICAgICAgICB9CisgICAgICAgICBjYXRj aCAoc3RkOjpzeXN0ZW1fZXJyb3IgY29uc3QmKQorICAgICAgICAgeworQEAgLTI2MCwxMCArMzI1 LDEwIEBAIG5hbWVzcGFjZSBocHg6OnV0aWwgeworICAgICAgICAgICAgIGFkZHJlc3MsIHBvcnQp OworICAgICB9CisgCistICAgIGVuZHBvaW50X2l0ZXJhdG9yX3R5cGUgYWNjZXB0X2JlZ2luKHN0 ZDo6c3RyaW5nIGNvbnN0JiBhZGRyZXNzLAorLSAgICAgICAgc3RkOjp1aW50MTZfdCBwb3J0LCBh c2lvOjppb19jb250ZXh0JiBpb19zZXJ2aWNlKQorKyAgICBkZXRhaWw6OmVuZHBvaW50X2l0ZXJh dG9yX3R5cGUgYWNjZXB0X2JlZ2luKHN0ZDo6c3RyaW5nIGNvbnN0JiBhZGRyZXNzLAorKyAgICAg ICAgc3RkOjp1aW50MTZfdCBwb3J0LCA6OmFzaW86OmlvX2NvbnRleHQmIGlvX3NlcnZpY2UpCisg ICAgIHsKKy0gICAgICAgIHVzaW5nIGFzaW86OmlwOjp0Y3A7CisrICAgICAgICB1c2luZyA6OmFz aW86OmlwOjp0Y3A7CisgCisgICAgICAgICAvLyBjb2xsZWN0IGVycm9ycyBoZXJlCisgICAgICAg ICBleGNlcHRpb25fbGlzdCBlcnJvcnM7CitAQCAtMjc2LDggKzM0MSwxNCBAQCBuYW1lc3BhY2Ug aHB4Ojp1dGlsIHsKKyAgICAgICAgICAgICB0Y3A6OmVuZHBvaW50IGVwOworICAgICAgICAgICAg IGlmICh1dGlsOjpnZXRfZW5kcG9pbnQoYWRkcmVzcywgcG9ydCwgZXApKQorICAgICAgICAgICAg IHsKKysjaWYgQVNJT19WRVJTSU9OID49IDEwMzQwMAorKyAgICAgICAgICAgICAgICBhdXRvIHJl c29sdmVyX3Jlc3VsdHMgPQorKyAgICAgICAgICAgICAgICAgICAgdGNwOjpyZXNvbHZlcjo6cmVz dWx0c190eXBlOjpjcmVhdGUoZXAsIGFkZHJlc3MsIHBvcnRfc3RyKTsKKysgICAgICAgICAgICAg ICAgcmV0dXJuIHJlc29sdmVyX3Jlc3VsdHMuYmVnaW4oKTsKKysjZWxzZQorICAgICAgICAgICAg ICAgICByZXR1cm4geworICAgICAgICAgICAgICAgICAgICAgdGNwOjpyZXNvbHZlcjo6cmVzdWx0 c190eXBlOjpjcmVhdGUoZXAsIGFkZHJlc3MsIHBvcnRfc3RyKX07CisrI2VuZGlmCisgICAgICAg ICAgICAgfQorICAgICAgICAgfQorICAgICAgICAgY2F0Y2ggKHN0ZDo6c3lzdGVtX2Vycm9yIGNv bnN0JikKK0BAIC0yOTAsOSArMzYxLDIxIEBAIG5hbWVzcGFjZSBocHg6OnV0aWwgeworICAgICAg ICAgeworICAgICAgICAgICAgIC8vIHJlc29sdmUgdGhlIGdpdmVuIGFkZHJlc3MKKyAgICAgICAg ICAgICB0Y3A6OnJlc29sdmVyIHJlc29sdmVyKGlvX3NlcnZpY2UpOworKyNpZiBBU0lPX1ZFUlNJ T04gPj0gMTAzNDAwCisrICAgICAgICAgICAgYXV0byByZXNvbHZlcl9yZXN1bHRzID0KKysgICAg ICAgICAgICAgICAgcmVzb2x2ZXIucmVzb2x2ZSg6OmFzaW86OmlwOjp0Y3A6OnY0KCksIGFkZHJl c3MsIHBvcnRfc3RyKTsKKysgICAgICAgICAgICBhdXRvIGl0ID0gcmVzb2x2ZXJfcmVzdWx0cy5i ZWdpbigpOworKyAgICAgICAgICAgIGlmIChpdCA9PSByZXNvbHZlcl9yZXN1bHRzLmVuZCgpKQor KyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgcmVzb2x2ZXJfcmVzdWx0cyA9CisrICAg ICAgICAgICAgICAgICAgICByZXNvbHZlci5yZXNvbHZlKDo6YXNpbzo6aXA6OnRjcDo6djYoKSwg YWRkcmVzcywgcG9ydF9zdHIpOworKyAgICAgICAgICAgICAgICBpdCA9IHJlc29sdmVyX3Jlc3Vs dHMuYmVnaW4oKTsKKysgICAgICAgICAgICB9CisrICAgICAgICAgICAgcmV0dXJuIGl0OworKyNl bHNlCisgICAgICAgICAgICAgdGNwOjpyZXNvbHZlcjo6cXVlcnkgcXVlcnkoYWRkcmVzcywgcG9y dF9zdHIpOworLQorICAgICAgICAgICAgIHJldHVybiB7cmVzb2x2ZXIucmVzb2x2ZShxdWVyeSl9 OworKyNlbmRpZgorICAgICAgICAgfQorICAgICAgICAgY2F0Y2ggKHN0ZDo6c3lzdGVtX2Vycm9y IGNvbnN0JikKKyAgICAgICAgIHsKK0BAIC0zMDYsOSArMzg5LDIyIEBAIG5hbWVzcGFjZSBocHg6 OnV0aWwgeworICAgICAgICAgeworICAgICAgICAgICAgIC8vIHJlc29sdmUgdGhlIGdpdmVuIGFk ZHJlc3MKKyAgICAgICAgICAgICB0Y3A6OnJlc29sdmVyIHJlc29sdmVyKGlvX3NlcnZpY2UpOwor LSAgICAgICAgICAgIHRjcDo6cmVzb2x2ZXI6OnF1ZXJ5IHF1ZXJ5KGFzaW86OmlwOjpob3N0X25h bWUoKSwgcG9ydF9zdHIpOworIAorKyNpZiBBU0lPX1ZFUlNJT04gPj0gMTAzNDAwCisrICAgICAg ICAgICAgYXV0byByZXNvbHZlcl9yZXN1bHRzID0gcmVzb2x2ZXIucmVzb2x2ZSgKKysgICAgICAg ICAgICAgICAgOjphc2lvOjppcDo6dGNwOjp2NCgpLCA6OmFzaW86OmlwOjpob3N0X25hbWUoKSwg cG9ydF9zdHIpOworKyAgICAgICAgICAgIGF1dG8gaXQgPSByZXNvbHZlcl9yZXN1bHRzLmJlZ2lu KCk7CisrICAgICAgICAgICAgaWYgKGl0ID09IHJlc29sdmVyX3Jlc3VsdHMuZW5kKCkpCisrICAg ICAgICAgICAgeworKyAgICAgICAgICAgICAgICByZXNvbHZlcl9yZXN1bHRzID0gcmVzb2x2ZXIu cmVzb2x2ZSgKKysgICAgICAgICAgICAgICAgICAgIDo6YXNpbzo6aXA6OnRjcDo6djYoKSwgOjph c2lvOjppcDo6aG9zdF9uYW1lKCksIHBvcnRfc3RyKTsKKysgICAgICAgICAgICAgICAgaXQgPSBy ZXNvbHZlcl9yZXN1bHRzLmJlZ2luKCk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIHJl dHVybiBpdDsKKysjZWxzZQorKyAgICAgICAgICAgIHRjcDo6cmVzb2x2ZXI6OnF1ZXJ5IHF1ZXJ5 KDo6YXNpbzo6aXA6Omhvc3RfbmFtZSgpLCBwb3J0X3N0cik7CisgICAgICAgICAgICAgcmV0dXJu IHtyZXNvbHZlci5yZXNvbHZlKHF1ZXJ5KX07CisrI2VuZGlmCisgICAgICAgICB9CisgICAgICAg ICBjYXRjaCAoc3RkOjpzeXN0ZW1fZXJyb3IgY29uc3QmKQorICAgICAgICAgeworQEAgLTM5NCwz ICs0OTAsNSBAQCBuYW1lc3BhY2UgaHB4Ojp1dGlsIHsKKyAgICAgICAgIHJldHVybiB0cnVlOwor ICAgICB9CisgfSAgICAvLyBuYW1lc3BhY2UgaHB4Ojp1dGlsCisrCisrI2luY2x1ZGUgPGhweC9j b25maWcvd2FybmluZ3Nfc3VmZml4LmhwcD4KK2RpZmYgLS1naXQgYS9saWJzL2NvcmUvYXNpby9z cmMvbWFwX2hvc3RuYW1lcy5jcHAgYi9saWJzL2NvcmUvYXNpby9zcmMvbWFwX2hvc3RuYW1lcy5j cHAKK2luZGV4IDE1NmM0MGEwM2RmMi4uNzkzZDExMzRjOTZhIDEwMDY0NAorLS0tIGEvbGlicy9j b3JlL2FzaW8vc3JjL21hcF9ob3N0bmFtZXMuY3BwCisrKysgYi9saWJzL2NvcmUvYXNpby9zcmMv bWFwX2hvc3RuYW1lcy5jcHAKK0BAIC0xLDQgKzEsNCBAQAorLS8vICBDb3B5cmlnaHQgKGMpIDIw MDctMjAyMyBIYXJ0bXV0IEthaXNlcgorKy8vICBDb3B5cmlnaHQgKGMpIDIwMDctMjAyNiBIYXJ0 bXV0IEthaXNlcgorIC8vCisgLy8gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0wtMS4wCisg Ly8gIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9u IDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcKK0BAIC00NCw4ICs0NCw4IEBAIG5hbWVzcGFjZSBocHg6 OnV0aWwgeworICAgICAgICAgfQorIAorICAgICAgICAgLy8gZG8gZnVsbCBob3N0IG5hbWUgcmVz b2x1dGlvbgorLSAgICAgICAgYXNpbzo6aW9fY29udGV4dCBpb19zZXJ2aWNlOworLSAgICAgICAg YXNpbzo6aXA6OnRjcDo6ZW5kcG9pbnQgY29uc3QgZXAgPSB1dGlsOjpyZXNvbHZlX2hvc3RuYW1l KAorKyAgICAgICAgOjphc2lvOjppb19jb250ZXh0IGlvX3NlcnZpY2U7CisrICAgICAgICA6OmFz aW86OmlwOjp0Y3A6OmVuZHBvaW50IGNvbnN0IGVwID0gdXRpbDo6cmVzb2x2ZV9ob3N0bmFtZSgK KyAgICAgICAgICAgICBwcmVmaXhfICsgaG9zdF9uYW1lICsgc3VmZml4XywgcG9ydCwgaW9fc2Vy dmljZSwgaXB2NF8pOworIAorICAgICAgICAgc3RkOjpzdHJpbmcgcmVzb2x2ZWRfYWRkcih1dGls OjpnZXRfZW5kcG9pbnRfbmFtZShlcCkpOworZGlmZiAtLWdpdCBhL2xpYnMvY29yZS9iYXRjaF9l bnZpcm9ubWVudHMvc3JjL2JhdGNoX2Vudmlyb25tZW50LmNwcCBiL2xpYnMvY29yZS9iYXRjaF9l bnZpcm9ubWVudHMvc3JjL2JhdGNoX2Vudmlyb25tZW50LmNwcAoraW5kZXggMmM1MjJiMDFmNTQ5 Li45N2M2ZGRlNTg5MjcgMTAwNjQ0CistLS0gYS9saWJzL2NvcmUvYmF0Y2hfZW52aXJvbm1lbnRz L3NyYy9iYXRjaF9lbnZpcm9ubWVudC5jcHAKKysrKyBiL2xpYnMvY29yZS9iYXRjaF9lbnZpcm9u bWVudHMvc3JjL2JhdGNoX2Vudmlyb25tZW50LmNwcAorQEAgLTE0MCw3ICsxNDAsNyBAQCBuYW1l c3BhY2UgaHB4Ojp1dGlsIHsKKyAgICAgICAgIGJvb2wgZm91bmRfYWdhc19ob3N0ID0gZmFsc2U7 CisgCisgI2lmIGRlZmluZWQoSFBYX0hBVkVfTkVUV09SS0lORykKKy0gICAgICAgIGFzaW86Omlv X2NvbnRleHQgaW9fc2VydmljZTsKKysgICAgICAgIDo6YXNpbzo6aW9fY29udGV4dCBpb19zZXJ2 aWNlOworIAorICAgICAgICAgc3RkOjpzaXplX3QgYWdhc19ub2RlX251bSA9IDA7CisgICAgICAg ICBmb3IgKHN0ZDo6c3RyaW5nIGNvbnN0JiBzIDogbm9kZXMpCitAQCAtMTYxLDcgKzE2MSw3IEBA IG5hbWVzcGFjZSBocHg6OnV0aWwgeworIAorICAgICAgICAgICAgICAgICBpZiAoaGF2ZV90Y3Ap CisgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIGFzaW86OmlwOjp0Y3A6 OmVuZHBvaW50IGVwID0KKysgICAgICAgICAgICAgICAgICAgOjphc2lvOjppcDo6dGNwOjplbmRw b2ludCBlcCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbDo6cmVzb2x2ZV9ob3N0bmFt ZShzLCAwLCBpb19zZXJ2aWNlKTsKKyAKKyAgICAgICAgICAgICAgICAgICAgIGlmICgwID09IG5v ZGVzXy5jb3VudChlcCkpCitAQCAtMjUxLDcgKzI1MSw3IEBAIG5hbWVzcGFjZSBocHg6OnV0aWwg eworIAorICAgICBzdGQ6OnN0cmluZyBiYXRjaF9lbnZpcm9ubWVudDo6aG9zdF9uYW1lKCkgY29u c3QKKyAgICAgeworLSAgICAgICAgc3RkOjpzdHJpbmcgaG9zdG5hbWUgPSBhc2lvOjppcDo6aG9z dF9uYW1lKCk7CisrICAgICAgICBzdGQ6OnN0cmluZyBob3N0bmFtZSA9IDo6YXNpbzo6aXA6Omhv c3RfbmFtZSgpOworICAgICAgICAgaWYgKGRlYnVnXykKKyAgICAgICAgICAgICBzdGQ6OmNlcnIg PDwgImFzaW8gaG9zdF9uYW1lOiAiIDw8IGhvc3RuYW1lIDw8IHN0ZDo6ZW5kbDsKKyAgICAgICAg IHJldHVybiBob3N0bmFtZTsKK2RpZmYgLS1naXQgYS9saWJzL2NvcmUvZGVidWdnaW5nL3NyYy9h dHRhY2hfZGVidWdnZXIuY3BwIGIvbGlicy9jb3JlL2RlYnVnZ2luZy9zcmMvYXR0YWNoX2RlYnVn Z2VyLmNwcAoraW5kZXggYjlkOGVjOGRmZGU4Li43ZjY5NDFhYjQxOWQgMTAwNjQ0CistLS0gYS9s aWJzL2NvcmUvZGVidWdnaW5nL3NyYy9hdHRhY2hfZGVidWdnZXIuY3BwCisrKysgYi9saWJzL2Nv cmUvZGVidWdnaW5nL3NyYy9hdHRhY2hfZGVidWdnZXIuY3BwCitAQCAtMzAsNyArMzAsNyBAQCBu YW1lc3BhY2UgaHB4Ojp1dGlsIHsKKyAgICAgICAgIERlYnVnQnJlYWsoKTsKKyAjZWxpZiBkZWZp bmVkKF9QT1NJWF9WRVJTSU9OKSAmJiBkZWZpbmVkKEhQWF9IQVZFX1VOSVNURF9IKQorICAgICAg ICAgdm9sYXRpbGUgaW50IGkgPSAwOworLSAgICAgICAgc3RkOjpjZXJyIDw8ICJQSUQ6ICIgPDwg Z2V0cGlkKCkgPDwgIiBvbiAiIDw8IGFzaW86OmlwOjpob3N0X25hbWUoKQorKyAgICAgICAgc3Rk OjpjZXJyIDw8ICJQSUQ6ICIgPDwgZ2V0cGlkKCkgPDwgIiBvbiAiIDw8IDo6YXNpbzo6aXA6Omhv c3RfbmFtZSgpCisgICAgICAgICAgICAgICAgICAgPDwgIiByZWFkeSBmb3IgYXR0YWNoaW5nIGRl YnVnZ2VyLiBPbmNlIGF0dGFjaGVkIHNldCBpID0gMSAiCisgICAgICAgICAgICAgICAgICAgICAg ImFuZCBjb250aW51ZSIKKyAgICAgICAgICAgICAgICAgICA8PCBzdGQ6OmVuZGw7CitkaWZmIC0t Z2l0IGEvbGlicy9jb3JlL2V4ZWN1dG9ycy9zcmMvc2VydmljZV9leGVjdXRvcnMuY3BwIGIvbGli cy9jb3JlL2V4ZWN1dG9ycy9zcmMvc2VydmljZV9leGVjdXRvcnMuY3BwCitpbmRleCA0ZTNiYTg4 YTIzOTIuLjBhZWNmMjJhNmI0NSAxMDA2NDQKKy0tLSBhL2xpYnMvY29yZS9leGVjdXRvcnMvc3Jj L3NlcnZpY2VfZXhlY3V0b3JzLmNwcAorKysrIGIvbGlicy9jb3JlL2V4ZWN1dG9ycy9zcmMvc2Vy dmljZV9leGVjdXRvcnMuY3BwCitAQCAtMSw0ICsxLDQgQEAKKy0vLyAgQ29weXJpZ2h0IChjKSAy MDIzIEhhcnRtdXQgS2Fpc2VyCisrLy8gIENvcHlyaWdodCAoYykgMjAyMy0yMDI2IEhhcnRtdXQg S2Fpc2VyCisgLy8KKyAvLyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTTC0xLjAKKyAvLyAg RGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4w LiAoU2VlIGFjY29tcGFueWluZworQEAgLTEwLDEyICsxMCwyMCBAQAorICNpbmNsdWRlIDxocHgv aW9fc2VydmljZS9pb19zZXJ2aWNlX3Bvb2wuaHBwPgorIAorICNpbmNsdWRlIDxhc2lvL2lvX2Nv bnRleHQuaHBwPgorKyNpbmNsdWRlIDxhc2lvL3ZlcnNpb24uaHBwPgorKyNpZiBBU0lPX1ZFUlNJ T04gPj0gMTAzNDAwCisrI2luY2x1ZGUgPGFzaW8vcG9zdC5ocHA+CisrI2VuZGlmCisgCisgbmFt ZXNwYWNlIGhweDo6cGFyYWxsZWw6OmV4ZWN1dGlvbjo6ZGV0YWlsIHsKKyAKKyAgICAgdm9pZCBz ZXJ2aWNlX2V4ZWN1dG9yOjpwb3N0KAorICAgICAgICAgaHB4Ojp1dGlsOjppb19zZXJ2aWNlX3Bv b2wqIHBvb2wsIGhweDo6ZnVuY3Rpb248dm9pZCgpPiYmIGYpCisgICAgIHsKKysjaWYgQVNJT19W RVJTSU9OID49IDEwMzQwMAorKyAgICAgICAgOjphc2lvOjpwb3N0KHBvb2wtPmdldF9pb19zZXJ2 aWNlKCksIEhQWF9NT1ZFKGYpKTsKKysjZWxzZQorICAgICAgICAgcG9vbC0+Z2V0X2lvX3NlcnZp Y2UoKS5wb3N0KEhQWF9NT1ZFKGYpKTsKKysjZW5kaWYKKyAgICAgfQorIH0gICAgLy8gbmFtZXNw YWNlIGhweDo6cGFyYWxsZWw6OmV4ZWN1dGlvbjo6ZGV0YWlsCitkaWZmIC0tZ2l0IGEvbGlicy9j b3JlL2lvX3NlcnZpY2UvaW5jbHVkZS9ocHgvaW9fc2VydmljZS9pb19zZXJ2aWNlX3Bvb2wuaHBw IGIvbGlicy9jb3JlL2lvX3NlcnZpY2UvaW5jbHVkZS9ocHgvaW9fc2VydmljZS9pb19zZXJ2aWNl X3Bvb2wuaHBwCitpbmRleCA4ZDgwMGYzNmQxOGQuLmI1YTJhYTNjNWFlNyAxMDA2NDQKKy0tLSBh L2xpYnMvY29yZS9pb19zZXJ2aWNlL2luY2x1ZGUvaHB4L2lvX3NlcnZpY2UvaW9fc2VydmljZV9w b29sLmhwcAorKysrIGIvbGlicy9jb3JlL2lvX3NlcnZpY2UvaW5jbHVkZS9ocHgvaW9fc2Vydmlj ZS9pb19zZXJ2aWNlX3Bvb2wuaHBwCitAQCAtOTEsNyArOTEsNyBAQCBuYW1lc3BhY2UgaHB4Ojp1 dGlsIHsKKyAgICAgICAgIGJvb2wgc3RvcHBlZCgpOworIAorICAgICAgICAgLy8vIFxicmllZiBH ZXQgYW4gaW9fc2VydmljZSB0byB1c2UuCistICAgICAgICBhc2lvOjppb19jb250ZXh0JiBnZXRf aW9fc2VydmljZShpbnQgaW5kZXggPSAtMSk7CisrICAgICAgICA6OmFzaW86OmlvX2NvbnRleHQm IGdldF9pb19zZXJ2aWNlKGludCBpbmRleCA9IC0xKTsKKyAKKyAgICAgICAgIC8vLyBcYnJpZWYg YWNjZXNzIHVuZGVybHlpbmcgdGhyZWFkIGhhbmRsZQorICAgICAgICAgc3RkOjp0aHJlYWQmIGdl dF9vc190aHJlYWRfaGFuZGxlKHN0ZDo6c2l6ZV90IHRocmVhZF9udW0pOworQEAgLTEyMiwxMyAr MTIyLDEzIEBAIG5hbWVzcGFjZSBocHg6OnV0aWwgeworICAgICAgICAgdm9pZCB3YWl0X2xvY2tl ZCgpOworIAorICAgICBwcml2YXRlOgorLSAgICAgICAgdXNpbmcgaW9fc2VydmljZV9wdHIgPSBz dGQ6OnVuaXF1ZV9wdHI8YXNpbzo6aW9fY29udGV4dD47CisrICAgICAgICB1c2luZyBpb19zZXJ2 aWNlX3B0ciA9IHN0ZDo6dW5pcXVlX3B0cjw6OmFzaW86OmlvX2NvbnRleHQ+OworIAorICAgICAg ICAgdXNpbmcgcmF3X3dvcmtfdHlwZSA9CistICAgICAgICAgICAgYXNpbzo6ZXhlY3V0b3Jfd29y a19ndWFyZDxhc2lvOjppb19jb250ZXh0OjpleGVjdXRvcl90eXBlPjsKKysgICAgICAgICAgICA6 OmFzaW86OmV4ZWN1dG9yX3dvcmtfZ3VhcmQ8Ojphc2lvOjppb19jb250ZXh0OjpleGVjdXRvcl90 eXBlPjsKKyAgICAgICAgIHVzaW5nIHdvcmtfdHlwZSA9IHN0ZDo6dW5pcXVlX3B0cjxyYXdfd29y a190eXBlPjsKKyAKKy0gICAgICAgIHN0YXRpYyB3b3JrX3R5cGUgaW5pdGlhbGl6ZV93b3JrKGFz aW86OmlvX2NvbnRleHQmIGlvX3NlcnZpY2UpOworKyAgICAgICAgc3RhdGljIHdvcmtfdHlwZSBp bml0aWFsaXplX3dvcmsoOjphc2lvOjppb19jb250ZXh0JiBpb19zZXJ2aWNlKTsKKyAKKyAgICAg ICAgIHN0ZDo6bXV0ZXggbXR4XzsKKyAKK2RpZmYgLS1naXQgYS9saWJzL2NvcmUvaW9fc2Vydmlj ZS9zcmMvaW9fc2VydmljZV9wb29sLmNwcCBiL2xpYnMvY29yZS9pb19zZXJ2aWNlL3NyYy9pb19z ZXJ2aWNlX3Bvb2wuY3BwCitpbmRleCA0NGViMzMxOGMwNGIuLjUzZmYyYWEyOWEyNSAxMDA2NDQK Ky0tLSBhL2xpYnMvY29yZS9pb19zZXJ2aWNlL3NyYy9pb19zZXJ2aWNlX3Bvb2wuY3BwCisrKysg Yi9saWJzL2NvcmUvaW9fc2VydmljZS9zcmMvaW9fc2VydmljZV9wb29sLmNwcAorQEAgLTEyLDEx ICsxMiwyNCBAQAorICNpbmNsdWRlIDxocHgvY29uZmlnL2FzaW8uaHBwPgorICNpbmNsdWRlIDxo cHgvYXNzZXJ0LmhwcD4KKyAjaW5jbHVkZSA8aHB4L2NvbmN1cnJlbmN5L2JhcnJpZXIuaHBwPgor LSNpbmNsdWRlIDxocHgvaW9fc2VydmljZS9pb19zZXJ2aWNlX3Bvb2wuaHBwPgorKworICNpbmNs dWRlIDxocHgvbW9kdWxlcy9lcnJvcnMuaHBwPgorICNpbmNsdWRlIDxocHgvbW9kdWxlcy9sb2dn aW5nLmhwcD4KKyAKKysjaW5jbHVkZSA8aHB4L2lvX3NlcnZpY2UvaW9fc2VydmljZV9wb29sLmhw cD4KKysKKysjaW5jbHVkZSA8YXNpby9leGVjdXRvcl93b3JrX2d1YXJkLmhwcD4KKyAjaW5jbHVk ZSA8YXNpby9pb19jb250ZXh0LmhwcD4KKysjaW5jbHVkZSA8YXNpby92ZXJzaW9uLmhwcD4KKysj aWYgQVNJT19WRVJTSU9OID49IDEwMzQwMAorKyNpbmNsdWRlIDxhc2lvL3Bvc3QuaHBwPgorKyNl bmRpZgorKworKy8vIFRoZSBhc2lvIHN1cHBvcnQgaW5jbHVkZXMgdGVybWlvcy5oLiBUaGUgdGVy bWlvcy5oIGZpbGUgb24gcHBjNjRsZSBkZWZpbmVzCisrLy8gdGhlc2UgbWFjcm9zLCB3aGljaCBh cmUgYWxzbyB1c2VkIGJ5IGJsYXplLCBibGF6ZV90ZW5zb3IgYXMgVGVtcGxhdGUgbmFtZXMuCisr Ly8gTWFrZSBzdXJlIHdlIHVuZGVmaW5lIHRoZW0gYmVmb3JlIGNvbnRpbnVpbmcuCisrI3VuZGVm IFZUMQorKyN1bmRlZiBWVDIKKyAKKyAjaW5jbHVkZSA8Y3N0ZGRlZj4KKyAjaW5jbHVkZSA8bWVt b3J5PgorQEAgLTU5LDggKzcyLDggQEAgbmFtZXNwYWNlIGhweDo6dXRpbCB7CisgICAgICAgICAv LyB3aWxsIG5vdCBleGl0IHVudGlsIHRoZXkgYXJlIGV4cGxpY2l0bHkgc3RvcHBlZC4KKyAgICAg ICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBwb29sX3NpemVfOyArK2kpCisgICAgICAg ICB7CistICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPGFzaW86OmlvX2NvbnRleHQ+IHAgPQor LSAgICAgICAgICAgICAgICBzdGQ6Om1ha2VfdW5pcXVlPGFzaW86OmlvX2NvbnRleHQ+KCk7Cisr ICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPDo6YXNpbzo6aW9fY29udGV4dD4gcCA9CisrICAg ICAgICAgICAgICAgIHN0ZDo6bWFrZV91bmlxdWU8Ojphc2lvOjppb19jb250ZXh0PigpOworICAg ICAgICAgICAgIGlvX3NlcnZpY2VzXy5lbXBsYWNlX2JhY2soSFBYX01PVkUocCkpOworICAgICAg ICAgICAgIHdvcmtfLmVtcGxhY2VfYmFjayhpbml0aWFsaXplX3dvcmsoKmlvX3NlcnZpY2VzX1tp XSkpOworICAgICAgICAgfQorQEAgLTE3OCw4ICsxOTEsOCBAQCBuYW1lc3BhY2UgaHB4Ojp1dGls IHsKKyAKKyAgICAgICAgICAgICBmb3IgKHN0ZDo6c2l6ZV90IGkgPSAwOyBpIDwgbnVtX3RocmVh ZHM7ICsraSkKKyAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0 cjxhc2lvOjppb19jb250ZXh0PiBwID0KKy0gICAgICAgICAgICAgICAgICAgIHN0ZDo6bWFrZV91 bmlxdWU8YXNpbzo6aW9fY29udGV4dD4oKTsKKysgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVf cHRyPDo6YXNpbzo6aW9fY29udGV4dD4gcCA9CisrICAgICAgICAgICAgICAgICAgICBzdGQ6Om1h a2VfdW5pcXVlPDo6YXNpbzo6aW9fY29udGV4dD4oKTsKKyAgICAgICAgICAgICAgICAgaW9fc2Vy dmljZXNfLmVtcGxhY2VfYmFjayhIUFhfTU9WRShwKSk7CisgICAgICAgICAgICAgICAgIHdvcmtf LmVtcGxhY2VfYmFjayhpbml0aWFsaXplX3dvcmsoKmlvX3NlcnZpY2VzX1tpXSkpOworICAgICAg ICAgICAgIH0KK0BAIC0yNTksNyArMjcyLDExIEBAIG5hbWVzcGFjZSBocHg6OnV0aWwgeworICAg ICAgICAgICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBwb29sX3NpemVfOyArK2kpCisg ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICB3b3JrXy5lbXBsYWNlX2JhY2soaW5pdGlh bGl6ZV93b3JrKCppb19zZXJ2aWNlc19baV0pKTsKKysjaWYgQVNJT19WRVJTSU9OID49IDEwMzQw MAorKyAgICAgICAgICAgICAgICBpb19zZXJ2aWNlc19baV0tPnJlc3RhcnQoKTsKKysjZWxzZQor ICAgICAgICAgICAgICAgICBpb19zZXJ2aWNlc19baV0tPnJlc2V0KCk7CisrI2VuZGlmCisgICAg ICAgICAgICAgfQorIAorICAgICAgICAgICAgIGNvbnRpbnVlX2JhcnJpZXJfLT53YWl0KCk7CitA QCAtMjkwLDEyICszMDcsMTIgQEAgbmFtZXNwYWNlIGhweDo6dXRpbCB7CisgICAgIH0KKyAKKyAg ICAgaW9fc2VydmljZV9wb29sOjp3b3JrX3R5cGUgaW9fc2VydmljZV9wb29sOjppbml0aWFsaXpl X3dvcmsoCistICAgICAgICBhc2lvOjppb19jb250ZXh0JiBpb19zZXJ2aWNlKQorKyAgICAgICAg Ojphc2lvOjppb19jb250ZXh0JiBpb19zZXJ2aWNlKQorICAgICB7CisgICAgICAgICByZXR1cm4g c3RkOjptYWtlX3VuaXF1ZTxyYXdfd29ya190eXBlPihpb19zZXJ2aWNlLmdldF9leGVjdXRvcigp KTsKKyAgICAgfQorIAorLSAgICBhc2lvOjppb19jb250ZXh0JiBpb19zZXJ2aWNlX3Bvb2w6Omdl dF9pb19zZXJ2aWNlKGludCBpbmRleCkKKysgICAgOjphc2lvOjppb19jb250ZXh0JiBpb19zZXJ2 aWNlX3Bvb2w6OmdldF9pb19zZXJ2aWNlKGludCBpbmRleCkKKyAgICAgeworICAgICAgICAgLy8g dXNlIHRoaXMgZnVuY3Rpb24gZm9yIHNpbmdsZSBncm91cCBpb19zZXJ2aWNlIHBvb2xzIG9ubHkK KyAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsKG10eF8pOworZGlmZiAtLWdp dCBhL2xpYnMvY29yZS9sY2lfYmFzZS9zcmMvbGNpX2Vudmlyb25tZW50LmNwcCBiL2xpYnMvY29y ZS9sY2lfYmFzZS9zcmMvbGNpX2Vudmlyb25tZW50LmNwcAoraW5kZXggZjNlNTFhMjllYjMwLi4z ZDBiNzVmODkxM2IgMTAwNjQ0CistLS0gYS9saWJzL2NvcmUvbGNpX2Jhc2Uvc3JjL2xjaV9lbnZp cm9ubWVudC5jcHAKKysrKyBiL2xpYnMvY29yZS9sY2lfYmFzZS9zcmMvbGNpX2Vudmlyb25tZW50 LmNwcAorQEAgLTE3OCw3ICsxNzgsNyBAQCBuYW1lc3BhY2UgaHB4IHsgbmFtZXNwYWNlIHV0aWwg eworIAorICAgICBzdGQ6OnN0cmluZyBsY2lfZW52aXJvbm1lbnQ6OmdldF9wcm9jZXNzb3JfbmFt ZSgpCisgICAgIHsKKy0gICAgICAgIHJldHVybiBhc2lvOjppcDo6aG9zdF9uYW1lKCk7CisrICAg ICAgICByZXR1cm4gOjphc2lvOjppcDo6aG9zdF9uYW1lKCk7CisgICAgIH0KKyAKKyAgICAgdm9p ZCBsY2lfZW52aXJvbm1lbnQ6OmZpbmFsaXplKCkKK2RpZmYgLS1naXQgYS9saWJzL2NvcmUvcnVu dGltZV9sb2NhbC9pbmNsdWRlL2hweC9ydW50aW1lX2xvY2FsL3J1bnRpbWVfaGFuZGxlcnMuaHBw IGIvbGlicy9jb3JlL3J1bnRpbWVfbG9jYWwvaW5jbHVkZS9ocHgvcnVudGltZV9sb2NhbC9ydW50 aW1lX2hhbmRsZXJzLmhwcAoraW5kZXggNGIzMjJlOTU1YjczLi5hZWNiNDk0ZDgwODggMTAwNjQ0 CistLS0gYS9saWJzL2NvcmUvcnVudGltZV9sb2NhbC9pbmNsdWRlL2hweC9ydW50aW1lX2xvY2Fs L3J1bnRpbWVfaGFuZGxlcnMuaHBwCisrKysgYi9saWJzL2NvcmUvcnVudGltZV9sb2NhbC9pbmNs dWRlL2hweC9ydW50aW1lX2xvY2FsL3J1bnRpbWVfaGFuZGxlcnMuaHBwCitAQCAtMzIsNSArMzIs NSBAQCBuYW1lc3BhY2UgaHB4OjpkZXRhaWwgeworICAgICBIUFhfQ09SRV9FWFBPUlQgdGhyZWFk czo6dGhyZWFkX3Bvb2xfYmFzZSogZ2V0X2RlZmF1bHRfcG9vbCgpOworICAgICBIUFhfQ09SRV9F WFBPUlQgdGhyZWFkczo6bWFza190eXBlIGdldF9wdV9tYXNrKAorICAgICAgICAgdGhyZWFkczo6 dG9wb2xvZ3kmIHRvcG8sIHN0ZDo6c2l6ZV90IHRocmVhZF9udW0pOworLSAgICBIUFhfQ09SRV9F WFBPUlQgYXNpbzo6aW9fY29udGV4dCYgZ2V0X2RlZmF1bHRfdGltZXJfc2VydmljZSgpOworKyAg ICBIUFhfQ09SRV9FWFBPUlQgOjphc2lvOjppb19jb250ZXh0JiBnZXRfZGVmYXVsdF90aW1lcl9z ZXJ2aWNlKCk7CisgfSAgICAvLyBuYW1lc3BhY2UgaHB4OjpkZXRhaWwKK2RpZmYgLS1naXQgYS9s aWJzL2NvcmUvcnVudGltZV9sb2NhbC9zcmMvcG9vbF90aW1lci5jcHAgYi9saWJzL2NvcmUvcnVu dGltZV9sb2NhbC9zcmMvcG9vbF90aW1lci5jcHAKK2luZGV4IDc0ODdiNWE3MjY5Mi4uN2I4NDdk OGEwOGM2IDEwMDY0NAorLS0tIGEvbGlicy9jb3JlL3J1bnRpbWVfbG9jYWwvc3JjL3Bvb2xfdGlt ZXIuY3BwCisrKysgYi9saWJzL2NvcmUvcnVudGltZV9sb2NhbC9zcmMvcG9vbF90aW1lci5jcHAK K0BAIC02OCw3ICs2OCw3IEBAIG5hbWVzcGFjZSBocHg6OnV0aWw6OmRldGFpbCB7CisgCisgICAg IHByaXZhdGU6CisgICAgICAgICB1c2luZyBkZWFkbGluZV90aW1lciA9CistICAgICAgICAgICAg YXNpbzo6YmFzaWNfd2FpdGFibGVfdGltZXI8c3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jaz47Cisr ICAgICAgICAgICAgOjphc2lvOjpiYXNpY193YWl0YWJsZV90aW1lcjxzdGQ6OmNocm9ubzo6c3Rl YWR5X2Nsb2NrPjsKKyAKKyAgICAgICAgIG11dGFibGUgbXV0ZXhfdHlwZSBtdHhfOworICAgICAg ICAgaHB4OjpmdW5jdGlvbjxib29sKCk+IGZfOyAgICAgICAgICAvLy88IGZ1bmN0aW9uIHRvIGNh bGwKK0BAIC0xNDYsNyArMTQ2LDcgQEAgbmFtZXNwYWNlIGhweDo6dXRpbDo6ZGV0YWlsIHsKKyAg ICAgICAgICAgICB9CisgCisgICAgICAgICAgICAgSFBYX0FTU0VSVCh0aW1lcl8gIT0gbnVsbHB0 cik7CistICAgICAgICAgICAgdGltZXJfLT5leHBpcmVzX2Zyb21fbm93KHRpbWVfZHVyYXRpb24u dmFsdWUoKSk7CisrICAgICAgICAgICAgdGltZXJfLT5leHBpcmVzX2F0KHRpbWVfZHVyYXRpb24u ZnJvbV9ub3coKSk7CisgICAgICAgICAgICAgdGltZXJfLT5hc3luY193YWl0KGhweDo6YmluZF9m cm9udCggICAgLy8tVjc3OQorICAgICAgICAgICAgICAgICAmcG9vbF90aW1lcjo6dGltZXJfaGFu ZGxlciwgdGhpcy0+c2hhcmVkX2Zyb21fdGhpcygpKSk7CisgCitkaWZmIC0tZ2l0IGEvbGlicy9j b3JlL3J1bnRpbWVfbG9jYWwvc3JjL3J1bnRpbWVfaGFuZGxlcnMuY3BwIGIvbGlicy9jb3JlL3J1 bnRpbWVfbG9jYWwvc3JjL3J1bnRpbWVfaGFuZGxlcnMuY3BwCitpbmRleCA5YmZlZTk1YzEwY2Mu LmIzNzdjYjQ2NDJiZiAxMDA2NDQKKy0tLSBhL2xpYnMvY29yZS9ydW50aW1lX2xvY2FsL3NyYy9y dW50aW1lX2hhbmRsZXJzLmNwcAorKysrIGIvbGlicy9jb3JlL3J1bnRpbWVfbG9jYWwvc3JjL3J1 bnRpbWVfaGFuZGxlcnMuY3BwCitAQCAtMTUyLDcgKzE1Miw3IEBAIG5hbWVzcGFjZSBocHg6OmRl dGFpbCB7CisgICAgICAgICByZXR1cm4gJnJ0LT5nZXRfdGhyZWFkX21hbmFnZXIoKS5kZWZhdWx0 X3Bvb2woKTsKKyAgICAgfQorIAorLSAgICBhc2lvOjppb19jb250ZXh0JiBnZXRfZGVmYXVsdF90 aW1lcl9zZXJ2aWNlKCkKKysgICAgOjphc2lvOjppb19jb250ZXh0JiBnZXRfZGVmYXVsdF90aW1l cl9zZXJ2aWNlKCkKKyAgICAgeworICAgICAgICAgaHB4OjpydW50aW1lIGNvbnN0KiBydCA9IGdl dF9ydW50aW1lX3B0cigpOworICAgICAgICAgaWYgKHJ0ID09IG51bGxwdHIpCitkaWZmIC0tZ2l0 IGEvbGlicy9jb3JlL3RocmVhZGluZ19iYXNlL2luY2x1ZGUvaHB4L3RocmVhZGluZ19iYXNlL2Rl dGFpbC9nZXRfZGVmYXVsdF90aW1lcl9zZXJ2aWNlLmhwcCBiL2xpYnMvY29yZS90aHJlYWRpbmdf YmFzZS9pbmNsdWRlL2hweC90aHJlYWRpbmdfYmFzZS9kZXRhaWwvZ2V0X2RlZmF1bHRfdGltZXJf c2VydmljZS5ocHAKK2luZGV4IDcyNDk5MDVmODk3Yi4uZjk3ODZmNGM0MzIxIDEwMDY0NAorLS0t IGEvbGlicy9jb3JlL3RocmVhZGluZ19iYXNlL2luY2x1ZGUvaHB4L3RocmVhZGluZ19iYXNlL2Rl dGFpbC9nZXRfZGVmYXVsdF90aW1lcl9zZXJ2aWNlLmhwcAorKysrIGIvbGlicy9jb3JlL3RocmVh ZGluZ19iYXNlL2luY2x1ZGUvaHB4L3RocmVhZGluZ19iYXNlL2RldGFpbC9nZXRfZGVmYXVsdF90 aW1lcl9zZXJ2aWNlLmhwcAorQEAgLTE0LDggKzE0LDggQEAKKyAKKyBuYW1lc3BhY2UgaHB4Ojp0 aHJlYWRzOjpkZXRhaWwgeworIAorLSAgICB1c2luZyBnZXRfZGVmYXVsdF90aW1lcl9zZXJ2aWNl X3R5cGUgPSBocHg6OmZ1bmN0aW9uPGFzaW86OmlvX2NvbnRleHQmKCk+OworKyAgICB1c2luZyBn ZXRfZGVmYXVsdF90aW1lcl9zZXJ2aWNlX3R5cGUgPSBocHg6OmZ1bmN0aW9uPDo6YXNpbzo6aW9f Y29udGV4dCYoKT47CisgICAgIEhQWF9DT1JFX0VYUE9SVCB2b2lkIHNldF9nZXRfZGVmYXVsdF90 aW1lcl9zZXJ2aWNlKAorICAgICAgICAgZ2V0X2RlZmF1bHRfdGltZXJfc2VydmljZV90eXBlIGYp OworLSAgICBIUFhfQ09SRV9FWFBPUlQgYXNpbzo6aW9fY29udGV4dCYgZ2V0X2RlZmF1bHRfdGlt ZXJfc2VydmljZSgpOworKyAgICBIUFhfQ09SRV9FWFBPUlQgOjphc2lvOjppb19jb250ZXh0JiBn ZXRfZGVmYXVsdF90aW1lcl9zZXJ2aWNlKCk7CisgfSAgICAvLyBuYW1lc3BhY2UgaHB4Ojp0aHJl YWRzOjpkZXRhaWwKK2RpZmYgLS1naXQgYS9saWJzL2NvcmUvdGhyZWFkaW5nX2Jhc2Uvc3JjL2dl dF9kZWZhdWx0X3RpbWVyX3NlcnZpY2UuY3BwIGIvbGlicy9jb3JlL3RocmVhZGluZ19iYXNlL3Ny Yy9nZXRfZGVmYXVsdF90aW1lcl9zZXJ2aWNlLmNwcAoraW5kZXggNWU5YTQ3OTFhZjQzLi5hOGE1 MWFhMmM3ZDggMTAwNjQ0CistLS0gYS9saWJzL2NvcmUvdGhyZWFkaW5nX2Jhc2Uvc3JjL2dldF9k ZWZhdWx0X3RpbWVyX3NlcnZpY2UuY3BwCisrKysgYi9saWJzL2NvcmUvdGhyZWFkaW5nX2Jhc2Uv c3JjL2dldF9kZWZhdWx0X3RpbWVyX3NlcnZpY2UuY3BwCitAQCAtMjUsNyArMjUsNyBAQCBuYW1l c3BhY2UgaHB4Ojp0aHJlYWRzOjpkZXRhaWwgeworICAgICAgICAgZ2V0X2RlZmF1bHRfdGltZXJf c2VydmljZV9mID0gSFBYX01PVkUoZik7CisgICAgIH0KKyAKKy0gICAgYXNpbzo6aW9fY29udGV4 dCYgZ2V0X2RlZmF1bHRfdGltZXJfc2VydmljZSgpCisrICAgIDo6YXNpbzo6aW9fY29udGV4dCYg Z2V0X2RlZmF1bHRfdGltZXJfc2VydmljZSgpCisgICAgIHsKKyAgICAgICAgIGlmIChkZXRhaWw6 OmdldF9kZWZhdWx0X3RpbWVyX3NlcnZpY2VfZikKKyAgICAgICAgIHsKK2RpZmYgLS1naXQgYS9s aWJzL2NvcmUvdGhyZWFkaW5nX2Jhc2Uvc3JjL3NldF90aHJlYWRfc3RhdGVfdGltZWQuY3BwIGIv bGlicy9jb3JlL3RocmVhZGluZ19iYXNlL3NyYy9zZXRfdGhyZWFkX3N0YXRlX3RpbWVkLmNwcAor aW5kZXggOWI3NjJhODI1OTM1Li4xZmI1OTFjNjhmYWUgMTAwNjQ0CistLS0gYS9saWJzL2NvcmUv dGhyZWFkaW5nX2Jhc2Uvc3JjL3NldF90aHJlYWRfc3RhdGVfdGltZWQuY3BwCisrKysgYi9saWJz L2NvcmUvdGhyZWFkaW5nX2Jhc2Uvc3JjL3NldF90aHJlYWRfc3RhdGVfdGltZWQuY3BwCitAQCAt OTksNyArOTksNyBAQCBuYW1lc3BhY2UgaHB4Ojp0aHJlYWRzOjpkZXRhaWwgeworIAorICAgICAg ICAgLy8gY3JlYXRlIHRpbWVyIGZpcmluZyBpbiBjb3JyZXNwb25kZW5jZSB3aXRoIGdpdmVuIHRp bWUKKyAgICAgICAgIHVzaW5nIGRlYWRsaW5lX3RpbWVyID0KKy0gICAgICAgICAgICBhc2lvOjpi YXNpY193YWl0YWJsZV90aW1lcjxzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrPjsKKysgICAgICAg ICAgICA6OmFzaW86OmJhc2ljX3dhaXRhYmxlX3RpbWVyPHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xv Y2s+OworIAorICAgICAgICAgZGVhZGxpbmVfdGltZXIgdChnZXRfZGVmYXVsdF90aW1lcl9zZXJ2 aWNlKCksIGFic190aW1lKTsKKyAKK2RpZmYgLS1naXQgYS9saWJzL2Z1bGwvYXN5bmNfZGlzdHJp YnV0ZWQvaW5jbHVkZS9ocHgvYXN5bmNfZGlzdHJpYnV0ZWQvcGFja2FnZWRfYWN0aW9uLmhwcCBi L2xpYnMvZnVsbC9hc3luY19kaXN0cmlidXRlZC9pbmNsdWRlL2hweC9hc3luY19kaXN0cmlidXRl ZC9wYWNrYWdlZF9hY3Rpb24uaHBwCitpbmRleCAxNzljOTY5NzBjM2YuLjI5NjljM2U2OThhZSAx MDA2NDQKKy0tLSBhL2xpYnMvZnVsbC9hc3luY19kaXN0cmlidXRlZC9pbmNsdWRlL2hweC9hc3lu Y19kaXN0cmlidXRlZC9wYWNrYWdlZF9hY3Rpb24uaHBwCisrKysgYi9saWJzL2Z1bGwvYXN5bmNf ZGlzdHJpYnV0ZWQvaW5jbHVkZS9ocHgvYXN5bmNfZGlzdHJpYnV0ZWQvcGFja2FnZWRfYWN0aW9u LmhwcAorQEAgLTU1LDggKzU1LDggQEAgbmFtZXNwYWNlIGhweDo6bGNvcyB7CisgICAgICAgICAg ICAgICAgICAgICBpZiAoaHB4Ojp0b2xlcmF0ZV9ub2RlX2ZhdWx0cygpKQorICAgICAgICAgICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlYyA9PQorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc2lvOjplcnJvcjo6bWFrZV9lcnJvcl9jb2RlKAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNpbzo6ZXJyb3I6OmNvbm5lY3Rpb25fcmVzZXQp KQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA6OmFzaW86OmVycm9yOjptYWtlX2Vycm9y X2NvZGUoCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6OmFzaW86OmVycm9yOjpj b25uZWN0aW9uX3Jlc2V0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9Citk aWZmIC0tZ2l0IGEvbGlicy9mdWxsL2luaXRfcnVudGltZS9zcmMvaHB4X21haW5fd2luc29ja2V0 LmNwcCBiL2xpYnMvZnVsbC9pbml0X3J1bnRpbWUvc3JjL2hweF9tYWluX3dpbnNvY2tldC5jcHAK K2luZGV4IDYwMTNiYmQ2ZTVlYy4uNWNlNTRiZWY1MDM5IDEwMDY0NAorLS0tIGEvbGlicy9mdWxs L2luaXRfcnVudGltZS9zcmMvaHB4X21haW5fd2luc29ja2V0LmNwcAorKysrIGIvbGlicy9mdWxs L2luaXRfcnVudGltZS9zcmMvaHB4X21haW5fd2luc29ja2V0LmNwcAorQEAgLTIzLDEwICsyMywx MCBAQCBuYW1lc3BhY2UgaHB4IHsgbmFtZXNwYWNlIGRldGFpbCB7CisgICAgIC8vIGlzIGV4ZWN1 dGVkLgorICAgICBzdHJ1Y3Qgd2luc29ja2V0X2luaXRfaGVscGVyCisgICAgIHsKKy0gICAgICAg IHN0YXRpYyBhc2lvOjpkZXRhaWw6OndpbnNvY2tfaW5pdDw+IGNvbnN0JiBpbml0KCkKKysgICAg ICAgIHN0YXRpYyA6OmFzaW86OmRldGFpbDo6d2luc29ja19pbml0PD4gY29uc3QmIGluaXQoKQor ICAgICAgICAgeworLSAgICAgICAgICAgIHN0YXRpYyBjb25zdCBhc2lvOjpkZXRhaWw6OndpbnNv Y2tfaW5pdDw+IGluaXRfd2luc29ja2V0ID0KKy0gICAgICAgICAgICAgICAgYXNpbzo6ZGV0YWls Ojp3aW5zb2NrX2luaXQ8PihmYWxzZSk7CisrICAgICAgICAgICAgc3RhdGljIGNvbnN0IDo6YXNp bzo6ZGV0YWlsOjp3aW5zb2NrX2luaXQ8PiBpbml0X3dpbnNvY2tldCA9CisrICAgICAgICAgICAg ICAgIDo6YXNpbzo6ZGV0YWlsOjp3aW5zb2NrX2luaXQ8PihmYWxzZSk7CisgICAgICAgICAgICAg cmV0dXJuIGluaXRfd2luc29ja2V0OworICAgICAgICAgfQorICAgICB9OworZGlmZiAtLWdpdCBh L2xpYnMvZnVsbC9wYXJjZWxwb3J0X2dhc25ldC9zcmMvcGFyY2VscG9ydF9nYXNuZXQuY3BwIGIv bGlicy9mdWxsL3BhcmNlbHBvcnRfZ2FzbmV0L3NyYy9wYXJjZWxwb3J0X2dhc25ldC5jcHAKK2lu ZGV4IDc3ZGEwYzgzOWIxNi4uMDZlNTU0NTVhYjc2IDEwMDY0NAorLS0tIGEvbGlicy9mdWxsL3Bh cmNlbHBvcnRfZ2FzbmV0L3NyYy9wYXJjZWxwb3J0X2dhc25ldC5jcHAKKysrKyBiL2xpYnMvZnVs bC9wYXJjZWxwb3J0X2dhc25ldC9zcmMvcGFyY2VscG9ydF9nYXNuZXQuY3BwCitAQCAtMzcsNiAr MzcsMTEgQEAKKyAjaW5jbHVkZSA8c3lzdGVtX2Vycm9yPgorICNpbmNsdWRlIDx0eXBlX3RyYWl0 cz4KKyAKKysjaW5jbHVkZSA8YXNpby92ZXJzaW9uLmhwcD4KKysjaWYgQVNJT19WRVJTSU9OID49 IDEwMzQwMAorKyNpbmNsdWRlIDxhc2lvL3Bvc3QuaHBwPgorKyNlbmRpZgorKworICNpbmNsdWRl IDxocHgvY29uZmlnL3dhcm5pbmdzX3ByZWZpeC5ocHA+CisgCisgbmFtZXNwYWNlIGhweDo6cGFy Y2Vsc2V0IHsKK0BAIC0xNDIsOCArMTQ3LDEzIEBAIG5hbWVzcGFjZSBocHg6OnBhcmNlbHNldCB7 CisgCisgICAgICAgICAgICAgICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDA7IGkgIT0gaW9fc2Vy dmljZV9wb29sXy5zaXplKCk7ICsraSkKKyAgICAgICAgICAgICAgICAgeworKyNpZiBBU0lPX1ZF UlNJT04gPj0gMTAzNDAwCisrICAgICAgICAgICAgICAgICAgICA6OmFzaW86OnBvc3QoaW9fc2Vy dmljZV9wb29sXy5nZXRfaW9fc2VydmljZShpbnQoaSkpLAorKyAgICAgICAgICAgICAgICAgICAg ICAgIGhweDo6YmluZCgmcGFyY2VscG9ydDo6aW9fc2VydmljZV93b3JrLCB0aGlzKSk7CisrI2Vs c2UKKyAgICAgICAgICAgICAgICAgICAgIGlvX3NlcnZpY2VfcG9vbF8uZ2V0X2lvX3NlcnZpY2Uo aW50KGkpKS5wb3N0KAorICAgICAgICAgICAgICAgICAgICAgICAgIGhweDo6YmluZCgmcGFyY2Vs cG9ydDo6aW9fc2VydmljZV93b3JrLCB0aGlzKSk7CisrI2VuZGlmCisgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgfQorZGlmZiAt LWdpdCBhL2xpYnMvZnVsbC9wYXJjZWxwb3J0X2xjaS9zcmMvcGFyY2VscG9ydF9sY2kuY3BwIGIv bGlicy9mdWxsL3BhcmNlbHBvcnRfbGNpL3NyYy9wYXJjZWxwb3J0X2xjaS5jcHAKK2luZGV4IGQ5 MDgzMTkxMzc2YS4uMTJkMDg0NDhmZTI4IDEwMDY0NAorLS0tIGEvbGlicy9mdWxsL3BhcmNlbHBv cnRfbGNpL3NyYy9wYXJjZWxwb3J0X2xjaS5jcHAKKysrKyBiL2xpYnMvZnVsbC9wYXJjZWxwb3J0 X2xjaS9zcmMvcGFyY2VscG9ydF9sY2kuY3BwCitAQCAtMzksNiArMzksMTEgQEAKKyAjaW5jbHVk ZSA8dHlwZV90cmFpdHM+CisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAKKysjaW5jbHVkZSA8YXNpby92 ZXJzaW9uLmhwcD4KKysjaWYgQVNJT19WRVJTSU9OID49IDEwMzQwMAorKyNpbmNsdWRlIDxhc2lv L3Bvc3QuaHBwPgorKyNlbmRpZgorKworIG5hbWVzcGFjZSBocHg6OnBhcmNlbHNldDo6cG9saWNp ZXM6OmxjaSB7CisgCisgICAgIHBhcmNlbHNldDo6bG9jYWxpdHkgcGFyY2VscG9ydDo6aGVyZSgp CitAQCAtOTgsOCArMTAzLDEzIEBAIG5hbWVzcGFjZSBocHg6OnBhcmNlbHNldDo6cG9saWNpZXM6 OmxjaSB7CisgICAgICAgICBzZW5kZXJfcC0+cnVuKCk7CisgICAgICAgICBmb3IgKHN0ZDo6c2l6 ZV90IGkgPSAwOyBpICE9IGlvX3NlcnZpY2VfcG9vbF8uc2l6ZSgpOyArK2kpCisgICAgICAgICB7 CisrI2lmIEFTSU9fVkVSU0lPTiA+PSAxMDM0MDAKKysgICAgICAgICAgICA6OmFzaW86OnBvc3Qo aW9fc2VydmljZV9wb29sXy5nZXRfaW9fc2VydmljZShpbnQoaSkpLAorKyAgICAgICAgICAgICAg ICBocHg6OmJpbmQoJnBhcmNlbHBvcnQ6OmlvX3NlcnZpY2Vfd29yaywgdGhpcykpOworKyNlbHNl CisgICAgICAgICAgICAgaW9fc2VydmljZV9wb29sXy5nZXRfaW9fc2VydmljZShpbnQoaSkpLnBv c3QoCisgICAgICAgICAgICAgICAgIGhweDo6YmluZCgmcGFyY2VscG9ydDo6aW9fc2VydmljZV93 b3JrLCB0aGlzKSk7CisrI2VuZGlmCisgICAgICAgICB9CisgICAgICAgICByZXR1cm4gdHJ1ZTsK KyAgICAgfQorQEAgLTE2NywxMCArMTc3LDEwIEBAIG5hbWVzcGFjZSBocHg6OnBhcmNlbHNldDo6 cG9saWNpZXM6OmxjaSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50 PihocHg6OmdldF9sb2NhbF93b3JrZXJfdGhyZWFkX251bSgpKTsKKyAgICAgICAgICAgICAgICAg ICAgIEhQWF9BU1NFUlQocHJnX3RocmVhZF9pZCA8IGNvbmZpZ190Ojpwcm9ncmVzc190aHJlYWRf bnVtKTsKKyAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBwcmdfdGhyZWFkX2lkICog Y29uZmlnX3Q6Om5kZXZpY2VzIC8KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZp Z190Ojpwcm9ncmVzc190aHJlYWRfbnVtOworLSAgICAgICAgICAgICAgICAgICAgICAgICBpIDwg KHByZ190aHJlYWRfaWQgKyAxKSAqIGNvbmZpZ190OjpuZGV2aWNlcyAvCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25maWdfdDo6cHJvZ3Jlc3NfdGhyZWFkX251bTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgKytpKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25m aWdfdDo6cHJvZ3Jlc3NfdGhyZWFkX251bTsKKysgICAgICAgICAgICAgICAgICAgICAgICBpIDwg KHByZ190aHJlYWRfaWQgKyAxKSAqIGNvbmZpZ190OjpuZGV2aWNlcyAvCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbmZpZ190Ojpwcm9ncmVzc190aHJlYWRfbnVtOworKyAgICAgICAg ICAgICAgICAgICAgICAgICsraSkKKyAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgICBkZXZpY2VzX3RvX3Byb2dyZXNzLnB1c2hfYmFjaygmZGV2aWNlc1tpXSk7 CisgICAgICAgICAgICAgICAgICAgICB9CitkaWZmIC0tZ2l0IGEvbGlicy9mdWxsL3BhcmNlbHBv cnRfbXBpL3NyYy9wYXJjZWxwb3J0X21waS5jcHAgYi9saWJzL2Z1bGwvcGFyY2VscG9ydF9tcGkv c3JjL3BhcmNlbHBvcnRfbXBpLmNwcAoraW5kZXggZTMwMDI1ODk5ZTc2Li4xNDMyMGU0ZTYyNWUg MTAwNjQ0CistLS0gYS9saWJzL2Z1bGwvcGFyY2VscG9ydF9tcGkvc3JjL3BhcmNlbHBvcnRfbXBp LmNwcAorKysrIGIvbGlicy9mdWxsL3BhcmNlbHBvcnRfbXBpL3NyYy9wYXJjZWxwb3J0X21waS5j cHAKK0BAIC0zNSw2ICszNSwxMSBAQAorICNpbmNsdWRlIDxzdHJpbmc+CisgI2luY2x1ZGUgPHR5 cGVfdHJhaXRzPgorIAorKyNpbmNsdWRlIDxhc2lvL3ZlcnNpb24uaHBwPgorKyNpZiBBU0lPX1ZF UlNJT04gPj0gMTAzNDAwCisrI2luY2x1ZGUgPGFzaW8vcG9zdC5ocHA+CisrI2VuZGlmCisrCisg I2luY2x1ZGUgPGhweC9jb25maWcvd2FybmluZ3NfcHJlZml4LmhwcD4KKyAKKyBuYW1lc3BhY2Ug aHB4OjpwYXJjZWxzZXQgeworQEAgLTE4MSw4ICsxODYsMTQgQEAgbmFtZXNwYWNlIGhweDo6cGFy Y2Vsc2V0IHsKKyAKKyAgICAgICAgICAgICAgICAgZm9yIChzdGQ6OnNpemVfdCBpID0gMDsgaSAh PSBpb19zZXJ2aWNlX3Bvb2xfLnNpemUoKTsgKytpKQorICAgICAgICAgICAgICAgICB7CisrI2lm IEFTSU9fVkVSU0lPTiA+PSAxMDM0MDAKKysgICAgICAgICAgICAgICAgICAgIDo6YXNpbzo6cG9z dCgKKysgICAgICAgICAgICAgICAgICAgICAgICBpb19zZXJ2aWNlX3Bvb2xfLmdldF9pb19zZXJ2 aWNlKHN0YXRpY19jYXN0PGludD4oaSkpLAorKyAgICAgICAgICAgICAgICAgICAgICAgIGhweDo6 YmluZCgmcGFyY2VscG9ydDo6aW9fc2VydmljZV93b3JrLCB0aGlzKSk7CisrI2Vsc2UKKyAgICAg ICAgICAgICAgICAgICAgIGlvX3NlcnZpY2VfcG9vbF8uZ2V0X2lvX3NlcnZpY2Uoc3RhdGljX2Nh c3Q8aW50PihpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAucG9zdChocHg6OmJpbmQoJnBh cmNlbHBvcnQ6OmlvX3NlcnZpY2Vfd29yaywgdGhpcykpOworKyNlbmRpZgorICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgIH0KK2Rp ZmYgLS1naXQgYS9saWJzL2Z1bGwvcGFyY2VscG9ydF90Y3AvaW5jbHVkZS9ocHgvcGFyY2VscG9y dF90Y3AvY29ubmVjdGlvbl9oYW5kbGVyLmhwcCBiL2xpYnMvZnVsbC9wYXJjZWxwb3J0X3RjcC9p bmNsdWRlL2hweC9wYXJjZWxwb3J0X3RjcC9jb25uZWN0aW9uX2hhbmRsZXIuaHBwCitpbmRleCAw MGQwMTkwMDkxMmEuLjBlZjc5N2FjZTQwOCAxMDA2NDQKKy0tLSBhL2xpYnMvZnVsbC9wYXJjZWxw b3J0X3RjcC9pbmNsdWRlL2hweC9wYXJjZWxwb3J0X3RjcC9jb25uZWN0aW9uX2hhbmRsZXIuaHBw CisrKysgYi9saWJzL2Z1bGwvcGFyY2VscG9ydF90Y3AvaW5jbHVkZS9ocHgvcGFyY2VscG9ydF90 Y3AvY29ubmVjdGlvbl9oYW5kbGVyLmhwcAorQEAgLTk4LDcgKzk4LDcgQEAgbmFtZXNwYWNlIGhw eDo6cGFyY2Vsc2V0IHsKKyAgICAgICAgICAgICAvLyBSZXR1cm4gdGhlIG5hbWUgb2YgdGhpcyBs b2NhbGl0eQorICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGdldF9sb2NhbGl0eV9uYW1lKCkgY29u c3Qgb3ZlcnJpZGUKKyAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgIHJldHVybiBhc2lv OjppcDo6aG9zdF9uYW1lKCk7CisrICAgICAgICAgICAgICAgIHJldHVybiA6OmFzaW86OmlwOjpo b3N0X25hbWUoKTsKKyAgICAgICAgICAgICB9CisgCisgICAgICAgICAgICAgc3RkOjpzaGFyZWRf cHRyPHNlbmRlcj4gY3JlYXRlX2Nvbm5lY3Rpb24oCitAQCAtMTE2LDcgKzExNiw3IEBAIG5hbWVz cGFjZSBocHg6OnBhcmNlbHNldCB7CisgICAgICAgICAgICAgICAgIHN0ZDo6c2hhcmVkX3B0cjxy ZWNlaXZlcj4gY29uc3QmIHJlY2VpdmVyX2Nvbm4pOworIAorICAgICAgICAgICAgIC8vLyBBY2Nl cHRvciB1c2VkIHRvIGxpc3RlbiBmb3IgaW5jb21pbmcgY29ubmVjdGlvbnMuCistICAgICAgICAg ICAgYXNpbzo6aXA6OnRjcDo6YWNjZXB0b3IqIGFjY2VwdG9yXzsKKysgICAgICAgICAgICA6OmFz aW86OmlwOjp0Y3A6OmFjY2VwdG9yKiBhY2NlcHRvcl87CisgCisgICAgICAgICAgICAgLy8vIFRo ZSBsaXN0IG9mIGFjY2VwdGVkIGNvbm5lY3Rpb25zCisgICAgICAgICAgICAgbXV0YWJsZSBocHg6 OnNwaW5sb2NrIGNvbm5lY3Rpb25zX210eF87CitkaWZmIC0tZ2l0IGEvbGlicy9mdWxsL3BhcmNl bHBvcnRfdGNwL2luY2x1ZGUvaHB4L3BhcmNlbHBvcnRfdGNwL3JlY2VpdmVyLmhwcCBiL2xpYnMv ZnVsbC9wYXJjZWxwb3J0X3RjcC9pbmNsdWRlL2hweC9wYXJjZWxwb3J0X3RjcC9yZWNlaXZlci5o cHAKK2luZGV4IGZmYTkzN2JmMTdkNC4uOGY0N2IwYTQ2NWE5IDEwMDY0NAorLS0tIGEvbGlicy9m dWxsL3BhcmNlbHBvcnRfdGNwL2luY2x1ZGUvaHB4L3BhcmNlbHBvcnRfdGNwL3JlY2VpdmVyLmhw cAorKysrIGIvbGlicy9mdWxsL3BhcmNlbHBvcnRfdGNwL2luY2x1ZGUvaHB4L3BhcmNlbHBvcnRf dGNwL3JlY2VpdmVyLmhwcAorQEAgLTU2LDcgKzU2LDcgQEAgbmFtZXNwYWNlIGhweDo6cGFyY2Vs c2V0Ojpwb2xpY2llczo6dGNwIHsKKyAgICAgY2xhc3MgcmVjZWl2ZXIgOiBwdWJsaWMgcGFyY2Vs cG9ydF9jb25uZWN0aW9uPHJlY2VpdmVyPgorICAgICB7CisgICAgIHB1YmxpYzoKKy0gICAgICAg IHJlY2VpdmVyKGFzaW86OmlvX2NvbnRleHQmIGlvX3NlcnZpY2UsIHN0ZDo6dWludDY0X3QgbWF4 X2luYm91bmRfc2l6ZSwKKysgICAgICAgIHJlY2VpdmVyKDo6YXNpbzo6aW9fY29udGV4dCYgaW9f c2VydmljZSwgc3RkOjp1aW50NjRfdCBtYXhfaW5ib3VuZF9zaXplLAorICAgICAgICAgICAgIGNv bm5lY3Rpb25faGFuZGxlciYgcGFyY2VscG9ydCkKKyAgICAgICAgICAgOiBzb2NrZXRfKGlvX3Nl cnZpY2UpCisgICAgICAgICAgICwgbWF4X2luYm91bmRfc2l6ZV8obWF4X2luYm91bmRfc2l6ZSkK K0BAIC03Nyw3ICs3Nyw3IEBAIG5hbWVzcGFjZSBocHg6OnBhcmNlbHNldDo6cG9saWNpZXM6OnRj cCB7CisgICAgICAgICB9CisgCisgICAgICAgICAvLyBHZXQgdGhlIHNvY2tldCBhc3NvY2lhdGVk IHdpdGggdGhlIHBhcmNlbHBvcnRfY29ubmVjdGlvbi4KKy0gICAgICAgIGFzaW86OmlwOjp0Y3A6 OnNvY2tldCYgc29ja2V0KCkgbm9leGNlcHQKKysgICAgICAgIDo6YXNpbzo6aXA6OnRjcDo6c29j a2V0JiBzb2NrZXQoKSBub2V4Y2VwdAorICAgICAgICAgeworICAgICAgICAgICAgIHJldHVybiBz b2NrZXRfOworICAgICAgICAgfQorQEAgLTEwMCw4ICsxMDAsOCBAQCBuYW1lc3BhY2UgaHB4Ojpw YXJjZWxzZXQ6OnBvbGljaWVzOjp0Y3AgeworICAgICAgICAgICAgIGNodW5rX2J1ZmZlcnNfLmNs ZWFyKCk7CisgCisgICAgICAgICAgICAgLy8gSXNzdWUgYSByZWFkIG9wZXJhdGlvbiB0byByZWFk IHRoZSBtZXNzYWdlIHNpemUuCistICAgICAgICAgICAgdXNpbmcgYXNpbzo6YnVmZmVyOworLSAg ICAgICAgICAgIHN0ZDo6dmVjdG9yPGFzaW86Om11dGFibGVfYnVmZmVyPiBidWZmZXJzOworKyAg ICAgICAgICAgIHVzaW5nIDo6YXNpbzo6YnVmZmVyOworKyAgICAgICAgICAgIHN0ZDo6dmVjdG9y PDo6YXNpbzo6bXV0YWJsZV9idWZmZXI+IGJ1ZmZlcnM7CisgICAgICAgICAgICAgYnVmZmVycy5l bXBsYWNlX2JhY2soJmJ1ZmZlcl8uc2l6ZV8sIHNpemVvZihidWZmZXJfLnNpemVfKSk7CisgICAg ICAgICAgICAgYnVmZmVycy5lbXBsYWNlX2JhY2soCisgICAgICAgICAgICAgICAgICZidWZmZXJf LmRhdGFfc2l6ZV8sIHNpemVvZihidWZmZXJfLmRhdGFfc2l6ZV8pKTsKK0BAIC0xMTUsMTIgKzEx NSwxMiBAQCBuYW1lc3BhY2UgaHB4OjpwYXJjZWxzZXQ6OnBvbGljaWVzOjp0Y3AgeworICAgICAg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBsay51bmxvY2soKTsKKyAgICAgICAg ICAgICAgICAgICAgIC8vIHJlcG9ydCB0aGlzIHByb2JsZW0gYmFjayB0byB0aGUgaGFuZGxlcgor LSAgICAgICAgICAgICAgICAgICAgaGFuZGxlcihhc2lvOjplcnJvcjo6bWFrZV9lcnJvcl9jb2Rl KAorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzaW86OmVycm9yOjpub3RfY29ubmVjdGVkKSk7 CisrICAgICAgICAgICAgICAgICAgICBoYW5kbGVyKDo6YXNpbzo6ZXJyb3I6Om1ha2VfZXJyb3Jf Y29kZSgKKysgICAgICAgICAgICAgICAgICAgICAgICA6OmFzaW86OmVycm9yOjpub3RfY29ubmVj dGVkKSk7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgIH0K KyAjaWYgZGVmaW5lZChfX2xpbnV4KSB8fCBkZWZpbmVkKGxpbnV4KSB8fCBkZWZpbmVkKF9fbGlu dXhfXykKKy0gICAgICAgICAgICAgICAgYXNpbzo6ZGV0YWlsOjpzb2NrZXRfb3B0aW9uOjpib29s ZWFuPElQUFJPVE9fVENQLCBUQ1BfUVVJQ0tBQ0s+CisrICAgICAgICAgICAgICAgIDo6YXNpbzo6 ZGV0YWlsOjpzb2NrZXRfb3B0aW9uOjpib29sZWFuPElQUFJPVE9fVENQLCBUQ1BfUVVJQ0tBQ0s+ CisgICAgICAgICAgICAgICAgICAgICBxdWlja2Fjayh0cnVlKTsKKyAgICAgICAgICAgICAgICAg c29ja2V0Xy5zZXRfb3B0aW9uKHF1aWNrYWNrKTsKKyAjZW5kaWYKK0BAIC0xMjgsNyArMTI4LDcg QEAgbmFtZXNwYWNlIGhweDo6cGFyY2Vsc2V0Ojpwb2xpY2llczo6dGNwIHsKKyAgICAgICAgICAg ICAgICAgdm9pZCAocmVjZWl2ZXI6OipmKShzdGQ6OmVycm9yX2NvZGUgY29uc3QmLCBzdGQ6OnNp emVfdCwKKyAgICAgICAgICAgICAgICAgICAgIEhhbmRsZXIpID0gJnJlY2VpdmVyOjpoYW5kbGVf cmVhZF9oZWFkZXI8SGFuZGxlcj47CisgCistICAgICAgICAgICAgICAgIGFzaW86OmFzeW5jX3Jl YWQoc29ja2V0XywgYnVmZmVycywKKysgICAgICAgICAgICAgICAgOjphc2lvOjphc3luY19yZWFk KHNvY2tldF8sIGJ1ZmZlcnMsCisgICAgICAgICAgICAgICAgICAgICBocHg6OmJpbmQoZiwgc2hh cmVkX2Zyb21fdGhpcygpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyczo6 XzEsICAgIC8vIGVycm9yCisgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXJzOjpf MiwgICAgLy8gYnl0ZXNfdHJhbnNmZXJyZWQKK0BAIC0xNDQsNyArMTQ0LDcgQEAgbmFtZXNwYWNl IGhweDo6cGFyY2Vsc2V0Ojpwb2xpY2llczo6dGNwIHsKKyAgICAgICAgICAgICBpZiAoc29ja2V0 Xy5pc19vcGVuKCkpCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBzdGQ6OmVycm9y X2NvZGUgZWM7CistICAgICAgICAgICAgICAgIHNvY2tldF8uc2h1dGRvd24oYXNpbzo6aXA6OnRj cDo6c29ja2V0OjpzaHV0ZG93bl9ib3RoLCBlYyk7CisrICAgICAgICAgICAgICAgIHNvY2tldF8u c2h1dGRvd24oOjphc2lvOjppcDo6dGNwOjpzb2NrZXQ6OnNodXRkb3duX2JvdGgsIGVjKTsKKyAK KyAgICAgICAgICAgICAgICAgLy8gY2xvc2UgdGhlIHNvY2tldCB0byBnaXZlIGl0IGJhY2sgdG8g dGhlIE9TCisgICAgICAgICAgICAgICAgIHNvY2tldF8uY2xvc2UoZWMpOworQEAgLTE3OCw4ICsx NzgsOCBAQCBuYW1lc3BhY2UgaHB4OjpwYXJjZWxzZXQ6OnBvbGljaWVzOjp0Y3AgeworICAgICAg ICAgICAgICAgICBpZiAobWF4X2luYm91bmRfc2l6ZV8gIT0gMCAmJiBpbmJvdW5kX3NpemUgPiBt YXhfaW5ib3VuZF9zaXplXykKKyAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg ICAgLy8gcmVwb3J0IHRoaXMgcHJvYmxlbSBiYWNrIHRvIHRoZSBoYW5kbGVyCistICAgICAgICAg ICAgICAgICAgICBoYW5kbGVyKGFzaW86OmVycm9yOjptYWtlX2Vycm9yX2NvZGUoCistICAgICAg ICAgICAgICAgICAgICAgICAgYXNpbzo6ZXJyb3I6Om9wZXJhdGlvbl9ub3Rfc3VwcG9ydGVkKSk7 CisrICAgICAgICAgICAgICAgICAgICBoYW5kbGVyKDo6YXNpbzo6ZXJyb3I6Om1ha2VfZXJyb3Jf Y29kZSgKKysgICAgICAgICAgICAgICAgICAgICAgICA6OmFzaW86OmVycm9yOjpvcGVyYXRpb25f bm90X3N1cHBvcnRlZCkpOworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg ICAgICAgICB9CisgCitAQCAtMTg4LDcgKzE4OCw3IEBAIG5hbWVzcGFjZSBocHg6OnBhcmNlbHNl dDo6cG9saWNpZXM6OnRjcCB7CisgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzdGQ6 OnNpemVfdD4oaW5ib3VuZF9zaXplKTsKKyAjZW5kaWYKKyAgICAgICAgICAgICAgICAgLy8gcmVj ZWl2ZSBidWZmZXJzCistICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGFzaW86Om11dGFibGVf YnVmZmVyPiBidWZmZXJzOworKyAgICAgICAgICAgICAgICBzdGQ6OnZlY3Rvcjw6OmFzaW86Om11 dGFibGVfYnVmZmVyPiBidWZmZXJzOworIAorICAgICAgICAgICAgICAgICAvLyBkZXRlcm1pbmUg dGhlIHNpemUgb2YgdGhlIGNodW5rIGJ1ZmZlcgorICAgICAgICAgICAgICAgICBhdXRvIGNvbnN0 IG51bV96ZXJvX2NvcHlfY2h1bmtzID0gc3RhdGljX2Nhc3Q8c3RkOjpzaXplX3Q+KAorQEAgLTIx NSw3ICsyMTUsNyBAQCBuYW1lc3BhY2UgaHB4OjpwYXJjZWxzZXQ6OnBvbGljaWVzOjp0Y3Agewor ICAgICAgICAgICAgICAgICAgICAgLy8gYWRkIG1haW4gYnVmZmVyIGhvbGRpbmcgZGF0YSB0aGF0 IHdhcyBzZXJpYWxpemVkIG5vcm1hbGx5CisgICAgICAgICAgICAgICAgICAgICBidWZmZXJfLmRh dGFfLnJlc2l6ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzdGQ6OnNp emVfdD4oaW5ib3VuZF9zaXplKSk7CistICAgICAgICAgICAgICAgICAgICBidWZmZXJzLmVtcGxh Y2VfYmFjayhhc2lvOjpidWZmZXIoYnVmZmVyXy5kYXRhXykpOworKyAgICAgICAgICAgICAgICAg ICAgYnVmZmVycy5lbXBsYWNlX2JhY2soOjphc2lvOjpidWZmZXIoYnVmZmVyXy5kYXRhXykpOwor IAorICAgICAgICAgICAgICAgICAgICAgLy8gU3RhcnQgYW4gYXN5bmNocm9ub3VzIGNhbGwgdG8g cmVjZWl2ZSB0aGUgZGF0YS4KKyAgICAgICAgICAgICAgICAgICAgIGYgPSAmcmVjZWl2ZXI6Omhh bmRsZV9yZWFkX2NodW5rX2RhdGE8SGFuZGxlcj47CitAQCAtMjI1LDcgKzIyNSw3IEBAIG5hbWVz cGFjZSBocHg6OnBhcmNlbHNldDo6cG9saWNpZXM6OnRjcCB7CisgICAgICAgICAgICAgICAgICAg ICAvLyBhZGQgbWFpbiBidWZmZXIgaG9sZGluZyBkYXRhIHRoYXQgd2FzIHNlcmlhbGl6ZWQgbm9y bWFsbHkKKyAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl8uZGF0YV8ucmVzaXplKAorICAgICAg ICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHN0ZDo6c2l6ZV90PihpbmJvdW5kX3NpemUp KTsKKy0gICAgICAgICAgICAgICAgICAgIGJ1ZmZlcnMuZW1wbGFjZV9iYWNrKGFzaW86OmJ1ZmZl cihidWZmZXJfLmRhdGFfKSk7CisrICAgICAgICAgICAgICAgICAgICBidWZmZXJzLmVtcGxhY2Vf YmFjayg6OmFzaW86OmJ1ZmZlcihidWZmZXJfLmRhdGFfKSk7CisgCisgICAgICAgICAgICAgICAg ICAgICAvLyBTdGFydCBhbiBhc3luY2hyb25vdXMgY2FsbCB0byByZWNlaXZlIHRoZSBkYXRhLgor ICAgICAgICAgICAgICAgICAgICAgZiA9ICZyZWNlaXZlcjo6aGFuZGxlX3JlYWRfZGF0YTxIYW5k bGVyPjsKK0BAIC0yMzgsMTggKzIzOCwxOCBAQCBuYW1lc3BhY2UgaHB4OjpwYXJjZWxzZXQ6OnBv bGljaWVzOjp0Y3AgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxrLnVubG9jaygpOworIAor ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcG9ydCB0aGlzIHByb2JsZW0gYmFjayB0byB0 aGUgaGFuZGxlcgorLSAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXIoYXNpbzo6ZXJyb3I6 Om1ha2VfZXJyb3JfY29kZSgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNpbzo6ZXJy b3I6Om5vdF9jb25uZWN0ZWQpKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyKDo6 YXNpbzo6ZXJyb3I6Om1ha2VfZXJyb3JfY29kZSgKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOjphc2lvOjplcnJvcjo6bm90X2Nvbm5lY3RlZCkpOworICAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAKKyAjaWYgZGVmaW5lZChfX2xp bnV4KSB8fCBkZWZpbmVkKGxpbnV4KSB8fCBkZWZpbmVkKF9fbGludXhfXykKKy0gICAgICAgICAg ICAgICAgICAgIGFzaW86OmRldGFpbDo6c29ja2V0X29wdGlvbjo6Ym9vbGVhbjxJUFBST1RPX1RD UCwKKysgICAgICAgICAgICAgICAgICAgIDo6YXNpbzo6ZGV0YWlsOjpzb2NrZXRfb3B0aW9uOjpi b29sZWFuPElQUFJPVE9fVENQLAorICAgICAgICAgICAgICAgICAgICAgICAgIFRDUF9RVUlDS0FD Sz4KKyAgICAgICAgICAgICAgICAgICAgICAgICBxdWlja2Fjayh0cnVlKTsKKyAgICAgICAgICAg ICAgICAgICAgIHNvY2tldF8uc2V0X29wdGlvbihxdWlja2Fjayk7CisgI2VuZGlmCistICAgICAg ICAgICAgICAgICAgICBhc2lvOjphc3luY19yZWFkKHNvY2tldF8sIGJ1ZmZlcnMsCisrICAgICAg ICAgICAgICAgICAgICA6OmFzaW86OmFzeW5jX3JlYWQoc29ja2V0XywgYnVmZmVycywKKyAgICAg ICAgICAgICAgICAgICAgICAgICBocHg6OmJpbmQoZiwgc2hhcmVkX2Zyb21fdGhpcygpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcnM6Ol8xLCAgICAvLyBlcnJvciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbDo6cHJvdGVjdChoYW5kbGVyKSkpOwor QEAgLTI3MSw3ICsyNzEsNyBAQCBuYW1lc3BhY2UgaHB4OjpwYXJjZWxzZXQ6OnBvbGljaWVzOjp0 Y3AgeworICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg IC8vIHJlY2VpdmUgYnVmZmVycworLSAgICAgICAgICAgICAgICBzdGQ6OnZlY3Rvcjxhc2lvOjpt dXRhYmxlX2J1ZmZlcj4gYnVmZmVyczsKKysgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8Ojph c2lvOjptdXRhYmxlX2J1ZmZlcj4gYnVmZmVyczsKKyAKKyAgICAgICAgICAgICAgICAgLy8gYWRk IGFwcHJvcHJpYXRlbHkgc2l6ZWQgY2h1bmsgYnVmZmVycyBmb3IgdGhlIHplcm8tY29weSBkYXRh CisgICAgICAgICAgICAgICAgIGF1dG8gY29uc3QgbnVtX3plcm9fY29weV9jaHVua3MgPSBzdGF0 aWNfY2FzdDxzdGQ6OnNpemVfdD4oCitAQCAtMzU5LDE4ICszNTksMTggQEAgbmFtZXNwYWNlIGhw eDo6cGFyY2Vsc2V0Ojpwb2xpY2llczo6dGNwIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBs ay51bmxvY2soKTsKKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXBvcnQgdGhpcyBw cm9ibGVtIGJhY2sgdG8gdGhlIGhhbmRsZXIKKy0gICAgICAgICAgICAgICAgICAgICAgICBoYW5k bGVyKGFzaW86OmVycm9yOjptYWtlX2Vycm9yX2NvZGUoCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzaW86OmVycm9yOjpub3RfY29ubmVjdGVkKSk7CisrICAgICAgICAgICAgICAgICAg ICAgICAgaGFuZGxlcig6OmFzaW86OmVycm9yOjptYWtlX2Vycm9yX2NvZGUoCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDo6YXNpbzo6ZXJyb3I6Om5vdF9jb25uZWN0ZWQpKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICB9CisgCisg I2lmIGRlZmluZWQoX19saW51eCkgfHwgZGVmaW5lZChsaW51eCkgfHwgZGVmaW5lZChfX2xpbnV4 X18pCistICAgICAgICAgICAgICAgICAgICBhc2lvOjpkZXRhaWw6OnNvY2tldF9vcHRpb246OmJv b2xlYW48SVBQUk9UT19UQ1AsCisrICAgICAgICAgICAgICAgICAgICA6OmFzaW86OmRldGFpbDo6 c29ja2V0X29wdGlvbjo6Ym9vbGVhbjxJUFBST1RPX1RDUCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICBUQ1BfUVVJQ0tBQ0s+CisgICAgICAgICAgICAgICAgICAgICAgICAgcXVpY2thY2sodHJ1 ZSk7CisgICAgICAgICAgICAgICAgICAgICBzb2NrZXRfLnNldF9vcHRpb24ocXVpY2thY2spOwor ICNlbmRpZgorLSAgICAgICAgICAgICAgICAgICAgYXNpbzo6YXN5bmNfcmVhZChzb2NrZXRfLCBi dWZmZXJzLAorKyAgICAgICAgICAgICAgICAgICAgOjphc2lvOjphc3luY19yZWFkKHNvY2tldF8s IGJ1ZmZlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgaHB4OjpiaW5kKGYsIHNoYXJlZF9m cm9tX3RoaXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXJzOjpf MSwgICAgLy8gZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWw6OnByb3Rl Y3QoaGFuZGxlcikpKTsKK0BAIC00MjUsMTMgKzQyNSwxMyBAQCBuYW1lc3BhY2UgaHB4OjpwYXJj ZWxzZXQ6OnBvbGljaWVzOjp0Y3AgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxrLnVubG9j aygpOworIAorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcG9ydCB0aGlzIHByb2JsZW0g YmFjayB0byB0aGUgaGFuZGxlcgorLSAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXIoYXNp bzo6ZXJyb3I6Om1ha2VfZXJyb3JfY29kZSgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNpbzo6ZXJyb3I6Om5vdF9jb25uZWN0ZWQpKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBo YW5kbGVyKDo6YXNpbzo6ZXJyb3I6Om1ha2VfZXJyb3JfY29kZSgKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOjphc2lvOjplcnJvcjo6bm90X2Nvbm5lY3RlZCkpOworICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAKKy0gICAgICAg ICAgICAgICAgICAgIGFzaW86OmFzeW5jX3dyaXRlKHNvY2tldF8sCistICAgICAgICAgICAgICAg ICAgICAgICAgYXNpbzo6YnVmZmVyKCZhY2tfLCBzaXplb2YoYWNrXykpLAorKyAgICAgICAgICAg ICAgICAgICAgOjphc2lvOjphc3luY193cml0ZShzb2NrZXRfLAorKyAgICAgICAgICAgICAgICAg ICAgICAgIDo6YXNpbzo6YnVmZmVyKCZhY2tfLCBzaXplb2YoYWNrXykpLAorICAgICAgICAgICAg ICAgICAgICAgICAgIGhweDo6YmluZChmLCBzaGFyZWRfZnJvbV90aGlzKCksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyczo6XzEsICAgIC8vIGVycm9yLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1dGlsOjpwcm90ZWN0KGhhbmRsZXIpKSk7CitAQCAtNDYw LDcgKzQ2MCw3IEBAIG5hbWVzcGFjZSBocHg6OnBhcmNlbHNldDo6cG9saWNpZXM6OnRjcCB7Cisg ICAgICAgICB9CisgCisgICAgICAgICAvLyBTb2NrZXQgZm9yIHRoZSBwYXJjZWxwb3J0X2Nvbm5l Y3Rpb24uCistICAgICAgICBhc2lvOjppcDo6dGNwOjpzb2NrZXQgc29ja2V0XzsKKysgICAgICAg IDo6YXNpbzo6aXA6OnRjcDo6c29ja2V0IHNvY2tldF87CisgCisgICAgICAgICBzdGQ6OnVpbnQ2 NF90IG1heF9pbmJvdW5kX3NpemVfOworIAorZGlmZiAtLWdpdCBhL2xpYnMvZnVsbC9wYXJjZWxw b3J0X3RjcC9pbmNsdWRlL2hweC9wYXJjZWxwb3J0X3RjcC9zZW5kZXIuaHBwIGIvbGlicy9mdWxs L3BhcmNlbHBvcnRfdGNwL2luY2x1ZGUvaHB4L3BhcmNlbHBvcnRfdGNwL3NlbmRlci5ocHAKK2lu ZGV4IDU5ZjIzZjJkZDJlMC4uMThkZGY2ODEzNDdhIDEwMDY0NAorLS0tIGEvbGlicy9mdWxsL3Bh cmNlbHBvcnRfdGNwL2luY2x1ZGUvaHB4L3BhcmNlbHBvcnRfdGNwL3NlbmRlci5ocHAKKysrKyBi L2xpYnMvZnVsbC9wYXJjZWxwb3J0X3RjcC9pbmNsdWRlL2hweC9wYXJjZWxwb3J0X3RjcC9zZW5k ZXIuaHBwCitAQCAtNTcsNyArNTcsNyBAQCBuYW1lc3BhY2UgaHB4OjpwYXJjZWxzZXQ6OnBvbGlj aWVzOjp0Y3AgeworIAorICAgICBwdWJsaWM6CisgICAgICAgICAvLyBDb25zdHJ1Y3QgYSBzZW5k aW5nIHBhcmNlbHBvcnRfY29ubmVjdGlvbiB3aXRoIHRoZSBnaXZlbiBpb19jb250ZXh0LgorLSAg ICAgICAgc2VuZGVyKGFzaW86OmlvX2NvbnRleHQmIGlvX3NlcnZpY2UsCisrICAgICAgICBzZW5k ZXIoOjphc2lvOjppb19jb250ZXh0JiBpb19zZXJ2aWNlLAorICAgICAgICAgICAgIHBhcmNlbHNl dDo6bG9jYWxpdHkgY29uc3QmIGxvY2FsaXR5X2lkLAorICAgICAgICAgICAgIFtbbWF5YmVfdW51 c2VkXV0gcGFyY2Vsc2V0OjpwYXJjZWxwb3J0KiBwcCkKKyAgICAgICAgICAgOiBzb2NrZXRfKGlv X3NlcnZpY2UpCitAQCAtNzUsNyArNzUsNyBAQCBuYW1lc3BhY2UgaHB4OjpwYXJjZWxzZXQ6OnBv bGljaWVzOjp0Y3AgeworICAgICAgICAgICAgIGlmIChzb2NrZXRfLmlzX29wZW4oKSkKKyAgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgIHN0ZDo6ZXJyb3JfY29kZSBlYzsKKy0gICAgICAg ICAgICAgICAgc29ja2V0Xy5zaHV0ZG93bihhc2lvOjppcDo6dGNwOjpzb2NrZXQ6OnNodXRkb3du X2JvdGgsIGVjKTsKKysgICAgICAgICAgICAgICAgc29ja2V0Xy5zaHV0ZG93big6OmFzaW86Omlw Ojp0Y3A6OnNvY2tldDo6c2h1dGRvd25fYm90aCwgZWMpOworIAorICAgICAgICAgICAgICAgICAv LyBjbG9zZSB0aGUgc29ja2V0IHRvIGdpdmUgaXQgYmFjayB0byB0aGUgT1MKKyAgICAgICAgICAg ICAgICAgc29ja2V0Xy5jbG9zZShlYyk7CitAQCAtODMsNyArODMsNyBAQCBuYW1lc3BhY2UgaHB4 OjpwYXJjZWxzZXQ6OnBvbGljaWVzOjp0Y3AgeworICAgICAgICAgfQorIAorICAgICAgICAgLy8g R2V0IHRoZSBzb2NrZXQgYXNzb2NpYXRlZCB3aXRoIHRoZSBwYXJjZWxwb3J0X2Nvbm5lY3Rpb24u CistICAgICAgICBhc2lvOjppcDo6dGNwOjpzb2NrZXQmIHNvY2tldCgpIG5vZXhjZXB0CisrICAg ICAgICA6OmFzaW86OmlwOjp0Y3A6OnNvY2tldCYgc29ja2V0KCkgbm9leGNlcHQKKyAgICAgICAg IHsKKyAgICAgICAgICAgICByZXR1cm4gc29ja2V0XzsKKyAgICAgICAgIH0KK0BAIC05Nyw3ICs5 Nyw3IEBAIG5hbWVzcGFjZSBocHg6OnBhcmNlbHNldDo6cG9saWNpZXM6OnRjcCB7CisgICAgICAg ICB7CisgI2lmIGRlZmluZWQoSFBYX0RFQlVHKQorICAgICAgICAgICAgIHN0ZDo6ZXJyb3JfY29k ZSBlYzsKKy0gICAgICAgICAgICBhc2lvOjppcDo6dGNwOjpzb2NrZXQ6OmVuZHBvaW50X3R5cGUg Y29uc3QgZW5kcG9pbnQgPQorKyAgICAgICAgICAgIDo6YXNpbzo6aXA6OnRjcDo6c29ja2V0Ojpl bmRwb2ludF90eXBlIGNvbnN0IGVuZHBvaW50ID0KKyAgICAgICAgICAgICAgICAgc29ja2V0Xy5y ZW1vdGVfZW5kcG9pbnQoZWMpOworIAorICAgICAgICAgICAgIGxvY2FsaXR5IGNvbnN0JiBpbXBs ID0gcGFyY2VsX2xvY2FsaXR5X2lkLmdldDxsb2NhbGl0eT4oKTsKK0BAIC0xNDMsNyArMTQzLDcg QEAgbmFtZXNwYWNlIGhweDo6cGFyY2Vsc2V0Ojpwb2xpY2llczo6dGNwIHsKKyAjZW5kaWYKKyAg ICAgICAgICAgICAvLyBXcml0ZSB0aGUgc2VyaWFsaXplZCBkYXRhIHRvIHRoZSBzb2NrZXQuIFdl IHVzZSAiZ2F0aGVyLXdyaXRlIgorICAgICAgICAgICAgIC8vIHRvIHNlbmQgYm90aCB0aGUgaGVh ZGVyIGFuZCB0aGUgZGF0YSBpbiBhIHNpbmdsZSB3cml0ZSBvcGVyYXRpb24uCistICAgICAgICAg ICAgc3RkOjp2ZWN0b3I8YXNpbzo6Y29uc3RfYnVmZmVyPiBidWZmZXJzOworKyAgICAgICAgICAg IHN0ZDo6dmVjdG9yPDo6YXNpbzo6Y29uc3RfYnVmZmVyPiBidWZmZXJzOworICAgICAgICAgICAg IGJ1ZmZlcnMuZW1wbGFjZV9iYWNrKCZidWZmZXJfLnNpemVfLCBzaXplb2YoYnVmZmVyXy5zaXpl XykpOworICAgICAgICAgICAgIGJ1ZmZlcnMuZW1wbGFjZV9iYWNrKAorICAgICAgICAgICAgICAg ICAmYnVmZmVyXy5kYXRhX3NpemVfLCBzaXplb2YoYnVmZmVyXy5kYXRhX3NpemVfKSk7CitAQCAt MTYxLDcgKzE2MSw3IEBAIG5hbWVzcGFjZSBocHg6OnBhcmNlbHNldDo6cG9saWNpZXM6OnRjcCB7 CisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHBhcmNlbF9idWZmZXJfdHlwZTo6dHJh bnNtaXNzaW9uX2NodW5rX3R5cGUpKTsKKyAKKyAgICAgICAgICAgICAgICAgLy8gYWRkIG1haW4g YnVmZmVyIGhvbGRpbmcgZGF0YSB3aGljaCB3YXMgc2VyaWFsaXplZCBub3JtYWxseQorLSAgICAg ICAgICAgICAgICBidWZmZXJzLmVtcGxhY2VfYmFjayhhc2lvOjpidWZmZXIoYnVmZmVyXy5kYXRh XykpOworKyAgICAgICAgICAgICAgICBidWZmZXJzLmVtcGxhY2VfYmFjayg6OmFzaW86OmJ1ZmZl cihidWZmZXJfLmRhdGFfKSk7CisgCisgICAgICAgICAgICAgICAgIC8vIG5vdyBhZGQgY2h1bmtz IHRoZW1zZWx2ZXMsIHRob3NlIGhvbGQgemVyby1jb3B5IHNlcmlhbGl6ZWQgY2h1bmtzCisgICAg ICAgICAgICAgICAgIGZvciAoc2VyaWFsaXphdGlvbjo6c2VyaWFsaXphdGlvbl9jaHVuayYgYyA6 IGJ1ZmZlcl8uY2h1bmtzXykKK0BAIC0xNzQsNyArMTc0LDcgQEAgbmFtZXNwYWNlIGhweDo6cGFy Y2Vsc2V0Ojpwb2xpY2llczo6dGNwIHsKKyAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg eworICAgICAgICAgICAgICAgICAvLyBhZGQgbWFpbiBidWZmZXIgaG9sZGluZyBkYXRhIHdoaWNo IHdhcyBzZXJpYWxpemVkIG5vcm1hbGx5CistICAgICAgICAgICAgICAgIGJ1ZmZlcnMuZW1wbGFj ZV9iYWNrKGFzaW86OmJ1ZmZlcihidWZmZXJfLmRhdGFfKSk7CisrICAgICAgICAgICAgICAgIGJ1 ZmZlcnMuZW1wbGFjZV9iYWNrKDo6YXNpbzo6YnVmZmVyKGJ1ZmZlcl8uZGF0YV8pKTsKKyAgICAg ICAgICAgICB9CisgCisgICAgICAgICAgICAgLy8gdGhpcyBhZGRpdGlvbmFsIHdyYXBwaW5nIG9m IHRoZSBoYW5kbGVyIGludG8gYSBiaW5kIG9iamVjdCBpcworQEAgLTE4Myw3ICsxODMsNyBAQCBu YW1lc3BhY2UgaHB4OjpwYXJjZWxzZXQ6OnBvbGljaWVzOjp0Y3AgeworICAgICAgICAgICAgIHZv aWQgKHNlbmRlcjo6KmYpKHN0ZDo6ZXJyb3JfY29kZSBjb25zdCYsIHN0ZDo6c2l6ZV90KSA9Cisg ICAgICAgICAgICAgICAgICZzZW5kZXI6OmhhbmRsZV93cml0ZTsKKyAKKy0gICAgICAgICAgICBh c2lvOjphc3luY193cml0ZShzb2NrZXRfLCBidWZmZXJzLAorKyAgICAgICAgICAgIDo6YXNpbzo6 YXN5bmNfd3JpdGUoc29ja2V0XywgYnVmZmVycywKKyAgICAgICAgICAgICAgICAgaHB4OjpiaW5k KGYsIHNoYXJlZF9mcm9tX3RoaXMoKSwgaHB4OjpwbGFjZWhvbGRlcnM6Ol8xLAorICAgICAgICAg ICAgICAgICAgICAgaHB4OjpwbGFjZWhvbGRlcnM6Ol8yKSk7CisgICAgICAgICB9CitAQCAtMjQx LDcgKzI0MSw3IEBAIG5hbWVzcGFjZSBocHg6OnBhcmNlbHNldDo6cG9saWNpZXM6OnRjcCB7Cisg CisgICAgICAgICAgICAgLy8gbm93IGhhbmRsZSB0aGUgYWNrbm93bGVkZ21lbnQgYnl0ZSB3aGlj aCBpcyBzZW50IGJ5IHRoZSByZWNlaXZlcgorICNpZiBkZWZpbmVkKF9fbGludXgpIHx8IGRlZmlu ZWQobGludXgpIHx8IGRlZmluZWQoX19saW51eF9fKQorLSAgICAgICAgICAgIGFzaW86OmRldGFp bDo6c29ja2V0X29wdGlvbjo6Ym9vbGVhbjxJUFBST1RPX1RDUCwgVENQX1FVSUNLQUNLPgorKyAg ICAgICAgICAgIDo6YXNpbzo6ZGV0YWlsOjpzb2NrZXRfb3B0aW9uOjpib29sZWFuPElQUFJPVE9f VENQLCBUQ1BfUVVJQ0tBQ0s+CisgICAgICAgICAgICAgICAgIHF1aWNrYWNrKHRydWUpOworICAg ICAgICAgICAgIHNvY2tldF8uc2V0X29wdGlvbihxdWlja2Fjayk7CisgI2VuZGlmCitAQCAtMjQ5 LDcgKzI0OSw3IEBAIG5hbWVzcGFjZSBocHg6OnBhcmNlbHNldDo6cG9saWNpZXM6OnRjcCB7Cisg ICAgICAgICAgICAgdm9pZCAoc2VuZGVyOjoqZikoc3RkOjplcnJvcl9jb2RlIGNvbnN0JikgPQor ICAgICAgICAgICAgICAgICAmc2VuZGVyOjpoYW5kbGVfcmVhZF9hY2s7CisgCistICAgICAgICAg ICAgYXNpbzo6YXN5bmNfcmVhZChzb2NrZXRfLCBhc2lvOjpidWZmZXIoJmFja18sIHNpemVvZihh Y2tfKSksCisrICAgICAgICAgICAgOjphc2lvOjphc3luY19yZWFkKHNvY2tldF8sIGFzaW86OmJ1 ZmZlcigmYWNrXywgc2l6ZW9mKGFja18pKSwKKyAgICAgICAgICAgICAgICAgaHB4OjpiaW5kKGYs IHNoYXJlZF9mcm9tX3RoaXMoKSwgcGxhY2Vob2xkZXJzOjpfMSkpOworICAgICAgICAgfQorIAor QEAgLTI3MSw3ICsyNzEsNyBAQCBuYW1lc3BhY2UgaHB4OjpwYXJjZWxzZXQ6OnBvbGljaWVzOjp0 Y3AgeworICAgICAgICAgfQorIAorICAgICAgICAgLy8gU29ja2V0IGZvciB0aGUgcGFyY2VscG9y dF9jb25uZWN0aW9uLgorLSAgICAgICAgYXNpbzo6aXA6OnRjcDo6c29ja2V0IHNvY2tldF87Cisr ICAgICAgICA6OmFzaW86OmlwOjp0Y3A6OnNvY2tldCBzb2NrZXRfOworIAorICAgICAgICAgYm9v bCBhY2tfOworIAorZGlmZiAtLWdpdCBhL2xpYnMvZnVsbC9wYXJjZWxwb3J0X3RjcC9zcmMvY29u bmVjdGlvbl9oYW5kbGVyX3RjcC5jcHAgYi9saWJzL2Z1bGwvcGFyY2VscG9ydF90Y3Avc3JjL2Nv bm5lY3Rpb25faGFuZGxlcl90Y3AuY3BwCitpbmRleCBlNGU4MWEyODVjMzguLjcxODlmNWZiMTRk NCAxMDA2NDQKKy0tLSBhL2xpYnMvZnVsbC9wYXJjZWxwb3J0X3RjcC9zcmMvY29ubmVjdGlvbl9o YW5kbGVyX3RjcC5jcHAKKysrKyBiL2xpYnMvZnVsbC9wYXJjZWxwb3J0X3RjcC9zcmMvY29ubmVj dGlvbl9oYW5kbGVyX3RjcC5jcHAKK0BAIC04NiwxOCArODYsMTggQEAgbmFtZXNwYWNlIGhweDo6 cGFyY2Vsc2V0Ojpwb2xpY2llczo6dGNwIHsKKyAKKyAgICAgYm9vbCBjb25uZWN0aW9uX2hhbmRs ZXI6OmRvX3J1bigpCisgICAgIHsKKy0gICAgICAgIHVzaW5nIGFzaW86OmlwOjp0Y3A7CistICAg ICAgICBhc2lvOjppb19jb250ZXh0JiBpb19zZXJ2aWNlID0gaW9fc2VydmljZV9wb29sXy5nZXRf aW9fc2VydmljZSgpOworKyAgICAgICAgdXNpbmcgOjphc2lvOjppcDo6dGNwOworKyAgICAgICAg Ojphc2lvOjppb19jb250ZXh0JiBpb19zZXJ2aWNlID0gaW9fc2VydmljZV9wb29sXy5nZXRfaW9f c2VydmljZSgpOworICAgICAgICAgaWYgKG51bGxwdHIgPT0gYWNjZXB0b3JfKQorICAgICAgICAg ICAgIGFjY2VwdG9yXyA9IG5ldyB0Y3A6OmFjY2VwdG9yKGlvX3NlcnZpY2UpOworIAorICAgICAg ICAgLy8gaW5pdGlhbGl6ZSBuZXR3b3JrCisgICAgICAgICBzdGQ6OnNpemVfdCB0cmllZCA9IDA7 CisgICAgICAgICBleGNlcHRpb25fbGlzdCBlcnJvcnM7CistICAgICAgICB1dGlsOjplbmRwb2lu dF9pdGVyYXRvcl90eXBlIGNvbnN0IGVuZCA9IHV0aWw6OmFjY2VwdF9lbmQoKTsKKy0gICAgICAg IGZvciAodXRpbDo6ZW5kcG9pbnRfaXRlcmF0b3JfdHlwZSBpdCA9CisrICAgICAgICB1dGlsOjpk ZXRhaWw6OmVuZHBvaW50X2l0ZXJhdG9yX3R5cGUgY29uc3QgZW5kID0gdXRpbDo6YWNjZXB0X2Vu ZCgpOworKyAgICAgICAgZm9yICh1dGlsOjpkZXRhaWw6OmVuZHBvaW50X2l0ZXJhdG9yX3R5cGUg aXQgPQorICAgICAgICAgICAgICAgICAgdXRpbDo6YWNjZXB0X2JlZ2luKGhlcmVfLmdldDxsb2Nh bGl0eT4oKSwgaW9fc2VydmljZSk7CistICAgICAgICAgICAgIGl0ICE9IGVuZDsgKytpdCwgKyt0 cmllZCkKKysgICAgICAgICAgICBpdCAhPSBlbmQ7ICsraXQsICsrdHJpZWQpCisgICAgICAgICB7 CisgICAgICAgICAgICAgdHJ5CisgICAgICAgICAgICAgeworQEAgLTE1NiwxNCArMTU2LDE0IEBA IG5hbWVzcGFjZSBocHg6OnBhcmNlbHNldDo6cG9saWNpZXM6OnRjcCB7CisgICAgIHN0ZDo6c2hh cmVkX3B0cjxzZW5kZXI+IGNvbm5lY3Rpb25faGFuZGxlcjo6Y3JlYXRlX2Nvbm5lY3Rpb24oCisg ICAgICAgICBwYXJjZWxzZXQ6OmxvY2FsaXR5IGNvbnN0JiBsLCBlcnJvcl9jb2RlJiBlYykKKyAg ICAgeworLSAgICAgICAgYXNpbzo6aW9fY29udGV4dCYgaW9fc2VydmljZSA9IGlvX3NlcnZpY2Vf cG9vbF8uZ2V0X2lvX3NlcnZpY2UoKTsKKysgICAgICAgIDo6YXNpbzo6aW9fY29udGV4dCYgaW9f c2VydmljZSA9IGlvX3NlcnZpY2VfcG9vbF8uZ2V0X2lvX3NlcnZpY2UoKTsKKyAKKyAgICAgICAg IC8vIFRoZSBwYXJjZWwgZ2V0cyBzZXJpYWxpemVkIGluc2lkZSB0aGUgY29ubmVjdGlvbiBjb25z dHJ1Y3Rvciwgbm8KKyAgICAgICAgIC8vIG5lZWQgdG8ga2VlcCB0aGUgb3JpZ2luYWwgcGFyY2Vs IGFsaXZlIGFmdGVyIHRoaXMgY2FsbCByZXR1cm5lZC4KKyAgICAgICAgIGF1dG8gc2VuZGVyX2Nv bm5lY3Rpb24gPSBzdGQ6Om1ha2Vfc2hhcmVkPHNlbmRlcj4oaW9fc2VydmljZSwgbCwgdGhpcyk7 CisgCisgICAgICAgICAvLyBDb25uZWN0IHRvIHRoZSB0YXJnZXQgbG9jYWxpdHksIHJldHJ5IGlm IG5lZWRlZAorLSAgICAgICAgc3RkOjplcnJvcl9jb2RlIGVycm9yID0gYXNpbzo6ZXJyb3I6OnRy eV9hZ2FpbjsKKysgICAgICAgIHN0ZDo6ZXJyb3JfY29kZSBlcnJvciA9IDo6YXNpbzo6ZXJyb3I6 OnRyeV9hZ2FpbjsKKyAgICAgICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDA7IGkgPCBIUFhfTUFY X05FVFdPUktfUkVUUklFUzsgKytpKQorICAgICAgICAgeworICAgICAgICAgICAgIC8vIFRoZSBh Y2NlcHRvciBpcyBvbmx5IG51bGxwdHIgd2hlbiB0aGUgcGFyY2VscG9ydCBoYXMgYmVlbiBzdG9w cGVkLgorQEAgLTE3MywxMiArMTczLDEyIEBAIG5hbWVzcGFjZSBocHg6OnBhcmNlbHNldDo6cG9s aWNpZXM6OnRjcCB7CisgICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6OnNoYXJlZF9wdHI8c2Vu ZGVyPigpOworICAgICAgICAgICAgIHRyeQorICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAg ICAgdXRpbDo6ZW5kcG9pbnRfaXRlcmF0b3JfdHlwZSBlbmQgPSB1dGlsOjpjb25uZWN0X2VuZCgp OworLSAgICAgICAgICAgICAgICBmb3IgKHV0aWw6OmVuZHBvaW50X2l0ZXJhdG9yX3R5cGUgaXQg PQorKyAgICAgICAgICAgICAgICB1dGlsOjpkZXRhaWw6OmVuZHBvaW50X2l0ZXJhdG9yX3R5cGUg ZW5kID0gdXRpbDo6Y29ubmVjdF9lbmQoKTsKKysgICAgICAgICAgICAgICAgZm9yICh1dGlsOjpk ZXRhaWw6OmVuZHBvaW50X2l0ZXJhdG9yX3R5cGUgaXQgPQorICAgICAgICAgICAgICAgICAgICAg ICAgICB1dGlsOjpjb25uZWN0X2JlZ2luKGwuZ2V0PGxvY2FsaXR5PigpLCBpb19zZXJ2aWNlKTsK Ky0gICAgICAgICAgICAgICAgICAgICBpdCAhPSBlbmQ7ICsraXQpCisrICAgICAgICAgICAgICAg ICAgICBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAg ICAgICAgIGFzaW86OmlwOjp0Y3A6OnNvY2tldCYgcyA9IHNlbmRlcl9jb25uZWN0aW9uLT5zb2Nr ZXQoKTsKKysgICAgICAgICAgICAgICAgICAgIDo6YXNpbzo6aXA6OnRjcDo6c29ja2V0JiBzID0g c2VuZGVyX2Nvbm5lY3Rpb24tPnNvY2tldCgpOworICAgICAgICAgICAgICAgICAgICAgcy5jbG9z ZSgpOworICAgICAgICAgICAgICAgICAgICAgcy5jb25uZWN0KCppdCwgZXJyb3IpOworICAgICAg ICAgICAgICAgICAgICAgaWYgKCFlcnJvcikKK0BAIC0yMjcsMTAgKzIyNywxMCBAQCBuYW1lc3Bh Y2UgaHB4OjpwYXJjZWxzZXQ6OnBvbGljaWVzOjp0Y3AgeworIAorICAgICAgICAgLy8gbWFrZSBz dXJlIHRoZSBOYWdsZSBhbGdvcml0aG0gaXMgZGlzYWJsZWQgZm9yIHRoaXMgc29ja2V0LAorICAg ICAgICAgLy8gZGlzYWJsZSBsaW5nZXJpbmcgb24gY2xvc2UKKy0gICAgICAgIGFzaW86OmlwOjp0 Y3A6OnNvY2tldCYgcyA9IHNlbmRlcl9jb25uZWN0aW9uLT5zb2NrZXQoKTsKKysgICAgICAgIDo6 YXNpbzo6aXA6OnRjcDo6c29ja2V0JiBzID0gc2VuZGVyX2Nvbm5lY3Rpb24tPnNvY2tldCgpOwor IAorLSAgICAgICAgcy5zZXRfb3B0aW9uKGFzaW86OmlwOjp0Y3A6Om5vX2RlbGF5KHRydWUpKTsK Ky0gICAgICAgIHMuc2V0X29wdGlvbihhc2lvOjpzb2NrZXRfYmFzZTo6bGluZ2VyKHRydWUsIDAp KTsKKysgICAgICAgIHMuc2V0X29wdGlvbig6OmFzaW86OmlwOjp0Y3A6Om5vX2RlbGF5KHRydWUp KTsKKysgICAgICAgIHMuc2V0X29wdGlvbig6OmFzaW86OnNvY2tldF9iYXNlOjpsaW5nZXIodHJ1 ZSwgMCkpOworIAorICNpZiBkZWZpbmVkKEhQWF9IT0xET05fVE9fT1VUR09JTkdfQ09OTkVDVElP TlMpCisgICAgICAgICB7CitAQCAtMjg5LDcgKzI4OSw3IEBAIG5hbWVzcGFjZSBocHg6OnBhcmNl bHNldDo6cG9saWNpZXM6OnRjcCB7CisgICAgICAgICAgICAgLy8gaGFuZGxlIHRoaXMgaW5jb21p bmcgY29ubmVjdGlvbgorICAgICAgICAgICAgIHN0ZDo6c2hhcmVkX3B0cjxyZWNlaXZlcj4gYyhy ZWNlaXZlcl9jb25uKTsKKyAKKy0gICAgICAgICAgICBhc2lvOjppb19jb250ZXh0JiBpb19zZXJ2 aWNlID0gaW9fc2VydmljZV9wb29sXy5nZXRfaW9fc2VydmljZSgpOworKyAgICAgICAgICAgIDo6 YXNpbzo6aW9fY29udGV4dCYgaW9fc2VydmljZSA9IGlvX3NlcnZpY2VfcG9vbF8uZ2V0X2lvX3Nl cnZpY2UoKTsKKyAgICAgICAgICAgICByZWNlaXZlcl9jb25uLnJlc2V0KG5ldyByZWNlaXZlcigK KyAgICAgICAgICAgICAgICAgaW9fc2VydmljZSwgZ2V0X21heF9pbmJvdW5kX21lc3NhZ2Vfc2l6 ZSgpLCAqdGhpcykpOworICAgICAgICAgICAgIGFjY2VwdG9yXy0+YXN5bmNfYWNjZXB0KHJlY2Vp dmVyX2Nvbm4tPnNvY2tldCgpLAorQEAgLTMwMyw5ICszMDMsOSBAQCBuYW1lc3BhY2UgaHB4Ojpw YXJjZWxzZXQ6OnBvbGljaWVzOjp0Y3AgeworICAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAg ICAvLyBkaXNhYmxlIE5hZ2xlIGFsZ29yaXRobSwgZGlzYWJsZSBsaW5nZXJpbmcgb24gY2xvc2UK Ky0gICAgICAgICAgICBhc2lvOjppcDo6dGNwOjpzb2NrZXQmIHMgPSBjLT5zb2NrZXQoKTsKKy0g ICAgICAgICAgICBzLnNldF9vcHRpb24oYXNpbzo6aXA6OnRjcDo6bm9fZGVsYXkodHJ1ZSkpOwor LSAgICAgICAgICAgIHMuc2V0X29wdGlvbihhc2lvOjpzb2NrZXRfYmFzZTo6bGluZ2VyKHRydWUs IDApKTsKKysgICAgICAgICAgICA6OmFzaW86OmlwOjp0Y3A6OnNvY2tldCYgcyA9IGMtPnNvY2tl dCgpOworKyAgICAgICAgICAgIHMuc2V0X29wdGlvbig6OmFzaW86OmlwOjp0Y3A6Om5vX2RlbGF5 KHRydWUpKTsKKysgICAgICAgICAgICBzLnNldF9vcHRpb24oOjphc2lvOjpzb2NrZXRfYmFzZTo6 bGluZ2VyKHRydWUsIDApKTsKKyAKKyAgICAgICAgICAgICAvLyBub3cgYWNjZXB0IHRoZSBpbmNv bWluZyBjb25uZWN0aW9uIGJ5IHN0YXJ0aW5nIHRvIHJlYWQgZnJvbSB0aGUKKyAgICAgICAgICAg ICAvLyBzb2NrZXQKK0BAIC0zMjksNyArMzI5LDcgQEAgbmFtZXNwYWNlIGhweDo6cGFyY2Vsc2V0 Ojpwb2xpY2llczo6dGNwIHsKKyAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICB9CisgCist ICAgICAgICBpZiAoZSAhPSBhc2lvOjplcnJvcjo6b3BlcmF0aW9uX2Fib3J0ZWQgJiYgZSAhPSBh c2lvOjplcnJvcjo6ZW9mKQorKyAgICAgICAgaWYgKGUgIT0gOjphc2lvOjplcnJvcjo6b3BlcmF0 aW9uX2Fib3J0ZWQgJiYgZSAhPSA6OmFzaW86OmVycm9yOjplb2YpCisgICAgICAgICB7CisgICAg ICAgICAgICAgTFBUXyhlcnJvcikuZm9ybWF0KAorICAgICAgICAgICAgICAgICAiaGFuZGxlIHJl YWQgb3BlcmF0aW9uIGNvbXBsZXRpb246IGVycm9yOiB7fSIsIGUubWVzc2FnZSgpKTsKK2RpZmYg LS1naXQgYS9saWJzL2Z1bGwvcGFyY2Vsc2V0L3NyYy9wYXJjZWxoYW5kbGVyLmNwcCBiL2xpYnMv ZnVsbC9wYXJjZWxzZXQvc3JjL3BhcmNlbGhhbmRsZXIuY3BwCitpbmRleCBiMDFkYTM1NWE3MmYu LjFiMmM1YzE0OGYxYiAxMDA2NDQKKy0tLSBhL2xpYnMvZnVsbC9wYXJjZWxzZXQvc3JjL3BhcmNl bGhhbmRsZXIuY3BwCisrKysgYi9saWJzL2Z1bGwvcGFyY2Vsc2V0L3NyYy9wYXJjZWxoYW5kbGVy LmNwcAorQEAgLTkxMCwxMiArOTEwLDEyIEBAIG5hbWVzcGFjZSBocHg6OnBhcmNlbHNldCB7Cisg ICAgICAgICAgICAgLy8gSWYgd2UgYXJlIGluIGEgc3RvcHBlZCBzdGF0ZSwgaWdub3JlIHNvbWUg ZXJyb3JzCisgICAgICAgICAgICAgaWYgKGhweDo6aXNfc3RvcHBlZF9vcl9zaHV0dGluZ19kb3du KCkpCisgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICB1c2luZyBhc2lvOjplcnJvcjo6 bWFrZV9lcnJvcl9jb2RlOworLSAgICAgICAgICAgICAgICBpZiAoZWMgPT0gbWFrZV9lcnJvcl9j b2RlKGFzaW86OmVycm9yOjpjb25uZWN0aW9uX2Fib3J0ZWQpIHx8CistICAgICAgICAgICAgICAg ICAgICBlYyA9PSBtYWtlX2Vycm9yX2NvZGUoYXNpbzo6ZXJyb3I6OmNvbm5lY3Rpb25fcmVzZXQp IHx8CistICAgICAgICAgICAgICAgICAgICBlYyA9PSBtYWtlX2Vycm9yX2NvZGUoYXNpbzo6ZXJy b3I6OmJyb2tlbl9waXBlKSB8fAorLSAgICAgICAgICAgICAgICAgICAgZWMgPT0gbWFrZV9lcnJv cl9jb2RlKGFzaW86OmVycm9yOjpub3RfY29ubmVjdGVkKSB8fAorLSAgICAgICAgICAgICAgICAg ICAgZWMgPT0gbWFrZV9lcnJvcl9jb2RlKGFzaW86OmVycm9yOjplb2YpKQorKyAgICAgICAgICAg ICAgICB1c2luZyA6OmFzaW86OmVycm9yOjptYWtlX2Vycm9yX2NvZGU7CisrICAgICAgICAgICAg ICAgIGlmIChlYyA9PSBtYWtlX2Vycm9yX2NvZGUoOjphc2lvOjplcnJvcjo6Y29ubmVjdGlvbl9h Ym9ydGVkKSB8fAorKyAgICAgICAgICAgICAgICAgICAgZWMgPT0gbWFrZV9lcnJvcl9jb2RlKDo6 YXNpbzo6ZXJyb3I6OmNvbm5lY3Rpb25fcmVzZXQpIHx8CisrICAgICAgICAgICAgICAgICAgICBl YyA9PSBtYWtlX2Vycm9yX2NvZGUoOjphc2lvOjplcnJvcjo6YnJva2VuX3BpcGUpIHx8CisrICAg ICAgICAgICAgICAgICAgICBlYyA9PSBtYWtlX2Vycm9yX2NvZGUoOjphc2lvOjplcnJvcjo6bm90 X2Nvbm5lY3RlZCkgfHwKKysgICAgICAgICAgICAgICAgICAgIGVjID09IG1ha2VfZXJyb3JfY29k ZSg6OmFzaW86OmVycm9yOjplb2YpKQorICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg ICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgIH0KK0BAIC05MjMsNyArOTIzLDcgQEAg bmFtZXNwYWNlIGhweDo6cGFyY2Vsc2V0IHsKKyAgICAgICAgICAgICBlbHNlIGlmIChocHg6OnRv bGVyYXRlX25vZGVfZmF1bHRzKCkpCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBp ZiAoZWMgPT0KKy0gICAgICAgICAgICAgICAgICAgIGFzaW86OmVycm9yOjptYWtlX2Vycm9yX2Nv ZGUoYXNpbzo6ZXJyb3I6OmNvbm5lY3Rpb25fcmVzZXQpKQorKyAgICAgICAgICAgICAgICAgICAg Ojphc2lvOjplcnJvcjo6bWFrZV9lcnJvcl9jb2RlKDo6YXNpbzo6ZXJyb3I6OmNvbm5lY3Rpb25f cmVzZXQpKQorICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm47 CisgICAgICAgICAgICAgICAgIH0KCmRpZmYgLS1naXQgYS9ocHguc3BlYyBiL2hweC5zcGVjCmlu ZGV4IGNkYTU3NmUuLjhjMGQwN2IgMTAwNjQ0Ci0tLSBhL2hweC5zcGVjCisrKyBiL2hweC5zcGVj CkBAIC0xLDEyICsxLDE0IEBACiBOYW1lOiAgICAgICAgICAgaHB4CiBWZXJzaW9uOiAgICAgICAg MS4xMS4wCi1SZWxlYXNlOiAgICAgICAgNCV7P2Rpc3R9CitSZWxlYXNlOiAgICAgICAgNSV7P2Rp c3R9CiBTdW1tYXJ5OiAgICAgICAgR2VuZXJhbCBQdXJwb3NlIEMrKyBSdW50aW1lIFN5c3RlbQog TGljZW5zZTogICAgICAgIEJTTC0xLjAKIFVSTDogICAgICAgICAgICBodHRwczovL2hweC5zdGVs bGFyLWdyb3VwLm9yZy8KIFNvdXJjZTA6ICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vU1RFbGxB Ui1HUk9VUC9ocHgvYXJjaGl2ZS92JXt2ZXJzaW9ufS8le25hbWV9LSV7dmVyc2lvbn0udGFyLmd6 CiAjIGZyb20gdXBzdHJlYW0gaHR0cHM6Ly9naXRodWIuY29tL1NURWxsQVItR1JPVVAvaHB4L2lz c3Vlcy82ODY3I2lzc3VlY29tbWVudC0zODI5MjYxMzQ4CiBQYXRjaDA6ICAgICAgICAgZ2NjLTE2 LnBhdGNoCisjIGZyb20gdXBzdHJlYW0gaHR0cHM6Ly9naXRodWIuY29tL1RoZUhQWFByb2plY3Qv aHB4L2lzc3Vlcy83NDI4I2lzc3VlY29tbWVudC01MTY4MDc4NTczCitQYXRjaDE6ICAgICAgICAg aHR0cHM6Ly9wYXRjaC1kaWZmLmdpdGh1YnVzZXJjb250ZW50LmNvbS9yYXcvVGhlSFBYUHJvamVj dC9ocHgvcHVsbC83NDYzLmRpZmYKIAogQnVpbGRSZXF1aXJlczogIGdjYy1jKysgPj0gNC45CiBC dWlsZFJlcXVpcmVzOiAgZ3BlcmZ0b29scy1kZXZlbApAQCAtMjc5LDYgKzI4MSwxMCBAQCBkb25l CiAle19saWJkaXJ9L2xpYiouc28qCiAKICVjaGFuZ2Vsb2cKKyogRnJpIEF1ZyAyMSAyMDI2IENo cmlzdG9waCBKdW5naGFucyA8anVuZ2hhbnNAdm90Y2Eub3JnPiAtIDEuMTEuMC01CistIEZpeCBi dWlsZCB3aXRoIGFzaW8tMS4zOC4xCistIEZpeGVzOiByaGJ6IzI1MDQxMjkKKwogKiBUaHUgSnVs IDE2IDIwMjYgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0 Lm9yZz4gLSAxLjExLjAtNAogLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3Jn L3dpa2kvRmVkb3JhXzQ1X01hc3NfUmVidWlsZAogCg==