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: Mat Booth To: git-commits@fedoraproject.org Subject: [rpms/google-gson] epel10: Add patch to prevent hard OSGi dep on 'sun.misc' package Date: Mon, 17 Aug 2026 12:38:56 GMT Message-ID: <178697033617.1.18144035232606095403.rpms-google-gson-77732a348d3a@fedoraproject.org> List-ID: X-Git-Repo: rpms/google-gson X-Git-Branch: epel10 X-Git-Rev: 77732a348d3a6eaedaf7b5c9b62045888451d850 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ29vZ2xlLWdzb24KICAgICAgICAgICAgQnJhbmNoIDogZXBlbDEwCiAgICAg ICAgICAgIENvbW1pdCA6IDc3NzMyYTM0OGQzYTZlYWVkYWY3YjVjOWI2MjA0NTg4ODQ1MWQ4NTAK ICAgICAgICAgICAgQXV0aG9yIDogTWF0IEJvb3RoIDxtYXQuYm9vdGhAcmVkaGF0LmNvbT4KICAg ICAgICAgICAgRGF0ZSAgIDogMjAyMC0wOC0yN1QxMTo0NTo1MSswMTowMAogICAgICAgICAgICBT dGF0cyAgOiArNDMxLy0yOTcgaW4gOCBmaWxlKHMpCiAgICAgICAgICAgIFVSTCAgICA6IGh0dHBz Oi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ29vZ2xlLWdzb24vYy83NzczMmEzNDhkM2E2 ZWFlZGFmN2I1YzliNjIwNDU4ODg0NTFkODUwP2JyYW5jaD1lcGVsMTAKCiAgICAgICAgICAgIExv ZzoKICAgICAgICAgICAgQWRkIHBhdGNoIHRvIHByZXZlbnQgaGFyZCBPU0dpIGRlcCBvbiAnc3Vu Lm1pc2MnIHBhY2thZ2UKRml4IGJvZ3VzIGRhdGUgaW4gY2hhbmdlbG9nCgotLS0KZGlmZiAtLWdp dCBhLzAwMDEtVXBkYXRlLXRvLWxhdGVzdC12ZXJzaW9uLW9mLWJuZC1tYXZlbi1wbHVnaW4ucGF0 Y2ggYi8wMDAxLVVwZGF0ZS10by1sYXRlc3QtdmVyc2lvbi1vZi1ibmQtbWF2ZW4tcGx1Z2luLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmYWJkN2EKLS0tIC9kZXYv bnVsbAorKysgYi8wMDAxLVVwZGF0ZS10by1sYXRlc3QtdmVyc2lvbi1vZi1ibmQtbWF2ZW4tcGx1 Z2luLnBhdGNoCkBAIC0wLDAgKzEsNzcgQEAKK0Zyb20gYzJmZDA5MmY5N2U0ZWM2ZWU3MDBmMTM0 YmMxYjUyYjYyYjg2MzBhMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hdCBCb290 aCA8bWF0LmJvb3RoQHJlZGhhdC5jb20+CitEYXRlOiBUaHUsIDI3IEF1ZyAyMDIwIDEwOjI3OjAx ICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMS80XSBVcGRhdGUgdG8gbGF0ZXN0IHZlcnNpb24gb2Yg Ym5kLW1hdmVuLXBsdWdpbgorCitUaGlzIHZlcnNpb24gaGFzIGEgY291cGxlIG9mIGFkdmFudGFn ZXM6CisKKzEpIEl0IGlzIGF3YXJlIG9mIG1vZHVsZS1pbmZvLmNsYXNzIGZpbGVzLCB3aGljaCBt ZWFucyB3ZSBkb24ndAorbmVlZCB0byBtYW51YWxseSBvdmVycmlkZSB0aGUgIlJlcXVpcmUtQ2Fw YWJpbGl0eSIgaGVhZGVyLgorCisyKSBFeHRlcm5hbCBwYWNrYWdlcyB1c2VkIGJ5IHJlZmxlY3Rp b24gYXJlIG5vdyBkZXRlY3RlZCwgaS5lLgordGhlICJzdW4ubWlzYyIgcGFja2FnZSBpcyBub3cg YWRkZWQgdG8gdGhlICJJbXBvcnQtUGFja2FnZSIKK2hlYWRlci4gVGhpcyBpcyBtYW51YWxseSBn aXZlbiBvcHRpb25hbCByZXNvbHV0aW9uIHNpbmNlIGl0CitpcyBvYnZpb3VzbHkgbm90IHByZXNl bnQgb24gYWxsIEpWTXMuCisKKzMpIEl0IGFsc28gaW50cm9kdWNlcyBzb21lIG5ldyB1c2VmdWwg T1NHaSBoZWFkZXJzOgorIC0gQnVuZGxlLURvY1VSTCAob3ZlcnJpZGVuIHdpdGggY29ycmVjdCBV UkwgZm9yIG1hbnVhbCkKKyAtIEJ1bmRsZS1MaWNlbnNlCisgLSBCdW5kbGUtU0NNCisKK1RoaXMg Y2hhbmdlIGFsc28gcmVtb3ZlcyB1bm5lY2Vzc2FyeSBtZW50aW9uIG9mIHRoZSBmZWxpeAorYnVu ZGxlLXBsdWdpbiBpbiB0aGUgcGx1Z2luTWFuYWdlbWVudCBzZWN0aW9uIG9mIHRoZSBwYXJlbnQg cG9tLgorCitTaWduZWQtb2ZmLWJ5OiBNYXQgQm9vdGggPG1hdC5ib290aEByZWRoYXQuY29tPgor LS0tCisgZ3Nvbi9ibmQuYm5kIHwgMiArKworIGdzb24vcG9tLnhtbCB8IDIgKy0KKyBwb20ueG1s ICAgICAgfCA2IC0tLS0tLQorIDMgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA3IGRl bGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ3Nvbi9ibmQuYm5kIGIvZ3Nvbi9ibmQuYm5kCitp bmRleCBjOThmY2ZkLi43NzA2ZDhhIDEwMDY0NAorLS0tIGEvZ3Nvbi9ibmQuYm5kCisrKysgYi9n c29uL2JuZC5ibmQKK0BAIC0zLDcgKzMsOSBAQCBCdW5kbGUtTmFtZTogJHtwcm9qZWN0Lm5hbWV9 CisgQnVuZGxlLURlc2NyaXB0aW9uOiAke3Byb2plY3QuZGVzY3JpcHRpb259CisgQnVuZGxlLVZl bmRvcjogR29vZ2xlIEdzb24gUHJvamVjdAorIEJ1bmRsZS1Db250YWN0QWRkcmVzczogJHtwcm9q ZWN0LnBhcmVudC51cmx9CisrQnVuZGxlLURvY1VSTDogJHtwcm9qZWN0LnBhcmVudC51cmx9L2Js b2IvbWFzdGVyL1VzZXJHdWlkZS5tZAorIEJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25t ZW50OiBKMlNFLTEuNSwgSmF2YVNFLTEuNiwgSmF2YVNFLTEuNywgSmF2YVNFLTEuOAorK0ltcG9y dC1QYWNrYWdlOiBzdW4ubWlzYztyZXNvbHV0aW9uOj1vcHRpb25hbCwqCisgCisgLXJlbW92ZWhl YWRlcnM6IFByaXZhdGUtUGFja2FnZQorIAorZGlmZiAtLWdpdCBhL2dzb24vcG9tLnhtbCBiL2dz b24vcG9tLnhtbAoraW5kZXggZmZlNDFhYy4uOTA5YTkxYSAxMDA2NDQKKy0tLSBhL2dzb24vcG9t LnhtbAorKysrIGIvZ3Nvbi9wb20ueG1sCitAQCAtMzQsNyArMzQsNyBAQAorICAgICAgIDxwbHVn aW4+CisgICAgICAgICA8Z3JvdXBJZD5iaXouYVF1dGUuYm5kPC9ncm91cElkPgorICAgICAgICAg PGFydGlmYWN0SWQ+Ym5kLW1hdmVuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKy0gICAgICAgIDx2ZXJz aW9uPjQuMC4wPC92ZXJzaW9uPgorKyAgICAgICAgPHZlcnNpb24+NS4xLjI8L3ZlcnNpb24+Cisg ICAgICAgICA8ZXhlY3V0aW9ucz4KKyAgICAgICAgICAgPGV4ZWN1dGlvbj4KKyAgICAgICAgICAg ICA8Z29hbHM+CitkaWZmIC0tZ2l0IGEvcG9tLnhtbCBiL3BvbS54bWwKK2luZGV4IDQ3NzRlNzAu Ljg3MTYwMTQgMTAwNjQ0CistLS0gYS9wb20ueG1sCisrKysgYi9wb20ueG1sCitAQCAtMTAzLDEy ICsxMDMsNiBAQAorICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8 L2dyb3VwSWQ+CisgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphci1wbHVnaW48L2FydGlm YWN0SWQ+CisgICAgICAgICA8L3BsdWdpbj4KKy0gICAgICAgIDxwbHVnaW4+CistICAgICAgICAg IDxncm91cElkPm9yZy5hcGFjaGUuZmVsaXg8L2dyb3VwSWQ+CistICAgICAgICAgIDxhcnRpZmFj dElkPm1hdmVuLWJ1bmRsZS1wbHVnaW48L2FydGlmYWN0SWQ+CistICAgICAgICAgIDx2ZXJzaW9u PjMuMy4wPC92ZXJzaW9uPgorLSAgICAgICAgICA8aW5oZXJpdGVkPnRydWU8L2luaGVyaXRlZD4K Ky0gICAgICAgIDwvcGx1Z2luPgorICAgICAgIDwvcGx1Z2lucz4KKyAgICAgPC9wbHVnaW5NYW5h Z2VtZW50PgorICAgICA8cGx1Z2lucz4KKy0tIAorMi4yNi4yCisKCmRpZmYgLS1naXQgYS8wMDAy LUFsc28tZXhwb3J0LWludGVybmFsLXBhY2thZ2VzLWluLU9TR2ktbWV0YWRhdGEucGF0Y2ggYi8w MDAyLUFsc28tZXhwb3J0LWludGVybmFsLXBhY2thZ2VzLWluLU9TR2ktbWV0YWRhdGEucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDZkYWIxZQotLS0gL2Rldi9udWxs CisrKyBiLzAwMDItQWxzby1leHBvcnQtaW50ZXJuYWwtcGFja2FnZXMtaW4tT1NHaS1tZXRhZGF0 YS5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGcm9tIGFkMDEyZmE2YWNjNTM1NjBhMDdkMDU2NzZh YTIyZDFhZmM2NmJmMjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXQgQm9vdGgg PG1hdC5ib290aEByZWRoYXQuY29tPgorRGF0ZTogVGh1LCAyNyBBdWcgMjAyMCAxMDo1Mjo1OCAr MDEwMAorU3ViamVjdDogW1BBVENIIDIvNF0gQWxzbyBleHBvcnQgaW50ZXJuYWwgcGFja2FnZXMg aW4gT1NHaSBtZXRhZGF0YQorCistLS0KKyBnc29uL2JuZC5ibmQgfCA1ICsrKystCisgMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEv Z3Nvbi9ibmQuYm5kIGIvZ3Nvbi9ibmQuYm5kCitpbmRleCA3NzA2ZDhhLi44NDY5OTMwIDEwMDY0 NAorLS0tIGEvZ3Nvbi9ibmQuYm5kCisrKysgYi9nc29uL2JuZC5ibmQKK0BAIC0xMyw0ICsxMyw3 IEBAIEltcG9ydC1QYWNrYWdlOiBzdW4ubWlzYztyZXNvbHV0aW9uOj1vcHRpb25hbCwqCisgICAg IGNvbS5nb29nbGUuZ3NvbixcCisgICAgIGNvbS5nb29nbGUuZ3Nvbi5hbm5vdGF0aW9ucyxcCisg ICAgIGNvbS5nb29nbGUuZ3Nvbi5yZWZsZWN0LFwKKy0gICAgY29tLmdvb2dsZS5nc29uLnN0cmVh bQorKyAgICBjb20uZ29vZ2xlLmdzb24uc3RyZWFtLFwKKysgICAgY29tLmdvb2dsZS5nc29uLmlu dGVybmFsO3gtaW50ZXJuYWw6PXRydWUsXAorKyAgICBjb20uZ29vZ2xlLmdzb24uaW50ZXJuYWwu YmluZDt4LWludGVybmFsOj10cnVlLFwKKysgICAgY29tLmdvb2dsZS5nc29uLmludGVybmFsLmJp bmQudXRpbDt4LWludGVybmFsOj10cnVlCistLSAKKzIuMjYuMgorCgpkaWZmIC0tZ2l0IGEvMDAw My1BbGxvdy1idWlsZGluZy1vbi1KYXZhLTgucGF0Y2ggYi8wMDAzLUFsbG93LWJ1aWxkaW5nLW9u LUphdmEtOC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTQwMmQ4 Ci0tLSAvZGV2L251bGwKKysrIGIvMDAwMy1BbGxvdy1idWlsZGluZy1vbi1KYXZhLTgucGF0Y2gK QEAgLTAsMCArMSwyNyBAQAorRnJvbSA1NWJhNzRkOTY3ZGY5NTNiNGE1YjY0NmJlNDMwNTg3N2Q2 YmIyNjdjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF0IEJvb3RoIDxtYXQuYm9v dGhAcmVkaGF0LmNvbT4KK0RhdGU6IFRodSwgMjcgQXVnIDIwMjAgMTE6MDg6NDQgKzAxMDAKK1N1 YmplY3Q6IFtQQVRDSCAzLzRdIEFsbG93IGJ1aWxkaW5nIG9uIEphdmEgOAorCistLS0KKyBwb20u eG1sIHwgMyArLS0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25z KC0pCisKK2RpZmYgLS1naXQgYS9wb20ueG1sIGIvcG9tLnhtbAoraW5kZXggODcxNjAxNC4uM2Nl OGEzZCAxMDA2NDQKKy0tLSBhL3BvbS54bWwKKysrKyBiL3BvbS54bWwKK0BAIC02OSw5ICs2OSw4 IEBACisgICAgICAgICAgICAgICA8aWQ+ZGVmYXVsdC1jb21waWxlPC9pZD4KKyAgICAgICAgICAg ICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICA8amRrVG9vbGNoYWluPgorLSAg ICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjk8L3ZlcnNpb24+CisrICAgICAgICAgICAgICAgICAg PHZlcnNpb24+ODwvdmVyc2lvbj4KKyAgICAgICAgICAgICAgICAgPC9qZGtUb29sY2hhaW4+Cist ICAgICAgICAgICAgICAgIDxyZWxlYXNlPjk8L3JlbGVhc2U+CisgICAgICAgICAgICAgICA8L2Nv bmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgPC9leGVjdXRpb24+CisgICAgICAgICAgICAgPGV4 ZWN1dGlvbj4KKy0tIAorMi4yNi4yCisKCmRpZmYgLS1naXQgYS8wMDA0LVRoaXMtY29tbWl0LWFk ZGVkLWEtZGVwZW5kZW5jeS1vbi10ZW1wbGF0aW5nLW1hdmVuLXAucGF0Y2ggYi8wMDA0LVRoaXMt Y29tbWl0LWFkZGVkLWEtZGVwZW5kZW5jeS1vbi10ZW1wbGF0aW5nLW1hdmVuLXAucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmMyOTdjMwotLS0gL2Rldi9udWxsCisr KyBiLzAwMDQtVGhpcy1jb21taXQtYWRkZWQtYS1kZXBlbmRlbmN5LW9uLXRlbXBsYXRpbmctbWF2 ZW4tcC5wYXRjaApAQCAtMCwwICsxLDI4MiBAQAorRnJvbSA3YmM2YjNkYWUxYjk0OGE0MGY4MTIy M2FjZDhlYjQxZTUyMjQwMzA3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF0IEJv b3RoIDxtYXQuYm9vdGhAcmVkaGF0LmNvbT4KK0RhdGU6IFRodSwgMjcgQXVnIDIwMjAgMTE6MzE6 NDYgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCA0LzRdIFRoaXMgY29tbWl0IGFkZGVkIGEgZGVwZW5k ZW5jeSBvbgorIHRlbXBsYXRpbmctbWF2ZW4tcGx1Z2luLCB3ZSBkb24ndCB3YW50IGl0IG5vciBu ZWVkIGl0LCBzbyB3ZSByZXZlcnQgaXQKKyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dzb24v Y29tbWl0L2Q4NGUyNmQKKworLS0tCisgZ3Nvbi9wb20ueG1sICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMTcgLS0tLQorIC4uLi9nb29nbGUvZ3Nvbi9pbnRlcm5hbC9Hc29uQnVp bGRDb25maWcuamF2YSB8IDMyIC0tLS0tLS0KKyBnc29uL3NyYy9tYWluL2phdmEvY29tL2dvb2ds ZS9nc29uL0dzb24uamF2YSAgfCAxNSArLS0KKyAuLi4vR3NvblZlcnNpb25EaWFnbm9zdGljc1Rl c3QuamF2YSAgICAgICAgICAgfCA5NiAtLS0tLS0tLS0tLS0tLS0tLS0tCisgLi4uL2dzb24vaW50 ZXJuYWwvR3NvbkJ1aWxkQ29uZmlnVGVzdC5qYXZhICAgIHwgMzMgLS0tLS0tLQorIDUgZmlsZXMg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDE5MiBkZWxldGlvbnMoLSkKKyBkZWxldGUgbW9kZSAx MDA2NDQgZ3Nvbi9zcmMvbWFpbi9qYXZhLXRlbXBsYXRlcy9jb20vZ29vZ2xlL2dzb24vaW50ZXJu YWwvR3NvbkJ1aWxkQ29uZmlnLmphdmEKKyBkZWxldGUgbW9kZSAxMDA2NDQgZ3Nvbi9zcmMvdGVz dC9qYXZhL2NvbS9nb29nbGUvZ3Nvbi9mdW5jdGlvbmFsL0dzb25WZXJzaW9uRGlhZ25vc3RpY3NU ZXN0LmphdmEKKyBkZWxldGUgbW9kZSAxMDA2NDQgZ3Nvbi9zcmMvdGVzdC9qYXZhL2NvbS9nb29n bGUvZ3Nvbi9pbnRlcm5hbC9Hc29uQnVpbGRDb25maWdUZXN0LmphdmEKKworZGlmZiAtLWdpdCBh L2dzb24vcG9tLnhtbCBiL2dzb24vcG9tLnhtbAoraW5kZXggOTA5YTkxYS4uYjg5ODRjYyAxMDA2 NDQKKy0tLSBhL2dzb24vcG9tLnhtbAorKysrIGIvZ3Nvbi9wb20ueG1sCitAQCAtNTYsMjMgKzU2 LDYgQEAKKyAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUuZmVsaXg8L2dyb3VwSWQ+CisgICAg ICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1idW5kbGUtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAg IDwvcGx1Z2luPgorLSAgICAgIDxwbHVnaW4+CistICAgICAgICA8Z3JvdXBJZD5vcmcuY29kZWhh dXMubW9qbzwvZ3JvdXBJZD4KKy0gICAgICAgIDxhcnRpZmFjdElkPnRlbXBsYXRpbmctbWF2ZW4t cGx1Z2luPC9hcnRpZmFjdElkPgorLSAgICAgICAgPHZlcnNpb24+MS4wLjA8L3ZlcnNpb24+Cist ICAgICAgICA8ZXhlY3V0aW9ucz4KKy0gICAgICAgICAgPGV4ZWN1dGlvbj4KKy0gICAgICAgICAg ICA8aWQ+ZmlsdGVyaW5nLWphdmEtdGVtcGxhdGVzPC9pZD4KKy0gICAgICAgICAgICA8Z29hbHM+ CistICAgICAgICAgICAgICA8Z29hbD5maWx0ZXItc291cmNlczwvZ29hbD4KKy0gICAgICAgICAg ICA8L2dvYWxzPgorLSAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorLSAgICAgICAgICAgICAg PHNvdXJjZURpcmVjdG9yeT4ke2Jhc2VkaXJ9L3NyYy9tYWluL2phdmEtdGVtcGxhdGVzPC9zb3Vy Y2VEaXJlY3Rvcnk+CistICAgICAgICAgICAgICA8b3V0cHV0RGlyZWN0b3J5PiR7cHJvamVjdC5i dWlsZC5kaXJlY3Rvcnl9L2dlbmVyYXRlZC1zb3VyY2VzL2phdmEtdGVtcGxhdGVzPC9vdXRwdXRE aXJlY3Rvcnk+CistICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorLSAgICAgICAgICA8L2V4 ZWN1dGlvbj4KKy0gICAgICAgIDwvZXhlY3V0aW9ucz4KKy0gICAgICA8L3BsdWdpbj4KKyAgICAg PC9wbHVnaW5zPgorICAgPC9idWlsZD4KKyA8L3Byb2plY3Q+CitkaWZmIC0tZ2l0IGEvZ3Nvbi9z cmMvbWFpbi9qYXZhLXRlbXBsYXRlcy9jb20vZ29vZ2xlL2dzb24vaW50ZXJuYWwvR3NvbkJ1aWxk Q29uZmlnLmphdmEgYi9nc29uL3NyYy9tYWluL2phdmEtdGVtcGxhdGVzL2NvbS9nb29nbGUvZ3Nv bi9pbnRlcm5hbC9Hc29uQnVpbGRDb25maWcuamF2YQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCBhOTRjOTZiLi4wMDAwMDAwCistLS0gYS9nc29uL3NyYy9tYWluL2phdmEtdGVtcGxh dGVzL2NvbS9nb29nbGUvZ3Nvbi9pbnRlcm5hbC9Hc29uQnVpbGRDb25maWcuamF2YQorKysrIC9k ZXYvbnVsbAorQEAgLTEsMzIgKzAsMCBAQAorLS8qCistICogQ29weXJpZ2h0IChDKSAyMDE4IFRo ZSBHc29uIGF1dGhvcnMKKy0gKgorLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5z ZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLSAqIHlvdSBtYXkgbm90IHVzZSB0aGlz IGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy0gKiBZb3UgbWF5 IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy0gKgorLSAqIGh0dHA6Ly93d3cuYXBh Y2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLSAqCistICogVW5sZXNzIHJlcXVpcmVkIGJ5 IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLSAqIGRp c3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIg QkFTSVMsCistICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQs IGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCistICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUg c3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLSAqIGxpbWl0YXRp b25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLSAqLworLQorLXBhY2thZ2UgY29tLmdvb2dsZS5nc29u LmludGVybmFsOworLQorLS8qKgorLSAqIEJ1aWxkIGNvbmZpZ3VyYXRpb24gZm9yIEdzb24uIFRo aXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IHBvcHVsYXRlZCBieQorLSAqIHRlbXBsYXRpbmctbWF2 ZW4tcGx1Z2luIGFuZCAuamF2YS8uY2xhc3MgZmlsZXMgYXJlIGdlbmVyYXRlZCBmb3IgdXNlIGlu IEdzb24uCistICoKKy0gKiBAYXV0aG9yIEluZGVyamVldCBTaW5naAorLSAqLworLXB1YmxpYyBm aW5hbCBjbGFzcyBHc29uQnVpbGRDb25maWcgeworLSAgLy8gQmFzZWQgb24gaHR0cHM6Ly9zdGFj a292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjQ2OTkyMi9nZW5lcmF0ZS1hLXZlcnNpb24tamF2YS1m aWxlLWluLW1hdmVuCistCistICAvKiogVGhpcyBmaWVsZCBpcyBhdXRvbWF0aWNhbGx5IHBvcHVs YXRlZCBieSBNYXZlbiB3aGVuIGEgYnVpbGQgaXMgdHJpZ2dlcmVkICovCistICBwdWJsaWMgc3Rh dGljIGZpbmFsIFN0cmluZyBWRVJTSU9OID0gIiR7cHJvamVjdC52ZXJzaW9ufSI7CistCistICBw cml2YXRlIEdzb25CdWlsZENvbmZpZygpIHsgfQorLX0KK2RpZmYgLS1naXQgYS9nc29uL3NyYy9t YWluL2phdmEvY29tL2dvb2dsZS9nc29uL0dzb24uamF2YSBiL2dzb24vc3JjL21haW4vamF2YS9j b20vZ29vZ2xlL2dzb24vR3Nvbi5qYXZhCitpbmRleCAyN2YzZWU5Li5kNTg0ZWNlIDEwMDY0NAor LS0tIGEvZ3Nvbi9zcmMvbWFpbi9qYXZhL2NvbS9nb29nbGUvZ3Nvbi9Hc29uLmphdmEKKysrKyBi L2dzb24vc3JjL21haW4vamF2YS9jb20vZ29vZ2xlL2dzb24vR3Nvbi5qYXZhCitAQCAtMzcsNyAr MzcsNiBAQCBpbXBvcnQgamF2YS51dGlsLmNvbmN1cnJlbnQuYXRvbWljLkF0b21pY0xvbmdBcnJh eTsKKyAKKyBpbXBvcnQgY29tLmdvb2dsZS5nc29uLmludGVybmFsLkNvbnN0cnVjdG9yQ29uc3Ry dWN0b3I7CisgaW1wb3J0IGNvbS5nb29nbGUuZ3Nvbi5pbnRlcm5hbC5FeGNsdWRlcjsKKy1pbXBv cnQgY29tLmdvb2dsZS5nc29uLmludGVybmFsLkdzb25CdWlsZENvbmZpZzsKKyBpbXBvcnQgY29t Lmdvb2dsZS5nc29uLmludGVybmFsLlByaW1pdGl2ZXM7CisgaW1wb3J0IGNvbS5nb29nbGUuZ3Nv bi5pbnRlcm5hbC5TdHJlYW1zOworIGltcG9ydCBjb20uZ29vZ2xlLmdzb24uaW50ZXJuYWwuYmlu ZC5BcnJheVR5cGVBZGFwdGVyOworQEAgLTQ2Miw3ICs0NjEsNyBAQCBwdWJsaWMgZmluYWwgY2xh c3MgR3NvbiB7CisgICAgICAgICAgIHJldHVybiBjYW5kaWRhdGU7CisgICAgICAgICB9CisgICAg ICAgfQorLSAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkdTT04gKCIg KyBHc29uQnVpbGRDb25maWcuVkVSU0lPTiArICIpIGNhbm5vdCBoYW5kbGUgIiArIHR5cGUpOwor KyAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIkdTT04gY2Fubm90IGhh bmRsZSAiICsgdHlwZSk7CisgICAgIH0gZmluYWxseSB7CisgICAgICAgdGhyZWFkQ2FsbHMucmVt b3ZlKHR5cGUpOworIAorQEAgLTcwNCwxMCArNzAzLDYgQEAgcHVibGljIGZpbmFsIGNsYXNzIEdz b24geworICAgICAgICgoVHlwZUFkYXB0ZXI8T2JqZWN0PikgYWRhcHRlcikud3JpdGUod3JpdGVy LCBzcmMpOworICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgdGhyb3cgbmV3 IEpzb25JT0V4Y2VwdGlvbihlKTsKKy0gICAgfSBjYXRjaCAoQXNzZXJ0aW9uRXJyb3IgZSkgewor LSAgICAgIEFzc2VydGlvbkVycm9yIGVycm9yID0gbmV3IEFzc2VydGlvbkVycm9yKCJBc3NlcnRp b25FcnJvciAoR1NPTiAiICsgR3NvbkJ1aWxkQ29uZmlnLlZFUlNJT04gKyAiKTogIiArIGUuZ2V0 TWVzc2FnZSgpKTsKKy0gICAgICBlcnJvci5pbml0Q2F1c2UoZSk7CistICAgICAgdGhyb3cgZXJy b3I7CisgICAgIH0gZmluYWxseSB7CisgICAgICAgd3JpdGVyLnNldExlbmllbnQob2xkTGVuaWVu dCk7CisgICAgICAgd3JpdGVyLnNldEh0bWxTYWZlKG9sZEh0bWxTYWZlKTsKK0BAIC03ODQsMTAg Kzc3OSw2IEBAIHB1YmxpYyBmaW5hbCBjbGFzcyBHc29uIHsKKyAgICAgICBTdHJlYW1zLndyaXRl KGpzb25FbGVtZW50LCB3cml0ZXIpOworICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7Cisg ICAgICAgdGhyb3cgbmV3IEpzb25JT0V4Y2VwdGlvbihlKTsKKy0gICAgfSBjYXRjaCAoQXNzZXJ0 aW9uRXJyb3IgZSkgeworLSAgICAgIEFzc2VydGlvbkVycm9yIGVycm9yID0gbmV3IEFzc2VydGlv bkVycm9yKCJBc3NlcnRpb25FcnJvciAoR1NPTiAiICsgR3NvbkJ1aWxkQ29uZmlnLlZFUlNJT04g KyAiKTogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKy0gICAgICBlcnJvci5pbml0Q2F1c2UoZSk7Cist ICAgICAgdGhyb3cgZXJyb3I7CisgICAgIH0gZmluYWxseSB7CisgICAgICAgd3JpdGVyLnNldExl bmllbnQob2xkTGVuaWVudCk7CisgICAgICAgd3JpdGVyLnNldEh0bWxTYWZlKG9sZEh0bWxTYWZl KTsKK0BAIC05NDUsMTAgKzkzNiw2IEBAIHB1YmxpYyBmaW5hbCBjbGFzcyBHc29uIHsKKyAgICAg fSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworICAgICAgIC8vIFRPRE8oaW5kZXIpOiBGaWd1cmUg b3V0IHdoZXRoZXIgaXQgaXMgaW5kZWVkIHJpZ2h0IHRvIHJldGhyb3cgdGhpcyBhcyBKc29uU3lu dGF4RXhjZXB0aW9uCisgICAgICAgdGhyb3cgbmV3IEpzb25TeW50YXhFeGNlcHRpb24oZSk7Cist ICAgIH0gY2F0Y2ggKEFzc2VydGlvbkVycm9yIGUpIHsKKy0gICAgICBBc3NlcnRpb25FcnJvciBl cnJvciA9IG5ldyBBc3NlcnRpb25FcnJvcigiQXNzZXJ0aW9uRXJyb3IgKEdTT04gIiArIEdzb25C dWlsZENvbmZpZy5WRVJTSU9OICsgIik6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CistICAgICAgZXJy b3IuaW5pdENhdXNlKGUpOworLSAgICAgIHRocm93IGVycm9yOworICAgICB9IGZpbmFsbHkgewor ICAgICAgIHJlYWRlci5zZXRMZW5pZW50KG9sZExlbmllbnQpOworICAgICB9CitkaWZmIC0tZ2l0 IGEvZ3Nvbi9zcmMvdGVzdC9qYXZhL2NvbS9nb29nbGUvZ3Nvbi9mdW5jdGlvbmFsL0dzb25WZXJz aW9uRGlhZ25vc3RpY3NUZXN0LmphdmEgYi9nc29uL3NyYy90ZXN0L2phdmEvY29tL2dvb2dsZS9n c29uL2Z1bmN0aW9uYWwvR3NvblZlcnNpb25EaWFnbm9zdGljc1Rlc3QuamF2YQorZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CitpbmRleCAzNmVmZjhlLi4wMDAwMDAwCistLS0gYS9nc29uL3NyYy90 ZXN0L2phdmEvY29tL2dvb2dsZS9nc29uL2Z1bmN0aW9uYWwvR3NvblZlcnNpb25EaWFnbm9zdGlj c1Rlc3QuamF2YQorKysrIC9kZXYvbnVsbAorQEAgLTEsOTYgKzAsMCBAQAorLS8qCistICogQ29w eXJpZ2h0IChDKSAyMDE4IEdzb24gQXV0aG9ycworLSAqCistICogTGljZW5zZWQgdW5kZXIgdGhl IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CistICogeW91IG1h eSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNl LgorLSAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLSAqCistICog aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCistICoKKy0gKiBVbmxl c3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNv ZnR3YXJlCistICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQg b24gYW4gIkFTIElTIiBCQVNJUywKKy0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9O UyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy0gKiBTZWUgdGhlIExp Y2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k CistICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCistICovCistcGFja2FnZSBjb20u Z29vZ2xlLmdzb24uZnVuY3Rpb25hbDsKKy0KKy1pbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsK Ky1pbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CistCistaW1wb3J0IG9yZy5qdW5pdC5C ZWZvcmU7CistaW1wb3J0IG9yZy5qdW5pdC5UZXN0OworLQorLWltcG9ydCBjb20uZ29vZ2xlLmdz b24uR3NvbjsKKy1pbXBvcnQgY29tLmdvb2dsZS5nc29uLkdzb25CdWlsZGVyOworLWltcG9ydCBj b20uZ29vZ2xlLmdzb24uVHlwZUFkYXB0ZXI7CistaW1wb3J0IGNvbS5nb29nbGUuZ3Nvbi5zdHJl YW0uSnNvblJlYWRlcjsKKy1pbXBvcnQgY29tLmdvb2dsZS5nc29uLnN0cmVhbS5Kc29uV3JpdGVy OworLQorLWltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7CistCistLyoqCistICogRnVu Y3Rpb25hbCB0ZXN0cyB0byB2YWxpZGF0ZSBwcmludGluZyBvZiBHc29uIHZlcnNpb24gb24gQXNz ZXJ0aW9uRXJyb3JzCistICoKKy0gKiBAYXV0aG9yIEluZGVyamVldCBTaW5naAorLSAqLworLXB1 YmxpYyBjbGFzcyBHc29uVmVyc2lvbkRpYWdub3N0aWNzVGVzdCBleHRlbmRzIFRlc3RDYXNlIHsK Ky0gIHByaXZhdGUgc3RhdGljIGZpbmFsIFBhdHRlcm4gR1NPTl9WRVJTSU9OX1BBVFRFUk4gPSBQ YXR0ZXJuLmNvbXBpbGUoIihcXChHU09OIFxcZFxcLlxcZFxcLlxcZCkoPzpbLS5dW0EtWl0rKT9c XCkkIik7CistCistICBwcml2YXRlIEdzb24gZ3NvbjsKKy0KKy0gIEBCZWZvcmUKKy0gIHB1Ymxp YyB2b2lkIHNldFVwKCkgeworLSAgICBnc29uID0gbmV3IEdzb25CdWlsZGVyKCkucmVnaXN0ZXJU eXBlQWRhcHRlcihUZXN0VHlwZS5jbGFzcywgbmV3IFR5cGVBZGFwdGVyPFRlc3RUeXBlPigpIHsK Ky0gICAgICBAT3ZlcnJpZGUgcHVibGljIHZvaWQgd3JpdGUoSnNvbldyaXRlciBvdXQsIFRlc3RU eXBlIHZhbHVlKSB7CistICAgICAgICB0aHJvdyBuZXcgQXNzZXJ0aW9uRXJyb3IoIkV4cGVjdGVk IGR1cmluZyBzZXJpYWxpemF0aW9uIik7CistICAgICAgfQorLSAgICAgIEBPdmVycmlkZSBwdWJs aWMgVGVzdFR5cGUgcmVhZChKc29uUmVhZGVyIGluKSB0aHJvd3MgSU9FeGNlcHRpb24geworLSAg ICAgICAgdGhyb3cgbmV3IEFzc2VydGlvbkVycm9yKCJFeHBlY3RlZCBkdXJpbmcgZGVzZXJpYWxp emF0aW9uIik7CistICAgICAgfQorLSAgICB9KS5jcmVhdGUoKTsKKy0gIH0KKy0KKy0gIEBUZXN0 CistICBwdWJsaWMgdm9pZCB0ZXN0VmVyc2lvblBhdHRlcm4oKSB7CistICAgIGFzc2VydFRydWUo R1NPTl9WRVJTSU9OX1BBVFRFUk4ubWF0Y2hlcigiKEdTT04gMi44LjUpIikubWF0Y2hlcygpKTsK Ky0gICAgYXNzZXJ0VHJ1ZShHU09OX1ZFUlNJT05fUEFUVEVSTi5tYXRjaGVyKCIoR1NPTiAyLjgu NS1TTkFQU0hPVCkiKS5tYXRjaGVzKCkpOworLSAgfQorLQorLSAgQFRlc3QKKy0gIHB1YmxpYyB2 b2lkIHRlc3RBc3NlcnRpb25FcnJvckluU2VyaWFsaXphdGlvblByaW50c1ZlcnNpb24oKSB7Cist ICAgIHRyeSB7CistICAgICAgZ3Nvbi50b0pzb24obmV3IFRlc3RUeXBlKCkpOworLSAgICAgIGZh aWwoKTsKKy0gICAgfSBjYXRjaCAoQXNzZXJ0aW9uRXJyb3IgZXhwZWN0ZWQpIHsKKy0gICAgICBl bnN1cmVBc3NlcnRpb25FcnJvclByaW50c0dzb25WZXJzaW9uKGV4cGVjdGVkKTsKKy0gICAgfQor LSAgfQorLQorLSAgQFRlc3QKKy0gIHB1YmxpYyB2b2lkIHRlc3RBc3NlcnRpb25FcnJvckluRGVz ZXJpYWxpemF0aW9uUHJpbnRzVmVyc2lvbigpIHsKKy0gICAgdHJ5IHsKKy0gICAgICBnc29uLmZy b21Kc29uKCJ7J2EnOidhYmMnfSIsIFRlc3RUeXBlLmNsYXNzKTsKKy0gICAgICBmYWlsKCk7Cist ICAgIH0gY2F0Y2ggKEFzc2VydGlvbkVycm9yIGV4cGVjdGVkKSB7CistICAgICAgZW5zdXJlQXNz ZXJ0aW9uRXJyb3JQcmludHNHc29uVmVyc2lvbihleHBlY3RlZCk7CistICAgIH0KKy0gIH0KKy0K Ky0gIHByaXZhdGUgdm9pZCBlbnN1cmVBc3NlcnRpb25FcnJvclByaW50c0dzb25WZXJzaW9uKEFz c2VydGlvbkVycm9yIGV4cGVjdGVkKSB7CistICAgIFN0cmluZyBtc2cgPSBleHBlY3RlZC5nZXRN ZXNzYWdlKCk7CistICAgIC8vIFN5c3RlbS5lcnIucHJpbnRsbihtc2cpOworLSAgICBpbnQgc3Rh cnQgPSBtc2cuaW5kZXhPZigiKEdTT04iKTsKKy0gICAgYXNzZXJ0VHJ1ZShzdGFydCA+IDApOwor LSAgICBpbnQgZW5kID0gbXNnLmluZGV4T2YoIik6IikgKyAxOworLSAgICBhc3NlcnRUcnVlKGVu ZCA+IDAgJiYgZW5kID4gc3RhcnQgKyA2KTsKKy0gICAgU3RyaW5nIHZlcnNpb24gPSBtc2cuc3Vi c3RyaW5nKHN0YXJ0LCBlbmQpOworLSAgICAvLyBTeXN0ZW0uZXJyLnByaW50bG4odmVyc2lvbik7 CistICAgIGFzc2VydFRydWUoR1NPTl9WRVJTSU9OX1BBVFRFUk4ubWF0Y2hlcih2ZXJzaW9uKS5t YXRjaGVzKCkpOworLSAgfQorLQorLSAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgVGVzdFR5 cGUgeworLSAgICBAU3VwcHJlc3NXYXJuaW5ncygidW51c2VkIikKKy0gICAgU3RyaW5nIGE7Cist ICB9CistfQorZGlmZiAtLWdpdCBhL2dzb24vc3JjL3Rlc3QvamF2YS9jb20vZ29vZ2xlL2dzb24v aW50ZXJuYWwvR3NvbkJ1aWxkQ29uZmlnVGVzdC5qYXZhIGIvZ3Nvbi9zcmMvdGVzdC9qYXZhL2Nv bS9nb29nbGUvZ3Nvbi9pbnRlcm5hbC9Hc29uQnVpbGRDb25maWdUZXN0LmphdmEKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggZGMzOWJjMC4uMDAwMDAwMAorLS0tIGEvZ3Nvbi9zcmMv dGVzdC9qYXZhL2NvbS9nb29nbGUvZ3Nvbi9pbnRlcm5hbC9Hc29uQnVpbGRDb25maWdUZXN0Lmph dmEKKysrKyAvZGV2L251bGwKK0BAIC0xLDMzICswLDAgQEAKKy0vKgorLSAqIENvcHlyaWdodCAo QykgMjAxOCBUaGUgR3NvbiBhdXRob3JzCistICoKKy0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBh Y2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy0gKiB5b3UgbWF5IG5v dCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCist ICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CistICoKKy0gKiBodHRw Oi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy0gKgorLSAqIFVubGVzcyBy ZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdh cmUKKy0gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBh biAiQVMgSVMiIEJBU0lTLAorLSAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9G IEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLSAqIFNlZSB0aGUgTGljZW5z ZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy0g KiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy0gKi8KKy1wYWNrYWdlIGNvbS5nb29n bGUuZ3Nvbi5pbnRlcm5hbDsKKy0KKy1pbXBvcnQgc3RhdGljIG9yZy5qdW5pdC5Bc3NlcnQuYXNz ZXJ0RmFsc2U7CistCistaW1wb3J0IG9yZy5qdW5pdC5UZXN0OworLQorLS8qKgorLSAqIFVuaXQg dGVzdHMgZm9yIHtAY29kZSBHc29uQnVpbGRDb25maWd9CistICoKKy0gKiBAYXV0aG9yIEluZGVy amVldCBTaW5naAorLSAqLworLXB1YmxpYyBjbGFzcyBHc29uQnVpbGRDb25maWdUZXN0IHsKKy0K Ky0gIEBUZXN0CistICBwdWJsaWMgdm9pZCB0ZXN0RW5zdXJlR3NvbkJ1aWxkQ29uZmlnR2V0c1Vw ZGF0ZWRUb01hdmVuVmVyc2lvbigpIHsKKy0gICAgYXNzZXJ0RmFsc2UoIiR7cHJvamVjdC52ZXJz aW9ufSIuZXF1YWxzKEdzb25CdWlsZENvbmZpZy5WRVJTSU9OKSk7CistICB9CistfQorLS0gCisy LjI2LjIKKwoKZGlmZiAtLWdpdCBhL2dvb2dsZS1nc29uLnNwZWMgYi9nb29nbGUtZ3Nvbi5zcGVj CmluZGV4IDZhMGQwOWEuLjc4YTdiMjYgMTAwNjQ0Ci0tLSBhL2dvb2dsZS1nc29uLnNwZWMKKysr IGIvZ29vZ2xlLWdzb24uc3BlYwpAQCAtMSwxNyArMSwyMiBAQAogTmFtZTogICAgICAgICAgIGdv b2dsZS1nc29uCiBWZXJzaW9uOiAgICAgICAgMi44LjYKLVJlbGVhc2U6ICAgICAgICA2JXs/ZGlz dH0KK1JlbGVhc2U6ICAgICAgICA3JXs/ZGlzdH0KIFN1bW1hcnk6ICAgICAgICBKYXZhIGxpYiBm b3IgY29udmVyc2lvbiBvZiBKYXZhIG9iamVjdHMgaW50byBKU09OIHJlcHJlc2VudGF0aW9uCiBM aWNlbnNlOiAgICAgICAgQVNMIDIuMAogVVJMOiAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNv bS9nb29nbGUvZ3NvbgogU291cmNlMDogICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUv Z3Nvbi9hcmNoaXZlL2dzb24tcGFyZW50LSV7dmVyc2lvbn0udGFyLmd6Ci1QYXRjaDA6ICAgICAg ICAgb3NnaS1leHBvcnQtaW50ZXJuYWwucGF0Y2gKLVBhdGNoMTogICAgICAgICBqYXZhLWVpZ2h0 LWJ1aWxkLnBhdGNoCiAKLSMgVGhpcyBjb21taXQgYWRkZWQgYSBkZXBlbmRlbmN5IG9uIHRlbXBs YXRpbmctbWF2ZW4tcGx1Z2luLAotIyB3ZSBkb24ndCB3YW50IGl0IG5vciBuZWVkIGl0LCBzbyB3 ZSByZXZlcnQgaXQKLSMgaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nc29uL2NvbW1pdC9kODRl MjZkCi1QYXRjaDI6ICAgICAgICAgbm8tdGVtcGxhdGluZy1tYXZlbi1wbHVnaW4ucGF0Y2gKKyMg UFIgc2VudCB1cHN0cmVhbTogaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nc29uL3B1bGwvMTc3 MAorUGF0Y2gwOiAwMDAxLVVwZGF0ZS10by1sYXRlc3QtdmVyc2lvbi1vZi1ibmQtbWF2ZW4tcGx1 Z2luLnBhdGNoCisKKyMgSW50ZXJuYWwgcGFja2FnZXMgYXJlIG5hdWdodGlseSB1c2VkIGJ5IG90 aGVyIHBhY2thZ2VzIGluIEZlZG9yYQorUGF0Y2gxOiAwMDAyLUFsc28tZXhwb3J0LWludGVybmFs LXBhY2thZ2VzLWluLU9TR2ktbWV0YWRhdGEucGF0Y2gKKworUGF0Y2gyOiAwMDAzLUFsbG93LWJ1 aWxkaW5nLW9uLUphdmEtOC5wYXRjaAorCisjIFJlbW92ZSBkZXBlbmRlbmN5IG9uIHVuYXZhaWxh YmxlIHRlbXBsYXRpbmctbWF2ZW4tcGx1Z2luCisjIFJldmVydHMgdXBzdHJlYW0gY29tbWl0IGh0 dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvZ3Nvbi9jb21taXQvZDg0ZTI2ZAorUGF0Y2gzOiAwMDA0 LVRoaXMtY29tbWl0LWFkZGVkLWEtZGVwZW5kZW5jeS1vbi10ZW1wbGF0aW5nLW1hdmVuLXAucGF0 Y2gKIAogQnVpbGRBcmNoOiAgICAgIG5vYXJjaAogCkBAIC0zNiwxMSArNDEsMTIgQEAgVGhpcyBw YWNrYWdlIGNvbnRhaW5zIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiBmb3IgJXtuYW1lfS4KICVwYXRj aDAgLXAxCiAlcGF0Y2gxIC1wMQogJXBhdGNoMiAtcDEKKyVwYXRjaDMgLXAxCiAKICMgcmVtb3Zl IHVubmVjZXNzYXJ5IGRlcGVuZGVuY3kgb24gcGFyZW50IFBPTQogJXBvbV9yZW1vdmVfcGFyZW50 CiAKLSMgcHJlc2VuY2Ugb2YgdGhlc2UgZmlsZXMgYnJlYWtzIGJ1aWxkcyB3aXRoIEphdmEgOAor IyBwcmVzZW5jZSBvZiB0aGVzZSBmaWxlcyBicmVha3MgYnVpbGRzIHdpdGggSmF2YSA4LCBzZWUg YWxzbyBQYXRjaDI6IDAwMDMtQWxsb3ctYnVpbGRpbmctb24tSmF2YS04LnBhdGNoCiBmaW5kIC1u YW1lICJtb2R1bGUtaW5mby5qYXZhIiAtcHJpbnQgLWRlbGV0ZQogCiAjIFVzZSBmZWxpeCBtYXZl bi1idW5kbGUtcGx1Z2luIG9ubHkgZm9yIE9TR2kgbWV0YWRhdGEKQEAgLTU5LDcgKzY1LDcgQEAg ZmluZCAtbmFtZSAibW9kdWxlLWluZm8uamF2YSIgLXByaW50IC1kZWxldGUKICAgPC9leGVjdXRp b25zPiIgZ3NvbgogCiAlYnVpbGQKLSVtdm5fYnVpbGQgLS14bXZuLWphdmFkb2MKKyVtdm5fYnVp bGQKIAogJWluc3RhbGwKICVtdm5faW5zdGFsbApAQCAtNzIsMTMgKzc4LDE3IEBAIGZpbmQgLW5h bWUgIm1vZHVsZS1pbmZvLmphdmEiIC1wcmludCAtZGVsZXRlCiAlbGljZW5zZSBMSUNFTlNFCiAK ICVjaGFuZ2Vsb2cKKyogVGh1IEF1ZyAyNyAyMDIwIE1hdCBCb290aCA8bWF0LmJvb3RoQHJlZGhh dC5jb20+IC0gMi44LjYtNworLSBBZGQgcGF0Y2ggdG8gcHJldmVudCBoYXJkIE9TR2kgZGVwIG9u ICdzdW4ubWlzYycgcGFja2FnZQorLSBGaXggYm9ndXMgZGF0ZSBpbiBjaGFuZ2Vsb2cKKwogKiBU dWUgSnVsIDI4IDIwMjAgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFw cm9qZWN0Lm9yZz4gLSAyLjguNi02CiAtIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVj dC5vcmcvd2lraS9GZWRvcmFfMzNfTWFzc19SZWJ1aWxkCiAKICogRnJpIEp1bCAxMCAyMDIwIEpp cmkgVmFuZWsgPGp2YW5la0ByZWRoYXQuY29tPiAtIDIuOC42LTUKIC0gUmVidWlsdCBmb3IgSkRL LTExLCBzZWUgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0NoYW5nZXMvSmF2YTExCiAK LSogTW9uIEp1biAwNiAyMDIwIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVk b3JhcHJvamVjdC5vcmc+IC0gMi44LjYtNAorKiBTYXQgSnVuIDA2IDIwMjAgRmVkb3JhIFJlbGVh c2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjguNi00CiAtIGZp eGVkIGphdmFkb2MgdG8gYnVpbGQgb24gamRrMTEKIAogKiBXZWQgSmFuIDI5IDIwMjAgRmVkb3Jh IFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAyLjguNi0z CgpkaWZmIC0tZ2l0IGEvamF2YS1laWdodC1idWlsZC5wYXRjaCBiL2phdmEtZWlnaHQtYnVpbGQu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyYzcwMWUuLjAwMDAwMDAKLS0t IGEvamF2YS1laWdodC1idWlsZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAK LWRpZmYgLS1naXQgYS9wb20ueG1sIGIvcG9tLnhtbAotaW5kZXggNDc3NGU3MC4uYzc5NDFiMiAx MDA2NDQKLS0tLSBhL3BvbS54bWwKLSsrKyBiL3BvbS54bWwKLUBAIC02OSw5ICs2OSw4IEBACi0g ICAgICAgICAgICAgICA8aWQ+ZGVmYXVsdC1jb21waWxlPC9pZD4KLSAgICAgICAgICAgICAgIDxj b25maWd1cmF0aW9uPgotICAgICAgICAgICAgICAgICA8amRrVG9vbGNoYWluPgotLSAgICAgICAg ICAgICAgICAgIDx2ZXJzaW9uPjk8L3ZlcnNpb24+Ci0rICAgICAgICAgICAgICAgICAgPHZlcnNp b24+ODwvdmVyc2lvbj4KLSAgICAgICAgICAgICAgICAgPC9qZGtUb29sY2hhaW4+Ci0tICAgICAg ICAgICAgICAgIDxyZWxlYXNlPjk8L3JlbGVhc2U+Ci0gICAgICAgICAgICAgICA8L2NvbmZpZ3Vy YXRpb24+Ci0gICAgICAgICAgICAgPC9leGVjdXRpb24+Ci0gICAgICAgICAgICAgPGV4ZWN1dGlv bj4KCmRpZmYgLS1naXQgYS9uby10ZW1wbGF0aW5nLW1hdmVuLXBsdWdpbi5wYXRjaCBiL25vLXRl bXBsYXRpbmctbWF2ZW4tcGx1Z2luLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBmNThlMDdmLi4wMDAwMDAwCi0tLSBhL25vLXRlbXBsYXRpbmctbWF2ZW4tcGx1Z2luLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMjYxICswLDAgQEAKLWRpZmYgLS1naXQgYS9nc29uL3BvbS54 bWwgYi9nc29uL3BvbS54bWwKLWluZGV4IGZmZTQxYWMuLjVjZTVkOTYgMTAwNjQ0Ci0tLS0gYS9n c29uL3BvbS54bWwKLSsrKyBiL2dzb24vcG9tLnhtbAotQEAgLTU2LDIzICs1Niw2IEBACi0gICAg ICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmZlbGl4PC9ncm91cElkPgotICAgICAgICAgPGFydGlm YWN0SWQ+bWF2ZW4tYnVuZGxlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KLSAgICAgICA8L3BsdWdpbj4K LS0gICAgICA8cGx1Z2luPgotLSAgICAgICAgPGdyb3VwSWQ+b3JnLmNvZGVoYXVzLm1vam88L2dy b3VwSWQ+Ci0tICAgICAgICA8YXJ0aWZhY3RJZD50ZW1wbGF0aW5nLW1hdmVuLXBsdWdpbjwvYXJ0 aWZhY3RJZD4KLS0gICAgICAgIDx2ZXJzaW9uPjEuMC4wPC92ZXJzaW9uPgotLSAgICAgICAgPGV4 ZWN1dGlvbnM+Ci0tICAgICAgICAgIDxleGVjdXRpb24+Ci0tICAgICAgICAgICAgPGlkPmZpbHRl cmluZy1qYXZhLXRlbXBsYXRlczwvaWQ+Ci0tICAgICAgICAgICAgPGdvYWxzPgotLSAgICAgICAg ICAgICAgPGdvYWw+ZmlsdGVyLXNvdXJjZXM8L2dvYWw+Ci0tICAgICAgICAgICAgPC9nb2Fscz4K LS0gICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KLS0gICAgICAgICAgICAgIDxzb3VyY2VEaXJl Y3Rvcnk+JHtiYXNlZGlyfS9zcmMvbWFpbi9qYXZhLXRlbXBsYXRlczwvc291cmNlRGlyZWN0b3J5 PgotLSAgICAgICAgICAgICAgPG91dHB1dERpcmVjdG9yeT4ke3Byb2plY3QuYnVpbGQuZGlyZWN0 b3J5fS9nZW5lcmF0ZWQtc291cmNlcy9qYXZhLXRlbXBsYXRlczwvb3V0cHV0RGlyZWN0b3J5Pgot LSAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4KLS0gICAgICAgICAgPC9leGVjdXRpb24+Ci0t ICAgICAgICA8L2V4ZWN1dGlvbnM+Ci0tICAgICAgPC9wbHVnaW4+Ci0gICAgIDwvcGx1Z2lucz4K LSAgIDwvYnVpbGQ+Ci0gPC9wcm9qZWN0PgotZGlmZiAtLWdpdCBhL2dzb24vc3JjL21haW4vamF2 YS10ZW1wbGF0ZXMvY29tL2dvb2dsZS9nc29uL2ludGVybmFsL0dzb25CdWlsZENvbmZpZy5qYXZh IGIvZ3Nvbi9zcmMvbWFpbi9qYXZhLXRlbXBsYXRlcy9jb20vZ29vZ2xlL2dzb24vaW50ZXJuYWwv R3NvbkJ1aWxkQ29uZmlnLmphdmEKLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggYTk0 Yzk2Yi4uMDAwMDAwMAotLS0tIGEvZ3Nvbi9zcmMvbWFpbi9qYXZhLXRlbXBsYXRlcy9jb20vZ29v Z2xlL2dzb24vaW50ZXJuYWwvR3NvbkJ1aWxkQ29uZmlnLmphdmEKLSsrKyAvZGV2L251bGwKLUBA IC0xLDMyICswLDAgQEAKLS0vKgotLSAqIENvcHlyaWdodCAoQykgMjAxOCBUaGUgR3NvbiBhdXRo b3JzCi0tICoKLS0gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24g Mi4wICh0aGUgIkxpY2Vuc2UiKTsKLS0gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2Vw dCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0tICogWW91IG1heSBvYnRhaW4gYSBj b3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0tICoKLS0gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGlj ZW5zZXMvTElDRU5TRS0yLjAKLS0gKgotLSAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxl IGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLS0gKiBkaXN0cmlidXRlZCB1 bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotLSAq IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhw cmVzcyBvciBpbXBsaWVkLgotLSAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxh bmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLS0gKiBsaW1pdGF0aW9ucyB1bmRlciB0 aGUgTGljZW5zZS4KLS0gKi8KLS0KLS1wYWNrYWdlIGNvbS5nb29nbGUuZ3Nvbi5pbnRlcm5hbDsK LS0KLS0vKioKLS0gKiBCdWlsZCBjb25maWd1cmF0aW9uIGZvciBHc29uLiBUaGlzIGZpbGUgaXMg YXV0b21hdGljYWxseSBwb3B1bGF0ZWQgYnkKLS0gKiB0ZW1wbGF0aW5nLW1hdmVuLXBsdWdpbiBh bmQgLmphdmEvLmNsYXNzIGZpbGVzIGFyZSBnZW5lcmF0ZWQgZm9yIHVzZSBpbiBHc29uLgotLSAq Ci0tICogQGF1dGhvciBJbmRlcmplZXQgU2luZ2gKLS0gKi8KLS1wdWJsaWMgZmluYWwgY2xhc3Mg R3NvbkJ1aWxkQ29uZmlnIHsKLS0gIC8vIEJhc2VkIG9uIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5j b20vcXVlc3Rpb25zLzI0Njk5MjIvZ2VuZXJhdGUtYS12ZXJzaW9uLWphdmEtZmlsZS1pbi1tYXZl bgotLQotLSAgLyoqIFRoaXMgZmllbGQgaXMgYXV0b21hdGljYWxseSBwb3B1bGF0ZWQgYnkgTWF2 ZW4gd2hlbiBhIGJ1aWxkIGlzIHRyaWdnZXJlZCAqLwotLSAgcHVibGljIHN0YXRpYyBmaW5hbCBT dHJpbmcgVkVSU0lPTiA9ICIke3Byb2plY3QudmVyc2lvbn0iOwotLQotLSAgcHJpdmF0ZSBHc29u QnVpbGRDb25maWcoKSB7IH0KLS19Ci1kaWZmIC0tZ2l0IGEvZ3Nvbi9zcmMvbWFpbi9qYXZhL2Nv bS9nb29nbGUvZ3Nvbi9Hc29uLmphdmEgYi9nc29uL3NyYy9tYWluL2phdmEvY29tL2dvb2dsZS9n c29uL0dzb24uamF2YQotaW5kZXggMjdmM2VlOS4uZDU4NGVjZSAxMDA2NDQKLS0tLSBhL2dzb24v c3JjL21haW4vamF2YS9jb20vZ29vZ2xlL2dzb24vR3Nvbi5qYXZhCi0rKysgYi9nc29uL3NyYy9t YWluL2phdmEvY29tL2dvb2dsZS9nc29uL0dzb24uamF2YQotQEAgLTM3LDcgKzM3LDYgQEAgaW1w b3J0IGphdmEudXRpbC5jb25jdXJyZW50LmF0b21pYy5BdG9taWNMb25nQXJyYXk7Ci0gCi0gaW1w b3J0IGNvbS5nb29nbGUuZ3Nvbi5pbnRlcm5hbC5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yOwotIGlt cG9ydCBjb20uZ29vZ2xlLmdzb24uaW50ZXJuYWwuRXhjbHVkZXI7Ci0taW1wb3J0IGNvbS5nb29n bGUuZ3Nvbi5pbnRlcm5hbC5Hc29uQnVpbGRDb25maWc7Ci0gaW1wb3J0IGNvbS5nb29nbGUuZ3Nv bi5pbnRlcm5hbC5QcmltaXRpdmVzOwotIGltcG9ydCBjb20uZ29vZ2xlLmdzb24uaW50ZXJuYWwu U3RyZWFtczsKLSBpbXBvcnQgY29tLmdvb2dsZS5nc29uLmludGVybmFsLmJpbmQuQXJyYXlUeXBl QWRhcHRlcjsKLUBAIC00NjIsNyArNDYxLDcgQEAgcHVibGljIGZpbmFsIGNsYXNzIEdzb24gewot ICAgICAgICAgICByZXR1cm4gY2FuZGlkYXRlOwotICAgICAgICAgfQotICAgICAgIH0KLS0gICAg ICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJHU09OICgiICsgR3NvbkJ1aWxk Q29uZmlnLlZFUlNJT04gKyAiKSBjYW5ub3QgaGFuZGxlICIgKyB0eXBlKTsKLSsgICAgICB0aHJv dyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJHU09OIGNhbm5vdCBoYW5kbGUgIiArIHR5 cGUpOwotICAgICB9IGZpbmFsbHkgewotICAgICAgIHRocmVhZENhbGxzLnJlbW92ZSh0eXBlKTsK LSAKLUBAIC03MDQsMTAgKzcwMyw2IEBAIHB1YmxpYyBmaW5hbCBjbGFzcyBHc29uIHsKLSAgICAg ICAoKFR5cGVBZGFwdGVyPE9iamVjdD4pIGFkYXB0ZXIpLndyaXRlKHdyaXRlciwgc3JjKTsKLSAg ICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewotICAgICAgIHRocm93IG5ldyBKc29uSU9FeGNl cHRpb24oZSk7Ci0tICAgIH0gY2F0Y2ggKEFzc2VydGlvbkVycm9yIGUpIHsKLS0gICAgICBBc3Nl cnRpb25FcnJvciBlcnJvciA9IG5ldyBBc3NlcnRpb25FcnJvcigiQXNzZXJ0aW9uRXJyb3IgKEdT T04gIiArIEdzb25CdWlsZENvbmZpZy5WRVJTSU9OICsgIik6ICIgKyBlLmdldE1lc3NhZ2UoKSk7 Ci0tICAgICAgZXJyb3IuaW5pdENhdXNlKGUpOwotLSAgICAgIHRocm93IGVycm9yOwotICAgICB9 IGZpbmFsbHkgewotICAgICAgIHdyaXRlci5zZXRMZW5pZW50KG9sZExlbmllbnQpOwotICAgICAg IHdyaXRlci5zZXRIdG1sU2FmZShvbGRIdG1sU2FmZSk7Ci1AQCAtNzg0LDEwICs3NzksNiBAQCBw dWJsaWMgZmluYWwgY2xhc3MgR3NvbiB7Ci0gICAgICAgU3RyZWFtcy53cml0ZShqc29uRWxlbWVu dCwgd3JpdGVyKTsKLSAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewotICAgICAgIHRocm93 IG5ldyBKc29uSU9FeGNlcHRpb24oZSk7Ci0tICAgIH0gY2F0Y2ggKEFzc2VydGlvbkVycm9yIGUp IHsKLS0gICAgICBBc3NlcnRpb25FcnJvciBlcnJvciA9IG5ldyBBc3NlcnRpb25FcnJvcigiQXNz ZXJ0aW9uRXJyb3IgKEdTT04gIiArIEdzb25CdWlsZENvbmZpZy5WRVJTSU9OICsgIik6ICIgKyBl LmdldE1lc3NhZ2UoKSk7Ci0tICAgICAgZXJyb3IuaW5pdENhdXNlKGUpOwotLSAgICAgIHRocm93 IGVycm9yOwotICAgICB9IGZpbmFsbHkgewotICAgICAgIHdyaXRlci5zZXRMZW5pZW50KG9sZExl bmllbnQpOwotICAgICAgIHdyaXRlci5zZXRIdG1sU2FmZShvbGRIdG1sU2FmZSk7Ci1AQCAtOTQ1 LDEwICs5MzYsNiBAQCBwdWJsaWMgZmluYWwgY2xhc3MgR3NvbiB7Ci0gICAgIH0gY2F0Y2ggKElP RXhjZXB0aW9uIGUpIHsKLSAgICAgICAvLyBUT0RPKGluZGVyKTogRmlndXJlIG91dCB3aGV0aGVy IGl0IGlzIGluZGVlZCByaWdodCB0byByZXRocm93IHRoaXMgYXMgSnNvblN5bnRheEV4Y2VwdGlv bgotICAgICAgIHRocm93IG5ldyBKc29uU3ludGF4RXhjZXB0aW9uKGUpOwotLSAgICB9IGNhdGNo IChBc3NlcnRpb25FcnJvciBlKSB7Ci0tICAgICAgQXNzZXJ0aW9uRXJyb3IgZXJyb3IgPSBuZXcg QXNzZXJ0aW9uRXJyb3IoIkFzc2VydGlvbkVycm9yIChHU09OICIgKyBHc29uQnVpbGRDb25maWcu VkVSU0lPTiArICIpOiAiICsgZS5nZXRNZXNzYWdlKCkpOwotLSAgICAgIGVycm9yLmluaXRDYXVz ZShlKTsKLS0gICAgICB0aHJvdyBlcnJvcjsKLSAgICAgfSBmaW5hbGx5IHsKLSAgICAgICByZWFk ZXIuc2V0TGVuaWVudChvbGRMZW5pZW50KTsKLSAgICAgfQotZGlmZiAtLWdpdCBhL2dzb24vc3Jj L3Rlc3QvamF2YS9jb20vZ29vZ2xlL2dzb24vZnVuY3Rpb25hbC9Hc29uVmVyc2lvbkRpYWdub3N0 aWNzVGVzdC5qYXZhIGIvZ3Nvbi9zcmMvdGVzdC9qYXZhL2NvbS9nb29nbGUvZ3Nvbi9mdW5jdGlv bmFsL0dzb25WZXJzaW9uRGlhZ25vc3RpY3NUZXN0LmphdmEKLWRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAotaW5kZXggMzZlZmY4ZS4uMDAwMDAwMAotLS0tIGEvZ3Nvbi9zcmMvdGVzdC9qYXZhL2Nv bS9nb29nbGUvZ3Nvbi9mdW5jdGlvbmFsL0dzb25WZXJzaW9uRGlhZ25vc3RpY3NUZXN0LmphdmEK LSsrKyAvZGV2L251bGwKLUBAIC0xLDk2ICswLDAgQEAKLS0vKgotLSAqIENvcHlyaWdodCAoQykg MjAxOCBHc29uIEF1dGhvcnMKLS0gKgotLSAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGlj ZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotLSAqIHlvdSBtYXkgbm90IHVzZSB0 aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLS0gKiBZb3Ug bWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLS0gKgotLSAqIGh0dHA6Ly93d3cu YXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotLSAqCi0tICogVW5sZXNzIHJlcXVpcmVk IGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotLSAq IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJ UyIgQkFTSVMsCi0tICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJ TkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0tICogU2VlIHRoZSBMaWNlbnNlIGZvciB0 aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotLSAqIGxpbWl0 YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotLSAqLwotLXBhY2thZ2UgY29tLmdvb2dsZS5nc29u LmZ1bmN0aW9uYWw7Ci0tCi0taW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci0taW1wb3J0IGph dmEudXRpbC5yZWdleC5QYXR0ZXJuOwotLQotLWltcG9ydCBvcmcuanVuaXQuQmVmb3JlOwotLWlt cG9ydCBvcmcuanVuaXQuVGVzdDsKLS0KLS1pbXBvcnQgY29tLmdvb2dsZS5nc29uLkdzb247Ci0t aW1wb3J0IGNvbS5nb29nbGUuZ3Nvbi5Hc29uQnVpbGRlcjsKLS1pbXBvcnQgY29tLmdvb2dsZS5n c29uLlR5cGVBZGFwdGVyOwotLWltcG9ydCBjb20uZ29vZ2xlLmdzb24uc3RyZWFtLkpzb25SZWFk ZXI7Ci0taW1wb3J0IGNvbS5nb29nbGUuZ3Nvbi5zdHJlYW0uSnNvbldyaXRlcjsKLS0KLS1pbXBv cnQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlOwotLQotLS8qKgotLSAqIEZ1bmN0aW9uYWwgdGVz dHMgdG8gdmFsaWRhdGUgcHJpbnRpbmcgb2YgR3NvbiB2ZXJzaW9uIG9uIEFzc2VydGlvbkVycm9y cwotLSAqCi0tICogQGF1dGhvciBJbmRlcmplZXQgU2luZ2gKLS0gKi8KLS1wdWJsaWMgY2xhc3Mg R3NvblZlcnNpb25EaWFnbm9zdGljc1Rlc3QgZXh0ZW5kcyBUZXN0Q2FzZSB7Ci0tICBwcml2YXRl IHN0YXRpYyBmaW5hbCBQYXR0ZXJuIEdTT05fVkVSU0lPTl9QQVRURVJOID0gUGF0dGVybi5jb21w aWxlKCIoXFwoR1NPTiBcXGRcXC5cXGRcXC5cXGQpKD86Wy0uXVtBLVpdKyk/XFwpJCIpOwotLQot LSAgcHJpdmF0ZSBHc29uIGdzb247Ci0tCi0tICBAQmVmb3JlCi0tICBwdWJsaWMgdm9pZCBzZXRV cCgpIHsKLS0gICAgZ3NvbiA9IG5ldyBHc29uQnVpbGRlcigpLnJlZ2lzdGVyVHlwZUFkYXB0ZXIo VGVzdFR5cGUuY2xhc3MsIG5ldyBUeXBlQWRhcHRlcjxUZXN0VHlwZT4oKSB7Ci0tICAgICAgQE92 ZXJyaWRlIHB1YmxpYyB2b2lkIHdyaXRlKEpzb25Xcml0ZXIgb3V0LCBUZXN0VHlwZSB2YWx1ZSkg ewotLSAgICAgICAgdGhyb3cgbmV3IEFzc2VydGlvbkVycm9yKCJFeHBlY3RlZCBkdXJpbmcgc2Vy aWFsaXphdGlvbiIpOwotLSAgICAgIH0KLS0gICAgICBAT3ZlcnJpZGUgcHVibGljIFRlc3RUeXBl IHJlYWQoSnNvblJlYWRlciBpbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKLS0gICAgICAgIHRocm93 IG5ldyBBc3NlcnRpb25FcnJvcigiRXhwZWN0ZWQgZHVyaW5nIGRlc2VyaWFsaXphdGlvbiIpOwot LSAgICAgIH0KLS0gICAgfSkuY3JlYXRlKCk7Ci0tICB9Ci0tCi0tICBAVGVzdAotLSAgcHVibGlj IHZvaWQgdGVzdFZlcnNpb25QYXR0ZXJuKCkgewotLSAgICBhc3NlcnRUcnVlKEdTT05fVkVSU0lP Tl9QQVRURVJOLm1hdGNoZXIoIihHU09OIDIuOC41KSIpLm1hdGNoZXMoKSk7Ci0tICAgIGFzc2Vy dFRydWUoR1NPTl9WRVJTSU9OX1BBVFRFUk4ubWF0Y2hlcigiKEdTT04gMi44LjUtU05BUFNIT1Qp IikubWF0Y2hlcygpKTsKLS0gIH0KLS0KLS0gIEBUZXN0Ci0tICBwdWJsaWMgdm9pZCB0ZXN0QXNz ZXJ0aW9uRXJyb3JJblNlcmlhbGl6YXRpb25QcmludHNWZXJzaW9uKCkgewotLSAgICB0cnkgewot LSAgICAgIGdzb24udG9Kc29uKG5ldyBUZXN0VHlwZSgpKTsKLS0gICAgICBmYWlsKCk7Ci0tICAg IH0gY2F0Y2ggKEFzc2VydGlvbkVycm9yIGV4cGVjdGVkKSB7Ci0tICAgICAgZW5zdXJlQXNzZXJ0 aW9uRXJyb3JQcmludHNHc29uVmVyc2lvbihleHBlY3RlZCk7Ci0tICAgIH0KLS0gIH0KLS0KLS0g IEBUZXN0Ci0tICBwdWJsaWMgdm9pZCB0ZXN0QXNzZXJ0aW9uRXJyb3JJbkRlc2VyaWFsaXphdGlv blByaW50c1ZlcnNpb24oKSB7Ci0tICAgIHRyeSB7Ci0tICAgICAgZ3Nvbi5mcm9tSnNvbigieydh JzonYWJjJ30iLCBUZXN0VHlwZS5jbGFzcyk7Ci0tICAgICAgZmFpbCgpOwotLSAgICB9IGNhdGNo IChBc3NlcnRpb25FcnJvciBleHBlY3RlZCkgewotLSAgICAgIGVuc3VyZUFzc2VydGlvbkVycm9y UHJpbnRzR3NvblZlcnNpb24oZXhwZWN0ZWQpOwotLSAgICB9Ci0tICB9Ci0tCi0tICBwcml2YXRl IHZvaWQgZW5zdXJlQXNzZXJ0aW9uRXJyb3JQcmludHNHc29uVmVyc2lvbihBc3NlcnRpb25FcnJv ciBleHBlY3RlZCkgewotLSAgICBTdHJpbmcgbXNnID0gZXhwZWN0ZWQuZ2V0TWVzc2FnZSgpOwot LSAgICAvLyBTeXN0ZW0uZXJyLnByaW50bG4obXNnKTsKLS0gICAgaW50IHN0YXJ0ID0gbXNnLmlu ZGV4T2YoIihHU09OIik7Ci0tICAgIGFzc2VydFRydWUoc3RhcnQgPiAwKTsKLS0gICAgaW50IGVu ZCA9IG1zZy5pbmRleE9mKCIpOiIpICsgMTsKLS0gICAgYXNzZXJ0VHJ1ZShlbmQgPiAwICYmIGVu ZCA+IHN0YXJ0ICsgNik7Ci0tICAgIFN0cmluZyB2ZXJzaW9uID0gbXNnLnN1YnN0cmluZyhzdGFy dCwgZW5kKTsKLS0gICAgLy8gU3lzdGVtLmVyci5wcmludGxuKHZlcnNpb24pOwotLSAgICBhc3Nl cnRUcnVlKEdTT05fVkVSU0lPTl9QQVRURVJOLm1hdGNoZXIodmVyc2lvbikubWF0Y2hlcygpKTsK LS0gIH0KLS0KLS0gIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIFRlc3RUeXBlIHsKLS0gICAg QFN1cHByZXNzV2FybmluZ3MoInVudXNlZCIpCi0tICAgIFN0cmluZyBhOwotLSAgfQotLX0KLWRp ZmYgLS1naXQgYS9nc29uL3NyYy90ZXN0L2phdmEvY29tL2dvb2dsZS9nc29uL2ludGVybmFsL0dz b25CdWlsZENvbmZpZ1Rlc3QuamF2YSBiL2dzb24vc3JjL3Rlc3QvamF2YS9jb20vZ29vZ2xlL2dz b24vaW50ZXJuYWwvR3NvbkJ1aWxkQ29uZmlnVGVzdC5qYXZhCi1kZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKLWluZGV4IGRjMzliYzAuLjAwMDAwMDAKLS0tLSBhL2dzb24vc3JjL3Rlc3QvamF2YS9j b20vZ29vZ2xlL2dzb24vaW50ZXJuYWwvR3NvbkJ1aWxkQ29uZmlnVGVzdC5qYXZhCi0rKysgL2Rl di9udWxsCi1AQCAtMSwzMyArMCwwIEBACi0tLyoKLS0gKiBDb3B5cmlnaHQgKEMpIDIwMTggVGhl IEdzb24gYXV0aG9ycwotLSAqCi0tICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNl LCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0tICogeW91IG1heSBub3QgdXNlIHRoaXMg ZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotLSAqIFlvdSBtYXkg b2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotLSAqCi0tICogaHR0cDovL3d3dy5hcGFj aGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0tICoKLS0gKiBVbmxlc3MgcmVxdWlyZWQgYnkg YXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0tICogZGlz dHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBC QVNJUywKLS0gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwg ZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLS0gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBz cGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0tICogbGltaXRhdGlv bnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0tICovCi0tcGFja2FnZSBjb20uZ29vZ2xlLmdzb24uaW50 ZXJuYWw7Ci0tCi0taW1wb3J0IHN0YXRpYyBvcmcuanVuaXQuQXNzZXJ0LmFzc2VydEZhbHNlOwot LQotLWltcG9ydCBvcmcuanVuaXQuVGVzdDsKLS0KLS0vKioKLS0gKiBVbml0IHRlc3RzIGZvciB7 QGNvZGUgR3NvbkJ1aWxkQ29uZmlnfQotLSAqCi0tICogQGF1dGhvciBJbmRlcmplZXQgU2luZ2gK LS0gKi8KLS1wdWJsaWMgY2xhc3MgR3NvbkJ1aWxkQ29uZmlnVGVzdCB7Ci0tCi0tICBAVGVzdAot LSAgcHVibGljIHZvaWQgdGVzdEVuc3VyZUdzb25CdWlsZENvbmZpZ0dldHNVcGRhdGVkVG9NYXZl blZlcnNpb24oKSB7Ci0tICAgIGFzc2VydEZhbHNlKCIke3Byb2plY3QudmVyc2lvbn0iLmVxdWFs cyhHc29uQnVpbGRDb25maWcuVkVSU0lPTikpOwotLSAgfQotLX0KCmRpZmYgLS1naXQgYS9vc2dp LWV4cG9ydC1pbnRlcm5hbC5wYXRjaCBiL29zZ2ktZXhwb3J0LWludGVybmFsLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjI4NzVkLi4wMDAwMDAwCi0tLSBhL29zZ2ktZXhw b3J0LWludGVybmFsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIGdz b24tZ3Nvbi1wYXJlbnQtMi44LjEvZ3Nvbi9ibmQuYm5kLm9yaWcJMjAxNy0wOC0yOSAxMTowNzoy OS42MzA2NTUwMDUgKzAxMDAKLSsrKyBnc29uLWdzb24tcGFyZW50LTIuOC4xL2dzb24vYm5kLmJu ZAkyMDE3LTA4LTI5IDExOjA4OjI5LjU5MjA3NTA2OSArMDEwMAotQEAgLTExLDQgKzExLDcgQEAK LSAgICAgY29tLmdvb2dsZS5nc29uLFwKLSAgICAgY29tLmdvb2dsZS5nc29uLmFubm90YXRpb25z LFwKLSAgICAgY29tLmdvb2dsZS5nc29uLnJlZmxlY3QsXAotLSAgICBjb20uZ29vZ2xlLmdzb24u c3RyZWFtCi0rICAgIGNvbS5nb29nbGUuZ3Nvbi5zdHJlYW0sXAotKyAgICBjb20uZ29vZ2xlLmdz b24uaW50ZXJuYWw7eC1pbnRlcm5hbDo9dHJ1ZSxcCi0rICAgIGNvbS5nb29nbGUuZ3Nvbi5pbnRl cm5hbC5iaW5kO3gtaW50ZXJuYWw6PXRydWUsXAotKyAgICBjb20uZ29vZ2xlLmdzb24uaW50ZXJu YWwuYmluZC51dGlsO3gtaW50ZXJuYWw6PXRydWUK