From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 7695 invoked from network); 12 Sep 2020 01:46:14 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 12 Sep 2020 01:46:14 -0000 Content-Type: multipart/mixed; boundary="===============8398037279118617906==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_gnome_3=2E38?= To: ml@inbox.vuxu.org From: q66 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 12 Sep 2020 03:46:12 +0200 List-Id: Message-ID: <20200912014612.COM939l3F5mpJRyiAY8f1CM-AFqk_PVlyPq4tf13MjM@z> GitHub notification mails are now in MIME to allow UTF8. --===============8398037279118617906== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcTY2IGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9xNjYvdm9p ZC1wYWNrYWdlcyBnbm9tZTMzOApodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBh Y2thZ2VzL3B1bGwvMjQyNjAKCmdub21lIDMuMzgKU2luY2UgaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzIxMzgyIGlzIHRha2luZyBhIHdoaWxlIGFuZCBn bm9tZSAzLjM4IGlzIGp1c3QgYXJvdW5kIHRoZSBjb3JuZXIsIEkgcHJlcGFyZWQgYSBwcmVsaW1p bmFyeSBQUiBmb3Igbm93IGNvbnRhaW5pbmcgdGhlIDMuMzcgcHJlcmVsZWFzZSBzdHVmZiAtIEkg ZGlkIHRoaXMgbWFpbmx5IGJlY2F1c2UgSSBuZWVkZWQgbW9yZSAicmVhZHkiIHdheWxhbmQgc3Vw cG9ydC4gVGVzdGVkIG9uIGFhcmNoNjQuDQoNCiMgVE9ETw0KDQotIFt4XSBjbGVhbiBpdCB1cA0K LSBbeF0gYmV0dGVyIHRlc3RpbmcsIG1ha2Ugc3VyZSB0ZXN0c3VpdGUgcGFzc2VzDQotIFt4XSBp bXBvcnQgdGhlIHVzZWZ1bCBiaXRzIGZyb20gIzIxMzgyLCBvciByZWJhc2UgaWYgaXQgZ2V0cyBt ZXJnZWQNCi0gWyBdIG1ha2Ugc3VyZSBjcm9zc2J1aWxkcyB3b3JrDQotIFsgXSB0ZXN0IG9uIG1v cmUgcGxhdGZvcm1zDQotIFsgXSBmaXggdGhlIG1ldGFwYWNrYWdlcyAodGhleSBoYXZlbid0IGJl ZW4gdG91Y2hlZCwgcG9zc2libHkgaW4gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9wdWxsLzIyOTM2KQ0KLSBbIF0gfn5kcm9wIHRoZSBgdmFsYWAgb3B0aW9uIGlu IHRoZSByZXN0IG9mIHRoZSBwYWNrYWdlc35+IHByb2JhYmx5IGdvbm5hIGRvIHRoYXQgb25jZSB0 aGlzIFBSIGlzIG1lcmdlZA0KDQojIFVwZGF0ZWQNCg0KLSBbeF0gZ2xpYi1uZXR3b3JraW5nIC0+ IDIuNjUuOTAgKioqYmV0YSoqKg0KLSBbeF0gYXQtc3BpMi1jb3JlIC0+IDIuMzcuOTAgKioqYmV0 YSoqKg0KLSBbeF0gYXQtc3BpMi1hdGsgLT4gMi4zNy45MCAqKipiZXRhKioqDQotIFt4XSBnc2V0 dGluZ3MtZGVza3RvcC1zY2hlbWFzIC0+IDMuMzcuMiAqdW5zdGFibGUqDQotIFt4XSBnbm9tZS1k ZXNrdG9wIC0+IDMuMzcuOTEgKioqYmV0YSoqKg0KLSBbeF0gbGliZ3dlYXRoZXIgLT4gMy4zNi4x ICoqc3RhYmxlKioNCi0gW3hdIGdub21lLXNldHRpbmdzLWRhZW1vbiAtPiAzLjM3LjAgKnVuc3Rh YmxlKg0KLSBbeF0gbXV0dGVyIC0+IDMuMzcuOTEgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtbWVu dXMgLT4gMy4zNi4wICoqc3RhYmxlKioNCi0gW3hdIGNoZWVzZSAtPiAocmV2YnVtcCkgKipzdGFi bGUqKg0KLSBbeF0gZXZvbHV0aW9uLWRhdGEtc2VydmVyIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0K LSBbeF0gZ25vbWUtY29udHJvbC1jZW50ZXIgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSB0 cmFja2VyIC0+IDIuMy40ICoqc3RhYmxlKioNCi0gW3hdIGZvbGtzIC0+IDAuMTQuMCAqKnN0YWJs ZSoqDQotIFt4XSBkY29uZi1lZGl0b3IgLT4gMy4zNi40ICoqc3RhYmxlKioNCi0gW3hdIGRldmhl bHAgLT4gMy4zNy4xICp1bnN0YWJsZSoNCi0gW3hdIGdub21lLXNoZWxsIC0+IDMuMzcuOTEgKioq YmV0YSoqKg0KLSBbeF0gZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyAtPiAzLjM3LjkxICoqKmJldGEq KioNCi0gW3hdIGdkbSAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLXNlc3Npb24g LT4gMy4zNy4wICp1bnN0YWJsZSoNCi0gW3hdIGdub21lLW9ubGluZS1hY2NvdW50cyAtPiAzLjM3 LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLWluaXRpYWwtc2V0dXAgLT4gMy4zNy45MS4xICoq KmJldGEqKioNCi0gW3hdIHhkZy1kZXNrdG9wLXBvcnRhbC1ndGsgLT4gKHJldmJ1bXApICoqc3Rh YmxlKioNCi0gW3hdIG5hdXRpbHVzIC0+IDMuMzcuOTEgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUt bWFwcyAtPiAzLjM3LjkxICoqKmJldGEqKioNCi0gW3hdIGV2b2x1dGlvbiAtPiAzLjM3LjkwICoq KmJldGEqKioNCi0gW3hdIGV2b2x1dGlvbi1ld3MgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4 XSBweXRob24zLWF0c3BpIC0+IDIuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gcHl0aG9uLWF0c3Bp IC0+IDIuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gb3JjYSAtPiAzLjM3LjkwICoqKmJldGEqKioN Ci0gW3hdIGdub21lLXdlYXRoZXIgLT4gKHJldmJ1bXApICoqc3RhYmxlKioNCi0gW3hdIHZ0ZTMg LT4gMC42MS45MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS10ZXJtaW5hbCAtPiAzLjM3LjkwICoq KmJldGEqKioNCi0gW3hdIGdub21lLWdldHRpbmctc3RhcnRlZC1kb2NzIC0+IDMuMzYuMiAqKnN0 YWJsZSoqDQotIFt4XSBnbm9tZS11c2VyLWRvY3MgLT4gMy4zNi4yICoqc3RhYmxlKioNCi0gW3hd IGdub21lLWVwdWItdGh1bWJuYWlsZXIgLT4gMS42ICoqc3RhYmxlKioNCi0gW3hdIGdub21lLWJv b2tzIC0+IChyZXZidW1wKSAqKnN0YWJsZSoqDQotIFt4XSBnbm9tZS1jaGFyYWN0ZXJzIC0+IChy ZXZidW1wKSAqKnN0YWJsZSoqDQotIFt4XSBnbm9tZS1kb2N1bWVudHMgLT4gKHJldmJ1bXApICoq c3RhYmxlKioNCi0gW3hdIGdub21lLWZvbnQtdmlld2VyIC0+IChyZXZidW1wKSAqKnN0YWJsZSoq DQotIFt4XSBnbm9tZS1zY3JlZW5zYXZlciAtPiAocmV2YnVtcCArIGJ1aWxkIGZpeCkgKipzdGFi bGUqKg0KLSBbeF0gdG90ZW0gLT4gKHJldmJ1bXApICoqc3RhYmxlKioNCi0gW3hdIGdub21lLWNs b2NrcyAtPiAzLjM3LjkxICoqKmJldGEqKioNCi0gW3hdIGxpYmRhenpsZSAtPiAzLjM3LjEgKnVu c3RhYmxlKg0KLSBbeF0gZXBpcGhhbnkgLT4gMy4zNy45MSAqKipiZXRhKioqDQotIFt4XSBnbm9t ZS1jb250YWN0cyAtPiAzLjM3LjIgKnVuc3RhYmxlKg0KLSBbeF0gZW9nIC0+IDMuMzcuOTAgKioq YmV0YSoqKg0KLSBbeF0gZ25vbWUtcGhvdG9zIC0+IDMuMzcuOTEuMSAqKipiZXRhKioqDQotIFt4 XSBldmluY2UgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBmaWxlLXJvbGxlciAtPiAzLjM3 LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLWNhbGVuZGFyIC0+IChyZXZidW1wKSAqKnN0YWJs ZSoqDQotIFt4XSBnbm9tZS1tdXNpYyAtPiAzLjM3LjMgKnVuc3RhYmxlKg0KLSBbeF0gZ25vbWUt cGFuZWwgLT4gMy4zNy4xICp1bnN0YWJsZSoNCi0gW3hdIG1ldGFjaXR5IC0+IDMuMzcuMSAqdW5z dGFibGUqDQotIFt4XSBnbm9tZS1mbGFzaGJhY2sgLT4gMy4zNy4yICp1bnN0YWJsZSoNCi0gW3hd IHRlcGwgLT4gNC40OS4zICp1bnN0YWJsZSoNCi0gW3hdIGdlZGl0IC0+IDMuMzcuMyAqdW5zdGFi bGUqDQotIFt4XSBnZWRpdC1wbHVnaW5zIC0+IChyZXZidW1wKSAqKnN0YWJsZSoqDQotIFt4XSBn bm9tZS1sYXRleCAtPiAzLjM3LjIgKnVuc3RhYmxlKg0KLSBbeF0gYmFvYmFiIC0+IDMuMzcuOTAg KioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtYm94ZXMgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4 XSBnbm9tZS1jYWxjdWxhdG9yIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtZGlz ay11dGlsaXR5IC0+IDMuMzcuMiAqdW5zdGFibGUqDQotIFt4XSBnbm9tZS1zY3JlZW5zaG90IC0+ IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtc3lzdGVtLW1vbml0b3IgLT4gMy4zNy45 MSAqKipiZXRhKioqDQotIFt4XSBndGtzb3VyY2V2aWV3NCAtPiA0LjcuOTAgKioqYmV0YSoqKg0K LSBbeF0gc3lzcHJvZiAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIG1vempzNzggLT4gKG5l dykgKipzdGFibGUqKg0KLSBbeF0gZ2pzIC0+IDEuNjUuOTEgKioqYmV0YSoqKg0KLSBbeF0gZ25v bWUtYnVpbGRlciAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGFkd2FpdGEtaWNvbi10aGVt ZSAtPiAzLjM3LjIgKnVuc3RhYmxlKg0KLSBbeF0gZ25vbWUtYmFja2dyb3VuZHMgLT4gMy4zNy4y ICp1bnN0YWJsZSoNCi0gW3hdIHBvbGFyaSAtPiAzLjM3LjMgKnVuc3RhYmxlKg0KLSBbeF0gZ3Zm cyAtPiAxLjQ1LjkwICoqKmJldGEqKioNCi0gW3hdIGxpYnNvdXAgLT4gMi43MS4wICp1bnN0YWJs ZSoNCi0gW3hdIHJ5Z2VsIC0+IDAuMzkuMiAqdW5zdGFibGUqDQotIFt4XSBzaW1wbGUtc2NhbiAt PiAzLjM3LjMgKnVuc3RhYmxlKg0KLSBbeF0geWVscC14c2wgLT4gMy4zNy45MCAqKipiZXRhKioq DQotIFt4XSB5ZWxwIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0geWVscC10b29scyAtPiAz LjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGJ1ZGdpZS1kZXNrdG9wIC0+IChyZWJ1aWxkKSAqKnN0 YWJsZSoqDQoNCiMjIE1lcmdlZA0KDQotIFt4XSBsaWJzaWdjKyszIC0+IDMuMC4zIChuZXcpDQot IFt4XSBtbS1jb21tb24gLT4gMS4wLjENCi0gW3hdIGdsaWJtbSAtPiAyLjY0LjINCi0gW3hdIHBh bmdvbW0gLT4gMi40Mi4xDQotIFt4XSBsaWJub3RpZnkgLT4gMC43LjkNCi0gW3hdIGF0ayAtPiAy LjM2LjANCi0gW3hdIGd0ayszIC0+IDMuMjQuMjINCi0gW3hdIGdyYXBoZW5lIC0+IDEuMTAuMA0K LSBbeF0gYW10ayAtPiA1LjEuMQ0KLSBbeF0gbGliaGFuZHkxIC0+IDAuOTAuMCAobmV3KQ0KLSBb eF0gbGlicG9ydGFsIC0+IDAuMyAobmV3KQ0KLSBbeF0gY29nbCAtPiAxLjIyLjI4DQotIFt4XSBn ZW9jb2RlLWdsaWIgLT4gMy4yNi4yDQotIFt4XSBnZmJncmFwaCAtPiAwLjIuNA0KLSBbeF0gbGli Z3NmIC0+IDEuMTQuNDcNCi0gW3hdIGxpYnNlY3JldCAtPiAwLjIwLjMNCi0gW3hdIGxpYmNoYW1w bGFpbiAtPiAwLjEyLjIwDQotIFt4XSB2YWxhIC0+IDAuNDguOQ0KLSBbeF0gdmFsYWRvYyAtPiAw LjQ4LjkNCi0gW3hdIGdvbSAtPiAwLjQNCi0gW3hdIGdzc2RwIC0+IDEuMi4zDQotIFt4XSBndGst dm5jIC0+IDEuMC4wIChkcm9wcyB1bnVzZWQgZ3RrMiBzdXBwb3J0KQ0KLSBbeF0gcGhvZGF2IC0+ IDIuNA0KLSBbeF0gZ3VwbnAgLT4gMS4yLjQNCi0gW3hdIGdub21lLXZpZGVvLWVmZmVjdHMgLT4g MC41LjANCi0gW3hdIGdsaWIgLT4gMi42Ni4wDQotIFt4XSB3ZWJraXQyZ3RrIC0+IDIuMzAuMA0K DQojIyBUT0RPDQoNCi0gWyBdIHJldHJvLWd0ayAodW5yZWxlYXNlZCkNCi0gWyBdIGdub21lLWdh bWVzIChibG9ja2VkIG9uIGByZXRyby1ndGtgKQ0KDQojIFdvbid0IHVwZGF0ZQ0KDQotIGd0azQg LT4gMy45OS4wIChub3QgYSBkZXBlbmRlbmN5IG9mIGFueXRoaW5nIGFuZCByZXF1aXJlcyBjdXJy ZW50IGBwYW5nb2AgYW5kIGl0J3MgaW1wcmFjdGljYWwgdG8gYmFja3BvcnQ7IHdlJ2xsIHByb2Jh Ymx5IG5lZWQgdG8gZmluYWxseSB1cGRhdGUgYHBhbmdvYCkKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0 dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8yNDI2MC5wYXRj aCBpcyBhdHRhY2hlZA== --===============8398037279118617906== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gnome338-24260.patch" RnJvbSA3M2MzZTI5OTc0MGMwM2UwNTVlYmY0MzZmMTJlNGEzMDc5MDg4MTQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNToyMDoyNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEv ODFdIGdsaWItbmV0d29ya2luZzogdXBkYXRlIHRvIDIuNjUuOTAKCi0tLQogc3JjcGtncy9nbGli LW5ldHdvcmtpbmcvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsaWItbmV0d29y a2luZy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBsYXRlCmluZGV4IDVl YWZmYTgyZTY0Li4xZDYxYTYxNjliYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbGliLW5ldHdvcmtp bmcvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbGliLW5ldHdvcmtpbmcvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbGliLW5ldHdvcmtpbmcnCiBwa2duYW1l PWdsaWItbmV0d29ya2luZwotdmVyc2lvbj0yLjY0LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249Mi42 NS45MAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGlu c3RhbGxlZF90ZXN0cz1mYWxzZSAtRGdudXRscz1lbmFibGVkIC1EbGlicHJveHk9ZW5hYmxlZAog IC1EZ25vbWVfcHJveHk9ZW5hYmxlZCIKQEAgLTE0LDcgKzE0LDcgQEAgbWFpbnRhaW5lcj0iRW5u byBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbGliLW5ldHdv cmtpbmcvIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4q fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YTRjMzQ2ZGVmN2Q4MTc0 NjdkNzlhOTVjMjNiM2NjZjIyZTRkZjE1NDg4NzA3MjZiNjMzOTY0MDA4NTJkYWY3MgorY2hlY2tz dW09MGI0ZGY1ZjY0M2I3ZTA4MjIzNjkwYTEyNDljZTMwMjMyOWI2MTU2ZjI2NDBkN2IwMjE3ZjE5 MmIzMzBhZjU2NgogbGliMzJkaXNhYmxlZD15ZXMKIAogcG9zdF9pbnN0YWxsKCkgewoKRnJvbSA1 MDVjNjVkZGQ5OTI5NjAzM2M2Y2Y0MjE5OTg5ODM2MjIwODBlNzFkIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIvODFdIGF0 LXNwaTItY29yZTogdXBkYXRlIHRvIDIuMzcuOTAKCi0tLQogc3JjcGtncy9hdC1zcGkyLWNvcmUv dGVtcGxhdGUgfCAxNCArKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9u cygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2F0LXNwaTItY29yZS90 ZW1wbGF0ZSBiL3NyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRlCmluZGV4IGIzODNmZTk5YmVk Li40OWNiM2ZhMWJmNyAxMDA2NDQKLS0tIGEvc3JjcGtncy9hdC1zcGkyLWNvcmUvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9hdC1zcGkyLWNvcmUvdGVtcGxhdGUKQEAgLTEsMjMgKzEsMjcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2F0LXNwaTItY29yZScKIHBrZ25hbWU9YXQtc3BpMi1jb3JlCi12 ZXJzaW9uPTIuMzQuMAordmVyc2lvbj0yLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1t ZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1ob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZGJ1 cyBnbGliLWRldmVsIgotbWFrZWRlcGVuZHM9ImxpYmdsaWItZGV2ZWwgbGliWGV4dC1kZXZlbCBs aWJTTS1kZXZlbCBsaWJYdHN0LWRldmVsCi0gbGliWGV2aWUtZGV2ZWwgZGJ1cy1kZXZlbCIKK2hv c3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBkYnVzIGdsaWItZGV2ZWwgZ2V0dGV4dCIKK21ha2Vk ZXBlbmRzPSJsaWJnbGliLWRldmVsIGxpYlhleHQtZGV2ZWwgbGliU00tZGV2ZWwgbGliWHRzdC1k ZXZlbCBkYnVzLWRldmVsIgogc2hvcnRfZGVzYz0iQXNzaXN0aXZlIFRlY2hub2xvZ3kgU2Vydmlj ZSBQcm92aWRlciBJbnRlcmZhY2UiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvYXQtc3BpMi1jb3JlIgogZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09ZDYyOWNkYmQ2NzRlNTM5Zjg5MTIwMjg1MTJhZjU4Mzk5MDkzOGM3 YjQ5ZTI1MTg0YzEyNmIwMDEyMWVmMTFjNgorY2hlY2tzdW09Y2FhNzIyOTlkNWU3ZjJhYTRiODE5 OGUzNzQwNTc1MWJkYTVhMjJhNWJhOTc3YjljN2JmMzQxOTk1OTNiYjZiYgogCiAjIFBhY2thZ2Ug YnVpbGQgb3B0aW9ucwogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0 PSJnaXIiCiAKKyMgbm9uLXRyaXZpYWwgZGJ1cyBzZXR1cAorZG9fY2hlY2soKSB7CisJOgorfQor CiBwb3N0X2luc3RhbGwoKSB7CiAJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9zeXN0ZW1kCiB9 CgpGcm9tIGE2ZTBkOGNhYWJmYjFhY2Y5ODM3ODE3M2FhMDZjYjkzMTMwYTIwODAgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAw My84MV0gYXQtc3BpMi1hdGs6IHVwZGF0ZSB0byAyLjM3LjkwCgotLS0KIHNyY3BrZ3MvYXQtc3Bp Mi1hdGsvdGVtcGxhdGUgfCA5ICsrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2F0LXNwaTItYXRrL3Rl bXBsYXRlIGIvc3JjcGtncy9hdC1zcGkyLWF0ay90ZW1wbGF0ZQppbmRleCA0MzUxYjc5OTZmMy4u Mzk5MWYxOTJmMGEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9hdC1zcGkyLWF0ay90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2F0LXNwaTItYXRrJwogcGtnbmFtZT1hdC1zcGkyLWF0awotdmVyc2lvbj0y LjM0LjEKK3ZlcnNpb249Mi4zNy45MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhv c3RtYWtlZGVwZW5kcz0ibGlidG9vbCBwa2ctY29uZmlnIGludGx0b29sIGdsaWItZGV2ZWwiCkBA IC0xMCw3ICsxMCwxMiBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51 eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL3d3 dy5nbm9tZS5vcmciCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03NzZkZjkzMDc0 OGZkZTcxYzEyOGJlNmMzNjZhOTg3Yjk4YjZlZTY2ZDUwOGVkOWM4ZGIyMzU1YmY0YjljYzE2Citj aGVja3N1bT05OTg0N2EzYjYxYmYyYWM5OGE0N2U0N2VkYjRkZTRlYTVjNGYzMjZjODIzOGFkMTA2 NjFiZDZkOWM0NmI0OGYwCisKKyMgbm9uLXRyaXZpYWwgZGJ1cyBzZXR1cAorZG9fY2hlY2soKSB7 CisJOgorfQogCiBhdC1zcGkyLWF0ay1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7bWFr ZWRlcGVuZHN9ICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKCkZyb20gZTFj MmRlYjFhMDhmODJhODc2N2I5NzVmNzkzNzU4YjUwYzBiODk1MiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRo dSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0LzgxXSBnc2V0 dGluZ3MtZGVza3RvcC1zY2hlbWFzOiB1cGRhdGUgdG8gMy4zNy4yCgotLS0KIC4uLi9wYXRjaGVz L2ZpeC1jcm9zcy1naXIucGF0Y2ggICAgICAgICAgICAgICAgICAgICB8IDEzIC0tLS0tLS0tLS0t LS0KIHNyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy90ZW1wbGF0ZSAgICAgICAgICB8 ICA2ICsrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9u cygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1h cy9wYXRjaGVzL2ZpeC1jcm9zcy1naXIucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dzZXR0 aW5ncy1kZXNrdG9wLXNjaGVtYXMvcGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoIGIvc3JjcGtn cy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3BhdGNoZXMvZml4LWNyb3NzLWdpci5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjI5OWQ1YzljZDAuLjAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy9wYXRjaGVzL2ZpeC1jcm9zcy1n aXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1kaWZmIC0tZ2l0IGEvaGVh ZGVycy9tZXNvbi5idWlsZCBiL2hlYWRlcnMvbWVzb24uYnVpbGQKLWluZGV4IDNjZThiNjEuLjEx MzI2OTUgMTAwNjQ0Ci0tLS0gaGVhZGVycy9tZXNvbi5idWlsZAotKysrIGhlYWRlcnMvbWVzb24u YnVpbGQKLUBAIC0xOSw3ICsxOSw3IEBAIGVudW1zX3htbCA9IGN1c3RvbV90YXJnZXQoCi0gICBp bnN0YWxsOiB0cnVlLAotICAgaW5zdGFsbF9kaXI6IHNjaGVtYXNkaXIpCi0gCi0taWYgbm90IG1l c29uLmlzX2Nyb3NzX2J1aWxkKCkgYW5kIGdldF9vcHRpb24oJ2ludHJvc3BlY3Rpb24nKQotK2lm IGdldF9vcHRpb24oJ2ludHJvc3BlY3Rpb24nKQotICAgbm9pbnN0X2xpYiA9IHNoYXJlZF9saWJy YXJ5KCdub2luc3QnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFsbDogZmFsc2UpCmRpZmYgLS1naXQg YS9zcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvdGVtcGxhdGUgYi9zcmNwa2dzL2dz ZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvdGVtcGxhdGUKaW5kZXggNDljNjRjY2E3MzguLjU1ZjA5 NzdkMWMyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ3NldHRpbmdzLWRlc2t0b3Atc2No ZW1hcycKIHBrZ25hbWU9Z3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcwotdmVyc2lvbj0zLjM2LjAK LXJldmlzaW9uPTIKK3ZlcnNpb249My4zNy4yCityZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9Imdp ciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURpbnRyb3NwZWN0aW9uPSQo dm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkiCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ3NldHRpbmdz LWRlc2t0b3Atc2NoZW1hcyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTc2NGFi NjgzMjg2NTM2MzI0NTMzYTU4ZDRlOTVmYzU3ZjgxYWRhYmE3ZDg4MGRkMGViYmJjZWQ2M2U5NjBl YTYKK2NoZWNrc3VtPWUzMzhlOGNiY2UxNjg0YjdkZjJlNTBiMmQ3MGEwYjBmZTQ3MTc2ZmIwYjM3 M2U2YmM2N2IyNjk2MGI0MGQ4ZWYKIAogIyBQYWNrYWdlIGJ1aWxkIG9wdGlvbnMKIGJ1aWxkX29w dGlvbnM9ImdpciIKCkZyb20gZmJlNmM3MzZhMzcwZDFlNTY4NmNiY2E2MzNlNzVhYTI4NjZmOTU1 ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVj dDogW1BBVENIIDA1LzgxXSBnbm9tZS1kZXNrdG9wOiB1cGRhdGUgdG8gMy4zNy45MQoKLS0tCiBj b21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmNwa2dz L2dub21lLWRlc2t0b3AvcGF0Y2hlcy9idWlsZC5wYXRjaCB8IDE4ICsrKysrKysrKysrKysrKysr Kwogc3JjcGtncy9nbm9tZS1kZXNrdG9wL3RlbXBsYXRlICAgICAgICAgICAgfCAxMSArKysrKysr Ky0tLQogMyBmaWxlcyBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtZGVza3RvcC9wYXRjaGVzL2J1aWxkLnBh dGNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggZWM4 MzEwZGY3YjMuLjNhYmJmOTdiZjg4IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2Nv bW1vbi9zaGxpYnMKQEAgLTExNzgsNyArMTE3OCw3IEBAIGxpYmdzdGJhc2VjYW1lcmFiaW5zcmMt MS4wLnNvLjAgZ3N0LXBsdWdpbnMtYmFkMS0xLjAuMF8xCiBsaWJnc3Rjb2RlY3BhcnNlcnMtMS4w LnNvLjAgZ3N0LXBsdWdpbnMtYmFkMS0xLjAuMF8xCiBsaWJnc3RwbGF5ZXItMS4wLnNvLjAgZ3N0 LXBsdWdpbnMtYmFkMS0xLjAuMF8xCiBsaWJnc3RnbC0xLjAuc28uMCBnc3QtcGx1Z2lucy1iYXNl MS0xLjE0LjBfMQotbGliZ25vbWUtZGVza3RvcC0zLnNvLjE4IGdub21lLWRlc2t0b3AtMy4zNC4w XzEKK2xpYmdub21lLWRlc2t0b3AtMy5zby4xOSBnbm9tZS1kZXNrdG9wLTMuMzcuOTAuMV8xCiBs aWJzZWNyZXQtMS5zby4wIGxpYnNlY3JldC0wLjEwXzEKIGxpYmd3ZWF0aGVyLTMuc28uMTYgbGli Z3dlYXRoZXItMy4zNC4wXzEKIGxpYmdub21la2JkLnNvLjggbGliZ25vbWVrYmQtMy42LjBfMQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1kZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9z cmNwa2dzL2dub21lLWRlc2t0b3AvcGF0Y2hlcy9idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWZlZDAwYTI1ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL2dub21lLWRlc2t0b3AvcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDE4IEBA Citjb21taXQgNGY1NWZmMDc4NDExOTkzYjc4MmU3NGVhMThjNWM2YWIzNWFkZjY4NQorQXV0aG9y OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6ICAgV2VkIEF1ZyAx MiAwNToyNjowMCAyMDIwICswMjAwCisKKyAgICBibGEKKworZGlmZiAtLWdpdCBsaWJnbm9tZS1k ZXNrdG9wL2dub21lLXJyLmggbGliZ25vbWUtZGVza3RvcC9nbm9tZS1yci5oCitpbmRleCAxMTFi YWIzLi43Njk4NjcyIDEwMDY0NAorLS0tIGxpYmdub21lLWRlc2t0b3AvZ25vbWUtcnIuaAorKysr IGxpYmdub21lLWRlc2t0b3AvZ25vbWUtcnIuaAorQEAgLTI4LDYgKzI4LDcgQEAKKyAjZXJyb3Ig ICAgR25vbWVSUiBpcyB1bnN0YWJsZSBBUEkuIFlvdSBtdXN0IGRlZmluZSBHTk9NRV9ERVNLVE9Q X1VTRV9VTlNUQUJMRV9BUEkgYmVmb3JlIGluY2x1ZGluZyBnbm9tZXJyLmgKKyAjZW5kaWYKKyAK KysjaW5jbHVkZSA8c3RkaW50Lmg+CisgI2luY2x1ZGUgPGdsaWIuaD4KKyAjaW5jbHVkZSA8Z2Rr L2dkay5oPgorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1kZXNrdG9wL3RlbXBsYXRlIGIv c3JjcGtncy9nbm9tZS1kZXNrdG9wL3RlbXBsYXRlCmluZGV4IDk5MmNiMWZmMTZhLi5iMDU4YWVi ZmZmOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1kZXNrdG9wL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMCBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ25vbWUtZGVza3RvcCcKIHBrZ25hbWU9Z25vbWUtZGVza3RvcAotdmVyc2lv bj0zLjM0LjEKK3ZlcnNpb249My4zNy45MQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24K IGJ1aWxkX2hlbHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZ25vbWUtZGlzdHJpYnV0b3I9 Vm9pZExpbnV4IC1EdWRldj1lbmFibGVkCitjb25maWd1cmVfYXJncz0iLURnbm9tZV9kaXN0cmli dXRvcj1Wb2lkTGludXggLUR1ZGV2PWVuYWJsZWQgLURzeXN0ZW1kPWRpc2FibGVkCiAgLURpbnRy b3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkiCiBob3N0bWFrZWRlcGVuZHM9Imdl dHRleHQgaXRzdG9vbCBwa2ctY29uZmlnIGdsaWItZGV2ZWwiCiBtYWtlZGVwZW5kcz0iZXVkZXYt bGlidWRldi1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGd0ayszLWRldmVs CkBAIC0xNiwxMSArMTYsMTYgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lk bGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1kZXNrdG9w IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3Br Z25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YzFkYmViNTY2NmRhZDI3MTY2Yzc2 OWU0OGUyYWI0MWRkNWVkNzQ3MThlYTM1ZWI1N2M4NDg4NzkwNjYyZGM1YQorY2hlY2tzdW09MzIy ZjZhMWQyMzNkYTc2Zjk1YjdlZWUxZWU5M2Q5ODU0NTg5OTM3YzIxOGUzYjY2NTJjOTJkOWI1ZTFi M2IxOQogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIK IAorIyBuZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CisKIGdub21lLWRlc2t0b3AtZGV2ZWxf cGFja2FnZSgpIHsKIAlkZXBlbmRzPSJndGsrMy1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hl bWFzLWRldmVsPj0zLjEyCiAJIGdkay1waXhidWYtZGV2ZWwgaXNvLWNvZGVzIGxpYlgxMS1kZXZl bCBsaWJnbGliLWRldmVsIGxpYnNlY2NvbXAtZGV2ZWwKCkZyb20gNmUzMDk3MjhlMmNkN2ZjMTE2 MDY2NzlhZTM2YjBhY2M0YjYyMzc4NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAg MTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA2LzgxXSBsaWJnd2VhdGhlcjogdXBkYXRl IHRvIDMuMzYuMQoKLS0tCiBzcmNwa2dzL2xpYmd3ZWF0aGVyL3RlbXBsYXRlIHwgMTUgKysrKysr LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliZ3dlYXRoZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2xp Ymd3ZWF0aGVyL3RlbXBsYXRlCmluZGV4IDM0YzY0ZDZlM2ExLi5mY2RiNTg3OTUwMSAxMDA2NDQK LS0tIGEvc3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYmd3ZWF0 aGVyL3RlbXBsYXRlCkBAIC0xLDEzICsxLDEyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJn d2VhdGhlcicKIHBrZ25hbWU9bGliZ3dlYXRoZXIKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMu MzYuMQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgot Y29uZmlndXJlX2FyZ3M9Ii1EZW5hYmxlX3ZhbGE9JCh2b3B0X2lmIHZhbGEgdHJ1ZSBmYWxzZSkK LSAtRGludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKQorY29uZmlndXJlX2Fy Z3M9IiQodm9wdF9ib29sIGdpciBlbmFibGVfdmFsYSkgJCh2b3B0X2Jvb2wgZ2lyIGludHJvc3Bl Y3Rpb24pCiAgLUR6b25laW5mb19kaXI9L3Vzci9zaGFyZS96b25laW5mbyIKLWhvc3RtYWtlZGVw ZW5kcz0iZ2xpYi1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnICQodm9wdF9pZiB2YWxhIHZhbGEp IgoraG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGludGx0b29sIHBrZy1jb25maWcgJCh2b3B0 X2lmIGdpciB2YWxhKSIKIG1ha2VkZXBlbmRzPSJnZW9jb2RlLWdsaWItZGV2ZWwgZ3RrKzMtZGV2 ZWwgbGlic291cC1nbm9tZS1kZXZlbCIKIGNoZWNrZGVwZW5kcz0idHpkYXRhIgogc2hvcnRfZGVz Yz0iR05PTUUgV2VhdGhlciBpbmZvcm1hdGlvbiBhY2Nlc3MgbGlicmFyeSIKQEAgLTE1LDEwICsx NCwxMCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+Igog bGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21l Lm9yZy9Qcm9qZWN0cy9MaWJHV2VhdGhlciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPWQyZmZlZWMwMTc4OGQwM2QxYmJmMzUxMTNmYzJmMDU0YzZjMzYwMDcyMTA4OGY4MjdiY2Mz MWU1YzYwM2EzMmQKK2NoZWNrc3VtPWRlMjcwOWYwZWUyMzNiMjAxMTZkNWZhOTg2MWQ0MDYwNzE3 OThjNGFhMzc4MzBjYTI1ZjVlZjJjMDA4M2U0NTAKIAotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEi Ci1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9ucz0iZ2lyIgor YnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIHBvc3RfcGF0Y2goKSB7CiAJIyBUaGlzIHRl c3QgcmVxdWlyZXMgTENfSURFTlRJRklDQVRJT04sIHdoaWNoIGlzIGEgR0xJQkMncyBleHRlbnNp b24KQEAgLTM1LDggKzM0LDYgQEAgbGliZ3dlYXRoZXItZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1v dmUgInVzci9saWIvKi5zbyIKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJ CXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFs YSIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIDdmMmM0 ZGJjZTU4NjFkNzdjNWEwYjk3YjAwOTM4YzliOTBkMWJhNGMgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUs IDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNy84MV0gZ25vbWUt c2V0dGluZ3MtZGFlbW9uOiB1cGRhdGUgdG8gMy4zNy4wCgotLS0KIC4uLi9wYXRjaGVzL2xvZ2lu ZC1iYWNrbGlnaHQucGF0Y2ggICAgICAgICAgICB8IDEzNiArKysrKysrKysrKysrKysrKysKIHNy Y3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3RlbXBsYXRlICAgICAgICB8ICAxMSArLQogMiBm aWxlcyBjaGFuZ2VkLCAxNDIgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi9wYXRjaGVzL2xvZ2luZC1i YWNrbGlnaHQucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1v bi9wYXRjaGVzL2xvZ2luZC1iYWNrbGlnaHQucGF0Y2ggYi9zcmNwa2dzL2dub21lLXNldHRpbmdz LWRhZW1vbi9wYXRjaGVzL2xvZ2luZC1iYWNrbGlnaHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU1Y2E2YmQ0M2RkCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNo CkBAIC0wLDAgKzEsMTM2IEBACitGcm9tIDM4NDViM2E3YjU4ZjI2ZWM2OGRiYzFjNDU3ZWFkMDZm NDg4MTE4MGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IEZyaSwgMTQgQXVnIDIwMjAgMTc6NDg6MjEgKzAy MDAKK1N1YmplY3Q6IFtQQVRDSF0gVGhlIG5ldyBsb2dpbmQgYnJpZ2h0bmVzcyBjb2RlIGRvZXNu J3Qgd29yayB3aXRoIGVsb2dpbmQuCisKK2h0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9n bm9tZS1zZXR0aW5ncy1kYWVtb24vLS9jb21taXQvY2QwNTFlNmM3Y2NmYjdlN2IwZWM0NDA0MDlj NTU5YjJlNTEyODRlOAorLS0tCisgcGx1Z2lucy9wb3dlci9nc2QtYmFja2xpZ2h0LmMgfCA3NyAr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA3IGlu c2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IHBsdWdpbnMvcG93ZXIv Z3NkLWJhY2tsaWdodC5jIHBsdWdpbnMvcG93ZXIvZ3NkLWJhY2tsaWdodC5jCitpbmRleCBjYTVm MjcyLi40YWNjMmU1IDEwMDY0NAorLS0tIHBsdWdpbnMvcG93ZXIvZ3NkLWJhY2tsaWdodC5jCisr KysgcGx1Z2lucy9wb3dlci9nc2QtYmFja2xpZ2h0LmMKK0BAIC00MCw4ICs0MCw2IEBAIHN0cnVj dCBfR3NkQmFja2xpZ2h0CisgICAgICAgICBnaW50IGJyaWdodG5lc3Nfc3RlcDsKKyAKKyAjaWZk ZWYgX19saW51eF9fCistICAgICAgICBHREJ1c1Byb3h5ICpsb2dpbmRfcHJveHk7CistCisgICAg ICAgICBHVWRldkNsaWVudCAqdWRldjsKKyAgICAgICAgIEdVZGV2RGV2aWNlICp1ZGV2X2Rldmlj ZTsKKyAKK0BAIC02MSwxMCArNTksNiBAQCBlbnVtIHsKKyAgICAgICAgIFBST1BfTEFTVCwKKyB9 OworIAorLSNkZWZpbmUgU1lTVEVNRF9EQlVTX05BTUUgICAgICAgICAgICAgICAgICAgICAgICJv cmcuZnJlZWRlc2t0b3AubG9naW4xIgorLSNkZWZpbmUgU1lTVEVNRF9EQlVTX1BBVEggICAgICAg ICAgICAgICAgICAgICAgICIvb3JnL2ZyZWVkZXNrdG9wL2xvZ2luMS9zZXNzaW9uL2F1dG8iCist I2RlZmluZSBTWVNURU1EX0RCVVNfSU5URVJGQUNFICAgICAgICAgICAgICAgICAgIm9yZy5mcmVl ZGVza3RvcC5sb2dpbjEuU2Vzc2lvbiIKKy0KKyBzdGF0aWMgR1BhcmFtU3BlYyAqcHJvcHNbUFJP UF9MQVNUXTsKKyAKKyBzdGF0aWMgdm9pZCAgICAgZ3NkX2JhY2tsaWdodF9pbml0YWJsZV9pZmFj ZV9pbml0IChHSW5pdGFibGVJZmFjZSAgKmlmYWNlKTsKK0BAIC00ODIsMzAgKzQ3NiwxMyBAQCBn c2RfYmFja2xpZ2h0X3NldF9icmlnaHRuZXNzX3ZhbF9hc3luYyAoR3NkQmFja2xpZ2h0ICpiYWNr bGlnaHQsCisgICAgICAgICBpZiAoYmFja2xpZ2h0LT51ZGV2X2RldmljZSAhPSBOVUxMKSB7Cisg ICAgICAgICAgICAgICAgIEJhY2tsaWdodEhlbHBlckRhdGEgKnRhc2tfZGF0YTsKKyAKKy0gICAg ICAgICAgICAgICAgaWYgKGJhY2tsaWdodC0+bG9naW5kX3Byb3h5KSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgZ19kYnVzX3Byb3h5X2NhbGwgKGJhY2tsaWdodC0+bG9naW5kX3Byb3h5LAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2V0QnJpZ2h0bmVz cyIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfdmFyaWFu dF9uZXcgKCIoc3N1KSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJiYWNrbGlnaHQiLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3VkZXZfZGV2aWNlX2dldF9uYW1l IChiYWNrbGlnaHQtPnVkZXZfZGV2aWNlKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2xpZ2h0LT5icmlnaHRuZXNzX3Rhcmdl dCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19D QUxMX0ZMQUdTX05PTkUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC0xLCBOVUxMLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOVUxMLCBOVUxMKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50ID0gQUJT X1RPX1BFUkNFTlRBR0UgKGJhY2tsaWdodC0+YnJpZ2h0bmVzc19taW4sCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrbGlnaHQtPmJyaWdo dG5lc3NfbWF4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYmFja2xpZ2h0LT5icmlnaHRuZXNzX3RhcmdldCk7CistICAgICAgICAgICAgICAg ICAgICAgICAgZ190YXNrX3JldHVybl9pbnQgKHRhc2ssIHBlcmNlbnQpOworLSAgICAgICAgICAg ICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHRhc2tfZGF0YSA9IGdfbmV3 MCAoQmFja2xpZ2h0SGVscGVyRGF0YSwgMSk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGFz a19kYXRhLT52YWx1ZSA9IGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJnZXQ7CistICAgICAgICAg ICAgICAgICAgICAgICAgZ190YXNrX3NldF90YXNrX2RhdGEgKHRhc2ssIHRhc2tfZGF0YSwgYmFj a2xpZ2h0X3Rhc2tfZGF0YV9kZXN0cm95KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAv KiBUYXNrIGlzIHNldCB1cCBub3cuIFF1ZXVlIGl0IGFuZCBlbnN1cmUgd2UgYXJlIHdvcmtpbmcg c29tZXRoaW5nLiAqLworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfcXVldWVfcHVzaF90YWls ICgmYmFja2xpZ2h0LT50YXNrcywgdGFzayk7CistICAgICAgICAgICAgICAgICAgICAgICAgZ3Nk X2JhY2tsaWdodF9wcm9jZXNzX3Rhc2txdWV1ZSAoYmFja2xpZ2h0KTsKKy0gICAgICAgICAgICAg ICAgfQorKyAgICAgICAgICAgICAgICB0YXNrX2RhdGEgPSBnX25ldzAgKEJhY2tsaWdodEhlbHBl ckRhdGEsIDEpOworKyAgICAgICAgICAgICAgICB0YXNrX2RhdGEtPnZhbHVlID0gYmFja2xpZ2h0 LT5icmlnaHRuZXNzX3RhcmdldDsKKysgICAgICAgICAgICAgICAgZ190YXNrX3NldF90YXNrX2Rh dGEgKHRhc2ssIHRhc2tfZGF0YSwgYmFja2xpZ2h0X3Rhc2tfZGF0YV9kZXN0cm95KTsKKysKKysg ICAgICAgICAgICAgICAgLyogVGFzayBpcyBzZXQgdXAgbm93LiBRdWV1ZSBpdCBhbmQgZW5zdXJl IHdlIGFyZSB3b3JraW5nIHNvbWV0aGluZy4gKi8KKysgICAgICAgICAgICAgICAgZ19xdWV1ZV9w dXNoX3RhaWwgKCZiYWNrbGlnaHQtPnRhc2tzLCB0YXNrKTsKKysgICAgICAgICAgICAgICAgZ3Nk X2JhY2tsaWdodF9wcm9jZXNzX3Rhc2txdWV1ZSAoYmFja2xpZ2h0KTsKKyAKKyAgICAgICAgICAg ICAgICAgcmV0dXJuOworICAgICAgICAgfQorQEAgLTgyMyw3ICs4MDAsNiBAQCBnc2RfYmFja2xp Z2h0X2luaXRhYmxlX2luaXQgKEdJbml0YWJsZSAgICAgICAqaW5pdGFibGUsCisgeworICAgICAg ICAgR3NkQmFja2xpZ2h0ICpiYWNrbGlnaHQgPSBHU0RfQkFDS0xJR0hUIChpbml0YWJsZSk7Cisg ICAgICAgICBHbm9tZVJST3V0cHV0KiBvdXRwdXQgPSBOVUxMOworLSAgICAgICAgR0Vycm9yICps b2dpbmRfZXJyb3IgPSBOVUxMOworIAorICAgICAgICAgaWYgKGNhbmNlbGxhYmxlICE9IE5VTEwp IHsKKyAgICAgICAgICAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbCAoZXJyb3IsIEdfSU9fRVJS T1IsIEdfSU9fRVJST1JfTk9UX1NVUFBPUlRFRCwKK0BAIC04MzIsNDQgKzgwOCw2IEBAIGdzZF9i YWNrbGlnaHRfaW5pdGFibGVfaW5pdCAoR0luaXRhYmxlICAgICAgICppbml0YWJsZSwKKyAgICAg ICAgIH0KKyAKKyAjaWZkZWYgX19saW51eF9fCistICAgICAgICBiYWNrbGlnaHQtPmxvZ2luZF9w cm94eSA9CistICAgICAgICAgICAgICAgIGdfZGJ1c19wcm94eV9uZXdfZm9yX2J1c19zeW5jIChH X0JVU19UWVBFX1NZU1RFTSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDAsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOVUxMLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU1lTVEVNRF9EQlVTX05BTUUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTWVNURU1EX0RCVVNfUEFUSCwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNZU1RFTURfREJVU19JTlRFUkZBQ0UsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAmbG9naW5kX2Vy cm9yKTsKKy0gICAgICAgIGlmIChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSkgeworLSAgICAgICAg ICAgICAgICAvKiBDaGVjayB0aGF0IHRoZSBTZXRCcmlnaHRuZXNzIG1ldGhvZCBkb2VzIGV4aXN0 ICovCistICAgICAgICAgICAgICAgIGdfZGJ1c19wcm94eV9jYWxsX3N5bmMgKGJhY2tsaWdodC0+ bG9naW5kX3Byb3h5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi U2V0QnJpZ2h0bmVzcyIsIE5VTEwsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05PTkUsIC0xLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOVUxMLCAmbG9naW5kX2Vycm9yKTsKKy0KKy0gICAgICAgICAg ICAgICAgaWYgKGdfZXJyb3JfbWF0Y2hlcyAobG9naW5kX2Vycm9yLCBHX0RCVVNfRVJST1IsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19FUlJPUl9JTlZBTElE X0FSR1MpKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLyogV2UgYXJlIGNhbGxpbmcgdGhl IG1ldGhvZCB3aXRoIG5vIGFyZ3VtZW50cywgc28KKy0gICAgICAgICAgICAgICAgICAgICAgICAg KiB0aGlzIGlzIGV4cGVjdGVkLgorLSAgICAgICAgICAgICAgICAgICAgICAgICAqLworLSAgICAg ICAgICAgICAgICAgICAgICAgIGdfY2xlYXJfZXJyb3IgKCZsb2dpbmRfZXJyb3IpOworLSAgICAg ICAgICAgICAgICB9IGVsc2UgaWYgKGdfZXJyb3JfbWF0Y2hlcyAobG9naW5kX2Vycm9yLCBHX0RC VVNfRVJST1IsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH X0RCVVNfRVJST1JfVU5LTk9XTl9NRVRIT0QpKSB7CistICAgICAgICAgICAgICAgICAgICAgICAg Lyogc3lzdGVtZCB2ZXJzaW9uIGlzIHRvbyBvbGQsIHNvIGlnbm9yZS4KKy0gICAgICAgICAgICAg ICAgICAgICAgICAgKi8KKy0gICAgICAgICAgICAgICAgICAgICAgICBnX2NsZWFyX2Vycm9yICgm bG9naW5kX2Vycm9yKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBnX2NsZWFyX29iamVjdCAo JmJhY2tsaWdodC0+bG9naW5kX3Byb3h5KTsKKy0gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAvKiBGYWlsIG9uIGFueXRoaW5nIGVsc2UgKi8KKy0gICAg ICAgICAgICAgICAgICAgICAgICBnX2NsZWFyX29iamVjdCAoJmJhY2tsaWdodC0+bG9naW5kX3By b3h5KTsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaWYgKGxv Z2luZF9lcnJvcikgeworLSAgICAgICAgICAgICAgICBnX3dhcm5pbmcgKCJObyBsb2dpbmQgZm91 bmQ6ICVzIiwgbG9naW5kX2Vycm9yLT5tZXNzYWdlKTsKKy0gICAgICAgICAgICAgICAgZ19lcnJv cl9mcmVlIChsb2dpbmRfZXJyb3IpOworLSAgICAgICAgfQorLQorICAgICAgICAgLyogVHJ5IGZp bmRpbmcgYSB1ZGV2IGRldmljZS4gKi8KKyAgICAgICAgIGlmIChnc2RfYmFja2xpZ2h0X3VkZXZf aW5pdCAoYmFja2xpZ2h0KSkKKyAgICAgICAgICAgICAgICAgZ290byBmb3VuZDsKK0BAIC05MTEs NyArODQ5LDYgQEAgZ3NkX2JhY2tsaWdodF9maW5hbGl6ZSAoR09iamVjdCAqb2JqZWN0KQorICNp ZmRlZiBfX2xpbnV4X18KKyAgICAgICAgIGdfYXNzZXJ0IChiYWNrbGlnaHQtPmFjdGl2ZV90YXNr ID09IE5VTEwpOworICAgICAgICAgZ19hc3NlcnQgKGdfcXVldWVfaXNfZW1wdHkgKCZiYWNrbGln aHQtPnRhc2tzKSk7CistICAgICAgICBnX2NsZWFyX29iamVjdCAoJmJhY2tsaWdodC0+bG9naW5k X3Byb3h5KTsKKyAgICAgICAgIGdfY2xlYXJfb2JqZWN0ICgmYmFja2xpZ2h0LT51ZGV2KTsKKyAg ICAgICAgIGdfY2xlYXJfb2JqZWN0ICgmYmFja2xpZ2h0LT51ZGV2X2RldmljZSk7CisgICAgICAg ICBpZiAoYmFja2xpZ2h0LT5pZGxlX3VwZGF0ZSkgeworLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vdGVtcGxhdGUgYi9zcmNwa2dzL2dub21l LXNldHRpbmdzLWRhZW1vbi90ZW1wbGF0ZQppbmRleCBhNzBlMjhiZTVmYS4uZjI1NDU5ZWNlODIg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3RlbXBsYXRlCkBAIC0xLDEwICsxLDExIEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zZXR0aW5ncy1kYWVtb24nCiBwa2duYW1lPWdu b21lLXNldHRpbmdzLWRhZW1vbgotdmVyc2lvbj0zLjM0LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249 My4zNy4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3MrPSIt RHN5c3RlbWQ9ZmFsc2UiCi1ob3N0bWFrZWRlcGVuZHM9ImNtYWtlIGRvY2Jvb2steHNsIGdsaWIt ZGV2ZWwgbGliZ2xpYi1kZXZlbCBsaWJ4c2x0IHBlcmwgcGtnLWNvbmZpZyIKK2hvc3RtYWtlZGVw ZW5kcz0iY21ha2UgZG9jYm9vay14c2wgZ2V0dGV4dCBnbGliLWRldmVsIGxpYmdsaWItZGV2ZWwg bGlieHNsdAorIHBlcmwgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJOZXR3b3JrTWFuYWdlci1k ZXZlbCBhbHNhLWxpYi1kZXZlbCBjb2xvcmQtZGV2ZWwgY3Vwcy1kZXZlbCBnY3ItZGV2ZWwKICBn ZW9jbHVlMi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGlidXMtZGV2ZWwgbGliY2FuYmVycmEt ZGV2ZWwgbGliZ25vbWVrYmQtZGV2ZWwKICBsaWJnd2VhdGhlci1kZXZlbCBsaWJub3RpZnktZGV2 ZWwgbGlicnN2Zy1kZXZlbCBsaWJ3YWNvbS1kZXZlbCBuc3MtZGV2ZWwKQEAgLTEyLDEzICsxMywx MyBAQCBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgYWxzYS1saWItZGV2ZWwgY29s b3JkLWRldmVsIGN1cHMtZGV2ZWwgZ2NyLWRldgogIHhmODYtaW5wdXQtd2Fjb20tZGV2ZWwiCiBk ZXBlbmRzPSJoaWNvbG9yLWljb24tdGhlbWUgcHVsc2VhdWRpbyIKIGNoZWNrZGVwZW5kcz0iZWxv Z2luZCBsaWJub3RpZnkgcHl0aG9uMy1kYnVzbW9jayBweXRob24zLWdvYmplY3QKLSBweXRob24z LXB5Y29kZXN0eWxlIgorIHB5dGhvbjMtcHljb2Rlc3R5bGUgd2hpY2ggaHdpZHMgZXVkZXYiCiBz aG9ydF9kZXNjPSJHTk9NRSBzZXR0aW5ncyBkYWVtb24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFu ZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2V0dGluZ3MtZGFl bW9uIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09OTk4MWEyMGJhYmY4ZGE3NzQ0 YjdmYmUxNzViOWUzNjA3OGJmMDhmM2JmNjVmZTVhZWRlYjgyY2ZlMjdhYzExZgorY2hlY2tzdW09 ZGY3MDkzMTNiODA5NjgwMTY1NzBmMzQxZWJjMzFlZWU4MzI5ZjMxMmMwNjhmNjgxYzBhMTk0YWQ5 NGIwMGRmMAogCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAlob3N0bWFrZWRlcGVuZHMr PSIgcG9sa2l0IgoKRnJvbSBjOWU5YzIyZWY5YzYzNjZlOGM1NDc4ZTQxNmVjNTA2ZmIzYmU5MDdm IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMDgvODFdIG11dHRlcjogdXBkYXRlIHRvIDMuMzcuOTEKCi0tLQogY29tbW9uL3No bGlicyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiAuLi4vcGF0Y2hl cy9maXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0Y2ggICAgICAgfCAgMTEgLQogc3JjcGtncy9tdXR0 ZXIvcGF0Y2hlcy9waXBld2lyZS0wLjMucGF0Y2ggICAgIHwgNTIxIC0tLS0tLS0tLS0tLS0tLS0t LQogc3JjcGtncy9tdXR0ZXIvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgIHwgIDM0ICst CiA0IGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDU1NSBkZWxldGlvbnMoLSkKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211dHRlci9wYXRjaGVzL2ZpeC1jb2dsLWVnbC1pbmNs dWRlcy5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlw ZXdpcmUtMC4zLnBhdGNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxp YnMKaW5kZXggM2FiYmY5N2JmODguLjNmNmE4NWZhNGNlIDEwMDY0NAotLS0gYS9jb21tb24vc2hs aWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTMwMDQsMTUgKzMwMDQsMTUgQEAgbGliZGVjb3Jh dGlvbi5zby4wIGNvbXBpei1jb3JlLTAuOC4xNF8xCiBsaWJjb21waXpjb25maWcuc28uMCBsaWJj b21waXpjb25maWctMC44LjE0XzEKIGxpYmVtZXJhbGRlbmdpbmUuc28uMCBlbWVyYWxkLTAuOC4x NF8xCiBsaWJoYW5ndWwuc28uMSBsaWJoYW5ndWwtMC4xLjBfMQotbGlibXV0dGVyLTUuc28uMCBt dXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jbHV0dGVyLTUuc28gbXV0dGVyLTMuMzQuMV8xCi1s aWJtdXR0ZXItY2x1dHRlci01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0ZXItY29nbC1w YXRoLTUuc28gbXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0ZXItY29nbC1wYXRoLTUuc28uMCBtdXR0 ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jb2dsLTUuc28gbXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0 ZXItY29nbC01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0ZXItY29nbC1wYW5nby01LnNv IG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtcGFuZ28tNS5zby4wIG11dHRlci0zLjM0 LjFfMQorbGlibXV0dGVyLTcuc28uMCBtdXR0ZXItMy4zNy45MF8xCitsaWJtdXR0ZXItY2x1dHRl ci03LnNvIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jbHV0dGVyLTcuc28uMCBtdXR0ZXIt My4zNy45MF8xCitsaWJtdXR0ZXItY29nbC1wYXRoLTcuc28gbXV0dGVyLTMuMzcuOTBfMQorbGli bXV0dGVyLWNvZ2wtcGF0aC03LnNvLjAgbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNvZ2wt Ny5zbyBtdXR0ZXItMy4zNy45MF8xCitsaWJtdXR0ZXItY29nbC03LnNvLjAgbXV0dGVyLTMuMzcu OTBfMQorbGlibXV0dGVyLWNvZ2wtcGFuZ28tNy5zbyBtdXR0ZXItMy4zNy45MF8xCitsaWJtdXR0 ZXItY29nbC1wYW5nby03LnNvLjAgbXV0dGVyLTMuMzcuOTBfMQogbGliZ2VvY2x1ZS0yLnNvLjAg Z2VvY2x1ZTItMi40LjRfMQogbGliZ2VwdWIuc28uMCBsaWJnZXB1Yi0wLjRfMQogbGlic2xvcHku c28uNy41IHNsb3AtNy41XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvZml4 LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNoIGIvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9maXgtY29n bC1lZ2wtaW5jbHVkZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5MDk4 ODg4N2MzLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL211dHRlci9wYXRjaGVzL2ZpeC1jb2ds LWVnbC1pbmNsdWRlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBj b2dsL2NvZ2wvbWVzb24uYnVpbGQJMjAxOS0xMC0wOCAxOToxNToxMC4wMDAwMDAwMDAgKzAyMDAK LSsrKyBjb2dsL2NvZ2wvbWVzb24uYnVpbGQJMjAxOS0xMi0xNiAxNTo0NTo0NC4wMzc2NDA1NDgg KzAxMDAKLUBAIC00OCw3ICs0OCw3IEBACi0gYnVpbHRfaGVhZGVycyArPSBbY29nbF9nbF9oZWFk ZXJfaF0KLSAKLSBpZiBoYXZlX2VnbAotLSAgY29nbF9lZ2xfaW5jbHVkZXNfc3RyaW5nID0gJyNp bmNsdWRlIDxFR0wvZWdsLmg+XG4jaW5jbHVkZSA8RUdML2VnbGV4dC5oPicKLSsgIGNvZ2xfZWds X2luY2x1ZGVzX3N0cmluZyA9ICcjaW5jbHVkZSA8RUdML2VnbC5oPlxuI2luY2x1ZGUgPEVHTC9l Z2xleHQuaD5cbiNpbmNsdWRlIDxFR0wvZWdsbWVzYWV4dC5oPicKLSBlbHNlCi0gICBjb2dsX2Vn bF9pbmNsdWRlc19zdHJpbmcgPSAnJwotIGVuZGlmCmRpZmYgLS1naXQgYS9zcmNwa2dzL211dHRl ci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaCBiL3NyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlw ZXdpcmUtMC4zLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYmZmNjVmYmE4 NS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9waXBld2lyZS0wLjMu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1MjEgKzAsMCBAQAotQnVpbGQgbXV0dGVyIGFnYWlu c3QgcGlwZXdpcmUtMC4zLCBiYXNlZCBvbiBhIHBhdGNoIGF0OgotaHR0cHM6Ly9naXRsYWIuZ25v bWUub3JnL0dOT01FL211dHRlci8tL21lcmdlX3JlcXVlc3RzLzEwNjIKLS0tLSBtZXNvbi5idWls ZAotKysrIG1lc29uLmJ1aWxkCi1AQCAtNTAsNyArNTAsNyBAQCBsaWJpbnB1dF9yZXEgPSAnPj0g MS43JwotIGdibV9yZXEgPSAnPj0gMTAuMycKLQotICMgc2NyZWVuIGNhc3QgdmVyc2lvbiByZXF1 aXJlbWVudHMKLS1saWJwaXBld2lyZV9yZXEgPSAnPj0gMC4yLjUnCi0rbGlicGlwZXdpcmVfcmVx ID0gJz49IDAuMy4wJwotCi0gZ25vbWUgPSBpbXBvcnQoJ2dub21lJykKLSBwa2cgPSBpbXBvcnQo J3BrZ2NvbmZpZycpCi1AQCAtMjQxLDcgKzI0MSw3IEBAIGVuZGlmCi0KLSBoYXZlX3JlbW90ZV9k ZXNrdG9wID0gZ2V0X29wdGlvbigncmVtb3RlX2Rlc2t0b3AnKQotIGlmIGhhdmVfcmVtb3RlX2Rl c2t0b3AKLS0gIGxpYnBpcGV3aXJlX2RlcCA9IGRlcGVuZGVuY3koJ2xpYnBpcGV3aXJlLTAuMics IHZlcnNpb246IGxpYnBpcGV3aXJlX3JlcSkKLSsgIGxpYnBpcGV3aXJlX2RlcCA9IGRlcGVuZGVu Y3koJ2xpYnBpcGV3aXJlLTAuMycsIHZlcnNpb246IGxpYnBpcGV3aXJlX3JlcSkKLSBlbmRpZgot Ci0gaGF2ZV9pbnRyb3NwZWN0aW9uID0gZ2V0X29wdGlvbignaW50cm9zcGVjdGlvbicpCi1kaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmRzL21ldGEtc2NyZWVuLWNhc3Qtc3RyZWFtLXNyYy5jIGIvc3Jj L2JhY2tlbmRzL21ldGEtc2NyZWVuLWNhc3Qtc3RyZWFtLXNyYy5jCi1pbmRleCA4MmM1Y2JhNDM2 Li5iYTFjZTk0YTdlIDEwMDY0NAotLS0tIHNyYy9iYWNrZW5kcy9tZXRhLXNjcmVlbi1jYXN0LXN0 cmVhbS1zcmMuYwotKysrIHNyYy9iYWNrZW5kcy9tZXRhLXNjcmVlbi1jYXN0LXN0cmVhbS1zcmMu YwotQEAgLTI5LDYgKzI5LDcgQEAKLSAjaW5jbHVkZSA8c3BhL3BhcmFtL3Byb3BzLmg+Ci0gI2lu Y2x1ZGUgPHNwYS9wYXJhbS9mb3JtYXQtdXRpbHMuaD4KLSAjaW5jbHVkZSA8c3BhL3BhcmFtL3Zp ZGVvL2Zvcm1hdC11dGlscy5oPgotKyNpbmNsdWRlIDxzcGEvdXRpbHMvcmVzdWx0Lmg+Ci0gI2lu Y2x1ZGUgPHN0ZGludC5oPgotICNpbmNsdWRlIDxzeXMvbW1hbi5oPgotCi1AQCAtNjIsMTUgKzYz LDYgQEAgZW51bQotCi0gc3RhdGljIGd1aW50IHNpZ25hbHNbTl9TSUdOQUxTXTsKLQotLXR5cGVk ZWYgc3RydWN0IF9NZXRhU3BhVHlwZQotLXsKLS0gIHN0cnVjdCBzcGFfdHlwZV9tZWRpYV90eXBl IG1lZGlhX3R5cGU7Ci0tICBzdHJ1Y3Qgc3BhX3R5cGVfbWVkaWFfc3VidHlwZSBtZWRpYV9zdWJ0 eXBlOwotLSAgc3RydWN0IHNwYV90eXBlX2Zvcm1hdF92aWRlbyBmb3JtYXRfdmlkZW87Ci0tICBz dHJ1Y3Qgc3BhX3R5cGVfdmlkZW9fZm9ybWF0IHZpZGVvX2Zvcm1hdDsKLS0gIHVpbnQzMl90IG1l dGFfY3Vyc29yOwotLX0gTWV0YVNwYVR5cGU7Ci0tCi0gdHlwZWRlZiBzdHJ1Y3QgX01ldGFQaXBl V2lyZVNvdXJjZQotIHsKLSAgIEdTb3VyY2UgYmFzZTsKLUBAIC04MiwxOSArNzQsMTkgQEAgdHlw ZWRlZiBzdHJ1Y3QgX01ldGFTY3JlZW5DYXN0U3RyZWFtU3JjUHJpdmF0ZQotIHsKLSAgIE1ldGFT Y3JlZW5DYXN0U3RyZWFtICpzdHJlYW07Ci0KLSsgIHN0cnVjdCBwd19jb250ZXh0ICpwaXBld2ly ZV9jb250ZXh0OwotICAgc3RydWN0IHB3X2NvcmUgKnBpcGV3aXJlX2NvcmU7Ci0tICBzdHJ1Y3Qg cHdfcmVtb3RlICpwaXBld2lyZV9yZW1vdGU7Ci0tICBzdHJ1Y3QgcHdfdHlwZSAqcGlwZXdpcmVf dHlwZTsKLSAgIE1ldGFQaXBlV2lyZVNvdXJjZSAqcGlwZXdpcmVfc291cmNlOwotLSAgc3RydWN0 IHNwYV9ob29rIHBpcGV3aXJlX3JlbW90ZV9saXN0ZW5lcjsKLSsgIHN0cnVjdCBzcGFfaG9vayBw aXBld2lyZV9jb3JlX2xpc3RlbmVyOwotCi0gICBnYm9vbGVhbiBpc19lbmFibGVkOwotCi0gICBz dHJ1Y3QgcHdfc3RyZWFtICpwaXBld2lyZV9zdHJlYW07Ci0gICBzdHJ1Y3Qgc3BhX2hvb2sgcGlw ZXdpcmVfc3RyZWFtX2xpc3RlbmVyOwotKyAgdWludDMyX3Qgbm9kZV9pZDsKLQotLSAgTWV0YVNw YVR5cGUgc3BhX3R5cGU7Ci0gICBzdHJ1Y3Qgc3BhX3ZpZGVvX2luZm9fcmF3IHZpZGVvX2Zvcm1h dDsKLSsgIGludCB2aWRlb19zdHJpZGU7Ci0KLSAgIHVpbnQ2NF90IGxhc3RfZnJhbWVfdGltZXN0 YW1wX3VzOwotCi1AQCAtMTEyLDggKzEwNCw2IEBAIEdfREVGSU5FX1RZUEVfV0lUSF9DT0RFIChN ZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfaW5pdF9pbml0YWJs ZV9pZmFjZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgR19BRERfUFJJVkFURSAoTWV0YVNj cmVlbkNhc3RTdHJlYW1TcmMpKQotCi0tI2RlZmluZSBQUk9QX1JBTkdFKG1pbiwgbWF4KSAyLCAo bWluKSwgKG1heCkKLS0KLSBzdGF0aWMgdm9pZAotIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3Ny Y19nZXRfc3BlY3MgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgKndpZHRo LAotQEAgLTI4Niw5ICsyNzYsNiBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfc2V0X2Vt cHR5X2N1cnNvcl9zcHJpdGVfbWV0YWRhdGEgKE1ldGFTY3JlZW5DYXN0U3RyZQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 ICAgICAgICAgICAgICAgICAgICAgIHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAg eSkKLSB7Ci0tICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotLSAgICBt ZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0t ICBNZXRhU3BhVHlwZSAqc3BhX3R5cGUgPSAmcHJpdi0+c3BhX3R5cGU7Ci0gICBzdHJ1Y3Qgc3Bh X21ldGFfYml0bWFwICpzcGFfbWV0YV9iaXRtYXA7Ci0KLSAgIHNwYV9tZXRhX2N1cnNvci0+aWQg PSAxOwotQEAgLTMwMCw3ICsyODcsNyBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfc2V0 X2VtcHR5X2N1cnNvcl9zcHJpdGVfbWV0YWRhdGEgKE1ldGFTY3JlZW5DYXN0U3RyZQotICAgc3Bh X21ldGFfYml0bWFwID0gU1BBX01FTUJFUiAoc3BhX21ldGFfY3Vyc29yLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3BhX21ldGFfY3Vyc29yLT5iaXRtYXBfb2Zmc2V0LAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNwYV9tZXRhX2JpdG1hcCk7Ci0t ICBzcGFfbWV0YV9iaXRtYXAtPmZvcm1hdCA9IHNwYV90eXBlLT52aWRlb19mb3JtYXQuUkdCQTsK LSsgIHNwYV9tZXRhX2JpdG1hcC0+Zm9ybWF0ID0gU1BBX1ZJREVPX0ZPUk1BVF9SR0JBOwotICAg c3BhX21ldGFfYml0bWFwLT5vZmZzZXQgPSBzaXplb2YgKHN0cnVjdCBzcGFfbWV0YV9iaXRtYXAp OwotCi0gICBzcGFfbWV0YV9jdXJzb3ItPmhvdHNwb3QueCA9IDA7Ci1AQCAtMzE3LDkgKzMwNCw2 IEBAIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19zZXRfY3Vyc29yX3Nwcml0ZV9tZXRhZGF0 YSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICB5LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZmxvYXQgICAgICAgICAgICAgICAgICAgIHNjYWxlKQotIHsKLS0gIE1ldGFTY3JlZW5DYXN0U3Ry ZWFtU3JjUHJpdmF0ZSAqcHJpdiA9Ci0tICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19n ZXRfaW5zdGFuY2VfcHJpdmF0ZSAoc3JjKTsKLS0gIE1ldGFTcGFUeXBlICpzcGFfdHlwZSA9ICZw cml2LT5zcGFfdHlwZTsKLSAgIENvZ2xUZXh0dXJlICpjdXJzb3JfdGV4dHVyZTsKLSAgIHN0cnVj dCBzcGFfbWV0YV9iaXRtYXAgKnNwYV9tZXRhX2JpdG1hcDsKLSAgIGludCBob3RzcG90X3gsIGhv dHNwb3RfeTsKLUBAIC0zNDYsNyArMzMwLDcgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3Jj X3NldF9jdXJzb3Jfc3ByaXRlX21ldGFkYXRhIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYwotICAg c3BhX21ldGFfYml0bWFwID0gU1BBX01FTUJFUiAoc3BhX21ldGFfY3Vyc29yLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3BhX21ldGFfY3Vyc29yLT5iaXRtYXBfb2Zmc2V0LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNwYV9tZXRhX2JpdG1hcCk7 Ci0tICBzcGFfbWV0YV9iaXRtYXAtPmZvcm1hdCA9IHNwYV90eXBlLT52aWRlb19mb3JtYXQuUkdC QTsKLSsgIHNwYV9tZXRhX2JpdG1hcC0+Zm9ybWF0ID0gU1BBX1ZJREVPX0ZPUk1BVF9SR0JBOwot ICAgc3BhX21ldGFfYml0bWFwLT5vZmZzZXQgPSBzaXplb2YgKHN0cnVjdCBzcGFfbWV0YV9iaXRt YXApOwotCi0gICBtZXRhX2N1cnNvcl9zcHJpdGVfZ2V0X2hvdHNwb3QgKGN1cnNvcl9zcHJpdGUs ICZob3RzcG90X3gsICZob3RzcG90X3kpOwotQEAgLTM4MiwxMiArMzY2LDEwIEBAIHN0YXRpYyB2 b2lkCi0gYWRkX2N1cnNvcl9tZXRhZGF0YSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYywK LSAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3BhX2J1ZmZlciAgICAgICAqc3BhX2J1ZmZl cikKLSB7Ci0tICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotLSAgICBt ZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0t ICBNZXRhU3BhVHlwZSAqc3BhX3R5cGUgPSAmcHJpdi0+c3BhX3R5cGU7Ci0gICBzdHJ1Y3Qgc3Bh X21ldGFfY3Vyc29yICpzcGFfbWV0YV9jdXJzb3I7Ci0KLS0gIHNwYV9tZXRhX2N1cnNvciA9IHNw YV9idWZmZXJfZmluZF9tZXRhIChzcGFfYnVmZmVyLCBzcGFfdHlwZS0+bWV0YV9jdXJzb3IpOwot KyAgc3BhX21ldGFfY3Vyc29yID0gc3BhX2J1ZmZlcl9maW5kX21ldGFfZGF0YSAoc3BhX2J1ZmZl ciwgU1BBX01FVEFfQ3Vyc29yLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2l6ZW9mICgqc3BhX21ldGFfY3Vyc29yKSk7Ci0gICBpZiAoc3BhX21ldGFf Y3Vyc29yKQotICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfc2V0X2N1cnNvcl9tZXRh ZGF0YSAoc3JjLCBzcGFfbWV0YV9jdXJzb3IpOwotIH0KLUBAIC00NDcsMTQgKzQyOSwxNCBAQCBt ZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfbWF5YmVfcmVjb3JkX2ZyYW1lIChNZXRhU2NyZWVu Q2FzdFN0cmVhbVNyYyAqc3JjKQotICAgICB7Ci0gICAgICAgZGF0YSA9IHNwYV9idWZmZXItPmRh dGFzWzBdLmRhdGE7Ci0gICAgIH0KLS0gIGVsc2UgaWYgKHNwYV9idWZmZXItPmRhdGFzWzBdLnR5 cGUgPT0gcHJpdi0+cGlwZXdpcmVfdHlwZS0+ZGF0YS5NZW1GZCkKLSsgIGVsc2UgaWYgKHNwYV9i dWZmZXItPmRhdGFzWzBdLnR5cGUgPT0gU1BBX0RBVEFfTWVtRmQpCi0gICAgIHsKLSAgICAgICBt YXAgPSBtbWFwIChOVUxMLCBzcGFfYnVmZmVyLT5kYXRhc1swXS5tYXhzaXplICsgc3BhX2J1ZmZl ci0+ZGF0YXNbMF0ubWFwb2Zmc2V0LAotICAgICAgICAgICAgICAgICAgIFBST1RfUkVBRCB8IFBS T1RfV1JJVEUsIE1BUF9TSEFSRUQsCi0gICAgICAgICAgICAgICAgICAgc3BhX2J1ZmZlci0+ZGF0 YXNbMF0uZmQsIDApOwotICAgICAgIGlmIChtYXAgPT0gTUFQX0ZBSUxFRCkKLSAgICAgICAgIHsK LS0gICAgICAgICAgZ193YXJuaW5nICgiRmFpbGVkIHRvIG1tYXAgcGlwZXdpcmUgc3RyZWFtIGJ1 ZmZlcjogJXNcbiIsCi0rICAgICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBtbWFwIHBpcGV3 aXJlIHN0cmVhbSBidWZmZXI6ICVzIiwKLSAgICAgICAgICAgICAgICAgICAgICBzdHJlcnJvciAo ZXJybm8pKTsKLSAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgfQotQEAgLTQ2OSwyOCArNDUx LDMwIEBAIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19tYXliZV9yZWNvcmRfZnJhbWUgKE1l dGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMpCi0KLSAgIGlmIChtZXRhX3NjcmVlbl9jYXN0X3N0 cmVhbV9zcmNfcmVjb3JkX2ZyYW1lIChzcmMsIGRhdGEpKQotICAgICB7Ci0tICAgICAgc3RydWN0 IHNwYV9tZXRhX3ZpZGVvX2Nyb3AgKnNwYV9tZXRhX3ZpZGVvX2Nyb3A7Ci0rICAgICAgc3RydWN0 IHNwYV9tZXRhX3JlZ2lvbiAqc3BhX21ldGFfdmlkZW9fY3JvcDsKLQotICAgICAgIHNwYV9idWZm ZXItPmRhdGFzWzBdLmNodW5rLT5zaXplID0gc3BhX2J1ZmZlci0+ZGF0YXNbMF0ubWF4c2l6ZTsK LSsgICAgICBzcGFfYnVmZmVyLT5kYXRhc1swXS5jaHVuay0+c3RyaWRlID0gcHJpdi0+dmlkZW9f c3RyaWRlOwotCi0gICAgICAgLyogVXBkYXRlIFZpZGVvQ3JvcCBpZiBuZWVkZWQgKi8KLSAgICAg ICBzcGFfbWV0YV92aWRlb19jcm9wID0KLS0gICAgICAgIHNwYV9idWZmZXJfZmluZF9tZXRhIChz cGFfYnVmZmVyLCBwcml2LT5waXBld2lyZV90eXBlLT5tZXRhLlZpZGVvQ3JvcCk7Ci0rICAgICAg ICBzcGFfYnVmZmVyX2ZpbmRfbWV0YV9kYXRhIChzcGFfYnVmZmVyLCBTUEFfTUVUQV9WaWRlb0Ny b3AsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKCpzcGFfbWV0 YV92aWRlb19jcm9wKSk7Ci0gICAgICAgaWYgKHNwYV9tZXRhX3ZpZGVvX2Nyb3ApCi0gICAgICAg ICB7Ci0gICAgICAgICAgIGlmIChtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X3ZpZGVv Y3JvcCAoc3JjLCAmY3JvcF9yZWN0KSkKLSAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICBz cGFfbWV0YV92aWRlb19jcm9wLT54ID0gY3JvcF9yZWN0Lng7Ci0tICAgICAgICAgICAgICBzcGFf bWV0YV92aWRlb19jcm9wLT55ID0gY3JvcF9yZWN0Lnk7Ci0tICAgICAgICAgICAgICBzcGFfbWV0 YV92aWRlb19jcm9wLT53aWR0aCA9IGNyb3BfcmVjdC53aWR0aDsKLS0gICAgICAgICAgICAgIHNw YV9tZXRhX3ZpZGVvX2Nyb3AtPmhlaWdodCA9IGNyb3BfcmVjdC5oZWlnaHQ7Ci0rICAgICAgICAg ICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24ucG9zaXRpb24ueCA9IGNyb3BfcmVjdC54 OwotKyAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+cmVnaW9uLnBvc2l0aW9uLnkg PSBjcm9wX3JlY3QueTsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lv bi5zaXplLndpZHRoID0gY3JvcF9yZWN0LndpZHRoOwotKyAgICAgICAgICAgICAgc3BhX21ldGFf dmlkZW9fY3JvcC0+cmVnaW9uLnNpemUuaGVpZ2h0ID0gY3JvcF9yZWN0LmhlaWdodDsKLSAgICAg ICAgICAgICB9Ci0gICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAg ICBzcGFfbWV0YV92aWRlb19jcm9wLT54ID0gMDsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3Zp ZGVvX2Nyb3AtPnkgPSAwOwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+d2lk dGggPSBwcml2LT5zdHJlYW1fd2lkdGg7Ci0tICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19j cm9wLT5oZWlnaHQgPSBwcml2LT5zdHJlYW1faGVpZ2h0OwotKyAgICAgICAgICAgICAgc3BhX21l dGFfdmlkZW9fY3JvcC0+cmVnaW9uLnBvc2l0aW9uLnggPSAwOwotKyAgICAgICAgICAgICAgc3Bh X21ldGFfdmlkZW9fY3JvcC0+cmVnaW9uLnBvc2l0aW9uLnkgPSAwOwotKyAgICAgICAgICAgICAg c3BhX21ldGFfdmlkZW9fY3JvcC0+cmVnaW9uLnNpemUud2lkdGggPSBwcml2LT5zdHJlYW1fd2lk dGg7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24uc2l6ZS5oZWln aHQgPSBwcml2LT5zdHJlYW1faGVpZ2h0OwotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAg ICAgfQotQEAgLTU1NSw3ICs1MzksNiBAQCBvbl9zdHJlYW1fc3RhdGVfY2hhbmdlZCAodm9pZCAg ICAgICAgICAgICAgICAgKmRhdGEsCi0gICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAqc3JjID0g ZGF0YTsKLSAgIE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjUHJpdmF0ZSAqcHJpdiA9Ci0gICAgIG1l dGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19nZXRfaW5zdGFuY2VfcHJpdmF0ZSAoc3JjKTsKLS0g IHVpbnQzMl90IG5vZGVfaWQ7Ci0KLSAgIHN3aXRjaCAoc3RhdGUpCi0gICAgIHsKLUBAIC01NjMs MTQgKzU0NiwxMiBAQCBvbl9zdHJlYW1fc3RhdGVfY2hhbmdlZCAodm9pZCAgICAgICAgICAgICAg ICAgKmRhdGEsCi0gICAgICAgZ193YXJuaW5nICgicGlwZXdpcmUgc3RyZWFtIGVycm9yOiAlcyIs IGVycm9yX21lc3NhZ2UpOwotICAgICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19ub3Rp ZnlfY2xvc2VkIChzcmMpOwotICAgICAgIGJyZWFrOwotLSAgICBjYXNlIFBXX1NUUkVBTV9TVEFU RV9DT05GSUdVUkU6Ci0tICAgICAgbm9kZV9pZCA9IHB3X3N0cmVhbV9nZXRfbm9kZV9pZCAocHJp di0+cGlwZXdpcmVfc3RyZWFtKTsKLS0gICAgICBnX3NpZ25hbF9lbWl0IChzcmMsIHNpZ25hbHNb UkVBRFldLCAwLCAodW5zaWduZWQgaW50KSBub2RlX2lkKTsKLS0gICAgICBicmVhazsKLS0gICAg Y2FzZSBQV19TVFJFQU1fU1RBVEVfVU5DT05ORUNURUQ6Ci0tICAgIGNhc2UgUFdfU1RSRUFNX1NU QVRFX0NPTk5FQ1RJTkc6Ci0tICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX1JFQURZOgotICAgICBj YXNlIFBXX1NUUkVBTV9TVEFURV9QQVVTRUQ6Ci0rICAgICAgaWYgKHByaXYtPm5vZGVfaWQgPT0g U1BBX0lEX0lOVkFMSUQgJiYgcHJpdi0+cGlwZXdpcmVfc3RyZWFtKQotKyAgICAgICAgewotKyAg ICAgICAgICBwcml2LT5ub2RlX2lkID0gcHdfc3RyZWFtX2dldF9ub2RlX2lkIChwcml2LT5waXBl d2lyZV9zdHJlYW0pOwotKyAgICAgICAgICBnX3NpZ25hbF9lbWl0IChzcmMsIHNpZ25hbHNbUkVB RFldLCAwLCAodW5zaWduZWQgaW50KSBwcml2LT5ub2RlX2lkKTsKLSsgICAgICAgIH0KLSAgICAg ICBpZiAobWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2lzX2VuYWJsZWQgKHNyYykpCi0gICAg ICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZGlzYWJsZSAoc3JjKTsKLSAgICAgICBi cmVhazsKLUBAIC01NzgsNjggKzU1OSw2OSBAQCBvbl9zdHJlYW1fc3RhdGVfY2hhbmdlZCAodm9p ZCAgICAgICAgICAgICAgICAgKmRhdGEsCi0gICAgICAgaWYgKCFtZXRhX3NjcmVlbl9jYXN0X3N0 cmVhbV9zcmNfaXNfZW5hYmxlZCAoc3JjKSkKLSAgICAgICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3Ry ZWFtX3NyY19lbmFibGUgKHNyYyk7Ci0gICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgUFdfU1RSRUFN X1NUQVRFX1VOQ09OTkVDVEVEOgotKyAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9DT05ORUNUSU5H OgotKyAgICAgIGJyZWFrOwotICAgICB9Ci0gfQotCi0gc3RhdGljIHZvaWQKLS1vbl9zdHJlYW1f Zm9ybWF0X2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNwYV9wb2QgKmZvcm1hdCkKLStvbl9zdHJlYW1f cGFyYW1fY2hhbmdlZCAodm9pZCAgICAgICAgICAgICAgICAgKmRhdGEsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90ICAgICAgICAgICAgICBpZCwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IHNwYV9wb2QgKmZvcm1hdCkKLSB7Ci0gICBNZXRhU2NyZWVu Q2FzdFN0cmVhbVNyYyAqc3JjID0gZGF0YTsKLSAgIE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjUHJp dmF0ZSAqcHJpdiA9Ci0gICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19nZXRfaW5zdGFu Y2VfcHJpdmF0ZSAoc3JjKTsKLS0gIHN0cnVjdCBwd190eXBlICpwaXBld2lyZV90eXBlID0gcHJp di0+cGlwZXdpcmVfdHlwZTsKLSAgIHVpbnQ4X3QgcGFyYW1zX2J1ZmZlclsxMDI0XTsKLSAgIGlu dDMyX3Qgd2lkdGgsIGhlaWdodCwgc3RyaWRlLCBzaXplOwotICAgc3RydWN0IHNwYV9wb2RfYnVp bGRlciBwb2RfYnVpbGRlcjsKLSAgIGNvbnN0IHN0cnVjdCBzcGFfcG9kICpwYXJhbXNbM107Ci0g ICBjb25zdCBpbnQgYnBwID0gNDsKLQotLSAgaWYgKCFmb3JtYXQpCi0tICAgIHsKLS0gICAgICBw d19zdHJlYW1fZmluaXNoX2Zvcm1hdCAocHJpdi0+cGlwZXdpcmVfc3RyZWFtLCAwLCBOVUxMLCAw KTsKLS0gICAgICByZXR1cm47Ci0tICAgIH0KLSsgIGlmICghZm9ybWF0IHx8IGlkICE9IFNQQV9Q QVJBTV9Gb3JtYXQpCi0rICAgIHJldHVybjsKLQotICAgc3BhX2Zvcm1hdF92aWRlb19yYXdfcGFy c2UgKGZvcm1hdCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+dmlkZW9f Zm9ybWF0LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwcml2LT5zcGFfdHlwZS5m b3JtYXRfdmlkZW8pOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwcml2LT52aWRl b19mb3JtYXQpOwotCi0gICB3aWR0aCA9IHByaXYtPnZpZGVvX2Zvcm1hdC5zaXplLndpZHRoOwot ICAgaGVpZ2h0ID0gcHJpdi0+dmlkZW9fZm9ybWF0LnNpemUuaGVpZ2h0OwotICAgc3RyaWRlID0g U1BBX1JPVU5EX1VQX04gKHdpZHRoICogYnBwLCA0KTsKLSAgIHNpemUgPSBoZWlnaHQgKiBzdHJp ZGU7Ci0KLSsgIHByaXYtPnZpZGVvX3N0cmlkZSA9IHN0cmlkZTsKLSsKLSAgIHBvZF9idWlsZGVy ID0gU1BBX1BPRF9CVUlMREVSX0lOSVQgKHBhcmFtc19idWZmZXIsIHNpemVvZiAocGFyYW1zX2J1 ZmZlcikpOwotCi0tICBwYXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxkZXJfb2JqZWN0ICgKLSsgIHBh cmFtc1swXSA9IHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0ICgKLSAgICAgJnBvZF9idWlsZGVy LAotLSAgICBwaXBld2lyZV90eXBlLT5wYXJhbS5pZEJ1ZmZlcnMsIHBpcGV3aXJlX3R5cGUtPnBh cmFtX2J1ZmZlcnMuQnVmZmVycywKLS0gICAgIjoiLCBwaXBld2lyZV90eXBlLT5wYXJhbV9idWZm ZXJzLnNpemUsICJpIiwgc2l6ZSwKLS0gICAgIjoiLCBwaXBld2lyZV90eXBlLT5wYXJhbV9idWZm ZXJzLnN0cmlkZSwgImkiLCBzdHJpZGUsCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1f YnVmZmVycy5idWZmZXJzLCAiaXJ1IiwgMTYsIFBST1BfUkFOR0UgKDIsIDE2KSwKLS0gICAgIjoi LCBwaXBld2lyZV90eXBlLT5wYXJhbV9idWZmZXJzLmFsaWduLCAiaSIsIDE2KTsKLS0KLS0gIHBh cmFtc1sxXSA9IHNwYV9wb2RfYnVpbGRlcl9vYmplY3QgKAotKyAgICBTUEFfVFlQRV9PQkpFQ1Rf UGFyYW1CdWZmZXJzLCBTUEFfUEFSQU1fQnVmZmVycywKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNf YnVmZmVycywgU1BBX1BPRF9DSE9JQ0VfUkFOR0VfSW50ICgxNiwgMiwgMTYpLAotKyAgICBTUEFf UEFSQU1fQlVGRkVSU19ibG9ja3MsIFNQQV9QT0RfSW50ICgxKSwKLSsgICAgU1BBX1BBUkFNX0JV RkZFUlNfc2l6ZSwgU1BBX1BPRF9JbnQgKHNpemUpLAotKyAgICBTUEFfUEFSQU1fQlVGRkVSU19z dHJpZGUsIFNQQV9QT0RfSW50IChzdHJpZGUpLAotKyAgICBTUEFfUEFSQU1fQlVGRkVSU19hbGln biwgU1BBX1BPRF9JbnQgKDE2KSk7Ci0rCi0rICBwYXJhbXNbMV0gPSBzcGFfcG9kX2J1aWxkZXJf YWRkX29iamVjdCAoCi0gICAgICZwb2RfYnVpbGRlciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFy YW0uaWRNZXRhLCBwaXBld2lyZV90eXBlLT5wYXJhbV9tZXRhLk1ldGEsCi0tICAgICI6IiwgcGlw ZXdpcmVfdHlwZS0+cGFyYW1fbWV0YS50eXBlLCAiSSIsIHBpcGV3aXJlX3R5cGUtPm1ldGEuVmlk ZW9Dcm9wLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX21ldGEuc2l6ZSwgImkiLCBz aXplb2YgKHN0cnVjdCBzcGFfbWV0YV92aWRlb19jcm9wKSk7Ci0rICAgIFNQQV9UWVBFX09CSkVD VF9QYXJhbU1ldGEsIFNQQV9QQVJBTV9NZXRhLAotKyAgICBTUEFfUEFSQU1fTUVUQV90eXBlLCBT UEFfUE9EX0lkIChTUEFfTUVUQV9WaWRlb0Nyb3ApLAotKyAgICBTUEFfUEFSQU1fTUVUQV9zaXpl LCBTUEFfUE9EX0ludCAoc2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfcmVnaW9uKSkpOwotCi0tICBw YXJhbXNbMl0gPSBzcGFfcG9kX2J1aWxkZXJfb2JqZWN0ICgKLSsgIHBhcmFtc1syXSA9IHNwYV9w b2RfYnVpbGRlcl9hZGRfb2JqZWN0ICgKLSAgICAgJnBvZF9idWlsZGVyLAotLSAgICBwaXBld2ly ZV90eXBlLT5wYXJhbS5pZE1ldGEsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX21ldGEuTWV0YSwKLS0g ICAgIjoiLCBwaXBld2lyZV90eXBlLT5wYXJhbV9tZXRhLnR5cGUsICJJIiwgcHJpdi0+c3BhX3R5 cGUubWV0YV9jdXJzb3IsCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fbWV0YS5zaXpl LCAiaSIsIENVUlNPUl9NRVRBX1NJWkUgKDY0LCA2NCkpOwotKyAgICBTUEFfVFlQRV9PQkpFQ1Rf UGFyYW1NZXRhLCBTUEFfUEFSQU1fTWV0YSwKLSsgICAgU1BBX1BBUkFNX01FVEFfdHlwZSwgU1BB X1BPRF9JZCAoU1BBX01FVEFfQ3Vyc29yKSwKLSsgICAgU1BBX1BBUkFNX01FVEFfc2l6ZSwgU1BB X1BPRF9JbnQgKENVUlNPUl9NRVRBX1NJWkUgKDY0LCA2NCkpKTsKLQotLSAgcHdfc3RyZWFtX2Zp bmlzaF9mb3JtYXQgKHByaXYtPnBpcGV3aXJlX3N0cmVhbSwgMCwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICBwYXJhbXMsIEdfTl9FTEVNRU5UUyAocGFyYW1zKSk7Ci0rICBwd19zdHJlYW1f dXBkYXRlX3BhcmFtcyAocHJpdi0+cGlwZXdpcmVfc3RyZWFtLCBwYXJhbXMsIEdfTl9FTEVNRU5U UyAocGFyYW1zKSk7Ci0gfQotCi0gc3RhdGljIGNvbnN0IHN0cnVjdCBwd19zdHJlYW1fZXZlbnRz IHN0cmVhbV9ldmVudHMgPSB7Ci0gICBQV19WRVJTSU9OX1NUUkVBTV9FVkVOVFMsCi0gICAuc3Rh dGVfY2hhbmdlZCA9IG9uX3N0cmVhbV9zdGF0ZV9jaGFuZ2VkLAotLSAgLmZvcm1hdF9jaGFuZ2Vk ID0gb25fc3RyZWFtX2Zvcm1hdF9jaGFuZ2VkLAotKyAgLnBhcmFtX2NoYW5nZWQgPSBvbl9zdHJl YW1fcGFyYW1fY2hhbmdlZCwKLSB9OwotCi0gc3RhdGljIHN0cnVjdCBwd19zdHJlYW0gKgotQEAg LTY1Miw4ICs2MzQsNiBAQCBjcmVhdGVfcGlwZXdpcmVfc3RyZWFtIChNZXRhU2NyZWVuQ2FzdFN0 cmVhbVNyYyAgKnNyYywKLSAgIHVpbnQ4X3QgYnVmZmVyWzEwMjRdOwotICAgc3RydWN0IHNwYV9w b2RfYnVpbGRlciBwb2RfYnVpbGRlciA9Ci0gICAgIFNQQV9QT0RfQlVJTERFUl9JTklUIChidWZm ZXIsIHNpemVvZiAoYnVmZmVyKSk7Ci0tICBNZXRhU3BhVHlwZSAqc3BhX3R5cGUgPSAmcHJpdi0+ c3BhX3R5cGU7Ci0tICBzdHJ1Y3QgcHdfdHlwZSAqcGlwZXdpcmVfdHlwZSA9IHByaXYtPnBpcGV3 aXJlX3R5cGU7Ci0gICBmbG9hdCBmcmFtZV9yYXRlOwotICAgTWV0YUZyYWN0aW9uIGZyYW1lX3Jh dGVfZnJhY3Rpb247Ci0gICBzdHJ1Y3Qgc3BhX2ZyYWN0aW9uIG1heF9mcmFtZXJhdGU7Ci1AQCAt NjYxLDcgKzY0MSw5IEBAIGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5DYXN0U3Ry ZWFtU3JjICAqc3JjLAotICAgY29uc3Qgc3RydWN0IHNwYV9wb2QgKnBhcmFtc1sxXTsKLSAgIGlu dCByZXN1bHQ7Ci0KLS0gIHBpcGV3aXJlX3N0cmVhbSA9IHB3X3N0cmVhbV9uZXcgKHByaXYtPnBp cGV3aXJlX3JlbW90ZSwKLSsgIHByaXYtPm5vZGVfaWQgPSBTUEFfSURfSU5WQUxJRDsKLSsKLSsg IHBpcGV3aXJlX3N0cmVhbSA9IHB3X3N0cmVhbV9uZXcgKHByaXYtPnBpcGV3aXJlX2NvcmUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWV0YS1zY3JlZW4tY2FzdC1zcmMi LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0gICBpZiAoIXBp cGV3aXJlX3N0cmVhbSkKLUBAIC02ODIsMTcgKzY2NCwxNyBAQCBjcmVhdGVfcGlwZXdpcmVfc3Ry ZWFtIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAgKnNyYywKLSAgIG1heF9mcmFtZXJhdGUgPSBT UEFfRlJBQ1RJT04gKGZyYW1lX3JhdGVfZnJhY3Rpb24ubnVtLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZnJhbWVfcmF0ZV9mcmFjdGlvbi5kZW5vbSk7Ci0KLS0gIHBhcmFtc1sw XSA9IHNwYV9wb2RfYnVpbGRlcl9vYmplY3QgKAotKyAgcGFyYW1zWzBdID0gc3BhX3BvZF9idWls ZGVyX2FkZF9vYmplY3QgKAotICAgICAmcG9kX2J1aWxkZXIsCi0tICAgIHBpcGV3aXJlX3R5cGUt PnBhcmFtLmlkRW51bUZvcm1hdCwgcGlwZXdpcmVfdHlwZS0+c3BhX2Zvcm1hdCwKLS0gICAgIkki LCBzcGFfdHlwZS0+bWVkaWFfdHlwZS52aWRlbywKLS0gICAgIkkiLCBzcGFfdHlwZS0+bWVkaWFf c3VidHlwZS5yYXcsCi0tICAgICI6Iiwgc3BhX3R5cGUtPmZvcm1hdF92aWRlby5mb3JtYXQsICJJ Iiwgc3BhX3R5cGUtPnZpZGVvX2Zvcm1hdC5CR1J4LAotLSAgICAiOiIsIHNwYV90eXBlLT5mb3Jt YXRfdmlkZW8uc2l6ZSwgIlIiLCAmU1BBX1JFQ1RBTkdMRSAocHJpdi0+c3RyZWFtX3dpZHRoLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcHJpdi0+c3RyZWFtX2hlaWdodCksCi0tICAgICI6Iiwgc3BhX3R5cGUtPmZvcm1hdF92aWRl by5mcmFtZXJhdGUsICJGIiwgJlNQQV9GUkFDVElPTiAoMCwgMSksCi0tICAgICI6Iiwgc3BhX3R5 cGUtPmZvcm1hdF92aWRlby5tYXhfZnJhbWVyYXRlLCAiRnJ1IiwgJm1heF9mcmFtZXJhdGUsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJP UF9SQU5HRSAoJm1pbl9mcmFtZXJhdGUsCi0rICAgIFNQQV9UWVBFX09CSkVDVF9Gb3JtYXQsIFNQ QV9QQVJBTV9FbnVtRm9ybWF0LAotKyAgICBTUEFfRk9STUFUX21lZGlhVHlwZSwgU1BBX1BPRF9J ZCAoU1BBX01FRElBX1RZUEVfdmlkZW8pLAotKyAgICBTUEFfRk9STUFUX21lZGlhU3VidHlwZSwg U1BBX1BPRF9JZCAoU1BBX01FRElBX1NVQlRZUEVfcmF3KSwKLSsgICAgU1BBX0ZPUk1BVF9WSURF T19mb3JtYXQsIFNQQV9QT0RfSWQgKFNQQV9WSURFT19GT1JNQVRfQkdSeCksCi0rICAgIFNQQV9G T1JNQVRfVklERU9fc2l6ZSwgU1BBX1BPRF9SZWN0YW5nbGUgKCZTUEFfUkVDVEFOR0xFIChwcml2 LT5zdHJlYW1fd2lkdGgsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5zdHJlYW1faGVpZ2h0KSksCi0rICAgIFNQQV9G T1JNQVRfVklERU9fZnJhbWVyYXRlLCBTUEFfUE9EX0ZyYWN0aW9uICgmU1BBX0ZSQUNUSU9OICgw LCAxKSksCi0rICAgIFNQQV9GT1JNQVRfVklERU9fbWF4RnJhbWVyYXRlLCBTUEFfUE9EX0NIT0lD RV9SQU5HRV9GcmFjdGlvbiAoJm1heF9mcmFtZXJhdGUsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1pbl9mcmFtZXJh dGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJm1heF9mcmFtZXJhdGUpKTsKLQotICAgcHdfc3RyZWFtX2FkZF9saXN0 ZW5lciAocGlwZXdpcmVfc3RyZWFtLAotQEAgLTcwMiw3ICs2ODQsNyBAQCBjcmVhdGVfcGlwZXdp cmVfc3RyZWFtIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAgKnNyYywKLQotICAgcmVzdWx0ID0g cHdfc3RyZWFtX2Nvbm5lY3QgKHBpcGV3aXJlX3N0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQV19ESVJFQ1RJT05fT1VUUFVULAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE5VTEwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1BBX0lEX0lOVkFM SUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFBXX1NUUkVBTV9GTEFHX0RSSVZF UiB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBXX1NUUkVBTV9GTEFHX01BUF9C VUZGRVJTKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsIEdfTl9FTEVN RU5UUyAocGFyYW1zKSk7Ci1AQCAtNzE3LDQwICs2OTksMTggQEAgY3JlYXRlX3BpcGV3aXJlX3N0 cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0gfQotCi0gc3RhdGljIHZvaWQK LS1vbl9zdGF0ZV9jaGFuZ2VkICh2b2lkICAgICAgICAgICAgICAgICAqZGF0YSwKLS0gICAgICAg ICAgICAgICAgICBlbnVtIHB3X3JlbW90ZV9zdGF0ZSAgb2xkLAotLSAgICAgICAgICAgICAgICAg IGVudW0gcHdfcmVtb3RlX3N0YXRlICBzdGF0ZSwKLS0gICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICAgICAgICAgICAqZXJyb3JfbWVzc2FnZSkKLStvbl9jb3JlX2Vycm9yICh2b2lkICAgICAg ICpkYXRhLAotKyAgICAgICAgICAgICAgIHVpbnQzMl90ICAgIGlkLAotKwkgICAgICAgaW50ICAg ICAgICAgc2VxLAotKwkgICAgICAgaW50ICAgICAgICAgcmVzLAotKwkgICAgICAgY29uc3QgY2hh ciAqbWVzc2FnZSkKLSB7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAqc3JjID0gZGF0YTsK LS0gIE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjUHJpdmF0ZSAqcHJpdiA9Ci0tICAgIG1ldGFfc2Ny ZWVuX2Nhc3Rfc3RyZWFtX3NyY19nZXRfaW5zdGFuY2VfcHJpdmF0ZSAoc3JjKTsKLS0gIHN0cnVj dCBwd19zdHJlYW0gKnBpcGV3aXJlX3N0cmVhbTsKLS0gIEdFcnJvciAqZXJyb3IgPSBOVUxMOwot Ci0tICBzd2l0Y2ggKHN0YXRlKQotLSAgICB7Ci0tICAgIGNhc2UgUFdfUkVNT1RFX1NUQVRFX0VS Uk9SOgotLSAgICAgIGdfd2FybmluZyAoInBpcGV3aXJlIHJlbW90ZSBlcnJvcjogJXNcbiIsIGVy cm9yX21lc3NhZ2UpOwotLSAgICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19ub3RpZnlf Y2xvc2VkIChzcmMpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIFBXX1JFTU9URV9TVEFURV9D T05ORUNURUQ6Ci0tICAgICAgcGlwZXdpcmVfc3RyZWFtID0gY3JlYXRlX3BpcGV3aXJlX3N0cmVh bSAoc3JjLCAmZXJyb3IpOwotLSAgICAgIGlmICghcGlwZXdpcmVfc3RyZWFtKQotLSAgICAgICAg ewotLSAgICAgICAgICBnX3dhcm5pbmcgKCJDb3VsZCBub3QgY3JlYXRlIHBpcGV3aXJlIHN0cmVh bTogJXMiLCBlcnJvci0+bWVzc2FnZSk7Ci0tICAgICAgICAgIGdfZXJyb3JfZnJlZSAoZXJyb3Ip OwotLSAgICAgICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfbm90aWZ5X2Nsb3NlZCAo c3JjKTsKLS0gICAgICAgIH0KLS0gICAgICBlbHNlCi0tICAgICAgICB7Ci0tICAgICAgICAgIHBy aXYtPnBpcGV3aXJlX3N0cmVhbSA9IHBpcGV3aXJlX3N0cmVhbTsKLS0gICAgICAgIH0KLS0gICAg ICBicmVhazsKLS0gICAgY2FzZSBQV19SRU1PVEVfU1RBVEVfVU5DT05ORUNURUQ6Ci0tICAgIGNh c2UgUFdfUkVNT1RFX1NUQVRFX0NPTk5FQ1RJTkc6Ci0tICAgICAgYnJlYWs7Ci0tICAgIH0KLSsg IGdfd2FybmluZyAoInBpcGV3aXJlIHJlbW90ZSBlcnJvcjogaWQ6JXUgJXMiLCBpZCwgbWVzc2Fn ZSk7Ci0rCi0rICBpZiAoaWQgPT0gUFdfSURfQ09SRSAmJiByZXMgPT0gLUVQSVBFKQotKyAgICBt ZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfbm90aWZ5X2Nsb3NlZCAoc3JjKTsKLSB9Ci0KLSBz dGF0aWMgZ2Jvb2xlYW4KLUBAIC03OTMsMTcgKzc1Myw2IEBAIHN0YXRpYyBHU291cmNlRnVuY3Mg cGlwZXdpcmVfc291cmNlX2Z1bmNzID0KLSAgIHBpcGV3aXJlX2xvb3Bfc291cmNlX2ZpbmFsaXpl Ci0gfTsKLQotLXN0YXRpYyB2b2lkCi0taW5pdF9zcGFfdHlwZSAoTWV0YVNwYVR5cGUgICAgICAg ICAqdHlwZSwKLS0gICAgICAgICAgICAgICBzdHJ1Y3Qgc3BhX3R5cGVfbWFwICptYXApCi0tewot LSAgc3BhX3R5cGVfbWVkaWFfdHlwZV9tYXAgKG1hcCwgJnR5cGUtPm1lZGlhX3R5cGUpOwotLSAg c3BhX3R5cGVfbWVkaWFfc3VidHlwZV9tYXAgKG1hcCwgJnR5cGUtPm1lZGlhX3N1YnR5cGUpOwot LSAgc3BhX3R5cGVfZm9ybWF0X3ZpZGVvX21hcCAobWFwLCAmdHlwZS0+Zm9ybWF0X3ZpZGVvKTsK LS0gIHNwYV90eXBlX3ZpZGVvX2Zvcm1hdF9tYXAgKG1hcCwgJnR5cGUtPnZpZGVvX2Zvcm1hdCk7 Ci0tICB0eXBlLT5tZXRhX2N1cnNvciA9IHNwYV90eXBlX21hcF9nZXRfaWQobWFwLCBTUEFfVFlQ RV9NRVRBX19DdXJzb3IpOwotLX0KLS0KLSBzdGF0aWMgTWV0YVBpcGVXaXJlU291cmNlICoKLSBj cmVhdGVfcGlwZXdpcmVfc291cmNlICh2b2lkKQotIHsKLUBAIC04MjksOSArNzc4LDkgQEAgY3Jl YXRlX3BpcGV3aXJlX3NvdXJjZSAodm9pZCkKLSAgIHJldHVybiBwaXBld2lyZV9zb3VyY2U7Ci0g fQotCi0tc3RhdGljIGNvbnN0IHN0cnVjdCBwd19yZW1vdGVfZXZlbnRzIHJlbW90ZV9ldmVudHMg PSB7Ci0tICBQV19WRVJTSU9OX1JFTU9URV9FVkVOVFMsCi0tICAuc3RhdGVfY2hhbmdlZCA9IG9u X3N0YXRlX2NoYW5nZWQsCi0rc3RhdGljIGNvbnN0IHN0cnVjdCBwd19jb3JlX2V2ZW50cyBjb3Jl X2V2ZW50cyA9IHsKLSsgIFBXX1ZFUlNJT05fQ09SRV9FVkVOVFMsCi0rICAuZXJyb3IgPSBvbl9j b3JlX2Vycm9yLAotIH07Ci0KLSBzdGF0aWMgZ2Jvb2xlYW4KLUBAIC04NTEsMzcgKzgwMCwzMSBA QCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfaW5pdGFibGVfaW5pdCAoR0luaXRhYmxlICAg ICAqaW5pdGFibGUsCi0gICAgICAgcmV0dXJuIEZBTFNFOwotICAgICB9Ci0KLS0gIHByaXYtPnBp cGV3aXJlX2NvcmUgPSBwd19jb3JlX25ldyAocHJpdi0+cGlwZXdpcmVfc291cmNlLT5waXBld2ly ZV9sb29wLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLS0g IGlmICghcHJpdi0+cGlwZXdpcmVfY29yZSkKLSsgIHByaXYtPnBpcGV3aXJlX2NvbnRleHQgPSBw d19jb250ZXh0X25ldyAocHJpdi0+cGlwZXdpcmVfc291cmNlLT5waXBld2lyZV9sb29wLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAwKTsKLSsgIGlm ICghcHJpdi0+cGlwZXdpcmVfY29udGV4dCkKLSAgICAgewotICAgICAgIGdfc2V0X2Vycm9yIChl cnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9GQUlMRUQsCi0tICAgICAgICAgICAgICAgICAg ICJGYWlsZWQgdG8gY3JlYXRlIHBpcGV3aXJlIGNvcmUiKTsKLSsgICAgICAgICAgICAgICAgICAg IkZhaWxlZCB0byBjcmVhdGUgcGlwZXdpcmUgY29udGV4dCIpOwotICAgICAgIHJldHVybiBGQUxT RTsKLSAgICAgfQotCi0tICBwcml2LT5waXBld2lyZV9yZW1vdGUgPSBwd19yZW1vdGVfbmV3IChw cml2LT5waXBld2lyZV9jb3JlLCBOVUxMLCAwKTsKLS0gIGlmICghcHJpdi0+cGlwZXdpcmVfcmVt b3RlKQotKyAgcHJpdi0+cGlwZXdpcmVfY29yZSA9IHB3X2NvbnRleHRfY29ubmVjdCAocHJpdi0+ cGlwZXdpcmVfY29udGV4dCwgTlVMTCwgMCk7Ci0rICBpZiAoIXByaXYtPnBpcGV3aXJlX2NvcmUp Ci0gICAgIHsKLSAgICAgICBnX3NldF9lcnJvciAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJS T1JfRkFJTEVELAotLSAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgY3JlYXQgcGlwZXdpcmUg cmVtb3RlIik7Ci0rICAgICAgICAgICAgICAgICAgICJDb3VsZG4ndCBjb25uZWN0IHBpcGV3aXJl IGNvbnRleHQiKTsKLSAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgIH0KLQotLSAgcHdfcmVtb3Rl X2FkZF9saXN0ZW5lciAocHJpdi0+cGlwZXdpcmVfcmVtb3RlLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgJnByaXYtPnBpcGV3aXJlX3JlbW90ZV9saXN0ZW5lciwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICZyZW1vdGVfZXZlbnRzLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg c3JjKTsKLSsgIHB3X2NvcmVfYWRkX2xpc3RlbmVyIChwcml2LT5waXBld2lyZV9jb3JlLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICZwcml2LT5waXBld2lyZV9jb3JlX2xpc3RlbmVyLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICZjb3JlX2V2ZW50cywKLSsgICAgICAgICAgICAgICAgICAg ICAgICBzcmMpOwotCi0tICBwcml2LT5waXBld2lyZV90eXBlID0gcHdfY29yZV9nZXRfdHlwZSAo cHJpdi0+cGlwZXdpcmVfY29yZSk7Ci0tICBpbml0X3NwYV90eXBlICgmcHJpdi0+c3BhX3R5cGUs IHByaXYtPnBpcGV3aXJlX3R5cGUtPm1hcCk7Ci0tCi0tICBpZiAocHdfcmVtb3RlX2Nvbm5lY3Qg KHByaXYtPnBpcGV3aXJlX3JlbW90ZSkgIT0gMCkKLS0gICAgewotLSAgICAgIGdfc2V0X2Vycm9y IChlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9GQUlMRUQsCi0tICAgICAgICAgICAgICAg ICAgICJDb3VsZG4ndCBjb25uZWN0IHBpcGV3aXJlIHJlbW90ZSIpOwotLSAgICAgIHJldHVybiBG QUxTRTsKLS0gICAgfQotKyAgcHJpdi0+cGlwZXdpcmVfc3RyZWFtID0gY3JlYXRlX3BpcGV3aXJl X3N0cmVhbSAoc3JjLCBlcnJvcik7Ci0rICBpZiAoIXByaXYtPnBpcGV3aXJlX3N0cmVhbSkKLSsg ICAgcmV0dXJuIEZBTFNFOwotCi0gICByZXR1cm4gVFJVRTsKLSB9Ci1AQCAtOTEyLDggKzg1NSw4 IEBAIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19maW5hbGl6ZSAoR09iamVjdCAqb2JqZWN0 KQotICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZGlzYWJsZSAoc3JjKTsKLQotICAg Z19jbGVhcl9wb2ludGVyICgmcHJpdi0+cGlwZXdpcmVfc3RyZWFtLCBwd19zdHJlYW1fZGVzdHJv eSk7Ci0tICBnX2NsZWFyX3BvaW50ZXIgKCZwcml2LT5waXBld2lyZV9yZW1vdGUsIHB3X3JlbW90 ZV9kZXN0cm95KTsKLS0gIGdfY2xlYXJfcG9pbnRlciAoJnByaXYtPnBpcGV3aXJlX2NvcmUsIHB3 X2NvcmVfZGVzdHJveSk7Ci0rICBnX2NsZWFyX3BvaW50ZXIgKCZwcml2LT5waXBld2lyZV9jb3Jl LCBwd19jb3JlX2Rpc2Nvbm5lY3QpOwotKyAgZ19jbGVhcl9wb2ludGVyICgmcHJpdi0+cGlwZXdp cmVfY29udGV4dCwgcHdfY29udGV4dF9kZXN0cm95KTsKLSAgIGdfc291cmNlX2Rlc3Ryb3kgKCZw cml2LT5waXBld2lyZV9zb3VyY2UtPmJhc2UpOwotCi0gICBHX09CSkVDVF9DTEFTUyAobWV0YV9z Y3JlZW5fY2FzdF9zdHJlYW1fc3JjX3BhcmVudF9jbGFzcyktPmZpbmFsaXplIChvYmplY3QpOwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9tdXR0ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL211dHRlci90ZW1w bGF0ZQppbmRleCA4MDZhM2JlZjlmMC4uMzdlYzk2M2FhNWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv bXV0dGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbXV0dGVyL3RlbXBsYXRlCkBAIC0xLDM0ICsx LDQwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtdXR0ZXInCiBwa2duYW1lPW11dHRlcgotdmVy c2lvbj0zLjM0LjEKLXJldmlzaW9uPTMKK3ZlcnNpb249My4zNy45MQorcmV2aXNpb249MQogYnVp bGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EZWds X2RldmljZT10cnVlIC1EdWRldj10cnVlIC1EbmF0aXZlX2JhY2tlbmQ9dHJ1ZQotIC1EcHJvZmls ZXI9ZmFsc2UgLURpbnRyb3NwZWN0aW9uPXRydWUgLUR4d2F5bGFuZF9wYXRoPS91c3IvYmluL1h3 YXlsYW5kIgorIC1EcHJvZmlsZXI9ZmFsc2UgLURpbnRyb3NwZWN0aW9uPXRydWUgLUR4d2F5bGFu ZF9wYXRoPS91c3IvYmluL1h3YXlsYW5kCisgLUR4d2F5bGFuZF9pbml0ZmQ9ZGlzYWJsZWQiCiBo b3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBwa2ctY29uZmlnIHplbml0eSB3YXls YW5kLWRldmVsIHhvcmctc2VydmVyIgotbWFrZWRlcGVuZHM9ImVsb2dpbmQtZGV2ZWwgZ2xpYi1k ZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGpzb24tZ2xpYi1kZXZlbAotIGxpYmdsaWItZGV2ZWwg bGliU00tZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCBsaWJpbnB1dC1kZXZl bAotIE1lc2FMaWItZGV2ZWwgcGlwZXdpcmUtZGV2ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2 ZWwgd2F5bGFuZC1wcm90b2NvbHMKLSBnbm9tZS1zZXR0aW5ncy1kYWVtb24tZGV2ZWwiCi1kZXBl bmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgemVuaXR5IgorbWFrZWRlcGVuZHM9ImVsb2dpbmQtZGV2 ZWwgZ2xpYi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGdyYXBoZW5lLWRldmVsCisganNvbi1n bGliLWRldmVsIGxpYmdsaWItZGV2ZWwgbGliU00tZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJjYW5i ZXJyYS1kZXZlbAorIGxpYmlucHV0LWRldmVsIE1lc2FMaWItZGV2ZWwgcGlwZXdpcmUtZGV2ZWwg c3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwKKyB3YXlsYW5kLXByb3RvY29scyBnbm9tZS1zZXR0 aW5ncy1kYWVtb24tZGV2ZWwiCitkZXBlbmRzPSJnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGRl c2t0b3AtZmlsZS11dGlscyB6ZW5pdHkiCiBzaG9ydF9kZXNjPSJMaWdodHdlaWdodCBHVEsrMyB3 aW5kb3cgbWFuYWdlciIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvUHJvamVjdHMvTXV0dGVyLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPWJhMTgyNmNmODhiZGI4MWU2Mzk0M2NhYzAxNGE4ZThiY2YzNWVjMTc4YzUzMjY0NDAx ZjljNzJmZGVhYjc1OGUKLXNobGliX3Byb3ZpZGVzPSJsaWJtdXR0ZXItY2x1dHRlci01LnNvIGxp Ym11dHRlci1jb2dsLTUuc28KLSBsaWJtdXR0ZXItY29nbC1wYW5nby01LnNvIGxpYm11dHRlci1j b2dsLXBhdGgtNS5zbyIKK2NoZWNrc3VtPThiMDg3YjIyZWJkMGJkOTk5NWU2MGVhNGZkNWVmNGVl MWE2NTQyZTU3ODM5ZGM0MjMzM2U0ZDE5ZDQzM2E1NWQKK3NobGliX3Byb3ZpZGVzPSJsaWJtdXR0 ZXItY2x1dHRlci03LnNvIGxpYm11dHRlci1jb2dsLTcuc28KKyBsaWJtdXR0ZXItY29nbC1wYW5n by03LnNvIGxpYm11dHRlci1jb2dsLXBhdGgtNy5zbyIKKworIyBuZWVkcyBYCitkb19jaGVjaygp IHsKKwk6Cit9CiAKIG11dHRlci1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImdzZXR0aW5n cy1kZXNrdG9wLXNjaGVtYXMgZ3RrKzMtZGV2ZWwgY2x1dHRlci1kZXZlbCBsaWJYMTEtZGV2ZWwK LQkgbGliWHRzdC1kZXZlbCBtdXR0ZXItJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlkZXBlbmRz PSJndGsrMy1kZXZlbCBncmFwaGVuZS1kZXZlbCBjbHV0dGVyLWRldmVsCisJIGxpYlgxMS1kZXZl bCBsaWJYdHN0LWRldmVsIG11dHRlci0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCXNob3J0X2Rl c2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNy L2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKLQkJdm1vdmUgInVzci9saWIvbXV0 dGVyLTUvKi5naXIiCisJCXZtb3ZlICJ1c3IvbGliL211dHRlci03LyouZ2lyIgogCQl2bW92ZSAi dXNyL2xpYi8qLnNvIgogCX0KIH0KCkZyb20gYmJkZGY3M2Q1ODhmZTg0MTQ5MDZmZmU2YTIxNDlk OTU5MTE3YzA3YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAy MDAKU3ViamVjdDogW1BBVENIIDA5LzgxXSBnbm9tZS1tZW51czogdXBkYXRlIHRvIDMuMzYuMAoK LS0tCiBzcmNwa2dzL2dub21lLW1lbnVzL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFu Z2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nbm9tZS1tZW51cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtbWVudXMvdGVtcGxhdGUKaW5k ZXggMjkxMDIxMjljMzguLmU3ODdmYjhkZTZiIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLW1l bnVzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtbWVudXMvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1tZW51cycKIHBrZ25hbWU9Z25vbWUt bWVudXMKLXZlcnNpb249My4zMi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzYuMAorcmV2aXNp b249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25m aWd1cmVfYXJncz0iLS1kaXNhYmxlLXN0YXRpYyIKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIsIExHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdu b21lLm9yZy9HTk9NRS9nbm9tZS1tZW51cyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPWM4NTBjNjRiMjA3NDI2NWZlNTllMDk5YTM0MGI4Njg5Y2YzZGQ0NjU4ZGM5ZmVkZGQyYWI1 ZTk1ZjFhNzRiNzQKK2NoZWNrc3VtPWQ5MzQ4ZjM4YmRlOTU2ZmMzMjc1M2IyOGMxY2RlMTljMTc1 YmZkYmYxZjRkNWIwNjAwM2IzYWEwOTE1M2JiMWYKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVp bGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIDQwZTYxOGI4MWE2ODY2ZTRjODgwM2QyMTc2 ZDgxYjBiMjA2MzNkMzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMC84MV0gY2hlZXNlOiBidW1wCgotLS0KIHNyY3BrZ3Mv Y2hlZXNlL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaGVlc2UvdGVtcGxhdGUgYi9zcmNw a2dzL2NoZWVzZS90ZW1wbGF0ZQppbmRleCA3YTU2YmEwMzlmYi4uMDM3Y2RhNDljOTggMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvY2hlZXNlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2hlZXNlL3RlbXBs YXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY2hlZXNlJwogcGtnbmFt ZT1jaGVlc2UKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9z dHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25maWd1cmVfYXJncz0iLURndGtfZG9j PSQodm9wdF9pZiBndGtfZG9jICd0cnVlJyAnZmFsc2UnKQoKRnJvbSBjN2I0ZjgwZmIxM2RlZTk4 NzA0MjkzZmEyMjJiZWU5MDVmYzQ2NTY2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAy MCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTEvODFdIGV2b2x1dGlvbi1kYXRhLXNl cnZlcjogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgMiArLQogc3JjcGtncy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvdGVtcGxh dGUgfCAyNSArKysrKysrKysrKysrKystLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE2IGlu c2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMg Yi9jb21tb24vc2hsaWJzCmluZGV4IDNmNmE4NWZhNGNlLi4xNGE3NzdmYjE3MyAxMDA2NDQKLS0t IGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC02MjgsNyArNjI4LDcgQEAg bGliaWNhbHNzX2N4eC5zby4zIGxpYmljYWwtMy4wLjRfMQogbGliaWNhbHZjYWwuc28uMyBsaWJp Y2FsLTMuMC40XzEKIGxpYmljYWwtZ2xpYi5zby4zIGxpYmljYWwtMy4wLjRfMQogbGliY2FtZWwt MS4yLnNvLjYyIGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjMwLjBfMQotbGliZWRhdGFzZXJ2ZXIt MS4yLnNvLjI0IGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjMyLjBfMQorbGliZWRhdGFzZXJ2ZXIt MS4yLnNvLjI1IGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjM3LjkwXzEKIGxpYmViYWNrZW5kLTEu Mi5zby4xMCBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4xNy45MF8xCiBsaWJlZGF0YXNlcnZlcnVp LTEuMi5zby4yIGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI4LjBfMQogbGliZWJvb2stY29udGFj dHMtMS4yLnNvLjMgZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMzQuMF8xCmRpZmYgLS1naXQgYS9z cmNwa2dzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZXZvbHV0aW9u LWRhdGEtc2VydmVyL3RlbXBsYXRlCmluZGV4IDRhZTgyMGJlMDY4Li41MjA2OWFkOTkzYiAxMDA2 NDQKLS0tIGEvc3JjcGtncy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvdGVtcGxhdGUKQEAgLTEsMjkgKzEsMzQgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2V2b2x1dGlvbi1kYXRhLXNlcnZlcicKIHBrZ25hbWU9ZXZvbHV0 aW9uLWRhdGEtc2VydmVyCi12ZXJzaW9uPTMuMzYuMQotcmV2aXNpb249MgordmVyc2lvbj0zLjM3 LjkwCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQotYnVpbGRfaGVscGVyPWdpcgorYnVp bGRfaGVscGVyPSJnaXIgcWVtdSIKIGNvbmZpZ3VyZV9hcmdzPSItREVOQUJMRV9VT0E9T0ZGCi0g JCh2b3B0X2lmIGdpciAnLURFTkFCTEVfSU5UUk9TUEVDVElPTj1PTiAtREVOQUJMRV9WQUxBX0JJ TkRJTkdTPU9OJyAnLURFTkFCTEVfV0VBVEhFUj1PRkYnKSIKLWhvc3RtYWtlZGVwZW5kcz0iZmxl eCBnbGliLWRldmVsIGdwZXJmIGludGx0b29sIHBrZy1jb25maWcgbGliZ2xpYi1kZXZlbAotICQo dm9wdF9pZiBnaXIgJ2dvYmplY3QtaW50cm9zcGVjdGlvbicpIgotbWFrZWRlcGVuZHM9ImJvb3N0 LWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYmdkYXRhLWRldmVsICQodm9wdF9pZiBnaXIgbGli Z3dlYXRoZXItZGV2ZWwpCi0gbGliaWNhbC1kZXZlbCBsaWJzZWNyZXQtZGV2ZWwgbWl0LWtyYjUt ZGV2ZWwgJCh2b3B0X2lmIGdpciAndmFsYS1kZXZlbCcpIHdlYmtpdDJndGstZGV2ZWwiCi1kZXBl bmRzPSIkKHZvcHRfaWYgZ2lyIGxpYmd3ZWF0aGVyKSBsaWJzb3VwLWdub21lIgorICQodm9wdF9p ZiBnaXIgJy1ERU5BQkxFX0lOVFJPU1BFQ1RJT049T04gLURFTkFCTEVfVkFMQV9CSU5ESU5HUz1P TicpIgoraG9zdG1ha2VkZXBlbmRzPSJmbGV4IGdsaWItZGV2ZWwgZ3BlcmYgaW50bHRvb2wgcGtn LWNvbmZpZyBsaWJnbGliLWRldmVsIgorbWFrZWRlcGVuZHM9ImJvb3N0LWRldmVsIGxpYmNhbmJl cnJhLWRldmVsIGxpYmdkYXRhLWRldmVsIGxpYmljYWwtZGV2ZWwKKyBsaWJzZWNyZXQtZGV2ZWwg bWl0LWtyYjUtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCBsaWJnd2VhdGhlci1kZXZlbAorICQodm9w dF9pZiBnaXIgdmFsYS1kZXZlbCkiCitkZXBlbmRzPSJsaWJnd2VhdGhlciBsaWJzb3VwLWdub21l Igogc2hvcnRfZGVzYz0iQ2VudHJhbGl6ZWQgYWNjZXNzIHRvIGFwcG9pbnRtZW50cyBhbmQgY29u dGFjdHMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+Igog bGljZW5zZT0iTEdQTC0yLjEtb25seSIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3Jn L0FwcHMvRXZvbHV0aW9uIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVu dC5jb20vR05PTUUvZXZvbHV0aW9uLWRhdGEtc2VydmVyL2dub21lLTMtMzYvTkVXUyIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTEzMTIyYjJlZGRkYjk4MzA2MjA3ZDJhMzVkNWNj YWUyNWE5MDcwMjc2OWNhMGEwYjUxNjUzYjU5ODQ5ODY3OTYKK2NoZWNrc3VtPTZjZDcxZWRmNDJl Njk5YWI4ZThiZDQ5MDhhZWIxMzEyMTBiNTk0Y2U5NjFiZGU2OGZkMjczMzNiMmFlZDQ0MzAKIAog YnVpbGRfb3B0aW9ucz0iZ2lyIgogaWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJYnVp bGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiBmaQogCisjIHByb2JsZW1hdGljCitkb19jaGVjaygp IHsKKwk6Cit9CisKICMgY21ha2UgcGVyZm9tcm1zIDIgY2hlY2tzIHVzaW5nIGJpbmFyeSBydW50 aW1lLCBhYm91dCBpY29udiBhbmQgc2ZydGltZS4KICMgbXVzbCAoMS4xLjE2KSBkb2VzIG5vdCBz dXBwb3J0ICJJU08tMjAyMi1KUCIgZW5jb2RpbmcgKHNlZSBpdHMgcm9hZG1hcCksCiAjIGFsdGhv dWdoIGV2b2x1dGlvbi1kYXRhLXNlcnZlciBpcyBmaW5lIHdpdGggbXVzbC4KCkZyb20gNDNmODQ4 YzhmOGRmZDU2OGNmODAxNTc1MWU5YzkxNjg3YWNiNmU4MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDEyLzgxXSBnbm9tZS1j b250cm9sLWNlbnRlcjogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9nbm9tZS1jb250 cm9sLWNlbnRlci90ZW1wbGF0ZSB8IDIyICsrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNvbnRy b2wtY2VudGVyL3RlbXBsYXRlCmluZGV4IGJlNTg1MmYzYjIxLi4xZTE2ZTdhYmI2YiAxMDA2NDQK LS0tIGEvc3JjcGtncy9nbm9tZS1jb250cm9sLWNlbnRlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2dub21lLWNvbnRyb2wtY2VudGVyL3RlbXBsYXRlCkBAIC0xLDIyICsxLDIyIEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdnbm9tZS1jb250cm9sLWNlbnRlcicKIHBrZ25hbWU9Z25vbWUtY29udHJv bC1jZW50ZXIKLXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItRGNo ZWVzZT0kKHZvcHRfaWYgY2hlZXNlIHRydWUgZmFsc2UpIgotaG9zdG1ha2VkZXBlbmRzPSJnbGli LWRldmVsIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwgaW50bHRvb2wgcGtnLWNvbmZp ZyBwb2xraXQKLSBweXRob24zIgoraG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGdzZXR0aW5n cy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwgaW50bHRvb2wgcGtnLWNvbmZpZworIHBvbGtpdCBweXRo b24zIgogbWFrZWRlcGVuZHM9Ik1vZGVtTWFuYWdlci1kZXZlbCBhY2NvdW50c3NlcnZpY2UtZGV2 ZWwgYWxzYS1wbHVnaW5zCiAgY29sb3JkLWd0ay1kZXZlbCBnbm9tZS1ibHVldG9vdGgtZGV2ZWwg Z25vbWUtZGVza3RvcC1kZXZlbCBnbm9tZS1tZW51cy1kZXZlbAogIGdub21lLW9ubGluZS1hY2Nv dW50cy1kZXZlbCBnbm9tZS1zZXR0aW5ncy1kYWVtb24tZGV2ZWwgZ3JpbG8tZGV2ZWwgaWJ1cy1k ZXZlbAotIGxpYlNNLWRldmVsIGxpYlh4Zjg2bWlzYy1kZXZlbCBsaWJnbm9tZWtiZC1kZXZlbCBs aWJndG9wLWRldmVsCisgbGliU00tZGV2ZWwgbGliWHhmODZtaXNjLWRldmVsIGxpYmdub21la2Jk LWRldmVsIGxpYmd0b3AtZGV2ZWwgbGliaGFuZHkxLWRldmVsCiAgbGlicHdxdWFsaXR5LWRldmVs IG1pdC1rcmI1LWRldmVsIG5ldHdvcmstbWFuYWdlci1hcHBsZXQtZGV2ZWwgcG9sa2l0LWRldmVs CiAgcHVsc2VhdWRpby1kZXZlbCBzYW1iYS1kZXZlbCB0emRhdGEgdXBvd2VyLWRldmVsIHZhbGEt ZGV2ZWwgY2x1dHRlci1ndGstZGV2ZWwKICBsaWJ4bWwyLWRldmVsIGxpYlgxMS1kZXZlbCBndGsr My1kZXZlbCBjdXBzLWRldmVsIGxpYmd1ZGV2LWRldmVsIGxpYndhY29tLWRldmVsCiAgY2x1dHRl ci1kZXZlbCBsaWJzZWNyZXQtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwgdWRpc2tzMi1kZXZlbCBn c291bmQtZGV2ZWwKICAkKHZvcHRfaWYgY2hlZXNlIGNoZWVzZS1kZXZlbCkiCi1kZXBlbmRzPSJh bHNhLXBsdWdpbnMtcHVsc2VhdWRpbyBkZXNrdG9wLWZpbGUtdXRpbHMKK2RlcGVuZHM9ImFsc2Et cGx1Z2lucy1wdWxzZWF1ZGlvIGRlc2t0b3AtZmlsZS11dGlscyB1cG93ZXIgY29sb3JkIGN1cHMt cGstaGVscGVyCiAgZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcyBoaWNvbG9yLWljb24tdGhlbWUg aXNvLWNvZGVzIHNvdW5kLXRoZW1lLWZyZWVkZXNrdG9wCiAgY3JhY2tsaWIiCiBzaG9ydF9kZXNj PSJHTk9NRSBjb250cm9sIGNlbnRlciIKQEAgLTI0LDEzICsyNCwxNyBAQCBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtY29u dHJvbC1jZW50ZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01ZjgyZWNkNTU1 NDEzNmM0NjIyNDhlYzUzNjNiODJkOTUzNThiMzlkZmQ2Nzg3MDA2ZDgzMDdiNDUwNGU1MTVlCitj aGVja3N1bT1iMGJiMWRjMzY0ZjJhZTdhNDk2ZjkwMjIzYTZmODc0ODBlZTY0NGM3NTlhNzY0NzM5 NjU5ZWI0Mzc1NDZmNWQ1CiAKIGJ1aWxkX29wdGlvbnM9ImNoZWVzZSIKK2J1aWxkX29wdGlvbnNf ZGVmYXVsdD0iY2hlZXNlIgorCiBkZXNjX29wdGlvbl9jaGVlc2U9IkFkZCBzdXBwb3J0IGZvciBh ZGRpbmcgdXNlciBhY2NvdW50IGltYWdlcyB3aXRoIHlvdXIgd2ViY2FtIgotaWYgWyAteiAiJENS T1NTX0JVSUxEIiBdOyB0aGVuCi0JYnVpbGRfb3B0aW9uc19kZWZhdWx0Kz0iIGNoZWVzZSIKLWZp CisKKyMgbmVlZHMgWDExIGFuZCByZXF1aXJlcyBhbHRlcmVkIGZpbGVzeXN0ZW0KK2RvX2NoZWNr KCkgeworCToKK30KIAogQ0ZMQUdTPSItZmNvbW1vbiIKIAoKRnJvbSBjOTEyNDI2ZWQxMDU0NGQ0 MWY3ODQyNjVmMWZkNjdmYjAyMjc3ZGI3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAy MCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMvODFdIHRyYWNrZXI6IHVwZGF0ZSB0 byAyLjMuNAoKLS0tCiBzcmNwa2dzL3RyYWNrZXIvdGVtcGxhdGUgfCA5ICsrKysrLS0tLQogMSBm aWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL3RyYWNrZXIvdGVtcGxhdGUgYi9zcmNwa2dzL3RyYWNrZXIvdGVtcGxhdGUKaW5k ZXggMzcwNzRjYjM0OGQuLjE5MzM4ZGI0NWUxIDEwMDY0NAotLS0gYS9zcmNwa2dzL3RyYWNrZXIv dGVtcGxhdGUKKysrIGIvc3JjcGtncy90cmFja2VyL3RlbXBsYXRlCkBAIC0xLDIyICsxLDIzIEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0cmFja2VyJwogcGtnbmFtZT10cmFja2VyCi12ZXJzaW9u PTIuMy4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTIuMy40CityZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25maWd1cmVfYXJncz0iLURkb2NzPWZhbHNl IC1EZnRzPXRydWUgLURmdW5jdGlvbmFsX3Rlc3RzPWZhbHNlCiAgLURqb3VybmFsPXRydWUgLURt YW49dHJ1ZSAtRG5ldHdvcmtfbWFuYWdlcj1lbmFibGVkIC1Ec3RlbW1lcj1kaXNhYmxlZAogIC1E c3lzdGVtZF91c2VyX3NlcnZpY2VzPW5vIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGds aWItZGV2ZWwgdmFsYSIKK2hvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBwa2ctY29uZmlnIGdsaWIt ZGV2ZWwgdmFsYSIKIG1ha2VkZXBlbmRzPSJkYnVzLWRldmVsIGxpYmdsaWItZGV2ZWwgaWN1LWRl dmVsIGpzb24tZ2xpYi1kZXZlbAogIGxpYnNvdXAtZGV2ZWwgbGlieG1sMi1kZXZlbCBzcWxpdGUt ZGV2ZWwgTmV0d29ya01hbmFnZXItZGV2ZWwKICBiYXNoLWNvbXBsZXRpb24iCitjaGVja2RlcGVu ZHM9InRhciIKIHNob3J0X2Rlc2M9IlBlcnNvbmFsIHNlYXJjaCB0b29sIGFuZCBzdG9yYWdlIHN5 c3RlbSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNl bnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vbGl2ZS5nbm9tZS5vcmcv VHJhY2tlciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS90cmFja2VyLyR7dmVyc2lvbiUuKn0v dHJhY2tlci0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWI2NzQ4NzI2ZTQ2NWFkMmY0ZDk5 MTU2MDYzNGIxZmQwZGY4ODQxZjNkOTgxYjNiODM3YzQxNjJhYmVkZjA4YTEKK2NoZWNrc3VtPTU3 Nzk1MjI0NGFiOTc3Yzc4YjBiODhlMmY2M2M0MTk3ZWFiYTE2ZTRkNjZiZmY2OTJiN2Y1ODk5M2Uw NjUxNmQKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0i IGRidXMiCgpGcm9tIGJhMGIzMTY1MWQyMGFkNjM1Nzc0YjcwYmZjN2ExYjUwN2E3ZGQyYWYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxNC84MV0gZm9sa3M6IHVwZGF0ZSB0byAwLjE0LjAKCi0tLQogY29tbW9uL3NobGlicyAg ICAgICAgICB8ICA3ICsrKystLS0KIHNyY3BrZ3MvZm9sa3MvdGVtcGxhdGUgfCAyOCArKysrKysr KysrKysrKysrKystLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyks IDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hs aWJzCmluZGV4IDE0YTc3N2ZiMTczLi40M2Y3ZWRlMjU5OSAxMDA2NDQKLS0tIGEvY29tbW9uL3No bGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC04MzMsOSArODMzLDEwIEBAIGxpYmRtci5zby4w LjEgZGVlcGluLW1vdmllLXJlYm9ybi0zLjIuNV8xCiBsaWJnanMuc28uMCBnanMtMS42NS4yXzEK IGxpYnRlbGVwYXRoeS1nbGliLnNvLjAgdGVsZXBhdGh5LWdsaWItMC4xNS41XzEKIGxpYmFjY291 bnRzc2VydmljZS5zby4wIGFjY291bnRzc2VydmljZS0wLjYuNF8xCi1saWJmb2xrcy5zby4yNSBm b2xrcy0wLjkuNV8xCi1saWJmb2xrcy10ZWxlcGF0aHkuc28uMjUgZm9sa3MtMC45LjVfMQotbGli Zm9sa3MtZWRzLnNvLjI1IGZvbGtzLTAuOS41XzEKK2xpYmZvbGtzLnNvLjI1IGZvbGtzLTAuMTQu MF8xCitsaWJmb2xrcy1kdW1teS5zby4yNSBmb2xrcy0wLjE0LjBfMQorbGliZm9sa3MtdGVsZXBh dGh5LnNvLjI1IGZvbGtzLTAuMTQuMF8xCitsaWJmb2xrcy1lZHMuc28uMjUgZm9sa3MtMC4xNC4w XzEKIGxpYm5pY2Uuc28uMTAgbGlibmljZS0wLjEuMF8xCiBsaWJndXBucC1pZ2QtMS4wLnNvLjQg Z3VwbnAtaWdkLTAuMi4wXzEKIGxpYnRlbGVwYXRoeS1sb2dnZXIuc28uMyB0ZWxlcGF0aHktbG9n Z2VyLTAuNi4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZm9sa3MvdGVtcGxhdGUgYi9zcmNwa2dz L2ZvbGtzL3RlbXBsYXRlCmluZGV4IDMzMTBjNTRmYWRkLi5iMDc2Yjk0YmVhMiAxMDA2NDQKLS0t IGEvc3JjcGtncy9mb2xrcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2ZvbGtzL3RlbXBsYXRlCkBA IC0xLDIxICsxLDI3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdmb2xrcycKIHBrZ25hbWU9Zm9s a3MKLXZlcnNpb249MC4xMy4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTAuMTQuMAorcmV2aXNpb249 MQogYnVpbGRfc3R5bGU9bWVzb24KLWJ1aWxkX2hlbHBlcj1naXIKLWNvbmZpZ3VyZV9hcmdzPSIt RGJfbHRvPWZhbHNlIC1EbGlic29jaWFsd2ViLWJhY2tlbmQ9ZmFsc2UiCi1ob3N0bWFrZWRlcGVu ZHM9InBrZy1jb25maWcgaW50bHRvb2wgZ2xpYi1kZXZlbCB2YWxhIHB5dGhvbiBnb2JqZWN0LWlu dHJvc3BlY3Rpb24KLSBldm9sdXRpb24tZGF0YS1zZXJ2ZXItZGV2ZWwiCitidWlsZF9oZWxwZXI9 ImdpciBxZW11IgorY29uZmlndXJlX2FyZ3M9Ii1EYl9sdG89ZmFsc2UiCitob3N0bWFrZWRlcGVu ZHM9InBrZy1jb25maWcgaW50bHRvb2wgZ2xpYi1kZXZlbCBweXRob24zIHB5dGhvbjMtZGJ1c21v Y2sKKyBldm9sdXRpb24tZGF0YS1zZXJ2ZXItZGV2ZWwgJCh2b3B0X2lmIGdpciB2YWxhKSIKIG1h a2VkZXBlbmRzPSJyZWFkbGluZS1kZXZlbCB0ZWxlcGF0aHktZ2xpYi1kZXZlbCB6ZWl0Z2Vpc3Qt ZGV2ZWwKLSBsaWJnZWUwOC1kZXZlbCBldm9sdXRpb24tZGF0YS1zZXJ2ZXItZGV2ZWwgdHJhY2tl ci1kZXZlbCIKKyBsaWJnZWUwOC1kZXZlbCBldm9sdXRpb24tZGF0YS1zZXJ2ZXItZGV2ZWwgdHJh Y2tlci1kZXZlbAorICQodm9wdF9pZiBnaXIgdmFsYS1kZXZlbCkiCiBkZXBlbmRzPSJ6ZWl0Z2Vp c3QiCiBzaG9ydF9kZXNjPSJHT2JqZWN0IExpYnJhcnkgdG8gYWdncmVnYXRlIHBlb3BsZSBpbnRv IG1ldGFjb250YWN0cyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dp a2kuZ25vbWUub3JnL1Byb2plY3RzL0ZvbGtzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7 cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09M2RmMWM2NjNiODJmZTIxMWFlYWQyYjMxY2FlMWZjNDFkMTI0ZTg1NDM2Mzc1NzYyZjY3 NDVjNDViYTQ2YWE1ZAorY2hlY2tzdW09ZDZlNzc4ZGE2MzdkM2IzM2ZkOWE2YjQ1MTE1ZTgxNTdk ODg2ODIxMWRjMDhiOTQzZDEwNzViNWViNzI4MmJiOQorCitidWlsZF9vcHRpb25zPSJnaXIiCitp ZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwlidWlsZF9vcHRpb25zX2RlZmF1bHQ9Imdp ciIKK2ZpCiAKIGZvbGtzLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHttYWtlZGVwZW5k c30gJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgpAQCAtMjQsNyArMzAsOSBA QCBmb2xrcy1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1 c3IvbGliL3BrZ2NvbmZpZwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgotCQl2bW92ZSB1c3Ivc2hh cmUvdmFsYQotCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAorCQlpZiBbICIkYnVpbGRfb3B0aW9u X2dpciIgXTsgdGhlbgorCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKKwkJCXZtb3ZlIHVzci9z aGFyZS92YWxhCisJCWZpCiAJfQogfQoKRnJvbSA5NTM4ZTkzN2ZiYTUzMzI4MzFlZDNlNTRlNmQ1 OGE3YjNjNGUzMDc4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMTUvODFdIGRjb25mLWVkaXRvcjogdXBkYXRlIHRvIDMuMzYu NAoKLS0tCiBzcmNwa2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZGNvbmYtZWRpdG9yL3RlbXBsYXRlIGIvc3JjcGtncy9kY29uZi1lZGl0b3IvdGVtcGxh dGUKaW5kZXggZGUyNTBiYmM4YTkuLjg4OWU3OTRlNmIyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Rj b25mLWVkaXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZQpA QCAtMSwxMyArMSwxMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZGNvbmYtZWRpdG9yJwogcGtn bmFtZT1kY29uZi1lZGl0b3IKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzYuNAogcmV2aXNp b249MQogYnVpbGRfc3R5bGU9bWVzb24KLWhvc3RtYWtlZGVwZW5kcz0iZG9jYm9vay14c2wgZ2xp Yi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWcgdmFsYSIKK2hvc3RtYWtlZGVwZW5kcz0iZG9jYm9v ay14c2wgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWcgdmFsYSBnZXR0ZXh0IgogbWFrZWRl cGVuZHM9ImRjb25mLWRldmVsIGd0ayszLWRldmVsIgogc2hvcnRfZGVzYz0iTG93LWxldmVsIGNv bmZpZ3VyYXRpb24gc3lzdGVtIC0gR1RLKyBlZGl0b3IiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFu ZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL2Rjb25mIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09NzJlZWQwNTY3MDkxN2Y4ZTQzMjAwZTQwY2NjNmJlNjAy MTFmMGE4N2IwMTc1MzRlYWMxZmQ2YzcxNzNhMDY5MworY2hlY2tzdW09M2VjMzA5YmJjOTIwYjE1 YzJhNTY4M2UxYTQ5NjJhYmY2OTExYTg3NjJjOGExMTNjNGQ3OTRmN2UwZWE1M2U3OQoKRnJvbSBm ZjY4NGM0YjMxYTUyOTc2ZTAzYzkwOTkzNWExMDQzMjYxMDJiOTlhIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTYvODFdIGRl dmhlbHA6IHVwZGF0ZSB0byAzLjM3LjEKCi0tLQogc3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlIHwg NCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZGV2aGVscC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZGV2aGVscC90 ZW1wbGF0ZQppbmRleCBhMWMyZGNiYjc2Mi4uOWM1YzQwNzYzYzkgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZGV2aGVscC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2RldmhlbHAvdGVtcGxhdGUKQEAgLTEs NiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdkZXZoZWxwJwogcGtnbmFtZT1kZXZoZWxw Ci12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM3LjEKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBl cj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KQEAgLTExLDcgKzExLDcgQEAgbWFpbnRhaW5lcj0i RW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0RldmhlbHAiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT00Y2Y4ZWM5MzAyYmM0YTc5ZTAxYWM1M2Jk OWM4Yjk1YTU5NmY3MWYzNTM1MWY0OGI2MzI2MzIyN2YwOWE4YTNkCitjaGVja3N1bT04MWZmYmI5 ZTEzN2NkMDAzMWE0ZjQzMDRhMTI0NGQwYjQzMjhlNGE3YzAwZDc0OWE4ZmMwZTJiYmFhMzAwNWY5 CiAKIGRldmhlbHAtZGV2ZWxfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1l bnQgZmlsZXMiCgpGcm9tIDk5OWNhNjA3OTFjYjIwZThlZjhlMzc3MWY1YzExMWRkMDVlMjIxNzcg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAxNy84MV0gZ25vbWUtc2hlbGw6IHVwZGF0ZSB0byAzLjM3LjkxCgotLS0KIHNyY3Br Z3MvZ25vbWUtc2hlbGwvdGVtcGxhdGUgfCAxMSArKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQs IDggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2du b21lLXNoZWxsL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZQppbmRleCA5 NmM1YjgwYTE5NC4uNWIxODY4NWU3YjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtc2hlbGwv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZQpAQCAtMSwxMiArMSwx MiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2hlbGwnCiBwa2duYW1lPWdub21lLXNo ZWxsCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM3LjkxCiByZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPWdpcgogY29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZD1m YWxzZSIKIGhvc3RtYWtlZGVwZW5kcz0iZ29iamVjdC1pbnRyb3NwZWN0aW9uIGd0ay1kb2MgbGli eHNsdCBwa2ctY29uZmlnIHB5dGhvbjMgc2Fzc2MKLSBhc2NpaWRvYyBwZXJsIGdsaWItZGV2ZWwg bXV0dGVyLWRldmVsIgorIGFzY2lpZG9jIHBlcmwgZ2xpYi1kZXZlbCBtdXR0ZXItZGV2ZWwgZ2V0 dGV4dCBnanMtZGV2ZWwiCiBtYWtlZGVwZW5kcz0iYXQtc3BpMi1hdGsgY2FyaWJvdS1kZXZlbCBl dm9sdXRpb24tZGF0YS1zZXJ2ZXItZGV2ZWwgZm9sa3MtZGV2ZWwKICBnY3ItZGV2ZWwgZ2pzLWRl dmVsIGdub21lLWJsdWV0b290aC1kZXZlbCBnbm9tZS1jb250cm9sLWNlbnRlci1kZXZlbCBnbm9t ZS1kZXNrdG9wLWRldmVsCiAgZ25vbWUtbWVudXMtZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2No ZW1hcy1kZXZlbCBnc3RyZWFtZXIxLWRldmVsIGd0ayszLWRldmVsCkBAIC0yMSw0ICsyMSw5IEBA IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21l Lm9yZy9Qcm9qZWN0cy9Hbm9tZVNoZWxsIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1 c2VyY29udGVudC5jb20vR05PTUUvZ25vbWUtc2hlbGwvZ25vbWUtMy0zMC9ORVdTIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Y2NkODY1NTliOWM4OTdjMjE5ZDJkMmViZmRiODQx M2VmYTRjMWJlZTg0NjQyN2M3NTBjYjhhMzAxYjNmNmQxZQorY2hlY2tzdW09N2EyOGI5Zjg0NzM1 OTQ1Y2E3MWJjZWJkOWZmNTVhMDFjYzE0N2ZlMTcyMjE4YWE4MzVkNTg3ZGM4ZDQ2Y2EwNworCisj IG5lZWRzIFgKK2RvX2NoZWNrKCkgeworCToKK30KCkZyb20gMDg4NjU4YzAyOWJlODU2NDcwNjUy ZjQyMmU4MGRmNmJlZmM2MGRhMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDE4LzgxXSBnZG06IHVwZGF0ZSB0byAzLjM3Ljkw CgotLS0KIHNyY3BrZ3MvZ2RtL3RlbXBsYXRlIHwgMzEgKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2RtL3RlbXBsYXRlIGIvc3JjcGtncy9nZG0vdGVtcGxh dGUKaW5kZXggYmI1YjQ4NjkyZDQuLmQ5NDk5YjMzNjE3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dk bS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dkbS90ZW1wbGF0ZQpAQCAtMSwyNyArMSwyOCBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2RtJwogcGtnbmFtZT1nZG0KLXZlcnNpb249My4zNC4xCit2 ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgotYnVpbGRfc3R5 bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJv c3BlY3Rpb24pCi0gLS1kaXNhYmxlLXNjaGVtYXMtY29tcGlsZSAtLWRpc2FibGUtc3RhdGljIC0t d2l0aC1kZWZhdWx0LXBhbS1jb25maWc9YXJjaAotIC0td2l0aC1hdC1zcGktcmVnaXN0cnlkLWRp cmVjdG9yeT0vdXNyL2xpYmV4ZWMgLS13aXRob3V0LXRjcC13cmFwcGVycwotIC0td2l0aC1zY3Jl ZW5zaG90LWRpcj0vdmFyL2xpYi9nZG0vZ3JlZXRlciAtLXNiaW5kaXI9L3Vzci9iaW4gLS13aXRo b3V0LXBseW1vdXRoCi0gLS13aXRoLXhhdXRoLWRpcj0vcnVuL2dkbSAtLXdpdGgtcGlkLWZpbGU9 L3J1bi9nZG0vZ2RtLnBpZAotIC0tZGlzYWJsZS1zeXN0ZW1kLWpvdXJuYWwgLS13aXRoLWluaXRp YWwtdnQ9NyAtLWVuYWJsZS13YXlsYW5kLXN1cHBvcnQiCitidWlsZF9zdHlsZT1tZXNvbgorY29u ZmlndXJlX2FyZ3M9IgorIC1EZGVmYXVsdC1wYW0tY29uZmlnPWFyY2ggLURhdC1zcGktcmVnaXN0 cnlkLWRpcj0vdXNyL2xpYmV4ZWMKKyAtRHRjcC13cmFwcGVycz1mYWxzZSAtRHNjcmVlbnNob3Qt ZGlyPS92YXIvbGliL2dkbS9ncmVldGVyCisgLURwbHltb3V0aD1kaXNhYmxlZCAtRHhhdXRoLWRp cj0vcnVuL2dkbSAtRHBpZC1maWxlPS9ydW4vZ2RtL2dkbS5waWQKKyAtRHN5c3RlbWQtam91cm5h bD1mYWxzZSAtRGluaXRpYWwtdnQ9NyAtRHdheWxhbmQtc3VwcG9ydD10cnVlCisgLURzZWxpbnV4 PWRpc2FibGVkIC1EbGliYXVkaXQ9ZGlzYWJsZWQKKyAtRHN5c3RlbWRzeXN0ZW11bml0ZGlyPS90 bXAgLURzeXN0ZW1kdXNlcnVuaXRkaXI9L3RtcCIKIGhvc3RtYWtlZGVwZW5kcz0iZGNvbmYgZ2V0 dGV4dCBpdHN0b29sIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iYWNjb3VudHNzZXJ2aWNlLWRl dmVsIGVsb2dpbmQtZGV2ZWwgZ2V0dGV4dC1kZXZlbCBnbGliLWRldmVsCiAgaXNvLWNvZGVzIGxp YlNNLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIG5zcy1kZXZlbCBwYW0tZGV2ZWwgdXBvd2VyLWRl dmVsIgotZGVwZW5kcz0iZ25vbWUtc2V0dGluZ3MtZGFlbW9uIGdub21lLXNoZWxsIHhvcmctc2Vy dmVyIHhvcmctc2VydmVyLXh3YXlsYW5kCi0geHJkYiIKK2RlcGVuZHM9Imdub21lLXNldHRpbmdz LWRhZW1vbiBnbm9tZS1zaGVsbCBnbm9tZS1zZXNzaW9uIGdub21lLXRoZW1lcy1leHRyYQorIGdz ZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgeG9yZy1zZXJ2ZXIgeG9yZy1zZXJ2ZXIteHdheWxhbmQg eHJkYiIKIGNoZWNrZGVwZW5kcz0iY2hlY2stZGV2ZWwiCiBzaG9ydF9kZXNjPSJHTk9NRSBEaXNw bGF5IE1hbmFnZXIiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5v cmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2ku Z25vbWUub3JnL1Byb2plY3RzL0dETSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25h bWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PWU4NWRmNjU3YWE4ZDkzNjFhZjRmYjEyMjAxNGQ4ZjEyM2E5M2JmZTQ1YTc2NjJmYmEyYjM3M2Q4 MzlkYmQ4ZDMKK2NoZWNrc3VtPTUzYzI5MTFlOGI3Mjk4NjQyZjQxYmJkNTcxOWYzODVlNGZmNzM0 NDA2MTI3YTAwMmIzZjE1NzMyMTZhODRlMTIKIAogY29uZl9maWxlcz0iCiAJL2V0Yy9nZG0vY3Vz dG9tLmNvbmYKQEAgLTQzLDEwICs0NCwxNiBAQCBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4K IAlob3N0bWFrZWRlcGVuZHMrPSIgZ2xpYi1kZXZlbCBwYW0tZGV2ZWwiCiBmaQogCitwcmVfY29u ZmlndXJlKCkgeworCSMgb25seSB1c2VkIHRvIGd1ZXNzIHVuaXQgZmlsZSBpbnN0YWxsYXRpb24g cGF0aAorCXZzZWQgLWkgJ3MsXnN5c3RlbWRfZGVwLCNzeXN0ZW1kX2RlcCwnIG1lc29uLmJ1aWxk Cit9CisKIHBvc3RfaW5zdGFsbCgpIHsKIAl2aW5zdGFsbCAkRklMRVNESVIvWHNlc3Npb24gNzU1 IGV0Yy9nZG0KIAogCXZzZWQgLWkgInMvcGFtX3N5c3RlbWRcLnNvL3BhbV9lbG9naW5kLnNvLyIg JERFU1RESVIvZXRjL3BhbS5kLyoKKwlybSAtcmYgJHtERVNURElSfS90bXAKIAogCSMgcnVuaXQg c2VydmljZQogCXZzdiBnZG0KQEAgLTYwLDcgKzY3LDcgQEAgbGliZ2RtX3BhY2thZ2UoKSB7CiB9 CiAKIGdkbS1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImxpYmdkbT49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKKwlkZXBlbmRzPSJsaWJnZG0+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gZWxv Z2luZC1kZXZlbCIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJcGtnX2lu c3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCgpGcm9tIDllMzdlN2NmN2NjYmUzYzU3ZTcw OGE3YzE1YzYyZjlhMmUxNWVhMzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4 OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxOS84MV0gZ25vbWUtc2Vzc2lvbjogdXBkYXRl IHRvIDMuMzcuMAoKLS0tCiAuLi4tYXBwLVN0cmlwLWJsYWNrbGlzdGVkLXZhcmlhYmxlcy1mcm8u cGF0Y2ggfCA2NyArKysrKysrKysrKysrKysrKysrCiAuLi4vcGF0Y2hlcy9uby1zeXN0ZW1kLWRl cC5wYXRjaCAgICAgICAgICAgICAgfCAxNCArKysrCiBzcmNwa2dzL2dub21lLXNlc3Npb24vdGVt cGxhdGUgICAgICAgICAgICAgICAgfCAxMCArKy0KIDMgZmlsZXMgY2hhbmdlZCwgODggaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dub21l LXNlc3Npb24vcGF0Y2hlcy8wMDAxLXJldmVydC1hdXRvc3RhcnQtYXBwLVN0cmlwLWJsYWNrbGlz dGVkLXZhcmlhYmxlcy1mcm8ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dub21l LXNlc3Npb24vcGF0Y2hlcy9uby1zeXN0ZW1kLWRlcC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzLzAwMDEtcmV2ZXJ0LWF1dG9zdGFydC1hcHAtU3RyaXAt YmxhY2tsaXN0ZWQtdmFyaWFibGVzLWZyby5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9w YXRjaGVzLzAwMDEtcmV2ZXJ0LWF1dG9zdGFydC1hcHAtU3RyaXAtYmxhY2tsaXN0ZWQtdmFyaWFi bGVzLWZyby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2Zk OWY0YmE2Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dub21lLXNlc3Npb24vcGF0Y2hl cy8wMDAxLXJldmVydC1hdXRvc3RhcnQtYXBwLVN0cmlwLWJsYWNrbGlzdGVkLXZhcmlhYmxlcy1m cm8ucGF0Y2gKQEAgLTAsMCArMSw2NyBAQAorRnJvbSAxZGUzNTc1YTFlYTljZGIzNTc5YWQ1Mzgx MDhjNTE4MTg4NDc3OTdjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUmFzbXVzIFRo b21zZW4gPG9zc0Bjb2dpdHJpLmRldj4KK0RhdGU6IEZyaSwgNiBEZWMgMjAxOSAxMTo0ODowMiAr MDEwMAorU3ViamVjdDogW1BBVENIXSByZXZlcnQ6IGF1dG9zdGFydC1hcHA6IFN0cmlwIGJsYWNr bGlzdGVkIHZhcmlhYmxlcyBmcm9tCisgYXV0b3N0YXJ0IGVudmlyb25tZW50CisKK1RoaXMgYnJl YWtzIGdub21lLXNlc3Npb24gb24gbm9uLXN5c3RlbWQgc3lzdGVtcy4KKworaHR0cHM6Ly9naXRs YWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNlc3Npb24vaXNzdWVzLzQ0CistLS0KKyBnbm9tZS1z ZXNzaW9uL2dzbS1hdXRvc3RhcnQtYXBwLmMgfCA1IC0tLS0tCisgZ25vbWUtc2Vzc2lvbi9nc20t dXRpbC5jICAgICAgICAgIHwgNiAtLS0tLS0KKyBnbm9tZS1zZXNzaW9uL2dzbS11dGlsLmggICAg ICAgICAgfCAxIC0KKyAzIGZpbGVzIGNoYW5nZWQsIDEyIGRlbGV0aW9ucygtKQorCitkaWZmIC0t Z2l0IGEvZ25vbWUtc2Vzc2lvbi9nc20tYXV0b3N0YXJ0LWFwcC5jIGIvZ25vbWUtc2Vzc2lvbi9n c20tYXV0b3N0YXJ0LWFwcC5jCitpbmRleCA2ZmQ1OTE1Li4wMWJhNWY5IDEwMDY0NAorLS0tIGdu b21lLXNlc3Npb24vZ3NtLWF1dG9zdGFydC1hcHAuYworKysrIGdub21lLXNlc3Npb24vZ3NtLWF1 dG9zdGFydC1hcHAuYworQEAgLTk5Nyw3ICs5OTcsNiBAQCBhdXRvc3RhcnRfYXBwX3N0YXJ0X3Nw YXduIChHc21BdXRvc3RhcnRBcHAgKmFwcCwKKyAgICAgICAgIGdib29sZWFuICAgICAgICAgc3Vj Y2VzczsKKyAgICAgICAgIEdFcnJvciAgICAgICAgICAqbG9jYWxfZXJyb3I7CisgICAgICAgICBj b25zdCBjaGFyICAgICAgKnN0YXJ0dXBfaWQ7CistICAgICAgICBjb25zdCBjaGFyICogY29uc3Qg KnZhcmlhYmxlX2JsYWNrbGlzdDsKKyAgICAgICAgIGNvbnN0IGNoYXIgKiBjb25zdCAqY2hpbGRf ZW52aXJvbm1lbnQ7CisgICAgICAgICBpbnQgaTsKKyAgICAgICAgIEdBcHBMYXVuY2hDb250ZXh0 ICpjdHg7CitAQCAtMTAxNCwxMCArMTAxMyw2IEBAIGF1dG9zdGFydF9hcHBfc3RhcnRfc3Bhd24g KEdzbUF1dG9zdGFydEFwcCAqYXBwLAorICAgICAgICAgbG9jYWxfZXJyb3IgPSBOVUxMOworICAg ICAgICAgY3R4ID0gZ19hcHBfbGF1bmNoX2NvbnRleHRfbmV3ICgpOworIAorLSAgICAgICAgdmFy aWFibGVfYmxhY2tsaXN0ID0gZ3NtX3V0aWxfZ2V0X3ZhcmlhYmxlX2JsYWNrbGlzdCAoKTsKKy0g ICAgICAgIGZvciAoaSA9IDA7IHZhcmlhYmxlX2JsYWNrbGlzdFtpXSAhPSBOVUxMOyBpKyspCist ICAgICAgICAgICAgICAgIGdfYXBwX2xhdW5jaF9jb250ZXh0X3Vuc2V0ZW52IChjdHgsIHZhcmlh YmxlX2JsYWNrbGlzdFtpXSk7CistCisgICAgICAgICBjaGlsZF9lbnZpcm9ubWVudCA9IGdzbV91 dGlsX2xpc3RlbnYgKCk7CisgICAgICAgICBmb3IgKGkgPSAwOyBjaGlsZF9lbnZpcm9ubWVudFtp XSAhPSBOVUxMOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgY2hhciAqKmVudmlyb25tZW50X3R1 cGxlOworZGlmZiAtLWdpdCBhL2dub21lLXNlc3Npb24vZ3NtLXV0aWwuYyBiL2dub21lLXNlc3Np b24vZ3NtLXV0aWwuYworaW5kZXggMDJiYzRhNS4uYWRhMTIyNSAxMDA2NDQKKy0tLSBnbm9tZS1z ZXNzaW9uL2dzbS11dGlsLmMKKysrKyBnbm9tZS1zZXNzaW9uL2dzbS11dGlsLmMKK0BAIC04MDgs OSArODA4LDMgQEAgZ3NtX3V0aWxfbGlzdGVudiAodm9pZCkKKyAgICAgICAgIHJldHVybiAoY29u c3QgY2hhciAqIGNvbnN0ICopIGNoaWxkX2Vudmlyb25tZW50OworIAorIH0KKy0KKy1jb25zdCBj aGFyICogY29uc3QgKgorLWdzbV91dGlsX2dldF92YXJpYWJsZV9ibGFja2xpc3QgKHZvaWQpCist eworLSAgICAgICAgcmV0dXJuIHZhcmlhYmxlX2JsYWNrbGlzdDsKKy19CitkaWZmIC0tZ2l0IGEv Z25vbWUtc2Vzc2lvbi9nc20tdXRpbC5oIGIvZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5oCitpbmRl eCBiZDdiNjk4Li44YmNhNWY0IDEwMDY0NAorLS0tIGdub21lLXNlc3Npb24vZ3NtLXV0aWwuaAor KysrIGdub21lLXNlc3Npb24vZ3NtLXV0aWwuaAorQEAgLTUwLDcgKzUwLDYgQEAgY2hhciAqICAg ICAgZ3NtX3V0aWxfZ2VuZXJhdGVfc3RhcnR1cF9pZCAgICAgICAgICAgICh2b2lkKTsKKyB2b2lk ICAgICAgICBnc21fdXRpbF9zZXRlbnYgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNo YXIgKnZhcmlhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqdmFsdWUpOworIGNvbnN0IGNoYXIgKiBjb25zdCAqIGdz bV91dGlsX2xpc3RlbnYgICAgICAgICAgICAgICAodm9pZCk7CistY29uc3QgY2hhciAqIGNvbnN0 ICogZ3NtX3V0aWxfZ2V0X3ZhcmlhYmxlX2JsYWNrbGlzdCh2b2lkKTsKKyAKKyBnYm9vbGVhbiAg ICBnc21fdXRpbF9leHBvcnRfYWN0aXZhdGlvbl9lbnZpcm9ubWVudCAgKEdFcnJvciAgICAgKipl cnJvcik7CisgI2lmZGVmIEhBVkVfU1lTVEVNRAorLS0gCisyLjI0LjAKKwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0Y2ggYi9zcmNw a2dzL2dub21lLXNlc3Npb24vcGF0Y2hlcy9uby1zeXN0ZW1kLWRlcC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGU1NWEwZjc5ODcKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2dub21lLXNlc3Npb24vcGF0Y2hlcy9uby1zeXN0ZW1kLWRlcC5wYXRjaApA QCAtMCwwICsxLDE0IEBACistLS0gbWVzb24uYnVpbGQKKysrKyBtZXNvbi5idWlsZAorQEAgLTEz MCwxMCArMTMwLDcgQEAgaWYgZW5hYmxlX3N5c3RlbWQgb3IgZW5hYmxlX2NvbnNvbGVraXQKKyAK KyAgICMgQ2hlY2sgZm9yIHN5c3RlbWQKKyAgIGlmIGVuYWJsZV9zeXN0ZW1kCistICAgIHN5c3Rl bWRfZGVwID0gZGVwZW5kZW5jeSgnc3lzdGVtZCcsIHZlcnNpb246ICc+PSAyNDInLCByZXF1aXJl ZDogdHJ1ZSkKKy0gICAgc3lzdGVtZF91c2VydW5pdGRpciA9IHN5c3RlbWRfZGVwLmdldF9wa2dj b25maWdfdmFyaWFibGUoJ3N5c3RlbWR1c2VydW5pdGRpcicsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZV92YXJpYWJs ZTogWydwcmVmaXgnLCBwcmVmaXhdKQorLQorKyAgICBzeXN0ZW1kX3VzZXJ1bml0ZGlyID0gJy90 bXAnCisgICAgIGxpYnN5c3RlbWRfZGVwID0gZGVwZW5kZW5jeSgnbGlic3lzdGVtZCcsIHZlcnNp b246ICc+PSAyMDknLCByZXF1aXJlZDogZmFsc2UpCisgICAgIHNlc3Npb25fYmluX2RlcHMgKz0g bGlic3lzdGVtZF9kZXAKKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi90ZW1wbGF0ZQppbmRleCA0NDQ0ZjE2MmJmMS4u MDdjYTc2MjYyMjggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2dub21lLXNlc3Npb24vdGVtcGxhdGUKQEAgLTEsOSArMSw5IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zZXNzaW9uJwogcGtnbmFtZT1nbm9tZS1zZXNzaW9uCi12 ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM3LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1l c29uCi1jb25maWd1cmVfYXJncz0iLURzeXN0ZW1kX2pvdXJuYWw9ZmFsc2UiCitjb25maWd1cmVf YXJncz0iLURzeXN0ZW1kX2pvdXJuYWw9ZmFsc2UgLURzeXN0ZW1kX3Nlc3Npb249ZGlzYWJsZSIK IGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnIHhtbHRvIgog bWFrZWRlcGVuZHM9ImVsb2dpbmQtZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBndGsrMy1kZXZl bCBqc29uLWdsaWItZGV2ZWwKICBsaWJnbGliLWRldmVsIGxpYklDRS1kZXZlbCBsaWJTTS1kZXZl bCBsaWJYdHN0LWRldmVsIHN0YXJ0dXAtbm90aWZpY2F0aW9uLWRldmVsCkBAIC0xNSw0ICsxNSw4 IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNl bnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2Vzc2lvbiIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPWQ3ODAxZmUyZDVhNzUxYjE5Y2I1ODA4MTc3MTMxNmE3NmFhYmQ1 YzU1MGNkNThkNGU0YzZhNWE0ZWQzNTY2NjAKK2NoZWNrc3VtPWNiMTQwZjJiOGVlNzY4ZmY4YjNk Y2UzZGRiNDc5ZTcxZTk1MTM4ZTkwNGM4MzQzYTM4YzYwYTJkMWU4NWY5OGYKKworcG9zdF9pbnN0 YWxsKCkgeworCXJtIC1yZiAke0RFU1RESVJ9L3RtcAorfQoKRnJvbSAyMzg0ZDY0ZGIxNGE2ZmVm MjMyZDJlNDEwZjNhNjE5YWNjYTJjMjI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAy MCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjAvODFdIGdub21lLW9ubGluZS1hY2Nv dW50czogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9nbm9tZS1vbmxpbmUtYWNjb3Vu dHMvdGVtcGxhdGUgfCAxMiArKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlv bnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1vbmxpbmUt YWNjb3VudHMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLW9ubGluZS1hY2NvdW50cy90ZW1wbGF0 ZQppbmRleCBkNmEyMmQ5ZGE3Mi4uMjk5ODBkNDM0MjQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25v bWUtb25saW5lLWFjY291bnRzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtb25saW5lLWFj Y291bnRzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25v bWUtb25saW5lLWFjY291bnRzJwogcGtnbmFtZT1nbm9tZS1vbmxpbmUtYWNjb3VudHMKLXZlcnNp b249My4zNi4wCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1j b25maWd1cmUKIGJ1aWxkX2hlbHBlcj0iZ2lyIgpAQCAtMTEsNyArMTEsNyBAQCBjb25maWd1cmVf YXJncz0iJCh2b3B0X2VuYWJsZSBnaXIgaW50cm9zcGVjdGlvbikKICAtLWVuYWJsZS1vd25jbG91 ZCAtLWVuYWJsZS13aW5kb3dzLWxpdmUgLS1lbmFibGUtcG9ja2V0CiAgLS1lbmFibGUtbGFzdGZt IC0tZW5hYmxlLW1lZGlhLXNlcnZlciIKIGhvc3RtYWtlZGVwZW5kcz0iZG9jYm9vay14c2wgZ2V0 dGV4dC1kZXZlbCBnbGliLWRldmVsIGdub21lLWNvbW1vbgotIGxpYnhzbHQgcGtnLWNvbmZpZyAk KHZvcHRfaWYgdmFsYSB2YWxhKSIKKyBsaWJ4c2x0IHBrZy1jb25maWcgJCh2b3B0X2lmIGdpciB2 YWxhKSIKIG1ha2VkZXBlbmRzPSJnY3ItZGV2ZWwgZ3RrKzMtZGV2ZWwganNvbi1nbGliLWRldmVs IGxpYm5vdGlmeS1kZXZlbCBsaWJzZWNyZXQtZGV2ZWwKICBsaWJzb3VwLWRldmVsIG1pdC1rcmI1 LWRldmVsIHJlc3QtZGV2ZWwgdGVsZXBhdGh5LWdsaWItZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCIK IGRlcGVuZHM9ImhpY29sb3ItaWNvbi10aGVtZSIKQEAgLTIwLDEwICsyMCwxMCBAQCBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0y LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9H bm9tZU9ubGluZUFjY291bnRzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0v JHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MWM4 ZjYyOTkwODMzY2E0MTE4OGRiYjgwYzVlOTlkOTliNTdhNjI2MDhjYTY3NWJiY2QzN2JjMjI0NDc0 MmYyZQorY2hlY2tzdW09OWY2OTgyYzg5NmU2MjM1YTJlODViOGE0OTdjN2JmNjNhNGEyODhiNTY3 OGRiNDBkYzM3MzUxNWVmYmVkYjFiYgogCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxk X29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9v cHRpb25zX2RlZmF1bHQ9ImdpciIKIAogZ25vbWUtb25saW5lLWFjY291bnRzLWRldmVsX3BhY2th Z2UoKSB7CiAJZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7 cmV2aXNpb259IgpAQCAtMzUsOCArMzUsNiBAQCBnbm9tZS1vbmxpbmUtYWNjb3VudHMtZGV2ZWxf cGFja2FnZSgpIHsKIAkJdm1vdmUgdXNyL2xpYi9nb2EtMS4wCiAJCWlmIFsgIiRidWlsZF9vcHRp b25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAotCQlmaQotCQlpZiBb ICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJ CWZpCiAJfQoKRnJvbSBmMGMwZDU2NTRmZmE5NWZhNTYzNmUwNTYyNTA0NmU3ODI5ZmFmMjQ2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMjEvODFdIGdub21lLWluaXRpYWwtc2V0dXA6IHVwZGF0ZSB0byAzLjM3LjkxLjEKCi0t LQogc3JjcGtncy9nbm9tZS1pbml0aWFsLXNldHVwL3RlbXBsYXRlIHwgMTMgKysrKysrKy0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2dub21lLWluaXRpYWwtc2V0dXAvdGVtcGxhdGUgYi9zcmNwa2dzL2du b21lLWluaXRpYWwtc2V0dXAvdGVtcGxhdGUKaW5kZXggYWJhNWEwOTRjMjguLjk3NGM5ZmRhN2U5 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWluaXRpYWwtc2V0dXAvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9nbm9tZS1pbml0aWFsLXNldHVwL3RlbXBsYXRlCkBAIC0xLDEwICsxLDExIEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1pbml0aWFsLXNldHVwJwogcGtnbmFtZT1nbm9tZS1p bml0aWFsLXNldHVwCi12ZXJzaW9uPTMuMzQuMQotcmV2aXNpb249MgordmVyc2lvbj0zLjM3Ljkx LjEKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1jb25maWd1cmVfYXJncz0iLURzb2Z0 d2FyZS1zb3VyY2VzPWRpc2FibGVkIC1Ec3lzdGVtZD1mYWxzZSIKLWhvc3RtYWtlZGVwZW5kcz0i cGtnLWNvbmZpZyBnbGliLWRldmVsIgorY29uZmlndXJlX2FyZ3M9Ii1Ec29mdHdhcmUtc291cmNl cz1kaXNhYmxlZCAtRHBhcmVudGFsX2NvbnRyb2xzPWRpc2FibGVkCisgLURzeXN0ZW1kPWZhbHNl IgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdsaWItZGV2ZWwgZ2V0dGV4dCIKIG1ha2Vk ZXBlbmRzPSJOZXR3b3JrTWFuYWdlci1kZXZlbCBhY2NvdW50c3NlcnZpY2UtZGV2ZWwgbGliZ2xp Yi1kZXZlbAogIGdub21lLWRlc2t0b3AtZGV2ZWwgY2hlZXNlLWRldmVsIGxpYmd3ZWF0aGVyLWRl dmVsIHdlYmtpdDJndGstZGV2ZWwKICBnbm9tZS1vbmxpbmUtYWNjb3VudHMtZGV2ZWwgZ2RtLWRl dmVsIGxpYnB3cXVhbGl0eS1kZXZlbApAQCAtMTYsNSArMTcsNSBAQCBzaG9ydF9kZXNjPSJHTk9N RSBpbml0aWFsIHNldHVwIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93 aWtpLmdub21lLm9yZy9EZXNpZ24vT1MvSW5pdGlhbFNldHVwIgotZGlzdGZpbGVzPSIke0dOT01F X1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09ZTcxZjEwZWY2YjYzMWNkOTJmZmRlNzc0ZTQxMzBiMzJiMjQ5NGI0ZGY1 ZWYyODgzNzVkOGIxOTU3ZWVhYmZhMQorZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1 bT1lZTZlMDRhNDljYTNhZDVmNTM4NThlZjY2Y2I2OTQ5ZjY4Y2E5MjA1MDlhMTY3YTk3YTlmYWNj ZGUyN2VhYWVmCgpGcm9tIDgxNTk0NTQyMDQ0ZmJkZjkzYmRiNzkzNmFiNmI4NmFlMGRlZDA2ODMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAyMi84MV0geGRnLWRlc2t0b3AtcG9ydGFsLWd0azogYnVtcAoKLS0tCiBzcmNwa2dz L3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3hkZy1k ZXNrdG9wLXBvcnRhbC1ndGsvdGVtcGxhdGUgYi9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1n dGsvdGVtcGxhdGUKaW5kZXggZGVlMGU0NjMzODYuLjU1OGM3NWY1MzlkIDEwMDY0NAotLS0gYS9z cmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsvdGVtcGxhdGUKKysrIGIvc3JjcGtncy94ZGct ZGVza3RvcC1wb3J0YWwtZ3RrL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAneGRnLWRlc2t0b3AtcG9ydGFsLWd0aycKIHBrZ25hbWU9eGRnLWRlc2t0b3AtcG9y dGFsLWd0awogdmVyc2lvbj0xLjYuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5 bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGxpYnhzbHQgZ2xp Yi1kZXZlbCB4ZGctZGVza3RvcC1wb3J0YWwgZ2V0dGV4dCIKIG1ha2VkZXBlbmRzPSJmbGF0cGFr LWRldmVsIGd0ayszLWRldmVsIGxpYnhzbHQtZGV2ZWwgbGliZ2xpYi1kZXZlbAoKRnJvbSA5NTY5 MDA4NDRmODUwY2UxOTY0Yzc0YzI4Y2FiMTZhNGM5Yzg4NDRhIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1 LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjMvODFdIGdub21l LXNoZWxsLWV4dGVuc2lvbnM6IHVwZGF0ZSB0byAzLjM3LjkxCgotLS0KIHNyY3BrZ3MvZ25vbWUt c2hlbGwtZXh0ZW5zaW9ucy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUt c2hlbGwtZXh0ZW5zaW9ucy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9u cy90ZW1wbGF0ZQppbmRleCA5NzE2OGI0MGY2Ni4uZGI4ODk4MGNkNGMgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21l LXNoZWxsLWV4dGVuc2lvbnMvdGVtcGxhdGUKQEAgLTEsMTUgKzEsMTUgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2dub21lLXNoZWxsLWV4dGVuc2lvbnMnCiBwa2duYW1lPWdub21lLXNoZWxsLWV4 dGVuc2lvbnMKLXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzcuOTEKIHJldmlzaW9uPTEKIGFy Y2hzPW5vYXJjaAogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGV4dGVuc2lv bl9zZXQ9YWxsIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIgoraG9zdG1ha2VkZXBlbmRz PSJwa2ctY29uZmlnIGdldHRleHQiCiBkZXBlbmRzPSJnbm9tZS1zaGVsbD49JHt2ZXJzaW9ufSBu YXV0aWx1cyB1bnppcCIKIHNob3J0X2Rlc2M9IkV4dGVuc2lvbnMgZm9yIEdOT01FIHNoZWxsLCBp bmNsdWRpbmcgY2xhc3NpYyBtb2RlIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9Hbm9tZVNoZWxsL0V4dGVuc2lvbnMiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iMGFkNTExNDNiMWJmNDBkZWY0YTEwZjhmZDBh YjBmZmI0NzIxODMwNDgwMDc5NGU2MmNhZGQyOWQwYWNjNzViCitjaGVja3N1bT04ZDYyYzY3YTM5 NWNhNTYzZmMzM2MzYTIxMGRlYzQ2YTZjODExNTEwMzk1MmNjMGQ5MjA3ZjNkMmVmZGI5NDUxCgpG cm9tIDU4YjUyY2Q5YmU4MmIxNDk2NGU5ZWZhZGVmZDg5NGY0MjQ1ZWVjZjcgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNC84 MV0gbmF1dGlsdXM6IHVwZGF0ZSB0byAzLjM3LjkxCgotLS0KIHNyY3BrZ3MvbmF1dGlsdXMvdGVt cGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlIGIvc3JjcGtn cy9uYXV0aWx1cy90ZW1wbGF0ZQppbmRleCA1MzdhODUxOTczZi4uZDllZWJjNWY1N2MgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvbmF1dGlsdXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9uYXV0aWx1cy90 ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ25hdXRpbHVzJwog cGtnbmFtZT1uYXV0aWx1cwotdmVyc2lvbj0zLjM2LjEuMQordmVyc2lvbj0zLjM3LjkxCiByZXZp c2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCkBAIC0xMSwxMyAr MTEsMTMgQEAgbWFrZWRlcGVuZHM9ImV4ZW1waS1kZXZlbCBnbm9tZS1hdXRvYXItZGV2ZWwgZ25v bWUtZGVza3RvcC1kZXZlbCBndGsrMy1kZXZlbAogIGxpYlgxMS1kZXZlbCBsaWJ4bWwyLWRldmVs IHRyYWNrZXItZGV2ZWwgZ3N0LXBsdWdpbnMtYmFzZTEtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9w LWZpbGUtdXRpbHMgZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcyBoaWNvbG9yLWljb24tdGhlbWUK ICB0cmFja2VyLW1pbmVycyB0cmFja2VyIgotY2hlY2tkZXBlbmRzPSJ0cmFja2VyIgorY2hlY2tk ZXBlbmRzPSJ0cmFja2VyIHRyYWNrZXItbWluZXJzIgogc2hvcnRfZGVzYz0iR05PTUUgZmlsZSBt YW5hZ2VyIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvTmF1dGlsdXMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vJHtwa2duYW1lfS8ke3ZlcnNpb246OjR9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT1mOTI1MmY1MDgyMTFkOWYzNjhhNDlkYjY5Nzg5MGY4OTVkMDgwZjA5NTkwYWVj YWYzMzgwM2E1MTlkZWY3YmRlCitjaGVja3N1bT1mNzkzOGJhNzAzMDFmYjkzZTRiODRmYzlkMDBm N2I5MTc4NGQyOTU3MjllNDI0MmMyMmM4OWE3ZWFjODY3YzZmCiAKIGJ1aWxkX29wdGlvbnM9Imdp ciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSA4ZjJlNTdlZTk4OGJhMWIwZDM5 OTNmOTBlYjg0ZjFiZTRkNjg3ZDZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAx ODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjUvODFdIGdub21lLW1hcHM6IHVwZGF0ZSB0 byAzLjM3LjkxCgotLS0KIHNyY3BrZ3MvZ25vbWUtbWFwcy90ZW1wbGF0ZSB8IDEwICsrKysrLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1tYXBzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1tYXBz L3RlbXBsYXRlCmluZGV4IDAzMDBiZTYwNTk5Li4yNjIwZDI2ZWYzNSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9nbm9tZS1tYXBzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtbWFwcy90ZW1wbGF0 ZQpAQCAtMSwxNiArMSwxNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtbWFwcycKIHBr Z25hbWU9Z25vbWUtbWFwcwotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNy45MQogcmV2aXNp b249MQogYnVpbGRfc3R5bGU9bWVzb24KLWhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBnb2Jq ZWN0LWludHJvc3BlY3Rpb24gaW50bHRvb2wgcGtnLWNvbmZpZyBBcHBTdHJlYW0iCitidWlsZF9o ZWxwZXI9ImdpciIKK2hvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBpbnRsdG9vbCBwa2ctY29u ZmlnIEFwcFN0cmVhbSIKIG1ha2VkZXBlbmRzPSJmb2xrcy1kZXZlbCBnZW9jbHVlMi1kZXZlbCBn ZW9jb2RlLWdsaWItZGV2ZWwgZ2pzLWRldmVsCi0gZ25vbWUtZGVza3RvcC1kZXZlbCBsaWJjaGFt cGxhaW4tZGV2ZWwgcmVzdC1kZXZlbCIKKyBnbm9tZS1kZXNrdG9wLWRldmVsIGxpYmNoYW1wbGFp bi1kZXZlbCByZXN0LWRldmVsIGxpYmhhbmR5MS1kZXZlbCIKIGRlcGVuZHM9Imdlb2NsdWUyIGdm YmdyYXBoIGdqcyIKIHNob3J0X2Rlc2M9IkdOT01FIG1hcHMgYXBwbGljYXRpb24iCiBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvTWFwcyIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTFhMzJlZmQ5NmFkODk4Zjc3YTYzNmQy ZDA0NjNkNzU3MDA5YjRiODEyMjU5Yzg5ZmZkY2I5MWQ2YWZjMDUyZjkKLW5vY3Jvc3M9ImV2b2x1 dGlvbi1kYXRhc2VydmVyIGNyb3NzIGdpciBkb2Vzbid0IHdvcmsiCitjaGVja3N1bT03NGI3ODI1 ZDA2ZTY5NGEzZWMwZjNhMWZhYWE0NTkyZTZmN2FjNWE1YjE0NWQ4MzU1NzQ4NDJjZDZiYjMwMzRi CgpGcm9tIGRlNDNlYWFmNjY0YTI3Y2RjNTFiYTY0MjM5ZjZjYTI4YmU1NzUyY2YgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAy Ni84MV0gZXZvbHV0aW9uOiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiAuLi4vZXZvbHV0aW9uL2Zp bGVzL2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UgfCA0NSAtLS0tLS0tLS0tLS0tLS0tLS0tCiBz cmNwa2dzL2V2b2x1dGlvbi9maWxlcy9pY29udi1kZXRlY3QuaCAgICAgICAgfCAgNSAtLS0KIHNy Y3BrZ3MvZXZvbHV0aW9uL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8IDMzICsrKy0tLS0t LS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNzcgZGVsZXRpb25zKC0p CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvZGlzYWJsZVJ1bnRp bWVUZXN0cy5jbWFrZQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVz L2ljb252LWRldGVjdC5oCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvZGlz YWJsZVJ1bnRpbWVUZXN0cy5jbWFrZSBiL3NyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2Rpc2FibGVS dW50aW1lVGVzdHMuY21ha2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiZTU1YjQy MDcwLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVu dGltZVRlc3RzLmNtYWtlCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotIyBUaGlzIGZp bGUgd2FzIGdlbmVyYXRlZCBieSBDTWFrZSBiZWNhdXNlIGl0IGRldGVjdGVkIFRSWV9SVU4oKSBj b21tYW5kcwotIyBpbiBjcm9zc2NvbXBpbGluZyBtb2RlLiBJdCB3aWxsIGJlIG92ZXJ3cml0dGVu IGJ5IHRoZSBuZXh0IENNYWtlIHJ1bi4KLSMgQ29weSBpdCB0byBhIHNhZmUgbG9jYXRpb24sIHNl dCB0aGUgdmFyaWFibGVzIHRvIGFwcHJvcHJpYXRlIHZhbHVlcwotIyBhbmQgdXNlIGl0IHRoZW4g dG8gcHJlc2V0IHRoZSBDTWFrZSBjYWNoZSAodXNpbmcgLUMpLgotCi0KLSMgX2NvcnJlY3RfaWNv bnZfRVhJVENPREUKLSMgICAgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGV4ZWN1dGFibGUgd291bGQg aGF2ZSBiZWVuIGFibGUgdG8gcnVuIG9uIGl0cwotIyAgICB0YXJnZXQgcGxhdGZvcm0uIElmIHNv LCBzZXQgX2NvcnJlY3RfaWNvbnZfRVhJVENPREUgdG8KLSMgICAgdGhlIGV4aXQgY29kZSAoaW4g bWFueSBjYXNlcyAwIGZvciBzdWNjZXNzKSwgb3RoZXJ3aXNlIGVudGVyICJGQUlMRURfVE9fUlVO Ii4KLSMgVGhlIF9jb3JyZWN0X2ljb252X0NPTVBJTEVEIHZhcmlhYmxlIGhvbGRzIHRoZSBidWls ZCByZXN1bHQgZm9yIHRoaXMgVFJZX1JVTigpLgotIyAKLSMgU291cmNlIGZpbGUgICA6IC9idWls ZGRpci9ldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yNi4wL2J1aWxkL0NNYWtlRmlsZXMvQ01ha2VU bXAvc3JjLmMKLSMgRXhlY3V0YWJsZSAgICA6IC9idWlsZGRpci9ldm9sdXRpb24tZGF0YS1zZXJ2 ZXItMy4yNi4wL2J1aWxkL0NNYWtlRmlsZXMvY21UQ18zMTVlZS1fY29ycmVjdF9pY29udl9FWElU Q09ERQotIyBSdW4gYXJndW1lbnRzIDogCi0jICAgIENhbGxlZCBmcm9tOiBbMl0JL3Vzci9zaGFy ZS9jbWFrZS0zLjkvTW9kdWxlcy9DaGVja0NTb3VyY2VSdW5zLmNtYWtlCi0jICAgICAgICAgICAg ICAgICBbMV0JL2J1aWxkZGlyL2V2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI2LjAvQ01ha2VMaXN0 cy50eHQKLQotc2V0KCBfY29ycmVjdF9pY29udl9FWElUQ09ERSAKLSAgICAgMAotICAgICBDQUNI RSBJTlRFUk5BTCAiUmVzdWx0IGZyb20gVFJZX1JVTiIgRk9SQ0UpCi1zZXQoX2NvcnJlY3RfaWNv bnZfRVhJVENPREVfX1RSWVJVTl9PVVRQVVQKLSAgICAgMAotICAgICBDQUNIRSBJTlRFUk5BTCAi UmVzdWx0IGZyb20gVFJZX1JVTiIgRk9SQ0UpCi0KLQotIyBIQVZFX0xLU1RSRlRJTUVfRVhJVENP REUKLSMgICAgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGV4ZWN1dGFibGUgd291bGQgaGF2ZSBiZWVu IGFibGUgdG8gcnVuIG9uIGl0cwotIyAgICB0YXJnZXQgcGxhdGZvcm0uIElmIHNvLCBzZXQgSEFW RV9MS1NUUkZUSU1FX0VYSVRDT0RFIHRvCi0jICAgIHRoZSBleGl0IGNvZGUgKGluIG1hbnkgY2Fz ZXMgMCBmb3Igc3VjY2VzcyksIG90aGVyd2lzZSBlbnRlciAiRkFJTEVEX1RPX1JVTiIuCi0jIFRo ZSBIQVZFX0xLU1RSRlRJTUVfQ09NUElMRUQgdmFyaWFibGUgaG9sZHMgdGhlIGJ1aWxkIHJlc3Vs dCBmb3IgdGhpcyBUUllfUlVOKCkuCi0jIAotIyBTb3VyY2UgZmlsZSAgIDogL2J1aWxkZGlyL2V2 b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI2LjAvYnVpbGQvQ01ha2VGaWxlcy9DTWFrZVRtcC9zcmMu YwotIyBFeGVjdXRhYmxlICAgIDogL2J1aWxkZGlyL2V2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI2 LjAvYnVpbGQvQ01ha2VGaWxlcy9jbVRDX2QyODk3LUhBVkVfTEtTVFJGVElNRV9FWElUQ09ERQot IyBSdW4gYXJndW1lbnRzIDogCi0jICAgIENhbGxlZCBmcm9tOiBbMl0JL3Vzci9zaGFyZS9jbWFr ZS0zLjkvTW9kdWxlcy9DaGVja0NTb3VyY2VSdW5zLmNtYWtlCi0jICAgICAgICAgICAgICAgICBb MV0JL2J1aWxkZGlyL2V2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI2LjAvQ01ha2VMaXN0cy50eHQK LQotc2V0KCBIQVZFX0xLU1RSRlRJTUVfRVhJVENPREUgCi0gICAgIDAKLSAgICAgQ0FDSEUgSU5U RVJOQUwgIlJlc3VsdCBmcm9tIFRSWV9SVU4iIEZPUkNFKQotc2V0KCBIQVZFX0xLU1RSRlRJTUVf RVhJVENPREVfX1RSWVJVTl9PVVRQVVQKLSAgICAgMAotICAgICBDQUNIRSBJTlRFUk5BTCAiUmVz dWx0IGZyb20gVFJZX1JVTiIgRk9SQ0UpCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXZvbHV0aW9u L2ZpbGVzL2ljb252LWRldGVjdC5oIGIvc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0 ZWN0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2ZjQ3NmQ1YmM5Li4wMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9pY29udi1kZXRlY3QuaAorKysgL2Rl di9udWxsCkBAIC0xLDUgKzAsMCBAQAotLyogVGhpcyBpcyBhbiBhdXRvLWdlbmVyYXRlZCBoZWFk ZXIsIERPIE5PVCBFRElUISAqLwotCi0jZGVmaW5lIElDT05WX0lTT19EX0ZPUk1BVCAiaXNvLSVk LSVkIgotI2RlZmluZSBJQ09OVl9JU09fU19GT1JNQVQgImlzby0lZC0lcyIKLSNkZWZpbmUgSUNP TlZfMTA2NDYgImlzby0xMDY0NiIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXZvbHV0aW9uL3RlbXBs YXRlIGIvc3JjcGtncy9ldm9sdXRpb24vdGVtcGxhdGUKaW5kZXggNTYwZWQ5M2RhMDIuLmNjNzM1 NTk5NDNiIDEwMDY0NAotLS0gYS9zcmNwa2dzL2V2b2x1dGlvbi90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2V2b2x1dGlvbi90ZW1wbGF0ZQpAQCAtMSwxNiArMSwxNiBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZXZvbHV0aW9uJwogcGtnbmFtZT1ldm9sdXRpb24KLXZlcnNpb249My4zNi4xCit2ZXJz aW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCitidWlsZF9oZWxwZXI9 ImdpciBxZW11IgogY29uZmlndXJlX2FyZ3M9Ii1ERU5BQkxFX0FVVE9BUj1PRkYgLURFTkFCTEVf TElCQ1JZUFRVST1PRkYgLURFTkFCTEVfR1RLU1BFTEw9T0ZGCi0gLURFTkFCTEVfVEVYVF9ISUdI TElHSFQ9T0ZGIC1ERU5BQkxFX1BTVF9JTVBPUlQ9T0ZGCi0gLURFTkFCTEVfV0VBVEhFUj0kKHZv cHRfaWYgZ2lyIE9OIE9GRikiCisgLURFTkFCTEVfVEVYVF9ISUdITElHSFQ9T0ZGIC1ERU5BQkxF X1BTVF9JTVBPUlQ9T0ZGIC1ERU5BQkxFX1dFQVRIRVI9T04iCiBob3N0bWFrZWRlcGVuZHM9Imdu b21lLWRvYy11dGlscyBnb2JqZWN0LWludHJvc3BlY3Rpb24gaW50bHRvb2wgaXRzdG9vbAotIHBr Zy1jb25maWciCisgcGtnLWNvbmZpZyBnbGliLWRldmVsIgogbWFrZWRlcGVuZHM9Ik5ldHdvcmtN YW5hZ2VyLWRldmVsIGNsdXR0ZXItZ3RrLWRldmVsIGVuY2hhbnQyLWRldmVsCiAgZXZvbHV0aW9u LWRhdGEtc2VydmVyLWRldmVsIGdzcGVsbC1kZXZlbCBndGtodG1sLWRldmVsIGxpYmNhbmJlcnJh LWRldmVsCi0gJCh2b3B0X2lmIGdpciBsaWJnd2VhdGhlci1kZXZlbCkgbGlibm90aWZ5LWRldmVs IHdlYmtpdDJndGstZGV2ZWwgeXRuZWYtZGV2ZWwKKyBsaWJnd2VhdGhlci1kZXZlbCBsaWJub3Rp ZnktZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCB5dG5lZi1kZXZlbAogIGdub21lLWRlc2t0b3AtZGV2 ZWwiCiBkZXBlbmRzPSJnbm9tZS1rZXlyaW5nIgogc2hvcnRfZGVzYz0iSW50ZWdyYXRlZCBtYWls LCBhZGRyZXNzYm9vayBhbmQgY2FsZW5kYXJpbmcgZm9yIEdOT01FIgpAQCAtMTksMzYgKzE5LDE1 IEBAIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyLCBMR1BMLTMuMC1vci1sYXRlciwgR1BMLTIu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXZvbHV0 aW9uIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUv ZXZvbHV0aW9uL2dub21lLTMtMzYvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPTg3M2FjZjFkYmVjMzhlNjdlMTY5MDY0NjQ1YWMzYTliOWE5NDRiZDJiNjMzMTYxZGY2ZTVm MDU3MDBlMzZjYjgKK2NoZWNrc3VtPTBhMzVhNjYxNGExMzBhNTE3NjgxMTQwZDM3OGIxNWM2Mjkw MGI4NGExOGMzOWRiZjI2ZDlmOTZmNDI4YmQ0ZWIKIHNobGliX3Byb3ZpZGVzPSJsaWJldm9sdXRp b24tY2FsZW5kYXIuc28gbGliZXZvbHV0aW9uLXV0aWwuc28gbGliZW1haWwtZW5naW5lLnNvCiAg bGliZXZvbHV0aW9uLW1haWwuc28gbGliZXZvbHV0aW9uLXNoZWxsLnNvIgogCiBidWlsZF9vcHRp b25zPSJnaXIiCiBpZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAlidWlsZF9vcHRpb25z X2RlZmF1bHQ9ImdpciIKLWVsc2UKLQlob3N0bWFrZWRlcGVuZHMrPSIgZ2xpYi1kZXZlbCIKIGZp CiAKLSMgY21ha2UgcGVyZm9tcm1zIDIgY2hlY2tzIHVzaW5nIGJpbmFyeSBydW50aW1lLCBhYm91 dCBpY29udiBhbmQgc2ZydGltZS4KLSMgbXVzbCAoMS4xLjE2KSBkb2VzIG5vdCBzdXBwb3J0ICJJ U08tMjAyMi1KUCIgZW5jb2RpbmcgKHNlZSBpdHMgcm9hZG1hcCksCi0jIGFsdGhvdWdoIGV2b2x1 dGlvbi1kYXRhLXNlcnZlciBpcyBmaW5lIHdpdGggbXVzbC4KLSMgSWYgY3Jvc3NidWlsZCwgY21h a2UgbGV0IGRpc2FibGluZyBydW50aW1lIGNoZWNrcyB2aWEgc3BlY2lmaWMgZGlyZWN0aXZlcy4K LSMgdGVzdCBpY29udi1kZXRlY3QuYyBhbHNvIGdlbmVyYXRlcyBpY29udi1kZXRlY3QuaCB0aGF0 IGlzIHJlcXVpcmVkIGZvciBidWlsZC4KLSMgU28gY29tcGxldGx5IGRpc2FibGUgdGVzdCBmcm9t IGljb252LWRldGVjdC5jIChjbWFrZS5wYXRjaCBmaWxlKSBhbmQKLSMgdXNlIGEgY21ha2UgY2Fj aGUgZmlsZSBvbiBjcm9zc2J1aWxkIHRvIGRpc2FibGUgc2ZydGltZSBydW5uaW5nIHRlc3QuCi1p ZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQljb25maWd1cmVfYXJncys9IiAtQyBkaXNhYmxl UnVudGltZVRlc3RzLmNtYWtlIgotZmkKLQotcHJlX2NvbmZpZ3VyZSgpIHsKLQlta2RpciAtcCBi dWlsZAotCWNwICR7RklMRVNESVJ9L2ljb252LWRldGVjdC5oICR7d3Jrc3JjfS9idWlsZC8uCi0J aWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCi0JCWNwICR7RklMRVNESVJ9L2Rpc2FibGVSdW50 aW1lVGVzdHMuY21ha2UgJHt3cmtzcmN9L2J1aWxkLy4KLQlmaQotfQotCiBldm9sdXRpb24tZGV2 ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJ3ZWJraXQyZ3RrLWRldmVsIGd0ayszLWRldmVsIGxp YmdsaWItZGV2ZWwgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsCiAJIGd0a2h0bWwtZGV2ZWwg JHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgoKRnJvbSBkMWZkYmRlNTFkMDlh ZmMxNzQ2NGJhMzRkZTgwMWJhZTg5YjY5NzA0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcg MjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjcvODFdIGV2b2x1dGlvbi1ld3M6 IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZXZvbHV0aW9uLWV3cy90ZW1wbGF0ZSB8 IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2V2b2x1dGlvbi1ld3MvdGVtcGxhdGUgYi9zcmNwa2dzL2V2 b2x1dGlvbi1ld3MvdGVtcGxhdGUKaW5kZXggNGZmODExNjQ2NmMuLjcyY2VkNTIwMDE0IDEwMDY0 NAotLS0gYS9zcmNwa2dzL2V2b2x1dGlvbi1ld3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ldm9s dXRpb24tZXdzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn ZXZvbHV0aW9uLWV3cycKIHBrZ25hbWU9ZXZvbHV0aW9uLWV3cwotdmVyc2lvbj0zLjM2LjEKK3Zl cnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9h cmdzPSItRExJQkVYRUNfSU5TVEFMTF9ESVI9L3Vzci9saWIvZXZvbHV0aW9uIgpAQCAtMTIsNCAr MTIsNCBAQCBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dp a2kuZ25vbWUub3JnL0FwcHMvRXZvbHV0aW9uIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRo dWJ1c2VyY29udGVudC5jb20vR05PTUUvZXZvbHV0aW9uLWV3cy9nbm9tZS0zLTM2L05FV1MiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1kMDg4M2M3ZDIyNzgyN2NjNWM0NDY4Yjdl MzFhM2VlMzcwYmNkN2Q0MWE0ZGJiOTUwYWI1ZGIzNmM5NTUxYWMxCitjaGVja3N1bT1iZTkxNjA1 ZGZmNWUyNzQ4N2ZjYmNjZWZjOTEzYzAyN2QyZDY2MTA0MGUwOTRmYmQ4MWY5NTFkYzlhODYxODE1 CgpGcm9tIDQwMDM3MDVjN2RjODExNWIzMzNmODQ0NGE2YzAyYmY2YTAzMTNmYmMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAy OC84MV0gcHl0aG9uMy1hdHNwaTogdXBkYXRlIHRvIDIuMzcuOTAKCi0tLQogc3JjcGtncy9weXRo b24zLWF0c3BpL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24zLWF0c3Bp L3RlbXBsYXRlIGIvc3JjcGtncy9weXRob24zLWF0c3BpL3RlbXBsYXRlCmluZGV4IGEzM2EzNzRm ZTE4Li4yOTkwNzdkNDcxZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9weXRob24zLWF0c3BpL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1hdHNwaS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3B5dGhvbjMtYXRzcGknCiBwa2duYW1lPXB5dGhvbjMtYXRz cGkKLXZlcnNpb249Mi4zMi4xCi1yZXZpc2lvbj00Cit2ZXJzaW9uPTIuMzcuOTAKK3JldmlzaW9u PTEKIGFyY2hzPW5vYXJjaAogd3Jrc3JjPSJweWF0c3BpLSR7dmVyc2lvbn0iCiBidWlsZF9zdHls ZT1nbnUtY29uZmlndXJlCkBAIC0xMyw0ICsxMyw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5k IDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9weWF0c3BpMiIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS9weWF0c3BpLyR7dmVyc2lvbiUuKn0vcHlhdHNwaS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPTg0OTU0YTViYmVhY2M4MzY0M2YwNTc3OGQ4YmVhZmNhYjgyMDhl MTFiMzliMjQ2MzdiNGM0ZGQxZjg2MjAzODkKK2NoZWNrc3VtPTRlMTdhY2U1OWM2YzgzYWM5NDFk NzRmNzZhY2I5NGMwMGZiMjJiNTZiYWE2ZWFhYjMxM2Y1ZTFhYWI3MmZjMzgKCkZyb20gMjQxMzJh MjZhZTcwOGNjZjQyNGRmYjkzMTVhYmRkN2I1OGZkMjJmMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDI5LzgxXSBweXRob24t YXRzcGk6IHVwZGF0ZSB0byAyLjM3LjkwCgotLS0KIHNyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBs YXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9weXRob24tYXRzcGkvdGVtcGxhdGUgYi9zcmNw a2dzL3B5dGhvbi1hdHNwaS90ZW1wbGF0ZQppbmRleCAwMTQxZDk3Zjg1ZC4uYzU0NDUyM2Y5ZDQg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv cHl0aG9uLWF0c3BpL3RlbXBsYXRlCkBAIC0xLDggKzEsOCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAncHl0aG9uLWF0c3BpJwogIyBLZWVwIHB5dGhvbjMtYXRzcGkgaW4gc3luYwogcGtnbmFtZT1w eXRob24tYXRzcGkKLXZlcnNpb249Mi4zMi4xCi1yZXZpc2lvbj00Cit2ZXJzaW9uPTIuMzcuOTAK K3JldmlzaW9uPTEKIGFyY2hzPW5vYXJjaAogd3Jrc3JjPSJweWF0c3BpLSR7dmVyc2lvbn0iCiBi dWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCkBAIC0xNCw0ICsxNCw0IEBAIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9weWF0c3BpMiIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS9weWF0c3BpLyR7dmVyc2lvbiUuKn0vcHlhdHNwaS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTg0OTU0YTViYmVhY2M4MzY0M2YwNTc3OGQ4YmVh ZmNhYjgyMDhlMTFiMzliMjQ2MzdiNGM0ZGQxZjg2MjAzODkKK2NoZWNrc3VtPTRlMTdhY2U1OWM2 YzgzYWM5NDFkNzRmNzZhY2I5NGMwMGZiMjJiNTZiYWE2ZWFhYjMxM2Y1ZTFhYWI3MmZjMzgKCkZy b20gZTJmZDJiZGQ3ODg2ZjM5ZGFlMjk1ZjcwZDFiY2Q0NmE3OTkwMjg1MyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDMwLzgx XSBvcmNhOiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL29yY2EvdGVtcGxhdGUgfCA0 ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9vcmNhL3RlbXBsYXRlIGIvc3JjcGtncy9vcmNhL3RlbXBsYXRl CmluZGV4IGY3MDIwMmU2ZDc2Li4yYjI5NjViZmJhYyAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcmNh L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3JjYS90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ29yY2EnCiBwa2duYW1lPW9yY2EKLXZlcnNpb249My4zNi4xCit2 ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGFyY2hzPW5vYXJjaAogYnVpbGRfc3R5bGU9Z251 LWNvbmZpZ3VyZQpAQCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290 dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdl PSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL09yY2EiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT1jMWFjNjQ4YjZiZTMxNDg4YzI2ZmY5NTkxMTQyODc4NjlkZjljZTNj YTIxOTk5ZTQwZGVkODc3NDFjOTg4MzFmCitjaGVja3N1bT0xYWIyZWI1YmU4YzM2MzNhMmI2MWMy NmM1ZTNjOWUxYTViMTExNGJhZjE0OGZhZTg5Y2VjMzVkZmJhNGNiNjRiCiAKIGlmIFsgIiRDUk9T U19CVUlMRCIgXTsgdGhlbgogCWhvc3RtYWtlZGVwZW5kcys9IiBweXRob24zLWdvYmplY3QtZGV2 ZWwiCgpGcm9tIDI4NDkwOGE0M2Q0ZDliN2EzMjlmNGI4M2UwNmJhNjhlNGZkNGIxZDkgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRD SCAzMS84MV0gZ25vbWUtd2VhdGhlcjogYnVtcAoKLS0tCiBzcmNwa2dzL2dub21lLXdlYXRoZXIv dGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxhdGUgYi9zcmNw a2dzL2dub21lLXdlYXRoZXIvdGVtcGxhdGUKaW5kZXggZDMwYmU5YmYxOTIuLmMwMjhlNDZiYTY1 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9nbm9tZS13ZWF0aGVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZ25vbWUtd2VhdGhlcicKIHBrZ25hbWU9Z25vbWUtd2VhdGhlcgogdmVyc2lvbj0zLjM2 LjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5 bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBwa2ctY29uZmlnIGl0c3Rvb2wgZ2xp Yi1kZXZlbCBnanMiCgpGcm9tIGVhMGVlNGMyOTMxMzQ2YTUzMmE2Y2IyNzgxNzRkNjYzZjE4ZmJk MDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAzMi84MV0gdnRlMzogdXBkYXRlIHRvIDAuNjEuOTAKCi0tLQogc3JjcGtncy92 dGUzL3RlbXBsYXRlIHwgMTkgKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDgg aW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy92dGUz L3RlbXBsYXRlIGIvc3JjcGtncy92dGUzL3RlbXBsYXRlCmluZGV4IDYxMTZiM2NjNjIxLi5mMWJh MWM2ZjFhMiAxMDA2NDQKLS0tIGEvc3JjcGtncy92dGUzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv dnRlMy90ZW1wbGF0ZQpAQCAtMSwyOSArMSwyOCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndnRl MycKIHBrZ25hbWU9dnRlMwotdmVyc2lvbj0wLjYwLjMKK3ZlcnNpb249MC42MS45MAogcmV2aXNp b249MQogd3Jrc3JjPSJ2dGUtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9o ZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGJfbmRlYnVnPWZhbHNlIC1EZ2lyPSQodm9w dF9pZiBnaXIgdHJ1ZSBmYWxzZSkKLSAtRHZhcGk9JCh2b3B0X2lmIHZhbGEgdHJ1ZSBmYWxzZSkg LURiX2x0bz1mYWxzZSAtRF9zeXN0ZW1kPWZhbHNlIgorY29uZmlndXJlX2FyZ3M9Ii1EYl9uZGVi dWc9ZmFsc2UgLURiX2x0bz1mYWxzZSAtRF9zeXN0ZW1kPWZhbHNlCisgJCh2b3B0X2Jvb2wgZ2ly IGdpcikgJCh2b3B0X2Jvb2wgZ2lyIHZhcGkpIgogaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVs IGdub21lLWRvYy11dGlscyBncGVyZiBpbnRsdG9vbCBwa2ctY29uZmlnCi0gJCh2b3B0X2lmIHZh bGEgdmFsYSkiCi1tYWtlZGVwZW5kcz0iZ251dGxzLWRldmVsIGd0ayszLWRldmVsIHBjcmUyLWRl dmVsICQodm9wdF9pZiB2YWxhIHZhbGEtZGV2ZWwpIgotZGVwZW5kcz0idnRlIgorICQodm9wdF9p ZiBnaXIgdmFsYSkiCittYWtlZGVwZW5kcz0iZ251dGxzLWRldmVsIGd0ayszLWRldmVsIHBjcmUy LWRldmVsICQodm9wdF9pZiBnaXIgdmFsYS1kZXZlbCkiCiBzaG9ydF9kZXNjPSJUZXJtaW5hbCB3 aWRnZXQgd2l0aCBpbXByb3ZlZCBhY2Nlc3NpYmlsaXR5IGFuZCBJMThOIHN1cHBvcnQiCiBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIsIExHUEwtMy4wLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9UZXJtaW5hbC9WVEUiCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vdnRlLyR7dmVyc2lvbiUuKn0vdnRlLSR7dmVyc2lvbn0udGFyLnh6 IgotY2hlY2tzdW09ZmViNzZlMTE4MWEzNTdkODYxMTJkNDQ3YTA4ZDEyN2UyMDgxNDM4ZGY3NmVj ZTgzMjQzYjE4NjA5ZGQ5ODIyYQorY2hlY2tzdW09ZDk5ZDcwY2ExM2UxYTEzYzcyOWRlMjE5ODQz NGI3MWE4MzlhMTgwOGQ4MWEwYjFlYThjZWIwMjJkNjE5ZTQ4NwogCiAjIFN1cHByZXNzIHdhcm5p bmdzIGFzIGVycm9ycyBmb3IgTlVMTCBmb3JtYXQgc3RyaW5ncyAobXVzbCBsaWJjKQogQ1hYRkxB R1M9Ii1Xbm8tZXJyb3I9Zm9ybWF0PSIKIAogIyBQYWNrYWdlIGJ1aWxkIG9wdGlvbnMKLWJ1aWxk X29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1 aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBwcmVfYnVp bGQoKSB7CiAJZXhwb3J0IEdJUl9FWFRSQV9MSUJTX1BBVEg9IiR7d3Jrc3JjfS9zcmMvLmxpYnMi CkBAIC0zOCw4ICszNyw2IEBAIHZ0ZTMtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgInVzci9s aWIvKi5zbyIKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZtb3ZlIHVz ci9zaGFyZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhl bgogCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIGJiZGIxMjMwNDc2MjUx MDU5N2MyMTY3YWUzYjE0NjBhZmMwYTlmMzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAy MDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMy84MV0gZ25vbWUtdGVybWluYWw6 IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVtcGxhdGUg fCA4ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVtcGxhdGUgYi9zcmNw a2dzL2dub21lLXRlcm1pbmFsL3RlbXBsYXRlCmluZGV4IGJmM2Q1YmNkZDQyLi45MjY2ZjQzYTYx ZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS10ZXJtaW5hbC90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2dub21lLXRlcm1pbmFsL3RlbXBsYXRlCkBAIC0xLDExICsxLDExIEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdnbm9tZS10ZXJtaW5hbCcKIHBrZ25hbWU9Z25vbWUtdGVybWluYWwKLXZlcnNp b249My4zNi4xLjEKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251 LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zdGF0aWMgLS13aXRoLW5hdXRp bHVzLWV4dGVuc2lvbiIKIGhvc3RtYWtlZGVwZW5kcz0iYXBwZGF0YS10b29scyBnbGliLWRldmVs IGludGx0b29sIGl0c3Rvb2wKLSBwa2ctY29uZmlnIgorIHBrZy1jb25maWcgZG9jYm9vay14c2wi CiBtYWtlZGVwZW5kcz0iZGNvbmYtZGV2ZWwgZ25vbWUtc2hlbGwgZ3NldHRpbmdzLWRlc2t0b3At c2NoZW1hcy1kZXZlbAogIG5hdXRpbHVzLWRldmVsIHZ0ZTMtZGV2ZWwiCiBkZXBlbmRzPSJkZXNr dG9wLWZpbGUtdXRpbHMiCkBAIC0xMyw4ICsxMyw4IEBAIHNob3J0X2Rlc2M9IkdOT01FIHRlcm1p bmFsIGVtdWxhdG9yIGFwcGxpY2F0aW9uIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRv eEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdGREwtMS4zLW9u bHkiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1Rlcm1pbmFsIgotZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uOjA6NH0vJHtwa2duYW1l fS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWYzZDcwOGExZTc2ZDc3YzFjODViMTI2ZjZl MDAzMjIwYTE1ZDRhNDZhNTBmZDgwNzBlMWEzYWFiZTY3OGEzNzYKK2Rpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKK2NoZWNrc3VtPWQ2ZGEwZjQ5OTEzNDVkNDdkNzMwZjljYWFkZjQ2ZThlNDEwNTk3MDE3 ZTZjNjE0NzVlOTJmN2MyM2FkOWMyYTQKIGxpYjMyZGlzYWJsZWQ9eWVzCiAKIGlmIFsgIiRDUk9T U19CVUlMRCIgXTsgdGhlbgoKRnJvbSBkZDc2NThmNTZlYjdkZTBkNjdjMzBkNjdkMTM4MTNiOTZi Njg5ODRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMzQvODFdIGdub21lLWdldHRpbmctc3RhcnRlZC1kb2NzOiB1cGRhdGUg dG8gMy4zNi4yCgotLS0KIHNyY3BrZ3MvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MvdGVtcGxh dGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcy90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MvdGVtcGxhdGUKaW5kZXgg NWJlYzkzNDkwYmEuLmJlZDliNjk2MTYyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWdldHRp bmctc3RhcnRlZC1kb2NzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZ2V0dGluZy1zdGFy dGVkLWRvY3MvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdn bm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcycKIHBrZ25hbWU9Z25vbWUtZ2V0dGluZy1zdGFydGVk LWRvY3MKLXZlcnNpb249My4zNC4wCit2ZXJzaW9uPTMuMzYuMgogcmV2aXNpb249MQogYXJjaHM9 bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCkBAIC0xMSw0ICsxMSw0IEBAIGxpY2Vu c2U9IkNDLUJZLVNBLTMuMCIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05P TUUvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MiCiAjY2hhbmdlbG9nPSJodHRwczovL2dpdGxh Yi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MvcmF3L21hc3Rlci9O RVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZjcwY2UyY2EyM2FkNzg2MjE1 ZjNjOTJlYzg1NzgzZTNhYWJlZDA3ZTRmNzg3MDBmYTI3ZjliMmNmNzZlMDNkYgorY2hlY2tzdW09 MDQ5NGI4OTEzYTk0NmI2NDUwNTM2ZTEyMGMxNTRhYmQyOTIzOGViYmEyZjUyNzM0NTkyYjFmNjQ1 ZTUyMWRjNgoKRnJvbSA4ZmE5NmRkNGMxYmViNzJlZTljYzIzZDI0NTQzNjlhYzI4MTRkN2FmIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMzUvODFdIGdub21lLXVzZXItZG9jczogdXBkYXRlIHRvIDMuMzYuMgoKLS0tCiBzcmNw a2dzL2dub21lLXVzZXItZG9jcy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21l LXVzZXItZG9jcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBsYXRlCmlu ZGV4IDRjYjU1Mzk2ZTM3Li4yZThhZmU5ZjkzZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS11 c2VyLWRvY3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS11c2VyLWRvY3MvdGVtcGxhdGUK QEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS11c2VyLWRvY3MnCiBw a2duYW1lPWdub21lLXVzZXItZG9jcwotdmVyc2lvbj0zLjM0LjAKK3ZlcnNpb249My4zNi4yCiBy ZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKQEAgLTEz LDQgKzEzLDQgQEAgbGljZW5zZT0iQ0MtQlktMy4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHVi LmNvbS9HTk9NRS9nbm9tZS11c2VyLWRvY3MiCiAjY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRo dWJ1c2VyY29udGVudC5jb20vR05PTUUvZ25vbWUtdXNlci1kb2NzL21hc3Rlci9ORVdTIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09OGY5OTA3ZmYxNWZmZjk3ZGE3NWVjZTY0NWNj ODY3NjY3MDNhYzU0ZDcxNmQyNTU2M2JhNjdmZmVkMWFmMjRlZAorY2hlY2tzdW09MTk4ZmU0Yzgz Njc3NWE1ZGMyNTQzYTZhNTIwZGZiMGFjNWJmMjkyY2RjYjM1OGE1N2M4NmYzNWY3MDVlOTk1OAoK RnJvbSAxMzAwOWY2Yzc4YTBjZTdkNjQ2MzdkMjg5YWYyZGU3YjliZjA4ZGMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzYv ODFdIGdub21lLWVwdWItdGh1bWJuYWlsZXI6IHVwZGF0ZSB0byAxLjYKCi0tLQogc3JjcGtncy9n bm9tZS1lcHViLXRodW1ibmFpbGVyL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwg MiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25v bWUtZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZXB1Yi10aHVtYm5h aWxlci90ZW1wbGF0ZQppbmRleCBiMTZlNzA1NDc1Zi4uYzZlMWMwMmI5ZDMgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvZ25vbWUtZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2du b21lLWVwdWItdGh1bWJuYWlsZXIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdnbm9tZS1lcHViLXRodW1ibmFpbGVyJwogcGtnbmFtZT1nbm9tZS1lcHViLXRo dW1ibmFpbGVyCi12ZXJzaW9uPTEuNQordmVyc2lvbj0xLjYKIHJldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKQEAgLTEwLDQg KzEwLDQgQEAgbWFpbnRhaW5lcj0iQWxpZiBSYWNobWF3YWRpIDxhcmNoQHN1Ym9zaXRvLmNvbT4i CiBsaWNlbnNlPSJHUEwtMyIKIGhvbWVwYWdlPSJodHRwczovL2dpdC5nbm9tZS5vcmcvYnJvd3Nl L2dub21lLWVwdWItdGh1bWJuYWlsZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2du YW1lfS8ke3ZlcnNpb259LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0z MDgyMTBmNTgwMDIxOWY2NGNhZTQ4MjhlNTliYjhlNmU0YzUzYjg4ODA0OGNmNDg3MjIxYWViNDMz N2Q3OTFhCitjaGVja3N1bT1iNTAyNDIwZDliMDJlYTBiMGZjNzk4NmVmNWEwOTFhMTJiMjI4NmJl MTRmZWQ5ZTQ3NTk0ZmU5ZmEwYzU4OThlCgpGcm9tIGJiNWMzMDk4ODI3ZTA2NWUxYmIyNGM2YTEx NDIxYjQ3NmU4NTExN2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNy84MV0gZ25vbWUtYm9va3M6IGJ1bXAKCi0tLQogc3Jj cGtncy9nbm9tZS1ib29rcy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtYm9va3Mv dGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWJvb2tzL3RlbXBsYXRlCmluZGV4IDExNGI5ZTAzNGMy Li4xZDQ5NzRmZTE4MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1ib29rcy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2dub21lLWJvb2tzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnZ25vbWUtYm9va3MnCiBwa2duYW1lPWdub21lLWJvb2tzCiB2ZXJzaW9u PTMuMzQuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfaGVscGVyPSJnaXIiCiBidWls ZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIHZhbGEgZ2xpYi1kZXZl bCBsaWJyc3ZnIGRvY2Jvb2steHNsIGxpYnhzbHQKCkZyb20gZmVmMzZmMWU4NTE3ODRjNTdlMGZk ZDFkNDljMjk2ZTYzYmZkNDA1MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDM4LzgxXSBnbm9tZS1jaGFyYWN0ZXJzOiBidW1w CgotLS0KIHNyY3BrZ3MvZ25vbWUtY2hhcmFjdGVycy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ25vbWUtY2hhcmFjdGVycy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY2hhcmFjdGVycy90 ZW1wbGF0ZQppbmRleCA4OTg2OGY0YmMwNC4uYWMyNjRlNTFhNmEgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ25vbWUtY2hhcmFjdGVycy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWNoYXJhY3Rl cnMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1j aGFyYWN0ZXJzJwogcGtnbmFtZT1nbm9tZS1jaGFyYWN0ZXJzCiB2ZXJzaW9uPTMuMzQuMAotcmV2 aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2ly IgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdqcyBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNv bmZpZyIKCkZyb20gOWJkODBmNTMzYzczYjE3MDI2NmUxODE1YjVkZGE1ODIwNDQwMzE5ZSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BB VENIIDM5LzgxXSBnbm9tZS1kb2N1bWVudHM6IGJ1bXAKCi0tLQogc3JjcGtncy9nbm9tZS1kb2N1 bWVudHMvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWRvY3VtZW50cy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZ25vbWUtZG9jdW1lbnRzL3RlbXBsYXRlCmluZGV4IDk3YjUzZDYzNWQ3Li43 ZTQ1YjgyNWU3MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1kb2N1bWVudHMvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9nbm9tZS1kb2N1bWVudHMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1kb2N1bWVudHMnCiBwa2duYW1lPWdub21lLWRvY3Vt ZW50cwogdmVyc2lvbj0zLjM0LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX2hlbHBl cj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZG9jYm9vay14c2wg Z2V0dGV4dCBpdHN0b29sIHBrZy1jb25maWcgZ2xpYi1kZXZlbCBsaWJ4c2x0IGdkay1waXhidWYK CkZyb20gYzg1MzY3NTZkMzFkYjY2OTEzNDJmMjFmMjE1M2M0NWY0ZDgxM2Y3ZSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDQw LzgxXSBnbm9tZS1mb250LXZpZXdlcjogYnVtcAoKLS0tCiBzcmNwa2dzL2dub21lLWZvbnQtdmll d2VyL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1mb250LXZpZXdlci90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIvdGVtcGxhdGUKaW5kZXggNmQwMzUzNjZkNDQu LmY3NGZjYmNiMDAwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWZvbnQtdmlld2VyL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1mb250LXZpZXdlcicKIHBrZ25hbWU9Z25v bWUtZm9udC12aWV3ZXIKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBi dWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdsaWItZGV2ZWwi CiBtYWtlZGVwZW5kcz0iZm9udGNvbmZpZy1kZXZlbCBmcmVldHlwZS1kZXZlbCBnbGliLWRldmVs IGd0ayszLWRldmVsCgpGcm9tIDAyNzI3MTZmMjYxZDRiY2Q5MzgyZmFhNTU5MjM3YWZkMjI2MzNi OTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCA0MS84MV0gdG90ZW06IGJ1bXAsIGRyb3AgdmFsYSBvcHRpb24KCi0tLQogc3Jj cGtncy90b3RlbS90ZW1wbGF0ZSB8IDE0ICsrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg OSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdG90 ZW0vdGVtcGxhdGUgYi9zcmNwa2dzL3RvdGVtL3RlbXBsYXRlCmluZGV4IDgxNTIyYjMxNDg4Li5h OGNmYjAwMDFhNCAxMDA2NDQKLS0tIGEvc3JjcGtncy90b3RlbS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3RvdGVtL3RlbXBsYXRlCkBAIC0xLDE0ICsxLDE0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICd0b3RlbScKIHBrZ25hbWU9dG90ZW0KIHZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0xCityZXZp c2lvbj0yCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25maWd1cmVf YXJncz0iLURlbmFibGUtcHl0aG9uPW5vIC1EZW5hYmxlLW5hdXRpbHVzPXllcwogIC1EZW5hYmxl LWludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB5ZXMgbm8pCi0gLURlbmFibGUtdmFsYT0kKHZv cHRfaWYgdmFsYSB5ZXMgbm8pIgorIC1EZW5hYmxlLXZhbGE9JCh2b3B0X2lmIGdpciB5ZXMgbm8p IgogaG9zdG1ha2VkZXBlbmRzPSJnbm9tZS1kb2MtdXRpbHMgaW50bHRvb2wgaXRzdG9vbCBwa2ct Y29uZmlnCi0gJCh2b3B0X2lmIHZhbGEgdmFsYSkgZ3N0cmVhbWVyMSBnc3QtcGx1Z2lucy1iYXNl MSBnc3QtcGx1Z2lucy1nb29kMQorICQodm9wdF9pZiBnaXIgdmFsYSkgZ3N0cmVhbWVyMSBnc3Qt cGx1Z2lucy1iYXNlMSBnc3QtcGx1Z2lucy1nb29kMQogIGdsaWItZGV2ZWwiCiAjIFhYWCBtaXNz aW5nIGxpcmMgcGx1Z2luLgogbWFrZWRlcGVuZHM9ImNsdXR0ZXItZ3N0My1kZXZlbCBjbHV0dGVy LWd0ay1kZXZlbCBkYnVzLWdsaWItZGV2ZWwKQEAgLTI3LDEwICsyNywxNCBAQCBjaGVja3N1bT02 YmY4OWFiMDk2ZGZjNTY0ZjI2MDk3NmU0ODQxNjVmMDliZDg4NjQzNGQxODQ0MTBkMmY5NDRiZmJh NjExYTA5CiAjIFhYWCByZWVuYWJsZSBweXRob24gcGx1Z2luIGlmIHB5bGludCBwa2cgZXhpc3Rz LgogI3B5Y29tcGlsZV9kaXJzPSJ1c3IvbGliL3RvdGVtL3BsdWdpbnMiCiAKK2RvX2NoZWNrKCkg eworCToKK30KKwogZGlzYWJsZV9wYXJhbGxlbF9idWlsZD15ZXMKIAotYnVpbGRfb3B0aW9ucz0i Z2lyIHZhbGEiCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9u cz0iZ2lyIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGxpYnRvdGVtX3BhY2thZ2Uo KSB7CiAJc2hvcnRfZGVzYys9IiAtIHJ1bnRpbWUgbGlicmFyeSIKCkZyb20gODYzNWRjMWM5MmM4 OTg3NmY5Mzc5N2QxZjA4NzgzYjI1NjNkMTUyZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDQyLzgxXSBnbm9tZS1zY3JlZW5z YXZlcjogYnVtcCArIGZpeCBidWlsZAoKLS0tCiBzcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3Bh dGNoZXMvYnVpbGQucGF0Y2ggfCAxMiArKysrKysrKysrKysKIHNyY3BrZ3MvZ25vbWUtc2NyZWVu c2F2ZXIvdGVtcGxhdGUgICAgICAgICAgICB8ICAyICstCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2du b21lLXNjcmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2dub21lLXNjcmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dzL2dub21lLXNj cmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjZkY2RiZTdkZDdlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9t ZS1zY3JlZW5zYXZlci9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKKy0tLSBz cmMvZ3MtbWFuYWdlci5jCisrKysgc3JjL2dzLW1hbmFnZXIuYworQEAgLTgyMCw4ICs4MjAsNyBA QCBhcHBseV9iYWNrZ3JvdW5kX3RvX3dpbmRvdyAoR1NNYW5hZ2VyICptYW5hZ2VyLAorICAgICAg ICAgc3VyZmFjZSA9IGdub21lX2JnX2NyZWF0ZV9zdXJmYWNlIChtYW5hZ2VyLT5wcml2LT5iZywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2RrX3dpbmRvdywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UpOworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQpOworICAgICAgICAgZ3Nfd2lu ZG93X3NldF9iYWNrZ3JvdW5kX3N1cmZhY2UgKHdpbmRvdywgc3VyZmFjZSk7CisgICAgICAgICBj YWlyb19zdXJmYWNlX2Rlc3Ryb3kgKHN1cmZhY2UpOworIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z25vbWUtc2NyZWVuc2F2ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3Rl bXBsYXRlCmluZGV4IDM2M2ZjZjEyZTEwLi5jM2E3MGNmZWY3YyAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nbm9tZS1zY3JlZW5zYXZlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNh dmVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUt c2NyZWVuc2F2ZXInCiBwa2duYW1lPWdub21lLXNjcmVlbnNhdmVyCiB2ZXJzaW9uPTMuNi4xCi1y ZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1 cmVfYXJncz0iLS1lbmFibGUtY29tcGlsZS13YXJuaW5ncz1taW5pbXVtIgogaG9zdG1ha2VkZXBl bmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGludGx0b29sIGdsaWItZGV2ZWwiCgpGcm9tIDRkZjMy ZTQ4MTc4ZjY2ZmRhZDFhMzJmNmY4MTZlZWNlNmNlMGQyYmMgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUs IDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA0My84MV0gZ25vbWUt Y2xvY2tzOiB1cGRhdGUgdG8gMy4zNy45MQoKLS0tCiBzcmNwa2dzL2dub21lLWNsb2Nrcy90ZW1w bGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY2xvY2tzL3RlbXBsYXRlIGIvc3Jj cGtncy9nbm9tZS1jbG9ja3MvdGVtcGxhdGUKaW5kZXggM2UwNDliNDJmYjEuLjBlNDdkYmFkZmUx IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWNsb2Nrcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2dub21lLWNsb2Nrcy90ZW1wbGF0ZQpAQCAtMSwxMiArMSwxMiBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZ25vbWUtY2xvY2tzJwogcGtnbmFtZT1nbm9tZS1jbG9ja3MKLXZlcnNpb249My4zNi4w Cit2ZXJzaW9uPTMuMzcuOTEKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRf c3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCBpdHN0b29s IGdsaWItZGV2ZWwgdmFsYSIKIG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHZhbGEtZGV2ZWwgZ25v bWUtZGVza3RvcC1kZXZlbAotIGxpYmd3ZWF0aGVyLWRldmVsIGxpYmhhbmR5LWRldmVsIGxpYm5v dGlmeS1kZXZlbCBnc291bmQtZGV2ZWwKKyBsaWJnd2VhdGhlci1kZXZlbCBsaWJoYW5keTEtZGV2 ZWwgbGlibm90aWZ5LWRldmVsIGdzb3VuZC1kZXZlbAogIGdlb2NvZGUtZ2xpYi1kZXZlbCBkZXNr dG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lCiAgZ2VvY2x1ZTItZGV2ZWwiCiBkZXBl bmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIgpAQCAtMTUsNCArMTUs NCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3Jn L0FwcHMvQ2xvY2tzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NGM5NzhiMGM3 ZjdiOWRhZWJkMjcyZDAxNzVmOGE1NDQxNWUyMDc4ZjEzNGY0OGFkZDVjZjI0MzYyZWVmNDljNgor Y2hlY2tzdW09MzRkZTgyNGIzZmVlNjhjNTU1NGI2OTA0YjAyYmNkYzdlNGI5MjFmOWE4ZTkxYTc4 MGY0M2UyODk4ZGJmYjM2YwoKRnJvbSA5Zjg2OGU4MmZhMDBiMDI4OTEzM2YzMzBjMjVlYjFmNGE0 MWNhZDQxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggNDQvODFdIGdub21lLWNvbnRhY3RzOiB1cGRhdGUgdG8gMy4zNy4yCgot LS0KIHNyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUgfCAxMyArKysrKystLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNvbnRh Y3RzL3RlbXBsYXRlCmluZGV4IDJhODIxM2E3MjQwLi5hYTRlZjk0MDEzNiAxMDA2NDQKLS0tIGEv c3JjcGtncy9nbm9tZS1jb250YWN0cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWNvbnRh Y3RzL3RlbXBsYXRlCkBAIC0xLDE2ICsxLDE1IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9t ZS1jb250YWN0cycKIHBrZ25hbWU9Z25vbWUtY29udGFjdHMKLXZlcnNpb249My4zNC4wCi1yZXZp c2lvbj0yCi13cmtzcmM9Imdub21lLWNvbnRhY3RzLSR7dmVyc2lvbiUuKn0iCit2ZXJzaW9uPTMu MzcuMgorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWhvc3RtYWtlZGVwZW5kcz0iZG9j Ym9vay14c2wgZ2V0dGV4dCBnbGliLWRldmVsIGxpYnhzbHQgcGtnLWNvbmZpZyB2YWxhIgoraG9z dG1ha2VkZXBlbmRzPSJkb2Nib29rLXhzbCBmb2xrcy1kZXZlbCBnZXR0ZXh0IGdsaWItZGV2ZWwg bGlieHNsdCBwa2ctY29uZmlnIHZhbGEiCiBtYWtlZGVwZW5kcz0iY2hlZXNlLWRldmVsIGZvbGtz LWRldmVsIGdlb2NvZGUtZ2xpYi1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsCi0gbGliY2hhbXBs YWluLWRldmVsIGxpYm5vdGlmeS1kZXZlbCB2YWxhLWRldmVsIGxpYmhhbmR5LWRldmVsIgorIGxp YmNoYW1wbGFpbi1kZXZlbCBsaWJub3RpZnktZGV2ZWwgdmFsYS1kZXZlbCBsaWJoYW5keTEtZGV2 ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMiCiBzaG9ydF9kZXNjPSJHTk9NRSBjb250 YWN0cyBtYW5hZ2VyIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgu b3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtp Lmdub21lLm9yZy9BcHBzL0NvbnRhY3RzIgotZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtn bmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbiUuKn0udGFyLnh6IgotY2hl Y2tzdW09OTk2MDJlYzhkNjYwYzFmM2M5MmNhZTYzNTZmNjRmNzJmYjZkYjU4ZTU1YmNlMjdhNTk5 MzMwYmY3YjYyMmYxMgorZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09MWQzNDY5ZDVl OTBmMjNkMTI5ZDEyNzZiMmY5Yjg4NTQ1OWYzZDdiNDMwNTRjZDA5NzU5Yjg1YWM3NmM5MThiNAoK RnJvbSA2ZWFlODdkNWE2Y2IzZGMwNGQxZGIyZDVlODU5NDQwOGJlZTRhMjBiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDUv ODFdIGxpYmRhenpsZTogdXBkYXRlIHRvIDMuMzcuMQoKLS0tCiBzcmNwa2dzL2xpYmRhenpsZS90 ZW1wbGF0ZSB8IDIyICsrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMyBp bnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliZGF6 emxlL3RlbXBsYXRlIGIvc3JjcGtncy9saWJkYXp6bGUvdGVtcGxhdGUKaW5kZXggNWFjMDlmZWVm YzkuLmZiYWE0MTE0YmRjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYmRhenpsZS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2xpYmRhenpsZS90ZW1wbGF0ZQpAQCAtMSwxMiArMSwxMyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnbGliZGF6emxlJwogcGtnbmFtZT1saWJkYXp6bGUKLXZlcnNpb249My4z Ni4wCit2ZXJzaW9uPTMuMzcuMQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxk X2hlbHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZW5hYmxlX2d0a19kb2M9ZmFsc2UgLUR3 aXRoX3ZhcGk9JCh2b3B0X2lmIHZhbGEgdHJ1ZSBmYWxzZSkKLSAtRHdpdGhfaW50cm9zcGVjdGlv bj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpIgotaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVs IHBrZy1jb25maWcgJCh2b3B0X2lmIHZhbGEgJ3ZhbGEnKSIKK2NvbmZpZ3VyZV9hcmdzPSItRGVu YWJsZV9ndGtfZG9jPWZhbHNlCisgJCh2b3B0X2Jvb2wgZ2lyIHdpdGhfdmFwaSkKKyAkKHZvcHRf Ym9vbCBnaXIgd2l0aF9pbnRyb3NwZWN0aW9uKSIKK2hvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZl bCBwa2ctY29uZmlnICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ3RrKzMtZGV2 ZWwgbGliZ2xpYi1kZXZlbCIKIHNob3J0X2Rlc2M9IkxpYnJhcnkgdG8gZGVsaWdodCB5b3VyIHVz ZXJzIHdpdGggZmFuY3kgZmVhdHVyZXMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94 QHZvaWRsaW51eC5vcmc+IgpAQCAtMTQsMTAgKzE1LDE1IEBAIGxpY2Vuc2U9IkdQTC0zLjAtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2xpYmRhenps ZSIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2xp YmRhenpsZS9saWJkYXp6bGUtMy0zMi9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2xp YmRhenpsZS8ke3ZlcnNpb24lLip9L2xpYmRhenpsZS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPTgyYjMxYmJmNTUwZmM2Mjk3MGM3OGJmN2Y5ZDU1ZTVmYWU1YjhlYTEzYjI0ZmUyZDEzYzhj NjAzOTQwOWQ5NTgKK2NoZWNrc3VtPWZkZjBlMzk4MDY5ODQ4YjkwZmRkZjMxODRiNjM4NDU5MmEz YWVhYmI4YjI0MzMxNDBlMDNiMDE2NDI2NjI1MGYKIAotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEi Ci1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9ucz0iZ2lyIgor YnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCisKKyMgbmVlZHMgWAorZG9fY2hlY2soKSB7CisJ OgorfQogCiBsaWJkYXp6bGUtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBr Z30tJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBndGsrMy1kZXZlbCIKQEAgLTI4LDggKzM0LDYgQEAg bGliZGF6emxlLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlICJ1c3IvbGliLyouc28iCiAJCWlm IFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEu MAotCQlmaQotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZtb3ZlIHVz ci9zaGFyZS92YWxhCiAJCWZpCiAJfQoKRnJvbSAxOTQ1NzA4ODEzZDczOGRmM2EwZjMxYThjYjI3 MjllZGYzN2I3Nzc2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggNDYvODFdIGVwaXBoYW55OiB1cGRhdGUgdG8gMy4zNy45MQoK LS0tCiBzcmNwa2dzL2VwaXBoYW55L3RlbXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2VwaXBoYW55L3RlbXBsYXRlIGIvc3JjcGtncy9lcGlwaGFueS90ZW1wbGF0ZQppbmRleCA1ZDZh YzZhNjM3ZC4uMTEyM2U1OGE1NmQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZXBpcGhhbnkvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9lcGlwaGFueS90ZW1wbGF0ZQpAQCAtMSwxOSArMSwxOSBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZXBpcGhhbnknCiBwa2duYW1lPWVwaXBoYW55Ci12ZXJzaW9uPTMu MzYuMgordmVyc2lvbj0zLjM3LjkxCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1 aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURkaXN0cmlidXRvcl9uYW1lPVZvaWRM aW51eCAtRHVuaXRfdGVzdHM9ZGlzYWJsZWQiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xp Yi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXIt ZGV2ZWwgYXZhaGktZ2xpYi1saWJzLWRldmVsIGdjci1kZXZlbAotIGdub21lLWRlc2t0b3AtZGV2 ZWwganNvbi1nbGliLWRldmVsIGxpYmRhenpsZS1kZXZlbCBsaWJoYW5keS1kZXZlbAorIGdub21l LWRlc2t0b3AtZGV2ZWwganNvbi1nbGliLWRldmVsIGxpYmRhenpsZS1kZXZlbCBsaWJoYW5keTEt ZGV2ZWwKICBsaWJub3RpZnktZGV2ZWwgbGlic2VjcmV0LWRldmVsIGxpYnNvdXAtZ25vbWUtZGV2 ZWwgbGlid25jay1kZXZlbCBsaWJ4c2x0LWRldmVsCi0gbmV0dGxlLWRldmVsIG5zcy1kZXZlbCB3 ZWJraXQyZ3RrLWRldmVsIgorIG5ldHRsZS1kZXZlbCBuc3MtZGV2ZWwgd2Via2l0Mmd0ay1kZXZl bCBsaWJwb3J0YWwtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1p Y29uLXRoZW1lIGlzby1jb2RlcyB3ZWJraXQyZ3RrIgogc2hvcnRfZGVzYz0iSW50dWl0aXZlIEdO T01FIHdlYiBicm93c2VyIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93 aWtpLmdub21lLm9yZy9BcHBzL1dlYiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25h bWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PWMyZTY3NmFhMGZlMjExODA5YTVlN2U4YTdlNDYxZDE4Mjg5MGYyNTNjNTNmNDYxMGYyNjEwMDk0 YjZmYmZiNWUKK2NoZWNrc3VtPWRmYzVkYjk4MWNiMzkyZDhmMDk2ZDU0ZDI4YmMxYjFjMTg5YTRi OGI3NTM0ZDg3MDU0ZjIwMjg0M2YwMGJkODMKCkZyb20gOWVhOTg2ZDU2MjdmMTRhYmIwMGEzNGM1 ZWE5NzI4MmFiYmJkZTAxMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6 MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDQ3LzgxXSBnbm9tZS1waG90b3M6IHVwZGF0ZSB0byAz LjM3LjkxLjEKCi0tLQogc3JjcGtncy9nbm9tZS1waG90b3MvdGVtcGxhdGUgfCA2ICsrKy0tLQog MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2dub21lLXBob3Rvcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtcGhvdG9z L3RlbXBsYXRlCmluZGV4IDFlZDhiOTg2MWVjLi4zYTcyZDlhNTNiZSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9nbm9tZS1waG90b3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1waG90b3MvdGVt cGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1waG90b3Mn CiBwa2duYW1lPWdub21lLXBob3RvcwotdmVyc2lvbj0zLjM0LjIKK3ZlcnNpb249My4zNy45MS4x CiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCkBAIC0x NSw4ICsxNSw4IEBAIHNob3J0X2Rlc2M9IkFjY2Vzcywgb3JnYW5pemUsIGFuZCBzaGFyZSB5b3Vy IHBob3RvcyBvbiBHTk9NRSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8v d2lraS5nbm9tZS5vcmcvQXBwcy9QaG90b3MiCi1kaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vZ25v bWUtcGhvdG9zLyR7dmVyc2lvbiUuKn0vZ25vbWUtcGhvdG9zLSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09M2M1OWM3NmVmMjg2MThlYzA1NWExNzk5ZDEwNDAyODdiOTBhMGIwMjFmZWIwYTAy YjFlYWMyOGU5YzJlYjQxYQorZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2dub21lLXBob3Rvcy8k e3ZlcnNpb24lLiouKn0vZ25vbWUtcGhvdG9zLSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09 Mjc4ZGEyMzIzNGUyN2M1NDMwMjBkYWU5NDNhZDUyMDg2YjllY2FhNWVlM2FhZDBiMDMxYjg2ZWUw NGQzOTRhYQogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9Imdp ciIKCkZyb20gOGVjMmJlMDQyNTQ3MGYzZDAyNmE3NWYyNzZhOTczZDFjOWU5MjViZiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENI IDQ4LzgxXSBlb2c6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZW9nL3RlbXBsYXRl IHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lb2cvdGVtcGxhdGUgYi9zcmNwa2dzL2VvZy90ZW1w bGF0ZQppbmRleCBlNGNhY2I3MDc5ZS4uOTFlZTU0ZWRjNDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv ZW9nL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZW9nL3RlbXBsYXRlCkBAIC0xLDIwICsxLDIwIEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdlb2cnCiBwa2duYW1lPWVvZwotdmVyc2lvbj0zLjM2LjEK K3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9z dHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2ly IHRydWUgZmFsc2UpIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgaXRzdG9v bCBwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9ImV4ZW1waS1kZXZlbCBnbm9tZS1kZXNrdG9wLWRl dmVsIGxpYmV4aWYtZGV2ZWwgbGlicGVhcy1kZXZlbAotIGxpYnJzdmctZGV2ZWwgbGNtczItZGV2 ZWwiCisgbGlicnN2Zy1kZXZlbCBsY21zMi1kZXZlbCBsaWJwb3J0YWwtZGV2ZWwiCiBkZXBlbmRz PSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIHNoYXJlZC1taW1lLWluZm8i CiBzaG9ydF9kZXNjPSJFeWUgb2YgR05PTUUgZ3JhcGhpY3Mgdmlld2VyIHByb2dyYW0iCiBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXll T2ZHbm9tZSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS9lb2cvJHt2ZXJzaW9uJS4qfS9lb2ct JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lNDU0YTFhN2FhNWUzYTMzMjFlYWIwMTE2Nzc4 MTEwZTVhN2E3YjYzYmNmMjE2NzZlZGExYTdiZTE4N2M5Yzk1CitjaGVja3N1bT00YThhNjc2MzM4 MDUyOTJhZDFhZjU0OWUzMTlhYTNmN2I2ZDc3NmYzM2RhYzIwZmQxOTVjZTQ2YmJkZDAyNjZhCiBz aGxpYl9wcm92aWRlcz0ibGliZW9nLnNvIgogbGliMzJkaXNhYmxlZD15ZXMKIAoKRnJvbSAwNzI4 YTU1YmUxODZhNmY3YWNkZWFjNmQzMGIyYzI5YTkxZTAzZDI4IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1 LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDkvODFdIGV2aW5j ZTogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9ldmluY2UvdGVtcGxhdGUgfCAxNCAr KysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2V2aW5jZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZXZp bmNlL3RlbXBsYXRlCmluZGV4IDQwMzVmMTVjNjkwLi5lMTdmMmQ4OTBmNiAxMDA2NDQKLS0tIGEv c3JjcGtncy9ldmluY2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ldmluY2UvdGVtcGxhdGUKQEAg LTEsMTMgKzEsMTMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2V2aW5jZScKIHBrZ25hbWU9ZXZp bmNlCi12ZXJzaW9uPTMuMzYuNwordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9o ZWxwZXI9ImdpciIKLWJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKLWNvbmZpZ3VyZV9hcmdzPSIk KHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKSAtLWRpc2FibGUtc2NoZW1hcy1jb21waWxl Ci0gLS1lbmFibGUtY29taWNzIC0tZGlzYWJsZS1zdGF0aWMgLS1lbmFibGUteHBzIC0tZGlzYWJs ZS10MWxpYgotIC0tZGlzYWJsZS1icm93c2VyLXBsdWdpbiAtLWVuYWJsZS1wcyIKLWhvc3RtYWtl ZGVwZW5kcz0iYWR3YWl0YS1pY29uLXRoZW1lIGdldHRleHQgZ2xpYi1kZXZlbCBnbm9tZS1kb2Mt dXRpbHMKK2J1aWxkX3N0eWxlPW1lc29uCitjb25maWd1cmVfYXJncz0iJCh2b3B0X2Jvb2wgZ2ly IGludHJvc3BlY3Rpb24pCisgLURjb21pY3M9ZW5hYmxlZCAtRHBzPWVuYWJsZWQgLUR4cHM9ZW5h YmxlZCAtRGR2aT1kaXNhYmxlZAorIC1EdDFsaWI9ZGlzYWJsZWQgLURicm93c2VyX3BsdWdpbj1m YWxzZSIKK2hvc3RtYWtlZGVwZW5kcz0iYWR3YWl0YS1pY29uLXRoZW1lIGdldHRleHQgZ3RrLWRv YyBnbGliLWRldmVsIGdub21lLWRvYy11dGlscwogIGl0c3Rvb2wgcGtnLWNvbmZpZyBwZXJsLVhN TC1QYXJzZXIgYXBwc3RyZWFtLWdsaWIiCiAjIFhYWCBtaXNzaW5nIHBhY2thZ2VzIGZvciBEVkkg YmFja2VuZC4KIG1ha2VkZXBlbmRzPSJhZHdhaXRhLWljb24tdGhlbWUgZGp2dWxpYnJlLWRldmVs IGdub21lLWRlc2t0b3AtZGV2ZWwgbGliU00tZGV2ZWwKQEAgLTE5LDcgKzE5LDcgQEAgbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0V2aW5j ZSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtw a2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTY1ZDYxYTQyM2UzZmJiZTA3MDAx ZjY1ZTg3NDIyZGZiN2QyZTQyYjllZGYwY2E2YTFkNDI3YWY5YTA0YjhmMzIKK2NoZWNrc3VtPTJh ODc4MDQzYjkyMTBhZDdhYjcwODA1ZjgzZTQwMDY1NGUyMTRlMWY1ZWY5NjAxMDBhZGY5Mzg4MzJk MDJlYWYKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIi CgpGcm9tIDczNzM4YTYwNWRhMzkyMjhhOThhZWIzZDM2NzMwNzAyM2VmYjRiZjQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA1 MC84MV0gZmlsZS1yb2xsZXI6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZmlsZS1y b2xsZXIvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZmlsZS1yb2xsZXIvdGVtcGxhdGUKaW5kZXggMDM2MjJhMjIzMTMuLjE2ZWU1 ZWFkZTFlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZpbGUtcm9sbGVyL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZmlsZS1yb2xsZXIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdmaWxlLXJvbGxlcicKIHBrZ25hbWU9ZmlsZS1yb2xsZXIKLXZlcnNpb249My4zNi4w Cit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFr ZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWciCkBAIC0xMiw2 ICsxMiw2IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4i CiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9t ZS5vcmcvQXBwcy9GaWxlUm9sbGVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 YjkxNDRkZThmNTM2ZjU4M2VjMjlkNzAzYzJjMTcwYmYyZDAwYzZjMTY2Y2Q1ZTNmN2VmYWJkYTU1 MWYxMDQ3OAorY2hlY2tzdW09ZDc4NGI5YjMxNWJhOTM4NjIzNWU2ZGU2ZTI2MmFlZDE0YWM4OWJj MGU2ZWYzYTg0OGRkM2IwZjI5MzczYzNhMQogCiBDRkxBR1M9Ii1mY29tbW9uIgoKRnJvbSAyM2Ni ZDJmN2U1NDc2YzIyZmZmYjA5Y2JhMDBhOGM3ZjhlZmQ2NDE2IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1 LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNTEvODFdIGdub21l LWNhbGVuZGFyOiBidW1wCgpbY2kgc2tpcF0KLS0tCiBzcmNwa2dzL2dub21lLWNhbGVuZGFyL3Rl bXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jYWxlbmRhci90ZW1wbGF0ZSBiL3NyY3Br Z3MvZ25vbWUtY2FsZW5kYXIvdGVtcGxhdGUKaW5kZXggOWM5MWM4YjVmNGQuLjM3NGY0NTU2ZmY4 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWNhbGVuZGFyL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ25vbWUtY2FsZW5kYXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdnbm9tZS1jYWxlbmRhcicKIHBrZ25hbWU9Z25vbWUtY2FsZW5kYXIKIHZlcnNpb249 My4zNi4yCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1h a2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgcGtnLWNvbmZpZyAkKHZvcHRfaWYgZ2lyICdn b2JqZWN0LWludHJvc3BlY3Rpb24nKSIKIG1ha2VkZXBlbmRzPSJldm9sdXRpb24tZGF0YS1zZXJ2 ZXItZGV2ZWwgZ2VvY2x1ZTItZGV2ZWwgZ2VvY29kZS1nbGliLWRldmVsCgpGcm9tIDAyZTA3ZDIz YzFkMjRhNjllZjU5OGMwNGFlMzE1NmE0ZThlOGE1ZmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDE0 IEF1ZyAyMDIwIDE2OjUxOjU1ICswMjAwClN1YmplY3Q6IFtQQVRDSCA1Mi84MV0gZ25vbWUtbXVz aWM6IHVwZGF0ZSB0byAzLjM3LjMKCltjaSBza2lwXQotLS0KIHNyY3BrZ3MvZ25vbWUtbXVzaWMv cGF0Y2hlcy9wYW5nbzE0Mi5wYXRjaCB8IDI4ICsrKysrKysrKysrKysrKysrKysrKysKIHNyY3Br Z3MvZ25vbWUtbXVzaWMvdGVtcGxhdGUgICAgICAgICAgICAgICB8ICA3ICsrKy0tLQogMiBmaWxl cyBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvZ25vbWUtbXVzaWMvcGF0Y2hlcy9wYW5nbzE0Mi5wYXRjaAoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZ25vbWUtbXVzaWMvcGF0Y2hlcy9wYW5nbzE0Mi5wYXRjaCBiL3NyY3Br Z3MvZ25vbWUtbXVzaWMvcGF0Y2hlcy9wYW5nbzE0Mi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uYWE5OGNkOTBiMmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2dub21lLW11c2ljL3BhdGNoZXMvcGFuZ28xNDIucGF0Y2gKQEAgLTAsMCArMSwyOCBAQAor RnJvbSBkYzBmNTFiNjNlNGE3YjA4ZTExZThlZDAxNjQ4NGVhNmY1YjIwNTc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CitEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDE2OjUwOjI4ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hd IG1lc29uOiByZW1vdmUgcGFuZ28gZGVwZW5kZW5jeQorCitUaGlzIHdhcyBhZGRlZCBiZWNhdXNl IG9mIGEgZmVhdHVyZSBtaXNzaW5nIGluIHBhbmdvIG9sZGVyIHRoYW4KKzEuNDQsIGJ1dCB3ZSBo YXZlIHRoaXMgYmFja3BvcnRlZCwgc28gd2UncmUgb2theS4KKworaHR0cHM6Ly9naXRsYWIuZ25v bWUub3JnL0dOT01FL3B5Z29iamVjdC8tL2lzc3Vlcy8zMTIKKy0tLQorIG1lc29uLmJ1aWxkIHwg MSAtCisgMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBtZXNvbi5i dWlsZCBtZXNvbi5idWlsZAoraW5kZXggMGVmNWI5Yi4uNTJiODdhNiAxMDA2NDQKKy0tLSBtZXNv bi5idWlsZAorKysrIG1lc29uLmJ1aWxkCitAQCAtNDMsNyArNDMsNiBAQCBkZXBlbmRlbmN5KCds aWJkYXp6bGUtMS4wJywgdmVyc2lvbjogJz49IDMuMjguMCcpCisgZGVwZW5kZW5jeSgnbGlibWVk aWFhcnQtMi4wJywgdmVyc2lvbjogJz49IDEuOS4xJykKKyBkZXBlbmRlbmN5KCdsaWJzb3VwLTIu NCcpCisgZGVwZW5kZW5jeSgndHJhY2tlci1zcGFycWwtMi4wJywgdmVyc2lvbjogJz49IDIuMy4w JykKKy1kZXBlbmRlbmN5KCdwYW5nbycsIHZlcnNpb246ICc+PSAxLjQ0LjAnKQorIGRlcGVuZGVu Y3koJ3B5Z29iamVjdC0zLjAnLCB2ZXJzaW9uOiAnPj0gMy4zNi4xJykKKyBkZXBlbmRlbmN5KCdw eTNjYWlybycsIHZlcnNpb246ICc+PSAxLjE0LjAnKQorIGRlcGVuZGVuY3koJ2dyaWxvLTAuMycs IHZlcnNpb246ICc+PSAwLjMuMTInLCBmYWxsYmFjazogWydncmlsbycsICdsaWJncmxfZGVwJ10p CistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLW11c2ljL3RlbXBsYXRl IGIvc3JjcGtncy9nbm9tZS1tdXNpYy90ZW1wbGF0ZQppbmRleCAxMjUxMTczNjQwNy4uNWI3MjM5 MjczODEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtbXVzaWMvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nbm9tZS1tdXNpYy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2dub21lLW11c2ljJwogcGtnbmFtZT1nbm9tZS1tdXNpYwotdmVyc2lvbj0zLjM2LjEK K3ZlcnNpb249My4zNy4zCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0 eWxlPW1lc29uCkBAIC05LDExICs5LDEyIEBAIG1ha2VkZXBlbmRzPSJnbm9tZS1kZXNrdG9wLWRl dmVsIGdyaWxvLWRldmVsIGxpYm1lZGlhYXJ0LWRldmVsCiAgcHl0aG9uMy1nb2JqZWN0LWRldmVs IHB5dGhvbjMtZGJ1cyB0cmFja2VyLWRldmVsIGdub21lLW9ubGluZS1hY2NvdW50cy1kZXZlbAog IGxpYmRhenpsZS1kZXZlbCBncmlsby1wbHVnaW5zIHB5dGhvbjMtY2Fpcm8tZGV2ZWwiCiBkZXBl bmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgcHl0aG9uMy1kYnVzIHB5dGhvbjMtZ29iamVjdCBweXRo b24zLXJlcXVlc3RzCi0gdHJhY2tlciB0cmFja2VyLW1pbmVycyBnc3QtcGx1Z2lucy1nb29kMSBn cmlsby1wbHVnaW5zIGxpYmRhenpsZSIKKyB0cmFja2VyIHRyYWNrZXItbWluZXJzIGdzdC1wbHVn aW5zLWdvb2QxIGdyaWxvLXBsdWdpbnMgbGliZGF6emxlCisgbGlibWVkaWFhcnQiCiBzaG9ydF9k ZXNjPSJHTk9NRSBtdXNpYyBwbGF5aW5nIGFwcGxpY2F0aW9uIgogbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL011c2ljIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09N2I4MGY2MzBkMTU4MzM0OTM1YTg3NjAyOTY1NTBjYzkx YjUwZDYwNGZhNjhiNDAyZmU1MTY1YjE1MzFlYzMzMgorY2hlY2tzdW09MjQ4YmM4NTg1OTYzMjcx YTRkMmZmN2YyNDljOWY3OTJhYWYwYjRkZmRlMWU5NGFiYjY4YzkxNTAxMDE1Y2ViZQogbGliMzJk aXNhYmxlZD15ZXMKCkZyb20gZjFhMmNjMjY4MmVlZDY4NjE2ODIwYzhlYjUyMzhhNDlmMGUyNzNm OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMTQgQXVnIDIwMjAgMjM6MjI6MzQgKzAyMDAKU3ViamVj dDogW1BBVENIIDUzLzgxXSBnbm9tZS1wYW5lbDogdXBkYXRlIHRvIDMuMzcuMQoKLS0tCiBjb21t b24vc2hsaWJzICAgICAgICAgICAgICAgIHwgMiArLQogc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1w bGF0ZSB8IDYgKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRl eCA0M2Y3ZWRlMjU5OS4uYjg5MTUyYTAzNzUgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysr IGIvY29tbW9uL3NobGlicwpAQCAtNTY0LDcgKzU2NCw3IEBAIGxpYnBhY2thZ2VraXQtZ2xpYjIu c28uMTggUGFja2FnZUtpdC0xLjEuMTJfMQogbGlicHNsLnNvLjUgbGlicHNsLTAuMjAuMl8xCiBs aWJzb3VwLTIuNC5zby4xIGxpYnNvdXAtMi4zNC4wXzEKIGxpYnNvdXAtZ25vbWUtMi40LnNvLjEg bGlic291cC1nbm9tZS0yLjM0LjBfMQotbGlicGFuZWwtYXBwbGV0LnNvLjMgZ25vbWUtcGFuZWwt My4zMC4wXzEKK2xpYmdub21lLXBhbmVsLnNvLjAgZ25vbWUtcGFuZWwtMy4zNy4xXzEKIGxpYnVu aW51bS5zby41IGxpYnVuaW51bS0yLjdfMQogbGlidW5pcXVlLTMuMC5zby4wIGxpYnVuaXF1ZS0y LjkxLjRfMQogbGlid2Via2l0Mmd0ay00LjAuc28uMzcgd2Via2l0Mmd0ay0yLjYuMl8xCmRpZmYg LS1naXQgYS9zcmNwa2dzL2dub21lLXBhbmVsL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1wYW5l bC90ZW1wbGF0ZQppbmRleCA3MGYyM2I4YjU1MS4uMjRkOWQyYjllYjUgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ25vbWUtcGFuZWwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXBhbmVsJwog cGtnbmFtZT1nbm9tZS1wYW5lbAotdmVyc2lvbj0zLjM0LjEKLXJldmlzaW9uPTMKK3ZlcnNpb249 My4zNy4xCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVf YXJncz0iYXhfY3Zfem9uZWluZm9fdHpkaXI9L3Vzci9zaGFyZS96b25laW5mbyIKIGhvc3RtYWtl ZGVwZW5kcz0iZ2V0dGV4dC1kZXZlbCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyB0emRh dGEgZ2V0dGV4dCIKQEAgLTE0LDcgKzE0LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdv dHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdGREwtMS4x LW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25v bWUub3JnL1Byb2plY3RzL0dub21lUGFuZWwiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtw a2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVj a3N1bT1hNmJjMDI1NTI1MmVlYjRiOTY0YmNiZTU1ZmQ3OTA4YjY5ZjkxNGMwNjJjNWVjOGRmZjVh YzAyNjJkMjliOTBkCitjaGVja3N1bT0xZDU5OGZkNjg5MzNlNzYwMThmMmZiMTE2YTc4NzFjYmMw MDMzYzFmMTA5YmZiZmUwOGExZWNiNTYwNjdkMTUyCiBwYXRjaF9hcmdzPSItTnAxIgogCiBnbm9t ZS1wYW5lbC1kZXZlbF9wYWNrYWdlKCkgewoKRnJvbSAwNThiODcxNzNmMjY5MGVhYWQzMmI4NmYy NDM5OTJjYTUxNjYwYWU5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAxNCBBdWcgMjAyMCAyMzoyNDo1 MSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNTQvODFdIG1ldGFjaXR5OiB1cGRhdGUgdG8gMy4zNy4x CgotLS0KIHNyY3BrZ3MvbWV0YWNpdHkvdGVtcGxhdGUgfCA5ICsrKystLS0tLQogMSBmaWxlIGNo YW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL21ldGFjaXR5L3RlbXBsYXRlIGIvc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZQppbmRleCA1 YWEyMzE0OTJlNy4uNDMwOTc3NmJkNTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWV0YWNpdHkvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZQpAQCAtMSwxOCArMSwxNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnbWV0YWNpdHknCiBwa2duYW1lPW1ldGFjaXR5Ci1yZXZlcnRz PSIzLjM3LjFfMSIKLXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzcuMQogcmV2aXNpb249MQog YnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdldHRl eHQtZGV2ZWwgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgeWVscC10b29scyB6ZW5pdHki CiBtYWtlZGVwZW5kcz0iZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbCBndGsrMy1kZXZl bCBsaWJjYW5iZXJyYS1kZXZlbAogIGxpYmdsaWItZGV2ZWwgbGliZ3RvcC1kZXZlbCBsaWJTTS1k ZXZlbCBsaWJYY29tcG9zaXRlLWRldmVsIGxpYlhkYW1hZ2UtZGV2ZWwKLSBsaWJYZml4ZXMtZGV2 ZWwgbGliWGluZXJhbWEtZGV2ZWwgbGliWHJlbmRlci1kZXZlbCBsaWJYMTEtZGV2ZWwgcGFuZ28t ZGV2ZWwKLSBzdGFydHVwLW5vdGlmaWNhdGlvbi1kZXZlbCBWdWxrYW4tSGVhZGVycyB2dWxrYW4t bG9hZGVyIgorIGxpYlhmaXhlcy1kZXZlbCBsaWJYaW5lcmFtYS1kZXZlbCBsaWJYcmVuZGVyLWRl dmVsIGxpYlgxMS1kZXZlbCBsaWJYcmVzLWRldmVsCisgcGFuZ28tZGV2ZWwgc3RhcnR1cC1ub3Rp ZmljYXRpb24tZGV2ZWwgVnVsa2FuLUhlYWRlcnMgdnVsa2FuLWxvYWRlciIKIGRlcGVuZHM9Inpl bml0eSIKIHNob3J0X2Rlc2M9IldpbmRvdyBNYW5hZ2VyIGZvciB0aGUgR05PTUUgZW52aXJvbm1l bnQiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5v cmcvR05PTUUvbWV0YWNpdHkiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8k e3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zMWM3 ZDEwNDVjMzkwYWZiM2JmNDA1NzM1YjBiMjZjNDU5MTk3Y2JmNDNhZjM3YzQ2OWViODkxOGNlM2E0 NTNkCitjaGVja3N1bT04MGQ2ZjNkOTVhNDMyOGZiMjZkMGE2NDcxZjU3NWI3NDJiMzZiOGYyNzIx ZjhmM2MxODA3MTk3ZmE5MDBhMTI2CgpGcm9tIDk3YmFhNTA1ODdlYmY1ODI1Y2M3OWJlOTBiZGU1 NDVjMWZiNjhlYjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDIzOjQwOjM0ICsw MjAwClN1YmplY3Q6IFtQQVRDSCA1NS84MV0gZ25vbWUtZmxhc2hiYWNrOiB1cGRhdGUgdG8gMy4z Ny4yCgpBZGRlZCBQQU0gY29uZmlnIGFzIHN1Z2dlc3RlZCBieSBtbmFiaWQuCi0tLQogLi4uL2du b21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1mbGFzaGJhY2sucGFtIHwgIDYgKysrKwogc3JjcGtn cy9nbm9tZS1mbGFzaGJhY2svdGVtcGxhdGUgICAgICAgICAgICAgIHwgMzQgKysrKysrKysrKysr KystLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21l LWZsYXNoYmFjay5wYW0KCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWZsYXNoYmFjay9maWxl cy9nbm9tZS1mbGFzaGJhY2sucGFtIGIvc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svZmlsZXMvZ25v bWUtZmxhc2hiYWNrLnBhbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u Zjc3NmYwYjM2MzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay9m aWxlcy9nbm9tZS1mbGFzaGJhY2sucGFtCkBAIC0wLDAgKzEsNiBAQAorIyVQQU0tMS4wCithdXRo ICAgICBpbmNsdWRlICBzeXN0ZW0tYXV0aAorYXV0aCAgICAgb3B0aW9uYWwgcGFtX2dub21lX2tl eXJpbmcuc28KK2FjY291bnQgIGluY2x1ZGUgIHN5c3RlbS1hdXRoCitwYXNzd29yZCBpbmNsdWRl ICBzeXN0ZW0tYXV0aAorc2Vzc2lvbiAgaW5jbHVkZSAgc3lzdGVtLWF1dGgKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1mbGFzaGJh Y2svdGVtcGxhdGUKaW5kZXggZDMyMTIwY2FiNmYuLjY4YTFhNjc0YWNmIDEwMDY0NAotLS0gYS9z cmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWZsYXNo YmFjay90ZW1wbGF0ZQpAQCAtMSwyMCArMSwzNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25v bWUtZmxhc2hiYWNrJwogcGtnbmFtZT1nbm9tZS1mbGFzaGJhY2sKLXZlcnNpb249My4zNC4yCit2 ZXJzaW9uPTMuMzcuMgogcmV2aXNpb249MQogYnVpbGRfaGVscGVyPWdpcgogYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLWNvbXBpbGUtd2FybmluZ3M9 bWluaW11bSIKLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBnbGliLWRldmVs IGdldHRleHQiCi1tYWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2No ZW1hcy1kZXZlbAotIGxpYmdsaWItZGV2ZWwgZ2RrLXBpeGJ1Zi1kZXZlbCB1cG93ZXItZGV2ZWwg aWJ1cy1kZXZlbCBwb2xraXQtZGV2ZWwKLSBwdWxzZWF1ZGlvLWRldmVsIGxpYmNhbmJlcnJhLWRl dmVsIGxpYnhjYi1kZXZlbCBsaWJYMTEtZGV2ZWwgcGFuZ28tZGV2ZWwKLSBsaWJ4a2JmaWxlLWRl dmVsIGdub21lLWJsdWV0b290aC1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIgorY29uZmlndXJl X2FyZ3M9Ii0td2l0aC1jb21waXotc2Vzc2lvbiAtLWVuYWJsZS1jb21waWxlLXdhcm5pbmdzPW1p bmltdW0iCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2V0dGV4dCBnZXR0ZXh0LWRldmVs IGF1dG9tYWtlIGxpYnRvb2wgZ2xpYi1kZXZlbCIKK21ha2VkZXBlbmRzPSJwYW0tZGV2ZWwgZWxv Z2luZC1kZXZlbCB1cG93ZXItZGV2ZWwgaWJ1cy1kZXZlbCBwb2xraXQtZGV2ZWwKKyBwdWxzZWF1 ZGlvLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYnhjYi1kZXZlbCBsaWJYMTEtZGV2ZWwgbGli eGtiZmlsZS1kZXZlbAorIGxpYmNvbXBpemNvbmZpZy1kZXZlbCBsaWJnbGliLWRldmVsIHBhbmdv LWRldmVsIGd0ayszLWRldmVsIGdkay1waXhidWYtZGV2ZWwKKyBnZG0tZGV2ZWwgZ25vbWUtYmx1 ZXRvb3RoLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwgZ25vbWUtcGFuZWwtZGV2ZWwKKyBnc2V0 dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIgogZGVwZW5kcz0iZ25vbWUtYmx1ZXRvb3RoIGdu b21lLXNlc3Npb24gZ25vbWUtc2V0dGluZ3MtZGFlbW9uCi0gZ25vbWUtcGFuZWwgZ25vbWUtdGhl bWVzLXN0YW5kYXJkIG1ldGFjaXR5IgorIGdub21lLXBhbmVsIGdub21lLXRoZW1lcy1leHRyYSBt ZXRhY2l0eSIKIHNob3J0X2Rlc2M9IkdOT01FIDMgc2Vzc2lvbiB3aXRoIHNpbWlsYXIgdXNlciBl eHBlcmllbmNlIHRvIHRoZSBHTk9NRSAyLnggc2VyaWVzIgogbWFpbnRhaW5lcj0ic2hpem9uaWMg PHJlYWx0aWF6QGdtYWlsLmNvbT4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25vbWVGbGFzaGJhY2siCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zYmU2NTM4OGNkMmM4ZjM5NzQxYmNjMDVkYTg3 ZWY0MDAzNTE4M2E5YTM5NTAyZDY3Njk2MjQyYzJhZWI0NjljCitjaGVja3N1bT1hYjBkZTAwYjBm NmM5YmYzMGMxOTY1MTU2NGJkOWE3NGJiZGZiN2Q3NmRkMjExOWIyNjMxYTM2NzFmOGJlNjUzCisK K3Bvc3RfZXh0cmFjdCgpIHsKKwl2c2VkIC1pICdzL2xpYmNvbXBpemNvbmZpZyA+PSAwXC45XC4x NFwuMC9saWJjb21waXpjb25maWcgPj0gMC44LjE2LjAvJyBcCisJCWNvbmZpZ3VyZS5hYworfQor CitwcmVfY29uZmlndXJlKCkgeworCWF1dG9yZWNvbmYgLWlmCit9CisKK3Bvc3RfaW5zdGFsbCgp IHsKKwl2aW5zdGFsbCAke0ZJTEVTRElSfS9nbm9tZS1mbGFzaGJhY2sucGFtIDY0NCAvZXRjL3Bh bS5kIGdub21lLWZsYXNoYmFjaworCXZzZWQgLWkgLWUgInMvIC0tc3lzdGVtZC8vZyIgXAorCQkk e0RFU1RESVJ9L3Vzci9saWJleGVjL2dub21lLWZsYXNoYmFjay17Y29tcGl6LG1ldGFjaXR5fQor fQoKRnJvbSA0Mzk3NTc4MTZlMjNhZWIzMjRiMWQ4NTgwNzJhNzhiZGVhYjcxOWEyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogU2F0LCAxNSBBdWcgMjAyMCAwMDoxMjoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0gg NTYvODFdIHRlcGw6IHVwZGF0ZSB0byA0Ljk5LjMKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvdGVwbC9wYXRjaGVzL25vLWdpci5wYXRjaCB8 IDQ1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvdGVwbC90ZW1wbGF0 ZSAgICAgICAgICAgICB8IDEwICsrKy0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9u cygrKSwgNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RlcGwvcGF0 Y2hlcy9uby1naXIucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3No bGlicwppbmRleCBiODkxNTJhMDM3NS4uMzliMDRkMmFjZGUgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9z aGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzU1Niw3ICszNTU2LDcgQEAgbGlid3hfZ3Rr M3VfbWVkaWEtMy4wLnNvLjAgd3hXaWRnZXRzLWd0azMtMy4wLjRfMQogbGlid3hfZ3RrM3Vfcmli Ym9uLTMuMC5zby4wIHd4V2lkZ2V0cy1ndGszLTMuMC40XzEKIGxpYnd4X2d0azN1X2dsLTMuMC5z by4wIHd4V2lkZ2V0cy1ndGszLTMuMC40XzEKIGxpYnd4X2d0azN1X3N0Yy0zLjAuc28uMCB3eFdp ZGdldHMtZ3RrMy0zLjAuNF8xCi1saWJ0ZXBsLTQuc28uMCB0ZXBsLTQuMi4wXzEKK2xpYnRlcGwt NS5zby4wIHRlcGwtNC4yLjBfMQogbGlibm9tYWNzQ29yZS5zby4zIG5vbWFjcy0zLjEwLjJfNAog bGliYXVkaXQuc28uMSBsaWJhdWRpdC0yLjguNF8xCiBsaWJhdXBhcnNlLnNvLjAgbGliYXVwYXJz ZS0yLjguNF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2gg Yi9zcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmUzNDAwMjdiN2YxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy90ZXBsL3BhdGNoZXMvbm8tZ2lyLnBhdGNoCkBAIC0wLDAgKzEsNDUgQEAKK0Zyb20gMTdlNTdl ZDE1NjQ1MGZlNTkwMDFjYjBhMTRmOGQ4N2M0MGQ2YmY3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogU2F0 LCAxNSBBdWcgMjAyMCAwMDowOToxNSArMDIwMAorU3ViamVjdDogW1BBVENIXSBBbGxvdyBkaXNh YmxpbmcgZ2lyCisKKy0tLQorIG1lc29uX29wdGlvbnMudHh0IHwgNSArKysrKworIHRlcGwvbWVz b24uYnVpbGQgIHwgNCArKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKKwor ZGlmZiAtLWdpdCBtZXNvbl9vcHRpb25zLnR4dCBtZXNvbl9vcHRpb25zLnR4dAoraW5kZXggY2Fk OTdkZC4uNWU5OTA4NCAxMDA2NDQKKy0tLSBtZXNvbl9vcHRpb25zLnR4dAorKysrIG1lc29uX29w dGlvbnMudHh0CitAQCAtMywzICszLDggQEAgb3B0aW9uKAorICAgdHlwZTogJ2Jvb2xlYW4nLCB2 YWx1ZTogZmFsc2UsCisgICBkZXNjcmlwdGlvbjogJ0J1aWxkIEFQSSByZWZlcmVuY2UgKHJlcXVp cmVzIGd0ay1kb2MpJworICkKKytvcHRpb24oCisrICAnZ2lyJywKKysgIHR5cGU6ICdib29sZWFu JywgdmFsdWU6IHRydWUsCisrICBkZXNjcmlwdGlvbjogJ0J1aWxkIGdvYmplY3QtaW50cm9zcGVj dGlvbicKKyspCitkaWZmIC0tZ2l0IHRlcGwvbWVzb24uYnVpbGQgdGVwbC9tZXNvbi5idWlsZAor aW5kZXggMjI2ZDkxMy4uYjM1ZGQzYSAxMDA2NDQKKy0tLSB0ZXBsL21lc29uLmJ1aWxkCisrKysg dGVwbC9tZXNvbi5idWlsZAorQEAgLTE2NCw2ICsxNjQsOCBAQCBQS0dfQ09ORklHLmdlbmVyYXRl KHRlcGxfbGliLAorICAgbGlicmFyaWVzOiBURVBMX1BVQkxJQ19ERVBTLAorICkKKyAKKytpZiBn ZXRfb3B0aW9uKCdnaXInKQorKworIEdOT01FLmdlbmVyYXRlX2dpcigKKyAgIHRlcGxfbGliLAor ICAgZXhwb3J0X3BhY2thZ2VzOiAndGVwbC1AMEAnLmZvcm1hdChURVBMX0FQSV9WRVJTSU9OKSwK K0BAIC0xODIsMyArMTg0LDUgQEAgR05PTUUuZ2VuZXJhdGVfZ2lyKAorICAgIyBTdXBwb3J0IGZv ciBkZXBzIGJlaW5nIGJ1aWx0IGFzIHN1YnByb2plY3RzOgorICAgZGVwZW5kZW5jaWVzOiBURVBM X0RFUFMsCisgKQorKworK2VuZGlmCistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dz L3RlcGwvdGVtcGxhdGUgYi9zcmNwa2dzL3RlcGwvdGVtcGxhdGUKaW5kZXggZjRkMzcxZDYwM2Qu Ljg5MzMzYzc3YTE5IDEwMDY0NAotLS0gYS9zcmNwa2dzL3RlcGwvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy90ZXBsL3RlbXBsYXRlCkBAIC0xLDEwICsxLDEwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICd0ZXBsJwogcGtnbmFtZT10ZXBsCi12ZXJzaW9uPTQuNC4wCit2ZXJzaW9uPTQuOTkuMwogcmV2 aXNpb249MQotYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotYnVpbGRfaGVscGVyPSJnaXIiCi1j b25maWd1cmVfYXJncz0iJCh2b3B0X2VuYWJsZSBnaXIgaW50cm9zcGVjdGlvbikiCitidWlsZF9z dHlsZT1tZXNvbgorYnVpbGRfaGVscGVyPWdpcgorY29uZmlndXJlX2FyZ3M9IiQodm9wdF9ib29s IGdpciBnaXIpIgogaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHBrZy1jb25maWciCiBtYWtl ZGVwZW5kcz0iYW10ay1kZXZlbCBsaWJnbGliLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVsIGd0 ayszLWRldmVsCiAgbGlieG1sMi1kZXZlbCB1Y2hhcmRldC1kZXZlbCIKQEAgLTEzLDcgKzEzLDcg QEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Q cm9qZWN0cy9UZXBsIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTZmNjY3M2E4 YTI3ZThmMjgwNzI1ZGI4ZmJhY2VjNzliMjA2NzZhZTA1NTg3NTUyMzlkMTVhOTgwOGZhYTI1Ngor Y2hlY2tzdW09ZTRhZmU2MzRmMDBjNTUzMGFlNTJkNzA2ZDljM2E5YmRmMmRiYzc0YjA0NTlhMzYz NzAzYTBhOWI0YTVlMzE1NwogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2Rl ZmF1bHQ9ImdpciIKCkZyb20gMjc0M2Y1MjAwODFkMTQzNWM2Y2FlZWVjMWE3ODJlMGYzMTdiMTVl MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMTUgQXVnIDIwMjAgMDA6MTU6NTAgKzAyMDAKU3ViamVj dDogW1BBVENIIDU3LzgxXSBnZWRpdDogdXBkYXRlIHRvIDMuMzcuMwoKLS0tCiBjb21tb24vc2hs aWJzICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvZ2VkaXQvdGVtcGxhdGUgfCAyMSArKysrKysr KysrLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5k ZXggMzliMDRkMmFjZGUuLmM2ZjhjMzhiMDdjIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisr KyBiL2NvbW1vbi9zaGxpYnMKQEAgLTM2ODMsNyArMzY4Myw3IEBAIGxpYnFodHRwZW5naW5lLnNv LjEgcWh0dHBlbmdpbmUtMS4wLjFfMQogbGlicW1kbnNlbmdpbmUuc28uMCBxbWRuc2VuZ2luZS0w LjEuMF8xCiBsaWJ5YW5nLnNvLjEgbGlieWFuZy0xLjByNV8xCiBsaWJodHAuc28uMiBsaWJodHAt MC41LjMwXzEKLWxpYmdlZGl0LTMuMzYuc28gZ2VkaXQtMy4zNi4xXzEKK2xpYmdlZGl0LTMuMzgu c28gZ2VkaXQtMy4zNy4zXzEKIGxpYmNoZXdpbmcuc28uMyBsaWJjaGV3aW5nLTAuNS4xXzEKIGxp YmR3YXJ2ZXMuc28uMSBwYWhvbGUtMS4xMl8xCiBsaWJkd2FydmVzX2VtaXQuc28uMSBwYWhvbGUt MS4xMl8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dlZGl0L3RlbXBsYXRlIGIvc3JjcGtncy9nZWRp dC90ZW1wbGF0ZQppbmRleCA0ZTI3M2FhZjE4Mi4uYTEzZTkxZjVmYzAgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ2VkaXQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZWRpdC90ZW1wbGF0ZQpAQCAtMSwx NCArMSwxNCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2VkaXQnCiBwa2duYW1lPWdlZGl0Ci12 ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM3LjMKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0i Z2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIHB5Y29tcGlsZV9kaXJzPSJ1c3IvbGliL2dlZGl0L3Bs dWdpbnMiCi1jb25maWd1cmVfYXJncz0iLURwbHVnaW5zPXRydWUgLUR2YXBpPSQodm9wdF9pZiB2 YWxhIHRydWUgZmFsc2UpCi0gLURpbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxz ZSkiCitjb25maWd1cmVfYXJncz0iLURwbHVnaW5zPXRydWUKKyAkKHZvcHRfYm9vbCBnaXIgdmFw aSkgJCh2b3B0X2Jvb2wgZ2lyIGludHJvc3BlY3Rpb24pIgogaG9zdG1ha2VkZXBlbmRzPSJpdHN0 b29sIHBrZy1jb25maWcgZ2xpYi1kZXZlbCBnZGstcGl4YnVmIHBlcmwgZ2V0dGV4dAotICQodm9w dF9pZiB2YWxhIHZhbGEpIgorICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ3Nl dHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbCBnc3BlbGwtZGV2ZWwgZ3Rrc291cmNldmlldzQt ZGV2ZWwKICBsaWJwZWFzLWRldmVsIGxpYnNvdXAtZGV2ZWwgdGVwbC1kZXZlbCAkKHZvcHRfaWYg Z2lyICdweXRob24zLWdvYmplY3QtZGV2ZWwnKSIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGls cyBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGlzby1jb2RlcyIKQEAgLTE3LDIzICsxNywyMiBA QCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0Fw cHMvR2VkaXQiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT02ZGMzOGVkYTIyN2Qx YzM2OGUwMzllOWJmZjQ4NWQwYmVlOWE0OWQ1Zjk1NjBjMzg3ZWUwOGY1ODE4YTRlMzg3Ci1zaGxp Yl9wcm92aWRlcz0ibGliZ2VkaXQtMy4zNi5zbyIKK2NoZWNrc3VtPTgxMzdjN2Q5NmExOTQ1MmVl MDRjOTE1Y2IyNWJhNGRhMTM0NmFmOGZlMDQ5NzQ1NjQxN2NjZmE2MjhmMTA2ZDMKK3NobGliX3By b3ZpZGVzPSJsaWJnZWRpdC0zLjM4LnNvIgogcHl0aG9uX3ZlcnNpb249MwogCi1idWlsZF9vcHRp b25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9v cHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAogZ2VkaXQtZGV2ZWxf cGFja2FnZSgpIHsKLQlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0gZ3Rrc291cmNldmlldy1kZXZlbCBsaWJwZWFzLWRldmVsIgorCWRlcGVuZHM9IiR7c291cmNl cGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBndGtzb3VyY2V2aWV3NC1kZXZlbAorCSBsaWJw ZWFzLWRldmVsIHRlcGwtZGV2ZWwiCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVz IgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGli L3BrZ2NvbmZpZwogCQlpZiBbICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUg dXNyL3NoYXJlL2dlZGl0L2dpci0xLjAKLQkJZmkKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxh IiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQogCX0KCkZyb20gZDUwOTE0 NTlmMzFiYTZiMWVlOTg0MmU3Yjc5NmJlOTg2OGYyMzI0YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwg MTUgQXVnIDIwMjAgMDA6MTg6NDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDU4LzgxXSBnZWRpdC1w bHVnaW5zOiByZWJ1aWxkIGFnYWluc3QgZ2VkaXQtMy4zNy4zCgotLS0KIHNyY3BrZ3MvZ2VkaXQt cGx1Z2lucy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg MSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0ZQppbmRleCBmMmY5NGU2M2Y1OS4uZjE2 YzMwN2UwNTkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2dlZGl0LXBsdWdpbnMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdnZWRpdC1wbHVnaW5zJwogcGtnbmFtZT1nZWRpdC1wbHVnaW5zCiB2ZXJz aW9uPTMuMzYuMgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIHB5 Y29tcGlsZV9kaXJzPSJ1c3IvbGliL2dlZGl0L3BsdWdpbnMiCiBob3N0bWFrZWRlcGVuZHM9Imdl dHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSBhcHBzdHJlYW0tZ2xpYiBw eXRob24zLWdvYmplY3QKCkZyb20gMDU2MWFiNjRjYTI0M2Y5NzNmNjhjOWJmNDFkNDkyMTUzMmQ5 NDYxOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMTUgQXVnIDIwMjAgMDA6MzM6NDkgKzAyMDAKU3Vi amVjdDogW1BBVENIIDU5LzgxXSBnbm9tZS1sYXRleDogdXBkYXRlIHRvIDMuMzcuMgoKLS0tCiBz cmNwa2dzL2dub21lLWxhdGV4L3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9t ZS1sYXRleC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUKaW5kZXggOTBk NjBiZTg2MGEuLmU0ZTJmNjI2Mjk2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWxhdGV4L3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1sYXRleCcKIHBrZ25hbWU9Z25vbWUtbGF0ZXgK LXZlcnNpb249My4zMi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcuMgorcmV2aXNpb249MQog YnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVf YXJncz0iLS1kaXNhYmxlLWFwcHN0cmVhbS11dGlsIC0tZGlzYWJsZS1kY29uZi1taWdyYXRpb24K QEAgLTE1LDcgKzE1LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93 aWtpLmdub21lLm9yZy9BcHBzL0dOT01FLUxhVGVYIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9 LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09MGYwNjljN2I0YzY3NTQyNTVhMWM3ZTNlM2IwNTA5MjVkODA3NmY1NTQ1ODUyNmEz MGFiNTllMGE3ZDUyYWNjOQorY2hlY2tzdW09YTM1MjFlMjFkNGNjNWJjNjBmZjY5NGY1MjA5ZjQ5 OWNhYTgwZjM5NWNlNWQ2MmNiNjMyZTQyNDNhZDI3YmFkMAogCiBidWlsZF9vcHRpb25zPSJnaXIi CiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gZWUyOTBiN2U5NzMxMjk4YWJhNzM5 ODczODk4MTI1NzM5YTVkMTUzNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6 MjM6MzMgKzAyMDAKU3ViamVjdDogW1BBVENIIDYwLzgxXSBiYW9iYWI6IHVwZGF0ZSB0byAzLjM3 LjkwCgotLS0KIHNyY3BrZ3MvYmFvYmFiL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv YmFvYmFiL3RlbXBsYXRlIGIvc3JjcGtncy9iYW9iYWIvdGVtcGxhdGUKaW5kZXggYTAyOGJlNGNk NWIuLjYwODNhNzhmNTRmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Jhb2JhYi90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2Jhb2JhYi90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2Jhb2JhYicKIHBrZ25hbWU9YmFvYmFiCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0z LjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJn ZXR0ZXh0IHBrZy1jb25maWcgaXRzdG9vbCBnbGliLWRldmVsIHZhbGEiCkBAIC0xMSw0ICsxMSw0 IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNl bnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHRkRMLTEuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL3dpa2kuZ25vbWUub3JnL2FjdGlvbi9zaG93L0FwcHMvRGlza1VzYWdlQW5hbHl6ZXIiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03Zjk4MWQ0ZjEzNWU0ZjgwZmJhM2Y2NmU4 NmIwZWVlZGM5NGEyNDM0NjQ5MjYyZmYwMWE1ZjBjYjAyN2IyMGM1CitjaGVja3N1bT00MWJlMzhl NDNmYWFmYjM5Mjc2OWM4NzllMWU3NjJjYTM4ZTJkNzUxYzE3MWJlYTFmOTA0NzI5MGE4ODNmZWZl CgpGcm9tIDkwODk2Y2FlNzhmMDZiODJjNWI1YWZhZWVmM2JhZjlkYzEwODc2NzIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjMxOjUzICswMjAwClN1YmplY3Q6IFtQQVRDSCA2 MS84MV0gZ25vbWUtYm94ZXM6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZ25vbWUt Ym94ZXMvdGVtcGxhdGUgfCA3ICsrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYm94ZXMvdGVtcGxhdGUKaW5kZXggMGZhMmFlNzZjNzIuLmZk OGZlYmNiY2Q4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWJveGVzL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvZ25vbWUtYm94ZXMvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdnbm9tZS1ib3hlcycKIHBrZ25hbWU9Z25vbWUtYm94ZXMKLXZlcnNpb249My4z Ni41Cit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVp bGRfc3R5bGU9bWVzb24KQEAgLTgsNyArOCw4IEBAIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBp dHN0b29sIHBrZy1jb25maWcgdmFsYSBnbGliLWRldmVsIgogbWFrZWRlcGVuZHM9ImNsdXR0ZXIt Z3RrLWRldmVsIGZyZWVyZHAtZGV2ZWwgZ3RrLXZuYy1kZXZlbCBsaWJhcmNoaXZlLWRldmVsCiAg bGliZ2xpYi1kZXZlbCBsaWJndWRldi1kZXZlbCBsaWJvc2luZm8tZGV2ZWwgbGlic2VjcmV0LWRl dmVsIGxpYnNvdXAtZGV2ZWwKICBsaWJ1c2ItZGV2ZWwgbGlidmlydC1nbGliLWRldmVsIGxpYnht bDItZGV2ZWwgc3BpY2UtZ3RrLWRldmVsIHNwaWNlLXByb3RvY29sCi0gdHJhY2tlci1kZXZlbCB2 YWxhLWRldmVsIHdlYmtpdDJndGstZGV2ZWwgdnRlMy1kZXZlbCIKKyB0cmFja2VyLWRldmVsIHZh bGEtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCB2dGUzLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVs CisgbGliaGFuZHktZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1p Y29uLXRoZW1lIGxpYm9zaW5mbyBsaWJ2aXJ0LWdsaWIgcWVtdSB0cmFja2VyIgogc2hvcnRfZGVz Yz0iR05PTUUgMyBhcHBsaWNhdGlvbiB0byBhY2Nlc3MgcmVtb3RlIG9yIHZpcnR1YWwgc3lzdGVt cyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCkBAIC0x Niw0ICsxNyw0IEBAIGxpY2Vuc2U9IkxHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Cb3hlcyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0 aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2dub21lLWJveGVzL2dub21lLTMtMzYvTkVXUyIKIGRp c3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1l fS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTRjNTRjYWJlMzU1ZTg3OGQwNDU3NTE3MzQ2 ZTQyNDdhODYwYjY4ODM0MTNkM2JmNzc2ODFkY2QxMWVmNDFiY2UKK2NoZWNrc3VtPTEyMmRhMzkx MzFhY2I5NzFiM2U3NjQwMDZjNWMzNjk4NDQ3YTVkOTIyMGFhYjMzODNkYjYzYzA5MjlkZTkxNWQK CkZyb20gZjdiM2QzMmU1MWVjNzk4OTJmYjNlNGVlNTFiMzU1Y2Y1ZWU2YjNjOSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6MzU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDYy LzgxXSBnbm9tZS1jYWxjdWxhdG9yOiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL2du b21lLWNhbGN1bGF0b3IvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNh bGN1bGF0b3IvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNhbGN1bGF0b3IvdGVtcGxhdGUKaW5k ZXggMDYyMTRiMDhkOWIuLjgxMTEyODQ0YTRlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWNh bGN1bGF0b3IvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1jYWxjdWxhdG9yL3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtY2FsY3VsYXRvcicK IHBrZ25hbWU9Z25vbWUtY2FsY3VsYXRvcgotdmVyc2lvbj0zLjM2LjAKLXJldmlzaW9uPTIKK3Zl cnNpb249My4zNy45MAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBl cj0iZ2lyIgogaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBnZXR0ZXh0IGdsaWItZGV2ZWwgaXRzdG9v bCBwa2ctY29uZmlnIHZhbGEiCkBAIC0xNCw0ICsxNCw0IEBAIGxpY2Vuc2U9IkdQTC0yLjAtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0NhbGN1bGF0b3Ii CiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9nbm9t ZS1jYWxjdWxhdG9yL2dub21lLTMtMzIvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPWEyZTgzMGY5Yzk4NTZmYWQ2NWRhZDFkNmMwYWU2YWJhZDBmMGI0OTZjOTk4NGFjMDA1 MzE1YzVjYzQyMjBkYjMKK2NoZWNrc3VtPWI4OTViNWVjNjJiOTQ5NTgxMGIwYTZjYjkwMTU4ZTZk MTYwNzA5NmQxNTBiNGFjNWNkY2Y4YWVmY2VkZWQ0YzEKCkZyb20gNjcyYzA5NjQ2ZWQ0ZDA5NzY5 Yjg4Y2U4MWExM2Q4YTVjMTAxNTAzYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAg MDQ6NDQ6NTggKzAyMDAKU3ViamVjdDogW1BBVENIIDYzLzgxXSBnbm9tZS1kaXNrLXV0aWxpdHk6 IHVwZGF0ZSB0byAzLjM3LjIKCi0tLQogc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxh dGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWRpc2stdXRpbGl0eS90ZW1wbGF0ZSBi L3NyY3BrZ3MvZ25vbWUtZGlzay11dGlsaXR5L3RlbXBsYXRlCmluZGV4IGRjNjdiYmJhNzg1Li4x OTU1NjExODUwYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1kaXNrLXV0aWxpdHknCiBwa2duYW1lPWdu b21lLWRpc2stdXRpbGl0eQotdmVyc2lvbj0zLjM2LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249My4z Ny4yCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EbG9n aW5kPW5vbmUiCiBob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgZ3RrLWRvYyBpbnRsdG9vbCBw a2ctY29uZmlnIGxpYnhzbHQiCkBAIC0xMyw1ICsxMyw1IEBAIG1haW50YWluZXI9IkVubm8gQm9s YW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9EaXNrcyIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTc5MWIxOGYyMzFiY2JjNmQ5NDFhZjM4MzdjYTViZTE0ZjIx NTdlNWNlM2QzMmJkYzViOWViODk0N2UxMmI0MTQKK2NoZWNrc3VtPTFjOTk4ZjU1NGRmZWM4YjQy M2M2ODU4NzIzNTNhNWRiY2Y2NThjOWY3YmE0NzdjYWM3NjhhOTI1NjM2NDMzMDgKIGxpYjMyZGlz YWJsZWQ9eWVzCgpGcm9tIDljOWI4MWFiNDQyZjVjYzk0NzU5Yjk2YzRmMjcyN2VmYmY3MmM1YWQg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjQ5OjI2ICswMjAwClN1YmplY3Q6 IFtQQVRDSCA2NC84MV0gZ25vbWUtc2NyZWVuc2hvdDogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQog c3JjcGtncy9nbm9tZS1zY3JlZW5zaG90L3RlbXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNo YW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNob3Qv dGVtcGxhdGUKaW5kZXggOTljYWI2MmVlZTEuLjU0MTE2YWE4MWVjIDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1zY3JlZW5z aG90L3RlbXBsYXRlCkBAIC0xLDE0ICsxLDE0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9t ZS1zY3JlZW5zaG90JwogcGtnbmFtZT1nbm9tZS1zY3JlZW5zaG90Ci12ZXJzaW9uPTMuMzYuMAot cmV2aXNpb249MgordmVyc2lvbj0zLjM3LjkwCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNv bgogaG9zdG1ha2VkZXBlbmRzPSJhcHBkYXRhLXRvb2xzIGdldHRleHQgZ2xpYi1kZXZlbCBpdHN0 b29sIHBrZy1jb25maWciCi1tYWtlZGVwZW5kcz0ibGliY2FuYmVycmEtZGV2ZWwiCittYWtlZGVw ZW5kcz0ibGliY2FuYmVycmEtZGV2ZWwgbGliaGFuZHkxLWRldmVsIgogZGVwZW5kcz0iZGVza3Rv cC1maWxlLXV0aWxzIgogc2hvcnRfZGVzYz0iU2NyZWVuc2hvdCBjYXB0dXJlIHV0aWxpdHkgZm9y IEdOT01FIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25v bWUub3JnL0dOT01FL2dub21lLXNjcmVlbnNob3QiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0v JHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT0zMzQ5NWQ4OTI3MDcxNzkyNTRiNzQzZjhmNzBjOWE4MmNkZTVjNWYyYzdlYTNkYjYz NGEyYmE3ZWE3MzMxMjY2CitjaGVja3N1bT03YTM5Y2M3ODQ3YTQ4MmZhOWFhZDk4OWNlNjVkZjBl ZjVlZTllZjc5YWNlZDc1ZDE5MzFiN2U5ZTg2YzEwZjEzCgpGcm9tIGQxNGQ0MDFjMmU1YmE3MjFk NmI3M2Y3M2U3ZWZlZWZkNmE0YTdjZmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIw IDA0OjUxOjAwICswMjAwClN1YmplY3Q6IFtQQVRDSCA2NS84MV0gZ25vbWUtc3lzdGVtLW1vbml0 b3I6IHVwZGF0ZSB0byAzLjM3LjkxCgotLS0KIHNyY3BrZ3MvZ25vbWUtc3lzdGVtLW1vbml0b3Iv dGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zeXN0ZW0tbW9uaXRvci90ZW1w bGF0ZSBiL3NyY3BrZ3MvZ25vbWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUKaW5kZXggZmYxMWIz NTkwYTQuLmNhMDE4N2M3ZWFjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXN5c3RlbS1tb25p dG9yL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUK QEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zeXN0ZW0tbW9uaXRv cicKIHBrZ25hbWU9Z25vbWUtc3lzdGVtLW1vbml0b3IKLXZlcnNpb249My4zNi4xCit2ZXJzaW9u PTMuMzcuOTEKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0i LURzeXN0ZW1kPWZhbHNlIgpAQCAtMTEsNCArMTEsNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFu ZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvU3lzdGVtTW9uaXRvciIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTg2NmI0N2FiMGY0Yzc1YjBlYzU3ZDYzMDAzMzdh NzM3MzQ2M2FhYWQ1ZGY5NWVkZGZlNTM1NGMyMmJlN2JjYTEKK2NoZWNrc3VtPTBkNzlhMThkZTVl OGNmNGJjNDk0NmNlZDVmZjc4ZmE2NWZjYzJlMmRkNjMzODJiMDhlMzE0YzZmOTRkZjFlOTUKCkZy b20gMTZjYTA1YmFhNTJkZDAyNTM1YTgyMDE1NmQ2NjE5YzdiODUyZWM3NSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6NTY6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDY2Lzgx XSBndGtzb3VyY2V2aWV3NDogdXBkYXRlIHRvIDQuNy45MAoKLS0tCiBzcmNwa2dzL2d0a3NvdXJj ZXZpZXc0L3RlbXBsYXRlIHwgMjkgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2d0a3NvdXJjZXZpZXc0L3RlbXBsYXRlIGIvc3JjcGtncy9ndGtzb3VyY2V2aWV3 NC90ZW1wbGF0ZQppbmRleCA2ODQ4NzE2NzczYy4uOTI2YTM5ZmQyMzkgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ3Rrc291cmNldmlldzQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ndGtzb3VyY2V2aWV3 NC90ZW1wbGF0ZQpAQCAtMSwzMiArMSwzNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ3Rrc291 cmNldmlldzQnCiBwa2duYW1lPWd0a3NvdXJjZXZpZXc0Ci12ZXJzaW9uPTQuMi4wCi1yZXZpc2lv bj0yCit2ZXJzaW9uPTQuNy45MAorcmV2aXNpb249MQogd3Jrc3JjPSJndGtzb3VyY2V2aWV3LSR7 dmVyc2lvbn0iCi1idWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitidWlsZF9zdHlsZT1tZXNvbgog YnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLS1lbmFibGUtZ2xhZGUtY2F0YWxv ZyAkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKQotICQodm9wdF9lbmFibGUgdmFsYSkg JCh2b3B0X2VuYWJsZSBndGtfZG9jIGd0ay1kb2MpIgorY29uZmlndXJlX2FyZ3M9Ii1EZ2xhZGVf Y2F0YWxvZz10cnVlICQodm9wdF9ib29sIGdpciBnaXIpCisgJCh2b3B0X2Jvb2wgZ2lyIHZhcGkp ICQodm9wdF9ib29sIGd0a19kb2MgZ3RrX2RvYykiCiBob3N0bWFrZWRlcGVuZHM9Imd0ayszLWRl dmVsIGdsaWItZGV2ZWwgaXRzdG9vbCBsaWJ4c2x0IHBrZy1jb25maWcKLSAkKHZvcHRfaWYgdmFs YSB2YWxhKSAkKHZvcHRfaWYgZ3RrX2RvYyBndGstZG9jKSIKKyAkKHZvcHRfaWYgZ2lyIHZhbGEp ICQodm9wdF9pZiBndGtfZG9jIGd0ay1kb2MpIgogbWFrZWRlcGVuZHM9ImdsYWRlMy1kZXZlbCBn dGsrMy1kZXZlbCBsaWJnbGliLWRldmVsIGxpYnhtbDItZGV2ZWwKLSAkKHZvcHRfaWYgdmFsYSB2 YWxhKSIKKyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogc2hvcnRfZGVzYz0iVGV4dCB3aWRnZXQgdGhh dCBleHRlbmRzIEdUSysgR3RrVGV4dFZpZXcgd2lkZ2V0IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9HdGtTb3VyY2VWaWV3Igog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2d0a3NvdXJjZXZpZXcvJHt2ZXJzaW9uJS4qfS9ndGtz b3VyY2V2aWV3LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YzQzMWViMjM0ZGM4M2M3ODE5 ZTU4Zjc3ZGQyYWY5NzMyNTJjNzc1MGRhMWM5ZDEyNWRkYzk0MjY4Zjk0ZjY3NQorY2hlY2tzdW09 OTgzYmRjYjg4Zjk4Mjg1YjNiOTk3YzkzMzUwNTdjOGZiYzQ1YWFkMGE3YzEzY2I2NWViMzY1NTY3 ZTI2YmFhZgogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwotYnVpbGRfb3B0aW9ucz0iZ2lyIHZh bGEgZ3RrX2RvYyIKK2J1aWxkX29wdGlvbnM9ImdpciBndGtfZG9jIgogZGVzY19vcHRpb25fZ3Rr X2RvYz0iQnVpbGQgQVBJIGRvY3MgdmlhIGd0ay1kb2MiCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9 ImdpciB2YWxhIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGlmIFsgLXogIiRDUk9T U19CVUlMRCIgXTsgdGhlbgogCWJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9IiBndGtfZG9jIgogZmkK IAorIyBOZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CisKIGd0a3NvdXJjZXZpZXc0LWRldmVs X3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBsaWJ4bWwy LWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9ydF9kZXNj Kz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCkBAIC0zNiwxMSArNDEsOSBAQCBndGtzb3VyY2V2aWV3 NC1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSB1c3Iv c2hhcmUvZ2xhZGUKIAkJdm1vdmUgdXNyL3NoYXJlL2d0ay1kb2MKLQkJaWYgWyAiJGJ1aWxkX29w dGlvbl92YWxhIiBdOyB0aGVuCi0JCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQotCQlmaQogCQlpZiBb ICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAK KwkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJfQogfQoKRnJvbSA0NTQ1NGYyZmJmOWY4 OGE2NGRlMDI5N2RhNjYwNGRkNTcxYmJkZGMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcg MjAyMCAwNToyODoxNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNjcvODFdIHN5c3Byb2Y6IHVwZGF0 ZSB0byAzLjM3LjkwCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgNCArLQogLi4uL3BhdGNoZXMvYWxsb2NzLWJ5LXNpemUtZ3NpemUtZm9ybWF0 LnBhdGNoIHwgIDEyIC0tCiBzcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5wYXRjaCAgICAg ICAgICAgfCAgMTAgKysKIHNyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL211c2wucGF0Y2ggICAgICAg ICAgICB8IDEyNSArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3Mvc3lzcHJvZi90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogNSBmaWxlcyBjaGFuZ2VkLCAxMzkgaW5zZXJ0 aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9zeXNw cm9mL3BhdGNoZXMvYWxsb2NzLWJ5LXNpemUtZ3NpemUtZm9ybWF0LnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvYnVpbGQucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9tdXNsLnBhdGNoCgpkaWZmIC0tZ2l0IGEv Y29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggYzZmOGMzOGIwN2MuLjI3OWFiN2Uw YTJmIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTMx NTYsOCArMzE1Niw4IEBAIGxpYm1pcmFnZS5zby4xMSBsaWJtaXJhZ2UtMy4xLjBfMQogbGlid2to dG1sdG94LnNvLjAgbGlid2todG1sdG9wZGYtMC4xMi41XzEKIGxpYml4bWwuc28uMTAgbGlidXBu cDEuOC0xLjguMl8xCiBsaWJ1cG5wLnNvLjEzIGxpYnVwbnAxLjgtMS44LjRfMQotbGlic3lzcHJv Zi0zLnNvIHN5c3Byb2YtMy4zNC4wXzEKLWxpYnN5c3Byb2YtdWktMy5zbyBzeXNwcm9mLTMuMzQu MF8xCitsaWJzeXNwcm9mLTQuc28gc3lzcHJvZi0zLjM3LjkwXzEKK2xpYnN5c3Byb2YtdWktNC5z byBzeXNwcm9mLTMuMzcuOTBfMQogbGlibW96anMtNTIuc28gbW96anM1Mi01Mi4zLjBfMQogbGli bW96anMtNTIuc28uMCBtb3pqczUyLTUyLjMuMF8xCiBsaWJ2YWxhLTAuNDguc28uMCBsaWJ2YWxh LTAuNDguMF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9hbGxvY3MtYnkt c2l6ZS1nc2l6ZS1mb3JtYXQucGF0Y2ggYi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9hbGxvY3Mt Ynktc2l6ZS1nc2l6ZS1mb3JtYXQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGFmZWUwN2ViYmMyLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9h bGxvY3MtYnktc2l6ZS1nc2l6ZS1mb3JtYXQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMiAr MCwwIEBACi1kaWZmIC1yYXVOIHNyYy90ZXN0cy9hbGxvY3MtYnktc2l6ZS5jIHNyYy90ZXN0cy9h bGxvY3MtYnktc2l6ZS5jCi0tLS0gc3JjL3Rlc3RzL2FsbG9jcy1ieS1zaXplLmMJMjAyMC0wMy0y MiAyMDowMDoxMi42NzcwNDg4MjIgKzAxMDAKLSsrKyBzcmMvdGVzdHMvYWxsb2NzLWJ5LXNpemUu YwkyMDIwLTAzLTIyIDIwOjAxOjA3LjAwMDQxODM2MSArMDEwMAotQEAgLTEwOSw3ICsxMDksNyBA QAotICAgICB7Ci0gICAgICAgY29uc3QgSXRlbSAqaXRlbSA9ICZnX2FycmF5X2luZGV4IChhciwg SXRlbSwgaSk7Ci0gCi0tICAgICAgZ19wcmludCAoIiUiR19HVUlOVDY0X0ZPUk1BVCIsJSJHX0dV SU5UNjRfRk9STUFUIiwlIkdfR1VJTlQ2NF9GT1JNQVQiXG4iLAotKyAgICAgIGdfcHJpbnQgKCIl IkdfR1NJWkVfRk9STUFUIiwlIkdfR1NJWkVfRk9STUFUIiwlIkdfR1NJWkVfRk9STUFUIlxuIiwK LSAgICAgICAgICAgICAgICBpdGVtLT5zaXplLCBpdGVtLT5jbXAsIGl0ZW0tPmNvdW50KTsKLSAg ICAgfQotIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2J1aWxkLnBhdGNo IGIvc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFiN2MyYzFjMTY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9zeXNwcm9mL3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIHNy Yy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLWNvbmRpdGlvbi5jCisrKysgc3Jj L2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtY29uZGl0aW9uLmMKK0BAIC0yNjks NiArMjY5LDcgQEAgc3lzcHJvZl9jYXB0dXJlX2NvbmRpdGlvbl9jb3B5IChjb25zdCBTeXNwcm9m Q2FwdHVyZUNvbmRpdGlvbiAqc2VsZikKKyAgICAgfQorIAorICAgc3lzcHJvZl9hc3NlcnRfbm90 X3JlYWNoZWQgKCk7CisrICByZXR1cm4gTlVMTDsKKyB9CisgCisgc3RhdGljIHZvaWQKZGlmZiAt LWdpdCBhL3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL211c2wucGF0Y2ggYi9zcmNwa2dzL3N5c3By b2YvcGF0Y2hlcy9tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi41MWY0MjEyODg5MQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvc3lzcHJvZi9wYXRj aGVzL211c2wucGF0Y2gKQEAgLTAsMCArMSwxMjUgQEAKK0Zyb20gMWQyZGUzMmU5N2JmNTU2OWNj MzNlZTlhOTBjODczZTFiYmQyYjFlNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IHE2 NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiBTdW4sIDYgU2VwIDIwMjAgMTg6MjE6Mzcg KzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZml4IGJ1aWxkIG9uIG11c2wKKworLS0tCisgLi4uL3N5 c3Byb2YtY2FwdHVyZS1jdXJzb3IuYyAgICAgICAgICAgICAgICAgIHwgIDEgKworIC4uLi9zeXNw cm9mLWNhcHR1cmUtcmVhZGVyLmMgICAgICAgICAgICAgICAgICB8ICAxICsKKyBzcmMvbGlic3lz cHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS11dGlsLmMgfCAgMSArCisgLi4uL3N5c3Byb2Yt Y2FwdHVyZS13cml0ZXItY2F0LmMgICAgICAgICAgICAgIHwgIDEgKworIHNyYy9saWJzeXNwcm9m LWNhcHR1cmUvc3lzcHJvZi1jb2xsZWN0b3IuYyAgICB8ICAxICsKKyBzcmMvbGlic3lzcHJvZi1j YXB0dXJlL3N5c3Byb2YtY29tcGF0LmggICAgICAgfCAyOCArKysrKysrKysrKysrKysrKysrCisg c3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLXBsYXRmb3JtLmMgICAgIHwgIDEgKworIDcg ZmlsZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMv bGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY29tcGF0LmgKKworZGlmZiAtLWdpdCBzcmMvbGli c3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS1jdXJzb3IuYyBzcmMvbGlic3lzcHJvZi1j YXB0dXJlL3N5c3Byb2YtY2FwdHVyZS1jdXJzb3IuYworaW5kZXggMjQ1NjNmMC4uYmI3N2E2MCAx MDA2NDQKKy0tLSBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS1jdXJzb3Iu YworKysrIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLWN1cnNvci5jCitA QCAtNTksNiArNTksNyBAQAorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8c3RkbGli Lmg+CisgCisrI2luY2x1ZGUgInN5c3Byb2YtY29tcGF0LmgiCisgI2luY2x1ZGUgInN5c3Byb2Yt Y2FwdHVyZS1jb25kaXRpb24uaCIKKyAjaW5jbHVkZSAic3lzcHJvZi1jYXB0dXJlLWN1cnNvci5o IgorICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUtcmVhZGVyLmgiCitkaWZmIC0tZ2l0IHNyYy9s aWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXJlYWRlci5jIHNyYy9saWJzeXNwcm9m LWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXJlYWRlci5jCitpbmRleCA2N2M2YjI4Li4yNTJkMDA2 IDEwMDY0NAorLS0tIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXJlYWRl ci5jCisrKysgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtcmVhZGVyLmMK K0BAIC02OCw2ICs2OCw3IEBACisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorICNpbmNsdWRlIDx1 bmlzdGQuaD4KKyAKKysjaW5jbHVkZSAic3lzcHJvZi1jb21wYXQuaCIKKyAjaW5jbHVkZSAic3lz cHJvZi1jYXB0dXJlLXJlYWRlci5oIgorICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUtdXRpbC1w cml2YXRlLmgiCisgI2luY2x1ZGUgInN5c3Byb2YtY2FwdHVyZS13cml0ZXIuaCIKK2RpZmYgLS1n aXQgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtdXRpbC5jIHNyYy9saWJz eXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXV0aWwuYworaW5kZXggMGJiZWEwNi4uMGU1 ZjdlNyAxMDA2NDQKKy0tLSBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS11 dGlsLmMKKysrKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS11dGlsLmMK K0BAIC01Niw2ICs1Niw3IEBACisgCisgI2luY2x1ZGUgImNvbmZpZy5oIgorIAorKyNpbmNsdWRl IDxzdGRpbnQuaD4KKyAjaW5jbHVkZSA8YXNzZXJ0Lmg+CisgI2luY2x1ZGUgPGVycm5vLmg+Cisg I2luY2x1ZGUgPHVuaXN0ZC5oPgorZGlmZiAtLWdpdCBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5 c3Byb2YtY2FwdHVyZS13cml0ZXItY2F0LmMgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9m LWNhcHR1cmUtd3JpdGVyLWNhdC5jCitpbmRleCA2NjE3MWI5Li45ZmViYmJiIDEwMDY0NAorLS0t IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXdyaXRlci1jYXQuYworKysr IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXdyaXRlci1jYXQuYworQEAg LTYzLDYgKzYzLDcgQEAKKyAjaW5jbHVkZSA8c3RkbGliLmg+CisgI2luY2x1ZGUgPHVuaXN0ZC5o PgorIAorKyNpbmNsdWRlICJzeXNwcm9mLWNvbXBhdC5oIgorICNpbmNsdWRlICJzeXNwcm9mLWNh cHR1cmUuaCIKKyAjaW5jbHVkZSAic3lzcHJvZi1tYWNyb3MtaW50ZXJuYWwuaCIKKyAKK2RpZmYg LS1naXQgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNvbGxlY3Rvci5jIHNyYy9saWJz eXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jb2xsZWN0b3IuYworaW5kZXggMWQ3YTBkNi4uN2FmNmM5 NiAxMDA2NDQKKy0tLSBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY29sbGVjdG9yLmMK KysrKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY29sbGVjdG9yLmMKK0BAIC03Myw2 ICs3Myw3IEBACisgCisgI2luY2x1ZGUgIm1hcHBlZC1yaW5nLWJ1ZmZlci5oIgorIAorKyNpbmNs dWRlICJzeXNwcm9mLWNvbXBhdC5oIgorICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUtdXRpbC1w cml2YXRlLmgiCisgI2luY2x1ZGUgInN5c3Byb2YtY29sbGVjdG9yLmgiCisgI2luY2x1ZGUgInN5 c3Byb2YtbWFjcm9zLWludGVybmFsLmgiCitkaWZmIC0tZ2l0IHNyYy9saWJzeXNwcm9mLWNhcHR1 cmUvc3lzcHJvZi1jb21wYXQuaCBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY29tcGF0 LmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5hZTliZjEwCistLS0gL2Rl di9udWxsCisrKysgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNvbXBhdC5oCitAQCAt MCwwICsxLDI4IEBACisrLyogYWRkZWQgYnkgcTY2IEAgdm9pZCB0byBmaXggYnVpbGQgb24gbXVz bCAqLworKworKyNwcmFnbWEgb25jZQorKworKyNpZm5kZWYgX19HTElCQ19fCisrCisrI2luY2x1 ZGUgPHN0ZGxpYi5oPgorKyNpbmNsdWRlIDxlcnJuby5oPgorKworKy8qIGZyb20gZ2xpYmMgKi8K KysjaWZuZGVmIFRFTVBfRkFJTFVSRV9SRVRSWQorKyMgZGVmaW5lIFRFTVBfRkFJTFVSRV9SRVRS WShleHByZXNzaW9uKSBcCisrICAoX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAoeyBsb25nIGlu dCBfX3Jlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKKysgICAgICAgZG8gX19yZXN1bHQgPSAobG9uZyBpbnQpIChleHByZXNzaW9uKTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgIHdoaWxlIChfX3Jlc3Vs dCA9PSAtMUwgJiYgZXJybm8gPT0gRUlOVFIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAorKyAgICAgICBfX3Jlc3VsdDsgfSkpCisrI2VuZGlmCisrCisrc3RhdGljIGlubGluZSB2b2lk ICpyZWFsbG9jYXJyYXkodm9pZCAqcCwgc2l6ZV90IG5tZW1iLCBzaXplX3Qgc3opIHsKKysgICAg aWYgKHN6ICYmIChubWVtYiA+ICgoc2l6ZV90KS0xIC8gc3opKSkgeworKyAgICAgICAgZXJybm8g PSBFTk9NRU07CisrICAgICAgICByZXR1cm4gTlVMTDsKKysgICAgfQorKyAgICByZXR1cm4gcmVh bGxvYyhwLCBubWVtYiAqIHN6KTsKKyt9CisrCisrI2VuZGlmCitkaWZmIC0tZ2l0IHNyYy9saWJz eXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1wbGF0Zm9ybS5jIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUv c3lzcHJvZi1wbGF0Zm9ybS5jCitpbmRleCBhODBhYjg5Li4wNWJkNTkwIDEwMDY0NAorLS0tIHNy Yy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1wbGF0Zm9ybS5jCisrKysgc3JjL2xpYnN5c3By b2YtY2FwdHVyZS9zeXNwcm9mLXBsYXRmb3JtLmMKK0BAIC02MCw2ICs2MCw3IEBACisgI2luY2x1 ZGUgPHN5cy9zeXNjYWxsLmg+CisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorIAorKyNpbmNsdWRlICJz eXNwcm9mLWNvbXBhdC5oIgorICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUtdXRpbC1wcml2YXRl LmgiCisgI2luY2x1ZGUgInN5c3Byb2YtcGxhdGZvcm0uaCIKKyAKKy0tIAorMi4yOC4wCisKZGlm ZiAtLWdpdCBhL3NyY3BrZ3Mvc3lzcHJvZi90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc3lzcHJvZi90ZW1w bGF0ZQppbmRleCA2OGJjYTYwMjU1My4uMTUxNjZlMjhlMWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv c3lzcHJvZi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3N5c3Byb2YvdGVtcGxhdGUKQEAgLTEsNiAr MSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdzeXNwcm9mJwogcGtnbmFtZT1zeXNwcm9mCi12 ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1t ZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EZW5hYmxlX2d0az10cnVlIC1Ec3lzdGVtZHVuaXRkaXI9 ZGVsZXRlbWUiCkBAIC0xMSw3ICsxMSw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHA6Ly9zeXNwcm9mLmNvbS8iCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT04NjcwZGI0ZGFjZjdiMjE5ZDMwYzU3NWM0NjViMTdjOGVkNjcyNGRi YWRlMzQ3ZjJjZGU5NTQ4YmZmMDM5MTA4CitjaGVja3N1bT02MTgxMGMzNmJjMGJmYjVjZTg4MDhl NmIyZmJlZmMzY2UwYzUxMGM1N2IxZDI2YmJhNjZjYzYzNmY3NWI4MDQxCiAKICMgZm9yIElUUyBy dWxlcwogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCgpGcm9tIDMxZTZhNzQyZDVhMzNhYzBl MGJhYzc2MGE0ODNhZjc5YmQ5M2NlMzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIw IDA2OjIzOjA0ICswMjAwClN1YmplY3Q6IFtQQVRDSCA2OC84MV0gTmV3IHBhY2thZ2U6IG1vempz NzgtNzguMS4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmNwa2dzL21vempzNzgtZGV2ZWwgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogLi4uLzAwMS1zaWxlbmNlLXNhbmRib3gtdmlvbGF0aW9ucy5wYXRjaCAgICAg IHwgIDI3ICsrKysrCiBzcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDItZml4LXNvbmFtZS5wYXRj aCAgfCAgMjIgKysrKwogLi4uL21vempzNzgvcGF0Y2hlcy8wMDMtZml4LXdhc20tYXJtLnBhdGNo ICAgIHwgIDE2ICsrKwogLi4uL21vempzNzgvcGF0Y2hlcy8wMDQtZml4LW11c2wtYnVpbGQucGF0 Y2ggIHwgIDE3ICsrKwogLi4uLzAwNS1zcGlkZXJtb25rZXktY2hlY2tzLWRpc2FibGUucGF0Y2gg ICAgIHwgIDEyICsrCiAuLi4vMDA2LW1vempzNzgucGMtaG9ub3Itc3lzcm9vdC5wYXRjaCAgICAg ICAgfCAgMTAgKysKIC4uLi9wYXRjaGVzLzAwNy1maXgtbWlwcy1zZ2lkZWZzX2gucGF0Y2ggICAg ICB8ICAxMSArKwogc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvY292ZXJhZ2UtYXBpLnBhdGNoICAg IHwgMTA3ICsrKysrKysrKysrKysrKysrKwogc3JjcGtncy9tb3pqczc4L3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgICAgIHwgIDczICsrKysrKysrKysrKwogc3JjcGtncy9tb3pqczc4L3VwZGF0 ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIDEyIGZpbGVzIGNoYW5nZWQsIDI5OCBp bnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9tb3pqczc4LWRldmVsCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAxLXNpbGVuY2Utc2Fu ZGJveC12aW9sYXRpb25zLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4 L3BhdGNoZXMvMDAyLWZpeC1zb25hbWUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L21vempzNzgvcGF0Y2hlcy8wMDMtZml4LXdhc20tYXJtLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA0LWZpeC1tdXNsLWJ1aWxkLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA1LXNwaWRlcm1vbmtleS1j aGVja3MtZGlzYWJsZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9w YXRjaGVzLzAwNi1tb3pqczc4LnBjLWhvbm9yLXN5c3Jvb3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDctZml4LW1pcHMtc2dpZGVmc19oLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvY292ZXJhZ2UtYXBp LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3RlbXBsYXRlCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3VwZGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1v bi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDI3OWFiN2UwYTJmLi40ZjgzYmQzNWU2OCAx MDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0zNTQxLDYg KzM1NDEsNyBAQCBsaWJLRjVTeW5kaWNhdGlvbi5zby41IHN5bmRpY2F0aW9uLTUuNTAuMF8xCiBs aWJscXItMS5zby4wIGxpYmxxci0wLjQuMl8xCiBsaWJtb3pqcy02MC5zby4wIG1vempzNjAtNjAu MC4yXzEKIGxpYm1vempzLTY4LnNvLjAgbW96anM2OC02OC44LjBfMQorbGlibW96anMtNzguc28u MCBtb3pqczc4LTc4LjEuMF8xCiBsaWJlYnVyMTI4LnNvLjEgbGliZWJ1cjEyOC0xLjIuNF8xCiBs aWJndGtzb3VyY2V2aWV3LTQuc28uMCBndGtzb3VyY2V2aWV3NC00LjAuMl8xCiBsaWJ3eF9ndGsz dV9wcm9wZ3JpZC0zLjAuc28uMCB3eFdpZGdldHMtZ3RrMy0zLjAuNF8xCmRpZmYgLS1naXQgYS9z cmNwa2dzL21vempzNzgtZGV2ZWwgYi9zcmNwa2dzL21vempzNzgtZGV2ZWwKbmV3IGZpbGUgbW9k ZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAuLjc3MTM1OTkzNTZmCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9tb3pqczc4LWRldmVsCkBAIC0wLDAgKzEgQEAKK21vempzNzgKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8w MDEtc2lsZW5jZS1zYW5kYm94LXZpb2xhdGlvbnMucGF0Y2ggYi9zcmNwa2dzL21vempzNzgvcGF0 Y2hlcy8wMDEtc2lsZW5jZS1zYW5kYm94LXZpb2xhdGlvbnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRjMDExOTRiNjQ2Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAxLXNpbGVuY2Utc2FuZGJveC12aW9sYXRpb25zLnBh dGNoCkBAIC0wLDAgKzEsMjcgQEAKKyJDYXJyaWVkIG92ZXIgKyB1cGRhdGVkIGZyb20gbW96anM2 OCIKK1Vwc3RyZWFtOiBubworRnJvbSA5YWQxMDU2OWUxMWEyZmI5NjM3NzE4OGY4OTViYzY2YWJj Yzk1MTFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWFyYy1BbnRvaW5lIFBlcmVu bm91IDxNYXJjLUFudG9pbmVAUGVyZW5ub3UuY29tPgorRGF0ZTogV2VkLCA1IFNlcCAyMDE4IDE1 OjA1OjI0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIHNpbGVuY2Ugc2FuZGJveCB2aW9sYXRpb25z CisKK1NpZ25lZC1vZmYtYnk6IE1hcmMtQW50b2luZSBQZXJlbm5vdSA8TWFyYy1BbnRvaW5lQFBl cmVubm91LmNvbT4KKy0tLQorIHB5dGhvbi9tb3pidWlsZC9tb3pidWlsZC9mcm9udGVuZC9lbWl0 dGVyLnB5IHwgNSAtLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA1IGRlbGV0aW9ucygtKQorCistLS0g YS9weXRob24vbW96YnVpbGQvbW96YnVpbGQvZnJvbnRlbmQvZW1pdHRlci5weQorKysrIGIvcHl0 aG9uL21vemJ1aWxkL21vemJ1aWxkL2Zyb250ZW5kL2VtaXR0ZXIucHkKK0BAIC0xMjM5LDEyICsx MjM5LDYgQEAgY2xhc3MgVHJlZU1ldGFkYXRhRW1pdHRlcihMb2dnaW5nTWl4aW4pOgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMgYSBmaWxlbmFt ZSwgYnV0IGEgZGlyZWN0b3J5IGlzIHJlcXVpcmVkOiAlcyAnCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcocmVzb2x2ZWQgdG8gJXMpJyAlIChsb2Nh bF9pbmNsdWRlLCBmdWxsX3BhdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb250ZXh0KQorLSAgICAgICAgICAgIGlmIChmdWxsX3BhdGggPT0g Y29udGV4dC5jb25maWcudG9wc3JjZGlyIG9yCistICAgICAgICAgICAgICAgICAgICBmdWxsX3Bh dGggPT0gY29udGV4dC5jb25maWcudG9wb2JqZGlyKToKKy0gICAgICAgICAgICAgICAgcmFpc2Ug U2FuZGJveFZhbGlkYXRpb25FcnJvcigKKy0gICAgICAgICAgICAgICAgICAgICdQYXRoIHNwZWNp ZmllZCBpbiBMT0NBTF9JTkNMVURFUyAnCistICAgICAgICAgICAgICAgICAgICAnKCVzKSByZXNv bHZlcyB0byB0aGUgdG9wc3JjZGlyIG9yIHRvcG9iamRpciAoJXMpLCB3aGljaCBpcyAnCistICAg ICAgICAgICAgICAgICAgICAnbm90IGFsbG93ZWQnICUgKGxvY2FsX2luY2x1ZGUsIGZ1bGxfcGF0 aCksIGNvbnRleHQpCisgICAgICAgICAgICAgaW5jbHVkZV9vYmogPSBMb2NhbEluY2x1ZGUoY29u dGV4dCwgbG9jYWxfaW5jbHVkZSkKKyAgICAgICAgICAgICBsb2NhbF9pbmNsdWRlcy5hcHBlbmQo aW5jbHVkZV9vYmoucGF0aC5mdWxsX3BhdGgpCisgICAgICAgICAgICAgeWllbGQgaW5jbHVkZV9v YmoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMi1maXgtc29uYW1lLnBh dGNoIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAyLWZpeC1zb25hbWUucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNjNTQzMTA5Mzk4Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAyLWZpeC1zb25hbWUucGF0Y2gKQEAg LTAsMCArMSwyMiBAQAorIkNhcnJpZWQgb3ZlciBmcm9tIG1vempzNjgiCistLS0gYS9qcy9zcmMv YnVpbGQvTWFrZWZpbGUuaW4KKysrKyBiL2pzL3NyYy9idWlsZC9NYWtlZmlsZS5pbgorQEAgLTc4 LDYgKzc4LDggQEAKKyBlbmRpZgorIGlmbmVxICgsJChTSEFSRURfTElCUkFSWSkpCisgCSQoU1lT SU5TVEFMTCkgJChTSEFSRURfTElCUkFSWSkgJChERVNURElSKSQobGliZGlyKQorKwltdiAtZiAk KERFU1RESVIpJChsaWJkaXIpLyQoU0hBUkVEX0xJQlJBUlkpICQoREVTVERJUikkKGxpYmRpcikv JChTSEFSRURfTElCUkFSWSkuMAorKwlsbiAtcyAkKFNIQVJFRF9MSUJSQVJZKS4wICQoREVTVERJ UikkKGxpYmRpcikvJChTSEFSRURfTElCUkFSWSkKKyBpZmVxICgkKE9TX0FSQ0gpLERhcndpbikK KyAJaW5zdGFsbF9uYW1lX3Rvb2wgLWlkICQoYWJzcGF0aCAkKGxpYmRpcikvJChTSEFSRURfTElC UkFSWSkpICQoREVTVERJUikkKGxpYmRpcikvJChTSEFSRURfTElCUkFSWSkKKyBlbmRpZgorLS0t IGEvanMvc3JjL2J1aWxkL21vei5idWlsZAorKysrIGIvanMvc3JjL2J1aWxkL21vei5idWlsZAor QEAgLTI1LDYgKzI1LDcgQEAKKyBpZiBDT05GSUdbJ0pTX1NIQVJFRF9MSUJSQVJZJ106CisgICAg IEdlY2tvU2hhcmVkTGlicmFyeSgnanMnLCBsaW5rYWdlPU5vbmUpCisgICAgIFNIQVJFRF9MSUJS QVJZX05BTUUgPSBDT05GSUdbJ0pTX0xJQlJBUllfTkFNRSddCisrICAgIExERkxBR1MgKz0gWyct V2wsLXNvbmFtZSxsaWJ7fS5zby4wJy5mb3JtYXQoU0hBUkVEX0xJQlJBUllfTkFNRSldCisgCisg ICAgICMgRW5zdXJlIHN5bWJvbCB2ZXJzaW9ucyBvZiBzaGFyZWQgbGlicmFyeSBvbiBMaW51eCBk byBub3QgY29uZmxpY3QKKyAgICAgIyB3aXRoIHRob3NlIGluIGxpYnh1bC4KZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMy1maXgtd2FzbS1hcm0ucGF0Y2ggYi9zcmNwa2dz L21vempzNzgvcGF0Y2hlcy8wMDMtZml4LXdhc20tYXJtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44OTFhNzY1MjA1NgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMy1maXgtd2FzbS1hcm0ucGF0Y2gKQEAgLTAsMCArMSwx NiBAQAorIlRha2VuIGZyb20gZmlyZWZveC1lc3IiCistLS0gYS9qcy9zcmMvd2FzbS9XYXNtU2ln bmFsSGFuZGxlcnMuY3BwCisrKysgYi9qcy9zcmMvd2FzbS9XYXNtU2lnbmFsSGFuZGxlcnMuY3Bw CitAQCAtMjQzLDkgKzI0Myw5IEBACisgLy8gSWYgeW91IHJ1biBpbnRvIGNvbXBpbGUgcHJvYmxl bXMgb24gYSB0aWVyLTMgcGxhdGZvcm0sIHlvdSBjYW4gZGlzYWJsZSB0aGUKKyAvLyBlbXVsYXRp b24gaGVyZS4KKyAKKy0jaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19hcm1fXykK Ky0jICBkZWZpbmUgV0FTTV9FTVVMQVRFX0FSTV9VTkFMSUdORURfRlBfQUNDRVNTCistI2VuZGlm CisrLy8gI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fYXJtX18pCisrLy8gIyAg ZGVmaW5lIFdBU01fRU1VTEFURV9BUk1fVU5BTElHTkVEX0ZQX0FDQ0VTUworKy8vICNlbmRpZgor IAorICNpZmRlZiBXQVNNX0VNVUxBVEVfQVJNX1VOQUxJR05FRF9GUF9BQ0NFU1MKKyAjICBpbmNs dWRlIDxzeXMvdXNlci5oPgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA0 LWZpeC1tdXNsLWJ1aWxkLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA0LWZpeC1t dXNsLWJ1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5m NjI5ZmEyYWMzNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAw NC1maXgtbXVzbC1idWlsZC5wYXRjaApAQCAtMCwwICsxLDE3IEBACisiQ2FycmllZCBvdmVyIGZy b20gbW96anM2MCIKK1Vwc3RyZWFtOiBObworUmVhc29uOiBtb3pqczY4IG1pc2NvbXBpbGVzIG9u IG11c2wgaWYgYnVpbHQgd2l0aCBIQVZFX1RIUkVBRF9UTFNfS0VZV09SRDoKK2h0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzLzI1OTgKK2RpZmYgLS1naXQg YS9qcy9zcmMvb2xkLWNvbmZpZ3VyZS5pbiBiL2pzL3NyYy9vbGQtY29uZmlndXJlLmluCistLS0g YS9qcy9zcmMvb2xkLWNvbmZpZ3VyZS5pbgorKysrIGIvanMvc3JjL29sZC1jb25maWd1cmUuaW4K K0BAIC0xMjcyLDYgKzEyNzIsOSBAQAorICAgICAqLWFuZHJvaWQqfCotbGludXhhbmRyb2lkKikK KyAgICAgICA6CisgICAgICAgOzsKKysgICAgKi1tdXNsKikKKysgICAgICA6CisrICAgICAgOzsK KyAgICAgKikKKyAgICAgICBBQ19ERUZJTkUoSEFWRV9USFJFQURfVExTX0tFWVdPUkQpCisgICAg ICAgOzsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNS1zcGlkZXJtb25r ZXktY2hlY2tzLWRpc2FibGUucGF0Y2ggYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDUtc3Bp ZGVybW9ua2V5LWNoZWNrcy1kaXNhYmxlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5mNmVhYmFiZDFmMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96 anM3OC9wYXRjaGVzLzAwNS1zcGlkZXJtb25rZXktY2hlY2tzLWRpc2FibGUucGF0Y2gKQEAgLTAs MCArMSwxMiBAQAorU291cmNlOkZlZG9yYQorUmVhc29uOiBDaGVja3MgZmFpbGVkKFRvZG86IEZp Z3VyZSBvdXQgd2h5KQorKysrIGEvY29uZmlnL3J1bl9zcGlkZXJtb25rZXlfY2hlY2tzLnB5Cisr KysgYi9jb25maWcvcnVuX3NwaWRlcm1vbmtleV9jaGVja3MucHkKK0BAIC0xMSw1ICsxMSw1IEBA CisgICAgIGZvciBzY3JpcHQgaW4gc2NyaXB0czoKKyAgICAgICAgIHJldGNvZGUgPSBzdWJwcm9j ZXNzLmNhbGwoCisgICAgICAgICAgICAgW3N5cy5leGVjdXRhYmxlLCBzY3JpcHRdLCBjd2Q9YnVp bGRjb25maWcudG9wc3JjZGlyKQorLSAgICAgICAgaWYgcmV0Y29kZSAhPSAwOgorLSAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbihzY3JpcHQgKyAiIGZhaWxlZCIpCisrICAgICAgICAjaWYgcmV0 Y29kZSAhPSAwOgorKyAgICAgICAgIyAgICByYWlzZSBFeGNlcHRpb24oc2NyaXB0ICsgIiBmYWls ZWQiKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA2LW1vempzNzgucGMt aG9ub3Itc3lzcm9vdC5wYXRjaCBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNi1tb3pqczc4 LnBjLWhvbm9yLXN5c3Jvb3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjcxMjE0YjhlY2NmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4L3Bh dGNoZXMvMDA2LW1vempzNzgucGMtaG9ub3Itc3lzcm9vdC5wYXRjaApAQCAtMCwwICsxLDEwIEBA CisiQ2FycmllZCBvdmVyIGZyb20gbW96anM2MCIKK1JlYXNvbjogRml4IHRoZSAnLWluY2x1ZGUn IGRpcmVjdGl2ZSwgb3RoZXJ3aXNlIGl0IHRyaWVzIHRvIHVzZSB0aGUgaG9zdCdzIGhlYWRlcgor LS0tIGEvanMvc3JjL2J1aWxkL2pzLnBjLmluCisrKysgYi9qcy9zcmMvYnVpbGQvanMucGMuaW4K K0BAIC0xMSw0ICsxMSw0IEBACisgIyBVc2UgLWlzeXN0ZW0gZm9yIGluY2x1ZGVzIHJhdGhlciB0 aGFuIC1JLCB0byBtYXJrIHRoZW0gYXMgInN5c3RlbSBoZWFkZXJzIgorICMgdGhhdCBkb24ndCBn ZW5lcmF0ZSB3YXJuaW5nIGRpYWdub3N0aWNzLiBGb3IganVzdGlmaWNhdGlvbiwgc2VlCisgIyBo dHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM5MDM2CistQ2Zs YWdzOiAtaW5jbHVkZSAke2luY2x1ZGVkaXJ9L0BKU19MSUJSQVJZX05BTUVAL2pzL1JlcXVpcmVk RGVmaW5lcy5oIC1pc3lzdGVtICR7aW5jbHVkZWRpcn0vQEpTX0xJQlJBUllfTkFNRUAKKytDZmxh Z3M6IC1pbmNsdWRlICR7cGNfc3lzcm9vdGRpcn0ke2luY2x1ZGVkaXJ9L0BKU19MSUJSQVJZX05B TUVAL2pzL1JlcXVpcmVkRGVmaW5lcy5oIC1pc3lzdGVtICR7aW5jbHVkZWRpcn0vQEpTX0xJQlJB UllfTkFNRUAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNy1maXgtbWlw cy1zZ2lkZWZzX2gucGF0Y2ggYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDctZml4LW1pcHMt c2dpZGVmc19oLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5h YmIxNDAyMzNhMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAw Ny1maXgtbWlwcy1zZ2lkZWZzX2gucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIGEvbWZidC9S YW5kb21OdW0uY3BwCTIwMjAtMDQtMjkgMjM6NDk6NDAuMDAwMDAwMDAwICswMjAwCisrKysgYi9t ZmJ0L1JhbmRvbU51bS5jcHAJMjAyMC0wOC0wNCAxOToyOTozNi4xMjc0NzEzMDEgKzAyMDAKK0BA IC01Miw3ICs1Miw3IEBACisgIyAgZWxpZiBkZWZpbmVkKF9fczM5MF9fKQorICMgICAgZGVmaW5l IEdFVFJBTkRPTV9OUiAzNDkKKyAjICBlbGlmIGRlZmluZWQoX19taXBzX18pCistIyAgICBpbmNs dWRlIDxzZ2lkZWZzLmg+CisrIyAgICBpbmNsdWRlIDxhc20vc2dpZGVmcy5oPgorICMgICAgaWYg X01JUFNfU0lNID09IF9NSVBTX1NJTV9BQkkzMgorICMgICAgICBkZWZpbmUgR0VUUkFORE9NX05S IDQzNTMKKyAjICAgIGVsaWYgX01JUFNfU0lNID09IF9NSVBTX1NJTV9BQkk2NApkaWZmIC0tZ2l0 IGEvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvY292ZXJhZ2UtYXBpLnBhdGNoIGIvc3JjcGtncy9t b3pqczc4L3BhdGNoZXMvY292ZXJhZ2UtYXBpLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi41M2U5NDc1NjFjZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv bW96anM3OC9wYXRjaGVzL2NvdmVyYWdlLWFwaS5wYXRjaApAQCAtMCwwICsxLDEwNyBAQAorRnJv bSBlNWEyZWI5OWY2NTNhZTAzYzY3ZTUzNmRmMWQ1NWQyNjVhMGExNjA1IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogRXZhbiBXZWxzaCA8Y29udGFjdEBldmFud2Vsc2guY29tPgorRGF0 ZTogTW9uLCAxMCBBdWcgMjAyMCAxMzoxNzozNiAtMDUwMAorU3ViamVjdDogW1BBVENIXSBCdWcg MTY1NDY5NiAtIEltcGxlbWVudCBjb2RlIGNvdmVyYWdlIEpTQVBJLgorIHI9bmJwLHB0b21hdG8s andhbGRlbgorCistLS0KKyBqcy9wdWJsaWMvZXhwZXJpbWVudGFsL0NvZGVDb3ZlcmFnZS5oIHwg MjUgKysrKysrKysrKysrKysrKysrKysrKysrKworIGpzL3NyYy9qc2ZyaWVuZGFwaS5jcHAgICAg ICAgICAgICAgICAgfCAgMyArKysKKyBqcy9zcmMvbW96LmJ1aWxkICAgICAgICAgICAgICAgICAg ICAgIHwgIDEgKworIGpzL3NyYy9zaGVsbC9qcy5jcHAgICAgICAgICAgICAgICAgICAgfCAxMSAr KysrKystLS0tLQorIDQgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlv bnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQganMvcHVibGljL2V4cGVyaW1lbnRhbC9Db2RlQ292 ZXJhZ2UuaAorCitkaWZmIC0tZ2l0IGEvanMvcHVibGljL2V4cGVyaW1lbnRhbC9Db2RlQ292ZXJh Z2UuaCBiL2pzL3B1YmxpYy9leHBlcmltZW50YWwvQ29kZUNvdmVyYWdlLmgKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAuLjA2Y2MwYzljYQorLS0tIC9kZXYvbnVsbAorKysr IGIvanMvcHVibGljL2V4cGVyaW1lbnRhbC9Db2RlQ292ZXJhZ2UuaAorQEAgLTAsMCArMSwyNSBA QAorKy8qIC0qLSBNb2RlOiBDKys7IHRhYi13aWR0aDogODsgaW5kZW50LXRhYnMtbW9kZTogbmls OyBjLWJhc2ljLW9mZnNldDogMiAtKi0KKysgKiB2aW06IHNldCB0cz04IHN0cz0yIGV0IHN3PTIg dHc9ODA6CisrICogVGhpcyBTb3VyY2UgQ29kZSBGb3JtIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1z IG9mIHRoZSBNb3ppbGxhIFB1YmxpYworKyAqIExpY2Vuc2UsIHYuIDIuMC4gSWYgYSBjb3B5IG9m IHRoZSBNUEwgd2FzIG5vdCBkaXN0cmlidXRlZCB3aXRoIHRoaXMKKysgKiBmaWxlLCBZb3UgY2Fu IG9idGFpbiBvbmUgYXQgaHR0cDovL21vemlsbGEub3JnL01QTC8yLjAvLiAqLworKworKyNpZm5k ZWYganNfZXhwZXJpbWVudGFsX0NvZGVDb3ZlcmFnZV9oCisrI2RlZmluZSBqc19leHBlcmltZW50 YWxfQ29kZUNvdmVyYWdlX2gKKysKKysjaW5jbHVkZSAianN0eXBlcy5oIiAgICAgLy8gSlNfRlJJ RU5EX0FQSQorKworK3N0cnVjdCBKU19QVUJMSUNfQVBJIEpTQ29udGV4dDsKKysKKytuYW1lc3Bh Y2UganMgeworKworKy8qKgorKyAqIEVuYWJsZSB0aGUgY29sbGVjdGlvbiBvZiBsY292IGNvZGUg Y292ZXJhZ2UgbWV0cmljcy4KKysgKiBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgYSBydW50aW1lIGlz IGNyZWF0ZWQgYW5kIGJlZm9yZSBhbnkgY2FsbHMgdG8KKysgKiBHZXRDb2RlQ292ZXJhZ2VTdW1t YXJ5LgorKyAqLworK2V4dGVybiBKU19GUklFTkRfQVBJIHZvaWQgRW5hYmxlQ29kZUNvdmVyYWdl KCk7CisrCisrfSAgLy8gbmFtZXNwYWNlIGpzCisrCisrI2VuZGlmICAvLyBqc19leHBlcmltZW50 YWxfQ29kZUNvdmVyYWdlX2gKK2RpZmYgLS1naXQgYS9qcy9zcmMvanNmcmllbmRhcGkuY3BwIGIv anMvc3JjL2pzZnJpZW5kYXBpLmNwcAoraW5kZXggYWY3YTAzYmQ0Li41ZjIwYzY1NzYgMTAwNjQ0 CistLS0gYS9qcy9zcmMvanNmcmllbmRhcGkuY3BwCisrKysgYi9qcy9zcmMvanNmcmllbmRhcGku Y3BwCitAQCAtMjAsNiArMjAsNyBAQAorICNpbmNsdWRlICJnYy9QdWJsaWNJdGVyYXRvcnMuaCIK KyAjaW5jbHVkZSAiZ2MvV2Vha01hcC5oIgorICNpbmNsdWRlICJqcy9DaGFyYWN0ZXJFbmNvZGlu Zy5oIgorKyNpbmNsdWRlICJqcy9leHBlcmltZW50YWwvQ29kZUNvdmVyYWdlLmgiICAvLyBqczo6 RW5hYmxlQ29kZUNvdmVyYWdlCisgI2luY2x1ZGUgImpzL1ByaW50Zi5oIgorICNpbmNsdWRlICJq cy9Qcm94eS5oIgorICNpbmNsdWRlICJqcy9XcmFwcGVyLmgiCitAQCAtMTQ2NSw2ICsxNDY2LDgg QEAgSlNfRlJJRU5EX0FQSSB2b2lkIGpzOjpFbmFibGVBY2Nlc3NWYWxpZGF0aW9uKEpTQ29udGV4 dCogY3gsIGJvb2wgZW5hYmxlZCkgeworICAgY3gtPmVuYWJsZUFjY2Vzc1ZhbGlkYXRpb24gPSBl bmFibGVkOworIH0KKyAKKytKU19GUklFTkRfQVBJIHZvaWQganM6OkVuYWJsZUNvZGVDb3ZlcmFn ZSgpIHsganM6OmNvdmVyYWdlOjpFbmFibGVMQ292KCk7IH0KKysKKyBKU19GUklFTkRfQVBJIHZv aWQganM6OlNldFJlYWxtVmFsaWRBY2Nlc3NQdHIoSlNDb250ZXh0KiBjeCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlM6OkhhbmRsZU9iamVjdCBnbG9i YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wq IGFjY2Vzc3ApIHsKK2RpZmYgLS1naXQgYS9qcy9zcmMvbW96LmJ1aWxkIGIvanMvc3JjL21vei5i dWlsZAoraW5kZXggZGViMTVkODNhLi5iNGU5ZTJiMDIgMTAwNzU1CistLS0gYS9qcy9zcmMvbW96 LmJ1aWxkCisrKysgYi9qcy9zcmMvbW96LmJ1aWxkCitAQCAtMjEwLDYgKzIxMCw3IEBAIEVYUE9S VFMuanMgKz0gWworIF0KKyAKKyBFWFBPUlRTLmpzLmV4cGVyaW1lbnRhbCArPSBbCisrICAgICcu Li9wdWJsaWMvZXhwZXJpbWVudGFsL0NvZGVDb3ZlcmFnZS5oJywKKyAgICAgJy4uL3B1YmxpYy9l eHBlcmltZW50YWwvU291cmNlSG9vay5oJywKKyBdCisgCitkaWZmIC0tZ2l0IGEvanMvc3JjL3No ZWxsL2pzLmNwcCBiL2pzL3NyYy9zaGVsbC9qcy5jcHAKK2luZGV4IDRiM2Y1NDVlNi4uMjUyZGQy NGYwIDEwMDY0NAorLS0tIGEvanMvc3JjL3NoZWxsL2pzLmNwcAorKysrIGIvanMvc3JjL3NoZWxs L2pzLmNwcAorQEAgLTEwNCwxMCArMTA0LDExIEBACisgI2luY2x1ZGUgImpzL0NvbXBpbGVPcHRp b25zLmgiCisgI2luY2x1ZGUgImpzL0NvbnRleHRPcHRpb25zLmgiICAvLyBKUzo6Q29udGV4dE9w dGlvbnN7LFJlZn0KKyAjaW5jbHVkZSAianMvRGVidWcuaCIKKy0jaW5jbHVkZSAianMvRXF1YWxp dHkuaCIgICAgICAgICAgICAgICAgIC8vIEpTOjpTYW1lVmFsdWUKKy0jaW5jbHVkZSAianMvRXJy b3JSZXBvcnQuaCIgICAgICAgICAgICAgIC8vIEpTOjpQcmludEVycm9yCistI2luY2x1ZGUgImpz L0V4Y2VwdGlvbi5oIiAgICAgICAgICAgICAgICAvLyBKUzo6U3RlYWxQZW5kaW5nRXhjZXB0aW9u U3RhY2sKKy0jaW5jbHVkZSAianMvZXhwZXJpbWVudGFsL1NvdXJjZUhvb2suaCIgIC8vIGpzOjp7 U2V0LEZvcmdldCx9U291cmNlSG9vaworKyNpbmNsdWRlICJqcy9FcXVhbGl0eS5oIiAgICAgICAg ICAgICAgICAgICAvLyBKUzo6U2FtZVZhbHVlCisrI2luY2x1ZGUgImpzL0Vycm9yUmVwb3J0Lmgi ICAgICAgICAgICAgICAgIC8vIEpTOjpQcmludEVycm9yCisrI2luY2x1ZGUgImpzL0V4Y2VwdGlv bi5oIiAgICAgICAgICAgICAgICAgIC8vIEpTOjpTdGVhbFBlbmRpbmdFeGNlcHRpb25TdGFjawor KyNpbmNsdWRlICJqcy9leHBlcmltZW50YWwvQ29kZUNvdmVyYWdlLmgiICAvLyBqczo6RW5hYmxl Q29kZUNvdmVyYWdlCisrI2luY2x1ZGUgImpzL2V4cGVyaW1lbnRhbC9Tb3VyY2VIb29rLmgiICAg IC8vIGpzOjp7U2V0LEZvcmdldCx9U291cmNlSG9vaworICNpbmNsdWRlICJqcy9HQ1ZlY3Rvci5o IgorICNpbmNsdWRlICJqcy9Jbml0aWFsaXphdGlvbi5oIgorICNpbmNsdWRlICJqcy9KU09OLmgi CitAQCAtMTE0MTYsNyArMTE0MTcsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3Ys IGNoYXIqKiBlbnZwKSB7CisgCisgICBlbmFibGVDb2RlQ292ZXJhZ2UgPSBvcC5nZXRCb29sT3B0 aW9uKCJjb2RlLWNvdmVyYWdlIik7CisgICBpZiAoZW5hYmxlQ29kZUNvdmVyYWdlKSB7CistICAg IGNvdmVyYWdlOjpFbmFibGVMQ292KCk7CisrICAgIGpzOjpFbmFibGVDb2RlQ292ZXJhZ2UoKTsK KyAgIH0KKyAKKyAjaWZkZWYgSlNfV0lUSE9VVF9OU1BSCmRpZmYgLS1naXQgYS9zcmNwa2dzL21v empzNzgvdGVtcGxhdGUgYi9zcmNwa2dzL21vempzNzgvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVhYWYwN2JkN2RjCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9tb3pqczc4L3RlbXBsYXRlCkBAIC0wLDAgKzEsNzMgQEAKKyMgVGVtcGxhdGUgZmls ZSBmb3IgJ21vempzNzgnCitwa2duYW1lPW1vempzNzgKK3ZlcnNpb249NzguMS4wCityZXZpc2lv bj0xCit3cmtzcmM9ImZpcmVmb3gtJHt2ZXJzaW9ufSIKK2J1aWxkX3dya3NyYz1qcy9zcmMKK2J1 aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2hvc3RtYWtlZGVwZW5kcz0icGVybCBweXRob24gcGtn LWNvbmZpZyBhdXRvbWFrZSBhdXRvY29uZjIxMyBhdXRvY29uZi1hcmNoaXZlCisgY2FyZ28gcnVz dCBsbHZtIGNsYW5nIHdoaWNoIHB5dGhvbjMiCittYWtlZGVwZW5kcz0iaWN1LWRldmVsIGxpYmZm aS1kZXZlbCBuc3ByLWRldmVsIHB5dGhvbi1kZXZlbCByZWFkbGluZS1kZXZlbAorIHpsaWItZGV2 ZWwgcHl0aG9uMy1kZXZlbCBydXN0LXN0ZCIKK2RlcGVuZHM9Im5zcHI+PTQuMTkiCitzaG9ydF9k ZXNjPSJNb3ppbGxhIEphdmFTY3JpcHQgaW50ZXJwcmV0ZXIgYW5kIGxpYnJhcnkgKDc4Lnggc2Vy aWVzKSIKK21haW50YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+IgorbGljZW5zZT0i TVBMLTIuMCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy5tb3ppbGxhLm9yZy9qcy8iCitkaXN0Zmls ZXM9IiR7TU9aSUxMQV9TSVRFfS9maXJlZm94L3JlbGVhc2VzLyR7dmVyc2lvbn1lc3Ivc291cmNl L2ZpcmVmb3gtJHt2ZXJzaW9ufWVzci5zb3VyY2UudGFyLnh6IgorY2hlY2tzdW09MzYwMGEzOTZk OTMxMmM1ZTlmNjM3YjI2NzkyNmNhNDc3MWQ4NGE1NmIyNmI5NjBjYzdkNzJlOTg2ODNiNjRhMgor cGF0Y2hfYXJncz0iLU5wMSIKKworQ1hYRkxBR1MrPSIgLVduby1jbGFzcy1tZW1hY2Nlc3MiCitM REZMQUdTKz0iIC1XbCwteixzdGFjay1zaXplPTEwNDg1NzYiCisKK2lmIFsgIiRYQlBTX1RBUkdF VF9OT19BVE9NSUM4IiBdOyB0aGVuCisJbWFrZWRlcGVuZHMrPSIgbGliYXRvbWljLWRldmVsIgor CUxERkxBR1MrPSIgLWxhdG9taWMiCitmaQorCitkb19jb25maWd1cmUoKSB7CisJbG9jYWwgX2Fy Z3MKKwkjIHVzZSBnY2MgYXMgYXNzZW1ibGVyIHRvIGF2b2lkIGVycm9ycworCXVuc2V0IEFTCisK KwlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJZXhwb3J0IEhPU1RfQ0M9Y2MKKwkJZXhw b3J0IFRBUkdFVF9DQz0iJHtDQ30iCisJCWV4cG9ydCBIT1NUX0NGTEFHUz0iLU9zIgorCQlleHBv cnQgSE9TVF9DWFhGTEFHUz0iLU9zIgorCQlfYXJncys9IiAtLXRhcmdldD0kWEJQU19DUk9TU19U UklQTEVUIC0tZW5hYmxlLWxpbmtlcj1iZmQiCisJZmkKKworCWF1dG9jb25mLTIuMTMgb2xkLWNv bmZpZ3VyZS5pbiA+IG9sZC1jb25maWd1cmUKKworCXRvdWNoICR7d3Jrc3JjfS9qcy9zcmMvY29u ZmlndXJlCisJdG91Y2ggJHt3cmtzcmN9L2pzL3NyYy9vbGQtY29uZmlndXJlCisJU0hFTEw9L2Jp bi9iYXNoIFBZVEhPTj0vdXNyL2Jpbi9weXRob24yIC4vY29uZmlndXJlIC0tcHJlZml4PS91c3Ig XAorCQktLWRpc2FibGUtamVtYWxsb2MgLS1kaXNhYmxlLW9wdGltaXplIC0tZW5hYmxlLWN0eXBl cyBcCisJCS0tZW5hYmxlLXJlYWRsaW5lIC0tZW5hYmxlLXNoYXJlZC1qcyAtLWVuYWJsZS1zeXN0 ZW0tZmZpIFwKKwkJLS1lbmFibGUtdGVzdHMgLS13aXRoLWludGwtYXBpIC0td2l0aC1zeXN0ZW0t aWN1IC0td2l0aC1zeXN0ZW0tbnNwciBcCisJCS0tZW5hYmxlLWhhcmRlbmluZyAtLWVuYWJsZS1y ZWxlYXNlIC0td2l0aC1zeXN0ZW0temxpYiBcCisJCS0tdGFyZ2V0PSR7WEJQU19UUklQTEVUfSAt LWhvc3Q9JHtYQlBTX1RSSVBMRVR9IFwKKwkJJHtfYXJnc30KK30KKworZG9fY2hlY2soKSB7CisJ ZGlzdC9iaW4vanNhcGktdGVzdHMgLS1mb3JtYXQ9bm9uZSAtLWV4Y2x1ZGUtcmFuZG9tIGJhc2lj Cit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwkjIFJlbW92ZSB1bm5lZWRlZCBzdGF0aWMgbGlicmFy eQorCXJtIC1mICIke0RFU1RESVJ9Ii91c3IvbGliLyouYWpzCit9CisKK21vempzNzgtZGV2ZWxf cGFja2FnZSgpIHsKKwlkZXBlbmRzPSJuc3ByLWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtn X2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9iaW4vanM3OC1jb25maWcKKwkJdm1vdmUgdXNyL2lu Y2x1ZGUKKwkJdm1vdmUgInVzci9saWIvKi5zbyIKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcK Kwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvdXBkYXRlIGIvc3JjcGtncy9tb3pq czc4L3VwZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTk0N2Ux OTIxN2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgvdXBkYXRlCkBAIC0wLDAg KzEgQEAKK3BrZ25hbWU9J21vempzJwoKRnJvbSBkN2NhNWQwZmJmNTliMzc2MTM5NDQ4ZDI5M2Ji OTgxZGZkM2UxNDk1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNjo0MjowMiAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggNjkvODFdIGdqczogdXBkYXRlIHRvIDEuNjUuOTEKCi0tLQog c3JjcGtncy9nanMvdGVtcGxhdGUgfCAxMyArKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwg OSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2pz L3RlbXBsYXRlIGIvc3JjcGtncy9nanMvdGVtcGxhdGUKaW5kZXggZWM0OGJhZGRmMTEuLmU0ZTFm YWZlZGMyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dqcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dq cy90ZW1wbGF0ZQpAQCAtMSwyNyArMSwzMiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2pzJwog cGtnbmFtZT1nanMKLXZlcnNpb249MS42NS4yCit2ZXJzaW9uPTEuNjUuOTEKIHJldmlzaW9uPTEK IGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciBxZW11IgogY29uZmlndXJlX2Fy Z3M9Ii1Ec2tpcF9kYnVzX3Rlc3RzPXRydWUgLURza2lwX2d0a190ZXN0cz10cnVlCiAgLURwcm9m aWxlcj1kaXNhYmxlZCAtRGluc3RhbGxlZF90ZXN0cz1mYWxzZSIgIyBEaXNhYmxlIHRlc3RzIGJl Y2F1c2UgdGhleSBuZWVkIGRidXMsIFggYW5kIEdUSy4KIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1k ZXZlbCBwa2ctY29uZmlnIgotbWFrZWRlcGVuZHM9ImRidXMtZ2xpYi1kZXZlbCBtb3pqczY4LWRl dmVsIHJlYWRsaW5lLWRldmVsIHN5c3Byb2YtZGV2ZWwiCittYWtlZGVwZW5kcz0iZGJ1cy1nbGli LWRldmVsIG1vempzNzgtZGV2ZWwgcmVhZGxpbmUtZGV2ZWwgc3lzcHJvZi1kZXZlbCIKIHNob3J0 X2Rlc2M9Ik1vemlsbGEtYmFzZWQgamF2YXNjcmlwdCBiaW5kaW5ncyBmb3IgdGhlIEdOT01FIHBs YXRmb3JtIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9Ik1JVCwgTEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtp Lmdub21lLm9yZy9hY3Rpb24vc2hvdy9Qcm9qZWN0cy9HanMiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8v Z2l0bGFiLmdub21lLm9yZy9HTk9NRS9nanMvYmxvYi9nbm9tZS0zLTMwL05FV1MiCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1hNjZlZGFkOGE1ZjEwMDI3ZjliMTgyZDg4YWY4NGI4 MWYxM2U1YWQ1ODQwMzE5Y2ZhNzQ3ZDY2ZTc3ZTAyMTRmCitjaGVja3N1bT02M2YzNWY2YTU3ZDAx M2Q0MmQ0ZTQ0YmE1ZWZhOGEzNjgyZDhmZWU2ZWFkNjVjZWRhODJjYTU3ZmQ2MmE2NTAzCisKKyMg QSBmZXcgdGVzdHMgbXlzdGVyaW91c2x5IGZhaWwgZm9yIG5vdworZG9fY2hlY2soKSB7CisJOgor fQogCiBwb3N0X2luc3RhbGwoKSB7CiAJdmxpY2Vuc2UgQ09QWUlORwogfQogCiBnanMtZGV2ZWxf cGFja2FnZSgpIHsKLQlkZXBlbmRzPSJsaWJnaXJlcG9zaXRvcnktZGV2ZWwgbW96anM2OC1kZXZl bCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJZGVwZW5kcz0ibGliZ2ly ZXBvc2l0b3J5LWRldmVsIG1vempzNzgtZGV2ZWwgJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7 cmV2aXNpb259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5z dGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKCkZyb20gMmNmNTNmODUyMmJjMjEwYzViMzJk OTYzZGVmZWM1YzU5ZjhkNWIyYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDU6 MjM6MzggKzAyMDAKU3ViamVjdDogW1BBVENIIDcwLzgxXSBnbm9tZS1idWlsZGVyOiB1cGRhdGUg dG8gMy4zNy45MAoKW2NpIHNraXBdCi0tLQogLi4uL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9saWJn aXQyLTEuMC4wLnBhdGNoIHwgIDIyIC0tCiBzcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9t ZXNvbjA1Mi5wYXRjaCAgfCAzMzQgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2dub21lLWJ1 aWxkZXIvdGVtcGxhdGUgICAgICAgICAgICAgICAgfCAgMTUgKy0KIDMgZmlsZXMgY2hhbmdlZCwg MTAgaW5zZXJ0aW9ucygrKSwgMzYxIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAucGF0Y2gKIGRlbGV0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9tZXNvbjA1Mi5wYXRjaAoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAu cGF0Y2ggYi9zcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9saWJnaXQyLTEuMC4wLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjliNGEyYmYxYS4uMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0xLjAuMC5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLWNvbW1pdCA0NDEzNmEyZTVjNTI2MjNiMGU2 MmMzODg0NmY1MTFmMzA3NjE1Y2UyCi1BdXRob3I6IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ Ci1EYXRlOiAgIFN1biBNYXkgMyAxOTo1MjowOSAyMDIwICswMjAwCi0KLSAgICBmaXggYnVpbGQg d2l0aCBsaWJnaXQyLTEuMC4wCi0KLWRpZmYgLS1naXQgYS9zcmMvcGx1Z2lucy9naXQvZGFlbW9u L2lwYy1naXQtcmVwb3NpdG9yeS1pbXBsLmMgYi9zcmMvcGx1Z2lucy9naXQvZGFlbW9uL2lwYy1n aXQtcmVwb3NpdG9yeS1pbXBsLmMKLWluZGV4IDdmMDEwNDIuLjJjY2M0ZGYgMTAwNjQ0Ci0tLS0g YS9zcmMvcGx1Z2lucy9naXQvZGFlbW9uL2lwYy1naXQtcmVwb3NpdG9yeS1pbXBsLmMKLSsrKyBi L3NyYy9wbHVnaW5zL2dpdC9kYWVtb24vaXBjLWdpdC1yZXBvc2l0b3J5LWltcGwuYwotQEAgLTMz LDExICszMyw3IEBACi0gI2luY2x1ZGUgImlwYy1naXQtdHlwZXMuaCIKLSAjaW5jbHVkZSAiaXBj LWdpdC11dGlsLmgiCi0gCi0tI2lmIExJQkdJVDJfU09WRVJTSU9OID49IDI4Ci0gR19ERUZJTkVf QVVUT19DTEVBTlVQX0NMRUFSX0ZVTkMgKGdpdF9idWYsIGdpdF9idWZfZGlzcG9zZSkKLS0jZWxz ZQotLUdfREVGSU5FX0FVVE9fQ0xFQU5VUF9DTEVBUl9GVU5DIChnaXRfYnVmLCBnaXRfYnVmX2Zy ZWUpCi0tI2VuZGlmCi0gCi0gdHlwZWRlZiBlbnVtCi0gewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9n bm9tZS1idWlsZGVyL3BhdGNoZXMvbWVzb24wNTIucGF0Y2ggYi9zcmNwa2dzL2dub21lLWJ1aWxk ZXIvcGF0Y2hlcy9tZXNvbjA1Mi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg NjhjMjhlODJjMWUuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRj aGVzL21lc29uMDUyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzM0ICswLDAgQEAKLUZyb20g YzhiODYyYjQ5MWNmYmJiNGY3OWIyNGQ3Y2Q5MGU0ZmIxZjM3Y2I5ZiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IERpZWdvIEVzY2FsYW50ZSBVcnJlbG8gPGRpZWdvZUBnbm9tZS5vcmc+ Ci1EYXRlOiBGcmksIDI1IE9jdCAyMDE5IDA0OjQ5OjE1IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hd IFdJUDogYnVpbGQ6IEZpeCBsaW5rX3dob2xlIHVzYWdlIGZvciBtZXNvbiAwLjUyLjAKLQotTWVz b24gMC41Mi4wIGNoYW5nZWQgaG93IGxpbmtfd2hvbGUgYmVoYXZlcyBhbmQgaW4gZG9pbmcgc28g YnJva2Ugb3VyCi11c2FnZSBvZiBsaW5rX3dob2xlIGludGVybmFsbHkuCi0KLUEgcXVpY2sgZ2xh bmNlIG92ZXIgbWVzb25idWlsZC9iYWNrZW5kL25pbmphYmFja2VuZC5weSBzZWVtcyB0byBjb25m aXJtCi1DaHJpc3RpYW4ncyBzdXNwaWNpb24gdGhhdCBsaW5rX3dpdGggaXMgd2hhdCB3ZSB3YW50 IGZvciBpbnRlcm5hbCB1c2UsCi1hbmQgbGlua193aG9sZSBmb3IgdGhlIGZpbmFsIGJpbmFyeS4K LQotWW91IGNhbiBzZWUgc29tZSBtb3JlIHJlZmVyZW5jZXMgdG8gdGhpcyBhbmQgc2ltaWxhciBp c3N1ZXMgaW4gdGhlCi1mb2xsb3dpbmcgamhidWlsZCBjb21taXQ6Ci1odHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvamhidWlsZC9jb21taXQvZGJlNjc5MDQ1ZmY1OTgyNTc3ZjIyZTdhZjhk YzhmZGZiZDFjNjMxMQotCi1GaXhlczogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2du b21lLWJ1aWxkZXIvaXNzdWVzLzEwNTcKLS0tLQotIHNyYy9saWJpZGUvY29kZS9tZXNvbi5idWls ZCAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9jb3JlL21lc29uLmJ1aWxkICAgICAgIHwgIDIg Ky0KLSBzcmMvbGliaWRlL2RlYnVnZ2VyL21lc29uLmJ1aWxkICAgfCAgMiArLQotIHNyYy9saWJp ZGUvZWRpdG9yL21lc29uLmJ1aWxkICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9mb3VuZHJ5L21l c29uLmJ1aWxkICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQgICAg fCAgMiArLQotIHNyYy9saWJpZGUvZ3VpL21lc29uLmJ1aWxkICAgICAgICB8ICAyICstCi0gc3Jj L2xpYmlkZS9pby9tZXNvbi5idWlsZCAgICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2xzcC9t ZXNvbi5idWlsZCAgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvcGx1Z2lucy9tZXNvbi5idWls ZCAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9wcm9qZWN0cy9tZXNvbi5idWlsZCAgIHwgIDIgKy0K LSBzcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZCAgICAgfCAgMiArLQotIHNyYy9saWJpZGUv c291cmNldmlldy9tZXNvbi5idWlsZCB8ICAyICstCi0gc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNv bi5idWlsZCAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5idWlsZCAgICAgfCAg MiArLQotIHNyYy9saWJpZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkICB8ICAyICstCi0gc3JjL2xp YmlkZS90cmVlL21lc29uLmJ1aWxkICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3Zjcy9tZXNv bi5idWlsZCAgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvd2Via2l0L21lc29uLmJ1aWxkICAg ICB8ICAyICstCi0gc3JjL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgIHwgMjYgKysrKysr KysrKysrKysrKysrKysrKysrKy0KLSAyMCBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCsp LCAyMCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvY29kZS9tZXNvbi5i dWlsZCBiL3NyYy9saWJpZGUvY29kZS9tZXNvbi5idWlsZAotaW5kZXggZGRhY2RjMTYyLi4xYTRm YzVkMjYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2NvZGUvbWVzb24uYnVpbGQKLSsrKyBiL3Ny Yy9saWJpZGUvY29kZS9tZXNvbi5idWlsZAotQEAgLTE3NSw3ICsxNzUsNyBAQCBsaWJpZGVfY29k ZSA9IHN0YXRpY19saWJyYXJ5KCdpZGUtY29kZS0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxp YmlkZV9jb2RlX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJj ZXM6IGxpYmlkZV9jb2RlX3ByaXZhdGVfaGVhZGVycyArIGxpYmlkZV9jb2RlX2dlbmVyYXRlZF9o ZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2NvZGVfZGVwcywKLS0gICAg ICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9jb2RlLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDog bGliaWRlX2NvZGUsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVz KCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvY29yZS9tZXNvbi5idWlsZCBi L3NyYy9saWJpZGUvY29yZS9tZXNvbi5idWlsZAotaW5kZXggMWZhODJmYWQ5Li5iYjc1Y2JmMjYg MTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2NvcmUvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJp ZGUvY29yZS9tZXNvbi5idWlsZAotQEAgLTExNyw3ICsxMTcsNyBAQCBsaWJpZGVfY29yZSA9IHN0 YXRpY19saWJyYXJ5KCdpZGUtY29yZS0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfY29y ZV9zb3VyYwotIGxpYmlkZV9jb3JlX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAg ICAgICAgIHNvdXJjZXM6IGxpYmlkZV9jb3JlX3ByaXZhdGVfaGVhZGVycyArIGxpYmlkZV9jb3Jl X2dlbmVyYXRlZF9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2NvcmVf ZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9jb3JlLAotKyAgICAgICAgICAg IGxpbmtfd2l0aDogbGliaWRlX2NvcmUsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRl X2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZGVidWdn ZXIvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2RlYnVnZ2VyL21lc29uLmJ1aWxkCi1pbmRleCBk ZmZjYTIwY2EuLmI1ZTcyZDVjMCAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvZGVidWdnZXIvbWVz b24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvZGVidWdnZXIvbWVzb24uYnVpbGQKLUBAIC04NCw3 ICs4NCw3IEBAIGxpYmlkZV9kZWJ1Z2dlciA9IHN0YXRpY19saWJyYXJ5KCdpZGUtZGVidWdnZXIt JyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVfZGVidWdnZXJfZGVwID0gZGVjbGFyZV9k ZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2RlYnVnZ2VyX3ByaXZh dGVfaGVhZGVycyArIGxpYmlkZV9kZWJ1Z2dlcl9nZW5lcmF0ZWRfaGVhZGVycywKLSAgICAgICAg ICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9kZWJ1Z2dlcl9kZXBzLAotLSAgICAgICAgICAgbGlua193 aG9sZTogbGliaWRlX2RlYnVnZ2VyLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2Rl YnVnZ2VyLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicp LAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2VkaXRvci9tZXNvbi5idWlsZCBiL3Ny Yy9saWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkCi1pbmRleCAyODM4NDI1YjcuLjgwOGVkNzg0ZiAx MDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGli aWRlL2VkaXRvci9tZXNvbi5idWlsZAotQEAgLTEwNyw3ICsxMDcsNyBAQCBsaWJpZGVfZWRpdG9y ID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1lZGl0b3ItJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGli aWRlX2VkaXRvcgotIAotIGxpYmlkZV9lZGl0b3JfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAot ICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2VkaXRvcl9kZXBzLAotLSAgICAgICAgICAg bGlua193aG9sZTogbGliaWRlX2VkaXRvciwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlk ZV9lZGl0b3IsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcu JyksCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfZWRpdG9yX2dlbmVyYXRlZF9oZWFk ZXJzLAotICkKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQgYi9z cmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQKLWluZGV4IDIyNjM5N2MxNS4uZDQ4NzhhYTEx IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9mb3VuZHJ5L21lc29uLmJ1aWxkCi0rKysgYi9zcmMv bGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQKLUBAIC0xNzgsNyArMTc4LDcgQEAgbGliaWRlX2Zv dW5kcnkgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWZvdW5kcnktJyArIGxpYmlkZV9hcGlfdmVyc2lv biwKLSAKLSBsaWJpZGVfZm91bmRyeV9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAg ICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfZm91bmRyeV9kZXBzLAotLSAgICAgICAgICAgbGlua193 aG9sZTogbGliaWRlX2ZvdW5kcnksCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfZm91 bmRyeSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwK LSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9mb3VuZHJ5X2dlbmVyYXRlZF9oZWFkZXJz LAotICkKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQgYi9zcmMv bGliaWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQKLWluZGV4IDM5NjhjYTQxZS4uMTIxZDQ5OGQwIDEw MDY0NAotLS0tIGEvc3JjL2xpYmlkZS9ncmVldGVyL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGli aWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQKLUBAIC04Myw3ICs4Myw3IEBAIGxpYmlkZV9ncmVldGVy ID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1ncmVldGVyLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0g bGliaWRlX2dyZWV0ZXJfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAg c291cmNlczogbGliaWRlX2dyZWV0ZXJfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX2dyZWV0ZXJf Z2VuZXJhdGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfZ3JlZXRl cl9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2dyZWV0ZXIsCi0rICAgICAg ICAgICAgbGlua193aXRoOiBsaWJpZGVfZ3JlZXRlciwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6 IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlk ZS9ndWkvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2d1aS9tZXNvbi5idWlsZAotaW5kZXggOWY0 NjlkMmZhLi45NDMxMTI4MmYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2d1aS9tZXNvbi5idWls ZAotKysrIGIvc3JjL2xpYmlkZS9ndWkvbWVzb24uYnVpbGQKLUBAIC0yMDQsNyArMjA0LDcgQEAg bGliaWRlX2d1aSA9IHN0YXRpY19saWJyYXJ5KCdpZGUtZ3VpLScgKyBsaWJpZGVfYXBpX3ZlcnNp b24sIGxpYmlkZV9ndWlfc291cmNlcywKLSBsaWJpZGVfZ3VpX2RlcCA9IGRlY2xhcmVfZGVwZW5k ZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9ndWlfcHJpdmF0ZV9oZWFkZXJz ICsgbGliaWRlX2d1aV9nZW5lcmF0ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6 IGxpYmlkZV9ndWlfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9ndWksCi0r ICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfZ3VpLAotICAgaW5jbHVkZV9kaXJlY3Rvcmll czogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGli aWRlL2lvL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9pby9tZXNvbi5idWlsZAotaW5kZXggYjVi NmY0YzY4Li5mNDhiM2JkOGQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2lvL21lc29uLmJ1aWxk Ci0rKysgYi9zcmMvbGliaWRlL2lvL21lc29uLmJ1aWxkCi1AQCAtNjMsNyArNjMsNyBAQCBsaWJp ZGVfaW8gPSBzdGF0aWNfbGlicmFyeSgnaWRlLWlvLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxp YmlkZV9pb19zb3VyY2VzLAotIAotIGxpYmlkZV9pb19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3ko Ci0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBbIGxpYmdpb19kZXAsIGxpYmlkZV9jb3JlX2RlcCwg bGliaWRlX3RocmVhZGluZ19kZXAgXSwKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9p bywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9pbywKLSAgIGluY2x1ZGVfZGlyZWN0 b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3Jj L2xpYmlkZS9sc3AvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2xzcC9tZXNvbi5idWlsZAotaW5k ZXggMjNhYmE3NGZhLi5jODE0MGNhMDMgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2xzcC9tZXNv bi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9sc3AvbWVzb24uYnVpbGQKLUBAIC04NCw3ICs4NCw3 IEBAIGxpYmlkZV9sc3AgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWxzcC0nICsgbGliaWRlX2FwaV92 ZXJzaW9uLCBsaWJpZGVfbHNwX3NvdXJjZXMsCi0gbGliaWRlX2xzcF9kZXAgPSBkZWNsYXJlX2Rl cGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfbHNwX3ByaXZhdGVfaGVh ZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9sc3BfZGVwcywKLS0gICAgICAg ICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9sc3AsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJp ZGVfbHNwLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicp LAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3BsdWdpbnMvbWVzb24uYnVpbGQgYi9z cmMvbGliaWRlL3BsdWdpbnMvbWVzb24uYnVpbGQKLWluZGV4IGEzM2M1MjhjOS4uZmZmNTk5ZGIz IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9wbHVnaW5zL21lc29uLmJ1aWxkCi0rKysgYi9zcmMv bGliaWRlL3BsdWdpbnMvbWVzb24uYnVpbGQKLUBAIC01MSw3ICs1MSw3IEBAIGxpYmlkZV9wbHVn aW5zID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1wbHVnaW5zLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24s Ci0gbGliaWRlX3BsdWdpbnNfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAg ICAgc291cmNlczogbGliaWRlX3BsdWdpbnNfcHJpdmF0ZV9oZWFkZXJzLAotICAgICAgICAgIGRl cGVuZGVuY2llczogbGliaWRlX3BsdWdpbnNfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6 IGxpYmlkZV9wbHVnaW5zLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3BsdWdpbnMs Ci0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQot IAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvcHJvamVjdHMvbWVzb24uYnVpbGQgYi9zcmMvbGli aWRlL3Byb2plY3RzL21lc29uLmJ1aWxkCi1pbmRleCA0NjNmZjA2YmMuLjNjYzk3MjVjNiAxMDA2 NDQKLS0tLSBhL3NyYy9saWJpZGUvcHJvamVjdHMvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJp ZGUvcHJvamVjdHMvbWVzb24uYnVpbGQKLUBAIC03OSw3ICs3OSw3IEBAIGxpYmlkZV9wcm9qZWN0 cyA9IHN0YXRpY19saWJyYXJ5KCdpZGUtcHJvamVjdHMtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwg bGliaWRlX3ByCi0gbGliaWRlX3Byb2plY3RzX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAg ICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9wcm9qZWN0c19wcml2YXRlX2hlYWRlcnMsCi0g ICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfcHJvamVjdHNfZGVwcywKLS0gICAgICAgICAg IGxpbmtfd2hvbGU6IGxpYmlkZV9wcm9qZWN0cywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxp YmlkZV9wcm9qZWN0cywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3Jp ZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9zZWFyY2gvbWVzb24uYnVp bGQgYi9zcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZAotaW5kZXggZTViM2I0M2FiLi5jZjcz YWE5MWQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZAotKysrIGIv c3JjL2xpYmlkZS9zZWFyY2gvbWVzb24uYnVpbGQKLUBAIC01MSw3ICs1MSw3IEBAIGxpYmlkZV9z ZWFyY2ggPSBzdGF0aWNfbGlicmFyeSgnaWRlLXNlYXJjaC0nICsgbGliaWRlX2FwaV92ZXJzaW9u LCBsaWJpZGVfc2VhcmNoCi0gCi0gbGliaWRlX3NlYXJjaF9kZXAgPSBkZWNsYXJlX2RlcGVuZGVu Y3koCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfc2VhcmNoX2RlcHMsCi0tICAgICAg ICAgICBsaW5rX3dob2xlOiBsaWJpZGVfc2VhcmNoLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDog bGliaWRlX3NlYXJjaCwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3Jp ZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29u LmJ1aWxkIGIvc3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkCi1pbmRleCBjNGJhMTJk MWYuLjk5NjQxMjk4YiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvc291cmNldmlldy9tZXNvbi5i dWlsZAotKysrIGIvc3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkCi1AQCAtMTU4LDcg KzE1OCw3IEBAIGxpYmlkZV9zb3VyY2V2aWV3ID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1zb3VyY2V2 aWV3LScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX3NvdXJjZXZpZXdfZGVwID0gZGVj bGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3NvdXJjZXZp ZXdfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX3NvdXJjZXZpZXdfZ2VuZXJhdGVkX2hlYWRlcnMs Ci0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfc291cmNldmlld19kZXBzLAotLSAgICAg ICAgICAgbGlua193aG9sZTogbGliaWRlX3NvdXJjZXZpZXcsCi0rICAgICAgICAgICAgbGlua193 aXRoOiBsaWJpZGVfc291cmNldmlldywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVf ZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS90ZXJtaW5h bC9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvdGVybWluYWwvbWVzb24uYnVpbGQKLWluZGV4IDFk N2M5ZjcyNy4uNmFmZmNhZTE0IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNv bi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNvbi5idWlsZAotQEAgLTkzLDcg KzkzLDcgQEAgbGliaWRlX3Rlcm1pbmFsID0gc3RhdGljX2xpYnJhcnkoJ2lkZS10ZXJtaW5hbC0n ICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlkZV90ZXJtaW5hbF9kZXAgPSBkZWNsYXJlX2Rl cGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdGVybWluYWxfZ2VuZXJh dGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfdGVybWluYWxfZGVw cywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV90ZXJtaW5hbCwKLSsgICAgICAgICAg ICBsaW5rX3dpdGg6IGxpYmlkZV90ZXJtaW5hbCwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGlu Y2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS90 aGVtZXMvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5idWlsZAotaW5kZXgg OWQ2YzhlMjQ3Li5kODgzYTRiODYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3RoZW1lcy9tZXNv bi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS90aGVtZXMvbWVzb24uYnVpbGQKLUBAIC00Niw3ICs0 Niw3IEBAIGxpYmlkZV90aGVtZXMgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRoZW1lcy0nICsgbGli aWRlX2FwaV92ZXJzaW9uLAotIGxpYmlkZV90aGVtZXNfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5 KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3RoZW1lc19yZXNvdXJjZXNbMV0sCi0g ICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfdGhlbWVzX2RlcHMsCi0tICAgICAgICAgICBs aW5rX3dob2xlOiBsaWJpZGVfdGhlbWVzLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRl X3RoZW1lcywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4n KSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS90aHJlYWRpbmcvbWVzb24uYnVpbGQg Yi9zcmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5idWlsZAotaW5kZXggZDM4ZGRmYjY0Li5kNjI4 YmUyZmYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5idWlsZAotKysr IGIvc3JjL2xpYmlkZS90aHJlYWRpbmcvbWVzb24uYnVpbGQKLUBAIC02Niw3ICs2Niw3IEBAIGxp YmlkZV90aHJlYWRpbmcgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRocmVhZGluZy0nICsgbGliaWRl X2FwaV92ZXJzaW9uLCBsaWJpZGVfCi0gbGliaWRlX3RocmVhZGluZ19kZXAgPSBkZWNsYXJlX2Rl cGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdGhyZWFkaW5nX3ByaXZh dGVfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV90aHJlYWRpbmdfZGVw cywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV90aHJlYWRpbmcsCi0rICAgICAgICAg ICAgbGlua193aXRoOiBsaWJpZGVfdGhyZWFkaW5nLAotICAgaW5jbHVkZV9kaXJlY3Rvcmllczog aW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRl L3RyZWUvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3RyZWUvbWVzb24uYnVpbGQKLWluZGV4IDdi OTkyMjgyOC4uNWE1OTExMDZjIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS90cmVlL21lc29uLmJ1 aWxkCi0rKysgYi9zcmMvbGliaWRlL3RyZWUvbWVzb24uYnVpbGQKLUBAIC02MSw3ICs2MSw3IEBA IGxpYmlkZV90cmVlID0gc3RhdGljX2xpYnJhcnkoJ2lkZS10cmVlLScgKyBsaWJpZGVfYXBpX3Zl cnNpb24sIGxpYmlkZV90cmVlX3NvdXJjCi0gbGliaWRlX3RyZWVfZGVwID0gZGVjbGFyZV9kZXBl bmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3RyZWVfcHJpdmF0ZV9oZWFk ZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3RyZWVfZGVwcywKLS0gICAgICAg ICAgIGxpbmtfd2hvbGU6IGxpYmlkZV90cmVlLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGli aWRlX3RyZWUsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcu JyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvdmNzL21lc29uLmJ1aWxkIGIvc3Jj L2xpYmlkZS92Y3MvbWVzb24uYnVpbGQKLWluZGV4IDZiMGUxNTdjNC4uYzc2MmFmYjY0IDEwMDY0 NAotLS0tIGEvc3JjL2xpYmlkZS92Y3MvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvdmNz L21lc29uLmJ1aWxkCi1AQCAtODQsNyArODQsNyBAQCBsaWJpZGVfdmNzID0gc3RhdGljX2xpYnJh cnkoJ2lkZS12Y3MtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSAKLSBsaWJpZGVfdmNzX2RlcCA9 IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV92Y3Nf ZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV92Y3MsCi0rICAgICAgICAgICAg bGlua193aXRoOiBsaWJpZGVfdmNzLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9k aXJlY3RvcmllcygnLicpLAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3Zjc19nZW5l cmF0ZWRfaGVhZGVycywKLSApCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS93ZWJraXQvbWVzb24u YnVpbGQgYi9zcmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZAotaW5kZXggZTE3NjdhZTQ2Li5m Y2U0NzdiMzYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZAotKysr IGIvc3JjL2xpYmlkZS93ZWJraXQvbWVzb24uYnVpbGQKLUBAIC0zOSw3ICszOSw3IEBAIGxpYmlk ZV93ZWJraXQgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXdlYmtpdC0nICsgbGliaWRlX2FwaV92ZXJz aW9uLCBsaWJpZGVfd2Via2l0Ci0gCi0gbGliaWRlX3dlYmtpdF9kZXAgPSBkZWNsYXJlX2RlcGVu ZGVuY3koCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfd2Via2l0X2RlcHMsCi0tICAg ICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfd2Via2l0LAotKyAgICAgICAgICAgIGxpbmtfd2l0 aDogbGliaWRlX3dlYmtpdCwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0 b3JpZXMoJy4nKSwKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV93ZWJraXRfZ2VuZXJh dGVkX2hlYWRlcnMsCi0gKQotZGlmZiAtLWdpdCBhL3NyYy9tZXNvbi5idWlsZCBiL3NyYy9tZXNv bi5idWlsZAotaW5kZXggM2ViOWJhNTM1Li4xMTNhMTQyYWQgMTAwNjQ0Ci0tLS0gYS9zcmMvbWVz b24uYnVpbGQKLSsrKyBiL3NyYy9tZXNvbi5idWlsZAotQEAgLTQ4LDYgKzQ4LDMwIEBAIGdub21l X2J1aWxkZXJfZGVwcyA9IFsKLSAgIGxpYmlkZV90cmVlX2RlcCwKLSBdCi0gCi0rZ25vbWVfYnVp bGRlcl9zdGF0aWMgPSBbCi0rICBsaWJpZGVfY29kZSwKLSsgIGxpYmlkZV9jb3JlLAotKyAgbGli aWRlX2RlYnVnZ2VyLAotKyAgbGliaWRlX2VkaXRvciwKLSsgIGxpYmlkZV9mb3VuZHJ5LAotKyAg bGliaWRlX2dyZWV0ZXIsCi0rICBsaWJpZGVfZ3VpLAotKyAgbGliaWRlX2lvLAotKyAgbGliaWRl X2xzcCwKLSsgIGxpYmlkZV9wbHVnaW5zLAotKyAgbGliaWRlX3Byb2plY3RzLAotKyAgbGliaWRl X3NlYXJjaCwKLSsgIGxpYmlkZV9zb3VyY2V2aWV3LAotKyAgbGliaWRlX3Rlcm1pbmFsLAotKyAg bGliaWRlX3RoZW1lcywKLSsgIGxpYmlkZV90aHJlYWRpbmcsCi0rICBsaWJpZGVfdHJlZSwKLSsg IGxpYmlkZV92Y3MsCi0rICBsaWJpZGVfd2Via2l0LAotKwotKyAgcGx1Z2lucywKLStdCi0rCi0g aWYgbGlic3lzcHJvZl9jYXB0dXJlLmZvdW5kKCkKLSAgIGdub21lX2J1aWxkZXJfZGVwcyArPSBs aWJzeXNwcm9mX2NhcHR1cmUKLSBlbmRpZgotQEAgLTc3LDcgKzEwMSw3IEBAIGdub21lX2J1aWxk ZXIgPSBleGVjdXRhYmxlKCdnbm9tZS1idWlsZGVyJywgJ21haW4uYycsICdidWctYnVkZHkuYycs Ci0gICAgICAgICAgICAgY19hcmdzOiBsaWJpZGVfYXJncyArIGV4ZV9jX2FyZ3MgKyByZWxlYXNl X2FyZ3MsCi0gICAgICAgICAgbGlua19hcmdzOiBleGVfbGlua19hcmdzLAotICAgICAgICAgICAg ICAgIHBpZTogdHJ1ZSwKLS0gICAgICAgIGxpbmtfd2hvbGU6IHBsdWdpbnMsCi0rICAgICAgICBs aW5rX3dob2xlOiBnbm9tZV9idWlsZGVyX3N0YXRpYywKLSAgICAgIGluc3RhbGxfcnBhdGg6IHBr Z2xpYmRpcl9hYnMsCi0gICAgICAgZGVwZW5kZW5jaWVzOiBnbm9tZV9idWlsZGVyX2RlcHMsCi0g KQotLS0gCi0yLjI0LjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBs YXRlIGIvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCmluZGV4IDhjOGMwMTVkOGEzLi4w OTY4MDI3YTY3YiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2dub21lLWJ1aWxkZXInCiBwa2duYW1lPWdub21lLWJ1aWxkZXIKLXZl cnNpb249My4zNC4xCi1yZXZpc2lvbj02Cit2ZXJzaW9uPTMuMzcuOTAKK3JldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9cWVtdQogY29uZmlndXJlX2FyZ3M9Ii1Ed2l0 aF93ZWJraXQ9dHJ1ZSAtRHdpdGhfc3lzcHJvZj10cnVlIC1EaGVscD10cnVlIgpAQCAtMTEsMTUg KzExLDE1IEBAIG1ha2VkZXBlbmRzPSJjYWlyby1kZXZlbCBjbGFuZyBkZXZoZWxwLWRldmVsIGVu Y2hhbnQyLWRldmVsIGZsYXRwYWstZGV2ZWwKICBnc3BlbGwtZGV2ZWwgZ3Rrc291cmNldmlldzQt ZGV2ZWwgZ3RrKzMtZGV2ZWwganNvbi1nbGliLWRldmVsIGpzb25ycGMtZ2xpYi1kZXZlbAogIGxp YmRhenpsZS1kZXZlbCBsaWJnaXQyLWdsaWItZGV2ZWwgbGliZ2xpYi1kZXZlbCBsaWJvc3RyZWUt ZGV2ZWwgbGlicGVhcy1kZXZlbAogIGxpYnhtbDItZGV2ZWwgdGVtcGxhdGUtZ2xpYi1kZXZlbCB2 YWxhLWRldmVsIHZ0ZTMtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbAotIHB5dGhvbjMtZ29iamVjdC1k ZXZlbCBzeXNwcm9mLWRldmVsIGdsYWRlMy1kZXZlbCIKKyBweXRob24zLWdvYmplY3QtZGV2ZWwg c3lzcHJvZi1kZXZlbCBnbGFkZTMtZGV2ZWwgbGlicG9ydGFsLWRldmVsIgogZGVwZW5kcz0iZGVz a3RvcC1maWxlLXV0aWxzIGZsYXRwYWstYnVpbGRlciBweXRob24zLWx4bWwgZGV2aGVscCBweXRo b24zLWdvYmplY3QiCiBzaG9ydF9kZXNjPSJJREUgZm9yIEdOT01FIgogbWFpbnRhaW5lcj0iRW5u byBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0J1aWxkZXIiCi1jaGFu Z2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1idWlsZGVyL3Jhdy9n bm9tZS1idWlsZGVyLTMtMzQvTkVXUyIKK2NoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUu b3JnL0dOT01FL2dub21lLWJ1aWxkZXIvcmF3L2dub21lLWJ1aWxkZXItMy0zNi9ORVdTIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MGI2ZTQ2MTA1N2VhODE1MWU4MDUyNGMwZWE3 ZWYxY2I5NDhlOTJhZmRhOWRjNmJkMzNhZTMzOTJmMDQ1MDFhNAorY2hlY2tzdW09NzgwODljZjM5 ZGRlNGVjZjFiNTEyNzMwYmRmNGM3NjkxMDQ3NjQ5NWM0ZGFiNzBjMTQwODZiYWY3YWI4ZWZjMgog cGF0Y2hfYXJncz0iLU5wMSIKIAogY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCkBAIC0y OCwzICsyOCw4IEBAIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCQlMSUJTKz0iIC1s ZXhlY2luZm8iCiAJCTs7CiBlc2FjCisKK3ByZV9jb25maWd1cmUoKSB7CisJIyB0aGlzIHRlc3Qg bmVlZHMgWAorCXZzZWQgLWkgInMvdGVzdCgndGVzdC10ZXh0LWl0ZXInLyMmLyIgc3JjL3Rlc3Rz L21lc29uLmJ1aWxkCit9CgpGcm9tIDU3NGU2YzY2Yzg0ZTI3Y2MzNTRhZWRkNjFiNmU3ZDBhNDY2 YzJmYzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDE4OjI0OjAyICswMjAwClN1 YmplY3Q6IFtQQVRDSCA3MS84MV0gYWR3YWl0YS1pY29uLXRoZW1lOiB1cGRhdGUgdG8gMy4zNy4y CgotLS0KIHNyY3BrZ3MvYWR3YWl0YS1pY29uLXRoZW1lL3RlbXBsYXRlIHwgNiArKystLS0KIDEg ZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVtcGxhdGUgYi9zcmNwa2dzL2Fkd2FpdGEt aWNvbi10aGVtZS90ZW1wbGF0ZQppbmRleCBmZWJkMjkxNWJlNi4uNmNkMmJkYmU3MGYgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvYWR3YWl0YS1pY29uLXRoZW1lL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv YWR3YWl0YS1pY29uLXRoZW1lL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnYWR3YWl0YS1pY29uLXRoZW1lJwogcGtnbmFtZT1hZHdhaXRhLWljb24tdGhlbWUK LXZlcnNpb249My4zNi4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcuMgorcmV2aXNpb249MQog YXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWciCkBAIC0xMSw0ICsxMSw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxn b3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTMuMC1vci1sYXRlciwgQ0MtQlkt U0EtMy4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9hZHdhaXRh LWljb24tdGhlbWUiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lNDk4NTE4NjI3 MDQ0ZGZkN2RiN2Q3OWE1YjNkNDM3ODQ4Y2FmMTk5MWVmNGVmMDM2YTJkM2EyYWMyYzFmMTRkCitj aGVja3N1bT1hNTk0ZTc0NDA5NzFmODYwY2M2MWIxYjgyOTFiZTE1ZmZjMWI4ZGQwNmE5ZjExNDg1 YTVhN2ZhZjE4OWJjZjZiCgpGcm9tIGZiNjE4ZWU2MmE0ZjQwY2YxM2E4MzBlYWExYTJiOGQxYTg3 NGRkMmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDE5OjU3OjQzICswMjAwClN1 YmplY3Q6IFtQQVRDSCA3Mi84MV0gZ25vbWUtYmFja2dyb3VuZHM6IHVwZGF0ZSB0byAzLjM3LjIK Ci0tLQogc3JjcGtncy9nbm9tZS1iYWNrZ3JvdW5kcy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZp bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZ25vbWUtYmFja2dyb3VuZHMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWJhY2tn cm91bmRzL3RlbXBsYXRlCmluZGV4IDBiMWVlNDI3MzUzLi5mMWY0OWRhOTM4ZSAxMDA2NDQKLS0t IGEvc3JjcGtncy9nbm9tZS1iYWNrZ3JvdW5kcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21l LWJhY2tncm91bmRzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnZ25vbWUtYmFja2dyb3VuZHMnCiBwa2duYW1lPWdub21lLWJhY2tncm91bmRzCi12ZXJzaW9u PTMuMzYuMAotcmV2aXNpb249MgordmVyc2lvbj0zLjM3LjIKK3JldmlzaW9uPTEKIGFyY2hzPW5v YXJjaAogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz1nZXR0ZXh0CkBAIC0xMCw0 ICsxMCw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4i CiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBDQy1CWS0yLjAsIENDLUJZLVNBLTIuMCwgQ0Mt QlktU0EtMy4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9t ZS1iYWNrZ3JvdW5kcyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWI4Y2I4MWU0 Y2Y5ZDA4NWZiYjIzNTQwNjM1YjQ5MmQ1YzEyNGExZjg2MTFjMmFhOWFjNjM4NDExMWQ3N2JiMGIK K2NoZWNrc3VtPTRhMmNiODZmZjk2YTY1MGViMDQxMDFjMmExYmIwYWVmYzAzYjM1ODc3ZjQyMzEz MTM3OGY0YzBmZGYwM2RiNjgKCkZyb20gODA5NzUzNzJhM2E2MzZkMTg0ZGZhYmRjN2VlNzNjMmQ4 YjcwNGNiZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MDU6MTEgKzAyMDAK U3ViamVjdDogW1BBVENIIDczLzgxXSBwb2xhcmk6IHVwZGF0ZSB0byAzLjM3LjMKCi0tLQogc3Jj cGtncy9wb2xhcmkvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wb2xhcmkvdGVtcGxh dGUgYi9zcmNwa2dzL3BvbGFyaS90ZW1wbGF0ZQppbmRleCAwNzY3YmFjOTdiOC4uNDFkMDhlZTgx YjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcG9sYXJpL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcG9s YXJpL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncG9sYXJp JwogcGtnbmFtZT1wb2xhcmkKLXZlcnNpb249My4zNi4zCit2ZXJzaW9uPTMuMzcuMwogcmV2aXNp b249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpdHN0 b29sIGdvYmplY3QtaW50cm9zcGVjdGlvbiBnZXR0ZXh0IgpAQCAtMTMsNyArMTMsNyBAQCBtYWlu dGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvUG9sYXJp IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3Br Z25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NGYyNjY0N2U5ODFjNWQwYmY0MmRm NTgyYWRhYzIwYmJmZGFjZGZlOGM0ZmUxNTBhZjBjYTAzZDJlMGNlZjUzYQorY2hlY2tzdW09Nzkw NWI5ZGRiM2Y4MTFkY2MyM2IzMDc1MDExODdlYWQ0ZGRjNzhlZDBhNjUyOWFmY2RkY2I5NDQzYmEx MjkwOAogCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF0gOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0i IGdsaWItZGV2ZWwgcHJlbGluay1jcm9zcyBxZW11LXVzZXItc3RhdGljIgoKRnJvbSBlMDg1ODY4 NzYxMWZmNWY3ZWFlMDA2ZTIyYjJhMmQxMzVmYWMwMzg4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAx NiBBdWcgMjAyMCAyMToxMDo0NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNzQvODFdIGd2ZnM6IHVw ZGF0ZSB0byAxLjQ1LjkwCgotLS0KIHNyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZSB8IDQgKystLQogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2d2ZnMvdGVtcGxhdGUgYi9zcmNwa2dzL2d2ZnMvdGVtcGxhdGUKaW5kZXggMTI3 YTA1Nzc5MDEuLjE2OTFkNTM2ZDFhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2d2ZnMvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9ndmZzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZ3ZmcycKIHBrZ25hbWU9Z3ZmcwotdmVyc2lvbj0xLjQ0LjEKK3ZlcnNpb249MS40 NS45MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRHN5 c3RlbWR1c2VydW5pdGRpcj1ubyAtRHRtcGZpbGVzZGlyPW5vIC1EbG9naW5kPWZhbHNlCkBAIC0y MCw3ICsyMCw3IEBAIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvZ3ZmcyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXRs YWIuZ25vbWUub3JnL0dOT01FL2d2ZnMvcmF3L2dub21lLTMtMzQvTkVXUyIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTUwZWYzMjQ1ZDFiMDM2NjZhNDA0NTUxMDkxNjlhMmExYmQ1 MTQxOWZkMmQ1MWY5ZmE2Y2ZkNGY4OWYwNGZiNDYKK2NoZWNrc3VtPWRlMWY1NmFjNGJjYmNlYjc3 N2FhNzJmNjdlZTVmNTc0YWY2MzYyMTgyYWIxYzgwOTdkYTY1N2UzZGRlYWRlODcKIAogIyBNYW51 YWxseSBkZWNsYXJlIHNobGlicyB1c2VkIGJ5IHRoZSBzdWJwa2dzLgogc2hsaWJfcHJvdmlkZXM9 ImxpYmd2ZnNjb21tb24uc28gbGliZ3Zmc2RhZW1vbi5zbyIKCkZyb20gOGQwMDM3OTU5ZmQwZWIz MmU5YzAyZjBhY2FmZTQzMWZhZTYxYTFjZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIw MjAgMjE6MTY6NDUgKzAyMDAKU3ViamVjdDogW1BBVENIIDc1LzgxXSBsaWJzb3VwOiB1cGRhdGUg dG8gMi43MS4wCgotLS0KIHNyY3BrZ3MvbGlic291cC90ZW1wbGF0ZSB8IDIzICsrKysrKysrKysr KystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJzb3VwL3RlbXBsYXRlIGIvc3JjcGtncy9s aWJzb3VwL3RlbXBsYXRlCmluZGV4IGY3YTk4MzczYWM4Li5mZGNlMWRiMzE2ZSAxMDA2NDQKLS0t IGEvc3JjcGtncy9saWJzb3VwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGlic291cC90ZW1wbGF0 ZQpAQCAtMSwxNiArMSwxNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGlic291cCcKIHBrZ25h bWU9bGlic291cAotdmVyc2lvbj0yLjcwLjAKK3ZlcnNpb249Mi43MS4wCiByZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLURn c3NhcGk9ZGlzYWJsZWQgLURudGxtPWRpc2FibGVkCitjb25maWd1cmVfYXJncz0iLURnc3NhcGk9 ZGlzYWJsZWQgLURudGxtPWRpc2FibGVkIC1EdGxzX2NoZWNrPWZhbHNlCiAgLURpbnRyb3NwZWN0 aW9uPSQodm9wdF9pZiBnaXIgZW5hYmxlZCBkaXNhYmxlZCkKLSAtRHZhcGk9JCh2b3B0X2lmIHZh bGEgZW5hYmxlZCBkaXNhYmxlZCkgLUR0bHNfY2hlY2s9ZmFsc2UiCisgLUR2YXBpPSQodm9wdF9p ZiBnaXIgZW5hYmxlZCBkaXNhYmxlZCkiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQtZGV2ZWwg Z2xpYi1kZXZlbCBwa2ctY29uZmlnIGdldHRleHQKLSAkKHZvcHRfaWYgdmFsYSAndmFsYScpIgor ICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0ibGliZ2xpYi1kZXZlbCBsaWJ4bWwy LWRldmVsIHNxbGl0ZS1kZXZlbCBsaWJwc2wtZGV2ZWwKLSBicm90bGktZGV2ZWwgJCh2b3B0X2lm IHZhbGEgJ3ZhbGEtZGV2ZWwnKSIKKyBicm90bGktZGV2ZWwgJCh2b3B0X2lmIGdpciB2YWxhLWRl dmVsKSIKIGRlcGVuZHM9ImdsaWItbmV0d29ya2luZyIKIHNob3J0X2Rlc2M9IkhUVFAgbGlicmFy eSBpbXBsZW1lbnRhdGlvbiBpbiBDIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKQEAgLTE4LDExICsxOCwxNiBAQCBsaWNlbnNlPSJMR1BMLTIuMS1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL2xpYnNvdXAi CiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9saWJz b3VwL2dub21lLTMtMzYvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9 LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTU0 YjAyMGY3NGFlZmE0Mzg5MThkOGU1M2NmZjYyZTJiMWU1OWVmZTJkZTUzZTA2YjE5YTRiMDdiMWY0 ZDUzNDIKK2NoZWNrc3VtPTg4ZTI0ZmFkNzJkMTZlMWNiNjkyYzg3ODI2ODhkYmVlNGJmNDQxNTFl ZmIwZDllZDI1YjE0ZjM4NDlkOTg5NmUKIAogIyBQYWNrYWdlIGJ1aWxkIG9wdGlvbnMKLWJ1aWxk X29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1 aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgorCisjIGdpbyB0 ZXN0cyBjYW4ndCBydW4gaW4gY2hyb290Citkb19jaGVjaygpIHsKKwk6Cit9CiAKIGxpYnNvdXAt ZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke21ha2VkZXBlbmRzfSBsaWJzb3VwPj0ke3Zl cnNpb259XyR7cmV2aXNpb259IgpAQCAtMzEsOCArMzYsNiBAQCBsaWJzb3VwLWRldmVsX3BhY2th Z2UoKSB7CiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnL2xpYnNvdXAtMi40LnBjCiAJCWlmIFsg IiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMC9T b3VwLTIuNC5naXIKLQkJZmkKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCiAJ CQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQogCQl2bW92ZSB1c3IvaW5jbHVkZS9saWJzb3Vw LTIuNAoKRnJvbSBlN2RjODA5MjNlNTQ5YWE1NzMzZGQ1NWIxNjczYTg3MTAzYWM5MTFiIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAyMToyMDo1OCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggNzYvODFdIHJ5Z2VsOiB1cGRhdGUgdG8gMC4zOS4yCgotLS0KIHNyY3BrZ3MvcnlnZWwvdGVt cGxhdGUgfCA4ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcnlnZWwvdGVtcGxhdGUgYi9zcmNwa2dz L3J5Z2VsL3RlbXBsYXRlCmluZGV4IGQyOGRiYzJjZTA4Li5iZGVkZDNjNmM4NyAxMDA2NDQKLS0t IGEvc3JjcGtncy9yeWdlbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3J5Z2VsL3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncnlnZWwnCiBwa2duYW1lPXJ5Z2Vs Ci12ZXJzaW9uPTAuMzguMwotcmV2aXNpb249MgordmVyc2lvbj0wLjM5LjIKK3JldmlzaW9uPTEK IGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSIt RGV4YW1wbGVzPWZhbHNlIC1EdGVzdHM9ZmFsc2UKQEAgLTksMTQgKzksMTQgQEAgY29uZmlndXJl X2FyZ3M9Ii1EZXhhbXBsZXM9ZmFsc2UgLUR0ZXN0cz1mYWxzZQogaG9zdG1ha2VkZXBlbmRzPSJw a2ctY29uZmlnIGdsaWItZGV2ZWwgdmFsYSIKIG1ha2VkZXBlbmRzPSJzcWxpdGUtZGV2ZWwgZ3Rr KzMtZGV2ZWwgbGlic291cC1kZXZlbCBsaWJnZWUwOC1kZXZlbAogIGd1cG5wLWF2LWRldmVsIGd1 cG5wLWRsbmEtZGV2ZWwgdHJhY2tlci1kZXZlbCBsaWJtZWRpYWFydC1kZXZlbAotIGdzc2RwLWRl dmVsIgorIGdzc2RwLWRldmVsIGdzdDEtZWRpdGluZy1zZXJ2aWNlcy1kZXZlbCIKIGRlcGVuZHM9 ImhpY29sb3ItaWNvbi10aGVtZSBkZXNrdG9wLWZpbGUtdXRpbHMiCiBzaG9ydF9kZXNjPSJHTk9N RSBob21lIG1lZGlhIHNvbHV0aW9uIgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lk bGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvUnlnZWwiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT0wOGMyMWE1NzdmN2JkYWQyNjQ0NmE3NWZmYTMyNzc4YjI2ODQyYzNiMTE4ODE2 NWYwYjE5ODE4NTU5NzQ3ZDAwCitjaGVja3N1bT00NTNmMWNlNzgyYTUxYmFlOGY3NzZhOTJmNzBk MjMzNjI1Yzk4YTFjNGNkMmVjM2I0NTQ1Y2I3ZTc3NzMzNjY0CiAKIGNvbmZfZmlsZXM9Ii9ldGMv cnlnZWwuY29uZiIKIAoKRnJvbSBhNjM5MDgyODY2ZTZjNzFhYWE1NGM5ZjFmODc3NzUyMmEzMGVi M2M4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAyMToyMzoyNCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggNzcvODFdIHNpbXBsZS1zY2FuOiB1cGRhdGUgdG8gMy4zNy4zCgotLS0KIHNy Y3BrZ3Mvc2ltcGxlLXNjYW4vdGVtcGxhdGUgfCA3ICsrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zaW1w bGUtc2Nhbi90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2ltcGxlLXNjYW4vdGVtcGxhdGUKaW5kZXggNGFl M2I4NjQzZmQuLjZlMTdhNmVmYjRhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3NpbXBsZS1zY2FuL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3Mvc2ltcGxlLXNjYW4vdGVtcGxhdGUKQEAgLTEsNyArMSw2IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdzaW1wbGUtc2NhbicKIHBrZ25hbWU9c2ltcGxlLXNjYW4K LV9nbm9tZV92ZXJzaW9uPTMuMzYKLXZlcnNpb249My4zNi40Cit2ZXJzaW9uPTMuMzcuMwogcmV2 aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGli LWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyB2YWxhIgpAQCAtMTEsNSArMTAsNSBAQCBzaG9ydF9k ZXNjPSJHVEsgU2ltcGxlIHNjYW5uaW5nIHV0aWxpdHkiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFu ZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvc2ltcGxlLXNjYW4iCi1kaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke19nbm9tZV92ZXJzaW9ufS8ke3BrZ25h bWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NTZhZjE4MjkxYTc3NjNmNzYzZGE1ZjBl ZGVkMjQ3ZDJmOGViZjkxMTJjMjg2ZWY4OTAxMzM3NDk2OWZlZjUyNQorZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgorY2hlY2tzdW09ZjVkODk3M2M2YjQ4M2Q1MGQ5YWMwOGFlNmMwODAyYTdhNmJiMjU4 NTM4YTgxNDcyNjZlNzNhYTQ1MWVlZDk1MgoKRnJvbSA1YmQzOTNlNjZmMTBkMjY3OGUyYjhhNjA1 MDc4MDA3MmYzYTM4ZDNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAyMToyNTox NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNzgvODFdIHllbHAteHNsOiB1cGRhdGUgdG8gMy4zNy45 MAoKLS0tCiBzcmNwa2dzL3llbHAteHNsL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv eWVscC14c2wvdGVtcGxhdGUgYi9zcmNwa2dzL3llbHAteHNsL3RlbXBsYXRlCmluZGV4IGY3NGE3 ZmJhNjdjLi4xMDc0ZTZjMzE5MCAxMDA2NDQKLS0tIGEvc3JjcGtncy95ZWxwLXhzbC90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3llbHAteHNsL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAneWVscC14c2wnCiBwa2duYW1lPXllbHAteHNsCi12ZXJzaW9uPTMuMzYu MAordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxl PWdudS1jb25maWd1cmUKQEAgLTExLDQgKzExLDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQg PGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21l cGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1llbHAvWHNsIgogZGlzdGZpbGVzPSIk e0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09NGZlNTFjMDIzM2I3OWE0YzIwNGM2ODQ5OGQ0NWYwOWIzNDJj MzBlZDAyYzRlNDE4NTA2YzBlMzVmMDkwNGVjMworY2hlY2tzdW09ZThjYTljYWY1NzI5ZjhkZTUw MzQ5ZmVmYTJmMmE2NjgwZTA0OTI5OGI3YWI4NDlkNGVmZTQ5ODNjNDNhOTRmNAoKRnJvbSAzN2Rj YzlhMGI4NGY0MTBkYjRkZjRmMTZmMGRiMDZkNzA1ODQwODM2IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3Vu LCAxNiBBdWcgMjAyMCAyMToyNTozMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNzkvODFdIHllbHA6 IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MveWVscC90ZW1wbGF0ZSB8IDQgKystLQog MSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3llbHAvdGVtcGxhdGUgYi9zcmNwa2dzL3llbHAvdGVtcGxhdGUKaW5kZXgg NjNjYTdjMjI1YzguLjVhNDdhOGUyYmRiIDEwMDY0NAotLS0gYS9zcmNwa2dzL3llbHAvdGVtcGxh dGUKKysrIGIvc3JjcGtncy95ZWxwL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAneWVscCcKIHBrZ25hbWU9eWVscAotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249 My4zNy45MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJl X2FyZ3M9Ii0tZGlzYWJsZS1zY2hlbWFzLWNvbXBpbGUgLS1kaXNhYmxlLXN0YXRpYyIKQEAgLTEz LDcgKzEzLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3Jn PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdu b21lLm9yZy9BcHBzL1llbHAiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8k e3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mZDRi M2UyM2QzMWFkMmJlYmU0MmFjOGY4MDI0MmIyZDliZWY1MTQxOGJmNjJiNTlhY2RmMjQ0MGJkOTRl ZDI0CitjaGVja3N1bT1kYWMzZDJiMTRmYmZjZWU0NzMyZDRlOGE3ZjhhMTA4YTg4ZTg1M2NhMDVm MDcxZDk4OGE1YThlMTg1ZTVhYmQyCiAKIHllbHAtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRz PSJ5ZWxwLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCgpGcm9tIGYwZWVhYTI3ZjEzNjgwMDQyNDUz NmE3YjI1ZWNjOTUwOTZiMTQyOWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIx OjI2OjQ3ICswMjAwClN1YmplY3Q6IFtQQVRDSCA4MC84MV0geWVscC10b29sczogdXBkYXRlIHRv IDMuMzcuOTAKCltjaSBza2lwXQotLS0KIHNyY3BrZ3MveWVscC10b29scy90ZW1wbGF0ZSB8IDQg KystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUgYi9zcmNwa2dzL3llbHAtdG9v bHMvdGVtcGxhdGUKaW5kZXggOWU4YTY3MGU2YjAuLmExZWM5ZjdlNmVkIDEwMDY0NAotLS0gYS9z cmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy95ZWxwLXRvb2xzL3RlbXBs YXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAneWVscC10b29scycKIHBr Z25hbWU9eWVscC10b29scwotdmVyc2lvbj0zLjMyLjIKK3ZlcnNpb249My4zNy45MAogcmV2aXNp b249MQogYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCkBAIC0xMiw0ICsx Miw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBs aWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHA6Ly93d3cuZ25vbWUub3Jn IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3Br Z25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MTgzODU2YjVlZDBiMGJiMmMwNWRk MTIwNGFmMDIzOTQ2ZWQ0MzY5NDNlMzVlNzg5YWZiMDI5NWU1ZTcxZThmOQorY2hlY2tzdW09ZDA3 MDI1ODljODIzOGEyMTU5NTRjYWNhOTRhOTY0YjNhMGQxNjQ2Njc5OGE4YzFkNjQ0ZGQ2NmMyNDky ZjJiYgoKRnJvbSA1YmFjMjU4NTQyNWUyNjg4MTJkMDY5YTgwOGQxYjMxNGU0YTlkY2VhIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogVHVlLCAxOCBBdWcgMjAyMCAwNTozNTowNiArMDIwMApTdWJqZWN0OiBbUEFU Q0ggODEvODFdIGJ1ZGdpZS1kZXNrdG9wOiByZWJ1aWxkIGZvciBtdXR0ZXItNwoKW2NpIHNraXBd Ci0tLQogLi4uL2J1ZGdpZS1kZXNrdG9wL3BhdGNoZXMvZ25vbWUtMzM4LnBhdGNoICAgIHwgMTM0 NzIgKysrKysrKysrKysrKysrKwogc3JjcGtncy9idWRnaWUtZGVza3RvcC90ZW1wbGF0ZSAgICAg ICAgICAgICAgIHwgICAgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTM0NzMgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYnVkZ2llLWRlc2t0 b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2J1ZGdpZS1k ZXNrdG9wL3BhdGNoZXMvZ25vbWUtMzM4LnBhdGNoIGIvc3JjcGtncy9idWRnaWUtZGVza3RvcC9w YXRjaGVzL2dub21lLTMzOC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uOTJmYTc2YTE3YjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2J1ZGdpZS1kZXNr dG9wL3BhdGNoZXMvZ25vbWUtMzM4LnBhdGNoCkBAIC0wLDAgKzEsMTM0NzIgQEAKK0Zyb20gMzBi YTBiNWE0OTg2ZDZiZTM2ODdhMWQ3ZmI0ODI5MDYxODVlYThjOSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IERhdmlkIE1vaGFtbWVkIDxmb3NzZnJlZWRvbUB1c2Vycy5ub3JlcGx5Lmdp dGh1Yi5jb20+CitEYXRlOiBUdWUsIDE4IEZlYiAyMDIwIDA2OjQwOjEyICswMDAwCitTdWJqZWN0 OiBbUEFUQ0hdIGdub21lIDMuMzggY29tcGF0aWJpbGl0eQorCitTcXVhc2hlZCBieSBAcTY2IGZy b206CisKK2h0dHBzOi8vZ2l0aHViLmNvbS9zb2x1cy1wcm9qZWN0L2J1ZGdpZS1kZXNrdG9wL3B1 bGwvMTk4NworCitwbHVzIGFuIGFzc29ydG1lbnQgb2Ygb2xkZXIgbXV0dGVyIHVwZGF0ZXMgZnJv bSBnaXQgbWFzdGVyCistLS0KKyBtZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDE2ICstCisgbWVzb25fb3B0aW9ucy50eHQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgMSAtCisgc3JjL2FwcGxldHMvc3RhdHVzL1N0YXR1c0FwcGxldC52YWxh ICAgICAgICAgIHwgICAgNiAtCisgc3JjL2FwcGxldHMvc3RhdHVzL21lc29uLmJ1aWxkICAgICAg ICAgICAgICAgIHwgICAxMyArLQorIHNyYy93bS9iYWNrZ3JvdW5kLnZhbGEgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMTUgKy0KKyBzcmMvd20vbWVzb24uYnVpbGQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDMwICstCisgc3JjL3dtL3NoaW0udmFsYSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAxMCArLQorIHNyYy93bS93bS52YWxhICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMTAgKy0KKyAuLi57Q2x1dHRlci01Lm1ldGFkYXRhID0+IENsdXR0 ZXItNi5tZXRhZGF0YX0gfCAgICAwCisgLi4ue0NsdXR0ZXItNC5tZXRhZGF0YSA9PiBDbHV0dGVy LTcubWV0YWRhdGF9IHwgICA0MyAtCisgdmFwaS97Q29nbC00Lm1ldGFkYXRhID0+IENvZ2wtNi5t ZXRhZGF0YX0gICAgIHwgICAgMAorIHZhcGkve0NvZ2wtNS5tZXRhZGF0YSA9PiBDb2dsLTcubWV0 YWRhdGF9ICAgICB8ICAgIDIgLQorIHZhcGkvTWV0YS0zLm1ldGFkYXRhICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgNjYgLQorIHZhcGkve01ldGEtNS5tZXRhZGF0YSA9PiBNZXRhLTYubWV0 YWRhdGF9ICAgICB8ICAgIDAKKyB2YXBpL3tNZXRhLTQubWV0YWRhdGEgPT4gTWV0YS03Lm1ldGFk YXRhfSAgICAgfCAgIDI1ICstCisgdmFwaS9nZW5lcmF0ZS1tdXR0ZXItdmFwaS5zaCAgICAgICAg ICAgICAgICAgIHwgICAgMiArLQorIHZhcGkvZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaSAgICAg ICAgICAgICAgICB8ICA2OTEgKysrKysrKworIHZhcGkvbGlibXV0dGVyLTIuZGVwcyAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgIDkgLQorIHZhcGkvbGlibXV0dGVyLTIudmFwaSAgICAgICAg ICAgICAgICAgICAgICAgICB8IDEzMjUgLS0tLS0tLS0tLS0tLS0KKyB2YXBpL2xpYm11dHRlci0z LWN1c3RvbS52YWxhICAgICAgICAgICAgICAgICAgfCAgICA2IC0KKyB2YXBpL2xpYm11dHRlci0z LmRlcHMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5IC0KKyB2YXBpL2xpYm11dHRlci00 LmRlcHMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA4IC0KKyB2YXBpL2xpYm11dHRlci00 LnZhcGkgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNDI1IC0tLS0tLS0tLS0tLS0tLQorIHZh cGkve2xpYm11dHRlci01LmRlcHMgPT4gbGlibXV0dGVyLTYuZGVwc30gICB8ICAgIDMgKy0KKyB2 YXBpL3tsaWJtdXR0ZXItNS52YXBpID0+IGxpYm11dHRlci02LnZhcGl9ICAgfCAgIDQ1ICstCisg dmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFsYSAgICAgICAgICAgICAgICAgIHwgICAgNyArCisg dmFwaS9saWJtdXR0ZXItNy5kZXBzICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArCisg dmFwaS97bGlibXV0dGVyLTMudmFwaSA9PiBsaWJtdXR0ZXItNy52YXBpfSAgIHwgIDM5MCArKy0t CisgdmFwaS9saWJtdXR0ZXItY29nbC00LnZhcGkgICAgICAgICAgICAgICAgICAgIHwgMTI3MiAt LS0tLS0tLS0tLS0tCisgdmFwaS9tdXR0ZXItY2x1dHRlci01LWN1c3RvbS52YWxhICAgICAgICAg ICAgIHwgIDE1OCAtLQorIC4uLnN0b20udmFsYSA9PiBtdXR0ZXItY2x1dHRlci02LWN1c3RvbS52 YWxhfSB8ICAgMTEgLQorIC4uLnItY2x1dHRlci01LmRlcHMgPT4gbXV0dGVyLWNsdXR0ZXItNi5k ZXBzfSB8ICAgIDIgKy0KKyAuLi5yLWNsdXR0ZXItNS52YXBpID0+IG11dHRlci1jbHV0dGVyLTYu dmFwaX0gfCAgODA2ICsrLS0tLS0tCisgLi4uci1jbHV0dGVyLTQuZGVwcyA9PiBtdXR0ZXItY2x1 dHRlci03LmRlcHN9IHwgICAgMyArLQorIC4uLnItY2x1dHRlci00LnZhcGkgPT4gbXV0dGVyLWNs dXR0ZXItNy52YXBpfSB8IDE2MTUgKysrKy0tLS0tLS0tLS0tLS0KKyAuLi4tY3VzdG9tLnZhbGEg PT4gbXV0dGVyLWNvZ2wtNi1jdXN0b20udmFsYX0gfCAgICAwCisgLi4ue211dHRlci1jb2dsLTQu ZGVwcyA9PiBtdXR0ZXItY29nbC02LmRlcHN9IHwgICAgMAorIC4uLnttdXR0ZXItY29nbC01LnZh cGkgPT4gbXV0dGVyLWNvZ2wtNi52YXBpfSB8ICA0MjIgKy0tLS0KKyAuLi4tY3VzdG9tLnZhbGEg PT4gbXV0dGVyLWNvZ2wtNy1jdXN0b20udmFsYX0gfCAgIDIwICstCisgLi4ue211dHRlci1jb2ds LTUuZGVwcyA9PiBtdXR0ZXItY29nbC03LmRlcHN9IHwgICAgMAorIC4uLnttdXR0ZXItY29nbC00 LnZhcGkgPT4gbXV0dGVyLWNvZ2wtNy52YXBpfSB8ICA2NzEgKysrLS0tLQorIHZhcGkvcG9sa2l0 LWdvYmplY3QtMS52YXBpICAgICAgICAgICAgICAgICAgICB8ICAgMzEgKy0KKyA0MiBmaWxlcyBj aGFuZ2VkLCAxOTIwIGluc2VydGlvbnMoKyksIDcyNTQgZGVsZXRpb25zKC0pCisgcmVuYW1lIHZh cGkve0NsdXR0ZXItNS5tZXRhZGF0YSA9PiBDbHV0dGVyLTYubWV0YWRhdGF9ICgxMDAlKQorIHJl bmFtZSB2YXBpL3tDbHV0dGVyLTQubWV0YWRhdGEgPT4gQ2x1dHRlci03Lm1ldGFkYXRhfSAoNzgl KQorIHJlbmFtZSB2YXBpL3tDb2dsLTQubWV0YWRhdGEgPT4gQ29nbC02Lm1ldGFkYXRhfSAoMTAw JSkKKyByZW5hbWUgdmFwaS97Q29nbC01Lm1ldGFkYXRhID0+IENvZ2wtNy5tZXRhZGF0YX0gKDkx JSkKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9NZXRhLTMubWV0YWRhdGEKKyByZW5hbWUgdmFw aS97TWV0YS01Lm1ldGFkYXRhID0+IE1ldGEtNi5tZXRhZGF0YX0gKDEwMCUpCisgcmVuYW1lIHZh cGkve01ldGEtNC5tZXRhZGF0YSA9PiBNZXRhLTcubWV0YWRhdGF9ICg3NiUpCisgY3JlYXRlIG1v ZGUgMTAwNjQ0IHZhcGkvZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaQorIGRlbGV0ZSBtb2RlIDEw MDY0NCB2YXBpL2xpYm11dHRlci0yLmRlcHMKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJt dXR0ZXItMi52YXBpCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTMtY3VzdG9t LnZhbGEKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItMy5kZXBzCisgZGVsZXRl IG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTQuZGVwcworIGRlbGV0ZSBtb2RlIDEwMDY0NCB2 YXBpL2xpYm11dHRlci00LnZhcGkKKyByZW5hbWUgdmFwaS97bGlibXV0dGVyLTUuZGVwcyA9PiBs aWJtdXR0ZXItNi5kZXBzfSAoNTAlKQorIHJlbmFtZSB2YXBpL3tsaWJtdXR0ZXItNS52YXBpID0+ IGxpYm11dHRlci02LnZhcGl9ICg5NyUpCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0 dGVyLTctY3VzdG9tLnZhbGEKKyBjcmVhdGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItNy5k ZXBzCisgcmVuYW1lIHZhcGkve2xpYm11dHRlci0zLnZhcGkgPT4gbGlibXV0dGVyLTcudmFwaX0g KDc1JSkKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItY29nbC00LnZhcGkKKyBk ZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9tdXR0ZXItY2x1dHRlci01LWN1c3RvbS52YWxhCisgcmVu YW1lIHZhcGkve211dHRlci1jbHV0dGVyLTQtY3VzdG9tLnZhbGEgPT4gbXV0dGVyLWNsdXR0ZXIt Ni1jdXN0b20udmFsYX0gKDkyJSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNsdXR0ZXItNS5kZXBz ID0+IG11dHRlci1jbHV0dGVyLTYuZGVwc30gKDYzJSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNs dXR0ZXItNS52YXBpID0+IG11dHRlci1jbHV0dGVyLTYudmFwaX0gKDkzJSkKKyByZW5hbWUgdmFw aS97bXV0dGVyLWNsdXR0ZXItNC5kZXBzID0+IG11dHRlci1jbHV0dGVyLTcuZGVwc30gKDU0JSkK KyByZW5hbWUgdmFwaS97bXV0dGVyLWNsdXR0ZXItNC52YXBpID0+IG11dHRlci1jbHV0dGVyLTcu dmFwaX0gKDg2JSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNvZ2wtNS1jdXN0b20udmFsYSA9PiBt dXR0ZXItY29nbC02LWN1c3RvbS52YWxhfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNv Z2wtNC5kZXBzID0+IG11dHRlci1jb2dsLTYuZGVwc30gKDEwMCUpCisgcmVuYW1lIHZhcGkve211 dHRlci1jb2dsLTUudmFwaSA9PiBtdXR0ZXItY29nbC02LnZhcGl9ICg2OCUpCisgcmVuYW1lIHZh cGkve211dHRlci1jb2dsLTQtY3VzdG9tLnZhbGEgPT4gbXV0dGVyLWNvZ2wtNy1jdXN0b20udmFs YX0gKDgxJSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNvZ2wtNS5kZXBzID0+IG11dHRlci1jb2ds LTcuZGVwc30gKDEwMCUpCisgcmVuYW1lIHZhcGkve211dHRlci1jb2dsLTQudmFwaSA9PiBtdXR0 ZXItY29nbC03LnZhcGl9ICg1OSUpCisKK2RpZmYgLS1naXQgbWVzb24uYnVpbGQgbWVzb24uYnVp bGQKK2luZGV4IDJhMGUwMzE2Li4zYzRjNmFjMSAxMDA2NDQKKy0tLSBtZXNvbi5idWlsZAorKysr IG1lc29uLmJ1aWxkCitAQCAtMzIsMTYgKzMyLDE2IEBAIGFtX2NmbGFncyA9IFsKKyBhZGRfZ2xv YmFsX2FyZ3VtZW50cyhhbV9jZmxhZ3MsIGxhbmd1YWdlOiAnYycpCisgbWVzb24uYWRkX2luc3Rh bGxfc2NyaXB0KCdtZXNvbl9wb3N0X2luc3RhbGwuc2gnKQorIAorLSMgQnVkZ2llIG5lZWRzIGEg bWluaW11bSAzLjIyIEdOT01FIHN0YWNrCistZ25vbWVfbWluaW11bV92ZXJzaW9uID0gJz49IDMu MjIuMCcKKysjIEJ1ZGdpZSBuZWVkcyBhIG1pbmltdW0gMy4yNCBHTk9NRSBzdGFjaworK2dub21l X21pbmltdW1fdmVyc2lvbiA9ICc+PSAzLjI0LjAnCisgCisgZGVwX2d0azMgPSBkZXBlbmRlbmN5 KCdndGsrLTMuMCcsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbikKKy1kZXBfZ2xpYiA9 IGRlcGVuZGVuY3koJ2dsaWItMi4wJywgdmVyc2lvbjogJz49IDIuNDYuMCcpCistZGVwX2dpb3Vu aXggPSBkZXBlbmRlbmN5KCdnaW8tdW5peC0yLjAnLCB2ZXJzaW9uOiAnPj0gMi40Ni4wJykKKy1k ZXBfcGVhcyA9IGRlcGVuZGVuY3koJ2xpYnBlYXMtMS4wJywgdmVyc2lvbjogJz49IDEuOC4wJykK KytkZXBfZ2xpYiA9IGRlcGVuZGVuY3koJ2dsaWItMi4wJywgdmVyc2lvbjogJz49IDIuNjIuMCcp CisrZGVwX2dpb3VuaXggPSBkZXBlbmRlbmN5KCdnaW8tdW5peC0yLjAnLCB2ZXJzaW9uOiAnPj0g Mi42Mi4wJykKKytkZXBfcGVhcyA9IGRlcGVuZGVuY3koJ2xpYnBlYXMtMS4wJywgdmVyc2lvbjog Jz49IDEuMjQuMCcpCisgZGVwX2dka3gxMSA9IGRlcGVuZGVuY3koJ2dkay14MTEtMy4wJywgdmVy c2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uKQorIGRlcF9saWJ1dWlkID0gZGVwZW5kZW5jeSgn dXVpZCcpCistZGVwX3ZhbGEgPSBkZXBlbmRlbmN5KCd2YXBpZ2VuJywgdmVyc2lvbjogJz49IDAu NDAuMCcpCisrZGVwX3ZhbGEgPSBkZXBlbmRlbmN5KCd2YXBpZ2VuJywgdmVyc2lvbjogJz49IDAu NDYuMCcpCisgCisgIyBOZWVkZWQgZm9yIGtleWJvYXJkeSBiaXRzCisgZGVwX2lidXMgPSBkZXBl bmRlbmN5KCdpYnVzLTEuMCcsIHZlcnNpb246ICc+PSAxLjUuMTAnKQorQEAgLTUxLDEwICs1MSwx MCBAQCBkZXBfZ3NldHRpbmdzID0gZGVwZW5kZW5jeSgnZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1h cycsIHZlcnNpb246IGdub21lX21pbmltdW1fdgorIGRlcF9nc2QgPSBkZXBlbmRlbmN5KCdnbm9t ZS1zZXR0aW5ncy1kYWVtb24nLCB2ZXJzaW9uOiAnPj0zLjI4LjAnKQorIAorICMgd25jayB1c2Vk IGFsbCBvdmVyIHRoZSBwbGFjZS4uCistZGVwX3duY2sgPSBkZXBlbmRlbmN5KCdsaWJ3bmNrLTMu MCcsIHZlcnNpb246ICc+PSAzLjE0LjAnKQorK2RlcF93bmNrID0gZGVwZW5kZW5jeSgnbGlid25j ay0zLjAnLCB2ZXJzaW9uOiAnPj0gMy4zMi4wJykKKyAKKyAjIGFjY291bnRzc2VydmljZSBpbiBt dWx0aXBsZSBhcHBsZXRzCistZGVwX2FjY291bnRzc2VydmljZSA9IGRlcGVuZGVuY3koJ2FjY291 bnRzc2VydmljZScsIHZlcnNpb246ICc+PSAwLjYuNDAnKQorK2RlcF9hY2NvdW50c3NlcnZpY2Ug PSBkZXBlbmRlbmN5KCdhY2NvdW50c3NlcnZpY2UnLCB2ZXJzaW9uOiAnPj0gMC42LjU1JykKKyAK KyAjIENyZWF0ZSBjb25maWcuaAorIGNkYXRhID0gY29uZmlndXJhdGlvbl9kYXRhKCkKK2RpZmYg LS1naXQgbWVzb25fb3B0aW9ucy50eHQgbWVzb25fb3B0aW9ucy50eHQKK2luZGV4IGQ3MWIwOWI1 Li5kY2E5MTI5NiAxMDA2NDQKKy0tLSBtZXNvbl9vcHRpb25zLnR4dAorKysrIG1lc29uX29wdGlv bnMudHh0CitAQCAtMSw1ICsxLDQgQEAKKyBvcHRpb24oJ3dpdGgtc3RhdGVsZXNzJywgdHlwZTog J2Jvb2xlYW4nLCB2YWx1ZTogZmFsc2UsIGRlc2NyaXB0aW9uOiAnRW5hYmxlIHN0YXRlbGVzcyBY REcgcGF0aHMnKQorIG9wdGlvbignd2l0aC1wb2xraXQnLCB0eXBlOiAnYm9vbGVhbicsIHZhbHVl OiB0cnVlLCBkZXNjcmlwdGlvbjogJ0VuYWJsZSBQb2xLaXQgc3VwcG9ydCcpCistb3B0aW9uKCd3 aXRoLWJsdWV0b290aCcsIHR5cGU6ICdib29sZWFuJywgdmFsdWU6IHRydWUsIGRlc2NyaXB0aW9u OiAnRW5hYmxlIGdub21lLWJsdWV0b290aCBzdXBwb3J0JykKKyBvcHRpb24oJ3dpdGgtZ3RrLWRv YycsIHR5cGU6ICdib29sZWFuJywgdmFsdWU6IHRydWUsIGRlc2NyaXB0aW9uOiAnQnVpbGQgZ3Rr LWRvYyBkb2N1bWVudGF0aW9uJykKKyBvcHRpb24oJ3dpdGgtZGVza3RvcC1pY29ucycsIHR5cGU6 ICdjb21ibycsIGNob2ljZXM6IFsnbmF1dGlsdXMnLCAnbm9uZSddLCB2YWx1ZTogJ25hdXRpbHVz JywgZGVzY3JpcHRpb246ICdEZXNrdG9wIGljb24gaGFuZGxpbmcnKQorZGlmZiAtLWdpdCBzcmMv YXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEgc3JjL2FwcGxldHMvc3RhdHVzL1N0YXR1 c0FwcGxldC52YWxhCitpbmRleCBiOTgyNjM5NC4uNzFmMjg3YzkgMTAwNjQ0CistLS0gc3JjL2Fw cGxldHMvc3RhdHVzL1N0YXR1c0FwcGxldC52YWxhCisrKysgc3JjL2FwcGxldHMvc3RhdHVzL1N0 YXR1c0FwcGxldC52YWxhCitAQCAtMjAsOSArMjAsNyBAQCBwdWJsaWMgY2xhc3MgU3RhdHVzQXBw bGV0IDogQnVkZ2llLkFwcGxldAorIHsKKyAKKyAgICAgcHJvdGVjdGVkIEd0ay5Cb3ggd2lkZ2V0 OworLSNpZiBXSVRIX0JMVUVUT09USAorICAgICBwcm90ZWN0ZWQgQmx1ZXRvb3RoSW5kaWNhdG9y IGJsdWU7CistI2VuZGlmCisgICAgIHByb3RlY3RlZCBTb3VuZEluZGljYXRvciBzb3VuZDsKKyAg ICAgcHJvdGVjdGVkIFBvd2VySW5kaWNhdG9yIHBvd2VyOworICAgICBwcm90ZWN0ZWQgR3RrLkV2 ZW50Qm94PyB3cmFwOworQEAgLTY4LDEyICs2NiwxMCBAQCBwdWJsaWMgY2xhc3MgU3RhdHVzQXBw bGV0IDogQnVkZ2llLkFwcGxldAorICAgICAgICAgdGhpcy5zZXR1cF9wb3BvdmVyKHBvd2VyLmVi b3gsIHBvd2VyLnBvcG92ZXIpOworICAgICAgICAgdGhpcy5zZXR1cF9wb3BvdmVyKHNvdW5kLmVi b3gsIHNvdW5kLnBvcG92ZXIpOworIAorLSNpZiBXSVRIX0JMVUVUT09USAorICAgICAgICAgYmx1 ZSA9IG5ldyBCbHVldG9vdGhJbmRpY2F0b3IoKTsKKyAgICAgICAgIHdpZGdldC5wYWNrX3N0YXJ0 KGJsdWUsIGZhbHNlLCBmYWxzZSwgMik7CisgICAgICAgICBibHVlLnNob3dfYWxsKCk7CisgICAg ICAgICB0aGlzLnNldHVwX3BvcG92ZXIoYmx1ZS5lYm94LCBibHVlLnBvcG92ZXIpOworLSNlbmRp ZgorICAgICB9CisgCisgICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkIHBhbmVsX3Bvc2l0aW9uX2No YW5nZWQoQnVkZ2llLlBhbmVsUG9zaXRpb24gcG9zaXRpb24pCitAQCAtOTEsOSArODcsNyBAQCBw dWJsaWMgY2xhc3MgU3RhdHVzQXBwbGV0IDogQnVkZ2llLkFwcGxldAorICAgICAgICAgdGhpcy5t YW5hZ2VyID0gbWFuYWdlcjsKKyAgICAgICAgIG1hbmFnZXIucmVnaXN0ZXJfcG9wb3Zlcihwb3dl ci5lYm94LCBwb3dlci5wb3BvdmVyKTsKKyAgICAgICAgIG1hbmFnZXIucmVnaXN0ZXJfcG9wb3Zl cihzb3VuZC5lYm94LCBzb3VuZC5wb3BvdmVyKTsKKy0jaWYgV0lUSF9CTFVFVE9PVEgKKyAgICAg ICAgIG1hbmFnZXIucmVnaXN0ZXJfcG9wb3ZlcihibHVlLmVib3gsIGJsdWUucG9wb3Zlcik7Cist I2VuZGlmCisgICAgIH0KKyB9IC8vIEVuZCBjbGFzcworIAorZGlmZiAtLWdpdCBzcmMvYXBwbGV0 cy9zdGF0dXMvbWVzb24uYnVpbGQgc3JjL2FwcGxldHMvc3RhdHVzL21lc29uLmJ1aWxkCitpbmRl eCA2OTlmYjhmNC4uYjRkMjcwNmMgMTAwNjQ0CistLS0gc3JjL2FwcGxldHMvc3RhdHVzL21lc29u LmJ1aWxkCisrKysgc3JjL2FwcGxldHMvc3RhdHVzL21lc29uLmJ1aWxkCitAQCAtMTAsNiArMTAs NyBAQCBjdXN0b21fdGFyZ2V0KCdwbHVnaW4tZmlsZS1zdGF0dXMnLAorICAgICBpbnN0YWxsX2Rp ciA6IGFwcGxldF9zdGF0dXNfZGlyKQorIAorIGFwcGxldF9zdGF0dXNfc291cmNlcyA9IFsKKysg ICAgJ0JsdWV0b290aEluZGljYXRvci52YWxhJywKKyAgICAgJ1N0YXR1c0FwcGxldC52YWxhJywK KyAgICAgJ1Bvd2VySW5kaWNhdG9yLnZhbGEnLAorICAgICAnU291bmRJbmRpY2F0b3IudmFsYScs CitAQCAtMjAsMjIgKzIxLDEzIEBAIGFwcGxldF9zdGF0dXNfZGVwcyA9IFsKKyAgICAgZGVwX2d0 azMsCisgICAgIGRlcF9wZWFzLAorICAgICBkZXBfYWNjb3VudHNzZXJ2aWNlLAorKyAgICBkZXBl bmRlbmN5KCdnbm9tZS1ibHVldG9vdGgtMS4wJywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92ZXJz aW9uKSwKKyAgICAgZGVwZW5kZW5jeSgndXBvd2VyLWdsaWInLCB2ZXJzaW9uOiAnPj0gMC45OS4w JyksCisgICAgIGxpbmtfbGlicGx1Z2luLAorICAgICBndmMuZ2V0X3ZhcmlhYmxlKCdsaWJndmNf ZGVwJyksCisgICAgIG1lc29uLmdldF9jb21waWxlcignYycpLmZpbmRfbGlicmFyeSgnbScsIHJl cXVpcmVkOiBmYWxzZSksCisgXQorIAorLSMgQmx1ZXRvb3RoIGlzIG9wdGlvbmFsIHRvIGFsbG93 IHNtYWxsZXIgYnVpbGRzCistd2l0aF9ibHVldG9vdGggPSBnZXRfb3B0aW9uKCd3aXRoLWJsdWV0 b290aCcpCistYXBwbGV0X3N0YXR1c192YWxhX2FyZ3MgPSBbXQorLQorLWlmIHdpdGhfYmx1ZXRv b3RoID09IHRydWUKKy0gICAgYXBwbGV0X3N0YXR1c19kZXBzICs9IGRlcGVuZGVuY3koJ2dub21l LWJsdWV0b290aC0xLjAnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pCistICAgIGFw cGxldF9zdGF0dXNfc291cmNlcyArPSAnQmx1ZXRvb3RoSW5kaWNhdG9yLnZhbGEnCistICAgIGFw cGxldF9zdGF0dXNfdmFsYV9hcmdzICs9IFsnLUQnLCAnV0lUSF9CTFVFVE9PVEgnXQorLWVuZGlm CistCisgc2hhcmVkX2xpYnJhcnkoCisgICAgICdzdGF0dXNhcHBsZXQnLAorICAgICBhcHBsZXRf c3RhdHVzX3NvdXJjZXMsCitAQCAtNTAsNyArNDIsNiBAQCBzaGFyZWRfbGlicmFyeSgKKyAgICAg ICAgICctLXBrZycsICdndmMtMS4wJywKKyAgICAgICAgICctLXBrZycsICdnaW8tdW5peC0yLjAn LAorICAgICAgICAgJy0tdmFwaWRpcicsIGpvaW5fcGF0aHMobWVzb24uc291cmNlX3Jvb3QoKSwg J3ZhcGknKSwKKy0gICAgICAgIGFwcGxldF9zdGF0dXNfdmFsYV9hcmdzLAorICAgICBdLAorICAg ICBpbnN0YWxsOiB0cnVlLAorICAgICBpbnN0YWxsX2RpcjogYXBwbGV0X3N0YXR1c19kaXIsCitk aWZmIC0tZ2l0IHNyYy93bS9iYWNrZ3JvdW5kLnZhbGEgc3JjL3dtL2JhY2tncm91bmQudmFsYQor aW5kZXggMDg0YWE5YWIuLmIzMzFlMGM0IDEwMDY0NAorLS0tIHNyYy93bS9iYWNrZ3JvdW5kLnZh bGEKKysrKyBzcmMvd20vYmFja2dyb3VuZC52YWxhCitAQCAtMjA0LDggKzIwNCwxMyBAQCBwdWJs aWMgY2xhc3MgQnVkZ2llQmFja2dyb3VuZCA6IENsdXR0ZXIuQWN0b3IKKyAKKyAgICAgICAgIHZh ciBhY3RvciA9IG5ldyBNZXRhLkJhY2tncm91bmRBY3RvcihkaXNwbGF5LCBpbmRleCk7CisgICAg ICAgICB2YXIgYmFja2dyb3VuZCA9IG5ldyBNZXRhLkJhY2tncm91bmQoZGlzcGxheSk7CisrI2lm IEhBVkVfTVVUVEVSXzYKKyAgICAgICAgIGFjdG9yLnNldF9iYWNrZ3JvdW5kKGJhY2tncm91bmQp OworLQorKyNlbHNlCisrICAgICAgICB2YXIgY29udGVudCA9IGFjdG9yLmdldF9jb250ZW50KCk7 CisrICAgICAgICB1bm93bmVkIE1ldGEuQmFja2dyb3VuZENvbnRlbnQgYmFja2dyb3VuZF9jb250 ZW50ID0gKE1ldGEuQmFja2dyb3VuZENvbnRlbnQpIGNvbnRlbnQ7CisrICAgICAgICBiYWNrZ3Jv dW5kX2NvbnRlbnQuc2V0X2JhY2tncm91bmQoYmFja2dyb3VuZCk7CisrI2VuZGlmCisgICAgICAg ICByZWN0ID0gZGlzcGxheS5nZXRfbW9uaXRvcl9nZW9tZXRyeShpbmRleCk7CisgICAgICAgICBh Y3Rvci5zZXRfc2l6ZShyZWN0LndpZHRoLCByZWN0LmhlaWdodCk7CisgICAgICAgICBhY3Rvci5z ZXQoIm9wYWNpdHkiLCAwKTsKK0BAIC0yMjEsMTMgKzIyNiwyMSBAQCBwdWJsaWMgY2xhc3MgQnVk Z2llQmFja2dyb3VuZCA6IENsdXR0ZXIuQWN0b3IKKyAgICAgICAgIHNoYWRpbmdfZGlyZWN0aW9u ID0gKEdEZXNrdG9wLkJhY2tncm91bmRTaGFkaW5nKXNldHRpbmdzLmdldF9lbnVtKENPTE9SX1NI QURJTkdfVFlQRV9LRVkpOworICAgICAgICAgdmFyIGNvbG9yX3N0ciA9IHNldHRpbmdzLmdldF9z dHJpbmcoUFJJTUFSWV9DT0xPUl9LRVkpOworICAgICAgICAgaWYgKGNvbG9yX3N0ciAhPSBudWxs ICYmIGNvbG9yX3N0ciAhPSAiIikgeworKyNpZiBIQVZFX01VVFRFUl82CisgICAgICAgICAgICAg cHJpbWFyeV9jb2xvciA9IENsdXR0ZXIuQ29sb3IuZnJvbV9zdHJpbmcoY29sb3Jfc3RyKTsKKysj ZWxzZQorKyAgICAgICAgICAgIENsdXR0ZXIuQ29sb3IuZnJvbV9zdHJpbmcob3V0IHByaW1hcnlf Y29sb3IsIGNvbG9yX3N0cik7CisrI2VuZGlmCisgICAgICAgICAgICAgY29sb3Jfc3RyID0gbnVs bDsKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIGNvbG9yX3N0ciA9IHNldHRpbmdzLmdldF9zdHJp bmcoU0VDT05EQVJZX0NPTE9SX0tFWSk7CisgICAgICAgICBpZiAoY29sb3Jfc3RyICE9IG51bGwg JiYgY29sb3Jfc3RyICE9ICIiKSB7CisrI2lmIEhBVkVfTVVUVEVSXzYKKyAgICAgICAgICAgICBz ZWNvbmRhcnlfY29sb3IgPSBDbHV0dGVyLkNvbG9yLmZyb21fc3RyaW5nKGNvbG9yX3N0cik7Cisr I2Vsc2UKKysgICAgICAgICAgICBDbHV0dGVyLkNvbG9yLmZyb21fc3RyaW5nKG91dCBzZWNvbmRh cnlfY29sb3IsIGNvbG9yX3N0cik7CisrI2VuZGlmCisgICAgICAgICAgICAgY29sb3Jfc3RyID0g bnVsbDsKKyAgICAgICAgIH0KKyAKK2RpZmYgLS1naXQgc3JjL3dtL21lc29uLmJ1aWxkIHNyYy93 bS9tZXNvbi5idWlsZAoraW5kZXggZTM5Yjg2NzguLjU4M2NlNzkwIDEwMDY0NAorLS0tIHNyYy93 bS9tZXNvbi5idWlsZAorKysrIHNyYy93bS9tZXNvbi5idWlsZAorQEAgLTE3LDIwICsxNywxOCBA QCBidWRnaWVfd21fc291cmNlcyA9IFsKKyAKKyBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyA9 IFtdCisgCistdmFwaV9tdXR0ZXIgPSAnbGlibXV0dGVyLTMnCistZGVwX211dHRlciA9IGRlcGVu ZGVuY3koJ2xpYm11dHRlci0zJywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uLCByZXF1 aXJlZDogZmFsc2UpCistaWYgbm90IGRlcF9tdXR0ZXIuZm91bmQoKQorLSAgICBkZXBfbXV0dGVy ID0gZGVwZW5kZW5jeSgnbGlibXV0dGVyLTQnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNp b24sIHJlcXVpcmVkOiBmYWxzZSkKKytkZXBfZ3JhcGhlbmUgPSBkZXBlbmRlbmN5KCdncmFwaGVu ZS1nb2JqZWN0LTEuMCcsIHZlcnNpb246ICc+PSAxLjEwJykKKytkZXBfbXV0dGVyID0gZGVwZW5k ZW5jeSgnbGlibXV0dGVyLTcnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24sIHJlcXVp cmVkOiBmYWxzZSkKKytpZiBkZXBfbXV0dGVyLmZvdW5kKCkKKysgICAgYnVkZ2llX3dtX3N0YXR1 c192YWxhX2FyZ3MgKz0gWyctRCcsICdIQVZFX01VVFRFUl83J10KKysgICAgbWVzc2FnZSgnVXNp bmcgbmV3IGxpYm11dHRlci03IEFCSSBmcm9tIEdOT01FIDMuMzgnKQorKyAgICB2YXBpX211dHRl ciA9ICdsaWJtdXR0ZXItNycKKytlbHNlCisrICAgIGRlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCds aWJtdXR0ZXItNicsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbikKKysgICAgYnVkZ2ll X3dtX3N0YXR1c192YWxhX2FyZ3MgKz0gWyctRCcsICdIQVZFX01VVFRFUl82J10KKyAgICAgaWYg ZGVwX211dHRlci5mb3VuZCgpCistICAgICAgICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0dGVy LTQgQUJJIGZyb20gR05PTUUgMy4zMicpCistICAgICAgICB2YXBpX211dHRlciA9ICdsaWJtdXR0 ZXItNCcKKy0gICAgZWxzZQorLSAgICAgICAgZGVwX211dHRlciA9IGRlcGVuZGVuY3koJ2xpYm11 dHRlci01JywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uKQorLSAgICAgICAgaWYgZGVw X211dHRlci5mb3VuZCgpCistICAgICAgICAgICAgbWVzc2FnZSgnVXNpbmcgbmV3IGxpYm11dHRl ci01IEFCSSBmcm9tIEdOT01FIDMuMzQnKQorLSAgICAgICAgICAgIHZhcGlfbXV0dGVyID0gJ2xp Ym11dHRlci01JworLSAgICAgICAgICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzICs9IFsn LUQnLCAnSEFWRV9NVVRURVJfNSddCistICAgICAgICBlbmRpZgorKyAgICAgICAgbWVzc2FnZSgn VXNpbmcgbmV3IGxpYm11dHRlci02IEFCSSBmcm9tIEdOT01FIDMuMzYnKQorKyAgICAgICAgdmFw aV9tdXR0ZXIgPSAnbGlibXV0dGVyLTYnCisgICAgIGVuZGlmCisgZW5kaWYKKyAKK0BAIC00Miw4 ICs0MCw4IEBAIGJ1ZGdpZV93bV9kZXBzID0gWworICAgICBkZXBfaWJ1cywKKyBdCisgCistaWYg ZGVwX2dzZC52ZXJzaW9uKCkudmVyc2lvbl9jb21wYXJlKCc+PTMuMzEuOTEnKQorLSAgICBidWRn aWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hBVkVfR1NEXzMzMiddCisraWYgZGVw X2dzZC52ZXJzaW9uKCkudmVyc2lvbl9jb21wYXJlKCc+PTMuMzYuMCcpCisrICAgIGJ1ZGdpZV93 bV9zdGF0dXNfdmFsYV9hcmdzICs9IFsnLUQnLCAnSEFWRV9HU0RfU1VQUE9SVEVEJ10KKyBlbmRp ZgorIAorIGJ1ZGdpZV93bV92YWxhX2FyZ3MgPSAgWworQEAgLTYwLDcgKzU4LDcgQEAgYnVkZ2ll X3dtX3ZhbGFfYXJncyA9ICBbCisgCisgcnBhdGggPSAnJworIAorLWlmIGRlcF9tdXR0ZXIudmVy c2lvbigpLnZlcnNpb25fY29tcGFyZSgnPj0zLjI4LjAnKQorK2lmIGRlcF9tdXR0ZXIudmVyc2lv bigpLnZlcnNpb25fY29tcGFyZSgnPj0zLjM2LjAnKQorICAgICBycGF0aCA9IGRlcF9tdXR0ZXIu Z2V0X3BrZ2NvbmZpZ192YXJpYWJsZSgndHlwZWxpYmRpcicpCisgICAgIGJ1ZGdpZV93bV92YWxh X2FyZ3MgKz0gWyctLWdpcmRpcicsIHJwYXRoXQorIGVuZGlmCitkaWZmIC0tZ2l0IHNyYy93bS9z aGltLnZhbGEgc3JjL3dtL3NoaW0udmFsYQoraW5kZXggNGNkZmEwYjAuLmZjMjRiMjg5IDEwMDY0 NAorLS0tIHNyYy93bS9zaGltLnZhbGEKKysrKyBzcmMvd20vc2hpbS52YWxhCitAQCAtMTQsNyAr MTQsNyBAQCBuYW1lc3BhY2UgQnVkZ2llIHsKKyBwdWJsaWMgc3RydWN0IEdzZEFjY2VsIHsKKyAg ICAgc3RyaW5nIGFjY2VsZXJhdG9yOworICAgICB1aW50IGZsYWdzOworLSNpZiBIQVZFX0dTRF8z MzIKKysjaWYgSEFWRV9HU0RfU1VQUE9SVEVECisgICAgIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGdy YWJfZmxhZ3M7CisgI2VuZGlmCisgfQorQEAgLTE5MywxMSArMTkzLDcgQEAgcHVibGljIGNsYXNz IFNoZWxsU2hpbSA6IEdMaWIuT2JqZWN0CisgICAgICAgICBvc2RfcHJveHkgPSBudWxsOworICAg ICB9CisgCistI2lmIEhBVkVfTVVUVEVSXzUKKyAgICAgcHJpdmF0ZSB2b2lkIG9uX2FjY2VsZXJh dG9yX2FjdGl2YXRlZCh1aW50IGFjdGlvbiwgQ2x1dHRlci5JbnB1dERldmljZSBkZXYsIHVpbnQg ZGV2aWNlX2lkKQorLSNlbHNlCistICAgIHByaXZhdGUgdm9pZCBvbl9hY2NlbGVyYXRvcl9hY3Rp dmF0ZWQodWludCBhY3Rpb24sIHVpbnQgZGV2aWNlX2lkKQorLSNlbmRpZgorICAgICB7CisgICAg ICAgICBIYXNoVGFibGU8c3RyaW5nLFZhcmlhbnQ+IHBhcmFtcyA9IG5ldyBIYXNoVGFibGU8c3Ry aW5nLFZhcmlhbnQ+KHN0cl9oYXNoLCBzdHJfZXF1YWwpOworIAorQEAgLTIzMCw3ICsyMjYsNyBA QCBwdWJsaWMgY2xhc3MgU2hlbGxTaGltIDogR0xpYi5PYmplY3QKKyAgICAgICAgIH0KKyAgICAg fQorIAorLSNpZiBIQVZFX0dTRF8zMzIKKysjaWYgSEFWRV9HU0RfU1VQUE9SVEVECisgICAgIHBy aXZhdGUgdWludCBfZ3JhYihzdHJpbmcgc2VuZGVyLCBzdHJpbmcgc2VxLCB1aW50IGZsYWcsIE1l dGEuS2V5QmluZGluZ0ZsYWdzIGdyYWJfZmxhZ3MpCisgICAgIHsKKyAgICAgICAgIHZhciByZXQg PSBkaXNwbGF5LmdyYWJfYWNjZWxlcmF0b3Ioc2VxLCBncmFiX2ZsYWdzKTsKK0BAIC0yNzMsNyAr MjY5LDcgQEAgcHVibGljIGNsYXNzIFNoZWxsU2hpbSA6IEdMaWIuT2JqZWN0CisgICAgICAgICAg ICAgb25fYnVzX2FjcXVpcmVkLCBudWxsLCBudWxsKTsKKyAgICAgfQorIAorLSNpZiBIQVZFX0dT RF8zMzIKKysjaWYgSEFWRV9HU0RfU1VQUE9SVEVECisgICAgIHB1YmxpYyB1aW50IEdyYWJBY2Nl bGVyYXRvcihCdXNOYW1lIHNlbmRlciwgc3RyaW5nIGFjY2VsZXJhdG9yLCB1aW50IGZsYWdzLCBN ZXRhLktleUJpbmRpbmdGbGFncyBncmFiX2ZsYWdzKQorICAgICB7CisgICAgICAgICByZXR1cm4g X2dyYWIoc2VuZGVyLCBhY2NlbGVyYXRvciwgZmxhZ3MsIGdyYWJfZmxhZ3MpOworZGlmZiAtLWdp dCBzcmMvd20vd20udmFsYSBzcmMvd20vd20udmFsYQoraW5kZXggZmVlODk0NDMuLmJjY2YzYjk1 IDEwMDY0NAorLS0tIHNyYy93bS93bS52YWxhCisrKysgc3JjL3dtL3dtLnZhbGEKK0BAIC0xMzcs OCArMTM3LDggQEAgcHVibGljIGNsYXNzIEJ1ZGdpZVdNIDogTWV0YS5QbHVnaW4KKyAgICAgcHVi bGljIHN0YXRpYyBzdHJpbmdbXT8gb2xkX2FyZ3M7CisgICAgIHB1YmxpYyBzdGF0aWMgYm9vbCB3 YXlsYW5kID0gZmFsc2U7CisgCistICAgIHN0YXRpYyBDbHV0dGVyLlBvaW50IFBWX0NFTlRFUjsK Ky0gICAgc3RhdGljIENsdXR0ZXIuUG9pbnQgUFZfTk9STTsKKysgICAgc3RhdGljIEdyYXBoZW5l LlBvaW50IFBWX0NFTlRFUjsKKysgICAgc3RhdGljIEdyYXBoZW5lLlBvaW50IFBWX05PUk07Cisg CisgICAgIHByaXZhdGUgTWV0YS5CYWNrZ3JvdW5kR3JvdXA/IGJhY2tncm91bmRfZ3JvdXA7Cisg CitAQCAtMTcxLDEwICsxNzEsMTAgQEAgcHVibGljIGNsYXNzIEJ1ZGdpZVdNIDogTWV0YS5QbHVn aW4KKyAgICAgICAgICAgICBsaWNlbnNlID0gIkdQTC0yLjAiLAorICAgICAgICAgICAgIGRlc2Ny aXB0aW9uID0gIkJ1ZGdpZSBXaW5kb3cgTWFuYWdlciIKKyAgICAgICAgIH07CistICAgICAgICBQ Vl9DRU5URVIgPSBDbHV0dGVyLlBvaW50LmFsbG9jKCk7CisrICAgICAgICBQVl9DRU5URVIgPSBH cmFwaGVuZS5Qb2ludCgpOworKyAgICAgICAgUFZfTk9STSA9IEdyYXBoZW5lLlBvaW50KCk7Cisg ICAgICAgICBQVl9DRU5URVIueCA9IDAuNWY7CisgICAgICAgICBQVl9DRU5URVIueSA9IDAuNWY7 CistICAgICAgICBQVl9OT1JNID0gQ2x1dHRlci5Qb2ludC5hbGxvYygpOworICAgICAgICAgUFZf Tk9STS54ID0gMC4wZjsKKyAgICAgICAgIFBWX05PUk0ueSA9IDAuMGY7CisgICAgIH0KK0BAIC0x MDAxLDcgKzEwMDEsNyBAQCBwdWJsaWMgY2xhc3MgQnVkZ2llV00gOiBNZXRhLlBsdWdpbgorICAg ICAgICAgdGlsZV9wcmV2aWV3LnNldCgic2NhbGUteCIsIE5PVElGSUNBVElPTl9NQVBfU0NBTEVf WCwgInNjYWxlLXkiLCBOT1RJRklDQVRJT05fTUFQX1NDQUxFX1ksCisgICAgICAgICAgICAgInBp dm90LXBvaW50IiwgUFZfQ0VOVEVSKTsKKyAKKy0gICAgICAgIHRpbGVfcHJldmlldy5sb3dlcih3 aW5fYWN0b3IpOworKyAgICAgICAgLy90aWxlX3ByZXZpZXcubG93ZXIod2luX2FjdG9yKTsKKyAg ICAgICAgIHRpbGVfcHJldmlldy50aWxlX3JlY3QgPSB0aWxlX3JlY3Q7CisgCisgICAgICAgICB0 aWxlX3ByZXZpZXcuc2hvdygpOworZGlmZiAtLWdpdCB2YXBpL0NsdXR0ZXItNS5tZXRhZGF0YSB2 YXBpL0NsdXR0ZXItNi5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJv bSB2YXBpL0NsdXR0ZXItNS5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvQ2x1dHRlci02Lm1ldGFk YXRhCitkaWZmIC0tZ2l0IHZhcGkvQ2x1dHRlci00Lm1ldGFkYXRhIHZhcGkvQ2x1dHRlci03Lm1l dGFkYXRhCitzaW1pbGFyaXR5IGluZGV4IDc4JQorcmVuYW1lIGZyb20gdmFwaS9DbHV0dGVyLTQu bWV0YWRhdGEKK3JlbmFtZSB0byB2YXBpL0NsdXR0ZXItNy5tZXRhZGF0YQoraW5kZXggNWMyMTJl ODUuLjE4NTUyNzRkIDEwMDY0NAorLS0tIHZhcGkvQ2x1dHRlci00Lm1ldGFkYXRhCisrKysgdmFw aS9DbHV0dGVyLTcubWV0YWRhdGEKK0BAIC0xLDEzICsxLDEwIEBACisgLy8gTm9uIG1pbmktb2Jq ZWN0CisgQWN0b3JCb3ggc3RydWN0CisgQ29sb3Igc3RydWN0CistRm9nIHN0cnVjdAorLUdlb21l dHJ5IHN0cnVjdAorIEtub3Qgc3RydWN0CisgUGF0aE5vZGUgc3RydWN0CisgUGVyc3BlY3RpdmUg c3RydWN0CisgVW5pdHMgc3RydWN0CistVmVydGV4IHN0cnVjdAorIAorICoucmVmIHVub3duZWQK KyAKK0BAIC0xNyw3ICsxNCw2IEBAIGluaXRfd2l0aF9hcmdzCisgQWN0b3IKKyAJLmFwcGx5X3Ry YW5zZm9ybS5tYXRyaXggcmVmCisgCS5nZXRfYWJzX2FsbG9jYXRpb25fdmVydGljZXMudmVydHMg b3V0PWZhbHNlCistCS5nZXRfYWxsb2NhdGlvbl92ZXJ0aWNlcy52ZXJ0cyBvdXQ9ZmFsc2UKKyBD YW52YXMKKyAJLm5ldyBzeW1ib2xfdHlwZT0iY29uc3RydWN0b3IiCisgRXZlbnQudHlwZSNtZXRo b2QgbmFtZT0iZ2V0X3R5cGUiCitAQCAtMjcsNyArMjMsNiBAQCBJbWFnZQorIC8vID8/PworIEFj dG9yLmhhc19wb2ludGVyI21ldGhvZCBuYW1lPSJnZXRfaGFzX3BvaW50ZXIiCisgSW5pdEVycm9y IGVycm9yZG9tYWluPWZhbHNlCistcmVkcmF3IHNraXAKKyAKKyAvLyBOb3QgYWxsIGJhY2tpbmcg c3ltYm9scyBhcmUgZGVwcmVjYXRlZAorIEFjdG9yLnBpY2sgZGVwcmVjYXRlZD1mYWxzZQorQEAg LTU1LDcgKzUwLDYgQEAgQ29udGFpbmVyCisgCS5sb3dlciB2aXJ0dWFsCisgCS5yYWlzZSB2aXJ0 dWFsCisgCS4qX2NoaWxkX21ldGEjdmlydHVhbF9tZXRob2QgdmlydHVhbAorLQkuZm9yZWFjaF93 aXRoX2ludGVybmFscyN2aXJ0dWFsX21ldGhvZCB2aXJ0dWFsCisgCisgLy8gRGVmYXVsdCB2YWx1 ZXMKKyBDb250YWluZXIKK0BAIC03MCwzMiArNjQsMjEgQEAgVGV4dAorIC8vIFJlcGFyZW50ZWQg ZnVuY3MgbWV0aG9kcyBjYW4ndCBiZSBpbnN0YW5jZSBtZXRob2RzCisgZmVhdHVyZV9hdmFpbGFi bGUgc2tpcAorIGZlYXR1cmVfZ2V0X2FsbCBza2lwCistRmVhdHVyZUZsYWdzLnRleHR1cmVfbnBv dCBza2lwCisgCisgLy8gU2tpcHBlZCBieSBnLWkgZm9yIHVua25vd24gcmVhc29ucworIExheW91 dE1hbmFnZXIKKyAJLmNyZWF0ZV9jaGlsZF9tZXRhIHNraXA9ZmFsc2UKKy1Nb2RlbAorLQkuaW5z ZXJ0X3JvdyBza2lwPWZhbHNlCisgCisgLy8gVmFyaWFkaWMgYXJndW1lbnRzCistQWN0b3IKKy0J LmFuaW1hdGUgc2tpcD1mYWxzZQorLQkuYW5pbWF0ZV93aXRoX2FscGhhIHNraXA9ZmFsc2UKKy0J LmFuaW1hdGVfd2l0aF90aW1lbGluZSBza2lwPWZhbHNlCistQW5pbWF0b3IKKy0JLnNldCBza2lw PWZhbHNlCisgQm94CisgCS5wYWNrIHNraXA9ZmFsc2UKKyAJLnBhY2tfYWZ0ZXIgc2tpcD1mYWxz ZQorIAkucGFja19hdCBza2lwPWZhbHNlCisgCS5wYWNrX2JlZm9yZSBza2lwPWZhbHNlCisgQ29u dGFpbmVyCistCS5hZGRfdmFsaXN0IHNraXA9ZmFsc2UKKyAJLmNoaWxkX2dldCBza2lwPWZhbHNl CisgCS5jaGlsZF9zZXQgc2tpcD1mYWxzZQorIAkucmVtb3ZlIHNraXA9ZmFsc2UKKy0JLnJlbW92 ZV92YWxpc3Qgc2tpcD1mYWxzZQorIEludGVydmFsCisgCS5uZXcgc2tpcD1mYWxzZQorIAkuZ2V0 X2ludGVydmFsIHNraXA9ZmFsc2UKK0BAIC0xMDUsMTUgKzg4LDYgQEAgSW50ZXJ2YWwKKyBMYXlv dXRNYW5hZ2VyCisgCS5jaGlsZF9nZXQgc2tpcD1mYWxzZQorIAkuY2hpbGRfc2V0IHNraXA9ZmFs c2UKKy1MaXN0TW9kZWwKKy0JLm5ldyBza2lwPWZhbHNlCistTW9kZWwKKy0JLmFwcGVuZCBza2lw PWZhbHNlCistCS5pbnNlcnQgc2tpcD1mYWxzZQorLQkucHJlcGVuZCBza2lwPWZhbHNlCistTW9k ZWxJdGVyCistCS5nZXQgc2tpcD1mYWxzZQorLQkuc2V0IHNraXA9ZmFsc2UKKyBTY3JpcHQKKyAJ LmdldF9vYmplY3RzIHNraXA9ZmFsc2UKKyAKK0BAIC0xMjIsMTcgKzk2LDExIEBAIFRleHR1cmUK KyAJLm5ld19mcm9tX2ZpbGUgdGhyb3dzPSJDbHV0dGVyLlRleHR1cmVFcnJvciIKKyAKKyAvLyBT a2lwcGVkIHVwc3RyZWFtIGZvciB1bmtub3duIHJlYXNvbnMKKy1BbHBoYS5yZWdpc3Rlcl9mdW5j IHNraXA9ZmFsc2UKKy1UaW1lb3V0UG9vbCBza2lwPWZhbHNlCisgSW50ZXJ2YWwucmVnaXN0ZXJf cHJvZ3Jlc3NfZnVuYyBza2lwPWZhbHNlCistZnJhbWVfc291cmNlXyogc2tpcD1mYWxzZQorIGdl dF9vcHRpb25fZ3JvdXAgc2tpcD1mYWxzZQorIGdldF9vcHRpb25fZ3JvdXBfd2l0aG91dF9pbml0 IHNraXA9ZmFsc2UKKy10aHJlYWRzX2FkZF9mcmFtZV9zb3VyY2Ugc2tpcD1mYWxzZQorLXRocmVh ZHNfYWRkX2ZyYW1lX3NvdXJjZV9mdWxsIHNraXA9ZmFsc2UKKyB0aHJlYWRzX2FkZF9pZGxlIHNr aXA9ZmFsc2UKKyB0aHJlYWRzX2FkZF9pZGxlX2Z1bGwgc2tpcD1mYWxzZQorLXRocmVhZHNfc2V0 X2xvY2tfZnVuY3Rpb25zIHNraXA9ZmFsc2UKKyB0aHJlYWRzX2FkZF90aW1lb3V0IHNraXA9ZmFs c2UKKyB0aHJlYWRzX2FkZF90aW1lb3V0X2Z1bGwgc2tpcD1mYWxzZQorIAorQEAgLTE0MywxNSAr MTExLDEyIEBAIEFjdG9yQm94CisgVW5pdHMuZnJvbV8qIHNraXAKKyBDb2xvcgorIAkubmV3IHNr aXAKKy1WZXJ0ZXgubmV3IHNraXAKKyAKKyAvLyBDbGFzcyBtZXRob2RzCisgY29udGFpbmVyX2Ns YXNzX2ZpbmRfY2hpbGRfcHJvcGVydHkgc2tpcAorIGNvbnRhaW5lcl9jbGFzc19saXN0X2NoaWxk X3Byb3BlcnRpZXMgc2tpcAorIAorIC8vIE1vdmUgc3ltYm9scworLWdldF9hY3Rvcl9ieV9naWQg cGFyZW50PSJDbHV0dGVyLkFjdG9yIiBuYW1lPSJnZXRfYnlfZ2lkIgorLWdldF9pbnB1dF9kZXZp Y2VfZm9yX2lkIHBhcmVudD0iQ2x1dHRlci5JbnB1dERldmljZSIgbmFtZT0iZ2V0X2Zvcl9pZCIK KyB1bml0c19mcm9tXyogc2tpcAorIAorIC8vIENsYXNzZXMgbWFya2VkIGFzIG91dCBidXQgbm90 IGRvdWJsZSBwdHIKK0BAIC0yMDIsMjMgKzE2NywxNSBAQCBQQVRIX1JFTEFUSVZFIHNraXA9ZmFs c2UKKyBQUklPUklUWV9SRURSQVcgc2tpcD1mYWxzZQorIAorIC8vIENsdXR0ZXIgZGV2cyBkb24n dCBsaWtlIHVzIGNyZWF0aW5nIG5lc3RlZCBuYW1lc3BhY2VzCistZnJhbWVfc291cmNlXyogbmFt ZT0iZnJhbWVfc291cmNlXyguKykiIHBhcmVudD0iQ2x1dHRlci5GcmFtZVNvdXJjZSIKKyB2YWx1 ZV8qIG5hbWU9InZhbHVlXyguKykiIHBhcmVudD0iQ2x1dHRlci5WYWx1ZSIKKyB0aHJlYWRzXyog bmFtZT0idGhyZWFkc18oLispIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcyIKKy10aHJlYWRzX2Fk ZF9mcmFtZV9zb3VyY2UgbmFtZT0iYWRkIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5GcmFtZVNv dXJjZSIKKy10aHJlYWRzX2FkZF9mcmFtZV9zb3VyY2VfZnVsbCBuYW1lPSJhZGRfZnVsbCIgcGFy ZW50PSJDbHV0dGVyLlRocmVhZHMuRnJhbWVTb3VyY2UiCisgdGhyZWFkc19hZGRfaWRsZSBuYW1l PSJhZGQiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLklkbGUiCisgdGhyZWFkc19hZGRfaWRsZV9m dWxsIG5hbWU9ImFkZF9mdWxsIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5JZGxlIgorIHRocmVh ZHNfYWRkX3RpbWVvdXQgbmFtZT0iYWRkIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5UaW1lb3V0 IgorIHRocmVhZHNfYWRkX3RpbWVvdXRfZnVsbCBuYW1lPSJhZGRfZnVsbCIgcGFyZW50PSJDbHV0 dGVyLlRocmVhZHMuVGltZW91dCIKKy11dGlsX25leHRfcDIgbmFtZT0ibmV4dF9wb3dlcl9vZl8y IiBwYXJlbnQ9IkNsdXR0ZXIuVXRpbCIKKyAKKyAvLyBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eQor IENvbG9yLmFsbG9jIHN5bWJvbF90eXBlPSJmdW5jdGlvbiIKKy1Qb2ludC5hbGxvYyBzeW1ib2xf dHlwZT0iZnVuY3Rpb24iCistUmVjdC5hbGxvYyBzeW1ib2xfdHlwZT0iZnVuY3Rpb24iCistU2l6 ZS5hbGxvYyBzeW1ib2xfdHlwZT0iZnVuY3Rpb24iCistVmVydGV4LmFsbG9jIHN5bWJvbF90eXBl PSJmdW5jdGlvbiIKKyAKKyBCaW5BbGlnbm1lbnQgZGVwcmVjYXRlZD1mYWxzZSBkZXByZWNhdGVk X3NpbmNlPW51bGwKKyBCaW5BbGlnbm1lbnQuKiBkZXByZWNhdGVkCitkaWZmIC0tZ2l0IHZhcGkv Q29nbC00Lm1ldGFkYXRhIHZhcGkvQ29nbC02Lm1ldGFkYXRhCitzaW1pbGFyaXR5IGluZGV4IDEw MCUKK3JlbmFtZSBmcm9tIHZhcGkvQ29nbC00Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFwaS9Db2ds LTYubWV0YWRhdGEKK2RpZmYgLS1naXQgdmFwaS9Db2dsLTUubWV0YWRhdGEgdmFwaS9Db2dsLTcu bWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXggOTElCityZW5hbWUgZnJvbSB2YXBpL0NvZ2wtNS5t ZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvQ29nbC03Lm1ldGFkYXRhCitpbmRleCAwOTJiNWUyOS4u ZTUyYmZhMzUgMTAwNjQ0CistLS0gdmFwaS9Db2dsLTUubWV0YWRhdGEKKysrKyB2YXBpL0NvZ2wt Ny5tZXRhZGF0YQorQEAgLTksMTIgKzksMTAgQEAgY3JlYXRlX3NoYWRlciBza2lwCisgCisgCisg aXNfYml0bWFwIHNraXAKKy1pc19tYXRlcmlhbCBza2lwCisgaXNfb2Zmc2NyZWVuIHNraXAKKyBp c19wcm9ncmFtIHNraXAKKyBpc19zaGFkZXIgc2tpcAorIGlzX3RleHR1cmUgc2tpcAorLWlzX3Zl cnRleF9idWZmZXIgc2tpcAorIAorIE1hdHJpeCBzdHJ1Y3QKKyAgIC5nZXRfYXJyYXkgYXJyYXk9 dHJ1ZSBhcnJheV9sZW5ndGhfaWR4PS0xCitkaWZmIC0tZ2l0IHZhcGkvTWV0YS0zLm1ldGFkYXRh IHZhcGkvTWV0YS0zLm1ldGFkYXRhCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDM3 MGQ0OTk2Li4wMDAwMDAwMAorLS0tIHZhcGkvTWV0YS0zLm1ldGFkYXRhCisrKysgL2Rldi9udWxs CitAQCAtMSw2NiArMCwwIEBACistQmFja2VuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEt YmFja2VuZC5oIgorLUJhY2tncm91bmQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tn cm91bmQuaCIKKy1CYWNrZ3JvdW5kQWN0b3IgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCIKKy1CYWNrZ3JvdW5kR3JvdXAgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCIKKy1CYWNrZ3JvdW5kSW1hZ2VDYWNoZSBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oIgorLURpc3BsYXkgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS9kaXNwbGF5LmgiCistTWV0YSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L21haW4uaCIKKy1Nb25pdG9yTWFuYWdlciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgiCistUmVjdGFuZ2xlIHN0cnVjdAorLVBsdWdpbiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL21ldGEtcGx1Z2luLmgiCistUGx1Z2luSW5mbyBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL21ldGEtcGx1Z2luLmgiCistcHJlZnNfKiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3ByZWZz LmgiIHBhcmVudD0iTWV0YS5QcmVmcyIKKy1hZGRfdmVyYm9zZV90b3BpYyBwYXJlbnQ9Ik1ldGEu VXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistYnVnIHBhcmVudD0iTWV0YS5V dGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1kZWJ1Z19zcGV3X3JlYWwgcGFy ZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWVtcHR5X3N0 YWdlX2lucHV0X3JlZ2lvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS91dGlsLmgiCisteDExX2Vycm9yX3RyYXBfcG9wIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy14MTFfZXJyb3JfdHJhcF9wdXNoIHBhcmVudD0iTWV0 YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy14MTFfZXJyb3JfdHJhcF9w b3Bfd2l0aF9yZXR1cm4gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorLWV4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uIHBhcmVudD0iTWV0YS5V dGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1mcmVlX2dzbGlzdF9hbmRfZWxl bWVudHMgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor LWdfdXRmOF9zdHJuZHVwIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3V0aWwuaCIKKy1nZXRfbG9jYWxlX2RpcmVjdGlvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ2V0X292ZXJsYXlfd2luZG93IHBhcmVudD0iTWV0 YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1ncmF2aXR5X3RvX3N0cmlu ZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistaXNf ZGVidWdnaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwu aCIKKy1pc19zeW5jaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3V0aWwuaCIKKy1pc192ZXJib3NlIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3V0aWwuaCIKKy1pc193YXlsYW5kX2NvbXBvc2l0b3IgcGFyZW50PSJNZXRhLlV0aWwi IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWxhdGVyX2FkZCBwYXJlbnQ9Ik1ldGEu VXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistbGF0ZXJfcmVtb3ZlIHBhcmVu dD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1wb3Bfbm9fbXNn X3ByZWZpeCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CistcHVzaF9ub19tc2dfcHJlZml4IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3V0aWwuaCIKKy1yZWN0IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3V0aWwuaCIKKy1yZW1vdmVfdmVyYm9zZV90b3BpYyBwYXJlbnQ9Ik1ldGEuVXRpbCIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiBw YXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistc2hvd19k aWFsb2cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor LXRvcGljX3JlYWwgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRp bC5oIgorLXVuc2lnbmVkX2xvbmdfZXF1YWwgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvdXRpbC5oIgorLXVuc2lnbmVkX2xvbmdfaGFzaCBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistdmVyYm9zZV9yZWFsIHBhcmVudD0i TWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy13YXJuaW5nIHBhcmVu dD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zaG93X2RpYWxv ZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ2V0 X3N0YWdlX2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZ2V0X3dpbmRvd19hY3RvcnMgcGFyZW50 PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCIKKy1nZXRfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3Np dG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZ2V0X3Rv cF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1nZXRfZmVlZGJhY2tfZ3Jv dXBfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1kaXNhYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3Bs YXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCIKKy1lbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1l dGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5o IgorLXNldF9zdGFnZV9pbnB1dF9yZWdpb24gcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1lbXB0eV9zdGFnZV9pbnB1 dF9yZWdpb24gcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCIKKy1mb2N1c19zdGFnZV93aW5kb3cgcGFyZW50PSJNZXRhLkNv bXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1z dGFnZV9pc19mb2N1c2VkIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCista2V5YmluZGluZ3Nfc2V0X2N1c3RvbV9oYW5k bGVyIHBhcmVudD0iTWV0YS5LZXlCaW5kaW5nIiBuYW1lPSJzZXRfY3VzdG9tX2hhbmRsZXIiCist S2V5SGFuZGxlckZ1bmMuZXZlbnQgdHlwZT0iQ2x1dHRlci5LZXlFdmVudD8iCistZ2V0X2JhY2tl bmQgcGFyZW50PSJNZXRhLkJhY2tlbmQiCistV2luZG93LmZvY3VzI3NpZ25hbCBza2lwPXRydWUK Ky1XaW5kb3cuZ2V0X3h3aW5kb3cgc2tpcD1mYWxzZQorLWdldF9vcHRpb25fY29udGV4dCBza2lw PWZhbHNlCistc2V0X2dub21lX3dtX2tleWJpbmRpbmdzIHNraXA9ZmFsc2UKKy1zZXRfd21fbmFt ZSBza2lwPWZhbHNlCistaW5pdCBza2lwPWZhbHNlCistcnVuIHNraXA9ZmFsc2UKKy1zaG93X2Rp YWxvZyBza2lwPWZhbHNlCistZ2V0X2JhY2tlbmQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRh LWJhY2tlbmQuaCIKK2RpZmYgLS1naXQgdmFwaS9NZXRhLTUubWV0YWRhdGEgdmFwaS9NZXRhLTYu bWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9NZXRhLTUu bWV0YWRhdGEKK3JlbmFtZSB0byB2YXBpL01ldGEtNi5tZXRhZGF0YQorZGlmZiAtLWdpdCB2YXBp L01ldGEtNC5tZXRhZGF0YSB2YXBpL01ldGEtNy5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCA3 NiUKK3JlbmFtZSBmcm9tIHZhcGkvTWV0YS00Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFwaS9NZXRh LTcubWV0YWRhdGEKK2luZGV4IGFlMmE3ODE3Li43MjYyOWZiYSAxMDA2NDQKKy0tLSB2YXBpL01l dGEtNC5tZXRhZGF0YQorKysrIHZhcGkvTWV0YS03Lm1ldGFkYXRhCitAQCAtMSwyNiArMSwyMSBA QAorIEJhY2tlbmQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tlbmQuaCIKKyBCYWNr Z3JvdW5kIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiCisgQmFja2dy b3VuZEFjdG9yIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgi CisrQmFja2dyb3VuZENvbnRlbnQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91 bmQtY29udGVudC5oIgorIEJhY2tncm91bmRHcm91cCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oIgorIEJhY2tncm91bmRJbWFnZSBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oIgorIEJhY2tncm91bmRJbWFnZUNhY2hlIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiCisgQmFycmllciBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2JhcnJpZXIuaCIKKyBCYXJyaWVyRXZlbnQgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS9iYXJyaWVyLmgiCistQm94ZXMgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9i b3hlcy5oIgorIENsb3NlRGlhbG9nIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCIKKy1Db21wb3NpdG9yIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci5o IgorLUNvbXBvc2l0b3JNdXR0ZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11 dHRlci5oIgorIEN1cnNvclRyYWNrZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgiCisgRGlzcGxheSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2Rpc3BsYXkuaCIK KyBEbmQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWRuZC5oIgorLUdyb3VwIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvZ3JvdXAuaCIKKyBJZGxlTW9uaXRvciBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgiCisgSW5oaWJpdFNob3J0Y3V0c0RpYWxvZyBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgiCistS2V5Ymlu ZGluZ3MgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9rZXliaW5kaW5ncy5oIgorIExhdW5jaENvbnRl eHQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgiCisgTWV0YSBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21haW4uaCIKKyBNb25pdG9yTWFuYWdlciBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgiCistUGx1Z2luIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKyBQcmVmZXJlbmNlIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvcHJlZnMuaCIKKyBSZW1vdGVBY2Nlc3NDb250cm9sbGVyIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCIKKyBSZW1vdGVBY2Nlc3NIYW5k bGUgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o IgorQEAgLTMxLDkgKzI2LDcgQEAgU291bmRQbGF5ZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oIgorIFN0YWdlIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1z dGFnZS5oIgorIFN0YXJ0dXBOb3RpZmljYXRpb24gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgiCisgVGhlbWUgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS90 aGVtZS5oIgorLVR5cGVzIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdHlwZXMuaCIKKy1VdGlsIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLVZlcnNpb24gY2hlYWRlcl9maWxlbmFtZT0i bWV0YS9tZXRhLXZlcnNpb24uaCIKKytXYXlsYW5kQ2xpZW50IGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvbWV0YS13YXlsYW5kLWNsaWVudC5oIgorIFdpbmRvdyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3dpbmRvdy5oIgorIFdpbmRvd0FjdG9yIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCIKKyBXaW5kb3dHcm91cCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgiCitAQCAtNDYsMTcgKzM5LDExIEBAIFBsdWdpbiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL21ldGEtcGx1Z2luLmgiCisgUGx1Z2luSW5mbyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L21ldGEtcGx1Z2luLmgiCisgcHJlZnNfKiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3ByZWZzLmgi IHBhcmVudD0iTWV0YS5QcmVmcyIKKyBhZGRfdmVyYm9zZV90b3BpYyBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistYnVnIHBhcmVudD0iTWV0YS5VdGls IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1kZWJ1Z19zcGV3X3JlYWwgcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWVtcHR5X3N0YWdl X2lucHV0X3JlZ2lvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91 dGlsLmgiCisgeDExX2Vycm9yX3RyYXBfcG9wIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL3V0aWwuaCIKKyB4MTFfZXJyb3JfdHJhcF9wdXNoIHBhcmVudD0iTWV0YS5V dGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyB4MTFfZXJyb3JfdHJhcF9wb3Bf d2l0aF9yZXR1cm4gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRp bC5oIgorIGV4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uIHBhcmVudD0iTWV0YS5VdGls IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1mcmVlX2dzbGlzdF9hbmRfZWxlbWVu dHMgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdf dXRmOF9zdHJuZHVwIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0 aWwuaCIKKyBnZXRfbG9jYWxlX2RpcmVjdGlvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ2V0X292ZXJsYXlfd2luZG93IHBhcmVudD0iTWV0YS5V dGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBncmF2aXR5X3RvX3N0cmluZyBw YXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgaXNfZGVi dWdnaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIK KyBpc19zeW5jaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0 aWwuaCIKK0BAIC02OCwxMyArNTUsOCBAQCBwb3Bfbm9fbXNnX3ByZWZpeCBwYXJlbnQ9Ik1ldGEu VXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgcHVzaF9ub19tc2dfcHJlZml4 IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyByZWN0 IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyByZW1v dmVfdmVyYm9zZV90b3BpYyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS91dGlsLmgiCistc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistc2hvd19kaWFsb2cgcGFyZW50PSJNZXRhLlV0 aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXRvcGljX3JlYWwgcGFyZW50PSJN ZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHVuc2lnbmVkX2xvbmdf ZXF1YWwgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor IHVuc2lnbmVkX2xvbmdfaGFzaCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS91dGlsLmgiCistdmVyYm9zZV9yZWFsIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL3V0aWwuaCIKKy13YXJuaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBzaG93X2RpYWxvZyBwYXJlbnQ9Ik1ldGEuVXRpbCIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgZ2V0X3N0YWdlX2Zvcl9kaXNwbGF5IHBh cmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiCisgZ2V0X3dpbmRvd19hY3RvcnMgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKK0BAIC04MywxMCArNjUs NyBAQCBnZXRfdG9wX3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9z aXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YQorIGdldF9mZWVkYmFja19ncm91cF9mb3JfZGlz cGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21w b3NpdG9yLW11dHRlci5oIgorIGRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSBwYXJlbnQ9 Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIgorIGVuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3Np dG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistc2V0X3N0 YWdlX2lucHV0X3JlZ2lvbiBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWVtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiBw YXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9y LW11dHRlci5oIgorIGZvY3VzX3N0YWdlX3dpbmRvdyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLXN0YWdlX2lzX2Zv Y3VzZWQgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCIKKyBrZXliaW5kaW5nc19zZXRfY3VzdG9tX2hhbmRsZXIgcGFyZW50 PSJNZXRhLktleUJpbmRpbmciIG5hbWU9InNldF9jdXN0b21faGFuZGxlciIKKyBLZXlIYW5kbGVy RnVuYy5ldmVudCB0eXBlPSJDbHV0dGVyLktleUV2ZW50PyIKKyBnZXRfYmFja2VuZCBwYXJlbnQ9 Ik1ldGEuQmFja2VuZCIKK2RpZmYgLS1naXQgdmFwaS9nZW5lcmF0ZS1tdXR0ZXItdmFwaS5zaCB2 YXBpL2dlbmVyYXRlLW11dHRlci12YXBpLnNoCitpbmRleCA2YjA3MDI0MC4uYjIzM2U1ODYgMTAw NzU1CistLS0gdmFwaS9nZW5lcmF0ZS1tdXR0ZXItdmFwaS5zaAorKysrIHZhcGkvZ2VuZXJhdGUt bXV0dGVyLXZhcGkuc2gKK0BAIC0xLDcgKzEsNyBAQAorICMhL2Jpbi9iYXNoCisgc2V0IC14ZQor IAorLXZlcnNpb249JHsxLTR9CisrdmVyc2lvbj0kezYtN30KKyBnaXJkaXI9JChwa2ctY29uZmln IGxpYm11dHRlci0kdmVyc2lvbiAtLXZhcmlhYmxlPWdpcmRpcikKKyAKKyBjZCAkKGRpcm5hbWUg JDApCitkaWZmIC0tZ2l0IHZhcGkvZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaSB2YXBpL2dyYXBo ZW5lLWdvYmplY3QtMS4wLnZhcGkKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAw MC4uNjk4MDE1MzUKKy0tLSAvZGV2L251bGwKKysrKyB2YXBpL2dyYXBoZW5lLWdvYmplY3QtMS4w LnZhcGkKK0BAIC0wLDAgKzEsNjkxIEBACisrLyogZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaSBn ZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysKKytbQ0NvZGUgKGNwcmVm aXggPSAiR3JhcGhlbmUiLCBnaXJfbmFtZXNwYWNlID0gIkdyYXBoZW5lIiwgZ2lyX3ZlcnNpb24g PSAiMS4wIiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImdyYXBoZW5lXyIpXQorK25hbWVzcGFjZSBH cmFwaGVuZSB7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0 LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9ib3hfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfYm94X2dl dF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGljIHN0cnVj dCBCb3ggeworKwkJcHVibGljIGJvb2wgY29udGFpbnNfYm94IChHcmFwaGVuZS5Cb3ggYik7Cisr CQlwdWJsaWMgYm9vbCBjb250YWluc19wb2ludCAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7Cisr CQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBlbXB0eSAoKTsKKysJCXB1Ymxp YyBib29sIGVxdWFsIChHcmFwaGVuZS5Cb3ggYik7CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IGV4 cGFuZCAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IGV4 cGFuZF9zY2FsYXIgKGZsb2F0IHNjYWxhcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IGV4cGFu ZF92ZWMzIChHcmFwaGVuZS5WZWMzIHZlYyk7CisrCQlwdWJsaWMgR3JhcGhlbmUuU3BoZXJlIGdl dF9ib3VuZGluZ19zcGhlcmUgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfY2Vu dGVyICgpOworKwkJcHVibGljIGZsb2F0IGdldF9kZXB0aCAoKTsKKysJCXB1YmxpYyBmbG9hdCBn ZXRfaGVpZ2h0ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X21heCAoKTsKKysJ CXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9taW4gKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUu VmVjMyBnZXRfc2l6ZSAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF92ZXJ0aWNlcyAoW0NDb2RlIChh cnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBHcmFwaGVuZS5WZWMzIHZlcnRpY2VzWzhdKTsKKysJ CXB1YmxpYyBmbG9hdCBnZXRfd2lkdGggKCk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3Jh cGhlbmUuQm94PyBpbmZpbml0ZSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8g aW5pdCAoR3JhcGhlbmUuUG9pbnQzRD8gbWluLCBHcmFwaGVuZS5Qb2ludDNEPyBtYXgpOworKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBpbml0X2Zyb21fYm94IChHcmFwaGVuZS5Cb3gg c3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gaW5pdF9mcm9tX3BvaW50cyAo W0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wb2ludHMiLCBhcnJheV9sZW5ndGhfcG9z ID0gMC41LCBhcnJheV9sZW5ndGhfdHlwZSA9ICJndWludCIpXSBHcmFwaGVuZS5Qb2ludDNEW10g cG9pbnRzKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gaW5pdF9mcm9tX3ZlYzMg KEdyYXBoZW5lLlZlYzM/IG1pbiwgR3JhcGhlbmUuVmVjMz8gbWF4KTsKKysJCXB1YmxpYyB1bm93 bmVkIEdyYXBoZW5lLkJveD8gaW5pdF9mcm9tX3ZlY3RvcnMgKFtDQ29kZSAoYXJyYXlfbGVuZ3Ro X2NuYW1lID0gIm5fdmVjdG9ycyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUsIGFycmF5X2xlbmd0 aF90eXBlID0gImd1aW50IildIEdyYXBoZW5lLlZlYzNbXSB2ZWN0b3JzKTsKKysJCXB1YmxpYyBi b29sIGludGVyc2VjdGlvbiAoR3JhcGhlbmUuQm94IGIsIG91dCBHcmFwaGVuZS5Cb3ggcmVzKTsK KysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IG1pbnVzX29uZSAoKTsKKysJ CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IG9uZSAoKTsKKysJCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IG9uZV9taW51c19vbmUgKCk7CisrCQlwdWJsaWMg R3JhcGhlbmUuQm94IHVuaW9uIChHcmFwaGVuZS5Cb3ggYik7CisrCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgR3JhcGhlbmUuQm94PyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9ldWxlcl90Iiwg dHlwZV9pZCA9ICJncmFwaGVuZV9ldWxlcl9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisrCXB1YmxpYyBzdHJ1Y3QgRXVsZXIgeworKwkJcHVibGljIGJvb2wgZXF1 YWwgKEdyYXBoZW5lLkV1bGVyIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJ CXB1YmxpYyBmbG9hdCBnZXRfYWxwaGEgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorKwkJcHVibGljIGZsb2F0IGdldF9iZXRhICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfZ2FtbWEgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUu RXVsZXJPcmRlciBnZXRfb3JkZXIgKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CisrCQlw dWJsaWMgZmxvYXQgZ2V0X3kgKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ogKCk7CisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg eik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF9mcm9tX2V1bGVyIChH cmFwaGVuZS5FdWxlcj8gc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBp bml0X2Zyb21fbWF0cml4IChHcmFwaGVuZS5NYXRyaXg/IG0sIEdyYXBoZW5lLkV1bGVyT3JkZXIg b3JkZXIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfZnJvbV9xdWF0 ZXJuaW9uIChHcmFwaGVuZS5RdWF0ZXJuaW9uPyBxLCBHcmFwaGVuZS5FdWxlck9yZGVyIG9yZGVy KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5FdWxlcj8gaW5pdF9mcm9tX3JhZGlhbnMgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHos IEdyYXBoZW5lLkV1bGVyT3JkZXIgb3JkZXIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu RXVsZXI/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzPyB2LCBHcmFwaGVuZS5FdWxlck9y ZGVyIG9yZGVyKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X3dpdGhf b3JkZXIgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIEdyYXBoZW5lLkV1bGVyT3JkZXIgb3Jk ZXIpOworKwkJcHVibGljIEdyYXBoZW5lLkV1bGVyIHJlb3JkZXIgKEdyYXBoZW5lLkV1bGVyT3Jk ZXIgb3JkZXIpOworKwkJcHVibGljIEdyYXBoZW5lLk1hdHJpeCB0b19tYXRyaXggKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24g dG9fcXVhdGVybmlvbiAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIHRvX3ZlYzMgKCk7Cisr CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNu YW1lID0gImdyYXBoZW5lX2ZydXN0dW1fdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfZnJ1c3R1bV9n ZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCXB1YmxpYyBzdHJ1 Y3QgRnJ1c3R1bSB7CisrCQlwdWJsaWMgYm9vbCBjb250YWluc19wb2ludCAoR3JhcGhlbmUuUG9p bnQzRCBwb2ludCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisrCQlwdWJsaWMgYm9v bCBlcXVhbCAoR3JhcGhlbmUuRnJ1c3R1bSBiKTsKKysJCXB1YmxpYyB2b2lkIGdldF9wbGFuZXMg KFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgR3JhcGhlbmUuUGxhbmUgcGxhbmVz WzZdKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkZydXN0dW0/IGluaXQgKEdyYXBoZW5l LlBsYW5lIHAwLCBHcmFwaGVuZS5QbGFuZSBwMSwgR3JhcGhlbmUuUGxhbmUgcDIsIEdyYXBoZW5l LlBsYW5lIHAzLCBHcmFwaGVuZS5QbGFuZSBwNCwgR3JhcGhlbmUuUGxhbmUgcDUpOworKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuRnJ1c3R1bT8gaW5pdF9mcm9tX2ZydXN0dW0gKEdyYXBoZW5l LkZydXN0dW0gc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkZydXN0dW0/IGluaXRf ZnJvbV9tYXRyaXggKEdyYXBoZW5lLk1hdHJpeCBtYXRyaXgpOworKwkJcHVibGljIGJvb2wgaW50 ZXJzZWN0c19ib3ggKEdyYXBoZW5lLkJveCBib3gpOworKwkJcHVibGljIGJvb2wgaW50ZXJzZWN0 c19zcGhlcmUgKEdyYXBoZW5lLlNwaGVyZSBzcGhlcmUpOworKwl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9tYXRy aXhfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfbWF0cml4X2dldF90eXBlICgpIildCisrCXB1Ymxp YyBzdHJ1Y3QgTWF0cml4IHsKKysJCXB1YmxpYyBib29sIGRlY29tcG9zZSAob3V0IEdyYXBoZW5l LlZlYzMgdHJhbnNsYXRlLCBvdXQgR3JhcGhlbmUuVmVjMyBzY2FsZSwgb3V0IEdyYXBoZW5lLlF1 YXRlcm5pb24gcm90YXRlLCBvdXQgR3JhcGhlbmUuVmVjMyBzaGVhciwgb3V0IEdyYXBoZW5lLlZl YzQgcGVyc3BlY3RpdmUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IGZsb2F0IGRldGVybWluYW50ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJ CXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5NYXRyaXggYik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wgZXF1YWxfZmFzdCAoR3JhcGhlbmUuTWF0cml4 IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZl YzQgZ2V0X3JvdyAodWludCBpbmRleF8pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIGZsb2F0IGdldF92YWx1ZSAodWludCByb3csIHVpbnQgY29sKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeF9zY2FsZSAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3hfdHJhbnNs YXRpb24gKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQg Z2V0X3lfc2NhbGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGlj IGZsb2F0IGdldF95X3RyYW5zbGF0aW9uICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIGZsb2F0IGdldF96X3NjYWxlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfel90cmFuc2xhdGlvbiAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8g aW5pdF9mcm9tXzJkIChkb3VibGUgeHgsIGRvdWJsZSB5eCwgZG91YmxlIHh5LCBkb3VibGUgeXks IGRvdWJsZSB4XzAsIGRvdWJsZSB5XzApOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2Zyb21fZmxvYXQgKFtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCB2WzE2XSk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfZnJv bV9tYXRyaXggKEdyYXBoZW5lLk1hdHJpeCBzcmMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2Zyb21fdmVjNCAo R3JhcGhlbmUuVmVjNCB2MCwgR3JhcGhlbmUuVmVjNCB2MSwgR3JhcGhlbmUuVmVjNCB2MiwgR3Jh cGhlbmUuVmVjNCB2Myk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQg cmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFy KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLk1hdHJpeD8gaW5pdF9pZGVudGl0eSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9sb29rX2F0IChHcmFw aGVuZS5WZWMzIGV5ZSwgR3JhcGhlbmUuVmVjMyBjZW50ZXIsIEdyYXBoZW5lLlZlYzMgdXApOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu TWF0cml4PyBpbml0X29ydGhvIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgdG9wLCBm bG9hdCBib3R0b20sIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X3Bl cnNwZWN0aXZlIChmbG9hdCBmb3Z5LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQg el9mYXIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuTWF0cml4PyBpbml0X3JvdGF0ZSAoZmxvYXQgYW5nbGUsIEdyYXBoZW5lLlZlYzMg YXhpcyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5NYXRyaXg/IGluaXRfc2NhbGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu TWF0cml4PyBpbml0X3NrZXcgKGZsb2F0IHhfc2tldywgZmxvYXQgeV9za2V3KTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8g aW5pdF90cmFuc2xhdGUgKEdyYXBoZW5lLlBvaW50M0QgcCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IGludGVycG9sYXRlIChHcmFwaGVu ZS5NYXRyaXggYiwgZG91YmxlIGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgYm9vbCBpbnZlcnNlIChvdXQgR3JhcGhlbmUuTWF0cml4IHJlcyk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgYm9vbCBpc18yZCAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIGlzX2JhY2tmYWNlX3Zpc2li bGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgYm9vbCBpc19p ZGVudGl0eSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29s IGlzX3Npbmd1bGFyICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IEdyYXBoZW5lLk1hdHJpeCBtdWx0aXBseSAoR3JhcGhlbmUuTWF0cml4IGIpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5lLk1hdHJp eCBiLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5NYXRyaXggbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLk1hdHJpeCBwZXJzcGVjdGl2ZSAoZmxvYXQgZGVw dGgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgcHJpbnQg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9p bnQgcHJvamVjdF9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhZCBwcm9qZWN0X3JlY3QgKEdyYXBoZW5l LlJlY3Qgcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhl bmUuUmVjdCBwcm9qZWN0X3JlY3RfYm91bmRzIChHcmFwaGVuZS5SZWN0IHIpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwg R3JhcGhlbmUuVmVjMyBheGlzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1 YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZSk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoR3JhcGhl bmUuUXVhdGVybmlvbiBxKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyB2b2lkIHJvdGF0ZV94IChmbG9hdCBhbmdsZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgdm9pZCByb3RhdGVfeSAoZmxvYXQgYW5nbGUpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgcm90YXRlX3ogKGZsb2F0IGFuZ2xlKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9h dCBmYWN0b3JfeCwgZmxvYXQgZmFjdG9yX3ksIGZsb2F0IGZhY3Rvcl96KTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHNrZXdfeHkgKGZsb2F0IGZhY3Rvcik7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBza2V3X3h6IChm bG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZv aWQgc2tld195eiAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBib29sIHRvXzJkIChvdXQgZG91YmxlIHh4LCBvdXQgZG91YmxlIHl4LCBvdXQg ZG91YmxlIHh5LCBvdXQgZG91YmxlIHl5LCBvdXQgZG91YmxlIHhfMCwgb3V0IGRvdWJsZSB5XzAp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdG9fZmxvYXQg KFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgdlsxNl0pOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgdHJhbnNmb3Jt X2JvdW5kcyAoR3JhcGhlbmUuUmVjdCByKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggdHJhbnNmb3JtX2JveCAoR3JhcGhlbmUuQm94IGIpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IHRy YW5zZm9ybV9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCB0cmFuc2Zvcm1fcG9pbnQzZCAoR3Jh cGhlbmUuUG9pbnQzRCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5SYXkgdHJhbnNmb3JtX3JheSAoR3JhcGhlbmUuUmF5IHIpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlF1YWQgdHJhbnNmb3JtX3Jl Y3QgKEdyYXBoZW5lLlJlY3Qgcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlw dWJsaWMgR3JhcGhlbmUuU3BoZXJlIHRyYW5zZm9ybV9zcGhlcmUgKEdyYXBoZW5lLlNwaGVyZSBz KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMz IHRyYW5zZm9ybV92ZWMzIChHcmFwaGVuZS5WZWMzIHYpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgdHJhbnNmb3JtX3ZlYzQgKEdyYXBoZW5l LlZlYzQgdik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCB0 cmFuc2xhdGUgKEdyYXBoZW5lLlBvaW50M0QgcG9zKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5NYXRyaXggdHJhbnNwb3NlICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgdW5wcm9qZWN0 X3BvaW50M2QgKEdyYXBoZW5lLk1hdHJpeCBtb2RlbHZpZXcsIEdyYXBoZW5lLlBvaW50M0QgcG9p bnQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJl Y3QgdW50cmFuc2Zvcm1fYm91bmRzIChHcmFwaGVuZS5SZWN0IHIsIEdyYXBoZW5lLlJlY3QgYm91 bmRzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIHVudHJh bnNmb3JtX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwLCBHcmFwaGVuZS5SZWN0IGJvdW5kcywgb3V0 IEdyYXBoZW5lLlBvaW50IHJlcyk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3BsYW5lX3QiLCB0eXBlX2lk ID0gImdyYXBoZW5lX3BsYW5lX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKysJcHVibGljIHN0cnVjdCBQbGFuZSB7CisrCQlwdWJsaWMgZmxvYXQgZGlzdGFuY2Ug KEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5l LlBsYW5lIGIpOworKwkJcHVibGljIGZsb2F0IGdldF9jb25zdGFudCAoKTsKKysJCXB1YmxpYyBH cmFwaGVuZS5WZWMzIGdldF9ub3JtYWwgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Q bGFuZT8gaW5pdCAoR3JhcGhlbmUuVmVjMz8gbm9ybWFsLCBmbG9hdCBjb25zdGFudCk7CisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5QbGFuZT8gaW5pdF9mcm9tX3BsYW5lIChHcmFwaGVuZS5Q bGFuZSBzcmMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUGxhbmU/IGluaXRfZnJvbV9w b2ludCAoR3JhcGhlbmUuVmVjMyBub3JtYWwsIEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuUGxhbmU/IGluaXRfZnJvbV9wb2ludHMgKEdyYXBoZW5l LlBvaW50M0QgYSwgR3JhcGhlbmUuUG9pbnQzRCBiLCBHcmFwaGVuZS5Qb2ludDNEIGMpOworKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuUGxhbmU/IGluaXRfZnJvbV92ZWM0IChHcmFwaGVuZS5W ZWM0IHNyYyk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUGxhbmUgbmVnYXRlICgpOworKwkJcHVibGlj IEdyYXBoZW5lLlBsYW5lIG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUGxhbmUgdHJhbnNmb3JtIChHcmFwaGVuZS5NYXRyaXgg bWF0cml4LCBHcmFwaGVuZS5NYXRyaXg/IG5vcm1hbF9tYXRyaXgpOworKwl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVu ZV9wb2ludF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9wb2ludF9nZXRfdHlwZSAoKSIpXQorKwlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBzdHJ1Y3QgUG9pbnQgeworKwkJcHVi bGljIGZsb2F0IHg7CisrCQlwdWJsaWMgZmxvYXQgeTsKKysJCXB1YmxpYyBmbG9hdCBkaXN0YW5j ZSAoR3JhcGhlbmUuUG9pbnQgYiwgb3V0IGZsb2F0IGRfeCwgb3V0IGZsb2F0IGRfeSk7CisrCQlw dWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUG9pbnQgYik7CisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5Qb2ludD8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSk7CisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5Qb2ludD8gaW5pdF9mcm9tX3BvaW50IChHcmFwaGVuZS5Qb2ludCBzcmMpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu UG9pbnQ/IGluaXRfZnJvbV92ZWMyIChHcmFwaGVuZS5WZWMyIHNyYyk7CisrCQlwdWJsaWMgR3Jh cGhlbmUuUG9pbnQgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlBvaW50IGIsIGRvdWJsZSBmYWN0b3Ip OworKwkJcHVibGljIGJvb2wgbmVhciAoR3JhcGhlbmUuUG9pbnQgYiwgZmxvYXQgZXBzaWxvbik7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiB0 b192ZWMyICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyB6ZXJv ICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0 LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9wb2ludDNkX3QiLCBsb3dlcl9jYXNlX2NzdWZmaXggPSAi cG9pbnQzZCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcG9pbnQzZF9nZXRfdHlwZSAoKSIpXQorKwlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBzdHJ1Y3QgUG9pbnQzRCB7CisrCQlw dWJsaWMgZmxvYXQgeDsKKysJCXB1YmxpYyBmbG9hdCB5OworKwkJcHVibGljIGZsb2F0IHo7Cisr CQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBjcm9zcyAoR3JhcGhlbmUuUG9pbnQzRCBiKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBmbG9hdCBkaXN0YW5jZSAoR3Jh cGhlbmUuUG9pbnQzRCBiLCBvdXQgR3JhcGhlbmUuVmVjMyBkZWx0YSk7CisrCQlwdWJsaWMgZmxv YXQgZG90IChHcmFwaGVuZS5Qb2ludDNEIGIpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBo ZW5lLlBvaW50M0QgYik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEPyBpbml0 IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlBvaW50M0Q/IGluaXRfZnJvbV9wb2ludCAoR3JhcGhlbmUuUG9pbnQzRCBzcmMpOworKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRD8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZl YzMgdik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUu UG9pbnQzRCBiLCBkb3VibGUgZmFjdG9yKTsKKysJCXB1YmxpYyBmbG9hdCBsZW5ndGggKCk7Cisr CQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5Qb2ludDNEIGIsIGZsb2F0IGVwc2lsb24pOwor KwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0Qgbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0Qgbm9ybWFsaXplX3ZpZXdw b3J0IChHcmFwaGVuZS5SZWN0IHZpZXdwb3J0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsK KysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJcHVi bGljIEdyYXBoZW5lLlZlYzMgdG9fdmVjMyAoKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH cmFwaGVuZS5Qb2ludDNEPyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9xdWFkX3QiLCB0eXBl X2lkID0gImdyYXBoZW5lX3F1YWRfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwlwdWJsaWMgc3RydWN0IFF1YWQgeworKwkJcHVibGljIEdyYXBoZW5lLlJlY3Qg Ym91bmRzICgpOworKwkJcHVibGljIGJvb2wgY29udGFpbnMgKEdyYXBoZW5lLlBvaW50IHApOwor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQ/IGdldF9wb2ludCAodWludCBpbmRleF8p OworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhZD8gaW5pdCAoR3JhcGhlbmUuUG9pbnQg cDEsIEdyYXBoZW5lLlBvaW50IHAyLCBHcmFwaGVuZS5Qb2ludCBwMywgR3JhcGhlbmUuUG9pbnQg cDQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuUXVhZD8gaW5pdF9mcm9tX3BvaW50cyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldIEdyYXBoZW5lLlBvaW50IHBvaW50c1s0XSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5RdWFkPyBpbml0X2Zyb21fcmVjdCAoR3JhcGhlbmUuUmVjdCByKTsKKysJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhl bmVfcXVhdGVybmlvbl90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9xdWF0ZXJuaW9uX2dldF90eXBl ICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIHN0cnVjdCBRdWF0 ZXJuaW9uIHsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhl bmUuUXVhdGVybmlvbiBhZGQgKEdyYXBoZW5lLlF1YXRlcm5pb24gYik7CisrCQlwdWJsaWMgZmxv YXQgZG90IChHcmFwaGVuZS5RdWF0ZXJuaW9uIGIpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdy YXBoZW5lLlF1YXRlcm5pb24gYik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJu aW9uPyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6LCBmbG9hdCB3KTsKKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXRfZnJvbV9hbmdsZV92ZWMzIChmbG9h dCBhbmdsZSwgR3JhcGhlbmUuVmVjMyBheGlzKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlF1YXRlcm5pb24/IGluaXRfZnJvbV9hbmdsZXMgKGZsb2F0IGRlZ194LCBmbG9hdCBkZWdfeSwg ZmxvYXQgZGVnX3opOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX2V1bGVyIChHcmFwaGVuZS5FdWxl ciBlKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXRfZnJvbV9t YXRyaXggKEdyYXBoZW5lLk1hdHJpeCBtKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1 YXRlcm5pb24/IGluaXRfZnJvbV9xdWF0ZXJuaW9uIChHcmFwaGVuZS5RdWF0ZXJuaW9uIHNyYyk7 CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21fcmFkaWFu cyAoZmxvYXQgcmFkX3gsIGZsb2F0IHJhZF95LCBmbG9hdCByYWRfeik7CisrCQlwdWJsaWMgdW5v d25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21fdmVjNCAoR3JhcGhlbmUuVmVjNCBz cmMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9pZGVudGl0 eSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIGludmVydCAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlvbiBtdWx0 aXBseSAoR3JhcGhlbmUuUXVhdGVybmlvbiBiKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJu aW9uIG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJs aWMgR3JhcGhlbmUuUXVhdGVybmlvbiBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyBH cmFwaGVuZS5RdWF0ZXJuaW9uIHNsZXJwIChHcmFwaGVuZS5RdWF0ZXJuaW9uIGIsIGZsb2F0IGZh Y3Rvcik7CisrCQlwdWJsaWMgdm9pZCB0b19hbmdsZV92ZWMzIChvdXQgZmxvYXQgYW5nbGUsIG91 dCBHcmFwaGVuZS5WZWMzIGF4aXMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJ cHVibGljIHZvaWQgdG9fYW5nbGVzIChvdXQgZmxvYXQgZGVnX3gsIG91dCBmbG9hdCBkZWdfeSwg b3V0IGZsb2F0IGRlZ196KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5NYXRyaXggdG9fbWF0cml4ICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHZvaWQgdG9fcmFkaWFu cyAob3V0IGZsb2F0IHJhZF94LCBvdXQgZmxvYXQgcmFkX3ksIG91dCBmbG9hdCByYWRfeik7Cisr CQlwdWJsaWMgR3JhcGhlbmUuVmVjNCB0b192ZWM0ICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9yYXlf dCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcmF5X2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKysJcHVibGljIHN0cnVjdCBSYXkgeworKwkJcHVibGljIGJvb2wgZXF1 YWwgKEdyYXBoZW5lLlJheSBiKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9jbG9z ZXN0X3BvaW50X3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJcHVibGljIEdyYXBo ZW5lLlZlYzMgZ2V0X2RpcmVjdGlvbiAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfZGlzdGFuY2Vf dG9fcGxhbmUgKEdyYXBoZW5lLlBsYW5lIHApOworKwkJcHVibGljIGZsb2F0IGdldF9kaXN0YW5j ZV90b19wb2ludCAoR3JhcGhlbmUuUG9pbnQzRCBwKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2lu dDNEIGdldF9vcmlnaW4gKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfcG9zaXRp b25fYXQgKGZsb2F0IHQpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmF5PyBpbml0IChH cmFwaGVuZS5Qb2ludDNEPyBvcmlnaW4sIEdyYXBoZW5lLlZlYzM/IGRpcmVjdGlvbik7CisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SYXk/IGluaXRfZnJvbV9yYXkgKEdyYXBoZW5lLlJheSBz cmMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmF5PyBpbml0X2Zyb21fdmVjMyAoR3Jh cGhlbmUuVmVjMz8gb3JpZ2luLCBHcmFwaGVuZS5WZWMzPyBkaXJlY3Rpb24pOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SYXlJbnRlcnNlY3Rpb25L aW5kIGludGVyc2VjdF9ib3ggKEdyYXBoZW5lLkJveCBiLCBvdXQgZmxvYXQgdF9vdXQpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SYXlJbnRlcnNl Y3Rpb25LaW5kIGludGVyc2VjdF9zcGhlcmUgKEdyYXBoZW5lLlNwaGVyZSBzLCBvdXQgZmxvYXQg dF9vdXQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5SYXlJbnRlcnNlY3Rpb25LaW5kIGludGVyc2VjdF90cmlhbmdsZSAoR3JhcGhlbmUuVHJpYW5n bGUgdCwgb3V0IGZsb2F0IHRfb3V0KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisr CQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX2JveCAoR3JhcGhlbmUuQm94IGIpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfc3BoZXJlIChH cmFwaGVuZS5TcGhlcmUgcyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVi bGljIGJvb2wgaW50ZXJzZWN0c190cmlhbmdsZSAoR3JhcGhlbmUuVHJpYW5nbGUgdCk7CisrCX0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1l ID0gImdyYXBoZW5lX3JlY3RfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcmVjdF9nZXRfdHlwZSAo KSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBzdHJ1Y3QgUmVjdCB7 CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgb3JpZ2luOworKwkJcHVibGljIEdyYXBoZW5lLlNp emUgc2l6ZTsKKysJCXB1YmxpYyBzdGF0aWMgR3JhcGhlbmUuUmVjdD8gYWxsb2MgKCk7CisrCQlw dWJsaWMgYm9vbCBjb250YWluc19wb2ludCAoR3JhcGhlbmUuUG9pbnQgcCk7CisrCQlwdWJsaWMg Ym9vbCBjb250YWluc19yZWN0IChHcmFwaGVuZS5SZWN0IGIpOworKwkJcHVibGljIGJvb2wgZXF1 YWwgKEdyYXBoZW5lLlJlY3QgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlw dWJsaWMgR3JhcGhlbmUuUmVjdCBleHBhbmQgKEdyYXBoZW5lLlBvaW50IHApOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfYXJlYSAoKTsKKysJCXB1 YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRfYm90dG9tX2xlZnQgKCk7CisrCQlwdWJsaWMgR3JhcGhl bmUuUG9pbnQgZ2V0X2JvdHRvbV9yaWdodCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBn ZXRfY2VudGVyICgpOworKwkJcHVibGljIGZsb2F0IGdldF9oZWlnaHQgKCk7CisrCQlwdWJsaWMg R3JhcGhlbmUuUG9pbnQgZ2V0X3RvcF9sZWZ0ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50 IGdldF90b3BfcmlnaHQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJs aWMgdm9pZCBnZXRfdmVydGljZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYg R3JhcGhlbmUuVmVjMiB2ZXJ0aWNlc1s0XSk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3dpZHRoICgp OworKwkJcHVibGljIGZsb2F0IGdldF94ICgpOworKwkJcHVibGljIGZsb2F0IGdldF95ICgpOwor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmVjdD8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwg ZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5S ZWN0PyBpbml0X2Zyb21fcmVjdCAoR3JhcGhlbmUuUmVjdCBzcmMpOworKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuUmVjdD8gaW5zZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGluc2V0X3IgKGZs b2F0IGRfeCwgZmxvYXQgZF95KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGludGVycG9sYXRl IChHcmFwaGVuZS5SZWN0IGIsIGRvdWJsZSBmYWN0b3IpOworKwkJcHVibGljIGJvb2wgaW50ZXJz ZWN0aW9uIChHcmFwaGVuZS5SZWN0IGIsIG91dCBHcmFwaGVuZS5SZWN0IHJlcyk7CisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyBub3JtYWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBub3JtYWxpemVfciAoKTsKKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IG9mZnNldCAoZmxvYXQgZF94LCBmbG9hdCBk X3kpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJl Y3Qgb2Zmc2V0X3IgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKysJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS40IildCisr CQlwdWJsaWMgR3JhcGhlbmUuUmVjdCByb3VuZCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCByb3VuZF9leHRlbnRzICgpOworKwkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNCIsIHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmVjdD8gcm91bmRfdG9fcGl4 ZWwgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5l LlJlY3Qgc2NhbGUgKGZsb2F0IHNfaCwgZmxvYXQgc192KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5S ZWN0IHVuaW9uIChHcmFwaGVuZS5SZWN0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IHplcm8gKCk7CisrCX0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1l ID0gImdyYXBoZW5lX3NpbWQ0Zl90IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBz dHJ1Y3QgU2ltZDRGIHsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhl bmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfc2ltZDR4NGZfdCIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorKwlwdWJsaWMgc3RydWN0IFNpbWQ0WDRGIHsKKysJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVf c2l6ZV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9zaXplX2dldF90eXBlICgpIildCisrCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIHN0cnVjdCBTaXplIHsKKysJCXB1YmxpYyBm bG9hdCB3aWR0aDsKKysJCXB1YmxpYyBmbG9hdCBoZWlnaHQ7CisrCQlwdWJsaWMgYm9vbCBlcXVh bCAoR3JhcGhlbmUuU2l6ZSBiKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlNpemU/IGlu aXQgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuU2l6ZT8gaW5pdF9mcm9tX3NpemUgKEdyYXBoZW5lLlNpemUgc3JjKTsKKysJCXB1YmxpYyBH cmFwaGVuZS5TaXplIGludGVycG9sYXRlIChHcmFwaGVuZS5TaXplIGIsIGRvdWJsZSBmYWN0b3Ip OworKwkJcHVibGljIEdyYXBoZW5lLlNpemUgc2NhbGUgKGZsb2F0IGZhY3Rvcik7CisrCQlwdWJs aWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuU2l6ZT8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhl bmVfc3BoZXJlX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3NwaGVyZV9nZXRfdHlwZSAoKSIpXQor KwlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCXB1YmxpYyBzdHJ1Y3QgU3BoZXJlIHsKKysJ CXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJ CXB1YmxpYyBmbG9hdCBkaXN0YW5jZSAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJs aWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuU3BoZXJlIGIpOworKwkJcHVibGljIEdyYXBoZW5lLkJv eCBnZXRfYm91bmRpbmdfYm94ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X2Nl bnRlciAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfcmFkaXVzICgpOworKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuU3BoZXJlPyBpbml0IChHcmFwaGVuZS5Qb2ludDNEPyBjZW50ZXIsIGZsb2F0 IHJhZGl1cyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TcGhlcmU/IGluaXRfZnJvbV9w b2ludHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcG9pbnRzIiwgYXJyYXlfbGVu Z3RoX3BvcyA9IDAuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gR3JhcGhlbmUuUG9p bnQzRFtdIHBvaW50cywgR3JhcGhlbmUuUG9pbnQzRD8gY2VudGVyKTsKKysJCXB1YmxpYyB1bm93 bmVkIEdyYXBoZW5lLlNwaGVyZT8gaW5pdF9mcm9tX3ZlY3RvcnMgKFtDQ29kZSAoYXJyYXlfbGVu Z3RoX2NuYW1lID0gIm5fdmVjdG9ycyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUsIGFycmF5X2xl bmd0aF90eXBlID0gImd1aW50IildIEdyYXBoZW5lLlZlYzNbXSB2ZWN0b3JzLCBHcmFwaGVuZS5Q b2ludDNEPyBjZW50ZXIpOworKwkJcHVibGljIGJvb2wgaXNfZW1wdHkgKCk7CisrCQlwdWJsaWMg R3JhcGhlbmUuU3BoZXJlIHRyYW5zbGF0ZSAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCX0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1l ID0gImdyYXBoZW5lX3RyaWFuZ2xlX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3RyaWFuZ2xlX2dl dF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGljIHN0cnVj dCBUcmlhbmdsZSB7CisrCQlwdWJsaWMgYm9vbCBjb250YWluc19wb2ludCAoR3JhcGhlbmUuUG9p bnQzRCBwKTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5UcmlhbmdsZSBiKTsKKysJ CXB1YmxpYyBmbG9hdCBnZXRfYXJlYSAoKTsKKysJCXB1YmxpYyBib29sIGdldF9iYXJ5Y29vcmRz IChHcmFwaGVuZS5Qb2ludDNEPyBwLCBvdXQgR3JhcGhlbmUuVmVjMiByZXMpOworKwkJcHVibGlj IEdyYXBoZW5lLkJveCBnZXRfYm91bmRpbmdfYm94ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBv aW50M0QgZ2V0X21pZHBvaW50ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X25vcm1h bCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5QbGFuZSBnZXRfcGxhbmUgKCk7CisrCQlwdWJsaWMg dm9pZCBnZXRfcG9pbnRzIChvdXQgR3JhcGhlbmUuUG9pbnQzRCBhLCBvdXQgR3JhcGhlbmUuUG9p bnQzRCBiLCBvdXQgR3JhcGhlbmUuUG9pbnQzRCBjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisrCQlwdWJsaWMgYm9vbCBnZXRfdXYgKEdyYXBoZW5lLlBvaW50M0Q/IHAsIEdyYXBo ZW5lLlZlYzIgdXZfYSwgR3JhcGhlbmUuVmVjMiB1dl9iLCBHcmFwaGVuZS5WZWMyIHV2X2MsIG91 dCBHcmFwaGVuZS5WZWMyIHJlcyk7CisrCQlwdWJsaWMgdm9pZCBnZXRfdmVydGljZXMgKG91dCBH cmFwaGVuZS5WZWMzIGEsIG91dCBHcmFwaGVuZS5WZWMzIGIsIG91dCBHcmFwaGVuZS5WZWMzIGMp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLlRyaWFuZ2xlPyBpbml0X2Zyb21fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFs c2UpXSBmbG9hdCBhWzNdLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgYlsz XSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IGNbM10pOworKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuVHJpYW5nbGU/IGluaXRfZnJvbV9wb2ludDNkIChHcmFwaGVuZS5Q b2ludDNEPyBhLCBHcmFwaGVuZS5Qb2ludDNEPyBiLCBHcmFwaGVuZS5Qb2ludDNEPyBjKTsKKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlRyaWFuZ2xlPyBpbml0X2Zyb21fdmVjMyAoR3JhcGhl bmUuVmVjMz8gYSwgR3JhcGhlbmUuVmVjMz8gYiwgR3JhcGhlbmUuVmVjMz8gYyk7CisrCX0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0g ImdyYXBoZW5lX3ZlYzJfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfdmVjMl9nZXRfdHlwZSAoKSIp XQorKwlwdWJsaWMgc3RydWN0IFZlYzIgeworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlZlYzIgYWRkIChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgZGl2aWRlIChHcmFw aGVuZS5WZWMyIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZs b2F0IGRvdCAoR3JhcGhlbmUuVmVjMiBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K KysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5WZWMyIHYyKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/IGluaXQgKGZs b2F0IHgsIGZsb2F0IHkpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuVmVjMj8gaW5pdF9mcm9tX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xl bmd0aCA9IGZhbHNlKV0gZmxvYXQgc3JjWzJdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/IGluaXRfZnJvbV92ZWMyIChHcmFw aGVuZS5WZWMyIHNyYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlZlYzIgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlZlYzIgdjIsIGRvdWJsZSBmYWN0 b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGxlbmd0 aCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5W ZWMyIG1heCAoR3JhcGhlbmUuVmVjMiBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIG1pbiAoR3JhcGhlbmUuVmVjMiBiKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIG11bHRpcGx5IChH cmFwaGVuZS5WZWMyIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGlj IGJvb2wgbmVhciAoR3JhcGhlbmUuVmVjMiB2MiwgZmxvYXQgZXBzaWxvbik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBuZWdhdGUgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBub3Jt YWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgR3JhcGhlbmUuVmVjMj8gb25lICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgc2NhbGUgKGZsb2F0IGZhY3Rvcik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBzdWJ0cmFj dCAoR3JhcGhlbmUuVmVjMiBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyB2b2lkIHRvX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIGZs b2F0IGRlc3RbMl0pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0 YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/IHhfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyB5X2F4 aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgR3JhcGhlbmUuVmVjMj8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfdmVjM190Iiwg dHlwZV9pZCA9ICJncmFwaGVuZV92ZWMzX2dldF90eXBlICgpIildCisrCXB1YmxpYyBzdHJ1Y3Qg VmVjMyB7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUu VmVjMyBhZGQgKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBjcm9zcyAoR3JhcGhlbmUuVmVjMyBiKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGRpdmlkZSAo R3JhcGhlbmUuVmVjMyBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyBmbG9hdCBkb3QgKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuVmVjMyB2Mik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBnZXRfeHkgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRf eHkwICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5l LlZlYzQgZ2V0X3h5ejAgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgR3JhcGhlbmUuVmVjNCBnZXRfeHl6MSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGdldF94eXp3IChmbG9hdCB3KTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeiAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IGlu aXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8gaW5pdF9mcm9tX2Zsb2F0IChb Q0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgc3JjWzNdKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IGluaXRf ZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzIHNyYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlZlYzMg djIsIGRvdWJsZSBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIGZsb2F0IGxlbmd0aCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5WZWMzIG1heCAoR3JhcGhlbmUuVmVjMyBiKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIG1pbiAoR3JhcGhlbmUuVmVj MyBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5W ZWMzIG11bHRpcGx5IChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorKwkJcHVibGljIGJvb2wgbmVhciAoR3JhcGhlbmUuVmVjMyB2MiwgZmxvYXQgZXBzaWxv bik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVj MyBuZWdhdGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3Jh cGhlbmUuVmVjMyBub3JtYWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8gb25lICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgc2NhbGUgKGZsb2F0 IGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjMyBzdWJ0cmFjdCAoR3JhcGhlbmUuVmVjMyBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHRvX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0gcmVmIGZsb2F0IGRlc3RbM10pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IHhfYXhpcyAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFw aGVuZS5WZWMzPyB5X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8gel9heGlzICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZl YzM/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5l LWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3ZlYzRfdCIsIHR5cGVfaWQgPSAiZ3JhcGhl bmVfdmVjNF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgc3RydWN0IFZlYzQgeworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgYWRkIChHcmFwaGVu ZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBo ZW5lLlZlYzQgZGl2aWRlIChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGRvdCAoR3JhcGhlbmUuVmVjNCBiKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5WZWM0 IHYyKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRf dyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRf eCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5W ZWMyIGdldF94eSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5WZWMzIGdldF94eXogKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgZmxvYXQgZ2V0X3ogKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBm bG9hdCB6LCBmbG9hdCB3KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IGluaXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldIGZsb2F0IHNyY1s0XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyBpbml0X2Zyb21fdmVjMiAoR3Jh cGhlbmUuVmVjMiBzcmMsIGZsb2F0IHosIGZsb2F0IHcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gaW5pdF9mcm9tX3ZlYzMg KEdyYXBoZW5lLlZlYzMgc3JjLCBmbG9hdCB3KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IGluaXRfZnJvbV92ZWM0IChHcmFw aGVuZS5WZWM0IHNyYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlZlYzQgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlZlYzQgdjIsIGRvdWJsZSBmYWN0 b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGxlbmd0 aCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5W ZWM0IG1heCAoR3JhcGhlbmUuVmVjNCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IG1pbiAoR3JhcGhlbmUuVmVjNCBiKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IG11bHRpcGx5IChH cmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGlj IGJvb2wgbmVhciAoR3JhcGhlbmUuVmVjNCB2MiwgZmxvYXQgZXBzaWxvbik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBuZWdhdGUgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBub3Jt YWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgR3JhcGhlbmUuVmVjND8gb25lICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgc2NhbGUgKGZsb2F0IGZhY3Rvcik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBzdWJ0cmFj dCAoR3JhcGhlbmUuVmVjNCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyB2b2lkIHRvX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIGZs b2F0IGRlc3RbNF0pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0 YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IHdfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyB4X2F4 aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgR3JhcGhlbmUuVmVjND8geV9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IHpfYXhpcyAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH cmFwaGVuZS5WZWM0PyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9ldWxlcl9vcmRlcl90Iiwg Y3ByZWZpeCA9ICJHUkFQSEVORV9FVUxFUl9PUkRFUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgZW51bSBFdWxlck9yZGVyIHsK KysJCURFRkFVTFQsCisrCQlYWVosCisrCQlZWlgsCisrCQlaWFksCisrCQlYWlksCisrCQlZWFos CisrCQlaWVgsCisrCQlTWFlaLAorKwkJU1hZWCwKKysJCVNYWlksCisrCQlTWFpYLAorKwkJU1la WCwKKysJCVNZWlksCisrCQlTWVhaLAorKwkJU1lYWSwKKysJCVNaWFksCisrCQlTWlhaLAorKwkJ U1pZWCwKKysJCVNaWVosCisrCQlSWllYLAorKwkJUlhZWCwKKysJCVJZWlgsCisrCQlSWFpYLAor KwkJUlhaWSwKKysJCVJZWlksCisrCQlSWlhZLAorKwkJUllYWSwKKysJCVJZWFosCisrCQlSWlha LAorKwkJUlhZWiwKKysJCVJaWVoKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Z3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcmF5X2ludGVyc2VjdGlvbl9r aW5kX3QiLCBjcHJlZml4ID0gIkdSQVBIRU5FX1JBWV9JTlRFUlNFQ1RJT05fS0lORF8iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGlj IGVudW0gUmF5SW50ZXJzZWN0aW9uS2luZCB7CisrCQlOT05FLAorKwkJRU5URVIsCisrCQlMRUFW RQorKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0Lmgi LCBjbmFtZSA9ICJHUkFQSEVORV9IQVNfR0NDIildCisrCXB1YmxpYyBjb25zdCBpbnQgSEFTX0dD QzsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNu YW1lID0gIkdSQVBIRU5FX0hBU19TQ0FMQVIiKV0KKysJcHVibGljIGNvbnN0IGludCBIQVNfU0NB TEFSOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwg Y25hbWUgPSAiR1JBUEhFTkVfSEFTX1NTRSIpXQorKwlwdWJsaWMgY29uc3QgaW50IEhBU19TU0U7 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFt ZSA9ICJHUkFQSEVORV9QSSIpXQorKwlwdWJsaWMgY29uc3QgZG91YmxlIFBJOworKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhF TkVfUElfMiIpXQorKwlwdWJsaWMgY29uc3QgZG91YmxlIFBJXzI7CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9TSU1E X1MiKV0KKysJcHVibGljIGNvbnN0IHN0cmluZyBTSU1EX1M7CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9WRUMyX0xF TiIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBjb25zdCBpbnQgVkVD Ml9MRU47CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0Lmgi LCBjbmFtZSA9ICJHUkFQSEVORV9WRUMzX0xFTiIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCXB1YmxpYyBjb25zdCBpbnQgVkVDM19MRU47CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9WRUM0X0xFTiIp XQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBjb25zdCBpbnQgVkVDNF9M RU47CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBj bmFtZSA9ICJmYWxzZSIpXQorKwlwdWJsaWMgY29uc3QgaW50IEBmYWxzZTsKKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gInRydWUiKV0K KysJcHVibGljIGNvbnN0IGludCBAdHJ1ZTsKKyt9CitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVy LTIuZGVwcyB2YXBpL2xpYm11dHRlci0yLmRlcHMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAor aW5kZXggMWYzYzkwNzkuLjAwMDAwMDAwCistLS0gdmFwaS9saWJtdXR0ZXItMi5kZXBzCisrKysg L2Rldi9udWxsCitAQCAtMSw5ICswLDAgQEAKKy1jYWlybworLWdzZXR0aW5ncy1kZXNrdG9wLXNj aGVtYXMKKy1nZGstMy4wCistZ2RrLXBpeGJ1Zi0yLjAKKy1ndGsrLTMuMAorLXgxMQorLXhmaXhl cy00LjAKKy1jbHV0dGVyLTEuMAorLWNvZ2wtMS4wCitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVy LTIudmFwaSB2YXBpL2xpYm11dHRlci0yLnZhcGkKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAor aW5kZXggMGE2YzQzNTcuLjAwMDAwMDAwCistLS0gdmFwaS9saWJtdXR0ZXItMi52YXBpCisrKysg L2Rldi9udWxsCitAQCAtMSwxMzI1ICswLDAgQEAKKy0vKiBsaWJtdXR0ZXIudmFwaSBnZW5lcmF0 ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKy0KKy1bQ0NvZGUgKGNwcmVmaXggPSAi TWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjMuMCIsIGxvd2Vy X2Nhc2VfY3ByZWZpeCA9ICJtZXRhXyIpXQorLW5hbWVzcGFjZSBNZXRhIHsKKy0JbmFtZXNwYWNl IFByZWZzIHsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCBhZGRfbGlzdGVuZXIgKE1ldGEuUHJlZnNDaGFuZ2VkRnVu YyBmdW5jKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgYm9vbCBiZWxsX2lzX2F1ZGlibGUgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQg Y2hhbmdlX3dvcmtzcGFjZV9uYW1lIChpbnQgaSwgc3RyaW5nIG5hbWUpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVz a3RvcC5UaXRsZWJhckFjdGlvbiBnZXRfYWN0aW9uX2RvdWJsZV9jbGlja190aXRsZWJhciAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gZ2V0X2FjdGlvbl9taWRkbGVfY2xpY2tf dGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlRpdGxlYmFyQWN0aW9uIGdldF9hY3Rpb25f cmlnaHRfY2xpY2tfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2F0dGFjaF9tb2RhbF9k aWFsb2dzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIp XQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9hdXRvX21heGltaXplICgpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIGdldF9hdXRvX3JhaXNlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X2F1dG9fcmFpc2VfZGVsYXkg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlw dWJsaWMgc3RhdGljIE1ldGEuQnV0dG9uTGF5b3V0IGdldF9idXR0b25fbGF5b3V0ICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0 YXRpYyBib29sIGdldF9jZW50ZXJfbmV3X3dpbmRvd3MgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2Nv bXBvc2l0aW5nX21hbmFnZXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGludCBnZXRfY3Vyc29yX3NpemUgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMg c3RhdGljIHVub3duZWQgc3RyaW5nIGdldF9jdXJzb3JfdGhlbWUgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wg Z2V0X2Rpc2FibGVfd29ya2Fyb3VuZHMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGludCBnZXRfZHJhZ190aHJlc2hv bGQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCist CQlwdWJsaWMgc3RhdGljIGludCBnZXRfZHJhZ2dhYmxlX2JvcmRlcl93aWR0aCAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgYm9vbCBnZXRfZHluYW1pY193b3Jrc3BhY2VzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9lZGdl X3RpbGluZyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZm9jdXNfY2hhbmdlX29uX3BvaW50ZXJfcmVz dCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuRm9jdXNNb2RlIGdldF9mb2N1c19tb2RlICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0 YXRpYyBHRGVza3RvcC5Gb2N1c05ld1dpbmRvd3MgZ2V0X2ZvY3VzX25ld193aW5kb3dzICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGlj IHN0YXRpYyBib29sIGdldF9mb3JjZV9mdWxsc2NyZWVuICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9n bm9tZV9hY2Nlc3NpYmlsaXR5ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9nbm9tZV9hbmltYXRpb25z ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJ cHVibGljIHN0YXRpYyBib29sIGdldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3RpdGxlYmFyICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGlj IHN0YXRpYyBNZXRhLktleUJpbmRpbmdBY3Rpb24gZ2V0X2tleWJpbmRpbmdfYWN0aW9uIChzdHJp bmcgbmFtZSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIild CistCQlwdWJsaWMgc3RhdGljIGludCBnZXRfbW91c2VfYnV0dG9uX21lbnUgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGlj IE1ldGEuVmlydHVhbE1vZGlmaWVyIGdldF9tb3VzZV9idXR0b25fbW9kcyAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg aW50IGdldF9tb3VzZV9idXR0b25fcmVzaXplICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X251bV93b3Jr c3BhY2VzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIp XQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9yYWlzZV9vbl9jbGljayAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg Ym9vbCBnZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBQYW5n by5Gb250RGVzY3JpcHRpb24gZ2V0X3RpdGxlYmFyX2ZvbnQgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0 X3Zpc3VhbF9iZWxsICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5WaXN1YWxCZWxsVHlwZSBnZXRfdmlz dWFsX2JlbGxfdHlwZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ2V0X3dvcmtzcGFjZV9u YW1lIChpbnQgaSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3dvcmtzcGFjZXNfb25seV9vbl9wcmltYXJ5 ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIGluaXQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgb3ZlcnJpZGVfcHJlZmVy ZW5jZV9zY2hlbWEgKHN0cmluZyBrZXksIHN0cmluZyBzY2hlbWEpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHJl bW92ZV9saXN0ZW5lciAoTWV0YS5QcmVmc0NoYW5nZWRGdW5jIGZ1bmMpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lk IHNldF9mb3JjZV9mdWxsc2NyZWVuIChib29sIHdoZXRoZXIpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9p Z25vcmVfcmVxdWVzdF9oaWRlX3RpdGxlYmFyIChib29sIHdoZXRoZXIpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lk IHNldF9udW1fd29ya3NwYWNlcyAoaW50IG5fd29ya3NwYWNlcyk7CistCX0KKy0JbmFtZXNwYWNl IFV0aWwgeworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25h bWUgPSAibWV0YV9hZGRfdmVyYm9zZV90b3BpYyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGFk ZF92ZXJib3NlX3RvcGljIChNZXRhLkRlYnVnVG9waWMgdG9waWMpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9idWciKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCBidWcgKHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2RlYnVnX3NwZXdf cmVhbCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGRlYnVnX3NwZXdfcmVhbCAoc3RyaW5nIGZv cm1hdCwgLi4uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNuYW1lID0gIm1ldGFfZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9zY3JlZW4iKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCBkaXNhYmxlX3VucmVkaXJlY3RfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4g c2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2VtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIGVtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiAoTWV0YS5TY3JlZW4g c2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNu YW1lID0gIm1ldGFfZW5hYmxlX3VucmVkaXJlY3RfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkIGVuYWJsZV91bnJlZGlyZWN0X2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVl bik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9 ICJtZXRhX2Vycm9yX3RyYXBfcG9wIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZXJyb3JfdHJh cF9wb3AgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZXJyb3JfdHJhcF9wdXNoIildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgZXJyb3JfdHJhcF9wdXNoIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJt ZXRhX2Vycm9yX3RyYXBfcHVzaF93aXRoX3JldHVybiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lk IGVycm9yX3RyYXBfcHVzaF93aXRoX3JldHVybiAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9l eHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiIpXQorLQkJcHVibGljIHN0YXRpYyBzdHJp bmcgZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rpb24gKHVpbnQga2V5YmluZGluZ19hY3Rp b24pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAibWV0YV9mYXRhbCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGZhdGFsIChzdHJpbmcgZm9y bWF0LCAuLi4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y25hbWUgPSAibWV0YV9mcmVlX2dzbGlzdF9hbmRfZWxlbWVudHMiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCBmcmVlX2dzbGlzdF9hbmRfZWxlbWVudHMgKEdMaWIuU0xpc3Q8dm9pZCo+IGxpc3Rf dG9fZGVlcF9mcmVlKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIm1ldGFfZ191dGY4X3N0cm5kdXAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgc3Ry aW5nIGdfdXRmOF9zdHJuZHVwIChzdHJpbmcgc3JjLCBzaXplX3Qgbik7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9sb2NhbGVf ZGlyZWN0aW9uIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuTG9jYWxlRGlyZWN0aW9uIGdldF9s b2NhbGVfZGlyZWN0aW9uICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAibWV0YV9nZXRfb3ZlcmxheV93aW5kb3ciKV0KKy0JCXB1YmxpYyBz dGF0aWMgWC5XaW5kb3cgZ2V0X292ZXJsYXlfd2luZG93IChNZXRhLlNjcmVlbiBzY3JlZW4pOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0 YV9ncmF2aXR5X3RvX3N0cmluZyIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBn cmF2aXR5X3RvX3N0cmluZyAoaW50IGdyYXZpdHkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9pc19kZWJ1Z2dpbmciKV0KKy0JCXB1 YmxpYyBzdGF0aWMgYm9vbCBpc19kZWJ1Z2dpbmcgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2lzX3N5bmNpbmciKV0KKy0JCXB1 YmxpYyBzdGF0aWMgYm9vbCBpc19zeW5jaW5nICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9pc192ZXJib3NlIildCistCQlwdWJs aWMgc3RhdGljIGJvb2wgaXNfdmVyYm9zZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfaXNfd2F5bGFuZF9jb21wb3NpdG9yIild CistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfd2F5bGFuZF9jb21wb3NpdG9yICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9sYXRl cl9hZGQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWludCBsYXRlcl9hZGQgKE1ldGEuTGF0ZXJUeXBl IHdoZW4sIG93bmVkIEdMaWIuU291cmNlRnVuYyBmdW5jKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfbGF0ZXJfcmVtb3ZlIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgbGF0ZXJfcmVtb3ZlICh1aW50IGxhdGVyX2lkKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfcG9w X25vX21zZ19wcmVmaXgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bfbm9fbXNnX3ByZWZp eCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIm1ldGFfcHVzaF9ub19tc2dfcHJlZml4IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHVz aF9ub19tc2dfcHJlZml4ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAibWV0YV9yZWN0IildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuUmVj dGFuZ2xlPyByZWN0IChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3Jl bW92ZV92ZXJib3NlX3RvcGljIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX3ZlcmJv c2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0b3BpYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9zZXRfc3Rh Z2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3N0YWdlX2lucHV0 X3JlZ2lvbiAoTWV0YS5TY3JlZW4gc2NyZWVuLCBYLlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFf c2hvd19kaWFsb2ciKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0xpYi5QaWQgc2hvd19kaWFsb2cgKHN0 cmluZyB0eXBlLCBzdHJpbmcgbWVzc2FnZSwgc3RyaW5nPyB0aW1lb3V0ID0gbnVsbCwgc3RyaW5n PyBkaXNwbGF5ID0gbnVsbCwgc3RyaW5nPyBva190ZXh0ID0gbnVsbCwgc3RyaW5nPyBjYW5jZWxf dGV4dCA9IG51bGwsIHN0cmluZz8gaWNvbl9uYW1lID0gbnVsbCwgaW50IHRyYW5zaWVudF9mb3Ig PSAwLCBHTGliLlNMaXN0PHN0cmluZz4/IGNvbHVtbnMgPSBudWxsLCBHTGliLlNMaXN0PHN0cmlu Zz4/IGVudHJpZXMgPSBudWxsKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNuYW1lID0gIm1ldGFfdG9waWNfcmVhbCIpXQorLQkJcHVibGljIHN0YXRpYyB2 b2lkIHRvcGljX3JlYWwgKE1ldGEuRGVidWdUb3BpYyB0b3BpYywgc3RyaW5nIGZvcm1hdCwgLi4u KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0g Im1ldGFfdW5zaWduZWRfbG9uZ19lcXVhbCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgdW5zaWdu ZWRfbG9uZ19lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfdW5zaWduZWRfbG9uZ19oYXNo IildCistCQlwdWJsaWMgc3RhdGljIHVpbnQgdW5zaWduZWRfbG9uZ19oYXNoICh2b2lkKiB2KTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1l dGFfdmVyYm9zZV9yZWFsIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdmVyYm9zZV9yZWFsIChz dHJpbmcgZm9ybWF0LCAuLi4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAibWV0YV93YXJuaW5nIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQg d2FybmluZyAoc3RyaW5nIGZvcm1hdCwgLi4uKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2VuZF9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQmFja2VuZCA6IEdMaWIuT2JqZWN0IHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBC YWNrZW5kICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNr ZW5kLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9iYWNrZW5kIildCistCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgTWV0YS5CYWNrZW5kIGdldF9iYWNrZW5kICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5BY3RvciBnZXRfc3RhZ2UgKCk7CistCQlwdWJsaWMgdm9pZCBsb2NrX2xheW91dF9ncm91 cCAodWludCBpZHgpOworLQkJcHVibGljIHZvaWQgc2V0X2tleW1hcCAoc3RyaW5nIGxheW91dHMs IHN0cmluZyB2YXJpYW50cywgc3RyaW5nIG9wdGlvbnMpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IGtleW1hcF9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9sYXlvdXRf Z3JvdXBfY2hhbmdlZCAodWludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxhc3Rf ZGV2aWNlX2NoYW5nZWQgKGludCBvYmplY3QpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91 bmRfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmQgOiBHTGliLk9iamVj dCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJs aWMgQmFja2dyb3VuZCAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9p ZCByZWZyZXNoX2FsbCAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ibGVuZCAoR0xpYi5GaWxlIGZp bGUxLCBHTGliLkZpbGUgZmlsZTIsIGRvdWJsZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9wLkJhY2tn cm91bmRTdHlsZSBzdHlsZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29s b3IgY29sb3IpOworLQkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBHRGVz a3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworLQkJcHVibGljIHZvaWQgc2V0X2dyYWRpZW50 IChHRGVza3RvcC5CYWNrZ3JvdW5kU2hhZGluZyBzaGFkaW5nX2RpcmVjdGlvbiwgQ2x1dHRlci5D b2xvciBjb2xvciwgQ2x1dHRlci5Db2xvciBzZWNvbmRfY29sb3IpOworLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgTWV0YS5TY3JlZW4gbWV0YV9zY3JlZW4geyBvd25lZCBnZXQ7IGNv bnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgiLCB0 eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgQmFja2dyb3VuZEFjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBD bHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1 dHRlckFjdG9yKiIpXQorLQkJcHVibGljIEJhY2tncm91bmRBY3RvciAoTWV0YS5TY3JlZW4gc2Ny ZWVuLCBpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgdm9pZCBzZXRfYmFja2dyb3VuZCAoTWV0YS5C YWNrZ3JvdW5kIGJhY2tncm91bmQpOworLQkJcHVibGljIHZvaWQgc2V0X3ZpZ25ldHRlIChib29s IGVuYWJsZWQsIGRvdWJsZSBicmlnaHRuZXNzLCBkb3VibGUgc2hhcnBuZXNzKTsKKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuQmFja2dyb3VuZCBiYWNrZ3JvdW5kIHsgb3du ZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGRvdWJsZSBi cmlnaHRuZXNzIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IE1ldGEuU2NyZWVuIG1ldGFfc2NyZWVuIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCBtb25pdG9yIHsgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgdmlnbmV0dGUgeyBnZXQ7 IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgZG91YmxlIHZpZ25ldHRl X3NoYXJwbmVzcyB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dy b3VuZF9ncm91cF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEdyb3Vw IDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENs dXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVi bGljIEJhY2tncm91bmRHcm91cCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3Jv dW5kX2ltYWdlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kSW1hZ2Ug OiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistCQlwcm90ZWN0ZWQgQmFja2dyb3VuZEltYWdlICgpOworLQkJcHVibGljIGJvb2wgZ2V0 X3N1Y2Nlc3MgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUg KCk7CistCQlwdWJsaWMgYm9vbCBpc19sb2FkZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg bG9hZGVkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfaW1hZ2VfY2Fj aGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRJbWFnZUNhY2hlIDog R0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorLQkJcHJvdGVjdGVkIEJhY2tncm91bmRJbWFnZUNhY2hlICgpOworLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIE1ldGEuQmFja2dyb3VuZEltYWdlQ2FjaGUgZ2V0X2RlZmF1bHQgKCk7CistCQlw dWJsaWMgTWV0YS5CYWNrZ3JvdW5kSW1hZ2UgbG9hZCAoR0xpYi5GaWxlIGZpbGUpOworLQkJcHVi bGljIHZvaWQgcHVyZ2UgKEdMaWIuRmlsZSBmaWxlKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFycmllcl9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFycmllciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYXJy aWVyICgpOworLQkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Fj dGl2ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHJlbGVhc2UgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50 KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuQmFycmllckRpcmVjdGlv biBkaXJlY3Rpb25zIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIE1ldGEuRGlzcGxheSBkaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB4MSB7IGdldDsgY29uc3RydWN0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeDIgeyBnZXQ7IGNvbnN0 cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHkxIHsgZ2V0OyBj b25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB5MiB7IGdl dDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgaGl0IChNZXRhLkJhcnJpZXJF dmVudCBldmVudCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGVmdCAoTWV0YS5CYXJyaWVyRXZl bnQgZXZlbnQpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfYmFycmllcl9ldmVudF9nZXRfdHlwZSAoKSIpXQor LQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEJhcnJpZXJFdmVudCB7CistCQlwdWJsaWMgaW50 IGR0OworLQkJcHVibGljIGRvdWJsZSBkeDsKKy0JCXB1YmxpYyBkb3VibGUgZHk7CistCQlwdWJs aWMgaW50IGV2ZW50X2lkOworLQkJcHVibGljIGJvb2wgZ3JhYmJlZDsKKy0JCXB1YmxpYyBib29s IHJlbGVhc2VkOworLQkJcHVibGljIHVpbnQzMiB0aW1lOworLQkJcHVibGljIGRvdWJsZSB4Owor LQkJcHVibGljIGRvdWJsZSB5OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbXBvc2l0b3IuaCIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIENvbXBvc2l0 b3IgeworLQkJcHVibGljIHZvaWQgYWRkX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0J CXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CistCQlwdWJsaWMgYm9vbCBmaWx0ZXJfa2V5YmluZGlu ZyAoTWV0YS5LZXlCaW5kaW5nIGJpbmRpbmcpOworLQkJcHVibGljIHZvaWQgZmxhc2hfc2NyZWVu IChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZm9jdXNfc3RhZ2Vfd2luZG93 IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZm9jdXNfc3RhZ2Vfd2luZG93IChNZXRhLlNjcmVl biBzY3JlZW4sIHVpbnQzMiB0aW1lc3RhbXApOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2ZlZWRiYWNr X2dyb3VwX2Zvcl9zY3JlZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF9mZWVkYmFja19ncm91cF9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIs IGNuYW1lID0gIm1ldGFfZ2V0X3N0YWdlX2Zvcl9zY3JlZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBDbHV0dGVyLkFjdG9yPyBnZXRfc3RhZ2VfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4g c2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9zY3JlZW4i KV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yPyBnZXRfdG9wX3dpbmRv d19ncm91cF9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFf Z2V0X3dpbmRvd19hY3RvcnMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLkxpc3Q8 d2VhayBNZXRhLldpbmRvd0FjdG9yPj8gZ2V0X3dpbmRvd19hY3RvcnMgKE1ldGEuU2NyZWVuIHNj cmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11 dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2luZG93X2dyb3VwX2Zvcl9zY3JlZW4iKV0KKy0J CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yPyBnZXRfd2luZG93X2dyb3VwX2Zv cl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlwdWJsaWMgdm9pZCBoaWRlX3RpbGVf cHJldmlldyAoKTsKKy0JCXB1YmxpYyB2b2lkIGhpZGVfd2luZG93IChNZXRhLldpbmRvdyB3aW5k b3csIE1ldGEuQ29tcEVmZmVjdCBlZmZlY3QpOworLQkJcHVibGljIHZvaWQgbWFuYWdlICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCQlwdWJsaWMg c3RhdGljIHVub3duZWQgTWV0YS5Db21wb3NpdG9yIEBuZXcgKE1ldGEuRGlzcGxheSBkaXNwbGF5 KTsKKy0JCXB1YmxpYyB2b2lkIHF1ZXVlX2ZyYW1lX2RyYXduIChNZXRhLldpbmRvdyB3aW5kb3cs IGJvb2wgbm9fZGVsYXlfZnJhbWUpOworLQkJcHVibGljIHZvaWQgcmVtb3ZlX3dpbmRvdyAoTWV0 YS5XaW5kb3cgd2luZG93KTsKKy0JCXB1YmxpYyB2b2lkIHNob3dfdGlsZV9wcmV2aWV3IChNZXRh LldpbmRvdyB3aW5kb3csIE1ldGEuUmVjdGFuZ2xlIHRpbGVfcmVjdCwgaW50IHRpbGVfbW9uaXRv cl9udW1iZXIpOworLQkJcHVibGljIHZvaWQgc2hvd193aW5kb3cgKE1ldGEuV2luZG93IHdpbmRv dywgTWV0YS5Db21wRWZmZWN0IGVmZmVjdCk7CistCQlwdWJsaWMgdm9pZCBzaG93X3dpbmRvd19t ZW51IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuV2luZG93TWVudVR5cGUgbWVudSwgaW50IHgs IGludCB5KTsKKy0JCXB1YmxpYyB2b2lkIHNob3dfd2luZG93X21lbnVfZm9yX3JlY3QgKE1ldGEu V2luZG93IHdpbmRvdywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBNZXRhLlJlY3RhbmdsZSBy ZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNpemVfY2hhbmdlX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2lu ZG93LCBNZXRhLlNpemVDaGFuZ2Ugd2hpY2hfY2hhbmdlLCBNZXRhLlJlY3RhbmdsZSBvbGRfZnJh bWVfcmVjdCwgTWV0YS5SZWN0YW5nbGUgb2xkX2J1ZmZlcl9yZWN0KTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRh X3N0YWdlX2lzX2ZvY3VzZWQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBzdGFnZV9pc19mb2N1 c2VkIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJcHVibGljIHZvaWQgc3dpdGNoX3dvcmtzcGFj ZSAoTWV0YS5Xb3Jrc3BhY2UgZnJvbSwgTWV0YS5Xb3Jrc3BhY2UgdG8sIE1ldGEuTW90aW9uRGly ZWN0aW9uIGRpcmVjdGlvbik7CistCQlwdWJsaWMgdm9pZCBzeW5jX3N0YWNrIChHTGliLkxpc3Q8 TWV0YS5XaW5kb3dBY3Rvcj4gc3RhY2spOworLQkJcHVibGljIHZvaWQgc3luY191cGRhdGVzX2Zy b3plbiAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0JCXB1YmxpYyB2b2lkIHN5bmNfd2luZG93X2dl b21ldHJ5IChNZXRhLldpbmRvdyB3aW5kb3csIGJvb2wgZGlkX3BsYWNlbWVudCk7CistCQlwdWJs aWMgdm9pZCB1bm1hbmFnZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHdpbmRvd19vcGFjaXR5X2NoYW5n ZWQgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCQlwdWJsaWMgdm9pZCB3aW5kb3dfc2hhcGVfY2hh bmdlZCAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0JCXB1YmxpYyB2b2lkIHdpbmRvd19zdXJmYWNl X2NoYW5nZWQgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oIiwgdHlwZV9pZCA9ICJtZXRhX2N1 cnNvcl90cmFja2VyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBDdXJzb3JUcmFja2Vy IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIEN1cnNvclRyYWNrZXIgKCk7CistCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgTWV0YS5DdXJzb3JUcmFja2VyIGdldF9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3Jl ZW4pOworLQkJcHVibGljIHZvaWQgZ2V0X2hvdCAob3V0IGludCB4LCBvdXQgaW50IHkpOworLQkJ cHVibGljIHZvaWQgZ2V0X3BvaW50ZXIgKGludCB4LCBpbnQgeSwgQ2x1dHRlci5Nb2RpZmllclR5 cGUgbW9kcyk7CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3Nwcml0ZSAoKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX3Zpc2libGUgKGJvb2wgdmlzaWJsZSk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIERpc3BsYXkgOiBHTGliLk9iamVjdCB7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQg RGlzcGxheSAoKTsKKy0JCXB1YmxpYyB2b2lkIGFkZF9pZ25vcmVkX2Nyb3NzaW5nX3NlcmlhbCAo dWxvbmcgc2VyaWFsKTsKKy0JCXB1YmxpYyB1aW50IGFkZF9rZXliaW5kaW5nIChzdHJpbmcgbmFt ZSwgR0xpYi5TZXR0aW5ncyBzZXR0aW5ncywgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZmxhZ3MsIG93 bmVkIE1ldGEuS2V5SGFuZGxlckZ1bmMgaGFuZGxlcik7CistCQlwdWJsaWMgYm9vbCBiZWdpbl9n cmFiX29wIChNZXRhLlNjcmVlbiBzY3JlZW4sIE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5HcmFi T3Agb3AsIGJvb2wgcG9pbnRlcl9hbHJlYWR5X2dyYWJiZWQsIGJvb2wgZnJhbWVfYWN0aW9uLCBp bnQgYnV0dG9uLCB1bG9uZyBtb2RtYXNrLCB1aW50MzIgdGltZXN0YW1wLCBpbnQgcm9vdF94LCBp bnQgcm9vdF95KTsKKy0JCXB1YmxpYyB2b2lkIGNsZWFyX21vdXNlX21vZGUgKCk7CistCQlwdWJs aWMgdm9pZCBlbmRfZ3JhYl9vcCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBm b2N1c190aGVfbm9fZm9jdXNfd2luZG93IChNZXRhLlNjcmVlbiBzY3JlZW4sIHVpbnQzMiB0aW1l c3RhbXApOworLQkJcHVibGljIHZvaWQgZnJlZXplX2tleWJvYXJkICh1aW50MzIgdGltZXN0YW1w KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuQ29tcG9zaXRvciBnZXRfY29tcG9zaXRvciAoKTsK Ky0JCXB1YmxpYyB1aW50MzIgZ2V0X2N1cnJlbnRfdGltZSAoKTsKKy0JCXB1YmxpYyB1aW50MzIg Z2V0X2N1cnJlbnRfdGltZV9yb3VuZHRyaXAgKCk7CistCQlwdWJsaWMgaW50IGdldF9kYW1hZ2Vf ZXZlbnRfYmFzZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF9mb2N1c193 aW5kb3cgKCk7CistCQlwdWJsaWMgTWV0YS5HcmFiT3AgZ2V0X2dyYWJfb3AgKCk7CistCQlwdWJs aWMgdWludCBnZXRfa2V5YmluZGluZ19hY3Rpb24gKHVpbnQga2V5Y29kZSwgdWxvbmcgbWFzayk7 CistCQlwdWJsaWMgdWludDMyIGdldF9sYXN0X3VzZXJfdGltZSAoKTsKKy0JCXB1YmxpYyBpbnQg Z2V0X3NoYXBlX2V2ZW50X2Jhc2UgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBn ZXRfdGFiX2N1cnJlbnQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3Bh Y2UpOworLQkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBnZXRfdGFiX2xpc3Qg KE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZT8gd29ya3NwYWNlKTsKKy0JCXB1Ymxp YyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJfbmV4dCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1l dGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgTWV0YS5XaW5kb3c/IHdpbmRvdywgYm9vbCBiYWNrd2Fy ZCk7CistCQlwdWJsaWMgdW5vd25lZCBYLkRpc3BsYXkgZ2V0X3hkaXNwbGF5ICgpOworLQkJcHVi bGljIGludCBnZXRfeGlucHV0X29wY29kZSAoKTsKKy0JCXB1YmxpYyB1aW50IGdyYWJfYWNjZWxl cmF0b3IgKHN0cmluZyBhY2NlbGVyYXRvcik7CistCQlwdWJsaWMgYm9vbCBoYXNfc2hhcGUgKCk7 CistCQlwdWJsaWMgYm9vbCBpc19wb2ludGVyX2VtdWxhdGluZ19zZXF1ZW5jZSAoQ2x1dHRlci5F dmVudFNlcXVlbmNlPyBzZXF1ZW5jZSk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkdyb3VwIGxv b2t1cF9ncm91cCAoWC5XaW5kb3cgZ3JvdXBfbGVhZGVyKTsKKy0JCXB1YmxpYyBib29sIHJlbW92 ZV9rZXliaW5kaW5nIChzdHJpbmcgbmFtZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfZm9j dXNfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3csIGJvb2wgZm9jdXNfZnJhbWUsIHVpbnQzMiB0 aW1lc3RhbXApOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBNZXRhLldpbmRvdz4gc29ydF93 aW5kb3dzX2J5X3N0YWNraW5nIChHTGliLlNMaXN0PE1ldGEuV2luZG93PiB3aW5kb3dzKTsKKy0J CXB1YmxpYyBib29sIHN1cHBvcnRzX2V4dGVuZGVkX2JhcnJpZXJzICgpOworLQkJcHVibGljIHZv aWQgdW5mcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wg dW5ncmFiX2FjY2VsZXJhdG9yICh1aW50IGFjdGlvbl9pZCk7CistCQlwdWJsaWMgdm9pZCB1bmdy YWJfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgdW5tYW5hZ2Vf c2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4sIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGlj IGJvb2wgeHNlcnZlcl90aW1lX2lzX2JlZm9yZSAodWludDMyIHRpbWUxLCB1aW50MzIgdGltZTIp OworLQkJcHVibGljIGJvb2wgeHdpbmRvd19pc19hX25vX2ZvY3VzX3dpbmRvdyAoWC5XaW5kb3cg eHdpbmRvdyk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWNjZWxlcmF0b3JfYWN0aXZhdGVkICh1 aW50IG9iamVjdCwgdWludCBwMCwgdWludCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3Jh Yl9vcF9iZWdpbiAoTWV0YS5TY3JlZW4gb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFi T3AgcDEpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfZW5kIChNZXRhLlNjcmVlbiBv YmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CistCQlwdWJsaWMgc2lnbmFs IGJvb2wgbW9kaWZpZXJzX2FjY2VsZXJhdG9yX2FjdGl2YXRlZCAoKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBvdmVybGF5X2tleSAoKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCByZXN0YXJ0ICgp OworLQkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzaXplX3BvcHVwIChib29sIG9iamVjdCwg TWV0YS5SZWN0YW5nbGUgcDAsIGludCBwMSwgaW50IHAyKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9v bCBzaG93X3Jlc3RhcnRfbWVzc2FnZSAoc3RyaW5nPyBtZXNzYWdlKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCB3aW5kb3dfY3JlYXRlZCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCB3aW5kb3dfZGVtYW5kc19hdHRlbnRpb24gKE1ldGEuV2luZG93IG9iamVjdCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X21hcmtlZF91cmdlbnQgKE1ldGEuV2luZG93 IG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9u LmgiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBGcmFtZSB7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZ3JvdXAuaCIpXQorLQlbQ29tcGFjdF0KKy0JcHVi bGljIGNsYXNzIEdyb3VwIHsKKy0JCXB1YmxpYyBpbnQgZ2V0X3NpemUgKCk7CistCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X3N0YXJ0dXBfaWQgKCk7CistCQlwdWJsaWMgR0xpYi5TTGlzdDx3 ZWFrIE1ldGEuV2luZG93PiBsaXN0X3dpbmRvd3MgKCk7CistCQlwdWJsaWMgYm9vbCBwcm9wZXJ0 eV9ub3RpZnkgKFguRXZlbnQgZXZlbnQpOworLQkJcHVibGljIHZvaWQgdXBkYXRlX2xheWVycyAo KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oIiwgdHlwZV9pZCA9ICJtZXRhX2lkbGVfbW9uaXRvcl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgSWRsZU1vbml0b3IgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgSWRsZU1vbml0b3IgKCk7 CistCQlwdWJsaWMgdWludCBhZGRfaWRsZV93YXRjaCAodWludDY0IGludGVydmFsX21zZWMsIG93 bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyB1aW50 IGFkZF91c2VyX2FjdGl2ZV93YXRjaCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8g Y2FsbGJhY2spOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0 X2NvcmUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRf Zm9yX2RldmljZSAoaW50IGRldmljZV9pZCk7CistCQlwdWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1l ICgpOworLQkJcHVibGljIHZvaWQgcmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2tleWJpbmRpbmdzLmgiLCBj b3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9m cmVlIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2dldF90eXBlICgpIildCistCVtDb21w YWN0XQorLQlwdWJsaWMgY2xhc3MgS2V5QmluZGluZyB7CistCQlwdWJsaWMgdWludCBnZXRfbWFz ayAoKTsKKy0JCXB1YmxpYyBNZXRhLlZpcnR1YWxNb2RpZmllciBnZXRfbW9kaWZpZXJzICgpOwor LQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworLQkJcHVibGljIGJvb2wgaXNf YnVpbHRpbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3JldmVyc2VkICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEva2V5YmluZGluZ3MuaCIsIGNuYW1lID0gIm1ldGFfa2V5 YmluZGluZ3Nfc2V0X2N1c3RvbV9oYW5kbGVyIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgc2V0 X2N1c3RvbV9oYW5kbGVyIChzdHJpbmcgbmFtZSwgb3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYz8g aGFuZGxlcik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9tb25pdG9yX21hbmFnZXJfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIE1vbml0b3JNYW5hZ2VyIDogR0xpYi5E QnVzSW50ZXJmYWNlU2tlbGV0b24sIEdMaWIuREJ1c0ludGVyZmFjZSB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgTW9uaXRvck1hbmFn ZXIgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5Nb25pdG9yTWFuYWdlciBAZ2V0 ICgpOworLQkJcHVibGljIGludCBnZXRfbW9uaXRvcl9mb3Jfb3V0cHV0ICh1aW50IGlkKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBjb25maXJtX2Rpc3BsYXlfY2hhbmdlICgpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCB0eXBlX2lkID0g Im1ldGFfcGx1Z2luX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQbHVn aW4gOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgUGx1Z2luICgpOworLQkJcHVibGljIGJvb2wgYmVnaW5fbW9k YWwgKE1ldGEuTW9kYWxPcHRpb25zIG9wdGlvbnMsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVi bGljIHZvaWQgY29tcGxldGVfZGlzcGxheV9jaGFuZ2UgKGJvb2wgb2spOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29uZmlybV9kaXNwbGF5X2NoYW5nZSAoKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGRlc3Ryb3kgKE1ldGEuV2luZG93 QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgZGVzdHJveV9jb21wbGV0ZWQgKE1ldGEuV2lu ZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgZW5kX21vZGFsICh1aW50MzIgdGltZXN0 YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuUGx1Z2luSW5mbz8gZ2V0X2luZm8gKCk7Cist CQlwdWJsaWMgdW5vd25lZCBNZXRhLlNjcmVlbiBnZXRfc2NyZWVuICgpOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaGlkZV90aWxlX3ByZXZpZXcgKCk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBrZXliaW5kaW5nX2ZpbHRlciAoTWV0YS5L ZXlCaW5kaW5nIGJpbmRpbmcpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZv aWQga2lsbF9zd2l0Y2hfd29ya3NwYWNlICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQga2lsbF93aW5kb3dfZWZmZWN0cyAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7 CistCQlwdWJsaWMgc3RhdGljIHZvaWQgbWFuYWdlcl9zZXRfcGx1Z2luX3R5cGUgKEdMaWIuVHlw ZSBndHlwZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKE1l dGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgbWFwX2NvbXBsZXRlZCAoTWV0 YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCBtaW5pbWl6ZSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBt aW5pbWl6ZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgTWV0YS5QbHVnaW5JbmZvPyBwbHVnaW5faW5m byAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfdGlsZV9w cmV2aWV3IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuUmVjdGFuZ2xlIHRpbGVfcmVjdCwgaW50 IHRpbGVfbW9uaXRvcl9udW1iZXIpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IHZvaWQgc2hvd193aW5kb3dfbWVudSAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01l bnVUeXBlIG1lbnUsIGludCB4LCBpbnQgeSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgdm9pZCBzaG93X3dpbmRvd19tZW51X2Zvcl9yZWN0IChNZXRhLldpbmRvdyB3aW5kb3cs IE1ldGEuV2luZG93TWVudVR5cGUgbWVudSwgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaXplX2NoYW5nZSAoTWV0YS5XaW5kb3dB Y3RvciBhY3RvciwgTWV0YS5TaXplQ2hhbmdlIHdoaWNoX2NoYW5nZSwgTWV0YS5SZWN0YW5nbGUg b2xkX2ZyYW1lX3JlY3QsIE1ldGEuUmVjdGFuZ2xlIG9sZF9idWZmZXJfcmVjdCk7CistCQlwdWJs aWMgdm9pZCBzaXplX2NoYW5nZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOwor LQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3RhcnQgKCk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzd2l0Y2hfd29ya3NwYWNlIChpbnQgZnJv bSwgaW50IHRvLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pOworLQkJcHVibGljIHZv aWQgc3dpdGNoX3dvcmtzcGFjZV9jb21wbGV0ZWQgKCk7CistIAkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgdW5taW5pbWl6ZSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7Cist CQlwdWJsaWMgdm9pZCB1bm1pbmltaXplX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rv cik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCB4ZXZlbnRfZmlsdGVy IChYLkV2ZW50IGV2ZW50KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9zY3JlZW4uaCIsIHR5cGVfaWQgPSAibWV0YV9zY3JlZW5fZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGNsYXNzIFNjcmVlbiA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTY3JlZW4gKCk7CistCQlwdWJsaWMg dW5vd25lZCBNZXRhLldvcmtzcGFjZT8gYXBwZW5kX25ld193b3Jrc3BhY2UgKGJvb2wgYWN0aXZh dGUsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgZm9jdXNfZGVmYXVsdF93aW5k b3cgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2Ug Z2V0X2FjdGl2ZV93b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgaW50IGdldF9hY3RpdmVfd29ya3Nw YWNlX2luZGV4ICgpOworLQkJcHVibGljIGludCBnZXRfY3VycmVudF9tb25pdG9yICgpOworLQkJ cHVibGljIGludCBnZXRfY3VycmVudF9tb25pdG9yX2Zvcl9wb3MgKGludCB4LCBpbnQgeSk7Cist CQlwdWJsaWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMg TWV0YS5SZWN0YW5nbGUgZ2V0X21vbml0b3JfZ2VvbWV0cnkgKGludCBtb25pdG9yKTsKKy0JCXB1 YmxpYyBib29sIGdldF9tb25pdG9yX2luX2Z1bGxzY3JlZW4gKGludCBtb25pdG9yKTsKKy0JCXB1 YmxpYyBpbnQgZ2V0X21vbml0b3JfaW5kZXhfZm9yX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIHJlY3Qp OworLQkJcHVibGljIGludCBnZXRfbW9uaXRvcl9uZWlnaGJvcl9pbmRleCAoaW50IHdoaWNoX21v bml0b3IsIE1ldGEuU2NyZWVuRGlyZWN0aW9uIGRpcik7CistCQlwdWJsaWMgaW50IGdldF9uX21v bml0b3JzICgpOworLQkJcHVibGljIGludCBnZXRfbl93b3Jrc3BhY2VzICgpOworLQkJcHVibGlj IGludCBnZXRfcHJpbWFyeV9tb25pdG9yICgpOworLQkJcHVibGljIGludCBnZXRfc2NyZWVuX251 bWJlciAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zaXplIChvdXQgaW50IHdpZHRoLCBvdXQgaW50 IGhlaWdodCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZT8gZ2V0X3dvcmtzcGFj ZV9ieV9pbmRleCAoaW50IGluZGV4KTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuTGlzdDxNZXRh LldvcmtzcGFjZT4gZ2V0X3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgWC5XaW5kb3cgZ2V0X3hy b290ICgpOworLQkJcHVibGljIHZvaWQgb3ZlcnJpZGVfd29ya3NwYWNlX2xheW91dCAoTWV0YS5T Y3JlZW5Db3JuZXIgc3RhcnRpbmdfY29ybmVyLCBib29sIHZlcnRpY2FsX2xheW91dCwgaW50IG5f cm93cywgaW50IG5fY29sdW1ucyk7CistCQlwdWJsaWMgdm9pZCByZW1vdmVfd29ya3NwYWNlIChN ZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZv aWQgc2V0X2NtX3NlbGVjdGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jdXJzb3IgKE1ldGEu Q3Vyc29yIGN1cnNvcik7CistCQlwdWJsaWMgaW50IG5fd29ya3NwYWNlcyB7IGdldDsgfQorLQkJ cHVibGljIHNpZ25hbCB2b2lkIGluX2Z1bGxzY3JlZW5fY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBtb25pdG9yc19jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHJl c3RhY2tlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzdGFydHVwX3NlcXVlbmNlX2NoYW5n ZWQgKHZvaWQqIG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2VudGVyZWRf bW9uaXRvciAoaW50IG9iamVjdCwgTWV0YS5XaW5kb3cgcDApOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIHdpbmRvd19sZWZ0X21vbml0b3IgKGludCBvYmplY3QsIE1ldGEuV2luZG93IHAwKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCB3b3Jrc3BhY2VfYWRkZWQgKGludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIHdvcmtzcGFjZV9yZW1vdmVkIChpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCB3b3Jrc3BhY2Vfc3dpdGNoZWQgKGludCBvYmplY3QsIGludCBwMCwgTWV0YS5Nb3Rpb25EaXJl Y3Rpb24gcDEpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCIsIHJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd19yZWYiLCB0eXBl X2lkID0gIm1ldGFfc2hhZG93X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV9z aGFkb3dfdW5yZWYiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBTaGFkb3cgeworLQkJ cHVibGljIHZvaWQgZ2V0X2JvdW5kcyAoaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3 aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCBDYWlyby5SZWN0YW5nbGVJbnQgYm91bmRz KTsKKy0JCXB1YmxpYyB2b2lkIHBhaW50IChpbnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50 IHdpbmRvd193aWR0aCwgaW50IHdpbmRvd19oZWlnaHQsIHVpbnQ4IG9wYWNpdHksIENhaXJvLlJl Z2lvbj8gY2xpcCwgYm9vbCBjbGlwX3N0cmljdGx5KTsKKy0JCXB1YmxpYyBNZXRhLlNoYWRvdyBA cmVmICgpOworLQkJcHVibGljIHZvaWQgdW5yZWYgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oIiwgdHlwZV9pZCA9ICJtZXRh X3NoYWRvd19mYWN0b3J5X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFkb3dGYWN0 b3J5IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorLQkJcHVibGljIFNoYWRvd0ZhY3RvcnkgKCk7CistCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgTWV0YS5TaGFkb3dGYWN0b3J5IGdldF9kZWZhdWx0ICgpOworLQkJcHVibGljIE1ldGEu U2hhZG93UGFyYW1zIGdldF9wYXJhbXMgKHN0cmluZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQp OworLQkJcHVibGljIE1ldGEuU2hhZG93IGdldF9zaGFkb3cgKE1ldGEuV2luZG93U2hhcGUgc2hh cGUsIGludCB3aWR0aCwgaW50IGhlaWdodCwgc3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNl ZCk7CistCQlwdWJsaWMgdm9pZCBzZXRfcGFyYW1zIChzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBm b2N1c2VkLCBNZXRhLlNoYWRvd1BhcmFtcyBAcGFyYW1zKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBjaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFwZWRfdGV4dHVyZV9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3Is IEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwg Q2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTaGFwZWRUZXh0dXJlICgpOworLQkJcHVibGljIENhaXJv LlN1cmZhY2UgZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQgY2xpcCk7CistCQlwdWJsaWMg dW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRf Y3JlYXRlX21pcG1hcHMgKGJvb2wgY3JlYXRlX21pcG1hcHMpOworLQkJcHVibGljIHZvaWQgc2V0 X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIG1hc2tfdGV4dHVyZSk7CistCQlwdWJsaWMgdm9p ZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3duZWQgQ2Fpcm8uUmVnaW9uIG9wYXF1ZV9yZWdpb24pOwor LQkJcHVibGljIGJvb2wgdXBkYXRlX2FyZWEgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQg aGVpZ2h0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdGhlbWUuaCIpXQorLQlbQ29tcGFjdF0K Ky0JcHVibGljIGNsYXNzIFRoZW1lIHsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBNZXRhLlRoZW1lIGdldF9kZWZhdWx0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5U aGVtZSBAbmV3ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dp bmRvdy5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg YWJzdHJhY3QgY2xhc3MgV2luZG93IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdpbmRvdyAoKTsKKy0JCXB1 YmxpYyB2b2lkIGFjdGl2YXRlICh1aW50MzIgY3VycmVudF90aW1lKTsKKy0JCXB1YmxpYyB2b2lk IGFjdGl2YXRlX3dpdGhfd29ya3NwYWNlICh1aW50MzIgY3VycmVudF90aW1lLCBNZXRhLldvcmtz cGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIGJvb2wgYWxsb3dzX21vdmUgKCk7CistCQlwdWJs aWMgYm9vbCBhbGxvd3NfcmVzaXplICgpOworLQkJcHVibGljIHZvaWQgYmVnaW5fZ3JhYl9vcCAo TWV0YS5HcmFiT3Agb3AsIGJvb2wgZnJhbWVfYWN0aW9uLCB1aW50MzIgdGltZXN0YW1wKTsKKy0J CXB1YmxpYyBib29sIGNhbl9jbG9zZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9tYXhpbWl6ZSAo KTsKKy0JCXB1YmxpYyBib29sIGNhbl9taW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9z aGFkZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGNoYW5nZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNl IHdvcmtzcGFjZSk7CistCQlwdWJsaWMgdm9pZCBjaGFuZ2Vfd29ya3NwYWNlX2J5X2luZGV4IChp bnQgc3BhY2VfaW5kZXgsIGJvb2wgYXBwZW5kKTsKKy0JCXB1YmxpYyB2b2lkIGNoZWNrX2FsaXZl ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBjbGllbnRfcmVj dF90b19mcmFtZV9yZWN0IChNZXRhLlJlY3RhbmdsZSBjbGllbnRfcmVjdCk7CistCQlwdWJsaWMg dm9pZCBjb21wdXRlX2dyb3VwICgpOworLQkJcHVibGljIHZvaWQgQGRlbGV0ZSAodWludDMyIHRp bWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBmaW5kX3Jvb3RfYW5jZXN0 b3IgKCk7CistCQlwdWJsaWMgdm9pZCBmb2N1cyAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJs aWMgdm9pZCBmb3JlYWNoX2FuY2VzdG9yIChNZXRhLldpbmRvd0ZvcmVhY2hGdW5jIGZ1bmMpOwor LQkJcHVibGljIHZvaWQgZm9yZWFjaF90cmFuc2llbnQgKE1ldGEuV2luZG93Rm9yZWFjaEZ1bmMg ZnVuYyk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdF90b19jbGllbnRfcmVj dCAoTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdCk7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aF9w b3MgPSAwLjEsIGFycmF5X2xlbmd0aF90eXBlID0gImdzaXplIildCistCQlwdWJsaWMgaW50W10g Z2V0X2FsbF9tb25pdG9ycyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfYnVmZmVy X3JlY3QgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2NsaWVudF9tYWNoaW5lICgp OworLQkJcHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X2NvbXBvc2l0b3JfcHJpdmF0ZSAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZGVzY3JpcHRpb24gKCk7CistCQlwdWJs aWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBNZXRhLkZyYW1lIGdldF9mcmFtZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENhaXJvLlJlZ2lv bj8gZ2V0X2ZyYW1lX2JvdW5kcyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfZnJh bWVfcmVjdCAoKTsKKy0JCXB1YmxpYyBNZXRhLkZyYW1lVHlwZSBnZXRfZnJhbWVfdHlwZSAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIE1ldGEuR3JvdXAgZ2V0X2dyb3VwICgpOworLQkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF9ndGtfYXBwX21lbnVfb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBsaWNhdGlvbl9pZCAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfZ3RrX2FwcGxpY2F0aW9uX29iamVjdF9wYXRoICgpOworLQkJcHVibGlj IHVub3duZWQgc3RyaW5nIGdldF9ndGtfbWVudWJhcl9vYmplY3RfcGF0aCAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3RoZW1lX3ZhcmlhbnQgKCk7CistCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X2d0a191bmlxdWVfYnVzX25hbWUgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X2d0a193aW5kb3dfb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgYm9vbCBn ZXRfaWNvbl9nZW9tZXRyeSAob3V0IE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworLQkJcHVibGljIE1l dGEuU3RhY2tMYXllciBnZXRfbGF5ZXIgKCk7CistCQlwdWJsaWMgTWV0YS5NYXhpbWl6ZUZsYWdz IGdldF9tYXhpbWl6ZWQgKCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yICgpOworLQkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9tdXR0ZXJfaGludHMgKCk7CistCQlwdWJsaWMgaW50IGdl dF9waWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3JvbGUgKCk7CistCQlwdWJs aWMgdW5vd25lZCBNZXRhLlNjcmVlbiBnZXRfc2NyZWVuICgpOworLQkJcHVibGljIHVpbnQgZ2V0 X3N0YWJsZV9zZXF1ZW5jZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc3RhcnR1 cF9pZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93PyBnZXRfdGlsZV9tYXRjaCAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdGl0bGUgKCk7CistCQlwdWJsaWMgdW5v d25lZCBNZXRhLldpbmRvdyBnZXRfdHJhbnNpZW50X2ZvciAoKTsKKy0JCXB1YmxpYyB1aW50MzIg Z2V0X3VzZXJfdGltZSAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd1R5cGUgZ2V0X3dpbmRvd190 eXBlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bV9jbGFzcyAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21fY2xhc3NfaW5zdGFuY2UgKCk7CistCQlwdWJsaWMg TWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9hbGxfbW9uaXRvcnMgKCk7CistCQlwdWJsaWMg TWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9jdXJyZW50X21vbml0b3IgKCk7CistCQlwdWJs aWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9uaXRvciAoaW50IHdoaWNoX21v bml0b3IpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X3dvcmtzcGFjZSAo KTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeHdpbmRvdyAoKTsKKy0JCXB1YmxpYyB2b2lkIGdy b3VwX2xlYWRlcl9jaGFuZ2VkICgpOworLQkJcHVibGljIGJvb2wgaGFzX2ZvY3VzICgpOworLQkJ cHVibGljIGJvb2wgaXNfYWJvdmUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hbHdheXNfb25fYWxs X3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hbmNlc3Rvcl9vZl90cmFuc2llbnQg KE1ldGEuV2luZG93IHRyYW5zaWVudCk7CistCQlwdWJsaWMgYm9vbCBpc19hdHRhY2hlZF9kaWFs b2cgKCk7CistCQlwdWJsaWMgYm9vbCBpc19mdWxsc2NyZWVuICgpOworLQkJcHVibGljIGJvb2wg aXNfaGlkZGVuICgpOworLQkJcHVibGljIGJvb2wgaXNfbW9uaXRvcl9zaXplZCAoKTsKKy0JCXB1 YmxpYyBib29sIGlzX29uX2FsbF93b3Jrc3BhY2VzICgpOworLQkJcHVibGljIGJvb2wgaXNfb25f cHJpbWFyeV9tb25pdG9yICgpOworLQkJcHVibGljIGJvb2wgaXNfb3ZlcnJpZGVfcmVkaXJlY3Qg KCk7CistCQlwdWJsaWMgYm9vbCBpc19yZW1vdGUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19zY3Jl ZW5fc2l6ZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19zaGFkZWQgKCk7CistCQlwdWJsaWMgYm9v bCBpc19za2lwX3Rhc2tiYXIgKCk7CistCQlwdWJsaWMgdm9pZCBraWxsICgpOworLQkJcHVibGlj IGJvb2wgbG9jYXRlZF9vbl93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7Cist CQlwdWJsaWMgdm9pZCBsb3dlciAoKTsKKy0JCXB1YmxpYyB2b2lkIG1ha2VfYWJvdmUgKCk7Cist CQlwdWJsaWMgdm9pZCBtYWtlX2Z1bGxzY3JlZW4gKCk7CistCQlwdWJsaWMgdm9pZCBtYXhpbWl6 ZSAoTWV0YS5NYXhpbWl6ZUZsYWdzIGRpcmVjdGlvbnMpOworLQkJcHVibGljIHZvaWQgbWluaW1p emUgKCk7CistCQlwdWJsaWMgdm9pZCBtb3ZlX2ZyYW1lIChib29sIHVzZXJfb3AsIGludCByb290 X3hfbncsIGludCByb290X3lfbncpOworLQkJcHVibGljIHZvaWQgbW92ZV9yZXNpemVfZnJhbWUg KGJvb2wgdXNlcl9vcCwgaW50IHJvb3RfeF9udywgaW50IHJvb3RfeV9udywgaW50IHcsIGludCBo KTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVfdG9fbW9uaXRvciAoaW50IG1vbml0b3IpOworLQkJcHVi bGljIHZvaWQgcmFpc2UgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfYnlwYXNzX2NvbXBv c2l0b3IgKCk7CistCQlwdWJsaWMgYm9vbCByZXF1ZXN0ZWRfZG9udF9ieXBhc3NfY29tcG9zaXRv ciAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jb21wb3NpdG9yX3ByaXZhdGUgKEdMaWIuT2JqZWN0 IHByaXYpOworLQkJcHVibGljIHZvaWQgc2V0X2RlbWFuZHNfYXR0ZW50aW9uICgpOworLQkJcHVi bGljIHZvaWQgc2V0X2ljb25fZ2VvbWV0cnkgKE1ldGEuUmVjdGFuZ2xlPyByZWN0KTsKKy0JCXB1 YmxpYyB2b2lkIHNoYWRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHNob3Zl X3RpdGxlYmFyX29uc2NyZWVuICgpOworLQkJcHVibGljIGJvb2wgc2hvd2luZ19vbl9pdHNfd29y a3NwYWNlICgpOworLQkJcHVibGljIHZvaWQgc2h1dGRvd25fZ3JvdXAgKCk7CistCQlwdWJsaWMg dm9pZCBzdGljayAoKTsKKy0JCXB1YmxpYyBib29sIHRpdGxlYmFyX2lzX29uc2NyZWVuICgpOwor LQkJcHVibGljIHZvaWQgdW5tYWtlX2Fib3ZlICgpOworLQkJcHVibGljIHZvaWQgdW5tYWtlX2Z1 bGxzY3JlZW4gKCk7CistCQlwdWJsaWMgdm9pZCB1bm1heGltaXplIChNZXRhLk1heGltaXplRmxh Z3MgZGlyZWN0aW9ucyk7CistCQlwdWJsaWMgdm9pZCB1bm1pbmltaXplICgpOworLQkJcHVibGlj IHZvaWQgdW5zZXRfZGVtYW5kc19hdHRlbnRpb24gKCk7CistCQlwdWJsaWMgdm9pZCB1bnNoYWRl ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHVuc3RpY2sgKCk7CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGFib3ZlIHsgZ2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGFwcGVhcnNfZm9jdXNlZCB7IGdldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBkZWNvcmF0ZWQgeyBnZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZGVtYW5kc19hdHRlbnRpb24geyBn ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZnVsbHNjcmVlbiB7 IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfYXBwX21lbnVfb2JqZWN0X3BhdGggeyBnZXQ7 IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcGxpY2F0aW9uX2lkIHsgZ2V0OyB9CistCQlwdWJs aWMgc3RyaW5nIGd0a19hcHBsaWNhdGlvbl9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJcHVibGlj IHN0cmluZyBndGtfbWVudWJhcl9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJcHVibGljIHN0cmlu ZyBndGtfdW5pcXVlX2J1c19uYW1lIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a193aW5k b3dfb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IENhaXJvLlN1cmZhY2UgaWNvbiB7IG93bmVkIGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgYm9vbCBtYXhpbWl6ZWRfaG9yaXpvbnRhbGx5IHsgZ2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1heGltaXplZF92ZXJ0aWNhbGx5IHsgZ2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIG1pbmlf aWNvbiB7IG93bmVkIGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9v bCBtaW5pbWl6ZWQgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgbXV0dGVyX2hpbnRzIHsgZ2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG9uX2FsbF93b3Jrc3Bh Y2VzIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHJlc2l6 ZWFibGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgc2tp cF90YXNrYmFyIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIHRpdGxlIHsgZ2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHVyZ2VudCB7IGdldDsgfQorLQkJcHVi bGljIHVpbnQgdXNlcl90aW1lIHsgZ2V0OyB9CistCQlwdWJsaWMgTWV0YS5XaW5kb3dUeXBlIHdp bmRvd190eXBlIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIHdtX2NsYXNzIHsgZ2V0OyB9Cist CQlbQ0NvZGUgKGNuYW1lID0gImZvY3VzIildCistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZm9jdXNl ZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwb3NpdGlvbl9jaGFuZ2VkICgpOworLQkJcHVi bGljIHNpZ25hbCB2b2lkIHJhaXNlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2No YW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgdW5tYW5hZ2VkICgpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21ldGEtd2luZG93LWFjdG9yLmgiLCB0eXBlX2lkID0gIm1ldGFf d2luZG93X2FjdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBXaW5kb3dBY3RvciA6 IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0 dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBXaW5kb3dBY3RvciAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF9tZXRhX3dpbmRvdyAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgWC5XaW5k b3cgZ2V0X3hfd2luZG93ICgpOworLQkJcHVibGljIGJvb2wgaXNfZGVzdHJveWVkICgpOworLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgc3RyaW5nIHNoYWRvd19jbGFzcyB7IG93bmVk IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLlNoYWRv d01vZGUgc2hhZG93X21vZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGZp cnN0X2ZyYW1lICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGFfd2luZG93X3NoYXBlLmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV93aW5kb3dfc2hhcGVfcmVm IiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19zaGFwZV9nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0 aW9uID0gIm1ldGFfd2luZG93X3NoYXBlX3VucmVmIildCistCVtDb21wYWN0XQorLQlwdWJsaWMg Y2xhc3MgV2luZG93U2hhcGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorLQkJcHVibGljIFdpbmRvd1NoYXBlIChDYWlyby5SZWdpb24gcmVnaW9uKTsKKy0J CXB1YmxpYyBib29sIGVxdWFsIChNZXRhLldpbmRvd1NoYXBlIHNoYXBlX2IpOworLQkJcHVibGlj IHZvaWQgZ2V0X2JvcmRlcnMgKGludCBib3JkZXJfdG9wLCBpbnQgYm9yZGVyX3JpZ2h0LCBpbnQg Ym9yZGVyX2JvdHRvbSwgaW50IGJvcmRlcl9sZWZ0KTsKKy0JCXB1YmxpYyB1aW50IGhhc2ggKCk7 CistCQlwdWJsaWMgTWV0YS5XaW5kb3dTaGFwZSBAcmVmICgpOworLQkJcHVibGljIENhaXJvLlJl Z2lvbiB0b19yZWdpb24gKGludCBjZW50ZXJfd2lkdGgsIGludCBjZW50ZXJfaGVpZ2h0KTsKKy0J CXB1YmxpYyB2b2lkIHVucmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dvcmtzcGFjZV9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgY2xhc3MgV29ya3NwYWNlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdvcmtzcGFj ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGFjdGl2YXRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1 YmxpYyB2b2lkIGFjdGl2YXRlX3dpdGhfZm9jdXMgKE1ldGEuV2luZG93IGZvY3VzX3RoaXMsIHVp bnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X25l aWdoYm9yIChNZXRhLk1vdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pOworLQkJcHVibGljIHVub3du ZWQgTWV0YS5TY3JlZW4gZ2V0X3NjcmVlbiAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBn ZXRfd29ya19hcmVhX2FsbF9tb25pdG9ycyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBn ZXRfd29ya19hcmVhX2Zvcl9tb25pdG9yIChpbnQgd2hpY2hfbW9uaXRvcik7CistCQlwdWJsaWMg aW50IGluZGV4ICgpOworLQkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBsaXN0 X3dpbmRvd3MgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfYnVpbHRpbl9zdHJ1dHMgKEdMaWIuU0xp c3Q8TWV0YS5TdHJ1dD4gc3RydXRzKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IHVpbnQgbl93aW5kb3dzIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyB1aW50IHdvcmtzcGFjZV9pbmRleCB7IGdldDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIHdp bmRvd19hZGRlZCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3 aW5kb3dfcmVtb3ZlZCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlw dWJsaWMgc3RydWN0IEJ1dHRvbkxheW91dCB7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZh bHNlLCBhcnJheV9udWxsX3Rlcm1pbmF0ZWQgPSB0cnVlKV0KKy0JCXB1YmxpYyB3ZWFrIE1ldGEu QnV0dG9uRnVuY3Rpb25bXSBsZWZ0X2J1dHRvbnM7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlLCBhcnJheV9udWxsX3Rlcm1pbmF0ZWQgPSB0cnVlKV0KKy0JCXB1YmxpYyB3ZWFrIGJv b2xbXSBsZWZ0X2J1dHRvbnNfaGFzX3NwYWNlcjsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0g ZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9IHRydWUpXQorLQkJcHVibGljIHdlYWsgTWV0 YS5CdXR0b25GdW5jdGlvbltdIHJpZ2h0X2J1dHRvbnM7CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlLCBhcnJheV9udWxsX3Rlcm1pbmF0ZWQgPSB0cnVlKV0KKy0JCXB1YmxpYyB3ZWFr IGJvb2xbXSByaWdodF9idXR0b25zX2hhc19zcGFjZXI7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJs aWMgc3RydWN0IEVkZ2UgeworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHJlY3Q7CistCQlwdWJs aWMgTWV0YS5TaWRlIHNpZGVfdHlwZTsKKy0JCXB1YmxpYyBNZXRhLkVkZ2VUeXBlIGVkZ2VfdHlw ZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IEZyYW1lQm9yZGVycyB7CistCQlw dWJsaWMgR3RrLkJvcmRlciB2aXNpYmxlOworLQkJcHVibGljIEd0ay5Cb3JkZXIgaW52aXNpYmxl OworLQkJcHVibGljIEd0ay5Cb3JkZXIgdG90YWw7CistCQlwdWJsaWMgdm9pZCBjbGVhciAoKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luSW5mbyB7CistCQlw dWJsaWMgd2VhayBzdHJpbmcgbmFtZTsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyB2ZXJzaW9uOwor LQkJcHVibGljIHdlYWsgc3RyaW5nIGF1dGhvcjsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBsaWNl bnNlOworLQkJcHVibGljIHdlYWsgc3RyaW5nIGRlc2NyaXB0aW9uOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKy0JcHVibGljIHN0cnVjdCBQbHVnaW5WZXJzaW9uIHsKKy0JCXB1YmxpYyB1aW50IHZl cnNpb25fbWFqb3I7CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21pbm9yOworLQkJcHVibGljIHVp bnQgdmVyc2lvbl9taWNybzsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fYXBpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKy0JcHVibGljIHN0cnVjdCBSZWN0YW5nbGUgeworLQkJcHVibGljIGludCB4OworLQkJ cHVibGljIGludCB5OworLQkJcHVibGljIGludCB3aWR0aDsKKy0JCXB1YmxpYyBpbnQgaGVpZ2h0 OworLQkJcHVibGljIGludCBhcmVhICgpOworLQkJcHVibGljIGJvb2wgY29udGFpbnNfcmVjdCAo TWV0YS5SZWN0YW5nbGUgaW5uZXJfcmVjdCk7CistCQlwdWJsaWMgYm9vbCBjb3VsZF9maXRfcmVj dCAoTWV0YS5SZWN0YW5nbGUgaW5uZXJfcmVjdCk7CistCQlwdWJsaWMgYm9vbCBlcXVhbCAoTWV0 YS5SZWN0YW5nbGUgc3JjMik7CistCQlwdWJsaWMgYm9vbCBob3Jpel9vdmVybGFwIChNZXRhLlJl Y3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3QgKE1ldGEuUmVjdGFuZ2xl IHNyYzIsIG91dCBNZXRhLlJlY3RhbmdsZSBkZXN0KTsKKy0JCXB1YmxpYyBib29sIG92ZXJsYXAg KE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSB1bmlvbiAo TWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGljIGJvb2wgdmVydF9vdmVybGFwIChNZXRh LlJlY3RhbmdsZSByZWN0Mik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1Ymxp YyBzdHJ1Y3QgU2hhZG93UGFyYW1zIHsKKy0JCXB1YmxpYyBpbnQgcmFkaXVzOworLQkJcHVibGlj IGludCB0b3BfZmFkZTsKKy0JCXB1YmxpYyBpbnQgeF9vZmZzZXQ7CistCQlwdWJsaWMgaW50IHlf b2Zmc2V0OworLQkJcHVibGljIHVpbnQ4IG9wYWNpdHk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJs aWMgc3RydWN0IFN0cnV0IHsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSByZWN0OworLQkJcHVi bGljIE1ldGEuU2lkZSBzaWRlOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCIsIGNwcmVmaXggPSAiTUVUQV9CQVJSSUVSX0RJUkVDVElPTl8iLCB0eXBl X2lkID0gIm1ldGFfYmFycmllcl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQor LQlwdWJsaWMgZW51bSBCYXJyaWVyRGlyZWN0aW9uIHsKKy0JCVBPU0lUSVZFX1gsCistCQlQT1NJ VElWRV9ZLAorLQkJTkVHQVRJVkVfWCwKKy0JCU5FR0FUSVZFX1kKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9CVVRUT05f RlVOQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2J1dHRvbl9mdW5jdGlvbl9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgZW51bSBCdXR0b25GdW5jdGlvbiB7CistCQlNRU5VLAorLQkJTUlOSU1JWkUs CistCQlNQVhJTUlaRSwKKy0JCUNMT1NFLAorLQkJU0hBREUsCistCQlBQk9WRSwKKy0JCVNUSUNL LAorLQkJVU5TSEFERSwKKy0JCVVOQUJPVkUsCistCQlVTlNUSUNLLAorLQkJQVBQTUVOVSwKKy0J CUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9y LmgiLCBjcHJlZml4ID0gIk1FVEFfQ09NUF9FRkZFQ1RfIiwgdHlwZV9pZCA9ICJtZXRhX2NvbXBf ZWZmZWN0X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIENvbXBFZmZlY3QgeworLQkJQ1JF QVRFLAorLQkJVU5NSU5JTUlaRSwKKy0JCURFU1RST1ksCistCQlNSU5JTUlaRSwKKy0JCU5PTkUK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVm aXggPSAiTUVUQV9DVVJTT1JfIiwgdHlwZV9pZCA9ICJtZXRhX2N1cnNvcl9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgZW51bSBDdXJzb3IgeworLQkJTk9ORSwKKy0JCURFRkFVTFQsCistCQlOT1JU SF9SRVNJWkUsCistCQlTT1VUSF9SRVNJWkUsCistCQlXRVNUX1JFU0laRSwKKy0JCUVBU1RfUkVT SVpFLAorLQkJU0VfUkVTSVpFLAorLQkJU1dfUkVTSVpFLAorLQkJTkVfUkVTSVpFLAorLQkJTldf UkVTSVpFLAorLQkJTU9WRV9PUl9SRVNJWkVfV0lORE9XLAorLQkJQlVTWSwKKy0JCURORF9JTl9E UkFHLAorLQkJRE5EX01PVkUsCistCQlETkRfQ09QWSwKKy0JCURORF9VTlNVUFBPUlRFRF9UQVJH RVQsCistCQlQT0lOVElOR19IQU5ELAorLQkJQ1JPU1NIQUlSLAorLQkJSUJFQU0sCistCQlMQVNU CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZp eCA9ICJNRVRBX0RFQlVHXyIsIHR5cGVfaWQgPSAibWV0YV9kZWJ1Z190b3BpY19nZXRfdHlwZSAo KSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIERlYnVnVG9waWMgeworLQkJVkVSQk9TRSwK Ky0JCUZPQ1VTLAorLQkJV09SS0FSRUEsCistCQlTVEFDSywKKy0JCVRIRU1FUywKKy0JCVNNLAor LQkJRVZFTlRTLAorLQkJV0lORE9XX1NUQVRFLAorLQkJV0lORE9XX09QUywKKy0JCUdFT01FVFJZ LAorLQkJUExBQ0VNRU5ULAorLQkJUElORywKKy0JCVhJTkVSQU1BLAorLQkJS0VZQklORElOR1Ms CistCQlTWU5DLAorLQkJRVJST1JTLAorLQkJU1RBUlRVUCwKKy0JCVBSRUZTLAorLQkJR1JPVVBT LAorLQkJUkVTSVpJTkcsCistCQlTSEFQRVMsCistCQlDT01QT1NJVE9SLAorLQkJRURHRV9SRVNJ U1RBTkNFLAorLQkJREJVUworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFf ZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRGlyZWN0 aW9uIHsKKy0JCUxFRlQsCistCQlSSUdIVCwKKy0JCVRPUCwKKy0JCUJPVFRPTSwKKy0JCVVQLAor LQkJRE9XTiwKKy0JCUhPUklaT05UQUwsCistCQlWRVJUSUNBTAorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBjcHJlZml4ID0gIk1FVEFfRURHRV8iLCB0 eXBlX2lkID0gIm1ldGFfZWRnZV90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEVk Z2VUeXBlIHsKKy0JCVdJTkRPVywKKy0JCU1PTklUT1IsCistCQlTQ1JFRU4KKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfRVhJ VF8iLCB0eXBlX2lkID0gIm1ldGFfZXhpdF9jb2RlX2dldF90eXBlICgpIildCistCXB1YmxpYyBl bnVtIEV4aXRDb2RlIHsKKy0JCVNVQ0NFU1MsCistCQlFUlJPUgorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FXyIs IHR5cGVfaWQgPSAibWV0YV9mcmFtZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCist CXB1YmxpYyBlbnVtIEZyYW1lRmxhZ3MgeworLQkJQUxMT1dTX0RFTEVURSwKKy0JCUFMTE9XU19N RU5VLAorLQkJQUxMT1dTX0FQUE1FTlUsCistCQlBTExPV1NfTUlOSU1JWkUsCistCQlBTExPV1Nf TUFYSU1JWkUsCistCQlBTExPV1NfVkVSVElDQUxfUkVTSVpFLAorLQkJQUxMT1dTX0hPUklaT05U QUxfUkVTSVpFLAorLQkJSEFTX0ZPQ1VTLAorLQkJU0hBREVELAorLQkJU1RVQ0ssCistCQlNQVhJ TUlaRUQsCistCQlBTExPV1NfU0hBREUsCistCQlBTExPV1NfTU9WRSwKKy0JCUZVTExTQ1JFRU4s CistCQlJU19GTEFTSElORywKKy0JCUFCT1ZFLAorLQkJVElMRURfTEVGVCwKKy0JCVRJTEVEX1JJ R0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBj cHJlZml4ID0gIk1FVEFfRlJBTUVfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfdHlwZV9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBGcmFtZVR5cGUgeworLQkJTk9STUFMLAorLQkJ RElBTE9HLAorLQkJTU9EQUxfRElBTE9HLAorLQkJVVRJTElUWSwKKy0JCU1FTlUsCistCQlCT1JE RVIsCistCQlBVFRBQ0hFRCwKKy0JCUxBU1Q7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgdG9fc3Ry aW5nIChNZXRhLkZyYW1lVHlwZSB0eXBlKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFCX09QXyIsIHR5cGVfaWQg PSAibWV0YV9ncmFiX29wX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEdyYWJPcCB7Cist CQlOT05FLAorLQkJQ09NUE9TSVRPUiwKKy0JCVdBWUxBTkRfUE9QVVAsCistCQlXSU5ET1dfQkFT RSwKKy0JCUZSQU1FX0JVVFRPTiwKKy0JCU1PVklORywKKy0JCVJFU0laSU5HX05XLAorLQkJUkVT SVpJTkdfTiwKKy0JCVJFU0laSU5HX05FLAorLQkJUkVTSVpJTkdfRSwKKy0JCVJFU0laSU5HX1NX LAorLQkJUkVTSVpJTkdfUywKKy0JCVJFU0laSU5HX1NFLAorLQkJUkVTSVpJTkdfVywKKy0JCUtF WUJPQVJEX01PVklORywKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1VOS05PV04sCistCQlLRVlCT0FS RF9SRVNJWklOR19OVywKKy0JCUtFWUJPQVJEX1JFU0laSU5HX04sCistCQlLRVlCT0FSRF9SRVNJ WklOR19ORSwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX0UsCistCQlLRVlCT0FSRF9SRVNJWklOR19T VywKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1MsCistCQlLRVlCT0FSRF9SRVNJWklOR19TRSwKKy0J CUtFWUJPQVJEX1JFU0laSU5HX1cKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWUJJTkRJTkdfQUNUSU9OXyIsIHR5cGVf aWQgPSAibWV0YV9rZXlfYmluZGluZ19hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVu dW0gS2V5QmluZGluZ0FjdGlvbiB7CistCQlOT05FLAorLQkJV09SS1NQQUNFXzEsCistCQlXT1JL U1BBQ0VfMiwKKy0JCVdPUktTUEFDRV8zLAorLQkJV09SS1NQQUNFXzQsCistCQlXT1JLU1BBQ0Vf NSwKKy0JCVdPUktTUEFDRV82LAorLQkJV09SS1NQQUNFXzcsCistCQlXT1JLU1BBQ0VfOCwKKy0J CVdPUktTUEFDRV85LAorLQkJV09SS1NQQUNFXzEwLAorLQkJV09SS1NQQUNFXzExLAorLQkJV09S S1NQQUNFXzEyLAorLQkJV09SS1NQQUNFX0xFRlQsCistCQlXT1JLU1BBQ0VfUklHSFQsCistCQlX T1JLU1BBQ0VfVVAsCistCQlXT1JLU1BBQ0VfRE9XTiwKKy0JCVdPUktTUEFDRV9MQVNULAorLQkJ U1dJVENIX0FQUExJQ0FUSU9OUywKKy0JCVNXSVRDSF9BUFBMSUNBVElPTlNfQkFDS1dBUkQsCist CQlTV0lUQ0hfR1JPVVAsCistCQlTV0lUQ0hfR1JPVVBfQkFDS1dBUkQsCistCQlTV0lUQ0hfV0lO RE9XUywKKy0JCVNXSVRDSF9XSU5ET1dTX0JBQ0tXQVJELAorLQkJU1dJVENIX1BBTkVMUywKKy0J CVNXSVRDSF9QQU5FTFNfQkFDS1dBUkQsCistCQlDWUNMRV9HUk9VUCwKKy0JCUNZQ0xFX0dST1VQ X0JBQ0tXQVJELAorLQkJQ1lDTEVfV0lORE9XUywKKy0JCUNZQ0xFX1dJTkRPV1NfQkFDS1dBUkQs CistCQlDWUNMRV9QQU5FTFMsCistCQlDWUNMRV9QQU5FTFNfQkFDS1dBUkQsCistCQlTSE9XX0RF U0tUT1AsCistCQlQQU5FTF9NQUlOX01FTlUsCistCQlQQU5FTF9SVU5fRElBTE9HLAorLQkJVE9H R0xFX1JFQ09SRElORywKKy0JCVNFVF9TUEVXX01BUkssCistCQlBQ1RJVkFURV9XSU5ET1dfTUVO VSwKKy0JCVRPR0dMRV9GVUxMU0NSRUVOLAorLQkJVE9HR0xFX01BWElNSVpFRCwKKy0JCVRPR0dM RV9USUxFRF9MRUZULAorLQkJVE9HR0xFX1RJTEVEX1JJR0hULAorLQkJVE9HR0xFX0FCT1ZFLAor LQkJTUFYSU1JWkUsCistCQlVTk1BWElNSVpFLAorLQkJVE9HR0xFX1NIQURFRCwKKy0JCU1JTklN SVpFLAorLQkJQ0xPU0UsCistCQlCRUdJTl9NT1ZFLAorLQkJQkVHSU5fUkVTSVpFLAorLQkJVE9H R0xFX09OX0FMTF9XT1JLU1BBQ0VTLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMSwKKy0JCU1PVkVf VE9fV09SS1NQQUNFXzIsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8zLAorLQkJTU9WRV9UT19XT1JL U1BBQ0VfNCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzUsCistCQlNT1ZFX1RPX1dPUktTUEFDRV82 LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzgsCistCQlN T1ZFX1RPX1dPUktTUEFDRV85LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMTAsCistCQlNT1ZFX1RP X1dPUktTUEFDRV8xMSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzEyLAorLQkJTU9WRV9UT19XT1JL U1BBQ0VfTEVGVCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX1JJR0hULAorLQkJTU9WRV9UT19XT1JL U1BBQ0VfVVAsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9ET1dOLAorLQkJTU9WRV9UT19XT1JLU1BB Q0VfTEFTVCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9MRUZULAorLQkJTU9WRV9UT19NT05JVE9SX1JJ R0hULAorLQkJTU9WRV9UT19NT05JVE9SX1VQLAorLQkJTU9WRV9UT19NT05JVE9SX0RPV04sCist CQlSQUlTRV9PUl9MT1dFUiwKKy0JCVJBSVNFLAorLQkJTE9XRVIsCistCQlNQVhJTUlaRV9WRVJU SUNBTExZLAorLQkJTUFYSU1JWkVfSE9SSVpPTlRBTExZLAorLQkJTU9WRV9UT19DT1JORVJfTlcs CistCQlNT1ZFX1RPX0NPUk5FUl9ORSwKKy0JCU1PVkVfVE9fQ09STkVSX1NXLAorLQkJTU9WRV9U T19DT1JORVJfU0UsCistCQlNT1ZFX1RPX1NJREVfTiwKKy0JCU1PVkVfVE9fU0lERV9TLAorLQkJ TU9WRV9UT19TSURFX0UsCistCQlNT1ZFX1RPX1NJREVfVywKKy0JCU1PVkVfVE9fQ0VOVEVSLAor LQkJT1ZFUkxBWV9LRVksCistCQlJU09fTkVYVF9HUk9VUCwKKy0JCUFMV0FZU19PTl9UT1AsCist CQlMQVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNwcmVmaXggPSAiTUVUQV9LRVlfQklORElOR18iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRp bmdfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBLZXlCaW5k aW5nRmxhZ3MgeworLQkJTk9ORSwKKy0JCVBFUl9XSU5ET1csCistCQlCVUlMVElOLAorLQkJSVNf UkVWRVJTRUQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgi LCBjcHJlZml4ID0gIk1FVEFfTEFURVJfIiwgdHlwZV9pZCA9ICJtZXRhX2xhdGVyX3R5cGVfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gTGF0ZXJUeXBlIHsKKy0JCVJFU0laRSwKKy0JCUNB TENfU0hPV0lORywKKy0JCUNIRUNLX0ZVTExTQ1JFRU4sCistCQlTWU5DX1NUQUNLLAorLQkJQkVG T1JFX1JFRFJBVywKKy0JCUlETEUKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFfTE9DQUxFX0RJUkVDVElPTl8iLCB0eXBlX2lk ID0gIm1ldGFfbG9jYWxlX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBM b2NhbGVEaXJlY3Rpb24geworLQkJTFRSLAorLQkJUlRMCistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBjcHJlZml4ID0gIk1FVEFfTUFYSU1JWkVfIiwg dHlwZV9pZCA9ICJtZXRhX21heGltaXplX2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10K Ky0JcHVibGljIGVudW0gTWF4aW1pemVGbGFncyB7CistCQlIT1JJWk9OVEFMLAorLQkJVkVSVElD QUwsCistCQlCT1RICistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0 YS1wbHVnaW4uaCIsIGNwcmVmaXggPSAiTUVUQV9NT0RBTF8iLCB0eXBlX2lkID0gIm1ldGFfbW9k YWxfb3B0aW9uc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIE1vZGFs T3B0aW9ucyB7CistCQlQT0lOVEVSX0FMUkVBRFlfR1JBQkJFRCwKKy0JCUtFWUJPQVJEX0FMUkVB RFlfR1JBQkJFRAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1v bi5oIiwgY3ByZWZpeCA9ICJNRVRBX01PVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbW90aW9uX2Rp cmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBNb3Rpb25EaXJlY3Rpb24gewor LQkJVVAsCistCQlET1dOLAorLQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVVBfTEVGVCwKKy0JCVVQ X1JJR0hULAorLQkJRE9XTl9MRUZULAorLQkJRE9XTl9SSUdIVAorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjcHJlZml4ID0gIk1FVEFfUFJFRl8iLCB0 eXBlX2lkID0gIm1ldGFfcHJlZmVyZW5jZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBQ cmVmZXJlbmNlIHsKKy0JCU1PVVNFX0JVVFRPTl9NT0RTLAorLQkJRk9DVVNfTU9ERSwKKy0JCUZP Q1VTX05FV19XSU5ET1dTLAorLQkJQVRUQUNIX01PREFMX0RJQUxPR1MsCistCQlSQUlTRV9PTl9D TElDSywKKy0JCUFDVElPTl9ET1VCTEVfQ0xJQ0tfVElUTEVCQVIsCistCQlBQ1RJT05fTUlERExF X0NMSUNLX1RJVExFQkFSLAorLQkJQUNUSU9OX1JJR0hUX0NMSUNLX1RJVExFQkFSLAorLQkJQVVU T19SQUlTRSwKKy0JCUFVVE9fUkFJU0VfREVMQVksCistCQlGT0NVU19DSEFOR0VfT05fUE9JTlRF Ul9SRVNULAorLQkJVElUTEVCQVJfRk9OVCwKKy0JCU5VTV9XT1JLU1BBQ0VTLAorLQkJRFlOQU1J Q19XT1JLU1BBQ0VTLAorLQkJS0VZQklORElOR1MsCistCQlESVNBQkxFX1dPUktBUk9VTkRTLAor LQkJQlVUVE9OX0xBWU9VVCwKKy0JCVdPUktTUEFDRV9OQU1FUywKKy0JCVZJU1VBTF9CRUxMLAor LQkJQVVESUJMRV9CRUxMLAorLQkJVklTVUFMX0JFTExfVFlQRSwKKy0JCUdOT01FX0FDQ0VTU0lC SUxJVFksCistCQlHTk9NRV9BTklNQVRJT05TLAorLQkJQ1VSU09SX1RIRU1FLAorLQkJQ1VSU09S X1NJWkUsCistCQlSRVNJWkVfV0lUSF9SSUdIVF9CVVRUT04sCistCQlFREdFX1RJTElORywKKy0J CUZPUkNFX0ZVTExTQ1JFRU4sCistCQlXT1JLU1BBQ0VTX09OTFlfT05fUFJJTUFSWSwKKy0JCURS QUdHQUJMRV9CT1JERVJfV0lEVEgsCistCQlBVVRPX01BWElNSVpFLAorLQkJQ0VOVEVSX05FV19X SU5ET1dTLAorLQkJRFJBR19USFJFU0hPTEQ7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgdG9fc3Ry aW5nIChNZXRhLlByZWZlcmVuY2UgcHJlZik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvc2NyZWVuLmgiLCBjcHJlZml4ID0gIk1FVEFfU0NSRUVOXyIsIHR5cGVfaWQg PSAibWV0YV9zY3JlZW5fY29ybmVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNjcmVl bkNvcm5lciB7CistCQlUT1BMRUZULAorLQkJVE9QUklHSFQsCistCQlCT1RUT01MRUZULAorLQkJ Qk9UVE9NUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LWVudW0tdHlwZXMuaCIsIGNwcmVmaXggPSAiTUVUQV9TQ1JFRU5fIiwgdHlwZV9pZCA9ICJtZXRh X3NjcmVlbl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2NyZWVuRGly ZWN0aW9uIHsKKy0JCVVQLAorLQkJRE9XTiwKKy0JCUxFRlQsCistCQlSSUdIVAorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtZW51bS10eXBlcy5oIiwgY3ByZWZp eCA9ICJNRVRBX1NIQURPV19NT0RFXyIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfbW9kZV9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTaGFkb3dNb2RlIHsKKy0JCUFVVE8sCistCQlGT1JD RURfT0ZGLAorLQkJRk9SQ0VEX09OCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfU0lERV8iLCB0eXBlX2lkID0gIm1ldGFf c2lkZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTaWRlIHsKKy0JCUxFRlQsCistCQlS SUdIVCwKKy0JCVRPUCwKKy0JCUJPVFRPTQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21ldGEtZW51bS10eXBlcy5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJWkVfQ0hBTkdF XyIsIHR5cGVfaWQgPSAibWV0YV9zaXplX2NoYW5nZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg ZW51bSBTaXplQ2hhbmdlIHsKKy0JCU1BWElNSVpFLAorLQkJVU5NQVhJTUlaRSwKKy0JCUZVTExT Q1JFRU4sCistCQlVTkZVTExTQ1JFRU4KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0eXBlX2lkID0gIm1l dGFfc3RhY2tfbGF5ZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU3RhY2tMYXllciB7 CistCQlERVNLVE9QLAorLQkJQk9UVE9NLAorLQkJTk9STUFMLAorLQkJVE9QLAorLQkJRE9DSywK Ky0JCUZVTExTQ1JFRU4sCistCQlGT0NVU0VEX1dJTkRPVywKKy0JCU9WRVJSSURFX1JFRElSRUNU LAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3Bs YXkuaCIsIGNwcmVmaXggPSAiTUVUQV9UQUJfTElTVF8iLCB0eXBlX2lkID0gIm1ldGFfdGFiX2xp c3RfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gVGFiTGlzdCB7CistCQlOT1JNQUwsCist CQlET0NLUywKKy0JCUdST1VQLAorLQkJTk9STUFMX0FMTAorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIGNwcmVmaXggPSAiTUVUQV9UQUJfU0hPV18i LCB0eXBlX2lkID0gIm1ldGFfdGFiX3Nob3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg ZW51bSBUYWJTaG93VHlwZSB7CistCQlJQ09OLAorLQkJSU5TVEFOVExZCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfVklS VFVBTF8iLCB0eXBlX2lkID0gIm1ldGFfdmlydHVhbF9tb2RpZmllcl9nZXRfdHlwZSAoKSIpXQor LQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIFZpcnR1YWxNb2RpZmllciB7CistCQlTSElGVF9NQVNL LAorLQkJQ09OVFJPTF9NQVNLLAorLQkJQUxUX01BU0ssCistCQlNRVRBX01BU0ssCistCQlTVVBF Ul9NQVNLLAorLQkJSFlQRVJfTUFTSywKKy0JCU1PRDJfTUFTSywKKy0JCU1PRDNfTUFTSywKKy0J CU1PRDRfTUFTSywKKy0JCU1PRDVfTUFTSworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3dpbmRvdy5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19DTElFTlRfVFlQRV8i LCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2NsaWVudF90eXBlX2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIFdpbmRvd0NsaWVudFR5cGUgeworLQkJV0FZTEFORCwKKy0JCVgxMQorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJN RVRBX1dJTkRPV19NRU5VXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfbWVudV90eXBlX2dldF90 eXBlICgpIildCistCXB1YmxpYyBlbnVtIFdpbmRvd01lbnVUeXBlIHsKKy0JCVdNLAorLQkJQVBQ CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBjcHJl Zml4ID0gIk1FVEFfV0lORE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfdHlwZV9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgZW51bSBXaW5kb3dUeXBlIHsKKy0JCU5PUk1BTCwKKy0JCURFU0tU T1AsCistCQlET0NLLAorLQkJRElBTE9HLAorLQkJTU9EQUxfRElBTE9HLAorLQkJVE9PTEJBUiwK Ky0JCU1FTlUsCistCQlVVElMSVRZLAorLQkJU1BMQVNIU0NSRUVOLAorLQkJRFJPUERPV05fTUVO VSwKKy0JCVBPUFVQX01FTlUsCistCQlUT09MVElQLAorLQkJTk9USUZJQ0FUSU9OLAorLQkJQ09N Qk8sCistCQlETkQsCistCQlPVkVSUklERV9PVEhFUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkp XQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBJZGxlTW9uaXRvcldhdGNoRnVuYyAoTWV0YS5JZGxl TW9uaXRvciBtb25pdG9yLCB1aW50IHdhdGNoX2lkKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIsIGluc3RhbmNlX3BvcyA9IDUuOSldCistCXB1YmxpYyBkZWxl Z2F0ZSB2b2lkIEtleUhhbmRsZXJGdW5jIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgTWV0YS5TY3Jl ZW4gc2NyZWVuLCBNZXRhLldpbmRvdz8gd2luZG93LCBDbHV0dGVyLktleUV2ZW50PyBldmVudCwg TWV0YS5LZXlCaW5kaW5nIGJpbmRpbmcpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZv aWQgUHJlZnNDaGFuZ2VkRnVuYyAoTWV0YS5QcmVmZXJlbmNlIHByZWYpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCist CXB1YmxpYyBkZWxlZ2F0ZSBib29sIFdpbmRvd0ZvcmVhY2hGdW5jIChNZXRhLldpbmRvdyB3aW5k b3cpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9 ICJNRVRBX0RFRkFVTFRfSUNPTl9OQU1FIildCistCXB1YmxpYyBjb25zdCBzdHJpbmcgREVGQVVM VF9JQ09OX05BTUU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNuYW1lID0gIk1FVEFfSUNPTl9IRUlHSFQiKV0KKy0JcHVibGljIGNvbnN0IGludCBJQ09OX0hF SUdIVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAiTUVUQV9JQ09OX1dJRFRIIildCistCXB1YmxpYyBjb25zdCBpbnQgSUNPTl9XSURUSDsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9N QUpPUl9WRVJTSU9OIildCistCXB1YmxpYyBjb25zdCBpbnQgTUFKT1JfVkVSU0lPTjsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NSUNS T19WRVJTSU9OIildCistCXB1YmxpYyBjb25zdCBpbnQgTUlDUk9fVkVSU0lPTjsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lD T05fSEVJR0hUIildCistCXB1YmxpYyBjb25zdCBpbnQgTUlOSV9JQ09OX0hFSUdIVDsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5J X0lDT05fV0lEVEgiKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fV0lEVEg7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlO T1JfVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JTk9SX1ZFUlNJT047CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUExVR0lO X0FQSV9WRVJTSU9OIildCistCXB1YmxpYyBjb25zdCBpbnQgUExVR0lOX0FQSV9WRVJTSU9OOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRB X1BSSU9SSVRZX0JFRk9SRV9SRURSQVciKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9C RUZPUkVfUkVEUkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1BSRUZTX05PVElGWSIpXQorLQlwdWJsaWMgY29uc3Qg aW50IFBSSU9SSVRZX1BSRUZTX05PVElGWTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRURSQVciKV0KKy0JcHVibGlj IGNvbnN0IGludCBQUklPUklUWV9SRURSQVc7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIildCistCXB1Ymxp YyBjb25zdCBpbnQgUFJJT1JJVFlfUkVTSVpFOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9LRVlCT0FSRF9JRCIp XQorLQlwdWJsaWMgY29uc3QgaW50IFZJUlRVQUxfQ09SRV9LRVlCT0FSRF9JRDsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFM X0NPUkVfUE9JTlRFUl9JRCIpXQorLQlwdWJsaWMgY29uc3QgaW50IFZJUlRVQUxfQ09SRV9QT0lO VEVSX0lEOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0J cHVibGljIHN0YXRpYyBib29sIGFjdGl2YXRlX3Nlc3Npb24gKCk7CistIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0 ZXJfaW5pdCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBleGl0IChNZXRhLkV4aXRDb2RlIGNvZGUpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB1 bm93bmVkIEdMaWIuT3B0aW9uQ29udGV4dCBnZXRfb3B0aW9uX2NvbnRleHQgKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIGJv b2wgZ2V0X3JlcGxhY2VfY3VycmVudF93bSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBpbml0ICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyBi b29sIGlzX3Jlc3RhcnQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcXVpdCAoTWV0YS5FeGl0Q29kZSBjb2RlKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCByZWdpc3Rlcl93aXRoX3Nlc3Npb24gKCk7CistIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlc3RhcnQg KHN0cmluZyBtZXNzYWdlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIildCistCXB1YmxpYyBzdGF0aWMgaW50IHJ1biAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZ25vbWVf d21fa2V5YmluZGluZ3MgKHN0cmluZyB3bV9rZXliaW5kaW5ncyk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3dt X25hbWUgKHN0cmluZyB3bV9uYW1lKTsKKy19CitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTMt Y3VzdG9tLnZhbGEgdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYQorZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAyOWU1OTc3ZC4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci0z LWN1c3RvbS52YWxhCisrKysgL2Rldi9udWxsCitAQCAtMSw2ICswLDAgQEAKKy1uYW1lc3BhY2Ug TWV0YSB7CistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBNb25pdG9yTWFuYWdlciA6IE1ldGEuREJ1 c0Rpc3BsYXlDb25maWdTa2VsZXRvbiwgR0xpYi5EQnVzSW50ZXJmYWNlIHsKKy0JCS8qIG5vdCBl eHBvcnRlZCAqLworLQkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2NoYW5nZWQgKCk7Cist CX0KKy19CitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTMuZGVwcyB2YXBpL2xpYm11dHRlci0z LmRlcHMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMWYzYzkwNzkuLjAwMDAwMDAw CistLS0gdmFwaS9saWJtdXR0ZXItMy5kZXBzCisrKysgL2Rldi9udWxsCitAQCAtMSw5ICswLDAg QEAKKy1jYWlybworLWdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMKKy1nZGstMy4wCistZ2RrLXBp eGJ1Zi0yLjAKKy1ndGsrLTMuMAorLXgxMQorLXhmaXhlcy00LjAKKy1jbHV0dGVyLTEuMAorLWNv Z2wtMS4wCitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTQuZGVwcyB2YXBpL2xpYm11dHRlci00 LmRlcHMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMzY3YzM1YjkuLjAwMDAwMDAw CistLS0gdmFwaS9saWJtdXR0ZXItNC5kZXBzCisrKysgL2Rldi9udWxsCitAQCAtMSw4ICswLDAg QEAKKy1nZGstMy4wCistZ2RrLXBpeGJ1Zi0yLjAKKy1nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFz CistZ3RrKy0zLjAKKy1tdXR0ZXItY2x1dHRlci00CistbXV0dGVyLWNvZ2wtNAorLXgxMQorLXhm aXhlcy00LjAKK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItNC52YXBpIHZhcGkvbGlibXV0dGVy LTQudmFwaQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCBlMGQzNTZhMC4uMDAwMDAw MDAKKy0tLSB2YXBpL2xpYm11dHRlci00LnZhcGkKKysrKyAvZGV2L251bGwKK0BAIC0xLDE0MjUg KzAsMCBAQAorLS8qIGxpYm11dHRlci00LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5v dCBtb2RpZnkuICovCistCistW0NDb2RlIChjcHJlZml4ID0gIk1ldGEiLCBnaXJfbmFtZXNwYWNl ID0gIk1ldGEiLCBnaXJfdmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gIm1ldGFf IildCistbmFtZXNwYWNlIE1ldGEgeworLQluYW1lc3BhY2UgQ29tcG9zaXRvciB7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUg PSAibWV0YV9kaXNhYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCBkaXNhYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNw bGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2VtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIGVtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiAoTWV0YS5EaXNwbGF5IGRp c3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSAoTWV0 YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZm9jdXNfc3RhZ2Vfd2luZG93Iild CistCQlwdWJsaWMgc3RhdGljIHZvaWQgZm9jdXNfc3RhZ2Vfd2luZG93IChNZXRhLkRpc3BsYXkg ZGlzcGxheSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfZmVlZGJhY2tf Z3JvdXBfZm9yX2Rpc3BsYXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF9mZWVkYmFja19ncm91cF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCIsIGNuYW1lID0gIm1ldGFfZ2V0X3N0YWdlX2Zvcl9kaXNwbGF5IildCistCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfc3RhZ2VfZm9yX2Rpc3BsYXkgKE1ldGEuRGlz cGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9k aXNwbGF5IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfdG9w X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1l ID0gIm1ldGFfZ2V0X3dpbmRvd19hY3RvcnMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH TGliLkxpc3Q8Q2x1dHRlci5BY3Rvcj4gZ2V0X3dpbmRvd19hY3RvcnMgKE1ldGEuRGlzcGxheSBk aXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93aW5kb3dfZ3JvdXBf Zm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3NldF9z dGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc3RhZ2VfaW5w dXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7 CistCX0KKy0JbmFtZXNwYWNlIFByZWZzIHsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2JlbGxfaXNfYXVkaWJsZSIpXQor LQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2JlbGxfaXNfYXVkaWJsZSAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2NoYW5nZV93b3Jrc3BhY2VfbmFtZSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX2No YW5nZV93b3Jrc3BhY2VfbmFtZSAoaW50IGksIHN0cmluZyBuYW1lKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9h Y3Rpb25fZG91YmxlX2NsaWNrX3RpdGxlYmFyIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9w LlRpdGxlYmFyQWN0aW9uIHByZWZzX2dldF9hY3Rpb25fZG91YmxlX2NsaWNrX3RpdGxlYmFyICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0g Im1ldGFfcHJlZnNfZ2V0X2FjdGlvbl9taWRkbGVfY2xpY2tfdGl0bGViYXIiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gcHJlZnNfZ2V0X2FjdGlvbl9taWRkbGVf Y2xpY2tfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYWN0aW9uX3JpZ2h0X2NsaWNrX3RpdGxl YmFyIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlRpdGxlYmFyQWN0aW9uIHByZWZzX2dl dF9hY3Rpb25fcmlnaHRfY2xpY2tfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYXR0YWNoX21v ZGFsX2RpYWxvZ3MiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfYXR0YWNoX21v ZGFsX2RpYWxvZ3MgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYXV0b19tYXhpbWl6ZSIpXQorLQkJcHVibGlj IHN0YXRpYyBib29sIHByZWZzX2dldF9hdXRvX21heGltaXplICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2F1 dG9fcmFpc2UiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfYXV0b19yYWlzZSAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9 ICJtZXRhX3ByZWZzX2dldF9hdXRvX3JhaXNlX2RlbGF5IildCistCQlwdWJsaWMgc3RhdGljIGlu dCBwcmVmc19nZXRfYXV0b19yYWlzZV9kZWxheSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9idXR0b25fbGF5 b3V0IildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuQnV0dG9uTGF5b3V0IHByZWZzX2dldF9idXR0 b25fbGF5b3V0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2NlbnRlcl9uZXdfd2luZG93cyIpXQorLQkJcHVi bGljIHN0YXRpYyBib29sIHByZWZzX2dldF9jZW50ZXJfbmV3X3dpbmRvd3MgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVm c19nZXRfY29tcG9zaXRpbmdfbWFuYWdlciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZz X2dldF9jb21wb3NpdGluZ19tYW5hZ2VyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2N1cnNvcl9zaXplIild CistCQlwdWJsaWMgc3RhdGljIGludCBwcmVmc19nZXRfY3Vyc29yX3NpemUgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVm c19nZXRfY3Vyc29yX3RoZW1lIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIHBy ZWZzX2dldF9jdXJzb3JfdGhlbWUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZGlzYWJsZV93b3JrYXJvdW5k cyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9kaXNhYmxlX3dvcmthcm91bmRz ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1l ID0gIm1ldGFfcHJlZnNfZ2V0X2RyYWdfdGhyZXNob2xkIildCistCQlwdWJsaWMgc3RhdGljIGlu dCBwcmVmc19nZXRfZHJhZ190aHJlc2hvbGQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZHJhZ2dhYmxlX2Jv cmRlcl93aWR0aCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X2RyYWdnYWJsZV9i b3JkZXJfd2lkdGggKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZHluYW1pY193b3Jrc3BhY2VzIildCistCQlw dWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2R5bmFtaWNfd29ya3NwYWNlcyAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX2dldF9lZGdlX3RpbGluZyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9l ZGdlX3RpbGluZyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9mb2N1c19jaGFuZ2Vfb25fcG9pbnRlcl9yZXN0 IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2ZvY3VzX2NoYW5nZV9vbl9wb2lu dGVyX3Jlc3QgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZm9jdXNfbW9kZSIpXQorLQkJcHVibGljIHN0YXRp YyBHRGVza3RvcC5Gb2N1c01vZGUgcHJlZnNfZ2V0X2ZvY3VzX21vZGUgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19n ZXRfZm9jdXNfbmV3X3dpbmRvd3MiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuRm9jdXNO ZXdXaW5kb3dzIHByZWZzX2dldF9mb2N1c19uZXdfd2luZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9m b3JjZV9mdWxsc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2ZvcmNl X2Z1bGxzY3JlZW4gKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZ25vbWVfYWNjZXNzaWJpbGl0eSIpXQorLQkJ cHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9nbm9tZV9hY2Nlc3NpYmlsaXR5ICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFf cHJlZnNfZ2V0X2dub21lX2FuaW1hdGlvbnMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVm c19nZXRfZ25vbWVfYW5pbWF0aW9ucyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9rZXliaW5kaW5nX2FjdGlv biIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLktleUJpbmRpbmdBY3Rpb24gcHJlZnNfZ2V0X2tl eWJpbmRpbmdfYWN0aW9uIChzdHJpbmcgbmFtZSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfbW91c2VfYnV0dG9u X21lbnUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9tb3VzZV9idXR0b25fbWVu dSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFt ZSA9ICJtZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0b25fbW9kcyIpXQorLQkJcHVibGljIHN0YXRp YyBNZXRhLlZpcnR1YWxNb2RpZmllciBwcmVmc19nZXRfbW91c2VfYnV0dG9uX21vZHMgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0 YV9wcmVmc19nZXRfbW91c2VfYnV0dG9uX3Jlc2l6ZSIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQg cHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9yZXNpemUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfbnVtX3dvcmtz cGFjZXMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9udW1fd29ya3NwYWNlcyAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9 ICJtZXRhX3ByZWZzX2dldF9yYWlzZV9vbl9jbGljayIpXQorLQkJcHVibGljIHN0YXRpYyBib29s IHByZWZzX2dldF9yYWlzZV9vbl9jbGljayAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9zaG93X2ZhbGxiYWNr X2FwcF9tZW51IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X3Nob3dfZmFsbGJh Y2tfYXBwX21lbnUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfdGl0bGViYXJfZm9udCIpXQorLQkJcHVibGlj IHN0YXRpYyB1bm93bmVkIFBhbmdvLkZvbnREZXNjcmlwdGlvbiBwcmVmc19nZXRfdGl0bGViYXJf Zm9udCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX2dldF92aXN1YWxfYmVsbCIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIHByZWZzX2dldF92aXN1YWxfYmVsbCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF92aXN1YWxfYmVsbF90 eXBlIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlZpc3VhbEJlbGxUeXBlIHByZWZzX2dl dF92aXN1YWxfYmVsbF90eXBlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3dvcmtzcGFjZV9uYW1lIildCist CQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIHByZWZzX2dldF93b3Jrc3BhY2VfbmFtZSAo aW50IGkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfZ2V0X3dvcmtzcGFjZXNfb25seV9vbl9wcmltYXJ5IildCistCQlw dWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X3dvcmtzcGFjZXNfb25seV9vbl9wcmltYXJ5ICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0g Im1ldGFfcHJlZnNfaW5pdCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX2luaXQgKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAi bWV0YV9wcmVmc19zZXRfZm9yY2VfZnVsbHNjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lk IHByZWZzX3NldF9mb3JjZV9mdWxsc2NyZWVuIChib29sIHdoZXRoZXIpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0 X251bV93b3Jrc3BhY2VzIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X251bV93 b3Jrc3BhY2VzIChpbnQgbl93b3Jrc3BhY2VzKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9zaG93X2ZhbGxiYWNr X2FwcF9tZW51IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X3Nob3dfZmFsbGJh Y2tfYXBwX21lbnUgKGJvb2wgd2hldGhlcik7CistCX0KKy0JbmFtZXNwYWNlIFV0aWwgeworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9h ZGRfdmVyYm9zZV90b3BpYyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGFkZF92ZXJib3NlX3Rv cGljIChNZXRhLkRlYnVnVG9waWMgdG9waWMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9leHRlcm5hbF9iaW5kaW5nX25hbWVfZm9y X2FjdGlvbiIpXQorLQkJcHVibGljIHN0YXRpYyBzdHJpbmcgZXh0ZXJuYWxfYmluZGluZ19uYW1l X2Zvcl9hY3Rpb24gKHVpbnQga2V5YmluZGluZ19hY3Rpb24pOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9nX3V0Zjhfc3RybmR1cCIp XQorLQkJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMsIHNp emVfdCBuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNu YW1lID0gIm1ldGFfZ2V0X2xvY2FsZV9kaXJlY3Rpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0 YS5Mb2NhbGVEaXJlY3Rpb24gZ2V0X2xvY2FsZV9kaXJlY3Rpb24gKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dyYXZpdHlfdG9f c3RyaW5nIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlfdG9fc3Ry aW5nIChpbnQgZ3Jhdml0eSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91 dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2lzX2RlYnVnZ2luZyIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIGlzX2RlYnVnZ2luZyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfc3luY2luZyIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIGlzX3N5bmNpbmcgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91 dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2lzX3ZlcmJvc2UiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9v bCBpc192ZXJib3NlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRp bC5oIiwgY25hbWUgPSAibWV0YV9pc193YXlsYW5kX2NvbXBvc2l0b3IiKV0KKy0JCXB1YmxpYyBz dGF0aWMgYm9vbCBpc193YXlsYW5kX2NvbXBvc2l0b3IgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2xhdGVyX2FkZCIpXQorLQkJ cHVibGljIHN0YXRpYyB1aW50IGxhdGVyX2FkZCAoTWV0YS5MYXRlclR5cGUgd2hlbiwgb3duZWQg R0xpYi5Tb3VyY2VGdW5jIGZ1bmMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9sYXRlcl9yZW1vdmUiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCBsYXRlcl9yZW1vdmUgKHVpbnQgbGF0ZXJfaWQpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9wb3Bfbm9fbXNnX3ByZWZp eCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHBvcF9ub19tc2dfcHJlZml4ICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9wdXNo X25vX21zZ19wcmVmaXgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX25vX21zZ19wcmVm aXggKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFt ZSA9ICJtZXRhX3JlY3QiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5SZWN0YW5nbGU/IHJlY3Qg KGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfcmVtb3ZlX3ZlcmJvc2Vf dG9waWMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfdmVyYm9zZV90b3BpYyAoTWV0 YS5EZWJ1Z1RvcGljIHRvcGljKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfc2hvd19kaWFsb2ciKV0KKy0JCXB1YmxpYyBzdGF0aWMg R0xpYi5QaWQgc2hvd19kaWFsb2cgKHN0cmluZyB0eXBlLCBzdHJpbmcgbWVzc2FnZSwgc3RyaW5n IHRpbWVvdXQsIHN0cmluZyBkaXNwbGF5LCBzdHJpbmcgb2tfdGV4dCwgc3RyaW5nIGNhbmNlbF90 ZXh0LCBzdHJpbmcgaWNvbl9uYW1lLCBpbnQgdHJhbnNpZW50X2ZvciwgR0xpYi5TTGlzdDx2b2lk Kj4gY29sdW1ucywgR0xpYi5TTGlzdDx2b2lkKj4gZW50cmllcyk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3Vuc2lnbmVkX2xvbmdf ZXF1YWwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHVuc2lnbmVkX2xvbmdfZXF1YWwgKHZvaWQq IHYxLCB2b2lkKiB2Mik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGls LmgiLCBjbmFtZSA9ICJtZXRhX3Vuc2lnbmVkX2xvbmdfaGFzaCIpXQorLQkJcHVibGljIHN0YXRp YyB1aW50IHVuc2lnbmVkX2xvbmdfaGFzaCAodm9pZCogdik7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3gxMV9lcnJvcl90cmFwX3Bv cCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHgxMV9lcnJvcl90cmFwX3BvcCAoTWV0YS5YMTFE aXNwbGF5IHgxMV9kaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfeDExX2Vycm9yX3RyYXBfcG9wX3dpdGhfcmV0dXJuIild CistCQlwdWJsaWMgc3RhdGljIGludCB4MTFfZXJyb3JfdHJhcF9wb3Bfd2l0aF9yZXR1cm4gKE1l dGEuWDExRGlzcGxheSB4MTFfZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3gxMV9lcnJvcl90cmFwX3B1c2giKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCB4MTFfZXJyb3JfdHJhcF9wdXNoIChNZXRhLlgxMURpc3BsYXkg eDExX2Rpc3BsYXkpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtYmFja2VuZC5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tlbmRfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGFic3RyYWN0IGNsYXNzIEJhY2tlbmQgOiBHTGliLk9iamVjdCwgR0xpYi5Jbml0YWJs ZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90 ZWN0ZWQgQmFja2VuZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtYmFja2VuZC5oIiwgY25hbWUgPSAibWV0YV9nZXRfYmFja2VuZCIpXQorLQkJcHVibGljIHN0 YXRpYyB1bm93bmVkIE1ldGEuQmFja2VuZCBnZXRfYmFja2VuZCAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIE1ldGEuRG5kIGdldF9kbmQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLlJlbW90ZUFj Y2Vzc0NvbnRyb2xsZXIgZ2V0X3JlbW90ZV9hY2Nlc3NfY29udHJvbGxlciAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3N0YWdlICgpOworLQkJcHVibGljIHZvaWQgbG9j a19sYXlvdXRfZ3JvdXAgKHVpbnQgaWR4KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9rZXltYXAgKHN0 cmluZyBsYXlvdXRzLCBzdHJpbmcgdmFyaWFudHMsIHN0cmluZyBvcHRpb25zKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9udW1sb2NrIChib29sIG51bWxvY2tfc3RhdGUpOworLQkJcHVibGljIHNpZ25h bCB2b2lkIGtleW1hcF9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9s YXlvdXRfZ3JvdXBfY2hhbmdlZCAodWludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IGxhc3RfZGV2aWNlX2NoYW5nZWQgKGludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IGxpZF9pc19jbG9zZWRfY2hhbmdlZCAoYm9vbCBvYmplY3QpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC5oIiwgdHlwZV9pZCA9ICJtZXRh X2JhY2tncm91bmRfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmQgOiBH TGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CistCQlwdWJsaWMgQmFja2dyb3VuZCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJcHVibGlj IHN0YXRpYyB2b2lkIHJlZnJlc2hfYWxsICgpOworLQkJcHVibGljIHZvaWQgc2V0X2JsZW5kIChH TGliLkZpbGUgZmlsZTEsIEdMaWIuRmlsZSBmaWxlMiwgZG91YmxlIGJsZW5kX2ZhY3RvciwgR0Rl c2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAo Q2x1dHRlci5Db2xvciBjb2xvcik7CistCQlwdWJsaWMgdm9pZCBzZXRfZmlsZSAoR0xpYi5GaWxl IGZpbGUsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CistCQlwdWJsaWMgdm9pZCBz ZXRfZ3JhZGllbnQgKEdEZXNrdG9wLkJhY2tncm91bmRTaGFkaW5nIHNoYWRpbmdfZGlyZWN0aW9u LCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBDbHV0dGVyLkNvbG9yIHNlY29uZF9jb2xvcik7CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgbWV0YV9kaXNwbGF5IHsg b3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjaGFuZ2VkICgp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfYWN0b3JfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5J bXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRl ci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl LCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kQWN0b3IgKE1l dGEuRGlzcGxheSBkaXNwbGF5LCBpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgdm9pZCBzZXRfYmFj a2dyb3VuZCAoTWV0YS5CYWNrZ3JvdW5kIGJhY2tncm91bmQpOworLQkJcHVibGljIHZvaWQgc2V0 X2dyYWRpZW50IChib29sIGVuYWJsZWQsIGludCBoZWlnaHQsIGRvdWJsZSB0b25lX3N0YXJ0KTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9tb25pdG9yIChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgdm9p ZCBzZXRfdmlnbmV0dGUgKGJvb2wgZW5hYmxlZCwgZG91YmxlIGJyaWdodG5lc3MsIGRvdWJsZSBz aGFycG5lc3MpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5CYWNrZ3Jv dW5kIGJhY2tncm91bmQgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgZG91YmxlIGJyaWdodG5lc3MgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBncmFkaWVudCB7IGdldDsgc2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgZ3JhZGllbnRfaGVpZ2h0IHsgZ2V0OyBzZXQ7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGRvdWJsZSBncmFkaWVudF9tYXhf ZGFya25lc3MgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg TWV0YS5EaXNwbGF5IG1ldGFfZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgbW9uaXRvciB7IGdldDsgY29uc3RydWN0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHZpZ25ldHRlIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGRvdWJsZSB2aWduZXR0 ZV9zaGFycG5lc3MgeyBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tn cm91bmRfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRHcm91 cCA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBD bHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1 YmxpYyBCYWNrZ3JvdW5kR3JvdXAgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dy b3VuZF9pbWFnZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEltYWdl IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIEJhY2tncm91bmRJbWFnZSAoKTsKKy0JCXB1YmxpYyBib29sIGdl dF9zdWNjZXNzICgpOworLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF90ZXh0dXJl ICgpOworLQkJcHVibGljIGJvb2wgaXNfbG9hZGVkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IGxvYWRlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2ltYWdlX2Nh Y2hlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kSW1hZ2VDYWNoZSA6 IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKy0JCXByb3RlY3RlZCBCYWNrZ3JvdW5kSW1hZ2VDYWNoZSAoKTsKKy0JCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBNZXRhLkJhY2tncm91bmRJbWFnZUNhY2hlIGdldF9kZWZhdWx0ICgpOworLQkJ cHVibGljIE1ldGEuQmFja2dyb3VuZEltYWdlIGxvYWQgKEdMaWIuRmlsZSBmaWxlKTsKKy0JCXB1 YmxpYyB2b2lkIHB1cmdlIChHTGliLkZpbGUgZmlsZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAi bWV0YV9iYXJyaWVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYXJyaWVyIDogR0xp Yi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor LQkJcHJvdGVjdGVkIEJhcnJpZXIgKCk7CistCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOworLQkJ cHVibGljIGJvb2wgaXNfYWN0aXZlICgpOworLQkJcHVibGljIHZvaWQgcmVsZWFzZSAoTWV0YS5C YXJyaWVyRXZlbnQgZXZlbnQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0 YS5CYXJyaWVyRGlyZWN0aW9uIGRpcmVjdGlvbnMgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkgeyBvd25lZCBn ZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHgx IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGlu dCB4MiB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBpbnQgeTEgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgaW50IHkyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBo aXQgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsZWZ0 IChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2V2 ZW50X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgQmFycmllckV2 ZW50IHsKKy0JCXB1YmxpYyBpbnQgZHQ7CistCQlwdWJsaWMgZG91YmxlIGR4OworLQkJcHVibGlj IGRvdWJsZSBkeTsKKy0JCXB1YmxpYyBpbnQgZXZlbnRfaWQ7CistCQlwdWJsaWMgYm9vbCBncmFi YmVkOworLQkJcHVibGljIGJvb2wgcmVsZWFzZWQ7CistCQlwdWJsaWMgdWludDMyIHRpbWU7Cist CQlwdWJsaWMgZG91YmxlIHg7CistCQlwdWJsaWMgZG91YmxlIHk7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVf aWQgPSAibWV0YV9jdXJzb3JfdHJhY2tlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3Mg Q3Vyc29yVHJhY2tlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBDdXJzb3JUcmFja2VyICgpOworLQkJcHVi bGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQ3Vyc29yVHJhY2tlciBnZXRfZm9yX2Rpc3BsYXkgKE1l dGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCXB1YmxpYyB2b2lkIGdldF9ob3QgKG91dCBpbnQgeCwg b3V0IGludCB5KTsKKy0JCXB1YmxpYyB2b2lkIGdldF9wb2ludGVyIChpbnQgeCwgaW50IHksIENs dXR0ZXIuTW9kaWZpZXJUeXBlIG1vZHMpOworLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJl IGdldF9zcHJpdGUgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl92aXNpYmxlIChib29s IHZpc2libGUpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9jaGFuZ2VkICgpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9tb3ZlZCAoZmxvYXQgb2JqZWN0LCBmbG9hdCBwMCk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgdHlw ZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIERpc3Bs YXkgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgRGlzcGxheSAoKTsKKy0JCXB1YmxpYyB2b2lkIGFkZF9pZ25v cmVkX2Nyb3NzaW5nX3NlcmlhbCAodWxvbmcgc2VyaWFsKTsKKy0JCXB1YmxpYyB1aW50IGFkZF9r ZXliaW5kaW5nIChzdHJpbmcgbmFtZSwgR0xpYi5TZXR0aW5ncyBzZXR0aW5ncywgTWV0YS5LZXlC aW5kaW5nRmxhZ3MgZmxhZ3MsIG93bmVkIE1ldGEuS2V5SGFuZGxlckZ1bmMgaGFuZGxlcik7Cist CQlwdWJsaWMgYm9vbCBiZWdpbl9ncmFiX29wIChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuR3Jh Yk9wIG9wLCBib29sIHBvaW50ZXJfYWxyZWFkeV9ncmFiYmVkLCBib29sIGZyYW1lX2FjdGlvbiwg aW50IGJ1dHRvbiwgdWxvbmcgbW9kbWFzaywgdWludDMyIHRpbWVzdGFtcCwgaW50IHJvb3RfeCwg aW50IHJvb3RfeSk7CistCQlwdWJsaWMgdm9pZCBjbGVhcl9tb3VzZV9tb2RlICgpOworLQkJcHVi bGljIHZvaWQgY2xvc2UgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgZW5kX2dy YWJfb3AgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgZm9jdXNfZGVmYXVsdF93 aW5kb3cgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgZnJlZXplX2tleWJvYXJk ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2N1cnJlbnRfbW9uaXRvciAo KTsKKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2N1cnJlbnRfdGltZSAoKTsKKy0JCXB1YmxpYyB1aW50 MzIgZ2V0X2N1cnJlbnRfdGltZV9yb3VuZHRyaXAgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRh LldpbmRvdyBnZXRfZm9jdXNfd2luZG93ICgpOworLQkJcHVibGljIE1ldGEuR3JhYk9wIGdldF9n cmFiX29wICgpOworLQkJcHVibGljIHVpbnQgZ2V0X2tleWJpbmRpbmdfYWN0aW9uICh1aW50IGtl eWNvZGUsIHVsb25nIG1hc2spOworLQkJcHVibGljIHVpbnQzMiBnZXRfbGFzdF91c2VyX3RpbWUg KCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X21vbml0b3JfZ2VvbWV0cnkgKGludCBt b25pdG9yKTsKKy0JCXB1YmxpYyBib29sIGdldF9tb25pdG9yX2luX2Z1bGxzY3JlZW4gKGludCBt b25pdG9yKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfaW5kZXhfZm9yX3JlY3QgKE1ldGEu UmVjdGFuZ2xlIHJlY3QpOworLQkJcHVibGljIGludCBnZXRfbW9uaXRvcl9uZWlnaGJvcl9pbmRl eCAoaW50IHdoaWNoX21vbml0b3IsIE1ldGEuRGlzcGxheURpcmVjdGlvbiBkaXIpOworLQkJcHVi bGljIGludCBnZXRfbl9tb25pdG9ycyAoKTsKKy0JCXB1YmxpYyBzdHJpbmcgZ2V0X3BhZF9hY3Rp b25fbGFiZWwgKENsdXR0ZXIuSW5wdXREZXZpY2UgcGFkLCBNZXRhLlBhZEFjdGlvblR5cGUgYWN0 aW9uX3R5cGUsIHVpbnQgYWN0aW9uX251bWJlcik7CistCQlwdWJsaWMgaW50IGdldF9wcmltYXJ5 X21vbml0b3IgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0 IGludCBoZWlnaHQpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Tb3VuZFBsYXllciBnZXRfc291 bmRfcGxheWVyICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9jdXJy ZW50IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1 YmxpYyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gZ2V0X3RhYl9saXN0IChNZXRhLlRhYkxp c3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2U/IHdvcmtzcGFjZSk7CistCQlwdWJsaWMgdW5vd25lZCBN ZXRhLldpbmRvdyBnZXRfdGFiX25leHQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFj ZSB3b3Jrc3BhY2UsIE1ldGEuV2luZG93PyB3aW5kb3csIGJvb2wgYmFja3dhcmQpOworLQkJcHVi bGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2VNYW5hZ2VyIGdldF93b3Jrc3BhY2VfbWFuYWdlciAo KTsKKy0JCXB1YmxpYyB1aW50IGdyYWJfYWNjZWxlcmF0b3IgKHN0cmluZyBhY2NlbGVyYXRvciwg TWV0YS5LZXlCaW5kaW5nRmxhZ3MgZmxhZ3MpOworLQkJcHVibGljIGJvb2wgaXNfcG9pbnRlcl9l bXVsYXRpbmdfc2VxdWVuY2UgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UpOworLQkJ cHVibGljIGJvb2wgcmVtb3ZlX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lKTsKKy0JCXB1YmxpYyB2 b2lkIHJlcXVlc3RfcGFkX29zZCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQsIGJvb2wgZWRpdGlv bl9tb2RlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jdXJzb3IgKE1ldGEuQ3Vyc29yIGN1cnNvcik7 CistCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBzb3J0X3dpbmRvd3NfYnlf c3RhY2tpbmcgKEdMaWIuU0xpc3Q8TWV0YS5XaW5kb3c+IHdpbmRvd3MpOworLQkJcHVibGljIGJv b2wgc3VwcG9ydHNfZXh0ZW5kZWRfYmFycmllcnMgKCk7CistCQlwdWJsaWMgdm9pZCB1bmZyZWV6 ZV9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCB1bmdyYWJfYWNj ZWxlcmF0b3IgKHVpbnQgYWN0aW9uX2lkKTsKKy0JCXB1YmxpYyB2b2lkIHVuZ3JhYl9rZXlib2Fy ZCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCB4c2VydmVyX3RpbWVfaXNfYmVm b3JlICh1aW50MzIgdGltZTEsIHVpbnQzMiB0aW1lMik7CistCQlwdWJsaWMgTWV0YS5XaW5kb3cg Zm9jdXNfd2luZG93IHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWNjZWxlcmF0b3Jf YWN0aXZhdGVkICh1aW50IG9iamVjdCwgdWludCBwMCwgdWludCBwMSk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgY3Vyc29yX3VwZGF0ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ2xfdmlk ZW9fbWVtb3J5X3B1cmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2JlZ2lu IChNZXRhLkRpc3BsYXkgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfZW5kIChNZXRhLkRpc3BsYXkgb2JqZWN0LCBN ZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGlu X2Z1bGxzY3JlZW5fY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCBtb2RpZmllcnNf YWNjZWxlcmF0b3JfYWN0aXZhdGVkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG92ZXJsYXlf a2V5ICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHBhZF9tb2RlX3N3aXRjaCAoQ2x1dHRlci5J bnB1dERldmljZSBvYmplY3QsIHVpbnQgcDAsIHVpbnQgcDEpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIHJlc3RhY2tlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCByZXN0YXJ0ICgpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIHNob3dfb3NkIChpbnQgb2JqZWN0LCBzdHJpbmcgcDAsIHN0cmlu ZyBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHVub3duZWQgQ2x1dHRlci5BY3Rvcj8gc2hvd19wYWRf b3NkIChDbHV0dGVyLklucHV0RGV2aWNlIHBhZCwgR0xpYi5TZXR0aW5ncyBzZXR0aW5ncywgc3Ry aW5nIGxheW91dF9wYXRoLCBib29sIGVkaXRpb25fbW9kZSwgaW50IG1vbml0b3JfaWR4KTsKKy0J CXB1YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc2l6ZV9wb3B1cCAoYm9vbCBvYmplY3QsIE1ldGEu UmVjdGFuZ2xlIHAwLCBpbnQgcDEsIGludCBwMik7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hv d19yZXN0YXJ0X21lc3NhZ2UgKHN0cmluZz8gbWVzc2FnZSk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgc2hvd2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2lu ZG93X2NyZWF0ZWQgKE1ldGEuV2luZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg d2luZG93X2RlbWFuZHNfYXR0ZW50aW9uIChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIHdpbmRvd19lbnRlcmVkX21vbml0b3IgKGludCBvYmplY3QsIE1ldGEuV2lu ZG93IHAwKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfbGVmdF9tb25pdG9yIChpbnQg b2JqZWN0LCBNZXRhLldpbmRvdyBwMCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X21h cmtlZF91cmdlbnQgKE1ldGEuV2luZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg d29ya2FyZWFzX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlf Y2xvc2luZyAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9vcGVuZWQgKCk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9kbmRfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGNsYXNzIERuZCA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBEbmQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgZG5kX2VudGVyICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRuZF9sZWF2ZSAoKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBkbmRfcG9zaXRpb25fY2hhbmdlIChpbnQgb2JqZWN0LCBpbnQg cDApOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1 YmxpYyBjbGFzcyBGcmFtZSB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9pZGxlX21vbml0 b3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIElkbGVNb25pdG9yIDogR0xpYi5PYmpl Y3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJv dGVjdGVkIElkbGVNb25pdG9yICgpOworLQkJcHVibGljIHVpbnQgYWRkX2lkbGVfd2F0Y2ggKHVp bnQ2NCBpbnRlcnZhbF9tc2VjLCBvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxs YmFjayk7CistCQlwdWJsaWMgdWludCBhZGRfdXNlcl9hY3RpdmVfd2F0Y2ggKG93bmVkIE1ldGEu SWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBNZXRhLklkbGVNb25pdG9yIGdldF9jb3JlICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IE1ldGEuSWRsZU1vbml0b3IgZ2V0X2Zvcl9kZXZpY2UgKGludCBkZXZpY2VfaWQpOworLQkJcHVi bGljIGludDY0IGdldF9pZGxldGltZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV93YXRjaCAo dWludCBpZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgZGV2aWNlX2lk IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVk X2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9r ZXlfYmluZGluZ19nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEtl eUJpbmRpbmcgeworLQkJcHVibGljIHVpbnQgZ2V0X21hc2sgKCk7CistCQlwdWJsaWMgTWV0YS5W aXJ0dWFsTW9kaWZpZXIgZ2V0X21vZGlmaWVycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfbmFtZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2J1aWx0aW4gKCk7CistCQlwdWJsaWMg Ym9vbCBpc19yZXZlcnNlZCAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAibWV0YV9rZXliaW5kaW5n c19zZXRfY3VzdG9tX2hhbmRsZXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBzZXRfY3VzdG9t X2hhbmRsZXIgKHN0cmluZyBuYW1lLCBvd25lZCBNZXRhLktleUhhbmRsZXJGdW5jPyBoYW5kbGVy KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2xhdW5jaF9jb250ZXh0X2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBMYXVuY2hDb250ZXh0IDogR0xpYi5BcHBMYXVuY2hDb250ZXh0 IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3Rl Y3RlZCBMYXVuY2hDb250ZXh0ICgpOworLQkJcHVibGljIHZvaWQgc2V0X3RpbWVzdGFtcCAodWlu dDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBzZXRfd29ya3NwYWNlIChNZXRhLldvcmtz cGFjZSB3b3Jrc3BhY2UpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5E aXNwbGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgdWludCB0aW1lc3RhbXAgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlIHsgb3duZWQg Z2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3JfbWFuYWdlcl9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBHTGliLk9iamVjdCB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0 ZWQgTW9uaXRvck1hbmFnZXIgKCk7CistCQlwdWJsaWMgYm9vbCBjYW5fc3dpdGNoX2NvbmZpZyAo KTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLk1vbml0b3JNYW5hZ2VyIEBnZXQgKCk7 CistCQlwdWJsaWMgc3RhdGljIGludCBnZXRfZGlzcGxheV9jb25maWd1cmF0aW9uX3RpbWVvdXQg KCk7CistCQlwdWJsaWMgYm9vbCBnZXRfaXNfYnVpbHRpbl9kaXNwbGF5X29uICgpOworLQkJcHVi bGljIGludCBnZXRfbW9uaXRvcl9mb3JfY29ubmVjdG9yIChzdHJpbmcgY29ubmVjdG9yKTsKKy0J CXB1YmxpYyBNZXRhLk1vbml0b3JTd2l0Y2hDb25maWdUeXBlIGdldF9zd2l0Y2hfY29uZmlnICgp OworLQkJcHVibGljIHZvaWQgc3dpdGNoX2NvbmZpZyAoTWV0YS5Nb25pdG9yU3dpdGNoQ29uZmln VHlwZSBjb25maWdfdHlwZSk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRh LkJhY2tlbmQgYmFja2VuZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgY29uZmlybV9kaXNwbGF5X2NoYW5nZSAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBtb25pdG9yc19jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2No YW5nZWRfaW50ZXJuYWwgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcG93ZXJfc2F2ZV9tb2Rl X2NoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0 YS1wbHVnaW4uaCIsIHR5cGVfaWQgPSAibWV0YV9wbHVnaW5fZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGFic3RyYWN0IGNsYXNzIFBsdWdpbiA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQbHVnaW4gKCk7Cist CQlwdWJsaWMgYm9vbCBiZWdpbl9tb2RhbCAoTWV0YS5Nb2RhbE9wdGlvbnMgb3B0aW9ucywgdWlu dDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBjb21wbGV0ZV9kaXNwbGF5X2NoYW5nZSAo Ym9vbCBvayk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBjb25maXJt X2Rpc3BsYXlfY2hhbmdlICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZv aWQgZGVzdHJveSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBkZXN0 cm95X2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBl bmRfbW9kYWwgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5EaXNw bGF5IGdldF9kaXNwbGF5ICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5QbHVnaW5JbmZvPyBn ZXRfaW5mbyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGhpZGVf dGlsZV9wcmV2aWV3ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wg a2V5YmluZGluZ19maWx0ZXIgKE1ldGEuS2V5QmluZGluZyBiaW5kaW5nKTsKKy0JCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfc3dpdGNoX3dvcmtzcGFjZSAoKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfd2luZG93X2VmZmVjdHMg KE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHN0YXRpYyB2b2lkIG1hbmFnZXJf c2V0X3BsdWdpbl90eXBlIChHTGliLlR5cGUgZ3R5cGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgbWFwIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1Ymxp YyB2b2lkIG1hcF9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbWluaW1pemUgKE1ldGEuV2luZG93QWN0b3Ig YWN0b3IpOworLQkJcHVibGljIHZvaWQgbWluaW1pemVfY29tcGxldGVkIChNZXRhLldpbmRvd0Fj dG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIE1l dGEuUGx1Z2luSW5mbz8gcGx1Z2luX2luZm8gKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBzaG93X3RpbGVfcHJldmlldyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRh LlJlY3RhbmdsZSB0aWxlX3JlY3QsIGludCB0aWxlX21vbml0b3JfbnVtYmVyKTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfd2luZG93X21lbnUgKE1ldGEuV2lu ZG93IHdpbmRvdywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBpbnQgeCwgaW50IHkpOworLQkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd193aW5kb3dfbWVudV9mb3Jf cmVjdCAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01lbnVUeXBlIG1lbnUsIE1ldGEu UmVjdGFuZ2xlIHJlY3QpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg c2l6ZV9jaGFuZ2UgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IsIE1ldGEuU2l6ZUNoYW5nZSB3aGlj aF9jaGFuZ2UsIE1ldGEuUmVjdGFuZ2xlIG9sZF9mcmFtZV9yZWN0LCBNZXRhLlJlY3RhbmdsZSBv bGRfYnVmZmVyX3JlY3QpOworLQkJcHVibGljIHZvaWQgc2l6ZV9jaGFuZ2VfY29tcGxldGVkIChN ZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIHNpemVfY2hhbmdlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzdGFydCAoKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIHN3aXRjaF93b3Jrc3BhY2UgKGludCBmcm9tLCBpbnQgdG8s IE1ldGEuTW90aW9uRGlyZWN0aW9uIGRpcmVjdGlvbik7CistCQlwdWJsaWMgdm9pZCBzd2l0Y2hf d29ya3NwYWNlX2NvbXBsZXRlZCAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIHVubWluaW1pemUgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZv aWQgdW5taW5pbWl6ZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05v V3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgeGV2ZW50X2ZpbHRlciAoWC5FdmVudCBl dmVudCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9yZW1vdGVfYWNjZXNzX2NvbnRyb2xs ZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFJlbW90ZUFjY2Vzc0NvbnRyb2xsZXIg OiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistCQlwcm90ZWN0ZWQgUmVtb3RlQWNjZXNzQ29udHJvbGxlciAoKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBuZXdfaGFuZGxlIChNZXRhLlJlbW90ZUFjY2Vzc0hhbmRsZSBvYmplY3QpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfcmVtb3RlX2FjY2Vzc19oYW5kbGVfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGNsYXNzIFJlbW90ZUFjY2Vzc0hhbmRsZSA6IEdMaWIuT2JqZWN0IHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3Rl ZCBSZW1vdGVBY2Nlc3NIYW5kbGUgKCk7CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHN0b3AgKCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RvcHBlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgU2V0dGluZ3MgeworLQkJ cHVibGljIGludCBnZXRfZm9udF9kcGkgKCk7CistCQlwdWJsaWMgaW50IGdldF91aV9zY2FsaW5n X2ZhY3RvciAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgcmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3JlZiIs IHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJt ZXRhX3NoYWRvd191bnJlZiIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFNoYWRvdyB7 CistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChpbnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwg aW50IHdpbmRvd193aWR0aCwgaW50IHdpbmRvd19oZWlnaHQsIENhaXJvLlJlY3RhbmdsZUludCBi b3VuZHMpOworLQkJcHVibGljIHZvaWQgcGFpbnQgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZm ZXIsIGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2lu ZG93X2hlaWdodCwgdWludDggb3BhY2l0eSwgQ2Fpcm8uUmVnaW9uPyBjbGlwLCBib29sIGNsaXBf c3RyaWN0bHkpOworLQkJcHVibGljIE1ldGEuU2hhZG93IEByZWYgKCk7CistCQlwdWJsaWMgdm9p ZCB1bnJlZiAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19mYWN0b3J5X2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFkb3dGYWN0b3J5IDogR0xpYi5PYmplY3Qg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGlj IFNoYWRvd0ZhY3RvcnkgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5TaGFkb3dG YWN0b3J5IGdldF9kZWZhdWx0ICgpOworLQkJcHVibGljIE1ldGEuU2hhZG93UGFyYW1zIGdldF9w YXJhbXMgKHN0cmluZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQpOworLQkJcHVibGljIE1ldGEu U2hhZG93IGdldF9zaGFkb3cgKE1ldGEuV2luZG93U2hhcGUgc2hhcGUsIGludCB3aWR0aCwgaW50 IGhlaWdodCwgc3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNlZCk7CistCQlwdWJsaWMgdm9p ZCBzZXRfcGFyYW1zIChzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBmb2N1c2VkLCBNZXRhLlNoYWRv d1BhcmFtcyBAcGFyYW1zKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjaGFuZ2VkICgpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfc2hhcGVkX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGNsYXNzIFNoYXBlZFRleHR1cmUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50 b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0 YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlw cm90ZWN0ZWQgU2hhcGVkVGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIGdldF9p bWFnZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50IGNsaXApOworLQkJcHVibGljIHVub3duZWQgQ29nbC5U ZXh0dXJlIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIHZvaWQgc2V0X2NyZWF0ZV9taXBtYXBz IChib29sIGNyZWF0ZV9taXBtYXBzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9tYXNrX3RleHR1cmUg KENvZ2wuVGV4dHVyZSBtYXNrX3RleHR1cmUpOworLQkJcHVibGljIHZvaWQgc2V0X29wYXF1ZV9y ZWdpb24gKG93bmVkIENhaXJvLlJlZ2lvbiBvcGFxdWVfcmVnaW9uKTsKKy0JCXB1YmxpYyBib29s IHVwZGF0ZV9hcmVhIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0g Im1ldGFfc291bmRfcGxheWVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTb3VuZFBs YXllciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTb3VuZFBsYXllciAoKTsKKy0JCXB1YmxpYyB2b2lkIHBs YXlfZnJvbV9maWxlIChHTGliLkZpbGUgZmlsZSwgc3RyaW5nIGRlc2NyaXB0aW9uLCBHTGliLkNh bmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpOworLQkJcHVibGljIHZvaWQgcGxheV9mcm9t X3RoZW1lIChzdHJpbmcgbmFtZSwgc3RyaW5nIGRlc2NyaXB0aW9uLCBHTGliLkNhbmNlbGxhYmxl PyBjYW5jZWxsYWJsZSA9IG51bGwpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfc3RhZ2Vf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5TdGFnZSwgQXRr LkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0 dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIFN0YWdlICgpOworLQkJcHVibGljIHN0YXRpYyBib29sIGlzX2Zv Y3VzZWQgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBhY3Rv cnNfcGFpbnRlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3N0YXJ0dXBfbm90aWZp Y2F0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTdGFydHVwTm90aWZpY2F0aW9u IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIFN0YXJ0dXBOb3RpZmljYXRpb24gKCk7CistCQlwdWJsaWMgTWV0 YS5MYXVuY2hDb250ZXh0IGNyZWF0ZV9sYXVuY2hlciAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIE1ldGEuRGlzcGxheSBkaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjaGFuZ2VkICh2b2lkKiBvYmplY3QpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCB0eXBlX2lkID0gIm1ldGFfc3RhcnR1cF9zZXF1ZW5jZV9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgU3RhcnR1cFNlcXVlbmNlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFN0YXJ0dXBTZXF1 ZW5jZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGNvbXBsZXRlICgpOworLQkJcHVibGljIHVub3duZWQg c3RyaW5nIGdldF9hcHBsaWNhdGlvbl9pZCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9jb21wbGV0 ZWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2ljb25fbmFtZSAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfaWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X25hbWUgKCk7CistCQlwdWJsaWMgdWludDY0IGdldF90aW1lc3RhbXAgKCk7CistCQlwdWJs aWMgdW5vd25lZCBzdHJpbmcgZ2V0X3dtY2xhc3MgKCk7CistCQlwdWJsaWMgaW50IGdldF93b3Jr c3BhY2UgKCk7CistCQlwdWJsaWMgc3RyaW5nIGFwcGxpY2F0aW9uX2lkIHsgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKy0JCXB1YmxpYyBzdHJpbmcgaWNvbl9uYW1lIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0J CXB1YmxpYyBzdHJpbmcgaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHN0cmluZyBu YW1lIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyB1aW50NjQgdGltZXN0YW1wIHsgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzdHJpbmcgd21jbGFzcyB7IGdldDsgY29uc3RydWN0 OyB9CistCQlwdWJsaWMgaW50IHdvcmtzcGFjZSB7IGdldDsgY29uc3RydWN0OyB9CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFRo ZW1lIHsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0 YV93aW5kb3dfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIFdpbmRvdyA6 IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKy0JCXByb3RlY3RlZCBXaW5kb3cgKCk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZSAodWlu dDMyIGN1cnJlbnRfdGltZSk7CistCQlwdWJsaWMgdm9pZCBhY3RpdmF0ZV93aXRoX3dvcmtzcGFj ZSAodWludDMyIGN1cnJlbnRfdGltZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1 YmxpYyBib29sIGFsbG93c19tb3ZlICgpOworLQkJcHVibGljIGJvb2wgYWxsb3dzX3Jlc2l6ZSAo KTsKKy0JCXB1YmxpYyB2b2lkIGJlZ2luX2dyYWJfb3AgKE1ldGEuR3JhYk9wIG9wLCBib29sIGZy YW1lX2FjdGlvbiwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCBjYW5fY2xvc2Ug KCk7CistCQlwdWJsaWMgYm9vbCBjYW5fbWF4aW1pemUgKCk7CistCQlwdWJsaWMgYm9vbCBjYW5f bWluaW1pemUgKCk7CistCQlwdWJsaWMgYm9vbCBjYW5fc2hhZGUgKCk7CistCQlwdWJsaWMgdm9p ZCBjaGFuZ2Vfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGlj IHZvaWQgY2hhbmdlX3dvcmtzcGFjZV9ieV9pbmRleCAoaW50IHNwYWNlX2luZGV4LCBib29sIGFw cGVuZCk7CistCQlwdWJsaWMgdm9pZCBjaGVja19hbGl2ZSAodWludDMyIHRpbWVzdGFtcCk7Cist CQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgY2xpZW50X3JlY3RfdG9fZnJhbWVfcmVjdCAoTWV0YS5S ZWN0YW5nbGUgY2xpZW50X3JlY3QpOworLQkJcHVibGljIHZvaWQgY29tcHV0ZV9ncm91cCAoKTsK Ky0JCXB1YmxpYyB2b2lkIEBkZWxldGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVu b3duZWQgTWV0YS5XaW5kb3cgZmluZF9yb290X2FuY2VzdG9yICgpOworLQkJcHVibGljIHZvaWQg Zm9jdXMgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgZm9yZWFjaF9hbmNlc3Rv ciAoTWV0YS5XaW5kb3dGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hf dHJhbnNpZW50IChNZXRhLldpbmRvd0ZvcmVhY2hGdW5jIGZ1bmMpOworLQkJcHVibGljIE1ldGEu UmVjdGFuZ2xlIGZyYW1lX3JlY3RfdG9fY2xpZW50X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGZyYW1l X3JlY3QpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9idWZmZXJfcmVjdCAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfY2xpZW50X21hY2hpbmUgKCk7CistCQlwdWJsaWMg TWV0YS5XaW5kb3dDbGllbnRUeXBlIGdldF9jbGllbnRfdHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIEdMaWIuT2JqZWN0IGdldF9jb21wb3NpdG9yX3ByaXZhdGUgKCk7CistCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X2Rlc2NyaXB0aW9uICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5E aXNwbGF5IGdldF9kaXNwbGF5ICgpOworLQkJcHVibGljIHVub3duZWQgQ2Fpcm8uUmVnaW9uPyBn ZXRfZnJhbWVfYm91bmRzICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9mcmFtZV9y ZWN0ICgpOworLQkJcHVibGljIE1ldGEuRnJhbWVUeXBlIGdldF9mcmFtZV90eXBlICgpOworLQkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfYXBwX21lbnVfb2JqZWN0X3BhdGggKCk7Cist CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBsaWNhdGlvbl9pZCAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX2FwcGxpY2F0aW9uX29iamVjdF9wYXRoICgpOwor LQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfbWVudWJhcl9vYmplY3RfcGF0aCAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3RoZW1lX3ZhcmlhbnQgKCk7CistCQlw dWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a191bmlxdWVfYnVzX25hbWUgKCk7CistCQlwdWJs aWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a193aW5kb3dfb2JqZWN0X3BhdGggKCk7CistCQlwdWJs aWMgYm9vbCBnZXRfaWNvbl9nZW9tZXRyeSAob3V0IE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworLQkJ cHVibGljIHVpbnQ2NCBnZXRfaWQgKCk7CistCQlwdWJsaWMgTWV0YS5TdGFja0xheWVyIGdldF9s YXllciAoKTsKKy0JCXB1YmxpYyBNZXRhLk1heGltaXplRmxhZ3MgZ2V0X21heGltaXplZCAoKTsK Ky0JCXB1YmxpYyBpbnQgZ2V0X21vbml0b3IgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X211dHRlcl9oaW50cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3BpZCAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIHN0cmluZyBnZXRfcm9sZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBn ZXRfc2FuZGJveGVkX2FwcF9pZCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9zdGFibGVfc2VxdWVu Y2UgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3N0YXJ0dXBfaWQgKCk7CistCQlw dWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdz8gZ2V0X3RpbGVfbWF0Y2ggKCk7CistCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X3RpdGxlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5k b3cgZ2V0X3RyYW5zaWVudF9mb3IgKCk7CistCQlwdWJsaWMgdWludDMyIGdldF91c2VyX3RpbWUg KCk7CistCQlwdWJsaWMgTWV0YS5XaW5kb3dUeXBlIGdldF93aW5kb3dfdHlwZSAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21fY2xhc3MgKCk7CistCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X3dtX2NsYXNzX2luc3RhbmNlICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xl IGdldF93b3JrX2FyZWFfYWxsX21vbml0b3JzICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xl IGdldF93b3JrX2FyZWFfY3VycmVudF9tb25pdG9yICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFu Z2xlIGdldF93b3JrX2FyZWFfZm9yX21vbml0b3IgKGludCB3aGljaF9tb25pdG9yKTsKKy0JCXB1 YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF93b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMg WC5XaW5kb3cgZ2V0X3h3aW5kb3cgKCk7CistCQlwdWJsaWMgdm9pZCBncm91cF9sZWFkZXJfY2hh bmdlZCAoKTsKKy0JCXB1YmxpYyBib29sIGhhc19mb2N1cyAoKTsKKy0JCXB1YmxpYyBib29sIGlz X2Fib3ZlICgpOworLQkJcHVibGljIGJvb2wgaXNfYWx3YXlzX29uX2FsbF93b3Jrc3BhY2VzICgp OworLQkJcHVibGljIGJvb2wgaXNfYW5jZXN0b3Jfb2ZfdHJhbnNpZW50IChNZXRhLldpbmRvdyB0 cmFuc2llbnQpOworLQkJcHVibGljIGJvb2wgaXNfYXR0YWNoZWRfZGlhbG9nICgpOworLQkJcHVi bGljIGJvb2wgaXNfY2xpZW50X2RlY29yYXRlZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Z1bGxz Y3JlZW4gKCk7CistCQlwdWJsaWMgYm9vbCBpc19oaWRkZW4gKCk7CistCQlwdWJsaWMgYm9vbCBp c19tb25pdG9yX3NpemVkICgpOworLQkJcHVibGljIGJvb2wgaXNfb25fYWxsX3dvcmtzcGFjZXMg KCk7CistCQlwdWJsaWMgYm9vbCBpc19vbl9wcmltYXJ5X21vbml0b3IgKCk7CistCQlwdWJsaWMg Ym9vbCBpc19vdmVycmlkZV9yZWRpcmVjdCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3JlbW90ZSAo KTsKKy0JCXB1YmxpYyBib29sIGlzX3NjcmVlbl9zaXplZCAoKTsKKy0JCXB1YmxpYyBib29sIGlz X3NoYWRlZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3NraXBfdGFza2JhciAoKTsKKy0JCXB1Ymxp YyB2b2lkIGtpbGwgKCk7CistCQlwdWJsaWMgYm9vbCBsb2NhdGVkX29uX3dvcmtzcGFjZSAoTWV0 YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB2b2lkIGxvd2VyICgpOworLQkJcHVi bGljIHZvaWQgbWFrZV9hYm92ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG1ha2VfZnVsbHNjcmVlbiAo KTsKKy0JCXB1YmxpYyB2b2lkIG1heGltaXplIChNZXRhLk1heGltaXplRmxhZ3MgZGlyZWN0aW9u cyk7CistCQlwdWJsaWMgdm9pZCBtaW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVfZnJh bWUgKGJvb2wgdXNlcl9vcCwgaW50IHJvb3RfeF9udywgaW50IHJvb3RfeV9udyk7CistCQlwdWJs aWMgdm9pZCBtb3ZlX3Jlc2l6ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94X253LCBp bnQgcm9vdF95X253LCBpbnQgdywgaW50IGgpOworLQkJcHVibGljIHZvaWQgbW92ZV90b19tb25p dG9yIChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgdm9pZCByYWlzZSAoKTsKKy0JCXB1YmxpYyBi b29sIHJlcXVlc3RlZF9ieXBhc3NfY29tcG9zaXRvciAoKTsKKy0JCXB1YmxpYyBib29sIHJlcXVl c3RlZF9kb250X2J5cGFzc19jb21wb3NpdG9yICgpOworLQkJcHVibGljIHZvaWQgc2V0X2NvbXBv c2l0b3JfcHJpdmF0ZSAoR0xpYi5PYmplY3QgcHJpdik7CistCQlwdWJsaWMgdm9pZCBzZXRfZGVt YW5kc19hdHRlbnRpb24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfaWNvbl9nZW9tZXRyeSAoTWV0 YS5SZWN0YW5nbGU/IHJlY3QpOworLQkJcHVibGljIHZvaWQgc2hhZGUgKHVpbnQzMiB0aW1lc3Rh bXApOworLQkJcHVibGljIHZvaWQgc2hvdmVfdGl0bGViYXJfb25zY3JlZW4gKCk7CistCQlwdWJs aWMgYm9vbCBzaG93aW5nX29uX2l0c193b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgdm9pZCBzaHV0 ZG93bl9ncm91cCAoKTsKKy0JCXB1YmxpYyB2b2lkIHN0aWNrICgpOworLQkJcHVibGljIGJvb2wg dGl0bGViYXJfaXNfb25zY3JlZW4gKCk7CistCQlwdWJsaWMgdm9pZCB1bm1ha2VfYWJvdmUgKCk7 CistCQlwdWJsaWMgdm9pZCB1bm1ha2VfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVu bWF4aW1pemUgKE1ldGEuTWF4aW1pemVGbGFncyBkaXJlY3Rpb25zKTsKKy0JCXB1YmxpYyB2b2lk IHVubWluaW1pemUgKCk7CistCQlwdWJsaWMgdm9pZCB1bnNldF9kZW1hbmRzX2F0dGVudGlvbiAo KTsKKy0JCXB1YmxpYyB2b2lkIHVuc2hhZGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGlj IHZvaWQgdW5zdGljayAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wg YWJvdmUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgYXBw ZWFyc19mb2N1c2VkIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBi b29sIGRlY29yYXRlZCB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg Ym9vbCBkZW1hbmRzX2F0dGVudGlvbiB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgYm9vbCBmdWxsc2NyZWVuIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19h cHBfbWVudV9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfYXBwbGlj YXRpb25faWQgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcGxpY2F0aW9uX29iamVj dF9wYXRoIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19tZW51YmFyX29iamVjdF9wYXRo IHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a191bmlxdWVfYnVzX25hbWUgeyBnZXQ7IH0K Ky0JCXB1YmxpYyBzdHJpbmcgZ3RrX3dpbmRvd19vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdm9pZCogaWNvbiB7IGdldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBtYXhpbWl6ZWRfaG9yaXpvbnRhbGx5IHsgZ2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1heGltaXplZF92ZXJ0 aWNhbGx5IHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB2b2lkKiBt aW5pX2ljb24geyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wg bWluaW1pemVkIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIG11dHRlcl9oaW50cyB7IGdldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBvbl9hbGxfd29ya3NwYWNl cyB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXNpemVh YmxlIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHNraXBf dGFza2JhciB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyB0aXRsZSB7IGdldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCB1cmdlbnQgeyBnZXQ7IH0KKy0JCXB1Ymxp YyB1aW50IHVzZXJfdGltZSB7IGdldDsgfQorLQkJcHVibGljIE1ldGEuV2luZG93VHlwZSB3aW5k b3dfdHlwZSB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyB3bV9jbGFzcyB7IGdldDsgfQorLQkJ cHVibGljIHNpZ25hbCB2b2lkIHBvc2l0aW9uX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgcmFpc2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNob3duICgpOworLQkJcHVi bGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB1 bm1hbmFnZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2NoYW5nZWQgKCk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfYWN0b3JfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGFic3RyYWN0IGNsYXNzIFdpbmRvd0FjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRr LkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0 dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIFdpbmRvd0FjdG9yICgpOworLQkJcHVibGljIHVub3duZWQgTWV0 YS5XaW5kb3cgZ2V0X21ldGFfd2luZG93ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5B Y3RvciBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeF93aW5kb3cgKCk7 CistCQlwdWJsaWMgYm9vbCBpc19kZXN0cm95ZWQgKCk7CistCQlwdWJsaWMgdm9pZCBzeW5jX3Zp c2liaWxpdHkgKCk7CistCQlwdWJsaWMgTWV0YS5XaW5kb3cgbWV0YV93aW5kb3cgeyBnZXQ7IGNv bnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgc3RyaW5nIHNoYWRv d19jbGFzcyB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBNZXRhLlNoYWRvd01vZGUgc2hhZG93X21vZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGlj IHNpZ25hbCB2b2lkIGVmZmVjdHNfY29tcGxldGVkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IGZpcnN0X2ZyYW1lICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dyb3Vw X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBXaW5kb3dHcm91cCA6IENsdXR0ZXIuQWN0 b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5l ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBXaW5kb3dHcm91cCAoKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgcmVm X2Z1bmN0aW9uID0gIm1ldGFfd2luZG93X3NoYXBlX3JlZiIsIHR5cGVfaWQgPSAibWV0YV93aW5k b3dfc2hhcGVfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3dpbmRvd19zaGFw ZV91bnJlZiIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFdpbmRvd1NoYXBlIHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBXaW5k b3dTaGFwZSAoQ2Fpcm8uUmVnaW9uIHJlZ2lvbik7CistCQlwdWJsaWMgYm9vbCBlcXVhbCAoTWV0 YS5XaW5kb3dTaGFwZSBzaGFwZV9iKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9ib3JkZXJzIChpbnQg Ym9yZGVyX3RvcCwgaW50IGJvcmRlcl9yaWdodCwgaW50IGJvcmRlcl9ib3R0b20sIGludCBib3Jk ZXJfbGVmdCk7CistCQlwdWJsaWMgdWludCBoYXNoICgpOworLQkJcHVibGljIE1ldGEuV2luZG93 U2hhcGUgQHJlZiAoKTsKKy0JCXB1YmxpYyBDYWlyby5SZWdpb24gdG9fcmVnaW9uIChpbnQgY2Vu dGVyX3dpZHRoLCBpbnQgY2VudGVyX2hlaWdodCk7CistCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dvcmtzcGFjZV9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgV29ya3NwYWNlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdvcmtzcGFjZSAoKTsKKy0J CXB1YmxpYyB2b2lkIGFjdGl2YXRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lk IGFjdGl2YXRlX3dpdGhfZm9jdXMgKE1ldGEuV2luZG93IGZvY3VzX3RoaXMsIHVpbnQzMiB0aW1l c3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5EaXNwbGF5IGdldF9kaXNwbGF5ICgpOwor LQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X25laWdoYm9yIChNZXRhLk1vdGlv bkRpcmVjdGlvbiBkaXJlY3Rpb24pOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3Jr X2FyZWFfYWxsX21vbml0b3JzICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3Jr X2FyZWFfZm9yX21vbml0b3IgKGludCB3aGljaF9tb25pdG9yKTsKKy0JCXB1YmxpYyBpbnQgaW5k ZXggKCk7CistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93 cyAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9idWlsdGluX3N0cnV0cyAoR0xpYi5TTGlzdDxNZXRh LlN0cnV0Pz4gc3RydXRzKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQg bl93aW5kb3dzIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50 IHdvcmtzcGFjZV9pbmRleCB7IGdldDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19h ZGRlZCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3df cmVtb3ZlZCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRh X3dvcmtzcGFjZV9tYW5hZ2VyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBXb3Jrc3Bh Y2VNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdvcmtzcGFjZU1hbmFnZXIgKCk7CistCQlwdWJs aWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBhcHBlbmRfbmV3X3dvcmtzcGFjZSAoYm9vbCBhY3Rp dmF0ZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFj ZSBnZXRfYWN0aXZlX3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93b3Jr c3BhY2VfaW5kZXggKCk7CistCQlwdWJsaWMgaW50IGdldF9uX3dvcmtzcGFjZXMgKCk7CistCQlw dWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQg aW5kZXgpOworLQkJcHVibGljIHZvaWQgb3ZlcnJpZGVfd29ya3NwYWNlX2xheW91dCAoTWV0YS5E aXNwbGF5Q29ybmVyIHN0YXJ0aW5nX2Nvcm5lciwgYm9vbCB2ZXJ0aWNhbF9sYXlvdXQsIGludCBu X3Jvd3MsIGludCBuX2NvbHVtbnMpOworLQkJcHVibGljIHZvaWQgcmVtb3ZlX3dvcmtzcGFjZSAo TWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBp bnQgbl93b3Jrc3BhY2VzIHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWN0aXZlX3dv cmtzcGFjZV9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNob3dpbmdfZGVza3Rv cF9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9hZGRlZCAoaW50 IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3JlbW92ZWQgKGludCBv YmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9zd2l0Y2hlZCAoaW50IG9i amVjdCwgaW50IHAwLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBwMSk7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVf aWQgPSAibWV0YV94MTFfZGlzcGxheV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgWDEx RGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBYMTFEaXNwbGF5ICgpOworLQkJcHVibGljIHZvaWQg Zm9jdXNfdGhlX25vX2ZvY3VzX3dpbmRvdyAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMg aW50IGdldF9kYW1hZ2VfZXZlbnRfYmFzZSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3NjcmVlbl9u dW1iZXIgKCk7CistCQlwdWJsaWMgaW50IGdldF9zaGFwZV9ldmVudF9iYXNlICgpOworLQkJcHVi bGljIGJvb2wgaGFzX3NoYXBlICgpOworLQkJcHVibGljIHZvaWQgc2V0X2NtX3NlbGVjdGlvbiAo KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9mb2N1c193aW5kb3cgKE1ldGEuV2luZG93IHdp bmRvdywgYm9vbCBmb2N1c19mcmFtZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9v bCB4d2luZG93X2lzX2Ffbm9fZm9jdXNfd2luZG93IChYLldpbmRvdyB4d2luZG93KTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgdHlwZV9jbmFtZSA9ICJNZXRhQ2xvc2VEaWFsb2dJbnRlcmZhY2UiLCB0eXBlX2lkID0g Im1ldGFfY2xvc2VfZGlhbG9nX2dldF90eXBlICgpIildCistCXB1YmxpYyBpbnRlcmZhY2UgQ2xv c2VEaWFsb2cgOiBHTGliLk9iamVjdCB7CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBmb2N1cyAo KTsKKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGhpZGUgKCk7CistCQlwdWJsaWMgYm9vbCBpc192 aXNpYmxlICgpOworLQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAoKTsKKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGFic3RyYWN0IE1ldGEuV2luZG93IHdpbmRvdyB7IG93bmVk IGdldDsgY29uc3RydWN0OyB9CistCQlbSGFzRW1pdHRlcl0KKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCByZXNwb25zZSAoTWV0YS5DbG9zZURpYWxvZ1Jlc3BvbnNlIHJlc3BvbnNlKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgdHlwZV9jbmFtZSA9ICJNZXRhSW5oaWJpdFNob3J0Y3V0c0RpYWxvZ0ludGVyZmFjZSIsIHR5 cGVfaWQgPSAibWV0YV9pbmhpYml0X3Nob3J0Y3V0c19kaWFsb2dfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGludGVyZmFjZSBJbmhpYml0U2hvcnRjdXRzRGlhbG9nIDogR0xpYi5PYmplY3Qgewor LQkJcHVibGljIGFic3RyYWN0IHZvaWQgaGlkZSAoKTsKKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lk IHNob3cgKCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBhYnN0cmFjdCBNZXRh LldpbmRvdyB3aW5kb3cgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW0hhc0VtaXR0ZXJd CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzcG9uc2UgKE1ldGEuSW5oaWJpdFNob3J0Y3V0c0Rp YWxvZ1Jlc3BvbnNlIHJlc3BvbnNlKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCXB1YmxpYyBzdHJ1Y3QgQnV0dG9uTGF5b3V0IHsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbiBsZWZ0X2J1dHRv bnNbNF07CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFr IGJvb2wgbGVmdF9idXR0b25zX2hhc19zcGFjZXJbNF07CistCQlbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gcmlnaHRfYnV0 dG9uc1s0XTsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdl YWsgYm9vbCByaWdodF9idXR0b25zX2hhc19zcGFjZXJbNF07CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IEVkZ2UgeworLQkJcHVibGljIE1ldGEuUmVj dGFuZ2xlIHJlY3Q7CistCQlwdWJsaWMgTWV0YS5TaWRlIHNpZGVfdHlwZTsKKy0JCXB1YmxpYyBN ZXRhLkVkZ2VUeXBlIGVkZ2VfdHlwZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCXB1YmxpYyBzdHJ1Y3QgRnJhbWVCb3JkZXJzIHsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIHZp c2libGU7CistCQlwdWJsaWMgR3RrLkJvcmRlciBpbnZpc2libGU7CistCQlwdWJsaWMgR3RrLkJv cmRlciB0b3RhbDsKKy0JCXB1YmxpYyB2b2lkIGNsZWFyICgpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JcHVibGljIHN0cnVjdCBQbHVnaW5JbmZvIHsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBu YW1lOworLQkJcHVibGljIHdlYWsgc3RyaW5nIHZlcnNpb247CistCQlwdWJsaWMgd2VhayBzdHJp bmcgYXV0aG9yOworLQkJcHVibGljIHdlYWsgc3RyaW5nIGxpY2Vuc2U7CistCQlwdWJsaWMgd2Vh ayBzdHJpbmcgZGVzY3JpcHRpb247CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlwdWJsaWMgc3RydWN0IFBsdWdpblZlcnNpb24geworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9t YWpvcjsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWlub3I7CistCQlwdWJsaWMgdWludCB2ZXJz aW9uX21pY3JvOworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9hcGk7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVf aWQgPSAibWV0YV9yZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIHN0cnVjdCBSZWN0 YW5nbGUgeworLQkJcHVibGljIGludCB4OworLQkJcHVibGljIGludCB5OworLQkJcHVibGljIGlu dCB3aWR0aDsKKy0JCXB1YmxpYyBpbnQgaGVpZ2h0OworLQkJcHVibGljIGludCBhcmVhICgpOwor LQkJcHVibGljIGJvb2wgY29udGFpbnNfcmVjdCAoTWV0YS5SZWN0YW5nbGUgaW5uZXJfcmVjdCk7 CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGU/IGNvcHkgKCk7CistCQlwdWJsaWMgYm9vbCBjb3Vs ZF9maXRfcmVjdCAoTWV0YS5SZWN0YW5nbGUgaW5uZXJfcmVjdCk7CistCQlwdWJsaWMgYm9vbCBl cXVhbCAoTWV0YS5SZWN0YW5nbGUgc3JjMik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJ cHVibGljIGJvb2wgaG9yaXpfb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVi bGljIGJvb2wgaW50ZXJzZWN0IChNZXRhLlJlY3RhbmdsZSBzcmMyLCBvdXQgTWV0YS5SZWN0YW5n bGUgZGVzdCk7CistCQlwdWJsaWMgYm9vbCBvdmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7 CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgdW5pb24gKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsK Ky0JCXB1YmxpYyBib29sIHZlcnRfb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBTaGFkb3dQYXJh bXMgeworLQkJcHVibGljIGludCByYWRpdXM7CistCQlwdWJsaWMgaW50IHRvcF9mYWRlOworLQkJ cHVibGljIGludCB4X29mZnNldDsKKy0JCXB1YmxpYyBpbnQgeV9vZmZzZXQ7CistCQlwdWJsaWMg dWludDggb3BhY2l0eTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1Ymxp YyBzdHJ1Y3QgU3RydXQgeworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHJlY3Q7CistCQlwdWJs aWMgTWV0YS5TaWRlIHNpZGU7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9CQVJSSUVSX0RJ UkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYmFycmllcl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCki KV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBCYXJyaWVyRGlyZWN0aW9uIHsKKy0JCVBPU0lU SVZFX1gsCistCQlQT1NJVElWRV9ZLAorLQkJTkVHQVRJVkVfWCwKKy0JCU5FR0FUSVZFX1kKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0JVVFRPTl9GVU5DVElPTl8iLCB0eXBlX2lkID0gIm1l dGFfYnV0dG9uX2Z1bmN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEJ1dHRvbkZ1 bmN0aW9uIHsKKy0JCU1FTlUsCistCQlNSU5JTUlaRSwKKy0JCU1BWElNSVpFLAorLQkJQ0xPU0Us CistCQlMQVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9DTE9TRV9ESUFMT0dfUkVTUE9O U0VfIiwgdHlwZV9pZCA9ICJtZXRhX2Nsb3NlX2RpYWxvZ19yZXNwb25zZV9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgZW51bSBDbG9zZURpYWxvZ1Jlc3BvbnNlIHsKKy0JCVdBSVQsCistCQlGT1JD RV9DTE9TRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfQ09NUF9FRkZFQ1RfIiwgdHlwZV9p ZCA9ICJtZXRhX2NvbXBfZWZmZWN0X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIENvbXBF ZmZlY3QgeworLQkJQ1JFQVRFLAorLQkJVU5NSU5JTUlaRSwKKy0JCURFU1RST1ksCistCQlNSU5J TUlaRSwKKy0JCU5PTkUKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0NVUlNPUl8iLCB0eXBl X2lkID0gIm1ldGFfY3Vyc29yX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEN1cnNvciB7 CistCQlOT05FLAorLQkJREVGQVVMVCwKKy0JCU5PUlRIX1JFU0laRSwKKy0JCVNPVVRIX1JFU0la RSwKKy0JCVdFU1RfUkVTSVpFLAorLQkJRUFTVF9SRVNJWkUsCistCQlTRV9SRVNJWkUsCistCQlT V19SRVNJWkUsCistCQlORV9SRVNJWkUsCistCQlOV19SRVNJWkUsCistCQlNT1ZFX09SX1JFU0la RV9XSU5ET1csCistCQlCVVNZLAorLQkJRE5EX0lOX0RSQUcsCistCQlETkRfTU9WRSwKKy0JCURO RF9DT1BZLAorLQkJRE5EX1VOU1VQUE9SVEVEX1RBUkdFVCwKKy0JCVBPSU5USU5HX0hBTkQsCist CQlDUk9TU0hBSVIsCistCQlJQkVBTSwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJN RVRBX0RFQlVHXyIsIHR5cGVfaWQgPSAibWV0YV9kZWJ1Z190b3BpY19nZXRfdHlwZSAoKSIpXQor LQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIERlYnVnVG9waWMgeworLQkJVkVSQk9TRSwKKy0JCUZP Q1VTLAorLQkJV09SS0FSRUEsCistCQlTVEFDSywKKy0JCVRIRU1FUywKKy0JCVNNLAorLQkJRVZF TlRTLAorLQkJV0lORE9XX1NUQVRFLAorLQkJV0lORE9XX09QUywKKy0JCUdFT01FVFJZLAorLQkJ UExBQ0VNRU5ULAorLQkJUElORywKKy0JCVhJTkVSQU1BLAorLQkJS0VZQklORElOR1MsCistCQlT WU5DLAorLQkJRVJST1JTLAorLQkJU1RBUlRVUCwKKy0JCVBSRUZTLAorLQkJR1JPVVBTLAorLQkJ UkVTSVpJTkcsCistCQlTSEFQRVMsCistCQlDT01QT1NJVE9SLAorLQkJRURHRV9SRVNJU1RBTkNF LAorLQkJREJVUworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRElSRUNUSU9OXyIsIHR5cGVf aWQgPSAibWV0YV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMg ZW51bSBEaXJlY3Rpb24geworLQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVE9QLAorLQkJQk9UVE9N LAorLQkJVVAsCistCQlET1dOLAorLQkJSE9SSVpPTlRBTCwKKy0JCVZFUlRJQ0FMCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIGNwcmVmaXggPSAiTUVUQV9ESVNQTEFZXyIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2Nv cm5lcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBEaXNwbGF5Q29ybmVyIHsKKy0JCVRP UExFRlQsCistCQlUT1BSSUdIVCwKKy0JCUJPVFRPTUxFRlQsCistCQlCT1RUT01SSUdIVAorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRElTUExBWV8iLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxh eV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRGlzcGxheURpcmVjdGlv biB7CistCQlVUCwKKy0JCURPV04sCistCQlMRUZULAorLQkJUklHSFQKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3By ZWZpeCA9ICJNRVRBX0VER0VfIiwgdHlwZV9pZCA9ICJtZXRhX2VkZ2VfdHlwZV9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBFZGdlVHlwZSB7CistCQlXSU5ET1csCistCQlNT05JVE9SLAor LQkJU0NSRUVOCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9FWElUXyIsIHR5cGVfaWQgPSAi bWV0YV9leGl0X2NvZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRXhpdENvZGUgewor LQkJU1VDQ0VTUywKKy0JCUVSUk9SCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV8i LCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQor LQlwdWJsaWMgZW51bSBGcmFtZUZsYWdzIHsKKy0JCUFMTE9XU19ERUxFVEUsCistCQlBTExPV1Nf TUVOVSwKKy0JCUFMTE9XU19NSU5JTUlaRSwKKy0JCUFMTE9XU19NQVhJTUlaRSwKKy0JCUFMTE9X U19WRVJUSUNBTF9SRVNJWkUsCistCQlBTExPV1NfSE9SSVpPTlRBTF9SRVNJWkUsCistCQlIQVNf Rk9DVVMsCistCQlTSEFERUQsCistCQlTVFVDSywKKy0JCU1BWElNSVpFRCwKKy0JCUFMTE9XU19T SEFERSwKKy0JCUFMTE9XU19NT1ZFLAorLQkJRlVMTFNDUkVFTiwKKy0JCUlTX0ZMQVNISU5HLAor LQkJQUJPVkUsCistCQlUSUxFRF9MRUZULAorLQkJVElMRURfUklHSFQKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3By ZWZpeCA9ICJNRVRBX0ZSQU1FX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRnJhbWVUeXBlIHsKKy0JCU5PUk1BTCwKKy0JCURJ QUxPRywKKy0JCU1PREFMX0RJQUxPRywKKy0JCVVUSUxJVFksCistCQlNRU5VLAorLQkJQk9SREVS LAorLQkJQVRUQUNIRUQsCistCQlMQVNUOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0 cmluZyAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0dSQUJfT1BfIiwgdHlwZV9pZCA9 ICJtZXRhX2dyYWJfb3BfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gR3JhYk9wIHsKKy0J CU5PTkUsCistCQlXSU5ET1dfQkFTRSwKKy0JCUNPTVBPU0lUT1IsCistCQlXQVlMQU5EX1BPUFVQ LAorLQkJRlJBTUVfQlVUVE9OLAorLQkJTU9WSU5HLAorLQkJUkVTSVpJTkdfTlcsCistCQlSRVNJ WklOR19OLAorLQkJUkVTSVpJTkdfTkUsCistCQlSRVNJWklOR19FLAorLQkJUkVTSVpJTkdfU1cs CistCQlSRVNJWklOR19TLAorLQkJUkVTSVpJTkdfU0UsCistCQlSRVNJWklOR19XLAorLQkJS0VZ Qk9BUkRfTU9WSU5HLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfVU5LTk9XTiwKKy0JCUtFWUJPQVJE X1JFU0laSU5HX05XLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTiwKKy0JCUtFWUJPQVJEX1JFU0la SU5HX05FLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfRSwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1NX LAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfUywKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1NFLAorLQkJ S0VZQk9BUkRfUkVTSVpJTkdfVworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfSU5ISUJJVF9T SE9SVENVVFNfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9pbmhpYml0X3Nob3J0 Y3V0c19kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gSW5oaWJp dFNob3J0Y3V0c0RpYWxvZ1Jlc3BvbnNlIHsKKy0JCUFMTE9XLAorLQkJREVOWQorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBjcHJlZml4ID0gIk1FVEFfS0VZQklORElOR19BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2tl eV9iaW5kaW5nX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBLZXlCaW5kaW5n QWN0aW9uIHsKKy0JCU5PTkUsCistCQlXT1JLU1BBQ0VfMSwKKy0JCVdPUktTUEFDRV8yLAorLQkJ V09SS1NQQUNFXzMsCistCQlXT1JLU1BBQ0VfNCwKKy0JCVdPUktTUEFDRV81LAorLQkJV09SS1NQ QUNFXzYsCistCQlXT1JLU1BBQ0VfNywKKy0JCVdPUktTUEFDRV84LAorLQkJV09SS1NQQUNFXzks CistCQlXT1JLU1BBQ0VfMTAsCistCQlXT1JLU1BBQ0VfMTEsCistCQlXT1JLU1BBQ0VfMTIsCist CQlXT1JLU1BBQ0VfTEVGVCwKKy0JCVdPUktTUEFDRV9SSUdIVCwKKy0JCVdPUktTUEFDRV9VUCwK Ky0JCVdPUktTUEFDRV9ET1dOLAorLQkJV09SS1NQQUNFX0xBU1QsCistCQlTV0lUQ0hfQVBQTElD QVRJT05TLAorLQkJU1dJVENIX0FQUExJQ0FUSU9OU19CQUNLV0FSRCwKKy0JCVNXSVRDSF9HUk9V UCwKKy0JCVNXSVRDSF9HUk9VUF9CQUNLV0FSRCwKKy0JCVNXSVRDSF9XSU5ET1dTLAorLQkJU1dJ VENIX1dJTkRPV1NfQkFDS1dBUkQsCistCQlTV0lUQ0hfUEFORUxTLAorLQkJU1dJVENIX1BBTkVM U19CQUNLV0FSRCwKKy0JCUNZQ0xFX0dST1VQLAorLQkJQ1lDTEVfR1JPVVBfQkFDS1dBUkQsCist CQlDWUNMRV9XSU5ET1dTLAorLQkJQ1lDTEVfV0lORE9XU19CQUNLV0FSRCwKKy0JCUNZQ0xFX1BB TkVMUywKKy0JCUNZQ0xFX1BBTkVMU19CQUNLV0FSRCwKKy0JCVNIT1dfREVTS1RPUCwKKy0JCVBB TkVMX01BSU5fTUVOVSwKKy0JCVBBTkVMX1JVTl9ESUFMT0csCistCQlUT0dHTEVfUkVDT1JESU5H LAorLQkJU0VUX1NQRVdfTUFSSywKKy0JCUFDVElWQVRFX1dJTkRPV19NRU5VLAorLQkJVE9HR0xF X0ZVTExTQ1JFRU4sCistCQlUT0dHTEVfTUFYSU1JWkVELAorLQkJVE9HR0xFX1RJTEVEX0xFRlQs CistCQlUT0dHTEVfVElMRURfUklHSFQsCistCQlUT0dHTEVfQUJPVkUsCistCQlNQVhJTUlaRSwK Ky0JCVVOTUFYSU1JWkUsCistCQlUT0dHTEVfU0hBREVELAorLQkJTUlOSU1JWkUsCistCQlDTE9T RSwKKy0JCUJFR0lOX01PVkUsCistCQlCRUdJTl9SRVNJWkUsCistCQlUT0dHTEVfT05fQUxMX1dP UktTUEFDRVMsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8xLAorLQkJTU9WRV9UT19XT1JLU1BBQ0Vf MiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzMsCistCQlNT1ZFX1RPX1dPUktTUEFDRV80LAorLQkJ TU9WRV9UT19XT1JLU1BBQ0VfNSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzYsCistCQlNT1ZFX1RP X1dPUktTUEFDRV83LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfOCwKKy0JCU1PVkVfVE9fV09SS1NQ QUNFXzksCistCQlNT1ZFX1RPX1dPUktTUEFDRV8xMCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzEx LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMTIsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9MRUZULAor LQkJTU9WRV9UT19XT1JLU1BBQ0VfUklHSFQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9VUCwKKy0J CU1PVkVfVE9fV09SS1NQQUNFX0RPV04sCistCQlNT1ZFX1RPX1dPUktTUEFDRV9MQVNULAorLQkJ TU9WRV9UT19NT05JVE9SX0xFRlQsCistCQlNT1ZFX1RPX01PTklUT1JfUklHSFQsCistCQlNT1ZF X1RPX01PTklUT1JfVVAsCistCQlNT1ZFX1RPX01PTklUT1JfRE9XTiwKKy0JCVJBSVNFX09SX0xP V0VSLAorLQkJUkFJU0UsCistCQlMT1dFUiwKKy0JCU1BWElNSVpFX1ZFUlRJQ0FMTFksCistCQlN QVhJTUlaRV9IT1JJWk9OVEFMTFksCistCQlNT1ZFX1RPX0NPUk5FUl9OVywKKy0JCU1PVkVfVE9f Q09STkVSX05FLAorLQkJTU9WRV9UT19DT1JORVJfU1csCistCQlNT1ZFX1RPX0NPUk5FUl9TRSwK Ky0JCU1PVkVfVE9fU0lERV9OLAorLQkJTU9WRV9UT19TSURFX1MsCistCQlNT1ZFX1RPX1NJREVf RSwKKy0JCU1PVkVfVE9fU0lERV9XLAorLQkJTU9WRV9UT19DRU5URVIsCistCQlPVkVSTEFZX0tF WSwKKy0JCUlTT19ORVhUX0dST1VQLAorLQkJQUxXQVlTX09OX1RPUCwKKy0JCVNXSVRDSF9NT05J VE9SLAorLQkJUk9UQVRFX01PTklUT1IsCistCQlMQVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAi TUVUQV9LRVlfQklORElOR18iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZmxhZ3NfZ2V0 X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBLZXlCaW5kaW5nRmxhZ3Mgewor LQkJTk9ORSwKKy0JCVBFUl9XSU5ET1csCistCQlCVUlMVElOLAorLQkJSVNfUkVWRVJTRUQsCist CQlOT05fTUFTS0FCTEUsCistCQlJR05PUkVfQVVUT1JFUEVBVAorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4 ID0gIk1FVEFfTEFURVJfIiwgdHlwZV9pZCA9ICJtZXRhX2xhdGVyX3R5cGVfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGVudW0gTGF0ZXJUeXBlIHsKKy0JCVJFU0laRSwKKy0JCUNBTENfU0hPV0lO RywKKy0JCUNIRUNLX0ZVTExTQ1JFRU4sCistCQlTWU5DX1NUQUNLLAorLQkJQkVGT1JFX1JFRFJB VywKKy0JCUlETEUKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0xPQ0FMRV9ESVJFQ1RJT05f IiwgdHlwZV9pZCA9ICJtZXRhX2xvY2FsZV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGVudW0gTG9jYWxlRGlyZWN0aW9uIHsKKy0JCUxUUiwKKy0JCVJUTAorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBj cHJlZml4ID0gIk1FVEFfTUFYSU1JWkVfIiwgdHlwZV9pZCA9ICJtZXRhX21heGltaXplX2ZsYWdz X2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gTWF4aW1pemVGbGFncyB7 CistCQlIT1JJWk9OVEFMLAorLQkJVkVSVElDQUwsCistCQlCT1RICistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVm aXggPSAiTUVUQV9NT0RBTF8iLCB0eXBlX2lkID0gIm1ldGFfbW9kYWxfb3B0aW9uc19nZXRfdHlw ZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIE1vZGFsT3B0aW9ucyB7CistCQlQT0lO VEVSX0FMUkVBRFlfR1JBQkJFRCwKKy0JCUtFWUJPQVJEX0FMUkVBRFlfR1JBQkJFRAorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCBjcHJlZml4ID0gIk1FVEFfTU9OSVRPUl9TV0lUQ0hfQ09ORklHXyIsIHR5cGVfaWQgPSAi bWV0YV9tb25pdG9yX3N3aXRjaF9jb25maWdfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg ZW51bSBNb25pdG9yU3dpdGNoQ29uZmlnVHlwZSB7CistCQlBTExfTUlSUk9SLAorLQkJQUxMX0xJ TkVBUiwKKy0JCUVYVEVSTkFMLAorLQkJQlVJTFRJTiwKKy0JCVVOS05PV04KKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwg Y3ByZWZpeCA9ICJNRVRBX01PVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbW90aW9uX2RpcmVjdGlv bl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBNb3Rpb25EaXJlY3Rpb24geworLQkJVVAs CistCQlET1dOLAorLQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVVBfTEVGVCwKKy0JCVVQX1JJR0hU LAorLQkJRE9XTl9MRUZULAorLQkJRE9XTl9SSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1F VEFfUEFEX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfcGFkX2FjdGlvbl90eXBlX2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIFBhZEFjdGlvblR5cGUgeworLQkJQlVUVE9OLAorLQkJUklO RywKKy0JCVNUUklQCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXli aW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVy LmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0 YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRv dy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1h bmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1l dGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2lu ZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9QUkVGXyIsIHR5cGVfaWQg PSAibWV0YV9wcmVmZXJlbmNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFByZWZlcmVu Y2UgeworLQkJTU9VU0VfQlVUVE9OX01PRFMsCistCQlGT0NVU19NT0RFLAorLQkJRk9DVVNfTkVX X1dJTkRPV1MsCistCQlBVFRBQ0hfTU9EQUxfRElBTE9HUywKKy0JCVJBSVNFX09OX0NMSUNLLAor LQkJQUNUSU9OX0RPVUJMRV9DTElDS19USVRMRUJBUiwKKy0JCUFDVElPTl9NSURETEVfQ0xJQ0tf VElUTEVCQVIsCistCQlBQ1RJT05fUklHSFRfQ0xJQ0tfVElUTEVCQVIsCistCQlBVVRPX1JBSVNF LAorLQkJQVVUT19SQUlTRV9ERUxBWSwKKy0JCUZPQ1VTX0NIQU5HRV9PTl9QT0lOVEVSX1JFU1Qs CistCQlUSVRMRUJBUl9GT05ULAorLQkJTlVNX1dPUktTUEFDRVMsCistCQlEWU5BTUlDX1dPUktT UEFDRVMsCistCQlLRVlCSU5ESU5HUywKKy0JCURJU0FCTEVfV09SS0FST1VORFMsCistCQlCVVRU T05fTEFZT1VULAorLQkJV09SS1NQQUNFX05BTUVTLAorLQkJVklTVUFMX0JFTEwsCistCQlBVURJ QkxFX0JFTEwsCistCQlWSVNVQUxfQkVMTF9UWVBFLAorLQkJR05PTUVfQUNDRVNTSUJJTElUWSwK Ky0JCUdOT01FX0FOSU1BVElPTlMsCistCQlDVVJTT1JfVEhFTUUsCistCQlDVVJTT1JfU0laRSwK Ky0JCVJFU0laRV9XSVRIX1JJR0hUX0JVVFRPTiwKKy0JCUVER0VfVElMSU5HLAorLQkJRk9SQ0Vf RlVMTFNDUkVFTiwKKy0JCVdPUktTUEFDRVNfT05MWV9PTl9QUklNQVJZLAorLQkJRFJBR0dBQkxF X0JPUkRFUl9XSURUSCwKKy0JCUFVVE9fTUFYSU1JWkUsCistCQlDRU5URVJfTkVXX1dJTkRPV1Ms CistCQlEUkFHX1RIUkVTSE9MRDsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcg KCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9TSEFET1dfTU9ERV8iLCB0eXBlX2lkID0g Im1ldGFfc2hhZG93X21vZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2hhZG93TW9k ZSB7CistCQlBVVRPLAorLQkJRk9SQ0VEX09GRiwKKy0JCUZPUkNFRF9PTgorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBj cHJlZml4ID0gIk1FVEFfU0lERV8iLCB0eXBlX2lkID0gIm1ldGFfc2lkZV9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgZW51bSBTaWRlIHsKKy0JCUxFRlQsCistCQlSSUdIVCwKKy0JCVRPUCwKKy0J CUJPVFRPTQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfU0laRV9DSEFOR0VfIiwgdHlwZV9p ZCA9ICJtZXRhX3NpemVfY2hhbmdlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNpemVD aGFuZ2UgeworLQkJTUFYSU1JWkUsCistCQlVTk1BWElNSVpFLAorLQkJRlVMTFNDUkVFTiwKKy0J CVVORlVMTFNDUkVFTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFZRVJfIiwgdHlwZV9p ZCA9ICJtZXRhX3N0YWNrX2xheWVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFN0YWNr TGF5ZXIgeworLQkJREVTS1RPUCwKKy0JCUJPVFRPTSwKKy0JCU5PUk1BTCwKKy0JCVRPUCwKKy0J CURPQ0ssCistCQlPVkVSUklERV9SRURJUkVDVCwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZp eCA9ICJNRVRBX1RBQl9MSVNUXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfbGlzdF9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBUYWJMaXN0IHsKKy0JCU5PUk1BTCwKKy0JCURPQ0tTLAorLQkJ R1JPVVAsCistCQlOT1JNQUxfQUxMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9UQUJfU0hP V18iLCB0eXBlX2lkID0gIm1ldGFfdGFiX3Nob3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgZW51bSBUYWJTaG93VHlwZSB7CistCQlJQ09OLAorLQkJSU5TVEFOVExZCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0YV92aXJ0dWFsX21vZGlm aWVyX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gVmlydHVhbE1vZGlm aWVyIHsKKy0JCVNISUZUX01BU0ssCistCQlDT05UUk9MX01BU0ssCistCQlBTFRfTUFTSywKKy0J CU1FVEFfTUFTSywKKy0JCVNVUEVSX01BU0ssCistCQlIWVBFUl9NQVNLLAorLQkJTU9EMl9NQVNL LAorLQkJTU9EM19NQVNLLAorLQkJTU9ENF9NQVNLLAorLQkJTU9ENV9NQVNLCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfQ0xJRU5UX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX3dp bmRvd19jbGllbnRfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBXaW5kb3dDbGll bnRUeXBlIHsKKy0JCVdBWUxBTkQsCistCQlYMTEKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRB X1dJTkRPV19NRU5VXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfbWVudV90eXBlX2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIFdpbmRvd01lbnVUeXBlIHsKKy0JCVdNLAorLQkJQVBQCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRv d190eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFdpbmRvd1R5cGUgeworLQkJTk9S TUFMLAorLQkJREVTS1RPUCwKKy0JCURPQ0ssCistCQlESUFMT0csCistCQlNT0RBTF9ESUFMT0cs CistCQlUT09MQkFSLAorLQkJTUVOVSwKKy0JCVVUSUxJVFksCistCQlTUExBU0hTQ1JFRU4sCist CQlEUk9QRE9XTl9NRU5VLAorLQkJUE9QVVBfTUVOVSwKKy0JCVRPT0xUSVAsCistCQlOT1RJRklD QVRJT04sCistCQlDT01CTywKKy0JCURORCwKKy0JCU9WRVJSSURFX09USEVSCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGluc3RhbmNlX3BvcyA9IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIElkbGVNb25pdG9y V2F0Y2hGdW5jIChNZXRhLklkbGVNb25pdG9yIG1vbml0b3IsIHVpbnQgd2F0Y2hfaWQpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgaW5zdGFuY2VfcG9zID0gNC45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgS2V5SGFuZGxl ckZ1bmMgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBNZXRhLldpbmRvdyB3aW5kb3csIFtDQ29kZSAo dHlwZSA9ICJDbHV0dGVyS2V5RXZlbnQqIildIENsdXR0ZXIuS2V5RXZlbnQ/IGV2ZW50LCBNZXRh LktleUJpbmRpbmcgYmluZGluZyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJs aWMgZGVsZWdhdGUgdm9pZCBQcmVmc0NoYW5nZWRGdW5jIChNZXRhLlByZWZlcmVuY2UgcHJlZik7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgYm9vbCBXaW5k b3dGb3JlYWNoRnVuYyAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFf Q1VSUkVOVF9USU1FIildCistCXB1YmxpYyBjb25zdCBpbnQgQ1VSUkVOVF9USU1FOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwg Y25hbWUgPSAiTUVUQV9ERUZBVUxUX0lDT05fTkFNRSIpXQorLQlwdWJsaWMgY29uc3Qgc3RyaW5n IERFRkFVTFRfSUNPTl9OQU1FOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX0hFSUdIVCIpXQor LQlwdWJsaWMgY29uc3QgaW50IElDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9JQ09O X1dJRFRIIildCistCXB1YmxpYyBjb25zdCBpbnQgSUNPTl9XSURUSDsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0g Ik1FVEFfTUFKT1JfVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1BSk9SX1ZFUlNJT047 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCBjbmFtZSA9ICJNRVRBX01JQ1JPX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGlu dCBNSUNST19WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fSEVJR0hUIild CistCXB1YmxpYyBjb25zdCBpbnQgTUlOSV9JQ09OX0hFSUdIVDsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1F VEFfTUlOSV9JQ09OX1dJRFRIIildCistCXB1YmxpYyBjb25zdCBpbnQgTUlOSV9JQ09OX1dJRFRI OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgY25hbWUgPSAiTUVUQV9NSU5PUl9WRVJTSU9OIildCistCXB1YmxpYyBjb25zdCBp bnQgTUlOT1JfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXli aW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVy LmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0 YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRv dy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1h bmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1l dGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2lu ZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfUExVR0lOX0FQSV9WRVJTSU9O IildCistCXB1YmxpYyBjb25zdCBpbnQgUExVR0lOX0FQSV9WRVJTSU9OOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUg PSAiTUVUQV9QUklPUklUWV9CRUZPUkVfUkVEUkFXIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJ T1JJVFlfQkVGT1JFX1JFRFJBVzsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUFJFRlNf Tk9USUZZIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUFJFRlNfTk9USUZZOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRURSQVciKV0KKy0JcHVibGljIGNvbnN0IGludCBQ UklPUklUWV9SRURSQVc7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1JFU0laRSIpXQor LQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFU0laRTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFf VklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEIildCistCXB1YmxpYyBjb25zdCBpbnQgVklSVFVBTF9D T1JFX0tFWUJPQVJEX0lEOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfUE9JTlRF Ul9JRCIpXQorLQlwdWJsaWMgY29uc3QgaW50IFZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBhY3RpdmF0ZV9zZXNzaW9uICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBleGl0IChNZXRhLkV4aXRDb2RlIGNvZGUpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCist CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLk9wdGlvbkNvbnRleHQgZ2V0X29wdGlvbl9jb250 ZXh0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfcmVwbGFjZV9jdXJyZW50 X3dtICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBpbml0ICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCist CXB1YmxpYyBzdGF0aWMgYm9vbCBpc19yZXN0YXJ0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBxdWl0IChNZXRhLkV4aXRDb2RlIGNvZGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCByZWdpc3Rlcl93aXRoX3Nlc3Npb24gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHJlc3RhcnQgKHN0cmluZz8gbWVzc2FnZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRp YyBpbnQgcnVuICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZ25vbWVfd21f a2V5YmluZGluZ3MgKHN0cmluZyB3bV9rZXliaW5kaW5ncyk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNldF93bV9uYW1lIChzdHJpbmcgd21fbmFtZSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGlj IHN0YXRpYyBib29sIHgxMV9pbml0X2dka19kaXNwbGF5ICgpIHRocm93cyBHTGliLkVycm9yOwor LX0KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItNS5kZXBzIHZhcGkvbGlibXV0dGVyLTYuZGVw cworc2ltaWxhcml0eSBpbmRleCA1MCUKK3JlbmFtZSBmcm9tIHZhcGkvbGlibXV0dGVyLTUuZGVw cworcmVuYW1lIHRvIHZhcGkvbGlibXV0dGVyLTYuZGVwcworaW5kZXggNDhhYTc1NjMuLjIyMzUy NWU0IDEwMDY0NAorLS0tIHZhcGkvbGlibXV0dGVyLTUuZGVwcworKysrIHZhcGkvbGlibXV0dGVy LTYuZGVwcworQEAgLTEsNSArMSw2IEBACisgZ3RrKy0zLjAKKyBqc29uLWdsaWItMS4wCistbXV0 dGVyLWNsdXR0ZXItNQorK211dHRlci1jbHV0dGVyLTYKKyB4MTEKKyB4Zml4ZXMtNC4wCisrZ3Jh cGhlbmUtZ29iamVjdC0xLjAKK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItNS52YXBpIHZhcGkv bGlibXV0dGVyLTYudmFwaQorc2ltaWxhcml0eSBpbmRleCA5NyUKK3JlbmFtZSBmcm9tIHZhcGkv bGlibXV0dGVyLTUudmFwaQorcmVuYW1lIHRvIHZhcGkvbGlibXV0dGVyLTYudmFwaQoraW5kZXgg Yjk1YTI4ZTYuLmIzNmJlMWI3IDEwMDY0NAorLS0tIHZhcGkvbGlibXV0dGVyLTUudmFwaQorKysr IHZhcGkvbGlibXV0dGVyLTYudmFwaQorQEAgLTEsMTIgKzEsMTAgQEAKKy0vKiBsaWJtdXR0ZXIt NS52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8qIGxpYm11 dHRlci02LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCist W0NDb2RlIChjcHJlZml4ID0gIk1ldGEiLCBnaXJfbmFtZXNwYWNlID0gIk1ldGEiLCBnaXJfdmVy c2lvbiA9ICI1IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gIm1ldGFfIildCisrW0NDb2RlIChjcHJl Zml4ID0gIk1ldGEiLCBnaXJfbmFtZXNwYWNlID0gIk1ldGEiLCBnaXJfdmVyc2lvbiA9ICI2Iiwg bG93ZXJfY2FzZV9jcHJlZml4ID0gIm1ldGFfIildCisgbmFtZXNwYWNlIE1ldGEgeworIAluYW1l c3BhY2UgQ29tcG9zaXRvciB7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9kaXNhYmxlX3VucmVkaXJlY3RfZm9y X2Rpc3BsYXkiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNhYmxlX3VucmVkaXJlY3RfZm9y X2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2VtcHR5X3N0 YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVtcHR5X3N0YWdlX2lu cHV0X3JlZ2lvbiAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworIAkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW5hYmxl X3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmFibGVf dW5yZWRpcmVjdF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworIAkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0g Im1ldGFfZm9jdXNfc3RhZ2Vfd2luZG93IildCitAQCAtMjEsOCArMTksNiBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5MaXN0PENsdXR0ZXIuQWN0b3I+ IGdldF93aW5kb3dfYWN0b3JzIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0 YV9nZXRfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IildCisgCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgQ2x1dHRlci5BY3RvciBnZXRfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IChNZXRhLkRpc3Bs YXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiAoTWV0YS5EaXNwbGF5 IGRpc3BsYXksIFguWHNlcnZlclJlZ2lvbiByZWdpb24pOworIAl9CisgCW5hbWVzcGFjZSBQcmVm cyB7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUg PSAibWV0YV9wcmVmc19iZWxsX2lzX2F1ZGlibGUiKV0KK0BAIC0xNjQsNyArMTYwLDcgQEAgbmFt ZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHZvaWQgc2V0X251bWxvY2sgKGJvb2wgbnVtbG9ja19z dGF0ZSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2NoYW5nZWQgKCk7CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQga2V5bWFwX2xheW91dF9ncm91cF9jaGFuZ2VkICh1aW50IG9iamVjdCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoaW50IG9iamVjdCk7 CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoQ2x1dHRlci5JbnB1 dERldmljZSBvYmplY3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGxpZF9pc19jbG9zZWRfY2hh bmdlZCAoYm9vbCBvYmplY3QpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21ldGEtYmFja2dyb3VuZC5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfZ2V0X3R5 cGUgKCkiKV0KK0BAIC0xNzQsNyArMTcwLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGlj IHN0YXRpYyB2b2lkIHJlZnJlc2hfYWxsICgpOworIAkJcHVibGljIHZvaWQgc2V0X2JsZW5kIChH TGliLkZpbGUgZmlsZTEsIEdMaWIuRmlsZSBmaWxlMiwgZG91YmxlIGJsZW5kX2ZhY3RvciwgR0Rl c2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvciAo Q2x1dHRlci5Db2xvciBjb2xvcik7CistCQlwdWJsaWMgdm9pZCBzZXRfZmlsZSAoR0xpYi5GaWxl IGZpbGUsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CisrCQlwdWJsaWMgdm9pZCBz ZXRfZmlsZSAoR0xpYi5GaWxlPyBmaWxlLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUp OworIAkJcHVibGljIHZvaWQgc2V0X2dyYWRpZW50IChHRGVza3RvcC5CYWNrZ3JvdW5kU2hhZGlu ZyBzaGFkaW5nX2RpcmVjdGlvbiwgQ2x1dHRlci5Db2xvciBjb2xvciwgQ2x1dHRlci5Db2xvciBz ZWNvbmRfY29sb3IpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlwdWJsaWMgTWV0YS5EaXNw bGF5IG1ldGFfZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CitAQCAtMjc1LDcgKzI3 MSw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBn ZXRfc3ByaXRlICgpOworIAkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfdmlzaWJsZSAoYm9vbCB2 aXNpYmxlKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbW92ZWQgKGZsb2F0IG9iamVjdCwgZmxvYXQgcDApOwor KwkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9tb3ZlZCAoZmxvYXQgeCwgZmxvYXQgeSk7Cisg CQlwdWJsaWMgc2lnbmFsIHZvaWQgdmlzaWJpbGl0eV9jaGFuZ2VkICgpOworIAl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV9k aXNwbGF5X2dldF90eXBlICgpIildCitAQCAtMzI3LDYgKzMyMyw3IEBAIG5hbWVzcGFjZSBNZXRh IHsKKyAJCXB1YmxpYyBib29sIHhzZXJ2ZXJfdGltZV9pc19iZWZvcmUgKHVpbnQzMiB0aW1lMSwg dWludDMyIHRpbWUyKTsKKyAJCXB1YmxpYyBNZXRhLldpbmRvdyBmb2N1c193aW5kb3cgeyBnZXQ7 IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBhY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKHVpbnQgb2Jq ZWN0LCBDbHV0dGVyLklucHV0RGV2aWNlIHAwLCB1aW50IHAxKTsKKysJCXB1YmxpYyBzaWduYWwg dm9pZCBjbG9zaW5nICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl91cGRhdGVkICgp OworIAkJcHVibGljIHNpZ25hbCB2b2lkIGdsX3ZpZGVvX21lbW9yeV9wdXJnZWQgKCk7CisgCQlw dWJsaWMgc2lnbmFsIHZvaWQgZ3JhYl9vcF9iZWdpbiAoTWV0YS5EaXNwbGF5IG9iamVjdCwgTWV0 YS5XaW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsKK0BAIC0zNTAsNiArMzQ3LDcgQEAgbmFtZXNw YWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmthcmVhc19jaGFuZ2VkICgpOwor IAkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X2Nsb3NpbmcgKCk7CisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfb3BlbmVkICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lk IHgxMV9kaXNwbGF5X3NldHVwICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21ldGEtZG5kLmgiLCB0eXBlX2lkID0gIm1ldGFfZG5kX2dldF90eXBlICgpIildCisg CXB1YmxpYyBjbGFzcyBEbmQgOiBHTGliLk9iamVjdCB7CitAQCAtMzcwLDExICszNjgsMTAgQEAg bmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVpbnQgYWRkX2lkbGVfd2F0Y2ggKHVpbnQ2NCBp bnRlcnZhbF9tc2VjLCBvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7 CisgCQlwdWJsaWMgdWludCBhZGRfdXNlcl9hY3RpdmVfd2F0Y2ggKG93bmVkIE1ldGEuSWRsZU1v bml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRh LklkbGVNb25pdG9yIGdldF9jb3JlICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEu SWRsZU1vbml0b3IgZ2V0X2Zvcl9kZXZpY2UgKGludCBkZXZpY2VfaWQpOworIAkJcHVibGljIGlu dDY0IGdldF9pZGxldGltZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV93YXRjaCAodWludCBp ZCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgZGV2aWNlX2lkIHsgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSB7IG93 bmVkIGdldDsgY29uc3RydWN0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0 aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19nZXRfdHlw ZSAoKSIpXQorIAlbQ29tcGFjdF0KK0BAIC01MzYsMTUgKzUzMywxNCBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgiLCB0eXBlX2lkID0g Im1ldGFfc2hhcGVkX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNoYXBl ZFRleHR1cmUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0 YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisrCXB1YmxpYyBj bGFzcyBTaGFwZWRUZXh0dXJlIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgU2hh cGVkVGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBDYWlyby5TdXJmYWNlIGdldF9pbWFnZSAoQ2Fpcm8u UmVjdGFuZ2xlSW50IGNsaXApOworKwkJcHVibGljIENhaXJvLlN1cmZhY2U/IGdldF9pbWFnZSAo Q2Fpcm8uUmVjdGFuZ2xlSW50PyBjbGlwKTsKKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVy ZSBnZXRfdGV4dHVyZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jcmVhdGVfbWlwbWFwcyAoYm9v bCBjcmVhdGVfbWlwbWFwcyk7CisgCQlwdWJsaWMgdm9pZCBzZXRfbWFza190ZXh0dXJlIChDb2ds LlRleHR1cmUgbWFza190ZXh0dXJlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9vcGFxdWVfcmVnaW9u IChvd25lZCBDYWlyby5SZWdpb24gb3BhcXVlX3JlZ2lvbik7CistCQlwdWJsaWMgYm9vbCB1cGRh dGVfYXJlYSAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJcHVibGlj IHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tZXRhLXNvdW5kLXBsYXllci5oIiwgdHlwZV9pZCA9ICJtZXRhX3NvdW5k X3BsYXllcl9nZXRfdHlwZSAoKSIpXQorQEAgLTc1NiwxNyArNzUyLDE2IEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFdpbmRvd0FjdG9yIDogQ2x1dHRlci5BY3Rv ciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVy LCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFdpbmRvd0FjdG9yICgpOworKwkJcHVibGljIENhaXJv LlN1cmZhY2U/IGdldF9pbWFnZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBjbGlwKTsKKyAJCXB1Ymxp YyB1bm93bmVkIE1ldGEuV2luZG93IGdldF9tZXRhX3dpbmRvdyAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3RleHR1cmUgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBNZXRh LlNoYXBlZFRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CisgCQlwdWJsaWMgYm9vbCBpc19kZXN0cm95 ZWQgKCk7CisgCQlwdWJsaWMgdm9pZCBzeW5jX3Zpc2liaWxpdHkgKCk7CisgCQlwdWJsaWMgTWV0 YS5XaW5kb3cgbWV0YV93aW5kb3cgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgc3RyaW5nIHNoYWRvd19jbGFzcyB7IG93bmVkIGdldDsgc2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLlNoYWRvd01vZGUgc2hhZG93 X21vZGUgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGRhbWFnZWQgKCk7Cisg CQlwdWJsaWMgc2lnbmFsIHZvaWQgZWZmZWN0c19jb21wbGV0ZWQgKCk7CisgCQlwdWJsaWMgc2ln bmFsIHZvaWQgZmlyc3RfZnJhbWUgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdGhhd2VkICgp OworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtd2luZG93LWdy b3VwLmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dyb3VwX2dldF90eXBlICgpIildCisgCXB1 YmxpYyBjbGFzcyBXaW5kb3dHcm91cCA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwg Q2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxl IHsKK0BAIC04MTMsNyArODA4LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVub3du ZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X2FjdGl2ZV93b3Jrc3BhY2UgKCk7CisgCQlwdWJsaWMgaW50 IGdldF9hY3RpdmVfd29ya3NwYWNlX2luZGV4ICgpOworIAkJcHVibGljIGludCBnZXRfbl93b3Jr c3BhY2VzICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X3dvcmtzcGFj ZV9ieV9pbmRleCAoaW50IGluZGV4KTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNl PyBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOworIAkJcHVibGljIHZvaWQgb3Zl cnJpZGVfd29ya3NwYWNlX2xheW91dCAoTWV0YS5EaXNwbGF5Q29ybmVyIHN0YXJ0aW5nX2Nvcm5l ciwgYm9vbCB2ZXJ0aWNhbF9sYXlvdXQsIGludCBuX3Jvd3MsIGludCBuX2NvbHVtbnMpOworIAkJ cHVibGljIHZvaWQgcmVtb3ZlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCB1 aW50MzIgdGltZXN0YW1wKTsKKyAJCXB1YmxpYyB2b2lkIHJlb3JkZXJfd29ya3NwYWNlIChNZXRh LldvcmtzcGFjZSB3b3Jrc3BhY2UsIGludCBuZXdfaW5kZXgpOworQEAgLTgzMywxMSArODI4LDEz IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJcHVibGljIGNsYXNzIFgxMURpc3BsYXkgOiBHTGliLk9i amVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlw cm90ZWN0ZWQgWDExRGlzcGxheSAoKTsKKysJCXB1YmxpYyB2b2lkIGNsZWFyX3N0YWdlX2lucHV0 X3JlZ2lvbiAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2RhbWFnZV9ldmVudF9iYXNlICgpOworIAkJ cHVibGljIGludCBnZXRfc2NyZWVuX251bWJlciAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3NoYXBl X2V2ZW50X2Jhc2UgKCk7CisgCQlwdWJsaWMgYm9vbCBoYXNfc2hhcGUgKCk7CisgCQlwdWJsaWMg dm9pZCBzZXRfY21fc2VsZWN0aW9uICgpOworKwkJcHVibGljIHZvaWQgc2V0X3N0YWdlX2lucHV0 X3JlZ2lvbiAoWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7CisgCQlwdWJsaWMgYm9vbCB4d2luZG93 X2lzX2Ffbm9fZm9jdXNfd2luZG93IChYLldpbmRvdyB4d2luZG93KTsKKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oIiwgdHlwZV9jbmFt ZSA9ICJNZXRhQ2xvc2VEaWFsb2dJbnRlcmZhY2UiLCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlh bG9nX2dldF90eXBlICgpIildCitAQCAtODk5LDcgKzg5Niw3IEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCXB1YmxpYyB1aW50IHZlcnNpb25fbWljcm87CisgCQlwdWJsaWMgdWludCB2ZXJzaW9uX2Fw aTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBl X2lkID0gIm1ldGFfcmVjdGFuZ2xlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5Iiwg ZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfcmVjdGFuZ2xl X2dldF90eXBlICgpIildCisgCXB1YmxpYyBzdHJ1Y3QgUmVjdGFuZ2xlIHsKKyAJCXB1YmxpYyBp bnQgeDsKKyAJCXB1YmxpYyBpbnQgeTsKK0BAIC0xNDQzLDYgKzE0NDAsOCBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlw dWJsaWMgc3RhdGljIGJvb2wgYWN0aXZhdGVfc2Vzc2lvbiAoKTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCBhZGRfY2x1 dHRlcl9kZWJ1Z19mbGFncyAoQ2x1dHRlci5EZWJ1Z0ZsYWcgZGVidWdfZmxhZ3MsIENsdXR0ZXIu RHJhd0RlYnVnRmxhZyBkcmF3X2ZsYWdzLCBDbHV0dGVyLlBpY2tEZWJ1Z0ZsYWcgcGlja19mbGFn cyk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJs aWMgc3RhdGljIHZvaWQgZXhpdCAoTWV0YS5FeGl0Q29kZSBjb2RlKTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgc3RyaW5nIGdf dXRmOF9zdHJuZHVwIChzdHJpbmcgc3JjLCBzaXplX3Qgbik7CitAQCAtMTQ1OSw2ICsxNDU4LDgg QEAgbmFtZXNwYWNlIE1ldGEgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dpdGhfc2Vzc2lvbiAoKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBz dGF0aWMgdm9pZCByZW1vdmVfY2x1dHRlcl9kZWJ1Z19mbGFncyAoQ2x1dHRlci5EZWJ1Z0ZsYWcg ZGVidWdfZmxhZ3MsIENsdXR0ZXIuRHJhd0RlYnVnRmxhZyBkcmF3X2ZsYWdzLCBDbHV0dGVyLlBp Y2tEZWJ1Z0ZsYWcgcGlja19mbGFncyk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgcmVzdGFydCAoc3RyaW5nPyBtZXNz YWdlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1 YmxpYyBzdGF0aWMgaW50IHJ1biAoKTsKK0BAIC0xNDY3LDUgKzE0NjgsNyBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlw dWJsaWMgc3RhdGljIHZvaWQgc2V0X3dtX25hbWUgKHN0cmluZyB3bV9uYW1lKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBzdGF0aWMgdm9p ZCB0ZXN0X2luaXQgKCk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgeDExX2luaXRfZ2RrX2Rpc3BsYXkgKCkgdGhyb3dz IEdMaWIuRXJyb3I7CisgfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci03LWN1c3RvbS52YWxh IHZhcGkvbGlibXV0dGVyLTctY3VzdG9tLnZhbGEKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRl eCAwMDAwMDAwMC4uMWUwYjkxN2MKKy0tLSAvZGV2L251bGwKKysrKyB2YXBpL2xpYm11dHRlci03 LWN1c3RvbS52YWxhCitAQCAtMCwwICsxLDcgQEAKKytbQ0NvZGUgKGhhc190eXBlX2lkID0gZmFs c2UpXQorK3B1YmxpYyBzdHJ1Y3QgYmVmb3JlX2ZyYW1lIHsKKyt9CisrCisrW0NDb2RlIChoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKytwdWJsaWMgc3RydWN0IGZyYW1lIHsKKyt9CitkaWZmIC0tZ2l0 IHZhcGkvbGlibXV0dGVyLTcuZGVwcyB2YXBpL2xpYm11dHRlci03LmRlcHMKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uMmVmOTE5ZWUKKy0tLSAvZGV2L251bGwKKysrKyB2 YXBpL2xpYm11dHRlci03LmRlcHMKK0BAIC0wLDAgKzEsNiBAQAorK2d0aystMy4wCisranNvbi1n bGliLTEuMAorK211dHRlci1jbHV0dGVyLTcKKyt4MTEKKyt4Zml4ZXMtNC4wCisrZ3JhcGhlbmUt Z29iamVjdC0xLjAKK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMy52YXBpIHZhcGkvbGlibXV0 dGVyLTcudmFwaQorc2ltaWxhcml0eSBpbmRleCA3NSUKK3JlbmFtZSBmcm9tIHZhcGkvbGlibXV0 dGVyLTMudmFwaQorcmVuYW1lIHRvIHZhcGkvbGlibXV0dGVyLTcudmFwaQoraW5kZXggMTcxNWFh OGYuLjkwYzQxNTkwIDEwMDY0NAorLS0tIHZhcGkvbGlibXV0dGVyLTMudmFwaQorKysrIHZhcGkv bGlibXV0dGVyLTcudmFwaQorQEAgLTEsMTIgKzEsMTAgQEAKKy0vKiBsaWJtdXR0ZXItMy52YXBp IGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8qIGxpYm11dHRlci03 LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCistW0NDb2Rl IChjcHJlZml4ID0gIk1ldGEiLCBnaXJfbmFtZXNwYWNlID0gIk1ldGEiLCBnaXJfdmVyc2lvbiA9 ICIzIiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gIm1ldGFfIildCisrW0NDb2RlIChjcHJlZml4ID0g Ik1ldGEiLCBnaXJfbmFtZXNwYWNlID0gIk1ldGEiLCBnaXJfdmVyc2lvbiA9ICI3IiwgbG93ZXJf Y2FzZV9jcHJlZml4ID0gIm1ldGFfIildCisgbmFtZXNwYWNlIE1ldGEgeworIAluYW1lc3BhY2Ug Q29tcG9zaXRvciB7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9kaXNhYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3Bs YXkiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNhYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3Bs YXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2VtcHR5X3N0YWdlX2lu cHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVtcHR5X3N0YWdlX2lucHV0X3Jl Z2lvbiAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW5hYmxlX3VucmVk aXJlY3RfZm9yX2Rpc3BsYXkiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmFibGVfdW5yZWRp cmVjdF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworIAkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFf Zm9jdXNfc3RhZ2Vfd2luZG93IildCitAQCAtMjEsOCArMTksNiBAQCBuYW1lc3BhY2UgTWV0YSB7 CisgCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5MaXN0PENsdXR0ZXIuQWN0b3I+IGdldF93 aW5kb3dfYWN0b3JzIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRf d2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IildCisgCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1 dHRlci5BY3RvciBnZXRfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlz cGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11 dHRlci5oIiwgY25hbWUgPSAibWV0YV9zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJs aWMgc3RhdGljIHZvaWQgc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiAoTWV0YS5EaXNwbGF5IGRpc3Bs YXksIFguWHNlcnZlclJlZ2lvbiByZWdpb24pOworIAl9CisgCW5hbWVzcGFjZSBQcmVmcyB7Cisg CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0 YV9wcmVmc19iZWxsX2lzX2F1ZGlibGUiKV0KK0BAIC00Nyw2ICs0Myw4IEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgTWV0YS5CdXR0b25MYXlvdXQgcHJlZnNfZ2V0X2J1dHRv bl9sYXlvdXQgKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY2VudGVyX25ld193aW5kb3dzIildCisgCQlwdWJs aWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2NlbnRlcl9uZXdfd2luZG93cyAoKTsKKysJCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9jaGVja19hbGl2ZV90aW1lb3V0IildCisrCQlwdWJsaWMgc3RhdGljIHVpbnQgcHJlZnNf Z2V0X2NoZWNrX2FsaXZlX3RpbWVvdXQgKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY29tcG9zaXRpbmdfbWFu YWdlciIpXQorIAkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9jb21wb3NpdGluZ19tYW5h Z2VyICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfZ2V0X2N1cnNvcl9zaXplIildCitAQCAtNzUsOCArNzMsNiBAQCBu YW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2dub21lX2Fj Y2Vzc2liaWxpdHkgKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZ25vbWVfYW5pbWF0aW9ucyIpXQorIAkJcHVi bGljIHN0YXRpYyBib29sIHByZWZzX2dldF9nbm9tZV9hbmltYXRpb25zICgpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNf Z2V0X2lnbm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGViYXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9v bCBwcmVmc19nZXRfaWdub3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciAoKTsKKyAJCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dl dF9rZXliaW5kaW5nX2FjdGlvbiIpXQorIAkJcHVibGljIHN0YXRpYyBNZXRhLktleUJpbmRpbmdB Y3Rpb24gcHJlZnNfZ2V0X2tleWJpbmRpbmdfYWN0aW9uIChzdHJpbmcgbmFtZSk7CisgCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVm c19nZXRfbW91c2VfYnV0dG9uX21lbnUiKV0KK0BAIC0xMDUsOCArMTAxLDYgQEAgbmFtZXNwYWNl IE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX2luaXQgKCk7CisgCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19z ZXRfZm9yY2VfZnVsbHNjcmVlbiIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX3NldF9m b3JjZV9mdWxsc2NyZWVuIChib29sIHdoZXRoZXIpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X2lnbm9yZV9yZXF1 ZXN0X2hpZGVfdGl0bGViYXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfaWdu b3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciAoYm9vbCB3aGV0aGVyKTsKKyAJCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9u dW1fd29ya3NwYWNlcyIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX3NldF9udW1fd29y a3NwYWNlcyAoaW50IG5fd29ya3NwYWNlcyk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19zZXRfc2hvd19mYWxsYmFja19h cHBfbWVudSIpXQorQEAgLTExNywxMiArMTExLDEwIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1 YmxpYyBzdGF0aWMgdm9pZCBhZGRfdmVyYm9zZV90b3BpYyAoTWV0YS5EZWJ1Z1RvcGljIHRvcGlj KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0g Im1ldGFfZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rpb24iKV0KKyAJCXB1YmxpYyBzdGF0 aWMgc3RyaW5nIGV4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uICh1aW50IGtleWJpbmRp bmdfYWN0aW9uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIs IGNuYW1lID0gIm1ldGFfZ191dGY4X3N0cm5kdXAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgc3RyaW5n IGdfdXRmOF9zdHJuZHVwIChzdHJpbmcgc3JjLCBzaXplX3Qgbik7CisgCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9sb2NhbGVfZGly ZWN0aW9uIildCisgCQlwdWJsaWMgc3RhdGljIE1ldGEuTG9jYWxlRGlyZWN0aW9uIGdldF9sb2Nh bGVfZGlyZWN0aW9uICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRp bC5oIiwgY25hbWUgPSAibWV0YV9ncmF2aXR5X3RvX3N0cmluZyIpXQorLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIHN0cmluZyBncmF2aXR5X3RvX3N0cmluZyAoaW50IGdyYXZpdHkpOworKwkJcHVi bGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBncmF2aXR5X3RvX3N0cmluZyAoTWV0YS5HcmF2aXR5 IGdyYXZpdHkpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwg Y25hbWUgPSAibWV0YV9pc19kZWJ1Z2dpbmciKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19k ZWJ1Z2dpbmcgKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgi LCBjbmFtZSA9ICJtZXRhX2lzX3N5bmNpbmciKV0KK0BAIC0xNjUsMTIgKzE1NywxMyBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRuZCBnZXRfZG5kICgpOworIAkJ cHVibGljIHVub3duZWQgTWV0YS5SZW1vdGVBY2Nlc3NDb250cm9sbGVyIGdldF9yZW1vdGVfYWNj ZXNzX2NvbnRyb2xsZXIgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9z dGFnZSAoKTsKKysJCXB1YmxpYyBib29sIGlzX3JlbmRlcmluZ19oYXJkd2FyZV9hY2NlbGVyYXRl ZCAoKTsKKyAJCXB1YmxpYyB2b2lkIGxvY2tfbGF5b3V0X2dyb3VwICh1aW50IGlkeCk7CisgCQlw dWJsaWMgdm9pZCBzZXRfa2V5bWFwIChzdHJpbmcgbGF5b3V0cywgc3RyaW5nIHZhcmlhbnRzLCBz dHJpbmcgb3B0aW9ucyk7CisgCQlwdWJsaWMgdm9pZCBzZXRfbnVtbG9jayAoYm9vbCBudW1sb2Nr X3N0YXRlKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfY2hhbmdlZCAoKTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfbGF5b3V0X2dyb3VwX2NoYW5nZWQgKHVpbnQgb2JqZWN0 KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0X2RldmljZV9jaGFuZ2VkIChpbnQgb2JqZWN0 KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0X2RldmljZV9jaGFuZ2VkIChDbHV0dGVyLklu cHV0RGV2aWNlIG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGlkX2lzX2Nsb3NlZF9j aGFuZ2VkIChib29sIG9iamVjdCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRf dHlwZSAoKSIpXQorQEAgLTE4MCw3ICsxNzMsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJs aWMgc3RhdGljIHZvaWQgcmVmcmVzaF9hbGwgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmQg KEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5GaWxlIGZpbGUyLCBkb3VibGUgYmxlbmRfZmFjdG9yLCBH RGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbG9y IChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZp bGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKysJCXB1YmxpYyB2b2lk IHNldF9maWxlIChHTGliLkZpbGU/IGZpbGUsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHls ZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKEdEZXNrdG9wLkJhY2tncm91bmRTaGFk aW5nIHNoYWRpbmdfZGlyZWN0aW9uLCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBDbHV0dGVyLkNvbG9y IHNlY29uZF9jb2xvcik7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCXB1YmxpYyBNZXRhLkRp c3BsYXkgbWV0YV9kaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KK0BAIC0xOTAsOSAr MTgzLDE4IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJcHVibGljIGNsYXNzIEJhY2tncm91bmRBY3Rv ciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBD bHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKyAJCXB1 YmxpYyBCYWNrZ3JvdW5kQWN0b3IgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBpbnQgbW9uaXRvcik7 CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBNZXRhLkRpc3BsYXkgbWV0YV9kaXNw bGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJ cHVibGljIGludCBtb25pdG9yIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtY29udGVudC5oIiwgdHlwZV9p ZCA9ICJtZXRhX2JhY2tncm91bmRfY29udGVudF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xh c3MgQmFja2dyb3VuZENvbnRlbnQgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5Db250ZW50IHsKKysJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBC YWNrZ3JvdW5kQ29udGVudCAoKTsKKysJCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5Db250ZW50IEBu ZXcgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBpbnQgbW9uaXRvcik7CisgCQlwdWJsaWMgdm9pZCBz ZXRfYmFja2dyb3VuZCAoTWV0YS5CYWNrZ3JvdW5kIGJhY2tncm91bmQpOworIAkJcHVibGljIHZv aWQgc2V0X2dyYWRpZW50IChib29sIGVuYWJsZWQsIGludCBoZWlnaHQsIGRvdWJsZSB0b25lX3N0 YXJ0KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9tb25pdG9yIChpbnQgbW9uaXRvcik7CisgCQlwdWJs aWMgdm9pZCBzZXRfdmlnbmV0dGUgKGJvb2wgZW5hYmxlZCwgZG91YmxlIGJyaWdodG5lc3MsIGRv dWJsZSBzaGFycG5lc3MpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlwdWJsaWMgTWV0YS5C YWNrZ3JvdW5kIGJhY2tncm91bmQgeyBvd25lZCBnZXQ7IHNldDsgfQorQEAgLTI3NywxNCArMjc5 LDE0IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkN1 cnNvclRyYWNrZXIgZ2V0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlw dWJsaWMgdm9pZCBnZXRfaG90IChvdXQgaW50IHgsIG91dCBpbnQgeSk7CisgCQlwdWJsaWMgdm9p ZCBnZXRfcG9pbnRlciAoaW50IHgsIGludCB5LCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RzKTsK KysJCXB1YmxpYyBib29sIGdldF9wb2ludGVyX3Zpc2libGUgKCk7CisgCQlwdWJsaWMgdW5vd25l ZCBDb2dsLlRleHR1cmUgZ2V0X3Nwcml0ZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9wb2ludGVy X3Zpc2libGUgKGJvb2wgdmlzaWJsZSk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1Ymxp YyBNZXRhLkJhY2tlbmQgYmFja2VuZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIsIHR5cGVfaWQgPSAibWV0 YV9kYnVzX2Rpc3BsYXlfY29uZmlnX3NrZWxldG9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBj bGFzcyBEQnVzRGlzcGxheUNvbmZpZ1NrZWxldG9uIDogR0xpYi5EQnVzSW50ZXJmYWNlU2tlbGV0 b24sIEdMaWIuREJ1c0ludGVyZmFjZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgREJ1c0Rpc3BsYXlDb25maWdTa2VsZXRvbiAoKTsK KysJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbW92ZWQgKGZsb2F0IHgsIGZsb2F0IHkpOwor KwkJcHVibGljIHNpZ25hbCB2b2lkIHZpc2liaWxpdHlfY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFf ZGlzcGxheV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgRGlzcGxheSA6IEdMaWIuT2Jq ZWN0IHsKK0BAIC0zMDksMzIgKzMxMSwzOSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMg Ym9vbCBnZXRfbW9uaXRvcl9pbl9mdWxsc2NyZWVuIChpbnQgbW9uaXRvcik7CisgCQlwdWJsaWMg aW50IGdldF9tb25pdG9yX2luZGV4X2Zvcl9yZWN0IChNZXRhLlJlY3RhbmdsZSByZWN0KTsKKyAJ CXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfbmVpZ2hib3JfaW5kZXggKGludCB3aGljaF9tb25pdG9y LCBNZXRhLkRpc3BsYXlEaXJlY3Rpb24gZGlyKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfbW9uaXRv cl9zY2FsZSAoaW50IG1vbml0b3IpOworIAkJcHVibGljIGludCBnZXRfbl9tb25pdG9ycyAoKTsK KyAJCXB1YmxpYyBzdHJpbmcgZ2V0X3BhZF9hY3Rpb25fbGFiZWwgKENsdXR0ZXIuSW5wdXREZXZp Y2UgcGFkLCBNZXRhLlBhZEFjdGlvblR5cGUgYWN0aW9uX3R5cGUsIHVpbnQgYWN0aW9uX251bWJl cik7CisgCQlwdWJsaWMgaW50IGdldF9wcmltYXJ5X21vbml0b3IgKCk7CisrCQlwdWJsaWMgdW5v d25lZCBNZXRhLlNlbGVjdGlvbiBnZXRfc2VsZWN0aW9uICgpOworIAkJcHVibGljIHZvaWQgZ2V0 X3NpemUgKG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKysJCXB1YmxpYyB1bm93bmVk IE1ldGEuU291bmRQbGF5ZXIgZ2V0X3NvdW5kX3BsYXllciAoKTsKKyAJCXB1YmxpYyB1bm93bmVk IE1ldGEuV2luZG93IGdldF90YWJfY3VycmVudCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29y a3NwYWNlIHdvcmtzcGFjZSk7CisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+ IGdldF90YWJfbGlzdCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlPyB3b3Jrc3Bh Y2UpOworIAkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9uZXh0IChNZXRhLlRh Ykxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCBNZXRhLldpbmRvdz8gd2luZG93 LCBib29sIGJhY2t3YXJkKTsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlTWFuYWdl ciBnZXRfd29ya3NwYWNlX21hbmFnZXIgKCk7CistCQlwdWJsaWMgdWludCBncmFiX2FjY2VsZXJh dG9yIChzdHJpbmcgYWNjZWxlcmF0b3IpOworKwkJcHVibGljIHVpbnQgZ3JhYl9hY2NlbGVyYXRv ciAoc3RyaW5nIGFjY2VsZXJhdG9yLCBNZXRhLktleUJpbmRpbmdGbGFncyBmbGFncyk7CisgCQlw dWJsaWMgYm9vbCBpc19wb2ludGVyX2VtdWxhdGluZ19zZXF1ZW5jZSAoQ2x1dHRlci5FdmVudFNl cXVlbmNlPyBzZXF1ZW5jZSk7CisgCQlwdWJsaWMgYm9vbCByZW1vdmVfa2V5YmluZGluZyAoc3Ry aW5nIG5hbWUpOworIAkJcHVibGljIHZvaWQgcmVxdWVzdF9wYWRfb3NkIChDbHV0dGVyLklucHV0 RGV2aWNlIHBhZCwgYm9vbCBlZGl0aW9uX21vZGUpOworIAkJcHVibGljIHZvaWQgc2V0X2N1cnNv ciAoTWV0YS5DdXJzb3IgY3Vyc29yKTsKKysJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9mb2N1cyAo TWV0YS5XaW5kb3cgd2luZG93LCBib29sIGZvY3VzX2ZyYW1lLCB1aW50MzIgdGltZXN0YW1wKTsK KyAJCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgTWV0YS5XaW5kb3c+IHNvcnRfd2luZG93c19ieV9z dGFja2luZyAoR0xpYi5TTGlzdDxNZXRhLldpbmRvdz4gd2luZG93cyk7CisgCQlwdWJsaWMgYm9v bCBzdXBwb3J0c19leHRlbmRlZF9iYXJyaWVycyAoKTsKKyAJCXB1YmxpYyB2b2lkIHVuZnJlZXpl X2tleWJvYXJkICh1aW50MzIgdGltZXN0YW1wKTsKKyAJCXB1YmxpYyBib29sIHVuZ3JhYl9hY2Nl bGVyYXRvciAodWludCBhY3Rpb25faWQpOworIAkJcHVibGljIHZvaWQgdW5ncmFiX2tleWJvYXJk ICh1aW50MzIgdGltZXN0YW1wKTsKKysJCXB1YmxpYyB2b2lkIHVuc2V0X2lucHV0X2ZvY3VzICh1 aW50MzIgdGltZXN0YW1wKTsKKyAJCXB1YmxpYyBib29sIHhzZXJ2ZXJfdGltZV9pc19iZWZvcmUg KHVpbnQzMiB0aW1lMSwgdWludDMyIHRpbWUyKTsKKyAJCXB1YmxpYyBNZXRhLldpbmRvdyBmb2N1 c193aW5kb3cgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBhY2NlbGVyYXRvcl9hY3Rp dmF0ZWQgKHVpbnQgb2JqZWN0LCB1aW50IHAwLCB1aW50IHAxKTsKKysJCXB1YmxpYyBzaWduYWwg dm9pZCBhY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKHVpbnQgb2JqZWN0LCBDbHV0dGVyLklucHV0RGV2 aWNlIHAwLCB1aW50IHAxKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBjbG9zaW5nICgpOworIAkJ cHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl91cGRhdGVkICgpOworIAkJcHVibGljIHNpZ25hbCB2 b2lkIGdsX3ZpZGVvX21lbW9yeV9wdXJnZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3Jh Yl9vcF9iZWdpbiAoTWV0YS5EaXNwbGF5IG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1ldGEuR3Jh Yk9wIHAxKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2VuZCAoTWV0YS5EaXNwbGF5 IG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsKKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBpbl9mdWxsc2NyZWVuX2NoYW5nZWQgKCk7CisrCQlwdWJsaWMgc2lnbmFsIGJvb2wg aW5pdF94c2VydmVyIChHTGliLlRhc2sgb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwgYm9vbCBt b2RpZmllcnNfYWNjZWxlcmF0b3JfYWN0aXZhdGVkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lk IG92ZXJsYXlfa2V5ICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHBhZF9tb2RlX3N3aXRjaCAo Q2x1dHRlci5JbnB1dERldmljZSBvYmplY3QsIHVpbnQgcDAsIHVpbnQgcDEpOworQEAgLTM0NSw3 ICszNTQsNiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hvd19y ZXNpemVfcG9wdXAgKGJvb2wgb2JqZWN0LCBNZXRhLlJlY3RhbmdsZSBwMCwgaW50IHAxLCBpbnQg cDIpOworIAkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzdGFydF9tZXNzYWdlIChzdHJpbmc/ IG1lc3NhZ2UpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHNob3dpbmdfZGVza3RvcF9jaGFuZ2Vk ICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHN0YXJ0dXBfc2VxdWVuY2VfY2hhbmdlZCAodm9p ZCogb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfY3JlYXRlZCAoTWV0YS5X aW5kb3cgb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZGVtYW5kc19hdHRl bnRpb24gKE1ldGEuV2luZG93IG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93 X2VudGVyZWRfbW9uaXRvciAoaW50IG9iamVjdCwgTWV0YS5XaW5kb3cgcDApOworQEAgLTM1NCw2 ICszNjIsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya2Fy ZWFzX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfY2xvc2lu ZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9vcGVuZWQgKCk7CisrCQlw dWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfc2V0dXAgKCk7CisgCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1kbmQuaCIsIHR5cGVfaWQgPSAibWV0YV9kbmRf Z2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIERuZCA6IEdMaWIuT2JqZWN0IHsKK0BAIC0z NjMsNyArMzcyLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCB2b2lkIGRu ZF9sZWF2ZSAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBkbmRfcG9zaXRpb25fY2hhbmdlIChp bnQgb2JqZWN0LCBpbnQgcDApOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFj dF0KKyAJcHVibGljIGNsYXNzIEZyYW1lIHsKKyAJfQorQEAgLTM3NCwxMyArMzgzLDEyIEBAIG5h bWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1aW50IGFkZF9pZGxlX3dhdGNoICh1aW50NjQgaW50 ZXJ2YWxfbXNlYywgb3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOwor IAkJcHVibGljIHVpbnQgYWRkX3VzZXJfYWN0aXZlX3dhdGNoIChvd25lZCBNZXRhLklkbGVNb25p dG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CisgCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5J ZGxlTW9uaXRvciBnZXRfY29yZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklk bGVNb25pdG9yIGdldF9mb3JfZGV2aWNlIChpbnQgZGV2aWNlX2lkKTsKKyAJCXB1YmxpYyBpbnQ2 NCBnZXRfaWRsZXRpbWUgKCk7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfd2F0Y2ggKHVpbnQgaWQp OworIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IGRldmljZV9pZCB7IGdldDsg Y29uc3RydWN0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UgeyBvd25l ZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2tleWJpbmRpbmdzLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVf ZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2dl dF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVk X2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKyAJW0Nv bXBhY3RdCisgCXB1YmxpYyBjbGFzcyBLZXlCaW5kaW5nIHsKKyAJCXB1YmxpYyB1aW50IGdldF9t YXNrICgpOworQEAgLTM5MSw4ICszOTksMjEgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJW0NDb2Rl IChjbmFtZSA9ICJtZXRhX2tleWJpbmRpbmdzX3NldF9jdXN0b21faGFuZGxlciIpXQorIAkJcHVi bGljIHN0YXRpYyBib29sIHNldF9jdXN0b21faGFuZGxlciAoc3RyaW5nIG5hbWUsIG93bmVkIE1l dGEuS2V5SGFuZGxlckZ1bmM/IGhhbmRsZXIpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCIsIHR5cGVfaWQgPSAibWV0YV9sYXVu Y2hfY29udGV4dF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgTGF1bmNoQ29udGV4dCA6 IEdMaWIuQXBwTGF1bmNoQ29udGV4dCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgTGF1bmNoQ29udGV4dCAoKTsKKysJCXB1YmxpYyB2 b2lkIHNldF90aW1lc3RhbXAgKHVpbnQzMiB0aW1lc3RhbXApOworKwkJcHVibGljIHZvaWQgc2V0 X3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKysJCVtOb0FjY2Vzc29yTWV0 aG9kXQorKwkJcHVibGljIE1ldGEuRGlzcGxheSBkaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIHVpbnQgdGltZXN0YW1wIHsg Z2V0OyBzZXQ7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIE1ldGEuV29ya3Nw YWNlIHdvcmtzcGFjZSB7IG93bmVkIGdldDsgc2V0OyB9CisrCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIsIHR5cGVfaWQgPSAibWV0 YV9tb25pdG9yX21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNz IE1vbml0b3JNYW5hZ2VyIDogTWV0YS5EQnVzRGlzcGxheUNvbmZpZ1NrZWxldG9uLCBHTGliLkRC dXNJbnRlcmZhY2UsIEdMaWIuREJ1c0ludGVyZmFjZSB7CisrCXB1YmxpYyBjbGFzcyBNb25pdG9y TWFuYWdlciA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBNb25pdG9yTWFuYWdlciAoKTsKKyAJCXB1YmxpYyBi b29sIGNhbl9zd2l0Y2hfY29uZmlnICgpOworQEAgLTQwNyw2ICs0MjgsNyBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY29uZmlybV9kaXNwbGF5X2NoYW5nZSAoKTsK KyAJCXB1YmxpYyBzaWduYWwgdm9pZCBtb25pdG9yc19jaGFuZ2VkICgpOworIAkJcHVibGljIHNp Z25hbCB2b2lkIG1vbml0b3JzX2NoYW5nZWRfaW50ZXJuYWwgKCk7CisrCQlwdWJsaWMgc2lnbmFs IHZvaWQgcG93ZXJfc2F2ZV9tb2RlX2NoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIHR5cGVfaWQgPSAibWV0YV9wbHVnaW5f Z2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFBsdWdpbiA6IEdMaWIuT2Jq ZWN0IHsKK0BAIC00MzAsNiArNDUyLDggQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHZp cnR1YWwgdm9pZCBraWxsX3N3aXRjaF93b3Jrc3BhY2UgKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJ cHVibGljIHZpcnR1YWwgdm9pZCBraWxsX3dpbmRvd19lZmZlY3RzIChNZXRhLldpbmRvd0FjdG9y IGFjdG9yKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGxvY2F0ZV9w b2ludGVyICgpOworIAkJcHVibGljIHN0YXRpYyB2b2lkIG1hbmFnZXJfc2V0X3BsdWdpbl90eXBl IChHTGliLlR5cGUgZ3R5cGUpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgbWFwIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKK0BAIC00NjUsMjYgKzQ4OSw1NiBAQCBu YW1lc3BhY2UgTWV0YSB7CisgCXB1YmxpYyBjbGFzcyBSZW1vdGVBY2Nlc3NDb250cm9sbGVyIDog R0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorIAkJcHJvdGVjdGVkIFJlbW90ZUFjY2Vzc0NvbnRyb2xsZXIgKCk7CisrCQlwdWJsaWMgdm9p ZCBpbmhpYml0X3JlbW90ZV9hY2Nlc3MgKCk7CisrCQlwdWJsaWMgdm9pZCB1bmluaGliaXRfcmVt b3RlX2FjY2VzcyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBuZXdfaGFuZGxlIChNZXRhLlJl bW90ZUFjY2Vzc0hhbmRsZSBvYmplY3QpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgiLCB0eXBlX2lkID0gIm1l dGFfcmVtb3RlX2FjY2Vzc19oYW5kbGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFJl bW90ZUFjY2Vzc0hhbmRsZSA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBSZW1vdGVBY2Nlc3NIYW5kbGUgKCk7 CisrCQlwdWJsaWMgYm9vbCBnZXRfZGlzYWJsZV9hbmltYXRpb25zICgpOworIAkJcHVibGljIHZp cnR1YWwgdm9pZCBzdG9wICgpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgYm9v bCBpc19yZWNvcmRpbmcgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lk IHN0b3BwZWQgKCk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgdHlwZV9pZCA9ICJtZXRhX3NlbGVjdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMg Y2xhc3MgU2VsZWN0aW9uIDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHVibGljIFNlbGVjdGlvbiAoTWV0YS5EaXNwbGF5IGRp c3BsYXkpOworKwkJcHVibGljIEdMaWIuTGlzdDxzdHJpbmc+IGdldF9taW1ldHlwZXMgKE1ldGEu U2VsZWN0aW9uVHlwZSBzZWxlY3Rpb25fdHlwZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfb3duZXIg KE1ldGEuU2VsZWN0aW9uVHlwZSBzZWxlY3Rpb25fdHlwZSwgTWV0YS5TZWxlY3Rpb25Tb3VyY2Ug b3duZXIpOworKwkJcHVibGljIGFzeW5jIGJvb2wgdHJhbnNmZXJfYXN5bmMgKE1ldGEuU2VsZWN0 aW9uVHlwZSBzZWxlY3Rpb25fdHlwZSwgc3RyaW5nIG1pbWV0eXBlLCBzc2l6ZV90IHNpemUsIEdM aWIuT3V0cHV0U3RyZWFtIG91dHB1dCwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRo cm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHZvaWQgdW5zZXRfb3duZXIgKE1ldGEuU2VsZWN0 aW9uVHlwZSBzZWxlY3Rpb25fdHlwZSwgTWV0YS5TZWxlY3Rpb25Tb3VyY2Ugb3duZXIpOworKwkJ cHVibGljIHNpZ25hbCB2b2lkIG93bmVyX2NoYW5nZWQgKHVpbnQgb2JqZWN0LCBNZXRhLlNlbGVj dGlvblNvdXJjZSBwMCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3NlbGVjdGlvbl9zb3VyY2VfZ2V0X3R5cGUgKCkiKV0K KysJcHVibGljIGNsYXNzIFNlbGVjdGlvblNvdXJjZSA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTZWxlY3Rp b25Tb3VyY2UgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBHTGliLkxpc3Q8c3RyaW5nPiBnZXRfbWlt ZXR5cGVzICgpOworKwkJcHVibGljIGJvb2wgaXNfYWN0aXZlICgpOworKwkJcHVibGljIHZpcnR1 YWwgYXN5bmMgR0xpYi5JbnB1dFN0cmVhbSByZWFkX2FzeW5jIChzdHJpbmcgbWltZXR5cGUsIEdM aWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1Ymxp YyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFjdGl2YXRlZCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCB2b2lkIGRlYWN0aXZhdGVkICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAibWV0YV9zZWxlY3Rpb25fc291cmNlX21lbW9y eV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgU2VsZWN0aW9uU291cmNlTWVtb3J5IDog TWV0YS5TZWxlY3Rpb25Tb3VyY2UgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UsIHR5cGUgPSAiTWV0YVNlbGVjdGlvblNvdXJjZSoiKV0KKysJCXB1YmxpYyBTZWxl Y3Rpb25Tb3VyY2VNZW1vcnkgKHN0cmluZyBtaW1ldHlwZSwgR0xpYi5CeXRlcyBjb250ZW50KTsK KysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNldHRpbmdzLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBTZXR0 aW5ncyB7CisgCQlwdWJsaWMgaW50IGdldF9mb250X2RwaSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0 X3VpX3NjYWxpbmdfZmFjdG9yICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCIsIHJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRv d19yZWYiLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rp b24gPSAibWV0YV9zaGFkb3dfdW5yZWYiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgcmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3JlZiIsIHR5cGVfaWQg PSAibWV0YV9zaGFkb3dfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRv d191bnJlZiIpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIFNoYWRvdyB7CisgCQlwdWJs aWMgdm9pZCBnZXRfYm91bmRzIChpbnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRv d193aWR0aCwgaW50IHdpbmRvd19oZWlnaHQsIENhaXJvLlJlY3RhbmdsZUludCBib3VuZHMpOwor LQkJcHVibGljIHZvaWQgcGFpbnQgKGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2lu ZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwgdWludDggb3BhY2l0eSwgQ2Fpcm8uUmVnaW9u PyBjbGlwLCBib29sIGNsaXBfc3RyaWN0bHkpOworKwkJcHVibGljIHZvaWQgcGFpbnQgKENvZ2wu RnJhbWVidWZmZXIgZnJhbWVidWZmZXIsIGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQg d2luZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwgdWludDggb3BhY2l0eSwgQ2Fpcm8uUmVn aW9uPyBjbGlwLCBib29sIGNsaXBfc3RyaWN0bHkpOworIAkJcHVibGljIE1ldGEuU2hhZG93IEBy ZWYgKCk7CisgCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKyAJfQorQEAgLTQ5OSwyOCArNTUzLDc0 IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjaGFuZ2VkICgpOwor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFwZWRfdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRv ciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRh YmxlIHsKKysJcHVibGljIGNsYXNzIFNoYXBlZFRleHR1cmUgOiBHTGliLk9iamVjdCwgQ2x1dHRl ci5Db250ZW50IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KyAJCXByb3RlY3RlZCBTaGFwZWRUZXh0dXJlICgpOworLQkJcHVibGljIENhaXJvLlN1cmZhY2Ug Z2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQgY2xpcCk7CisrCQlwdWJsaWMgQ2Fpcm8uU3Vy ZmFjZT8gZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQ/IGNsaXApOworIAkJcHVibGljIHVu b3duZWQgQ29nbC5UZXh0dXJlIGdldF90ZXh0dXJlICgpOworIAkJcHVibGljIHZvaWQgc2V0X2Ny ZWF0ZV9taXBtYXBzIChib29sIGNyZWF0ZV9taXBtYXBzKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9t YXNrX3RleHR1cmUgKENvZ2wuVGV4dHVyZSBtYXNrX3RleHR1cmUpOworLQkJcHVibGljIHZvaWQg c2V0X29wYXF1ZV9yZWdpb24gKG93bmVkIENhaXJvLlJlZ2lvbiBvcGFxdWVfcmVnaW9uKTsKKy0J CXB1YmxpYyBib29sIHVwZGF0ZV9hcmVhIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhl aWdodCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCB0eXBl X2lkID0gIm1ldGFfc3RhZ2VfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9zb3VuZF9w bGF5ZXJfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFNvdW5kUGxheWVyIDogR0xpYi5P YmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJ cHJvdGVjdGVkIFNvdW5kUGxheWVyICgpOworKwkJcHVibGljIHZvaWQgcGxheV9mcm9tX2ZpbGUg KEdMaWIuRmlsZSBmaWxlLCBzdHJpbmcgZGVzY3JpcHRpb24sIEdMaWIuQ2FuY2VsbGFibGU/IGNh bmNlbGxhYmxlID0gbnVsbCk7CisrCQlwdWJsaWMgdm9pZCBwbGF5X2Zyb21fdGhlbWUgKHN0cmlu ZyBuYW1lLCBzdHJpbmcgZGVzY3JpcHRpb24sIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxl ID0gbnVsbCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1z dGFnZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWdlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBj bGFzcyBTdGFnZSA6IENsdXR0ZXIuU3RhZ2UsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5Bbmlt YXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBTdGFnZSAo KTsKKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mb2N1c2VkIChNZXRhLkRpc3BsYXkgZGlzcGxh eSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWN0b3JzX3BhaW50ZWQgKCk7CisrCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o IiwgdHlwZV9pZCA9ICJtZXRhX3N0YXJ0dXBfbm90aWZpY2F0aW9uX2dldF90eXBlICgpIildCisr CXB1YmxpYyBjbGFzcyBTdGFydHVwTm90aWZpY2F0aW9uIDogR0xpYi5PYmplY3QgeworKwkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFN0YXJ0 dXBOb3RpZmljYXRpb24gKCk7CisrCQlwdWJsaWMgTWV0YS5MYXVuY2hDb250ZXh0IGNyZWF0ZV9s YXVuY2hlciAoKTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIE1ldGEuRGlzcGxh eSBkaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBzaWduYWwgdm9p ZCBjaGFuZ2VkICh2b2lkKiBvYmplY3QpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFydHVwX3NlcXVlbmNlX2dldF90 eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBTdGFydHVwU2VxdWVuY2UgOiBHTGliLk9iamVjdCB7 CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0 ZWQgU3RhcnR1cFNlcXVlbmNlICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9hcHBs aWNhdGlvbl9pZCAoKTsKKysJCXB1YmxpYyBib29sIGdldF9jb21wbGV0ZWQgKCk7CisrCQlwdWJs aWMgdW5vd25lZCBzdHJpbmcgZ2V0X2ljb25fbmFtZSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfaWQgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7Cisr CQlwdWJsaWMgdWludDY0IGdldF90aW1lc3RhbXAgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X3dtY2xhc3MgKCk7CisrCQlwdWJsaWMgaW50IGdldF93b3Jrc3BhY2UgKCk7CisrCQlw dWJsaWMgc3RyaW5nIGFwcGxpY2F0aW9uX2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1Ymxp YyBzdHJpbmcgaWNvbl9uYW1lIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBzdHJpbmcg aWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmluZyBuYW1lIHsgZ2V0OyBjb25z dHJ1Y3Q7IH0KKysJCXB1YmxpYyB1aW50NjQgdGltZXN0YW1wIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0K KysJCXB1YmxpYyBzdHJpbmcgd21jbGFzcyB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMg aW50IHdvcmtzcGFjZSB7IGdldDsgY29uc3RydWN0OyB9CisrCQlbSGFzRW1pdHRlcl0KKysJCXB1 YmxpYyBzaWduYWwgdm9pZCBjb21wbGV0ZSAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS90aGVtZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0 XQorIAlwdWJsaWMgY2xhc3MgVGhlbWUgeworIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKyAJfQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdheWxhbmQtY2xpZW50Lmgi LCB0eXBlX2lkID0gIm1ldGFfd2F5bGFuZF9jbGllbnRfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGlj IGNsYXNzIFdheWxhbmRDbGllbnQgOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwdWJsaWMgV2F5bGFuZENsaWVudCAoR0xpYi5T dWJwcm9jZXNzTGF1bmNoZXIgbGF1bmNoZXIpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGlj IHZvaWQgaGlkZV9mcm9tX3dpbmRvd19saXN0IChNZXRhLldpbmRvdyB3aW5kb3cpOworKwkJcHVi bGljIGJvb2wgb3duc193aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdyk7CisrCQlwdWJsaWMgdm9p ZCBzaG93X2luX3dpbmRvd19saXN0IChNZXRhLldpbmRvdyB3aW5kb3cpOworKwkJcHVibGljIEdM aWIuU3VicHJvY2VzcyBzcGF3bnYgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9udWxsX3Rlcm1pbmF0ZWQgPSB0cnVlKV0gc3RyaW5nW10g YXJndikgdGhyb3dzIEdMaWIuRXJyb3I7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvd2luZG93LmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dldF90eXBlICgpIild CisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3cgOiBHTGliLk9iamVjdCB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCitAQCAtNTQ3LDYgKzY0Nyw3IEBA IG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0X3Rv X2NsaWVudF9yZWN0IChNZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0KTsKKyAJCXB1YmxpYyBNZXRh LlJlY3RhbmdsZSBnZXRfYnVmZmVyX3JlY3QgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X2NsaWVudF9tYWNoaW5lICgpOworKwkJcHVibGljIE1ldGEuV2luZG93Q2xpZW50VHlwZSBn ZXRfY2xpZW50X3R5cGUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfY29t cG9zaXRvcl9wcml2YXRlICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9kZXNjcmlw dGlvbiAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxheSAoKTsK K0BAIC01NjEsNiArNjYyLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVub3duZWQg c3RyaW5nIGdldF9ndGtfdW5pcXVlX2J1c19uYW1lICgpOworIAkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF9ndGtfd2luZG93X29iamVjdF9wYXRoICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2lj b25fZ2VvbWV0cnkgKG91dCBNZXRhLlJlY3RhbmdsZSByZWN0KTsKKysJCXB1YmxpYyB1aW50NjQg Z2V0X2lkICgpOworIAkJcHVibGljIE1ldGEuU3RhY2tMYXllciBnZXRfbGF5ZXIgKCk7CisgCQlw dWJsaWMgTWV0YS5NYXhpbWl6ZUZsYWdzIGdldF9tYXhpbWl6ZWQgKCk7CisgCQlwdWJsaWMgaW50 IGdldF9tb25pdG9yICgpOworQEAgLTYxMCw4ICs3MTIsNiBAQCBuYW1lc3BhY2UgTWV0YSB7Cisg CQlwdWJsaWMgdm9pZCBtb3ZlX3Jlc2l6ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94 X253LCBpbnQgcm9vdF95X253LCBpbnQgdywgaW50IGgpOworIAkJcHVibGljIHZvaWQgbW92ZV90 b19tb25pdG9yIChpbnQgbW9uaXRvcik7CisgCQlwdWJsaWMgdm9pZCByYWlzZSAoKTsKKy0JCXB1 YmxpYyBib29sIHJlcXVlc3RlZF9ieXBhc3NfY29tcG9zaXRvciAoKTsKKy0JCXB1YmxpYyBib29s IHJlcXVlc3RlZF9kb250X2J5cGFzc19jb21wb3NpdG9yICgpOworIAkJcHVibGljIHZvaWQgc2V0 X2NvbXBvc2l0b3JfcHJpdmF0ZSAoR0xpYi5PYmplY3QgcHJpdik7CisgCQlwdWJsaWMgdm9pZCBz ZXRfZGVtYW5kc19hdHRlbnRpb24gKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfaWNvbl9nZW9tZXRy eSAoTWV0YS5SZWN0YW5nbGU/IHJlY3QpOworQEAgLTY3MiwyNCArNzcyLDI1IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93biAoKTsKKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgdW5tYW5hZ2Vk ICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHVubWFuYWdpbmcgKCk7CisgCQlwdWJsaWMgc2ln bmFsIHZvaWQgd29ya3NwYWNlX2NoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5k b3dfYWN0b3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdpbmRvd0FjdG9yIDogQ2x1 dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIu Q29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworKwlwdWJsaWMgYWJzdHJhY3QgY2xhc3Mg V2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5p bWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgV2luZG93 QWN0b3IgKCk7CisrCQlwdWJsaWMgdm9pZCBmcmVlemUgKCk7CisrCQlwdWJsaWMgQ2Fpcm8uU3Vy ZmFjZT8gZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQ/IGNsaXApOworIAkJcHVibGljIHVu b3duZWQgTWV0YS5XaW5kb3cgZ2V0X21ldGFfd2luZG93ICgpOworLQkJcHVibGljIHVub3duZWQg Q2x1dHRlci5BY3RvciBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeF93 aW5kb3cgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBNZXRhLlNoYXBlZFRleHR1cmUgZ2V0X3RleHR1 cmUgKCk7CisgCQlwdWJsaWMgYm9vbCBpc19kZXN0cm95ZWQgKCk7CisgCQlwdWJsaWMgdm9pZCBz eW5jX3Zpc2liaWxpdHkgKCk7CisrCQlwdWJsaWMgdm9pZCB0aGF3ICgpOworIAkJcHVibGljIE1l dGEuV2luZG93IG1ldGFfd2luZG93IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIHN0cmluZyBzaGFkb3dfY2xhc3MgeyBvd25lZCBnZXQ7IHNldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5TaGFkb3dNb2RlIHNoYWRv d19tb2RlIHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkYW1hZ2VkICgpOwor IAkJcHVibGljIHNpZ25hbCB2b2lkIGVmZmVjdHNfY29tcGxldGVkICgpOworIAkJcHVibGljIHNp Z25hbCB2b2lkIGZpcnN0X2ZyYW1lICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHRoYXdlZCAo KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19ncm91cF9nZXRfdHlwZSAoKSIpXQorIAlw dWJsaWMgY2xhc3MgV2luZG93R3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3Is IENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJs ZSB7CitAQCAtNzIwLDcgKzgyMSw5IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBNZXRh LlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2Zvcl9tb25pdG9yIChpbnQgd2hpY2hfbW9uaXRvcik7 CisgCQlwdWJsaWMgaW50IGluZGV4ICgpOworIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIE1ldGEu V2luZG93PiBsaXN0X3dpbmRvd3MgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfYnVpbHRpbl9zdHJ1 dHMgKEdMaWIuU0xpc3Q8TWV0YS5TdHJ1dD4gc3RydXRzKTsKKysJCXB1YmxpYyB2b2lkIHNldF9i dWlsdGluX3N0cnV0cyAoR0xpYi5TTGlzdDxNZXRhLlN0cnV0Pz4gc3RydXRzKTsKKysJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGJvb2wgYWN0aXZlIHsgZ2V0OyB9CisgCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKyAJCXB1YmxpYyB1aW50IG5fd2luZG93cyB7IGdldDsgfQorIAkJW05vQWNj ZXNzb3JNZXRob2RdCitAQCAtNzM2LDI3ICs4MzksMzMgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJ cHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X2FjdGl2ZV93b3Jrc3BhY2UgKCk7Cisg CQlwdWJsaWMgaW50IGdldF9hY3RpdmVfd29ya3NwYWNlX2luZGV4ICgpOworIAkJcHVibGljIGlu dCBnZXRfbl93b3Jrc3BhY2VzICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2Ug Z2V0X3dvcmtzcGFjZV9ieV9pbmRleCAoaW50IGluZGV4KTsKKysJCXB1YmxpYyB1bm93bmVkIE1l dGEuV29ya3NwYWNlPyBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOworIAkJcHVi bGljIHZvaWQgb3ZlcnJpZGVfd29ya3NwYWNlX2xheW91dCAoTWV0YS5EaXNwbGF5Q29ybmVyIHN0 YXJ0aW5nX2Nvcm5lciwgYm9vbCB2ZXJ0aWNhbF9sYXlvdXQsIGludCBuX3Jvd3MsIGludCBuX2Nv bHVtbnMpOworIAkJcHVibGljIHZvaWQgcmVtb3ZlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ug d29ya3NwYWNlLCB1aW50MzIgdGltZXN0YW1wKTsKKysJCXB1YmxpYyB2b2lkIHJlb3JkZXJfd29y a3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIGludCBuZXdfaW5kZXgpOworKwkJW05v QWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgaW50IGxheW91dF9jb2x1bW5zIHsgZ2V0OyB9Cisr CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBpbnQgbGF5b3V0X3Jvd3MgeyBnZXQ7IH0K KyAJCXB1YmxpYyBpbnQgbl93b3Jrc3BhY2VzIHsgZ2V0OyB9CisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgYWN0aXZlX3dvcmtzcGFjZV9jaGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHNo b3dpbmdfZGVza3RvcF9jaGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFj ZV9hZGRlZCAoaW50IG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3Jl bW92ZWQgKGludCBvYmplY3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9zd2l0 Y2hlZCAoaW50IG9iamVjdCwgaW50IHAwLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBwMSk7CisrCQlw dWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlc19yZW9yZGVyZWQgKCk7CisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS14MTEtZGlzcGxheS5oIiwgdHlwZV9pZCA9 ICJtZXRhX3gxMV9kaXNwbGF5X2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBYMTFEaXNw bGF5IDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorIAkJcHJvdGVjdGVkIFgxMURpc3BsYXkgKCk7CistCQlwdWJsaWMgdm9pZCBmb2N1 c190aGVfbm9fZm9jdXNfd2luZG93ICh1aW50MzIgdGltZXN0YW1wKTsKKysJCXB1YmxpYyB2b2lk IGNsZWFyX3N0YWdlX2lucHV0X3JlZ2lvbiAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2RhbWFnZV9l dmVudF9iYXNlICgpOworIAkJcHVibGljIGludCBnZXRfc2NyZWVuX251bWJlciAoKTsKKyAJCXB1 YmxpYyBpbnQgZ2V0X3NoYXBlX2V2ZW50X2Jhc2UgKCk7CisgCQlwdWJsaWMgYm9vbCBoYXNfc2hh cGUgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY21fc2VsZWN0aW9uICgpOworLQkJcHVibGljIHZv aWQgc2V0X2lucHV0X2ZvY3VzX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBib29sIGZvY3Vz X2ZyYW1lLCB1aW50MzIgdGltZXN0YW1wKTsKKysJCXB1YmxpYyB2b2lkIHNldF9zdGFnZV9pbnB1 dF9yZWdpb24gKFguWHNlcnZlclJlZ2lvbiByZWdpb24pOworIAkJcHVibGljIGJvb2wgeHdpbmRv d19pc19hX25vX2ZvY3VzX3dpbmRvdyAoWC5XaW5kb3cgeHdpbmRvdyk7CisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCIsIHR5cGVfY25h bWUgPSAiTWV0YUNsb3NlRGlhbG9nSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJtZXRhX2Nsb3NlX2Rp YWxvZ19nZXRfdHlwZSAoKSIpXQorQEAgLTc3OSwyNCArODg4LDI0IEBAIG5hbWVzcGFjZSBNZXRh IHsKKyAJCVtIYXNFbWl0dGVyXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIHJlc3BvbnNlIChNZXRh LkluaGliaXRTaG9ydGN1dHNEaWFsb2dSZXNwb25zZSByZXNwb25zZSk7CisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgQnV0dG9uTGF5b3V0IHsKKyAJCVtDQ29kZSAo YXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlv biBsZWZ0X2J1dHRvbnNbNV07CisrCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIGxl ZnRfYnV0dG9uc1s0XTsKKyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVi bGljIHdlYWsgYm9vbCBsZWZ0X2J1dHRvbnNfaGFzX3NwYWNlcls1XTsKKysJCXB1YmxpYyB3ZWFr IGJvb2wgbGVmdF9idXR0b25zX2hhc19zcGFjZXJbNF07CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0KKy0JCXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gcmlnaHRfYnV0 dG9uc1s1XTsKKysJCXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gcmlnaHRfYnV0dG9u c1s0XTsKKyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsg Ym9vbCByaWdodF9idXR0b25zX2hhc19zcGFjZXJbNV07CisrCQlwdWJsaWMgd2VhayBib29sIHJp Z2h0X2J1dHRvbnNfaGFzX3NwYWNlcls0XTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9ib3hlcy5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlw dWJsaWMgc3RydWN0IEVkZ2UgeworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHJlY3Q7CisgCQlw dWJsaWMgTWV0YS5TaWRlIHNpZGVfdHlwZTsKKyAJCXB1YmxpYyBNZXRhLkVkZ2VUeXBlIGVkZ2Vf dHlwZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBGcmFtZUJv cmRlcnMgeworIAkJcHVibGljIEd0ay5Cb3JkZXIgdmlzaWJsZTsKKyAJCXB1YmxpYyBHdGsuQm9y ZGVyIGludmlzaWJsZTsKK0BAIC04MTEsMTQgKzkyMCwxNCBAQCBuYW1lc3BhY2UgTWV0YSB7Cisg CQlwdWJsaWMgd2VhayBzdHJpbmcgbGljZW5zZTsKKyAJCXB1YmxpYyB3ZWFrIHN0cmluZyBkZXNj cmlwdGlvbjsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBs dWdpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0 IFBsdWdpblZlcnNpb24geworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9tYWpvcjsKKyAJCXB1Ymxp YyB1aW50IHZlcnNpb25fbWlub3I7CisgCQlwdWJsaWMgdWludCB2ZXJzaW9uX21pY3JvOworIAkJ cHVibGljIHVpbnQgdmVyc2lvbl9hcGk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYm94ZXMuaCIsIHR5cGVfaWQgPSAibWV0YV9yZWN0YW5nbGVfZ2V0X3R5cGUgKCki KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29weV9mdW5j dGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5 cGVfaWQgPSAibWV0YV9yZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIHN0cnVjdCBS ZWN0YW5nbGUgeworIAkJcHVibGljIGludCB4OworIAkJcHVibGljIGludCB5OworQEAgLTgzNiw3 ICs5NDUsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgdW5p b24gKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKyAJCXB1YmxpYyBib29sIHZlcnRfb3ZlcmxhcCAo TWV0YS5SZWN0YW5nbGUgcmVjdDIpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKyAJcHVibGljIHN0cnVjdCBTaGFkb3dQYXJhbXMgeworIAkJcHVibGljIGludCByYWRp dXM7CisgCQlwdWJsaWMgaW50IHRvcF9mYWRlOworQEAgLTg0NCwxMiArOTUzLDEyIEBAIG5hbWVz cGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBpbnQgeV9vZmZzZXQ7CisgCQlwdWJsaWMgdWludDggb3Bh Y2l0eTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IFN0cnV0IHsK KyAJCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSByZWN0OworIAkJcHVibGljIE1ldGEuU2lkZSBzaWRl OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCIsIGNw cmVmaXggPSAiTUVUQV9CQVJSSUVSX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYmFycmll cl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0JBUlJJRVJfRElSRUNUSU9OXyIsIHR5cGVf aWQgPSAibWV0YV9iYXJyaWVyX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisg CXB1YmxpYyBlbnVtIEJhcnJpZXJEaXJlY3Rpb24geworIAkJUE9TSVRJVkVfWCwKK0BAIC04NTcs MjEgKzk2NiwyMCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlORUdBVElWRV9YLAorIAkJTkVHQVRJ VkVfWQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX0JVVFRPTl9GVU5DVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYnV0dG9u X2Z1bmN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9CVVRUT05fRlVOQ1RJT05fIiwgdHlwZV9pZCA9 ICJtZXRhX2J1dHRvbl9mdW5jdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBCdXR0 b25GdW5jdGlvbiB7CisgCQlNRU5VLAorIAkJTUlOSU1JWkUsCisgCQlNQVhJTUlaRSwKKyAJCUNM T1NFLAorLQkJQVBQTUVOVSwKKyAJCUxBU1QKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oIiwgY3ByZWZpeCA9ICJNRVRBX0NMT1NFX0RJ QUxPR19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX3Jlc3BvbnNlX2dl dF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNwcmVmaXggPSAiTUVUQV9DTE9TRV9ESUFMT0dfUkVTUE9OU0VfIiwgdHlwZV9pZCA9ICJtZXRh X2Nsb3NlX2RpYWxvZ19yZXNwb25zZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBDbG9z ZURpYWxvZ1Jlc3BvbnNlIHsKKyAJCVdBSVQsCisgCQlGT1JDRV9DTE9TRQorIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3IuaCIsIGNwcmVmaXggPSAiTUVU QV9DT01QX0VGRkVDVF8iLCB0eXBlX2lkID0gIm1ldGFfY29tcF9lZmZlY3RfZ2V0X3R5cGUgKCki KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9 ICJNRVRBX0NPTVBfRUZGRUNUXyIsIHR5cGVfaWQgPSAibWV0YV9jb21wX2VmZmVjdF9nZXRfdHlw ZSAoKSIpXQorIAlwdWJsaWMgZW51bSBDb21wRWZmZWN0IHsKKyAJCUNSRUFURSwKKyAJCVVOTUlO SU1JWkUsCitAQCAtODc5LDcgKzk4Nyw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCU1JTklNSVpF LAorIAkJTk9ORQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1v bi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NVUlNPUl8iLCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX2dl dF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNwcmVmaXggPSAiTUVUQV9DVVJTT1JfIiwgdHlwZV9pZCA9ICJtZXRhX2N1cnNvcl9nZXRfdHlw ZSAoKSIpXQorIAlwdWJsaWMgZW51bSBDdXJzb3IgeworIAkJTk9ORSwKKyAJCURFRkFVTFQsCitA QCAtOTAwLDkgKzEwMDgsMTAgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJUE9JTlRJTkdfSEFORCwK KyAJCUNST1NTSEFJUiwKKyAJCUlCRUFNLAorKwkJQkxBTkssCisgCQlMQVNUCisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZpeCA9ICJNRVRBX0RF QlVHXyIsIHR5cGVfaWQgPSAibWV0YV9kZWJ1Z190b3BpY19nZXRfdHlwZSAoKSIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfREVC VUdfIiwgdHlwZV9pZCA9ICJtZXRhX2RlYnVnX3RvcGljX2dldF90eXBlICgpIildCisgCVtGbGFn c10KKyAJcHVibGljIGVudW0gRGVidWdUb3BpYyB7CisgCQlWRVJCT1NFLAorQEAgLTkyOCw5ICsx MDM3LDEwIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCVNIQVBFUywKKyAJCUNPTVBPU0lUT1IsCisg CQlFREdFX1JFU0lTVEFOQ0UsCistCQlEQlVTCisrCQlEQlVTLAorKwkJSU5QVVQKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVU QV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1F VEFfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0K KyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBEaXJlY3Rpb24geworIAkJTEVGVCwKK0BAIC05NDIs MjEgKzEwNTIsMjEgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJSE9SSVpPTlRBTCwKKyAJCVZFUlRJ Q0FMCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwg Y3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfY29ybmVy X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNwcmVmaXggPSAiTUVUQV9ESVNQTEFZXyIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2Nv cm5lcl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBEaXNwbGF5Q29ybmVyIHsKKyAJCVRP UExFRlQsCisgCQlUT1BSSUdIVCwKKyAJCUJPVFRPTUxFRlQsCisgCQlCT1RUT01SSUdIVAorIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIGNwcmVmaXgg PSAiTUVUQV9ESVNQTEFZXyIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2RpcmVjdGlvbl9nZXRf dHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj cHJlZml4ID0gIk1FVEFfRElTUExBWV8iLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9kaXJlY3Rp b25fZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gRGlzcGxheURpcmVjdGlvbiB7CisgCQlV UCwKKyAJCURPV04sCisgCQlMRUZULAorIAkJUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgY3ByZWZpeCA9ICJNRVRBX0VER0VfIiwgdHlwZV9p ZCA9ICJtZXRhX2VkZ2VfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfRURHRV8iLCB0eXBlX2lkID0g Im1ldGFfZWRnZV90eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEVkZ2VUeXBlIHsK KyAJCVdJTkRPVywKKyAJCU1PTklUT1IsCitAQCAtOTY3LDEyICsxMDc3LDExIEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCVNVQ0NFU1MsCisgCQlFUlJPUgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FXyIsIHR5cGVf aWQgPSAibWV0YV9mcmFtZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9p ZCA9ICJtZXRhX2ZyYW1lX2ZsYWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGlj IGVudW0gRnJhbWVGbGFncyB7CisgCQlBTExPV1NfREVMRVRFLAorIAkJQUxMT1dTX01FTlUsCist CQlBTExPV1NfQVBQTUVOVSwKKyAJCUFMTE9XU19NSU5JTUlaRSwKKyAJCUFMTE9XU19NQVhJTUla RSwKKyAJCUFMTE9XU19WRVJUSUNBTF9SRVNJWkUsCitAQCAtOTg0LDEyICsxMDkzLDExIEBAIG5h bWVzcGFjZSBNZXRhIHsKKyAJCUFMTE9XU19TSEFERSwKKyAJCUFMTE9XU19NT1ZFLAorIAkJRlVM TFNDUkVFTiwKKy0JCUlTX0ZMQVNISU5HLAorIAkJQUJPVkUsCisgCQlUSUxFRF9MRUZULAorIAkJ VElMRURfUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21t b24uaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFt ZV90eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV9m cmFtZV90eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEZyYW1lVHlwZSB7CisgCQlO T1JNQUwsCisgCQlESUFMT0csCitAQCAtMTAwMSw3ICsxMTA5LDcgQEAgbmFtZXNwYWNlIE1ldGEg eworIAkJTEFTVDsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0g Ik1FVEFfR1JBQl9PUF8iLCB0eXBlX2lkID0gIm1ldGFfZ3JhYl9vcF9nZXRfdHlwZSAoKSIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1F VEFfR1JBQl9PUF8iLCB0eXBlX2lkID0gIm1ldGFfZ3JhYl9vcF9nZXRfdHlwZSAoKSIpXQorIAlw dWJsaWMgZW51bSBHcmFiT3AgeworIAkJTk9ORSwKKyAJCVdJTkRPV19CQVNFLAorQEAgLTEwMjgs MTIgKzExMzYsMjYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJS0VZQk9BUkRfUkVTSVpJTkdfU0Us CisgCQlLRVlCT0FSRF9SRVNJWklOR19XCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCIsIGNwcmVmaXggPSAiTUVU QV9JTkhJQklUX1NIT1JUQ1VUU19ESUFMT0dfUkVTUE9OU0VfIiwgdHlwZV9pZCA9ICJtZXRhX2lu aGliaXRfc2hvcnRjdXRzX2RpYWxvZ19yZXNwb25zZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfR1JBVklU WV8iLCB0eXBlX2lkID0gIm1ldGFfZ3Jhdml0eV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51 bSBHcmF2aXR5IHsKKysJCU5PTkUsCisrCQlOT1JUSF9XRVNULAorKwkJTk9SVEgsCisrCQlOT1JU SF9FQVNULAorKwkJV0VTVCwKKysJCUNFTlRFUiwKKysJCUVBU1QsCisrCQlTT1VUSF9XRVNULAor KwkJU09VVEgsCisrCQlTT1VUSF9FQVNULAorKwkJU1RBVElDCisrCX0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0lOSElCSVRfU0hP UlRDVVRTX0RJQUxPR19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfaW5oaWJpdF9zaG9ydGN1 dHNfZGlhbG9nX3Jlc3BvbnNlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEluaGliaXRT aG9ydGN1dHNEaWFsb2dSZXNwb25zZSB7CisgCQlBTExPVywKKyAJCURFTlkKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY3ByZWZpeCA9ICJNRVRBX0tF WUJJTkRJTkdfQUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19hY3Rpb25fZ2V0 X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX0tFWUJJTkRJTkdfQUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlf YmluZGluZ19hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gS2V5QmluZGluZ0Fj dGlvbiB7CisgCQlOT05FLAorIAkJV09SS1NQQUNFXzEsCitAQCAtMTEyMiwyMiArMTI0NCwyNSBA QCBuYW1lc3BhY2UgTWV0YSB7CisgCQlNT1ZFX1RPX1NJREVfVywKKyAJCU1PVkVfVE9fQ0VOVEVS LAorIAkJT1ZFUkxBWV9LRVksCisrCQlMT0NBVEVfUE9JTlRFUl9LRVksCisgCQlJU09fTkVYVF9H Uk9VUCwKKyAJCUFMV0FZU19PTl9UT1AsCisgCQlTV0lUQ0hfTU9OSVRPUiwKKyAJCVJPVEFURV9N T05JVE9SLAorIAkJTEFTVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZX0JJTkRJTkdfIiwgdHlwZV9pZCA9ICJtZXRh X2tleV9iaW5kaW5nX2ZsYWdzX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlfQklORElOR18iLCB0eXBl X2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQor IAlwdWJsaWMgZW51bSBLZXlCaW5kaW5nRmxhZ3MgeworIAkJTk9ORSwKKyAJCVBFUl9XSU5ET1cs CisgCQlCVUlMVElOLAorIAkJSVNfUkVWRVJTRUQsCistCQlOT05fTUFTS0FCTEUKKysJCU5PTl9N QVNLQUJMRSwKKysJCUlHTk9SRV9BVVRPUkVQRUFULAorKwkJTk9fQVVUT19HUkFCCisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY3ByZWZpeCA9ICJNRVRB X0xBVEVSXyIsIHR5cGVfaWQgPSAibWV0YV9sYXRlcl90eXBlX2dldF90eXBlICgpIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9M QVRFUl8iLCB0eXBlX2lkID0gIm1ldGFfbGF0ZXJfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJs aWMgZW51bSBMYXRlclR5cGUgeworIAkJUkVTSVpFLAorIAkJQ0FMQ19TSE9XSU5HLAorQEAgLTEx NDYsMjUgKzEyNzEsMjUgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJQkVGT1JFX1JFRFJBVywKKyAJ CUlETEUKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBj cHJlZml4ID0gIk1FVEFfTE9DQUxFX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbG9jYWxl X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfTE9DQUxFX0RJUkVDVElPTl8iLCB0eXBlX2lk ID0gIm1ldGFfbG9jYWxlX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBM b2NhbGVEaXJlY3Rpb24geworIAkJTFRSLAorIAkJUlRMCisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBjcHJlZml4ID0gIk1FVEFfTUFYSU1JWkVfIiwg dHlwZV9pZCA9ICJtZXRhX21heGltaXplX2ZsYWdzX2dldF90eXBlICgpIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9NQVhJTUla RV8iLCB0eXBlX2lkID0gIm1ldGFfbWF4aW1pemVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0Zs YWdzXQorIAlwdWJsaWMgZW51bSBNYXhpbWl6ZUZsYWdzIHsKKyAJCUhPUklaT05UQUwsCisgCQlW RVJUSUNBTCwKKyAJCUJPVEgKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tZXRhLXBsdWdpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX01PREFMXyIsIHR5cGVfaWQgPSAibWV0 YV9tb2RhbF9vcHRpb25zX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9NT0RBTF8iLCB0eXBlX2lkID0gIm1l dGFfbW9kYWxfb3B0aW9uc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVt IE1vZGFsT3B0aW9ucyB7CisgCQlQT0lOVEVSX0FMUkVBRFlfR1JBQkJFRCwKKyAJCUtFWUJPQVJE X0FMUkVBRFlfR1JBQkJFRAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9OSVRPUl9TV0lUQ0hf Q09ORklHXyIsIHR5cGVfaWQgPSAibWV0YV9tb25pdG9yX3N3aXRjaF9jb25maWdfdHlwZV9nZXRf dHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj cHJlZml4ID0gIk1FVEFfTU9OSVRPUl9TV0lUQ0hfQ09ORklHXyIsIHR5cGVfaWQgPSAibWV0YV9t b25pdG9yX3N3aXRjaF9jb25maWdfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBN b25pdG9yU3dpdGNoQ29uZmlnVHlwZSB7CisgCQlBTExfTUlSUk9SLAorIAkJQUxMX0xJTkVBUiwK K0BAIC0xMTcyLDcgKzEyOTcsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlCVUlMVElOLAorIAkJ VU5LTk9XTgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5o IiwgY3ByZWZpeCA9ICJNRVRBX01PVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbW90aW9uX2RpcmVj dGlvbl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9USU9OXyIsIHR5cGVfaWQgPSAibWV0YV9tb3Rpb25f ZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIE1vdGlvbkRpcmVjdGlvbiB7 CisgCQlVUCwKKyAJCURPV04sCitAQCAtMTE4Myw3ICsxMzA4LDcgQEAgbmFtZXNwYWNlIE1ldGEg eworIAkJRE9XTl9MRUZULAorIAkJRE9XTl9SSUdIVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIGNwcmVmaXggPSAiTUVUQV9QQURfQUNUSU9OXyIs IHR5cGVfaWQgPSAibWV0YV9wYWRfYWN0aW9uX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1BBRF9B Q1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX3BhZF9hY3Rpb25fdHlwZV9nZXRfdHlwZSAoKSIpXQor IAlwdWJsaWMgZW51bSBQYWRBY3Rpb25UeXBlIHsKKyAJCUJVVFRPTiwKKyAJCVJJTkcsCitAQCAt MTIyMywzMCArMTM0OCwzOSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlEUkFHR0FCTEVfQk9SREVS X1dJRFRILAorIAkJQVVUT19NQVhJTUlaRSwKKyAJCUNFTlRFUl9ORVdfV0lORE9XUywKKy0JCURS QUdfVEhSRVNIT0xEOworKwkJRFJBR19USFJFU0hPTEQsCisrCQlMT0NBVEVfUE9JTlRFUiwKKysJ CUNIRUNLX0FMSVZFX1RJTUVPVVQ7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5n ICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgiLCBjcHJlZml4ID0gIk1FVEFfU0hBRE9XX01PREVfIiwgdHlwZV9pZCA9ICJtZXRh X3NoYWRvd19tb2RlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV8iLCB0eXBlX2lkID0gIm1ldGFfc2VsZWN0 aW9uX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGVudW0gU2VsZWN0aW9uVHlwZSB7Cisr CQlTRUxFQ1RJT05fUFJJTUFSWSwKKysJCVNFTEVDVElPTl9DTElQQk9BUkQsCisrCQlTRUxFQ1RJ T05fRE5ELAorKwkJTl9TRUxFQ1RJT05fVFlQRVMKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfU0hBRE9XX01PREVfIiwgdHlw ZV9pZCA9ICJtZXRhX3NoYWRvd19tb2RlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFNo YWRvd01vZGUgeworIAkJQVVUTywKKyAJCUZPUkNFRF9PRkYsCisgCQlGT1JDRURfT04KKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAi TUVUQV9TSURFXyIsIHR5cGVfaWQgPSAibWV0YV9zaWRlX2dldF90eXBlICgpIildCisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9TSURF XyIsIHR5cGVfaWQgPSAibWV0YV9zaWRlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFNp ZGUgeworIAkJTEVGVCwKKyAJCVJJR0hULAorIAkJVE9QLAorIAkJQk9UVE9NCisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci5oIiwgY3ByZWZpeCA9ICJN RVRBX1NJWkVfQ0hBTkdFXyIsIHR5cGVfaWQgPSAibWV0YV9zaXplX2NoYW5nZV9nZXRfdHlwZSAo KSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4 ID0gIk1FVEFfU0laRV9DSEFOR0VfIiwgdHlwZV9pZCA9ICJtZXRhX3NpemVfY2hhbmdlX2dldF90 eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFNpemVDaGFuZ2UgeworIAkJTUFYSU1JWkUsCisgCQlV Tk1BWElNSVpFLAorIAkJRlVMTFNDUkVFTiwKKyAJCVVORlVMTFNDUkVFTgorIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xB WUVSXyIsIHR5cGVfaWQgPSAibWV0YV9zdGFja19sYXllcl9nZXRfdHlwZSAoKSIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFZ RVJfIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWNrX2xheWVyX2dldF90eXBlICgpIildCisgCXB1Ymxp YyBlbnVtIFN0YWNrTGF5ZXIgeworIAkJREVTS1RPUCwKKyAJCUJPVFRPTSwKK0BAIC0xMjU2LDE5 ICsxMzkwLDE5IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCU9WRVJSSURFX1JFRElSRUNULAorIAkJ TEFTVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIs IGNwcmVmaXggPSAiTUVUQV9UQUJfTElTVF8iLCB0eXBlX2lkID0gIm1ldGFfdGFiX2xpc3RfZ2V0 X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX1RBQl9MSVNUXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfbGlzdF9nZXRf dHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBUYWJMaXN0IHsKKyAJCU5PUk1BTCwKKyAJCURPQ0tT LAorIAkJR1JPVVAsCisgCQlOT1JNQUxfQUxMCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVf aWQgPSAibWV0YV90YWJfc2hvd190eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9UQUJfU0hPV18iLCB0 eXBlX2lkID0gIm1ldGFfdGFiX3Nob3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51 bSBUYWJTaG93VHlwZSB7CisgCQlJQ09OLAorIAkJSU5TVEFOVExZCisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfVklSVFVB TF8iLCB0eXBlX2lkID0gIm1ldGFfdmlydHVhbF9tb2RpZmllcl9nZXRfdHlwZSAoKSIpXQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFf VklSVFVBTF8iLCB0eXBlX2lkID0gIm1ldGFfdmlydHVhbF9tb2RpZmllcl9nZXRfdHlwZSAoKSIp XQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIFZpcnR1YWxNb2RpZmllciB7CisgCQlTSElGVF9N QVNLLAorQEAgLTEyODIsMTcgKzE0MTYsMTcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJTU9ENF9N QVNLLAorIAkJTU9ENV9NQVNLCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvd2luZG93LmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX0NMSUVOVF9UWVBFXyIsIHR5cGVf aWQgPSAibWV0YV93aW5kb3dfY2xpZW50X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19D TElFTlRfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2NsaWVudF90eXBlX2dldF90eXBl ICgpIildCisgCXB1YmxpYyBlbnVtIFdpbmRvd0NsaWVudFR5cGUgeworIAkJV0FZTEFORCwKKyAJ CVgxMQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX1dJTkRPV19NRU5VXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfbWVu dV90eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfTUVOVV8iLCB0eXBlX2lkID0gIm1ldGFf d2luZG93X21lbnVfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBXaW5kb3dNZW51 VHlwZSB7CisgCQlXTSwKKyAJCUFQUAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3dpbmRvdy5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV18iLCB0eXBlX2lkID0gIm1l dGFfd2luZG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV18iLCB0eXBlX2lkID0gIm1l dGFfd2luZG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gV2luZG93VHlwZSB7 CisgCQlOT1JNQUwsCisgCQlERVNLVE9QLAorQEAgLTEzMTEsNTEgKzE0NDUsNTcgQEAgbmFtZXNw YWNlIE1ldGEgeworIAkJRE5ELAorIAkJT1ZFUlJJREVfT1RIRVIKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oIiwgaW5zdGFuY2VfcG9z ID0gMi45KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaW5z dGFuY2VfcG9zID0gMi45KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgSWRsZU1vbml0b3JXYXRj aEZ1bmMgKE1ldGEuSWRsZU1vbml0b3IgbW9uaXRvciwgdWludCB3YXRjaF9pZCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBpbnN0YW5jZV9wb3MgPSA0Ljkp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBpbnN0YW5jZV9w b3MgPSA0LjkpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBLZXlIYW5kbGVyRnVuYyAoTWV0YS5E aXNwbGF5IGRpc3BsYXksIE1ldGEuV2luZG93IHdpbmRvdywgW0NDb2RlICh0eXBlID0gIkNsdXR0 ZXJLZXlFdmVudCoiKV0gQ2x1dHRlci5LZXlFdmVudD8gZXZlbnQsIE1ldGEuS2V5QmluZGluZyBi aW5kaW5nKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGlu c3RhbmNlX3BvcyA9IDEuOSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFByZWZz Q2hhbmdlZEZ1bmMgKE1ldGEuUHJlZmVyZW5jZSBwcmVmKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQor IAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBXaW5kb3dGb3JlYWNoRnVuYyAoTWV0YS5XaW5kb3cgd2lu ZG93KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFt ZSA9ICJNRVRBX0NVUlJFTlRfVElNRSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0NVUlJFTlRfVElNRSIpXQorIAlwdWJsaWMgY29u c3QgaW50IENVUlJFTlRfVElNRTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv Y29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX0RFRkFVTFRfSUNPTl9OQU1FIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfREVGQVVMVF9J Q09OX05BTUUiKV0KKyAJcHVibGljIGNvbnN0IHN0cmluZyBERUZBVUxUX0lDT05fTkFNRTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRB X0lDT05fSEVJR0hUIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIk1FVEFfSUNPTl9IRUlHSFQiKV0KKyAJcHVibGljIGNvbnN0IGludCBJQ09O X0hFSUdIVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBj bmFtZSA9ICJNRVRBX0lDT05fV0lEVEgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX1dJRFRIIildCisgCXB1YmxpYyBjb25z dCBpbnQgSUNPTl9XSURUSDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29t bW9uLmgiLCBjbmFtZSA9ICJNRVRBX01BSk9SX1ZFUlNJT04iKV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NQUpPUl9WRVJTSU9OIild CisgCXB1YmxpYyBjb25zdCBpbnQgTUFKT1JfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX01JQ1JPX1ZFUlNJT04iKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVU QV9NSUNST19WRVJTSU9OIildCisgCXB1YmxpYyBjb25zdCBpbnQgTUlDUk9fVkVSU0lPTjsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRB X01JTklfSUNPTl9IRUlHSFQiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fSEVJR0hUIildCisgCXB1YmxpYyBjb25z dCBpbnQgTUlOSV9JQ09OX0hFSUdIVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9XSURUSCIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNP Tl9XSURUSCIpXQorIAlwdWJsaWMgY29uc3QgaW50IE1JTklfSUNPTl9XSURUSDsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX01JTk9S X1ZFUlNJT04iKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y25hbWUgPSAiTUVUQV9NSU5PUl9WRVJTSU9OIildCisgCXB1YmxpYyBjb25zdCBpbnQgTUlOT1Jf VkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBj bmFtZSA9ICJNRVRBX1BMVUdJTl9BUElfVkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BMVUdJTl9BUElfVkVSU0lPTiIp XQorIAlwdWJsaWMgY29uc3QgaW50IFBMVUdJTl9BUElfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX0JF Rk9SRV9SRURSQVciKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9CRUZPUkVfUkVEUkFXIildCisgCXB1YmxpYyBjb25z dCBpbnQgUFJJT1JJVFlfQkVGT1JFX1JFRFJBVzsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1BSRUZTX05PVElGWSIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJN RVRBX1BSSU9SSVRZX1BSRUZTX05PVElGWSIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZ X1BSRUZTX05PVElGWTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9u LmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1JFRFJBVyIpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1JFRFJBVyIp XQorIAlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJBVzsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1JFU0la RSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9 ICJNRVRBX1BSSU9SSVRZX1JFU0laRSIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JF U0laRTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFt ZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9LRVlCT0FSRF9JRCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9LRVlC T0FSRF9JRCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFZJUlRVQUxfQ09SRV9LRVlCT0FSRF9JRDsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjbmFtZSA9ICJN RVRBX1ZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX1BPSU5URVJfSUQi KV0KKyAJcHVibGljIGNvbnN0IGludCBWSVJUVUFMX0NPUkVfUE9JTlRFUl9JRDsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9v bCBhY3RpdmF0ZV9zZXNzaW9uICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIGFkZF9jbHV0dGVyX2RlYnVnX2ZsYWdz IChDbHV0dGVyLkRlYnVnRmxhZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5EcmF3RGVidWdGbGFnIGRy YXdfZmxhZ3MsIENsdXR0ZXIuUGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdzKTsKKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCBj bHV0dGVyX2luaXQgKCk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZXhpdCAoTWV0YS5FeGl0Q29kZSBjb2RlKTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBzdGF0 aWMgc3RyaW5nIGdfdXRmOF9zdHJuZHVwIChzdHJpbmcgc3JjLCBzaXplX3Qgbik7CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHVu b3duZWQgR0xpYi5PcHRpb25Db250ZXh0IGdldF9vcHRpb25fY29udGV4dCAoKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9v bCBnZXRfcmVwbGFjZV9jdXJyZW50X3dtICgpOworQEAgLTEzNjgsNiArMTUwOCw4IEBAIG5hbWVz cGFjZSBNZXRhIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIild CisgCXB1YmxpYyBzdGF0aWMgdm9pZCByZWdpc3Rlcl93aXRoX3Nlc3Npb24gKCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZv aWQgcmVtb3ZlX2NsdXR0ZXJfZGVidWdfZmxhZ3MgKENsdXR0ZXIuRGVidWdGbGFnIGRlYnVnX2Zs YWdzLCBDbHV0dGVyLkRyYXdEZWJ1Z0ZsYWcgZHJhd19mbGFncywgQ2x1dHRlci5QaWNrRGVidWdG bGFnIHBpY2tfZmxhZ3MpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHJlc3RhcnQgKHN0cmluZz8gbWVzc2FnZSk7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3Rh dGljIGludCBydW4gKCk7CitAQCAtMTM3NSw2ICsxNTE3LDE0IEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJcHVibGljIHN0YXRpYyB2b2lkIHNldF9nbm9tZV93bV9rZXliaW5kaW5ncyAoc3RyaW5nIHdt X2tleWJpbmRpbmdzKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfd21fbmFtZSAoc3RyaW5nIHdtX25hbWUpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgiKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBz dGF0aWMgdm9pZCB0ZXN0X2luaXQgKCk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgeDExX2luaXRfZ2RrX2Rpc3BsYXkg KCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgfQorK1tDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJs aWJtdXR0ZXItNy1jdXN0b20uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorK3B1YmxpYyBzdHJ1 Y3QgYmVmb3JlX2ZyYW1lIHsKKyt9CisrW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImxpYm11 dHRlci03LWN1c3RvbS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrcHVibGljIHN0cnVjdCBm cmFtZSB7CisrfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci1jb2dsLTQudmFwaSB2YXBpL2xp Ym11dHRlci1jb2dsLTQudmFwaQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCA3ZGMx ODQ3Ni4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci1jb2dsLTQudmFwaQorKysrIC9kZXYv bnVsbAorQEAgLTEsMTI3MiArMCwwIEBACistLyogbGlibXV0dGVyLWNvZ2wtNC52YXBpIGdlbmVy YXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworLQorLVtDQ29kZSAoY3ByZWZpeCA9 ICJDb2dsIiwgZ2lyX25hbWVzcGFjZSA9ICJDb2dsIiwgZ2lyX3ZlcnNpb24gPSAiNCIsIGxvd2Vy X2Nhc2VfY3ByZWZpeCA9ICJjb2dsXyIpXQorLW5hbWVzcGFjZSBDb2dsIHsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2JpdG1hcF9n ZXRfZ3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJpdG1hcCA6IENvZ2wuT2JqZWN0IHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBC aXRtYXAgKCk7CistCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBCaXRtYXAuZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUp IHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyBDb2dsLlBpeGVsRm9ybWF0IGdldF9mb3JtYXQgKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIGludCBnZXRfaGVpZ2h0ICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3Jvd3N0cmlkZSAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9zaXpl X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdo dCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGludCBnZXRfd2lk dGggKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgRXVsZXIg eworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlf ZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUi LCB0eXBlX2lkID0gImNvZ2xfZnJhbWVfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKy0JW0NvbXBh Y3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCXB1YmxpYyBjbGFzcyBGcmFtZUNs b3N1cmUgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVk X2ZyZWUiLCB0eXBlX2lkID0gImNvZ2xfbWF0ZXJpYWxfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBh Y3RdCistCXB1YmxpYyBjbGFzcyBNYXRlcmlhbCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIE1hdGVyaWFsICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsIGNvcHkgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgZm9yZWFjaF9sYXllciAoQ29nbC5NYXRlcmlhbExheWVyQ2Fs bGJhY2sgY2FsbGJhY2spOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9h bWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyBDb2dsLkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBnZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2xheWVyX3BvaW50X3Nwcml0 ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCist CQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcCAoaW50 IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlh bFdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF9sYXllcl93 cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4KTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuTGlz dDxDb2dsLk1hdGVyaWFsTGF5ZXI+IGdldF9sYXllcnMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIGludCBnZXRfbl9sYXllcnMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIGZsb2F0IGdldF9wb2ludF9zaXplICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyBmbG9hdCBnZXRfc2hpbmluZXNzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuSGFuZGxlIEByZWYgKENvZ2wuSGFuZGxlIG1h dGVyaWFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfbGF5ZXIgKGludCBsYXllcl9pbmRl eCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhhX3Rlc3RfZnVu Y3Rpb24gKENvZ2wuTWF0ZXJpYWxBbHBoYUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQgYWxwaGFfcmVm ZXJlbmNlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAo Q29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcp IHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9ibGVuZF9jb25zdGFudCAoQ29nbC5Db2xvciBjb25zdGFudF9jb2xvcik7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0ZiAoZmxvYXQgcmVkLCBm bG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcjR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWlu dDggYmx1ZSwgdWludDggYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyIChpbnQgbGF5ZXJfaW5kZXgsIENv Z2wuSGFuZGxlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJv b2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmlu ZykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2xheWVyX2NvbWJpbmVfY29uc3RhbnQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Db2xvciBj b25zdGFudCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX2ZpbHRlcnMgKGludCBsYXll cl9pbmRleCwgQ29nbC5NYXRlcmlhbEZpbHRlciBtaW5fZmlsdGVyLCBDb2dsLk1hdGVyaWFsRmls dGVyIG1hZ19maWx0ZXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXRyaXggKGlu dCBsYXllcl9pbmRleCwgQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQg KGludCBsYXllcl9pbmRleCwgQ29nbC5Cb29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50 IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5k ZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5N YXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3Jh cE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3BvaW50 X3NpemUgKGZsb2F0IHBvaW50X3NpemUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9zaGluaW5lc3MgKGZsb2F0IHNoaW5pbmVzcyk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlcl9wcm9ncmFtIChDb2dsLkhhbmRs ZSBwcm9ncmFtKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB1bnJl ZiAoQ29nbC5IYW5kbGUgbWF0ZXJpYWwpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0J cHVibGljIGNsYXNzIE1hdGVyaWFsTGF5ZXIgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFs RmlsdGVyIGdldF9tYWdfZmlsdGVyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsRmls dGVyIGdldF9taW5fZmlsdGVyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLkhhbmRsZSBnZXRfdGV4 dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbExheWVyVHlwZSBnZXRfdHlwZSAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdl dF93cmFwX21vZGVfcCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5NYXRl cmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF93cmFwX21vZGVfdCAoKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xf b2JqZWN0X2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgT2JqZWN0IHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3Rl ZCBPYmplY3QgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgdHlwZV9pZCA9ICJjb2dsX29mZnNjcmVlbl9nZXRfZ3R5cGUgKCkiKV0KKy0JcHVibGlj IGNsYXNzIE9mZnNjcmVlbiA6IENvZ2wuT2JqZWN0LCBDb2dsLkZyYW1lYnVmZmVyIHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBPZmZz Y3JlZW4gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4yIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQqIEByZWYgKHZvaWQqIG9mZnNjcmVl bik7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJ cHVibGljIE9mZnNjcmVlbi50b190ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgdW5yZWYgKHZvaWQqIG9mZnNjcmVlbik7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgT2Zmc2NyZWVuLndp dGhfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9vbnNjcmVlbl9nZXRf Z3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIE9uc2NyZWVuIDogQ29nbC5PYmplY3QsIENvZ2wu RnJhbWVidWZmZXIgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorLQkJcHJvdGVjdGVkIE9uc2NyZWVuICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYi KV0KKy0JCXB1YmxpYyBDb2dsLk9uc2NyZWVuRGlydHlDbG9zdXJlIGFkZF9kaXJ0eV9jYWxsYmFj ayAoW0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlbkRpcnR5 Q2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuT25zY3JlZW5S ZXNpemVDbG9zdXJlIGFkZF9yZXNpemVfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0 X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5SZXNpemVDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5V c2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyB1aW50IGFkZF9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKENvZ2wuU3dhcEJ1ZmZlcnNO b3RpZnkgY2FsbGJhY2spOworLQkJcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfYmFja2VuZF9z ZXRfc2l6ZV9DTFVUVEVSIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X2J1ZmZlcl9hZ2UgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIGludDY0IGdldF9mcmFtZV9jb3VudGVy ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBn ZXRfcmVzaXphYmxlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgaGlkZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMg dm9pZCByZW1vdmVfZGlydHlfY2FsbGJhY2sgKENvZ2wuT25zY3JlZW5EaXJ0eUNsb3N1cmUgY2xv c3VyZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHZvaWQgcmVt b3ZlX2ZyYW1lX2NhbGxiYWNrIChDb2dsLkZyYW1lQ2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9yZXNpemVfY2FsbGJh Y2sgKENvZ2wuT25zY3JlZW5SZXNpemVDbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfc3dhcF9idWZmZXJzX2NhbGxiYWNrICh1aW50IGlk KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZXNp emFibGUgKENvZ2wuQm9vbCByZXNpemFibGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIHZvaWQgc2hvdyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZlcnMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xNiIpXQorLQkJcHVibGljIHZvaWQgc3dhcF9idWZmZXJzX3dpdGhfZGFtYWdlIChpbnQgcmVj dGFuZ2xlcywgaW50IG5fcmVjdGFuZ2xlcyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIHZvaWQgc3dhcF9yZWdpb24gKGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0 YW5nbGVzKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hl ZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2dsX29uc2NyZWVuX2RpcnR5X2Nsb3N1cmVfZ2V0X2d0eXBl ICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQlwdWJs aWMgY2xhc3MgT25zY3JlZW5EaXJ0eUNsb3N1cmUgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5Iiwg ZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNvZ2xfb25zY3JlZW5f cmVzaXplX2Nsb3N1cmVfZ2V0X2d0eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCXB1YmxpYyBjbGFzcyBPbnNjcmVlblJlc2l6ZUNsb3N1cmUgewor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQg PSAiY29nbF9waXBlbGluZV9nZXRfZ3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFBpcGVsaW5l IDogQ29nbC5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIFBpcGVsaW5lICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmUgY29weSAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfbGF5ZXIgKENvZ2wuUGlwZWxpbmVM YXllckNhbGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyBDb2dsLlBpcGVsaW5lQWxwaGFGdW5jIGdldF9hbHBoYV90ZXN0X2Z1bmN0aW9uICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9hbHBo YV90ZXN0X3JlZmVyZW5jZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIGdldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3JNYXNrIGdldF9j b2xvcl9tYXNrICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENv Z2wuUGlwZWxpbmVDdWxsRmFjZU1vZGUgZ2V0X2N1bGxfZmFjZV9tb2RlICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29s b3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBnZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuV2luZGluZyBnZXRfZnJvbnRfZmFjZV93aW5kaW5n ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVs aW5lRmlsdGVyIGdldF9sYXllcl9tYWdfZmlsdGVyIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lRmlsdGVyIGdl dF9sYXllcl9taW5fZmlsdGVyIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nv b3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfbGF5ZXJfdGV4dHVyZSAo aW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1Ymxp YyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJf aW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuUGlw ZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBN b2RlIGdldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X25fbGF5ZXJzICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfcGVyX3ZlcnRl eF9wb2ludF9zaXplICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IGZsb2F0IGdldF9wb2ludF9zaXplICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIGludCBnZXRfdW5pZm9y bV9sb2NhdGlvbiAoc3RyaW5nIHVuaWZvcm1fbmFtZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgQ29nbC5IYW5kbGUgZ2V0X3VzZXJfcHJvZ3JhbSAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfbGF5ZXIgKGlu dCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5QaXBlbGluZUFscGhhRnVuYyBhbHBo YV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudF9h bmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykg dGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29sb3IpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChD b2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9jb2xvcjRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBm bG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4 IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9jb2xvcl9tYXNrIChDb2dsLkNvbG9yTWFzayBjb2xvcl9tYXNrKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jdWxsX2ZhY2VfbW9kZSAoQ29nbC5Q aXBlbGluZUN1bGxGYWNlTW9kZSBjdWxsX2ZhY2VfbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNl KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlz c2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbnRfZmFjZV93aW5kaW5nIChDb2dsLldpbmRpbmcgZnJv bnRfd2luZGluZyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29n bC5Cb29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9z dHJpbmcpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2xheWVyX2NvbWJpbmVfY29uc3RhbnQgKGludCBsYXllcl9pbmRl eCwgQ29nbC5Db2xvciBjb25zdGFudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2xheWVyX2ZpbHRlcnMgKGludCBsYXllcl9pbmRleCwgQ29nbC5Q aXBlbGluZUZpbHRlciBtaW5fZmlsdGVyLCBDb2dsLlBpcGVsaW5lRmlsdGVyIG1hZ19maWx0ZXIp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXll cl9tYXRyaXggKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbnVsbF90ZXh0 dXJlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuVGV4dHVyZVR5cGUgdGV4dHVyZV90eXBlKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVy X3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkJvb2wg ZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl90ZXh0 dXJlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGUgKGlu dCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9wIChp bnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcyAo aW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3Qg KGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcGVyX3ZlcnRleF9w b2ludF9zaXplIChDb2dsLkJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wb2ludF9zaXplIChmbG9h dCBwb2ludF9zaXplKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9zaGluaW5lc3MgKGZsb2F0IHNoaW5pbmVzcyk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3Vs YXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Vu aWZvcm1fMWYgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBmbG9hdCB2YWx1ZSk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xaSAoaW50IHVu aWZvcm1fbG9jYXRpb24sIGludCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV9mbG9hdCAoaW50IHVuaWZvcm1fbG9jYXRpb24s IGludCBuX2NvbXBvbmVudHMsIGludCBjb3VudCwgZmxvYXQgdmFsdWUpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1faW50IChpbnQgdW5p Zm9ybV9sb2NhdGlvbiwgaW50IG5fY29tcG9uZW50cywgaW50IGNvdW50LCBpbnQgdmFsdWUpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1f bWF0cml4IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IGRpbWVuc2lvbnMsIGludCBjb3VudCwg Q29nbC5Cb29sIHRyYW5zcG9zZSwgZmxvYXQgdmFsdWUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VzZXJfcHJvZ3JhbSAoQ29nbC5IYW5kbGUgcHJv Z3JhbSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgUXVhdGVy bmlvbiB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg dHlwZV9pZCA9ICJjb2dsX2ZyYW1lYnVmZmVyX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgaW50 ZXJmYWNlIEZyYW1lYnVmZmVyIDogQ29nbC5PYmplY3QgeworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBhbGxvY2F0ZSAoKSB0aHJvd3MgR0xpYi5FcnJv cjsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGNsZWFyICh1 bG9uZyBidWZmZXJzLCBDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKy0JCXB1YmxpYyB2b2lkIGNsZWFyNGYgKHVsb25nIGJ1ZmZlcnMsIGZsb2F0IHJlZCwg ZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGRpc2NhcmRfYnVmZmVycyAodWxvbmcgYnVmZmVy cyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd19t dWx0aXRleHR1cmVkX3JlY3RhbmdsZSAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSwgZmxvYXQgeF8x LCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0gZmxvYXRbXSB0ZXhfY29vcmRzLCBpbnQgdGV4X2Nvb3Jkc19sZW4pOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGRyYXdfcmVjdGFuZ2xlIChD b2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBm bG9hdCB5XzIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lk IGRyYXdfcmVjdGFuZ2xlcyAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSwgW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldIGZsb2F0W10gY29vcmRpbmF0ZXMsIHVpbnQgbl9yZWN0YW5nbGVzKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3X3RleHR1 cmVkX3JlY3RhbmdsZSAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSwgZmxvYXQgeF8xLCBmbG9hdCB5 XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yLCBmbG9hdCBzXzEsIGZsb2F0IHRfMSwgZmxvYXQgc18y LCBmbG9hdCB0XzIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2 b2lkIGRyYXdfdGV4dHVyZWRfcmVjdGFuZ2xlcyAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSwgW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gY29vcmRpbmF0ZXMsIHVpbnQgbl9y ZWN0YW5nbGVzKTsKKy0JCXB1YmxpYyBzdGF0aWMgdWludDMyIGVycm9yX3F1YXJrICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGZpbmlzaCAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBmcnVzdHVtIChmbG9h dCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVh ciwgZmxvYXQgel9mYXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGlj IGludCBnZXRfYWxwaGFfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0J CXB1YmxpYyBpbnQgZ2V0X2JsdWVfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9yTWFzayBnZXRfY29sb3JfbWFzayAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X2RlcHRoX2JpdHMgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0 dXJlIGdldF9kZXB0aF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0K Ky0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3RleHR1cmVfZW5hYmxlZCAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9kZXB0aF93 cml0ZV9lbmFibGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGlj IENvZ2wuQm9vbCBnZXRfZGl0aGVyX2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgaW50IGdldF9ncmVlbl9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQkJcHVibGljIGludCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIENv Z2wuQm9vbCBnZXRfaXNfc3RlcmVvICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyBDb2dsLk1hdHJpeCBnZXRfbW9kZWx2aWV3X21hdHJpeCAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5NYXRyaXggZ2V0X3Byb2plY3Rp b25fbWF0cml4ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGlu dCBnZXRfcmVkX2JpdHMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIGludCBnZXRfc2FtcGxlc19wZXJfcGl4ZWwgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yMCIpXQorLQkJcHVibGljIENvZ2wuU3RlcmVvTW9kZSBnZXRfc3RlcmVvX21vZGUgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBnZXRfdmlld3BvcnQ0 ZnYgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBvdXQgdW5vd25lZCBmbG9hdCB2aWV3 cG9ydFs0XSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgZmxvYXQg Z2V0X3ZpZXdwb3J0X2hlaWdodCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0J CXB1YmxpYyBmbG9hdCBnZXRfdmlld3BvcnRfd2lkdGggKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3ZpZXdwb3J0X3ggKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3ZpZXdwb3J0X3kgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF93aWR0aCAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBpZGVudGl0eV9t YXRyaXggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQg b3J0aG9ncmFwaGljIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIs IGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZvdl95LCBmbG9hdCBhc3BlY3QsIGZs b2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyB2b2lkIHBvcF9jbGlwICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIHBvcF9tYXRyaXggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHZvaWQgcHVzaF9tYXRyaXggKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcHVzaF9yZWN0YW5nbGVfY2xpcCAoZmxvYXQg eF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwdXNoX3NjaXNzb3JfY2xpcCAoaW50IHgsIGlu dCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgcmVhZF9waXhlbHMgKGludCB4LCBpbnQgeSwgaW50IHdp ZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludDggcGl4ZWxzKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHJlYWRf cGl4ZWxzX2ludG9fYml0bWFwIChpbnQgeCwgaW50IHksIENvZ2wuUmVhZFBpeGVsc0ZsYWdzIHNv dXJjZSwgQ29nbC5CaXRtYXAgYml0bWFwKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K Ky0JCXB1YmxpYyB2b2lkIHJlc29sdmVfc2FtcGxlcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHJlc29sdmVfc2FtcGxlc19yZWdpb24gKGludCB4LCBp bnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5 LCBmbG9hdCB6KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHJvdGF0ZV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9u IHF1YXRlcm5pb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNjYWxlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcl9tYXNrIChDb2dsLkNvbG9yTWFz ayBjb2xvcl9tYXNrKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMg dm9pZCBzZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkIChDb2dsLkJvb2wgZW5hYmxlZCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3dyaXRl X2VuYWJsZWQgKENvZ2wuQm9vbCBkZXB0aF93cml0ZV9lbmFibGVkKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaXRoZXJfZW5hYmxlZCAoQ29nbC5C b29sIGRpdGhlcl9lbmFibGVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlw dWJsaWMgdm9pZCBzZXRfbW9kZWx2aWV3X21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfcHJvamVjdGlv bl9tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCistCQlwdWJsaWMgdm9pZCBzZXRfc2FtcGxlc19wZXJfcGl4ZWwgKGludCBzYW1wbGVzX3Bl cl9waXhlbCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X3N0ZXJlb19tb2RlIChDb2dsLlN0ZXJlb01vZGUgc3RlcmVvX21vZGUpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3ZpZXdwb3J0IChmbG9hdCB4 LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm0gKENvZ2wuTWF0cml4IG1hdHJp eCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgdHJhbnNs YXRlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfdGV4dHVyZV9nZXRfZ3R5 cGUgKCkiKV0KKy0JcHVibGljIGludGVyZmFjZSBUZXh0dXJlIDogQ29nbC5PYmplY3QgeworLQkJ cHVibGljIENvZ2wuQm9vbCBhbGxvY2F0ZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCXB1Ymxp YyBzdGF0aWMgdWludDMyIGVycm9yX3F1YXJrICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTgiKV0KKy0JCXB1YmxpYyBDb2dsLlRleHR1cmVDb21wb25lbnRzIGdldF9jb21wb25lbnRzICgp OworLQkJcHVibGljIGludCBnZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQg cm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2dsX3RleHR1 cmUgKG91dCB1aW50IG91dF9nbF9oYW5kbGUsIG91dCB1aW50IG91dF9nbF90YXJnZXQpOworLQkJ cHVibGljIHVpbnQgZ2V0X2hlaWdodCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21heF93YXN0ZSAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdl dF9wcmVtdWx0aXBsaWVkICgpOworLQkJcHVibGljIHVpbnQgZ2V0X3dpZHRoICgpOworLQkJcHVi bGljIENvZ2wuQm9vbCBpc19zbGljZWQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAs IENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1h dCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3 X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFn cywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9y bWF0LCBpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlw dWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUs IENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1h dCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRp YyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZm9yZWlnbiAodWludCBnbF9oYW5kbGUsIHVpbnQgZ2xf dGFyZ2V0LCB1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgdWludCB4X3BvdF93YXN0ZSwgdWludCB5 X3BvdF93YXN0ZSwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjIiKV0K Ky0JCXB1YmxpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fc3ViX3RleHR1cmUgKGludCBzdWJfeCwg aW50IHN1Yl95LCBpbnQgc3ViX3dpZHRoLCBpbnQgc3ViX2hlaWdodCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAu OCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X3dpdGhfc2l6ZSAodWludCB3 aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9y bWF0IGludGVybmFsX2Zvcm1hdCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2NvbXBvbmVudHMgKENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgY29tcG9u ZW50cyk7CistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0IGZv cm1hdCwgaW50IHJvd3N0cmlkZSwgdWludDggZGF0YSwgaW50IGxldmVsKSB0aHJvd3MgR0xpYi5F cnJvcjsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRf cHJlbXVsdGlwbGllZCAoQ29nbC5Cb29sIHByZW11bHRpcGxpZWQpOworLQkJcHVibGljIENvZ2wu Qm9vbCBzZXRfcmVnaW9uIChpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0 X3ksIHVpbnQgZHN0X3dpZHRoLCB1aW50IGRzdF9oZWlnaHQsIGludCB3aWR0aCwgaW50IGhlaWdo dCwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X3Jl Z2lvbl9mcm9tX2JpdG1hcCAoaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRz dF95LCB1aW50IGRzdF93aWR0aCwgdWludCBkc3RfaGVpZ2h0LCBDb2dsLkJpdG1hcCBiaXRtYXAp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb U2ltcGxlVHlwZV0KKy0JcHVibGljIHN0cnVjdCBBbmdsZSA6IGludDMyIHsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1NpbXBsZVR5cGVdCist CXB1YmxpYyBzdHJ1Y3QgQm9vbCA6IGludCB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2NvbG9yX2dldF9ndHlwZSAoKSIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdHJ1Y3QgQ29sb3Igewor LQkJcHVibGljIENvZ2wuQ29sb3I/IGNvcHkgKCk7CistCQlwdWJsaWMgc3RhdGljIENvZ2wuQm9v bCBlcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfYWxwaGEg KCk7CistCQlwdWJsaWMgdWludDggZ2V0X2FscGhhX2J5dGUgKCk7CistCQlwdWJsaWMgZmxvYXQg Z2V0X2FscGhhX2Zsb2F0ICgpOworLQkJcHVibGljIGZsb2F0IGdldF9ibHVlICgpOworLQkJcHVi bGljIHVpbnQ4IGdldF9ibHVlX2J5dGUgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X2JsdWVfZmxv YXQgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X2dyZWVuICgpOworLQkJcHVibGljIHVpbnQ4IGdl dF9ncmVlbl9ieXRlICgpOworLQkJcHVibGljIGZsb2F0IGdldF9ncmVlbl9mbG9hdCAoKTsKKy0J CXB1YmxpYyBmbG9hdCBnZXRfcmVkICgpOworLQkJcHVibGljIHVpbnQ4IGdldF9yZWRfYnl0ZSAo KTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfcmVkX2Zsb2F0ICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tXzRmIChmbG9hdCByZWQsIGZsb2F0 IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fNGZ2IChmbG9hdCBjb2xvcl9hcnJheSk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21f NHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGluaXRf ZnJvbV9oc2wgKG91dCBDb2dsLkNvbG9yIGNvbG9yLCBmbG9hdCBodWUsIGZsb2F0IHNhdHVyYXRp b24sIGZsb2F0IGx1bWluYW5jZSk7CistCQlwdWJsaWMgdm9pZCBwcmVtdWx0aXBseSAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoZmxv YXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2FscGhhX2J5dGUgKHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYV9mbG9hdCAoZmxvYXQgYWxwaGEpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JsdWUgKGZsb2F0IGJs dWUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Js dWVfYnl0ZSAodWludDggYmx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBzZXRfYmx1ZV9mbG9hdCAoZmxvYXQgYmx1ZSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxv YXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuNCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2Zyb21fNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBh bHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf Z3JlZW4gKGZsb2F0IGdyZWVuKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9ncmVlbl9ieXRlICh1aW50OCBncmVlbik7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZ3JlZW5fZmxvYXQgKGZsb2F0IGdyZWVu KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZWQg KGZsb2F0IHJlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCBzZXRfcmVkX2J5dGUgKHVpbnQ4IHJlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdm9pZCBzZXRfcmVkX2Zsb2F0IChmbG9hdCByZWQpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHRvX2hzbCAob3V0IGZsb2F0IGh1ZSwg b3V0IGZsb2F0IHNhdHVyYXRpb24sIG91dCBmbG9hdCBsdW1pbmFuY2UpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgdW5wcmVtdWx0aXBseSAoKTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RydWN0IERl YnVnT2JqZWN0VHlwZUluZm8geworLQkJcHVibGljIHdlYWsgc3RyaW5nIG5hbWU7CistCQlwdWJs aWMgdWxvbmcgaW5zdGFuY2VfY291bnQ7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtTaW1wbGVUeXBlXQorLQlwdWJsaWMgc3RydWN0IEhhbmRs ZSB7CistCQlwdWJsaWMgc3RhdGljIEdMaWIuVHlwZSBnZXRfdHlwZSAoKTsKKy0JCXB1YmxpYyBD b2dsLkhhbmRsZSBAcmVmICgpOworLQkJcHVibGljIHZvaWQgdW5yZWYgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX21h dHJpeF9nZXRfZ3R5cGUgKCkiKV0KKy0JcHVibGljIHN0cnVjdCBNYXRyaXggeworLQkJcHVibGlj IGZsb2F0IHh4OworLQkJcHVibGljIGZsb2F0IHl4OworLQkJcHVibGljIGZsb2F0IHp4OworLQkJ cHVibGljIGZsb2F0IHd4OworLQkJcHVibGljIGZsb2F0IHh5OworLQkJcHVibGljIGZsb2F0IHl5 OworLQkJcHVibGljIGZsb2F0IHp5OworLQkJcHVibGljIGZsb2F0IHd5OworLQkJcHVibGljIGZs b2F0IHh6OworLQkJcHVibGljIGZsb2F0IHl6OworLQkJcHVibGljIGZsb2F0IHp6OworLQkJcHVi bGljIGZsb2F0IHd6OworLQkJcHVibGljIGZsb2F0IHh3OworLQkJcHVibGljIGZsb2F0IHl3Owor LQkJcHVibGljIGZsb2F0IHp3OworLQkJcHVibGljIGZsb2F0IHd3OworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuTWF0cml4PyBjb3B5ICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZXF1YWwgKHZv aWQqIHYxLCB2b2lkKiB2Mik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJs aWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxv YXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpf ZmFyKTsKKy0JCXB1YmxpYyB1bm93bmVkIGZsb2F0W10gZ2V0X2FycmF5ICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfaW52ZXJzZSAob3V0 IENvZ2wuTWF0cml4IGludmVyc2UpOworLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVyIChD b2dsLkV1bGVyIGV1bGVyKTsKKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9xdWF0ZXJuaW9uIChD b2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCBpbml0X3RyYW5zbGF0aW9uIChmbG9hdCB0eCwgZmxvYXQgdHksIGZs b2F0IHR6KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJv b2wgaXNfaWRlbnRpdHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgdm9pZCBsb29rX2F0IChmbG9hdCBleWVfcG9zaXRpb25feCwgZmxvYXQgZXllX3Bvc2l0aW9u X3ksIGZsb2F0IGV5ZV9wb3NpdGlvbl96LCBmbG9hdCBvYmplY3RfeCwgZmxvYXQgb2JqZWN0X3ks IGZsb2F0IG9iamVjdF96LCBmbG9hdCB3b3JsZF91cF94LCBmbG9hdCB3b3JsZF91cF95LCBmbG9h dCB3b3JsZF91cF96KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRobyAoZmxvYXQgbGVmdCwgZmxv YXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIG9ydGhvZ3Jh cGhpYyAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yLCBmbG9hdCBu ZWFyLCBmbG9hdCBmYXIpOworLQkJcHVibGljIHZvaWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZvdl95 LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQkJcHVibGljIHZv aWQgcHJvamVjdF9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZv aWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBu X3BvaW50cyk7CistCQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBm bG9hdCB5LCBmbG9hdCB6KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHJvdGF0ZV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0 ZXJuaW9uIHF1YXRlcm5pb24pOworLQkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHN4LCBmbG9h dCBzeSwgZmxvYXQgc3opOworLQkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgZmxv YXQgeCwgcmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CistCQlwdWJsaWMg dm9pZCB0cmFuc2Zvcm1fcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2lu LCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBp bnQgbl9wb2ludHMpOworLQkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5 LCBmbG9hdCB6KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9p ZCB0cmFuc3Bvc2UgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMg dm9pZCB2aWV3XzJkX2luX2ZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBi b3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6XzJkLCBmbG9hdCB3aWR0aF8y ZCwgZmxvYXQgaGVpZ2h0XzJkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyB2b2lkIHZpZXdfMmRfaW5fcGVyc3BlY3RpdmUgKGZsb2F0IGZvdl95LCBmbG9hdCBhc3Bl Y3QsIGZsb2F0IHpfbmVhciwgZmxvYXQgel8yZCwgZmxvYXQgd2lkdGhfMmQsIGZsb2F0IGhlaWdo dF8yZCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdHJ1Y3QgT25zY3JlZW5EaXJ0eUluZm8geworLQkJcHVibGljIGludCB4OworLQkJcHVi bGljIGludCB5OworLQkJcHVibGljIGludCB3aWR0aDsKKy0JCXB1YmxpYyBpbnQgaGVpZ2h0Owor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFRleHR1cmVWZXJ0ZXggeworLQkJcHVibGlj IGZsb2F0IHg7CistCQlwdWJsaWMgZmxvYXQgeTsKKy0JCXB1YmxpYyBmbG9hdCB6OworLQkJcHVi bGljIGZsb2F0IHR4OworLQkJcHVibGljIGZsb2F0IHR5OworLQkJcHVibGljIENvZ2wuQ29sb3Ig Y29sb3I7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVi bGljIHN0cnVjdCBVc2VyRGF0YUtleSB7CistCQlwdWJsaWMgaW50IHVudXNlZDsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJfQ29nbENv bG9yU2l6ZUNoZWNrIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgX0Nv bG9yU2l6ZUNoZWNrIHsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVi bGljIHdlYWsgY2hhcltdIGNvbXBpbGVfdGltZV9hc3NlcnRfQ29nbENvbG9yX3NpemU7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiX0Nv Z2xNYXRyaXhTaXplQ2hlY2siLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVj dCBfTWF0cml4U2l6ZUNoZWNrIHsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQor LQkJcHVibGljIHdlYWsgY2hhcltdIGNvbXBpbGVfdGltZV9hc3NlcnRfQ29nbE1hdHJpeF9zaXpl OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1l ID0gIl9Db2dsVGV4dHVyZVZlcnRleFNpemVDaGVjayIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlwdWJsaWMgc3RydWN0IF9UZXh0dXJlVmVydGV4U2l6ZUNoZWNrIHsKKy0JCVtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgY2hhcltdIGNvbXBpbGVfdGltZV9h c3NlcnRfQ29nbFRleHR1cmVWZXJ0ZXhfc2l6ZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfQVRUUklCVVRFX1RZUEVfIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIGVudW0gQXR0cmlidXRlVHlwZSB7CistCQlCWVRFLAorLQkJVU5TSUdORURfQllURSwKKy0J CVNIT1JULAorLQkJVU5TSUdORURfU0hPUlQsCistCQlGTE9BVAorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9CSVRNQVBfRVJS T1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K Ky0JcHVibGljIGVudW0gQml0bWFwRXJyb3IgeworLQkJRkFJTEVELAorLQkJVU5LTk9XTl9UWVBF LAorLQkJQ09SUlVQVF9JTUFHRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9CTEVORF9TVFJJTkdfRVJST1JfIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVu dW0gQmxlbmRTdHJpbmdFcnJvciB7CistCQlQQVJTRV9FUlJPUiwKKy0JCUFSR1VNRU5UX1BBUlNF X0VSUk9SLAorLQkJSU5WQUxJRF9FUlJPUiwKKy0JCUdQVV9VTlNVUFBPUlRFRF9FUlJPUjsKKy0J CXB1YmxpYyBzdGF0aWMgdWludDMyIHF1YXJrICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9CVUZGRVJfQklUXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIGVudW0gQnVmZmVyQml0IHsKKy0JCUNPTE9SLAorLQkJREVQVEgsCistCQlT VEVOQ0lMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxhZ3NdCistCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIGVudW0gQnVmZmVyVGFyZ2V0IHsKKy0J CVdJTkRPV19CVUZGRVIsCistCQlPRkZTQ1JFRU5fQlVGRkVSCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0NPTE9SX01BU0tf IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gQ29sb3JN YXNrIHsKKy0JCU5PTkUsCistCQlSRUQsCistCQlHUkVFTiwKKy0JCUJMVUUsCistCQlBTFBIQSwK Ky0JCUFMTAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNwcmVmaXggPSAiQ09HTF9ERVBUSF9URVNUX0ZVTkNUSU9OXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlwdWJsaWMgZW51bSBEZXB0aFRlc3RGdW5jdGlvbiB7CistCQlORVZFUiwKKy0JCUxF U1MsCistCQlFUVVBTCwKKy0JCUxFUVVBTCwKKy0JCUdSRUFURVIsCistCQlOT1RFUVVBTCwKKy0J CUdFUVVBTCwKKy0JCUFMV0FZUworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GRUFUVVJFXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIGVu dW0gRmVhdHVyZUZsYWdzIHsKKy0JCVRFWFRVUkVfUkVDVEFOR0xFLAorLQkJVEVYVFVSRV9OUE9U LAorLQkJVEVYVFVSRV9ZVVYsCistCQlURVhUVVJFX1JFQURfUElYRUxTLAorLQkJU0hBREVSU19H TFNMLAorLQkJT0ZGU0NSRUVOLAorLQkJT0ZGU0NSRUVOX01VTFRJU0FNUExFLAorLQkJT0ZGU0NS RUVOX0JMSVQsCistCQlGT1VSX0NMSVBfUExBTkVTLAorLQkJU1RFTkNJTF9CVUZGRVIsCistCQlW Qk9TLAorLQkJUEJPUywKKy0JCVVOU0lHTkVEX0lOVF9JTkRJQ0VTLAorLQkJREVQVEhfUkFOR0Us CistCQlURVhUVVJFX05QT1RfQkFTSUMsCistCQlURVhUVVJFX05QT1RfTUlQTUFQLAorLQkJVEVY VFVSRV9OUE9UX1JFUEVBVCwKKy0JCVBPSU5UX1NQUklURSwKKy0JCVRFWFRVUkVfM0QsCistCQlN QVBfQlVGRkVSX0ZPUl9SRUFELAorLQkJTUFQX0JVRkZFUl9GT1JfV1JJVEUsCistCQlPTlNDUkVF Tl9NVUxUSVBMRSwKKy0JCURFUFRIX1RFWFRVUkUKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRklMVEVSXyIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBGaWx0ZXJSZXR1cm4geworLQkJQ09OVElOVUUs CistCQlSRU1PVkUKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjcHJlZml4ID0gIkNPR0xfRk9HX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gRm9nTW9kZSB7CistCQlM SU5FQVIsCistCQlFWFBPTkVOVElBTCwKKy0JCUVYUE9ORU5USUFMX1NRVUFSRUQKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xf RlJBTUVfRVZFTlRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE0IildCistCXB1YmxpYyBlbnVtIEZyYW1lRXZlbnQgeworLQkJU1lOQywKKy0JCUNPTVBM RVRFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3By ZWZpeCA9ICJDT0dMX0ZSQU1FQlVGRkVSX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlwdWJsaWMgZW51bSBGcmFtZWJ1ZmZlckVycm9yIHsKKy0JCVtDQ29kZSAoY25hbWUgPSAiQ09H TF9GUkFNRUJVRkZFUl9FUlJPUl9BTExPQ0FURSIpXQorLQkJRlJBTUVCVUZGRVJfRVJST1JfQUxM T0NBVEU7CistCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfSU5ESUNF U19UWVBFX1VOU0lHTkVEXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBJ bmRpY2VzVHlwZSB7CistCQlCWVRFLAorLQkJU0hPUlQsCistCQlJTlQKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJ QUxfQUxQSEFfRlVOQ18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gTWF0 ZXJpYWxBbHBoYUZ1bmMgeworLQkJTkVWRVIsCistCQlMRVNTLAorLQkJRVFVQUwsCistCQlMRVFV QUwsCistCQlHUkVBVEVSLAorLQkJTk9URVFVQUwsCistCQlHRVFVQUwsCistCQlBTFdBWVMKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfTUFURVJJQUxfRklMVEVSXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMg ZW51bSBNYXRlcmlhbEZpbHRlciB7CistCQlORUFSRVNULAorLQkJTElORUFSLAorLQkJTkVBUkVT VF9NSVBNQVBfTkVBUkVTVCwKKy0JCUxJTkVBUl9NSVBNQVBfTkVBUkVTVCwKKy0JCU5FQVJFU1Rf TUlQTUFQX0xJTkVBUiwKKy0JCUxJTkVBUl9NSVBNQVBfTElORUFSCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX01BVEVSSUFM X0xBWUVSX1RZUEVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKy0JcHVibGljIGVudW0gTWF0ZXJpYWxMYXllclR5cGUgeworLQkJW0NDb2RlIChj bmFtZSA9ICJDT0dMX01BVEVSSUFMX0xBWUVSX1RZUEVfVEVYVFVSRSIpXQorLQkJTUFURVJJQUxf TEFZRVJfVFlQRV9URVhUVVJFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX01BVEVSSUFMX1dSQVBfTU9ERV8iLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZW51 bSBNYXRlcmlhbFdyYXBNb2RlIHsKKy0JCVJFUEVBVCwKKy0JCUNMQU1QX1RPX0VER0UsCistCQlB VVRPTUFUSUMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjcHJlZml4ID0gIkNPR0xfUElQRUxJTkVfQUxQSEFfRlVOQ18iLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKy0JcHVibGljIGVudW0gUGlwZWxpbmVBbHBoYUZ1bmMgeworLQkJTkVWRVIsCistCQlM RVNTLAorLQkJRVFVQUwsCistCQlMRVFVQUwsCistCQlHUkVBVEVSLAorLQkJTk9URVFVQUwsCist CQlHRVFVQUwsCistCQlBTFdBWVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUElQRUxJTkVfQ1VMTF9GQUNFX01PREVfIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIFBpcGVsaW5lQ3VsbEZhY2VNb2Rl IHsKKy0JCU5PTkUsCistCQlGUk9OVCwKKy0JCUJBQ0ssCistCQlCT1RICistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1BJUEVM SU5FX0ZJTFRFUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gUGlwZWxp bmVGaWx0ZXIgeworLQkJTkVBUkVTVCwKKy0JCUxJTkVBUiwKKy0JCU5FQVJFU1RfTUlQTUFQX05F QVJFU1QsCistCQlMSU5FQVJfTUlQTUFQX05FQVJFU1QsCistCQlORUFSRVNUX01JUE1BUF9MSU5F QVIsCistCQlMSU5FQVJfTUlQTUFQX0xJTkVBUgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVBFTElORV9XUkFQX01PREVf IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J cHVibGljIGVudW0gUGlwZWxpbmVXcmFwTW9kZSB7CistCQlSRVBFQVQsCistCQlNSVJST1JFRF9S RVBFQVQsCistCQlDTEFNUF9UT19FREdFLAorLQkJQVVUT01BVElDCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1BJWEVMX0ZP Uk1BVF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC44IildCistCXB1YmxpYyBlbnVtIFBpeGVsRm9ybWF0IHsKKy0JCUFOWSwKKy0JCUFf OCwKKy0JCVJHQl81NjUsCistCQlSR0JBXzQ0NDQsCistCQlSR0JBXzU1NTEsCistCQlZVVYsCist CQlHXzgsCistCQlSR184OCwKKy0JCVJHQl84ODgsCistCQlCR1JfODg4LAorLQkJUkdCQV84ODg4 LAorLQkJQkdSQV84ODg4LAorLQkJQVJHQl84ODg4LAorLQkJQUJHUl84ODg4LAorLQkJUkdCQV8x MDEwMTAyLAorLQkJQkdSQV8xMDEwMTAyLAorLQkJQVJHQl8yMTAxMDEwLAorLQkJQUJHUl8yMTAx MDEwLAorLQkJUkdCQV84ODg4X1BSRSwKKy0JCUJHUkFfODg4OF9QUkUsCistCQlBUkdCXzg4ODhf UFJFLAorLQkJQUJHUl84ODg4X1BSRSwKKy0JCVJHQkFfNDQ0NF9QUkUsCistCQlSR0JBXzU1NTFf UFJFLAorLQkJUkdCQV8xMDEwMTAyX1BSRSwKKy0JCUJHUkFfMTAxMDEwMl9QUkUsCistCQlBUkdC XzIxMDEwMTBfUFJFLAorLQkJQUJHUl8yMTAxMDEwX1BSRSwKKy0JCURFUFRIXzE2LAorLQkJREVQ VEhfMzIsCistCQlERVBUSF8yNF9TVEVOQ0lMXzgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUkVBRF9QSVhFTFNfQ09MT1Jf IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgZW51bSBSZWFkUGl4ZWxzRmxhZ3MgeworLQkJW0NDb2RlIChjbmFt ZSA9ICJDT0dMX1JFQURfUElYRUxTX0NPTE9SX0JVRkZFUiIpXQorLQkJUkVBRF9QSVhFTFNfQ09M T1JfQlVGRkVSCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY3ByZWZpeCA9ICJDT0dMX1JFTkRFUkVSX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlwdWJsaWMgZW51bSBSZW5kZXJlckVycm9yIHsKKy0JCVhMSUJfRElTUExBWV9PUEVOLAor LQkJQkFEX0NPTlNUUkFJTlQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfU0hBREVSX1RZUEVfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gU2hhZGVy VHlwZSB7CistCQlWRVJURVgsCistCQlGUkFHTUVOVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9TVEVSRU9fIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIFN0ZXJlb01vZGUgeworLQkJQk9USCwKKy0J CUxFRlQsCistCQlSSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9TWVNURU1fRVJST1JfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGVudW0gU3lzdGVt RXJyb3IgeworLQkJVU5TVVBQT1JURUQsCistCQlOT19NRU1PUlkKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVYVFVSRV9D T01QT05FTlRTXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xOCIpXQorLQlwdWJsaWMgZW51bSBUZXh0dXJlQ29tcG9uZW50cyB7CistCQlBLAorLQkJUkcs CistCQlSR0IsCistCQlSR0JBLAorLQkJREVQVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVYVFVSRV9FUlJPUl8iLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJs aWMgZW51bSBUZXh0dXJlRXJyb3IgeworLQkJU0laRSwKKy0JCUZPUk1BVCwKKy0JCUJBRF9QQVJB TUVURVIsCistCQlUWVBFOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgcXVhcmsgKCk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJD T0dMX1RFWFRVUkVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBUZXh0dXJlRmxhZ3MgeworLQkJTk9O RSwKKy0JCU5PX0FVVE9fTUlQTUFQLAorLQkJTk9fU0xJQ0lORywKKy0JCU5PX0FUTEFTCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJD T0dMX1RFWFRVUkVfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKy0JcHVibGljIGVudW0gVGV4dHVyZVR5cGUgeworLQkJQDJELAorLQkJ QDNELAorLQkJUkVDVEFOR0xFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1ZFUlRJQ0VTX01PREVfIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gVmVy dGljZXNNb2RlIHsKKy0JCVBPSU5UUywKKy0JCUxJTkVTLAorLQkJTElORV9MT09QLAorLQkJTElO RV9TVFJJUCwKKy0JCVRSSUFOR0xFUywKKy0JCVRSSUFOR0xFX1NUUklQLAorLQkJVFJJQU5HTEVf RkFOCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3By ZWZpeCA9ICJDT0dMX1dJTkRJTkdfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBl bnVtIFdpbmRpbmcgeworLQkJQ0xPQ0tXSVNFLAorLQkJQ09VTlRFUl9DTE9DS1dJU0UKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfV0lOU1lTX0ZFQVRVUkVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVt IFdpbnN5c0ZlYXR1cmUgeworLQkJTVVMVElQTEVfT05TQ1JFRU4sCistCQlTV0FQX1RIUk9UVExF LAorLQkJVkJMQU5LX0NPVU5URVIsCistCQlWQkxBTktfV0FJVCwKKy0JCVRFWFRVUkVfRlJPTV9Q SVhNQVAsCistCQlTV0FQX0JVRkZFUlNfRVZFTlQsCistCQlTV0FQX1JFR0lPTiwKKy0JCVNXQVBf UkVHSU9OX1RIUk9UVExFLAorLQkJU1dBUF9SRUdJT05fU1lOQ0hST05JWkVELAorLQkJQlVGRkVS X0FHRSwKKy0JCVNZTkNfQU5EX0NPTVBMRVRFX0VWRU5ULAorLQkJTl9GRUFUVVJFUworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9 IDEuOSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIGRlbGVnYXRlIHZv aWQgRGVidWdPYmplY3RGb3JlYWNoVHlwZUNhbGxiYWNrIChDb2dsLkRlYnVnT2JqZWN0VHlwZUlu Zm8gaW5mbyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGlu c3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBkZWxlZ2F0ZSBD b2dsLkJvb2wgTWF0ZXJpYWxMYXllckNhbGxiYWNrIChDb2dsLk1hdGVyaWFsIG1hdGVyaWFsLCBp bnQgbGF5ZXJfaW5kZXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlbkRpcnR5Q2FsbGJhY2sgKENvZ2wuT25zY3Jl ZW4gb25zY3JlZW4sIENvZ2wuT25zY3JlZW5EaXJ0eUluZm8gaW5mbyk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDMuOSldCistCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgT25zY3JlZW5S ZXNpemVDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgaW50IHdpZHRoLCBpbnQgaGVp Z2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFu Y2VfcG9zID0gMi45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgT25zY3JlZW5YMTFNYXNrQ2Fs bGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIHVpbnQzMiBldmVudF9tYXNrKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45 KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgZGVsZWdhdGUgQ29nbC5C b29sIFBpcGVsaW5lTGF5ZXJDYWxsYmFjayAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSwgaW50IGxh eWVyX2luZGV4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg aW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgU3dhcEJ1ZmZlcnNO b3RpZnkgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorLQlwdWJsaWMg ZGVsZWdhdGUgdm9pZCBVc2VyRGF0YURlc3Ryb3lDYWxsYmFjayAodm9pZCogZGF0YSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfQUZJ UlNUX0JJVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IEFGSVJTVF9CSVQ7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfQV9CSVQiKV0KKy0J cHVibGljIGNvbnN0IGludCBBX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9CR1JfQklUIildCistCXB1YmxpYyBjb25zdCBpbnQg QkdSX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25h bWUgPSAiQ09HTF9ERVBUSF9CSVQiKV0KKy0JcHVibGljIGNvbnN0IGludCBERVBUSF9CSVQ7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xf UFJFTVVMVF9CSVQiKV0KKy0JcHVibGljIGNvbnN0IGludCBQUkVNVUxUX0JJVDsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9TVEVOQ0lM X0JJVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IFNURU5DSUxfQklUOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1RFWFRVUkVfTUFYX1dB U1RFIildCistCXB1YmxpYyBjb25zdCBpbnQgVEVYVFVSRV9NQVhfV0FTVEU7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgYmVnaW5fZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNoZWNrX2V4 dGVuc2lvbiAoc3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNsZWFyIChD b2dsLkNvbG9yIGNvbG9yLCB1bG9uZyBidWZmZXJzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNsdXR0ZXJf Y2hlY2tfZXh0ZW5zaW9uX0NMVVRURVIgKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMg Q29nbC5Cb29sIGNsdXR0ZXJfd2luc3lzX2hhc19mZWF0dXJlX0NMVVRURVIgKENvZ2wuV2luc3lz RmVhdHVyZSBmZWF0dXJlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IGRlYnVnX21hdHJpeF9wcmludCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGRlYnVnX29iamVjdF9mb3JlYWNoX3R5cGUgKENvZ2wu RGVidWdPYmplY3RGb3JlYWNoVHlwZUNhbGxiYWNrIGZ1bmMpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfb2JqZWN0X3ByaW50X2luc3RhbmNlcyAoKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBkaXNhYmxlX2ZvZyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBl bmRfZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBmZWF0dXJlc19hdmFpbGFibGUgKENvZ2wuRmVh dHVyZUZsYWdzIGZlYXR1cmVzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIGZsdXNoICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIwLjguMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZnJ1c3R1bSAoZmxv YXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25l YXIsIGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9iYWNrZmFjZV9jdWxsaW5n X2VuYWJsZWQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfYml0bWFza3MgKG91dCBpbnQgcmVkLCBvdXQg aW50IGdyZWVuLCBvdXQgaW50IGJsdWUsIG91dCBpbnQgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJv b2wgZ2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGlj IHN0YXRpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2RyYXdfZnJhbWVidWZmZXIgKCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1 YmxpYyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0X21vZGVsdmlld19tYXRyaXggKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgc3RhdGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBz dGF0aWMgQ29nbC5NYXRyaXggZ2V0X3Byb2plY3Rpb25fbWF0cml4ICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkKiBnZXRfc291cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdldF92aWV3cG9y dCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIG91dCBmbG9hdCB2WzRdKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0 aWMgR0xpYi5UeXBlIGd0eXBlX21hdHJpeF9nZXRfdHlwZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX2ZyYW1lYnVmZmVyICh2b2lkKiBvYmplY3Qp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfb25zY3Jl ZW4gKHZvaWQqIG9iamVjdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5Cb29sIGlzX3BpcGVsaW5lICh2b2lkKiBvYmplY3QpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRp YyBDb2dsLkJvb2wgaXNfdmVydGV4X2J1ZmZlcl9pbmRpY2VzIChDb2dsLkhhbmRsZSBoYW5kbGUp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIG9ydGhvIChmbG9hdCBsZWZ0LCBmbG9hdCBy aWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZvdnksIGZsb2F0IGFzcGVjdCwgZmxvYXQg el9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBwb2x5Z29uIChDb2dsLlRleHR1cmVWZXJ0ZXggdmVydGljZXMsIHVpbnQgbl92ZXJ0aWNl cywgQ29nbC5Cb29sIHVzZV9jb2xvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX21hdHJpeCAoKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bfc291cmNlICgpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHB1 c2hfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfc291cmNlICh2 b2lkKiBtYXRlcmlhbCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlIChmbG9hdCB4XzEsIGZsb2F0IHlf MSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgcmVjdGFuZ2xlX3dpdGhfbXVsdGl0ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZs b2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSBmbG9hdFtdIHRleF9jb29yZHMsIGludCB0ZXhfY29vcmRzX2xlbik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF90ZXh0dXJlX2Nvb3JkcyAo ZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIGZsb2F0IHR4MSwgZmxvYXQg dHkxLCBmbG9hdCB0eDIsIGZsb2F0IHR5Mik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCByZWN0YW5nbGVzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxv YXRbXSB2ZXJ0cywgdWludCBuX3JlY3RzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjguNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgcmVjdGFuZ2xlc193aXRoX3RleHR1cmVfY29vcmRzIChbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywgdWludCBuX3JlY3RzKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoQ29nbC5Cb29sIHNldHRpbmcpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNldF9kZXB0aF90ZXN0X2VuYWJsZWQgKENvZ2wuQm9vbCBzZXR0aW5nKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBzZXRfZm9nIChDb2dsLkNvbG9yIGZvZ19jb2xvciwgQ29nbC5Gb2dNb2RlIG1v ZGUsIGZsb2F0IGRlbnNpdHksIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHNldF9tb2RlbHZpZXdfbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHNldF9wcm9qZWN0aW9uX21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV9jb2xvciAoQ29nbC5Db2xvciBjb2xvcik7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV9jb2xvcjRmIChmbG9hdCBy ZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV9jb2xvcjR1YiAodWludDggcmVkLCB1aW50OCBncmVl biwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHNldF9zb3VyY2VfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjEuMiIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgc2V0X3ZpZXdwb3J0IChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50 IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX2NvbXBpbGUgKENvZ2wuSGFuZGxlIGhhbmRs ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIHN0cmluZyBzaGFkZXJfZ2V0X2luZm9fbG9nIChDb2dsLkhhbmRsZSBoYW5k bGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyBDb2dsLlNoYWRlclR5cGUgc2hhZGVyX2dldF90eXBlIChDb2dsLkhhbmRs ZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgc2hhZGVyX2lzX2NvbXBpbGVkIChDb2dsLkhh bmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkhhbmRsZSBzaGFkZXJfcmVmIChDb2dsLkhhbmRs ZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl9zb3VyY2UgKENvZ2wuSGFuZGxlIHNoYWRl ciwgc3RyaW5nIHNvdXJjZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX3VucmVmIChDb2dsLkhhbmRs ZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgi LCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9u ZXdfZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxh Z3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBz dGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQg aGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQs IENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1aW50OCBk YXRhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2lu Y2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zy b21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5Q aXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9yOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0J cHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9mb3JlaWduICh1aW50 IGdsX2hhbmRsZSwgdWludCBnbF90YXJnZXQsIHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCB1aW50 IHhfcG90X3dhc3RlLCB1aW50IHlfcG90X3dhc3RlLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0g IjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld193aXRoX3Np emUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29n bC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHRyYW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2xh dGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZm ZXJfYWRkIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSwgdWludDgg bl9jb21wb25lbnRzLCBDb2dsLkF0dHJpYnV0ZVR5cGUgdHlwZSwgQ29nbC5Cb29sIG5vcm1hbGl6 ZWQsIHVpbnQxNiBzdHJpZGUsIHZvaWQqIHBvaW50ZXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9i dWZmZXJfZGVsZXRlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kaXNhYmxlIChDb2dsLkhhbmRsZSBoYW5kbGUs IHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kcmF3 IChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wuVmVydGljZXNNb2RlIG1vZGUsIGludCBmaXJzdCwg aW50IGNvdW50KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXdfZWxlbWVudHMgKENv Z2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5WZXJ0aWNlc01vZGUgbW9kZSwgQ29nbC5IYW5kbGUgaW5k aWNlcywgaW50IG1pbl9pbmRleCwgaW50IG1heF9pbmRleCwgaW50IGluZGljZXNfb2Zmc2V0LCBp bnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZW5hYmxlIChDb2dsLkhhbmRs ZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQgdmVydGV4X2J1 ZmZlcl9nZXRfbl92ZXJ0aWNlcyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5I YW5kbGUgdmVydGV4X2J1ZmZlcl9pbmRpY2VzX2dldF9mb3JfcXVhZHMgKHVpbnQgbl9pbmRpY2Vz KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgQ29nbC5JbmRpY2VzVHlwZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X3R5 cGUgKENvZ2wuSGFuZGxlIGluZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVm ZmVyX25ldyAodWludCBuX3ZlcnRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVm ZmVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVy X3N1Ym1pdCAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJf dW5yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHZpZXdwb3J0ICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25z Y3JlZW5fZ2V0X3Zpc3VhbF94aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF93aW5kb3df eGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHgxMV9vbnNjcmVlbl9zZXRfZm9yZWlnbl93aW5kb3dfeGlkIChDb2dsLk9u c2NyZWVuIG9uc2NyZWVuLCB1aW50MzIgeGlkLCBbQ0NvZGUgKHNjb3BlID0gImFzeW5jIildIENv Z2wuT25zY3JlZW5YMTFNYXNrQ2FsbGJhY2sgdXBkYXRlKTsKKy19CitkaWZmIC0tZ2l0IHZhcGkv bXV0dGVyLWNsdXR0ZXItNS1jdXN0b20udmFsYSB2YXBpL211dHRlci1jbHV0dGVyLTUtY3VzdG9t LnZhbGEKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggYjhkODM4ZDAuLjAwMDAwMDAw CistLS0gdmFwaS9tdXR0ZXItY2x1dHRlci01LWN1c3RvbS52YWxhCisrKysgL2Rldi9udWxsCitA QCAtMSwxNTggKzAsMCBAQAorLW5hbWVzcGFjZSBDbHV0dGVyIHsKKy0gIFtDQ29kZSAodHlwZV9p ZCA9ICJDTFVUVEVSX1RZUEVfQUNUT1JfQk9YIiwgY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIHN0cnVjdCBBY3RvckJveCB7CistICAgIFtDQ29kZSAo Y25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9ib3hfZnJvbV92ZXJ0aWNlcyIpXQorLSAgICBwdWJsaWMg QWN0b3JCb3guZnJvbV92ZXJ0aWNlcyAoQ2x1dHRlci5WZXJ0ZXhbXSB2ZXJ0cyk7CistICB9Cist CistICBwdWJsaWMgc3RydWN0IE1hdHJpeCA6IENvZ2wuTWF0cml4IHsKKy0gIH0KKy0KKy0gIHB1 YmxpYyBjbGFzcyBCYWNrZW5kIDogR0xpYi5PYmplY3QgeworLSAgICBbTm9XcmFwcGVyXQorLSAg ICBwdWJsaWMgdmlydHVhbCB2b2lkIGFkZF9vcHRpb25zIChHTGliLk9wdGlvbkdyb3VwIGdyb3Vw KTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgYm9vbCBjcmVhdGVfY29u dGV4dCAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGlj IHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLlN0YWdlV2luZG93IGNyZWF0ZV9zdGFnZSAoQ2x1dHRl ci5TdGFnZSB3cmFwcGVyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0gICAgW05vV3JhcHBlcl0KKy0g ICAgcHVibGljIHZpcnR1YWwgdm9pZCBlbnN1cmVfY29udGV4dCAoQ2x1dHRlci5TdGFnZSBzdGFn ZSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRl ci5EZXZpY2VNYW5hZ2VyIGdldF9kZXZpY2VfbWFuYWdlciAoKTsKKy0gICAgW05vV3JhcHBlcl0K Ky0gICAgcHVibGljIHZpcnR1YWwgQ2x1dHRlci5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgp OworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZXZlbnRz ICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZmVh dHVyZXMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIGJvb2wgcG9z dF9wYXJzZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVi bGljIHZpcnR1YWwgYm9vbCBwcmVfcGFyc2UgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistICAgIFtO b1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVkcmF3IChDbHV0dGVyLlN0YWdl IHN0YWdlKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ib3hfZ2V0X3R5cGUgKCkiKV0KKy0gIHB1 YmxpYyBjbGFzcyBCb3ggOiBDbHV0dGVyLkFjdG9yIHsKKy0gICAgcHVibGljIENsdXR0ZXIuTGF5 b3V0TWFuYWdlciBsYXlvdXRfbWFuYWdlciB7IGdldDsgc2V0OyB9CistICB9CistCistICBbQ0Nv ZGUgKHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0NPTE9SIiwgY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIHN0cnVjdCBDb2xvciB7CistICAgIFtDQ29k ZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX2hscyIpXQorLSAgICBwdWJsaWMgQ29sb3Iu ZnJvbV9obHMgKGZsb2F0IGh1ZSwgZmxvYXQgbHVtaW5hbmNlLCBmbG9hdCBzYXR1cmF0aW9uKTsK Ky0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fcGl4ZWwiKV0KKy0gICAg cHVibGljIENvbG9yLmZyb21fcGl4ZWwgKHVpbnQzMiBwaXhlbCk7CistICAgIFtDQ29kZSAoY25h bWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX3N0cmluZyIpXQorLSAgICBwdWJsaWMgQ29sb3IuZnJv bV9zdHJpbmcgKHN0cmluZyBzdHIpOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29s b3JfZnJvbV9zdHJpbmciKV0KKy0gICAgcHVibGljIGJvb2wgcGFyc2Vfc3RyaW5nIChzdHJpbmcg c3RyKTsKKy0gICAgcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQ29sb3I/IGdldF9zdGF0 aWMgKENsdXR0ZXIuU3RhdGljQ29sb3IgY29sb3IpOworLSAgfQorLQorLSAgW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Nv bnRhaW5lcl9nZXRfdHlwZSAoKSIpXQorLSAgcHVibGljIGludGVyZmFjZSBDb250YWluZXIgOiBH TGliLk9iamVjdCB7CistICAgIHB1YmxpYyB2b2lkIGFkZCAocGFyYW1zIENsdXR0ZXIuQWN0b3Jb XSBhY3RvcnMpOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29udGFpbmVyX2NsYXNz X2ZpbmRfY2hpbGRfcHJvcGVydHkiKV0KKy0gICAgcHVibGljIGNsYXNzIHVub3duZWQgR0xpYi5Q YXJhbVNwZWMgZmluZF9jaGlsZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLSAg ICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29udGFpbmVyX2NsYXNzX2xpc3RfY2hpbGRfcHJv cGVydGllcyIpXQorLSAgICBwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3BlY1tdIGxp c3RfY2hpbGRfcHJvcGVydGllcyAoKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5 IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfZXZl bnRfZ2V0X3R5cGUgKCkiKV0KKy0gIFtDb21wYWN0XQorLSAgcHVibGljIGNsYXNzIEV2ZW50IHsK Ky0gICAgcHVibGljIENsdXR0ZXIuQW55RXZlbnQgYW55IHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1 dHRlckFueUV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5CdXR0b25FdmVu dCBidXR0b24geyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyQnV0dG9uRXZlbnQgKikiKV0gZ2V0 OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLkNyb3NzaW5nRXZlbnQgY3Jvc3NpbmcgeyBbQ0NvZGUg KGNuYW1lID0gIihDbHV0dGVyQ3Jvc3NpbmdFdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGlj IENsdXR0ZXIuS2V5RXZlbnQga2V5IHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlcktleUV2ZW50 ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5Nb3Rpb25FdmVudCBtb3Rpb24geyBb Q0NvZGUgKGNuYW1lID0gIihDbHV0dGVyTW90aW9uRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1 YmxpYyBDbHV0dGVyLlNjcm9sbEV2ZW50IHNjcm9sbCB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0 ZXJTY3JvbGxFdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuU3RhZ2VTdGF0 ZUV2ZW50IHN0YWdlX3N0YXRlIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclN0YWdlU3RhdGVF dmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuVG91Y2hFdmVudCB0b3VjaCB7 IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJUb3VjaEV2ZW50ICopIildIGdldDsgfQorLSAgICBw dWJsaWMgQ2x1dHRlci5Ub3VjaHBhZFBpbmNoRXZlbnQgdG91Y2hwYWRfcGluY2ggeyBbQ0NvZGUg KGNuYW1lID0gIihDbHV0dGVyVG91Y2hwYWRQaW5jaEV2ZW50ICopIildIGdldDsgfQorLSAgICBw dWJsaWMgQ2x1dHRlci5Ub3VjaHBhZFN3aXBlRXZlbnQgdG91Y2hwYWRfc3dpcGUgeyBbQ0NvZGUg KGNuYW1lID0gIihDbHV0dGVyVG91Y2hwYWRTd2lwZUV2ZW50ICopIildIGdldDsgfQorLSAgfQor LQorLSAgW0NDb2RlICh0eXBlX2lkID0gImNsdXR0ZXJfc3RhZ2VfZ2V0X3R5cGUgKCkiLCBjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgY2xhc3MgU3Rh Z2UgOiBDbHV0dGVyLkdyb3VwIHsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3JlZHJh dyIpXQorLSAgICBwdWJsaWMgdm9pZCByZWRyYXcgKCk7CistICB9CistCistICBbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBpbnRlcmZh Y2UgU3RhZ2VXaW5kb3cgOiBHTGliLk9iamVjdCB7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1 YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9yZWRyYXdfY2xpcCAoQ2x1dHRlci5HZW9tZXRyeSBzdGFn ZV9yZWN0YW5nbGUpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9p ZCBnZXRfZ2VvbWV0cnkgKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnkpOworLSAgICBbTm9XcmFw cGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldF9wZW5kaW5nX3N3YXBzICgpOworLSAg ICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3QgdW5vd25lZCBDbHV0dGVyLkFjdG9y IGdldF93cmFwcGVyICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qg Ym9vbCBoYXNfcmVkcmF3X2NsaXBzICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMg YWJzdHJhY3Qgdm9pZCBoaWRlICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJz dHJhY3QgYm9vbCBpZ25vcmluZ19yZWRyYXdfY2xpcHMgKCk7CistICAgIFtOb1dyYXBwZXJdCist ICAgIHB1YmxpYyBhYnN0cmFjdCBib29sIHJlYWxpemUgKCk7CistICAgIFtOb1dyYXBwZXJdCist ICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlc2l6ZSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsK Ky0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X2N1cnNvcl92 aXNpYmxlIChib29sIGN1cnNvcl92aXNpYmxlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVi bGljIGFic3RyYWN0IHZvaWQgc2V0X2Z1bGxzY3JlZW4gKGJvb2wgaXNfZnVsbHNjcmVlbik7Cist ICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF90aXRsZSAoc3Ry aW5nIHRpdGxlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQg c2V0X3VzZXJfcmVzaXphYmxlIChib29sIGlzX3Jlc2l6YWJsZSk7CistICAgIFtOb1dyYXBwZXJd CistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHNob3cgKGJvb2wgZG9fcmFpc2UpOworLSAgICBb Tm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCB1bnJlYWxpemUgKCk7CistICB9 CistCistICBbQ0NvZGUgKHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0dXJlX2dldF90eXBlICgpIiwg Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIGNsYXNz IFRleHR1cmUgOiBDbHV0dGVyLkFjdG9yIHsKKy0gICAgcHVibGljIENvZ2wuTWF0ZXJpYWwgY29n bF9tYXRlcmlhbCB7IGdldDsgc2V0OyB9CistICAgIHB1YmxpYyBDb2dsLlRleHR1cmUgY29nbF90 ZXh0dXJlIHsgZ2V0OyBzZXQ7IH0KKy0gIH0KKy0KKy0gIFtDb21wYWN0XQorLSAgW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgY2xhc3Mg VGltZW91dFBvb2wgeworLSAgICBbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistICAgIHB1YmxpYyBUaW1lb3V0UG9vbCAoaW50IHByaW9yaXR5KTsKKy0gIH0KKy0KKy0g IFtDQ29kZSAoY3ByZWZpeCA9ICJDTFVUVEVSX0ZFQVRVUkVfIiwgY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgW0ZsYWdzXQorLSAgcHVibGljIGVudW0gRmVhdHVy ZUZsYWdzIHsKKy0gICAgVEVYVFVSRV9OUE9UOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfZmVhdHVyZV9hdmFpbGFibGUiKV0KKy0gICAgcHVibGljIGJvb2wgaXNfYXZhaWxhYmxlICgp OworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZmVhdHVyZV9nZXRfYWxsIildCistICAg IHB1YmxpYyBzdGF0aWMgQ2x1dHRlci5GZWF0dXJlRmxhZ3MgQGdldCAoKTsKKy0gIH0KKy0KKy0g IFtDQ29kZSAodHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfVU5JVFMiLCBjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgc3RydWN0IFVuaXRzIHsKKy0gICAg W0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fY20iKV0KKy0gICAgcHVibGljIFVu aXRzLmZyb21fY20gKGZsb2F0IGNtKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3Vu aXRzX2Zyb21fZW0iKV0KKy0gICAgcHVibGljIFVuaXRzLmZyb21fZW0gKGZsb2F0IGVtKTsKKy0g ICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fZW1fZm9yX2ZvbnQiKV0KKy0g ICAgcHVibGljIFVuaXRzLmZyb21fZW1fZm9yX2ZvbnQgKHN0cmluZyBmb250X25hbWUsIGZsb2F0 IGVtKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fbW0iKV0KKy0g ICAgcHVibGljIFVuaXRzLmZyb21fbW0gKGZsb2F0IG1tKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9 ICJjbHV0dGVyX3VuaXRzX2Zyb21fcGl4ZWxzIildCistICAgIHB1YmxpYyBVbml0cy5mcm9tX3Bp eGVscyAoaW50IHB4KTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21f cHQiKV0KKy0gICAgcHVibGljIFVuaXRzLmZyb21fcHQgKGZsb2F0IHB0KTsKKy0gICAgW0NDb2Rl IChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fc3RyaW5nIildCistICAgIHB1YmxpYyBVbml0 cy5mcm9tX3N0cmluZyAoc3RyaW5nIHN0cik7CistICB9CistfQorZGlmZiAtLWdpdCB2YXBpL211 dHRlci1jbHV0dGVyLTQtY3VzdG9tLnZhbGEgdmFwaS9tdXR0ZXItY2x1dHRlci02LWN1c3RvbS52 YWxhCitzaW1pbGFyaXR5IGluZGV4IDkyJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRl ci00LWN1c3RvbS52YWxhCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY2x1dHRlci02LWN1c3RvbS52 YWxhCitpbmRleCBiOGQ4MzhkMC4uODkyMjRiZTYgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY2x1 dHRlci00LWN1c3RvbS52YWxhCisrKysgdmFwaS9tdXR0ZXItY2x1dHRlci02LWN1c3RvbS52YWxh CitAQCAtMSw5ICsxLDQgQEAKKyBuYW1lc3BhY2UgQ2x1dHRlciB7CistICBbQ0NvZGUgKHR5cGVf aWQgPSAiQ0xVVFRFUl9UWVBFX0FDVE9SX0JPWCIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBzdHJ1Y3QgQWN0b3JCb3ggeworLSAgICBbQ0NvZGUg KGNuYW1lID0gImNsdXR0ZXJfYWN0b3JfYm94X2Zyb21fdmVydGljZXMiKV0KKy0gICAgcHVibGlj IEFjdG9yQm94LmZyb21fdmVydGljZXMgKENsdXR0ZXIuVmVydGV4W10gdmVydHMpOworLSAgfQor IAorICAgcHVibGljIHN0cnVjdCBNYXRyaXggOiBDb2dsLk1hdHJpeCB7CisgICB9CitAQCAtMTgs OCArMTMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgICAgIFtOb1dyYXBwZXJdCisgICAgIHB1 YmxpYyB2aXJ0dWFsIHZvaWQgZW5zdXJlX2NvbnRleHQgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOwor ICAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuRGV2 aWNlTWFuYWdlciBnZXRfZGV2aWNlX21hbmFnZXIgKCk7CistICAgIFtOb1dyYXBwZXJdCisgICAg IHB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsKKyAg ICAgW05vV3JhcHBlcl0KKyAgICAgcHVibGljIHZpcnR1YWwgdm9pZCBpbml0X2V2ZW50cyAoKTsK K0BAIC04MywxMCArNzYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCisgICBbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAgIHB1YmxpYyBpbnRlcmZh Y2UgU3RhZ2VXaW5kb3cgOiBHTGliLk9iamVjdCB7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1 YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9yZWRyYXdfY2xpcCAoQ2x1dHRlci5HZW9tZXRyeSBzdGFn ZV9yZWN0YW5nbGUpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9p ZCBnZXRfZ2VvbWV0cnkgKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnkpOworICAgICBbTm9XcmFw cGVyXQorICAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldF9wZW5kaW5nX3N3YXBzICgpOworICAg ICBbTm9XcmFwcGVyXQorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jbHV0dGVyLTUuZGVwcyB2YXBp L211dHRlci1jbHV0dGVyLTYuZGVwcworc2ltaWxhcml0eSBpbmRleCA2MyUKK3JlbmFtZSBmcm9t IHZhcGkvbXV0dGVyLWNsdXR0ZXItNS5kZXBzCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY2x1dHRl ci02LmRlcHMKK2luZGV4IDNmNWE5MmE2Li43YTcwZDZkZiAxMDA2NDQKKy0tLSB2YXBpL211dHRl ci1jbHV0dGVyLTUuZGVwcworKysrIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi5kZXBzCitAQCAtMSw0 ICsxLDQgQEAKKyBhdGsKKyBjYWlybworIGpzb24tZ2xpYi0xLjAKKy1tdXR0ZXItY29nbC01Cisr bXV0dGVyLWNvZ2wtNgorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jbHV0dGVyLTUudmFwaSB2YXBp L211dHRlci1jbHV0dGVyLTYudmFwaQorc2ltaWxhcml0eSBpbmRleCA5MyUKK3JlbmFtZSBmcm9t IHZhcGkvbXV0dGVyLWNsdXR0ZXItNS52YXBpCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY2x1dHRl ci02LnZhcGkKK2luZGV4IDI0ZjdmNmIxLi4wMTMwYTkzYyAxMDA2NDQKKy0tLSB2YXBpL211dHRl ci1jbHV0dGVyLTUudmFwaQorKysrIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi52YXBpCitAQCAtMSw2 ICsxLDYgQEAKKy0vKiBtdXR0ZXItY2x1dHRlci01LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4s IGRvIG5vdCBtb2RpZnkuICovCisrLyogbXV0dGVyLWNsdXR0ZXItNi52YXBpIGdlbmVyYXRlZCBi eSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworIAorLVtDQ29kZSAoY3ByZWZpeCA9ICJDbHV0 dGVyIiwgZ2lyX25hbWVzcGFjZSA9ICJDbHV0dGVyIiwgZ2lyX3ZlcnNpb24gPSAiNSIsIGxvd2Vy X2Nhc2VfY3ByZWZpeCA9ICJjbHV0dGVyXyIpXQorK1tDQ29kZSAoY3ByZWZpeCA9ICJDbHV0dGVy IiwgZ2lyX25hbWVzcGFjZSA9ICJDbHV0dGVyIiwgZ2lyX3ZlcnNpb24gPSAiNiIsIGxvd2VyX2Nh c2VfY3ByZWZpeCA9ICJjbHV0dGVyXyIpXQorIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJbmFtZXNw YWNlIEtleSB7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjbmFtZSA9ICJDTFVUVEVSX0tFWV8wIildCitAQCAtNDY2MSwyMiArNDY2MSwxNCBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9wcmVmZXJyZWRfc2l6 ZSAoQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKyAJ CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGUgKHVsb25nIG1vZGUsIHVp bnQgZHVyYXRpb24sIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQg Q2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX2FscGhhIChDbHV0dGVyLkFscGhhIGFscGhh LCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5p bWF0aW9uIGFuaW1hdGVfd2l0aF9hbHBoYXYgKENsdXR0ZXIuQWxwaGEgYWxwaGEsIFtDQ29kZSAo YXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAx LjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJu X3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMS41KV0gR0xpYi5WYWx1ZVtdIHZhbHVl cyk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRp b24gYW5pbWF0ZV93aXRoX3RpbWVsaW5lICh1bG9uZyBtb2RlLCBDbHV0dGVyLlRpbWVsaW5lIHRp bWVsaW5lLCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0aF90aW1lbGluZXYgKHVsb25nIG1vZGUsIENsdXR0ZXIu VGltZWxpbmUgdGltZWxpbmUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVy dGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0Nv ZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9z ID0gMi41KV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZXYgKHVsb25nIG1vZGUsIHVpbnQg ZHVyYXRpb24sIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFy cmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5 X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0g R0xpYi5WYWx1ZVtdIHZhbHVlcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgQ2x1dHRlci5WZXJ0ZXggYXBwbHlfcmVsYXRpdmVfdHJhbnNmb3JtX3RvX3BvaW50IChD bHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgQ2x1dHRlci5WZXJ0ZXggcG9pbnQpOworKwkJcHVibGlj IHZvaWQgYXBwbHlfcmVsYXRpdmVfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLkFjdG9yPyBh bmNlc3RvciwgR3JhcGhlbmUuUG9pbnQzRCBwb2ludCwgb3V0IHVub3duZWQgR3JhcGhlbmUuUG9p bnQzRCB2ZXJ0ZXgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBw bHlfdHJhbnNmb3JtIChyZWYgQ2x1dHRlci5NYXRyaXggbWF0cml4KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBhcHBseV90cmFuc2Zvcm1f dG9fcG9pbnQgKENsdXR0ZXIuVmVydGV4IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGFwcGx5X3Ry YW5zZm9ybV90b19wb2ludCAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCwgb3V0IHVub3duZWQgR3Jh cGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KKyAJ CXB1YmxpYyB2b2lkIGJpbmRfbW9kZWwgKEdMaWIuTGlzdE1vZGVsPyBtb2RlbCwgb3duZWQgQ2x1 dHRlci5BY3RvckNyZWF0ZUNoaWxkRnVuYyBjcmVhdGVfY2hpbGRfZnVuYyk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCitAQCAtNDY4OCwyMCArNDY4MCwxOSBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBjb250 YWlucyAoQ2x1dHRlci5BY3RvciBkZXNjZW5kYW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKy0JCXB1YmxpYyB2b2lkIGNvbnRpbnVlX3BhaW50ICgpOworKwkJcHVibGljIHZvaWQg Y29udGludWVfcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworKwkJ cHVibGljIHZvaWQgY29udGludWVfcGljayAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRl eHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIFBhbmdvLkNvbnRl eHQgY3JlYXRlX3BhbmdvX2NvbnRleHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisgCQlwdWJsaWMgUGFuZ28uTGF5b3V0IGNyZWF0ZV9wYW5nb19sYXlvdXQgKHN0cmluZz8gdGV4 dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgZGVzdHJv eV9hbGxfY2hpbGRyZW4gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZGV0 YWNoX2FuaW1hdGlvbiAoKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9ldmVu dCIpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGJvb2wgZW1pdF9l dmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgYm9vbCBjYXB0dXJlKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hYnNfYWxsb2NhdGlvbl92ZXJ0aWNl cyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIENsdXR0ZXIuVmVydGV4IHZlcnRzWzRd KTsKKysJCXB1YmxpYyB2b2lkIGdldF9hYnNfYWxsb2NhdGlvbl92ZXJ0aWNlcyAoW0NDb2RlIChh cnJheV9sZW5ndGggPSBmYWxzZSldIEdyYXBoZW5lLlBvaW50M0QgdmVydHNbNF0pOworIAkJcHVi bGljIHZpcnR1YWwgdW5vd25lZCBBdGsuT2JqZWN0IGdldF9hY2Nlc3NpYmxlICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3Rpb24g Z2V0X2FjdGlvbiAoc3RyaW5nIG5hbWUpOworQEAgLTQ3MDksMTYgKzQ3MDAsMTAgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuQWN0aW9uPiBn ZXRfYWN0aW9ucyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBD bHV0dGVyLkFjdG9yQm94IGdldF9hbGxvY2F0aW9uX2JveCAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44Iild CistCQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRyeSBnZXRfYWxsb2NhdGlvbl9nZW9tZXRyeSAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGxvY2F0 aW9uX3ZlcnRpY2VzIChDbHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldIENsdXR0ZXIuVmVydGV4IHZlcnRzWzRdKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42Iild CistCQlwdWJsaWMgdm9pZCBnZXRfYW5jaG9yX3BvaW50IChvdXQgZmxvYXQgYW5jaG9yX3gsIG91 dCBmbG9hdCBhbmNob3JfeSk7CisrCQlwdWJsaWMgdm9pZCBnZXRfYWxsb2NhdGlvbl92ZXJ0aWNl cyAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0b3IsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSBHcmFwaGVuZS5Qb2ludDNEIHZlcnRzWzRdKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJs aWMgQ2x1dHRlci5HcmF2aXR5IGdldF9hbmNob3JfcG9pbnRfZ3Jhdml0eSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBnZXRfYW5pbWF0 aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDbHV0dGVy LkNvbG9yIGdldF9iYWNrZ3JvdW5kX2NvbG9yICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0 dGVyX2dldF9hY3Rvcl9ieV9naWQiKV0KK0BAIC00NzY4LDggKzQ3NTMsNiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBnZXRfZml4ZWRfcG9zaXRpb25fc2V0ICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3JGbGFncyBn ZXRfZmxhZ3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdWludDMyIGdldF9naWQg KCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfYWN0b3JfaGFzX3BvaW50ZXIiKV0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBib29sIGdldF9oYXNfcG9pbnRl ciAoKTsKK0BAIC00ODQ4LDggKzQ4MzEsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9uIGdldF90ZXh0X2RpcmVjdGlvbiAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgQ2x1dHRlci5NYXRyaXggZ2V0X3RyYW5z Zm9ybSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5NYXRyaXggZ2V0 X3RyYW5zZm9ybWF0aW9uX21hdHJpeCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K KyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUGFpbnRWb2x1bWUgZ2V0X3RyYW5zZm9ybWVkX3Bh aW50X3ZvbHVtZSAoQ2x1dHRlci5BY3RvciByZWxhdGl2ZV90b19hbmNlc3Rvcik7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC44IildCitAQCAtNDg5Miw3ICs0ODczLDcgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIGJvb2wgaGFzX21hcHBlZF9jbG9uZXMgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmlydHVhbCBib29sIGhhc19vdmVybGFwcyAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMC4yIildCisrCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwg dm9pZCBoaWRlX2FsbCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJs aWMgdm9pZCBpbnNlcnRfY2hpbGRfYWJvdmUgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIu QWN0b3I/IHNpYmxpbmcpOworQEAgLTQ5MTIsMTAgKzQ4OTMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgYm9vbCBpc19zY2FsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yNCIpXQorIAkJcHVibGljIGJvb2wgaXNfdmlzaWJsZSAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9p ZCBsb3dlciAoQ2x1dHRlci5BY3Rvcj8gYWJvdmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGxvd2Vy X2JvdHRvbSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgbWFwICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KK0BAIC00OTI4LDE3ICs0OTA1LDEy IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIG5lZWRzX2V4cGFuZCAoQ2x1 dHRlci5PcmllbnRhdGlvbiBvcmllbnRhdGlvbik7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGlj IHZpcnR1YWwgdm9pZCBwYWludF9ub2RlIChDbHV0dGVyLlBhaW50Tm9kZSByb290KTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMS4yIildCisrCQlwdWJsaWMgdm9pZCBwaWNrX2JveCAoQ2x1dHRlci5QaWNrQ29udGV4 dCBwaWNrX2NvbnRleHQsIENsdXR0ZXIuQWN0b3JCb3ggYm94KTsKKyAJCXB1YmxpYyB2b2lkIHBv cF9pbnRlcm5hbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBwdXNoX2lu dGVybmFsICgpOworIAkJcHVibGljIHZvaWQgcXVldWVfcmVkcmF3ICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHF1ZXVlX3JlZHJhd193aXRoX2NsaXAg KENhaXJvLlJlY3RhbmdsZUludD8gY2xpcCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmFpc2UgKENs dXR0ZXIuQWN0b3I/IGJlbG93KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByYWlzZV90b3AgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfYWN0aW9u IChDbHV0dGVyLkFjdGlvbiBhY3Rpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor QEAgLTQ5NjAsOCArNDkzMiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lk IHJlbW92ZV9lZmZlY3RfYnlfbmFtZSAoc3RyaW5nIG5hbWUpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV90cmFuc2l0aW9uIChzdHJpbmcgbmFt ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHZvaWQgcmVwYXJlbnQgKENsdXR0ZXIu QWN0b3IgbmV3X3BhcmVudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIHZvaWQgcmVwbGFjZV9jaGlsZCAoQ2x1dHRlci5BY3RvciBvbGRfY2hpbGQsIENsdXR0ZXIu QWN0b3IgbmV3X2NoaWxkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTA0 Niw4ICs1MDE2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3Nj YWxlIChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3kpOworIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9zY2FsZV9mdWxsIChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNj YWxlX3ksIGZsb2F0IGNlbnRlcl94LCBmbG9hdCBjZW50ZXJfeSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X3NjYWxlX3dpdGhfZ3Jhdml0eSAoZG91YmxlIHNjYWxlX3gs IGRvdWJsZSBzY2FsZV95LCBDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxlX3ogKGRvdWJsZSBzY2Fs ZV96KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zaXplIChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0 KTsKK0BAIC01MTEwLDExICs1MDc4LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBib29sIGNoaWxkX3RyYW5zZm9ybV9zZXQg eyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdl b21ldHJ5IGNsaXAgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuUmVjdCBjbGlw X3JlY3QgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgY2xpcF9y ZWN0IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJ CXB1YmxpYyBib29sIGNsaXBfdG9fYWxsb2NhdGlvbiB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nl c3Nvck1ldGhvZF0KK0BAIC01MTk5LDEyICs1MTY0LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyB1aW50IG9wYWNpdHkgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRo b2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuUG9p bnQgcGl2b3RfcG9pbnQgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlBv aW50IHBpdm90X3BvaW50IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCisgCQlwdWJsaWMgZmxvYXQgcGl2b3RfcG9pbnRfeiB7IGdldDsgc2V0OyB9Cisg CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlw dWJsaWMgQ2x1dHRlci5Qb2ludCBwb3NpdGlvbiB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJs aWMgR3JhcGhlbmUuUG9pbnQgcG9zaXRpb24geyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGJvb2wgcmVhY3RpdmUgeyBnZXQ7IHNldDsg fQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTIyNSwxMyArNTE5MCwxMyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91YmxlIHJvdGF0aW9uX2FuZ2xlX3ogeyBnZXQ7IHNl dDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IENsdXR0ZXIuVmVydGV4IHJvdGF0aW9uX2NlbnRlcl94IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJ CXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIHJvdGF0aW9uX2NlbnRlcl94IHsgb3duZWQgZ2V0OyBz ZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1Ymxp YyBDbHV0dGVyLlZlcnRleCByb3RhdGlvbl9jZW50ZXJfeSB7IG93bmVkIGdldDsgc2V0OyB9Cisr CQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCByb3RhdGlvbl9jZW50ZXJfeSB7IG93bmVkIGdldDsg c2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJs aWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3ogeyBvd25lZCBnZXQ7IHNldDsgfQor KwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0Qgcm90YXRpb25fY2VudGVyX3ogeyBvd25lZCBnZXQ7 IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVi bGljIENsdXR0ZXIuR3Jhdml0eSByb3RhdGlvbl9jZW50ZXJfel9ncmF2aXR5IHsgZ2V0OyBzZXQ7 IH0KK0BAIC01MjU3LDcgKzUyMjIsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg Ym9vbCBzaG93X29uX3NldF9wYXJlbnQgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRo b2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuU2l6 ZSBzaXplIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5TaXplIHNpemUg eyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVi bGljIENsdXR0ZXIuVGV4dERpcmVjdGlvbiB0ZXh0X2RpcmVjdGlvbiB7IGdldDsgc2V0OyB9Cisg CQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MzE5LDExICs1Mjg0LDEyIEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIG1vdGlvbl9ldmVudCAoQ2x1 dHRlci5Nb3Rpb25FdmVudCBldmVudCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44 IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwYWludCAoKTsKKysJCXB1YmxpYyB2 aXJ0dWFsIHNpZ25hbCB2b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250 ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCB2b2lkIHBhcmVudF9zZXQgKENsdXR0ZXIuQWN0b3I/IG9sZF9wYXJlbnQpOworKwkJW0hh c0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgdm9pZCBwaWNrIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIHBpY2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0KTsK KyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgcXVldWVfcmVsYXlvdXQgKCk7CitAQCAtNTM2MSw2ICs1MzI3 LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGVuYWJsZWQgeyBnZXQ7 IHNldDsgfQorIAkJcHVibGljIHN0cmluZyBuYW1lIHsgZ2V0OyBzZXQ7IH0KKyAJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfYWN0b3Jfbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgQWN0b3JOb2Rl IDogQ2x1dHRlci5QYWludE5vZGUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKysJCXB1YmxpYyBBY3Rvck5v ZGUgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbGlnbl9jb25zdHJh aW50X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGlj IGNsYXNzIEFsaWduQ29uc3RyYWludCA6IENsdXR0ZXIuQ29uc3RyYWludCB7CitAQCAtNTM4OCwx OSArNTM1OSwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLlRpbWVsaW5lIGdldF90aW1lbGluZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWxvbmcgcmVnaXN0ZXJfY2xvc3VyZSAoR0xpYi5DbG9z dXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0 YXRpYyB1bG9uZyByZWdpc3Rlcl9mdW5jIChDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jbG9zdXJlIChHTGli LkNsb3N1cmUgY2xvc3VyZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZnVuYyAob3duZWQgQ2x1dHRl ci5BbHBoYUZ1bmMgZnVuYyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJs aWMgdm9pZCBzZXRfbW9kZSAodWxvbmcgbW9kZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfdGltZWxp bmUgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIEFscGhhLndpdGhfZnVuYyAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwgb3duZWQgQ2x1 dHRlci5BbHBoYUZ1bmMgZnVuYyk7CisgCQlwdWJsaWMgZG91YmxlIGFscGhhIHsgZ2V0OyB9Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdWxvbmcgbW9kZSB7IGdldDsg c2V0IGNvbnN0cnVjdDsgfQorQEAgLTU0MTEsMzUgKzUzNzUsMjYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAlwdWJsaWMgY2xhc3MgQW5pbWF0aW9uIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuU2Ny aXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisg CQlwdWJsaWMgQW5pbWF0aW9uICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRp b24gYmluZCAoc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgZmluYWwpOworLQkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYmluZF9pbnRlcnZhbCAoc3RyaW5nIHByb3Bl cnR5X25hbWUsIG93bmVkIENsdXR0ZXIuSW50ZXJ2YWwgaW50ZXJ2YWwpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWxwaGEgZ2V0X2FscGhhICgpOworIAkJ cHVibGljIHVpbnQgZ2V0X2R1cmF0aW9uICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5J bnRlcnZhbCBnZXRfaW50ZXJ2YWwgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKyAJCXB1YmxpYyBi b29sIGdldF9sb29wICgpOworIAkJcHVibGljIHVsb25nIGdldF9tb2RlICgpOworLQkJcHVibGlj IHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X29iamVjdCAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuVGltZWxpbmUgZ2V0X3RpbWVsaW5lICgpOworIAkJcHVibGljIGJvb2wgaGFzX3Byb3Bl cnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2FscGhhIChDbHV0dGVyLkFscGhhIGFscGhhKTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9kdXJhdGlvbiAodWludCBtc2Vjcyk7CisgCQlwdWJsaWMgdm9pZCBzZXRfbG9vcCAoYm9vbCBs b29wKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9tb2RlICh1bG9uZyBtb2RlKTsKKyAJCXB1YmxpYyB2 b2lkIHNldF9vYmplY3QgKEdMaWIuT2JqZWN0IG9iamVjdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRf dGltZWxpbmUgKENsdXR0ZXIuVGltZWxpbmU/IHRpbWVsaW5lKTsKKy0JCXB1YmxpYyB2b2lkIHVu YmluZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJcHVibGljIHVub3duZWQg Q2x1dHRlci5BbmltYXRpb24gdXBkYXRlIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1 ZSBmaW5hbCk7CistCQlwdWJsaWMgdm9pZCB1cGRhdGVfaW50ZXJ2YWwgKHN0cmluZyBwcm9wZXJ0 eV9uYW1lLCBDbHV0dGVyLkludGVydmFsIGludGVydmFsKTsKKysJCVtOb0FjY2Vzc29yTWV0aG9k XQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkFscGhhIGFscGhhIHsgZ2V0 OyBzZXQ7IH0KKysJCXB1YmxpYyBDbHV0dGVyLkFscGhhIGFscGhhIHsgb3duZWQgZ2V0OyBzZXQ7 IH0KKyAJCXB1YmxpYyB1aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBib29s IGxvb3AgeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIHVsb25nIG1vZGUgeyBnZXQ7IHNldDsgfQor LQkJcHVibGljIEdMaWIuT2JqZWN0IG9iamVjdCB7IGdldDsgc2V0OyB9CisrCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKysJCXB1YmxpYyBHTGliLk9iamVjdCBvYmplY3QgeyBvd25lZCBnZXQ7IHNldDsg fQorIAkJcHVibGljIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUgeyBnZXQ7IHNldDsgfQorLQkJ W0hhc0VtaXR0ZXJdCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjb21wbGV0ZWQgKCk7 CisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBzdGFydGVkICgpOworIAl9CitAQCAtNTQ2 MCwyMSArNTQxNSwxOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwcm90ZWN0ZWQgQmFja2Vu ZCAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFkZF9vcHRpb25z IChHTGliLk9wdGlvbkdyb3VwIGdyb3VwKTsKKy0JCXB1YmxpYyB2b2lkIGJlbGxfbm90aWZ5ICgp OworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgY3JlYXRlX2NvbnRleHQg KCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwg dW5vd25lZCBDbHV0dGVyLlN0YWdlV2luZG93IGNyZWF0ZV9zdGFnZSAoQ2x1dHRlci5TdGFnZSB3 cmFwcGVyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmly dHVhbCB2b2lkIGVuc3VyZV9jb250ZXh0IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBn ZXRfZGV2aWNlX21hbmFnZXIgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNlYXQgZ2V0 X2RlZmF1bHRfc2VhdCAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCBDbHV0 dGVyLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC44IildCisgCQlwdWJsaWMgdW5vd25lZCBDYWlyby5Gb250T3B0aW9ucyBnZXRfZm9udF9vcHRp b25zICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5JbnB1dE1ldGhvZCBnZXRfaW5wdXRf bWV0aG9kICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5LZXltYXAgZ2V0X2tleW1hcCAo KTsKKyAJCXB1YmxpYyBkb3VibGUgZ2V0X3Jlc29sdXRpb24gKCk7CisgCQlbTm9XcmFwcGVyXQor IAkJcHVibGljIHZpcnR1YWwgdm9pZCBpbml0X2V2ZW50cyAoKTsKK0BAIC01NDk2LDk1ICs1NDQ4 LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzZXR0aW5nc19jaGFuZ2VkICgpOworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9iZWhhdmlvdXJfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMg YWJzdHJhY3QgY2xhc3MgQmVoYXZpb3VyIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuU2NyaXB0YWJs ZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90 ZWN0ZWQgQmVoYXZpb3VyICgpOworLQkJcHVibGljIHZvaWQgYWN0b3JzX2ZvcmVhY2ggKENsdXR0 ZXIuQmVoYXZpb3VyRm9yZWFjaEZ1bmMgZnVuYyk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBhbHBoYV9ub3RpZnkgKGRvdWJsZSBhbHBoYV92YWx1ZSk7CistCQlwdWJs aWMgdm9pZCBhcHBseSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgR0xpYi5TTGlz dDx3ZWFrIENsdXR0ZXIuQWN0b3I+IGdldF9hY3RvcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLkFscGhhIGdldF9hbHBoYSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25fYWN0b3JzICgp OworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfbnRoX2FjdG9yIChpbnQgaW5k ZXhfKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIGlzX2Fw cGxpZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgcmVtb3ZlIChDbHV0 dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1Ymxp YyB2b2lkIHJlbW92ZV9hbGwgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGEgKENsdXR0ZXIu QWxwaGEgYWxwaGEpOworLQkJcHVibGljIENsdXR0ZXIuQWxwaGEgYWxwaGEgeyBnZXQ7IHNldDsg fQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFs IHZvaWQgYXBwbGllZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC40IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCByZW1vdmVkIChDbHV0dGVy LkFjdG9yIGFjdG9yKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX2RlcHRoX2dldF90eXBl ICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEJlaGF2aW91ckRlcHRoIDog Q2x1dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQmVoYXZpb3VyKiIpXQor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIEJlaGF2aW91ckRlcHRoIChD bHV0dGVyLkFscGhhPyBhbHBoYSwgaW50IGRlcHRoX3N0YXJ0LCBpbnQgZGVwdGhfZW5kKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKG91 dCBpbnQgZGVwdGhfc3RhcnQsIG91dCBpbnQgZGVwdGhfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3VuZHMgKGludCBkZXB0aF9zdGFydCwg aW50IGRlcHRoX2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBpbnQgZGVwdGhfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGlj IGludCBkZXB0aF9zdGFydCB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91 cl9vcGFjaXR5X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNz IEJlaGF2aW91ck9wYWNpdHkgOiBDbHV0dGVyLkJlaGF2aW91ciwgQ2x1dHRlci5TY3JpcHRhYmxl IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNs dXR0ZXJCZWhhdmlvdXIqIildCistCQlwdWJsaWMgQmVoYXZpb3VyT3BhY2l0eSAoQ2x1dHRlci5B bHBoYT8gYWxwaGEsIHVpbnQ4IG9wYWNpdHlfc3RhcnQsIHVpbnQ4IG9wYWNpdHlfZW5kKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKG91 dCB1aW50OCBvcGFjaXR5X3N0YXJ0LCBvdXQgdWludDggb3BhY2l0eV9lbmQpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvdW5kcyAodWludDggb3Bh Y2l0eV9zdGFydCwgdWludDggb3BhY2l0eV9lbmQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgdWludCBvcGFjaXR5X2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyB1aW50IG9wYWNpdHlfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl9iZWhhdmlvdXJfc2NhbGVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIp XQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyU2NhbGUgOiBDbHV0dGVyLkJlaGF2aW91ciwgQ2x1 dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlLCB0eXBlID0gIkNsdXR0ZXJCZWhhdmlvdXIqIildCistCQlwdWJsaWMgQmVoYXZpb3VyU2Nh bGUgKENsdXR0ZXIuQWxwaGE/IGFscGhhLCBkb3VibGUgeF9zY2FsZV9zdGFydCwgZG91YmxlIHlf c2NhbGVfc3RhcnQsIGRvdWJsZSB4X3NjYWxlX2VuZCwgZG91YmxlIHlfc2NhbGVfZW5kKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKG91 dCBkb3VibGUgeF9zY2FsZV9zdGFydCwgb3V0IGRvdWJsZSB5X3NjYWxlX3N0YXJ0LCBvdXQgZG91 YmxlIHhfc2NhbGVfZW5kLCBvdXQgZG91YmxlIHlfc2NhbGVfZW5kKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3VuZHMgKGRvdWJsZSB4X3NjYWxl X3N0YXJ0LCBkb3VibGUgeV9zY2FsZV9zdGFydCwgZG91YmxlIHhfc2NhbGVfZW5kLCBkb3VibGUg eV9zY2FsZV9lbmQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHhfc2NhbGVfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVi bGljIGRvdWJsZSB4X3NjYWxlX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGRvdWJsZSB5X3Nj YWxlX2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeV9zY2FsZV9zdGFydCB7IGdldDsg c2V0OyB9CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Jpbl9sYXlvdXRfZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgY2xhc3MgQmluTGF5b3V0IDogQ2x1dHRl ci5MYXlvdXRNYW5hZ2VyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlLCB0eXBlID0gIkNsdXR0ZXJMYXlvdXRNYW5hZ2VyKiIpXQorIAkJcHVibGljIEJpbkxheW91 dCAoQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiA9IENsdXR0ZXIuQmluQWxpZ25tZW50LlNU QVJULCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduID0gQ2x1dHRlci5CaW5BbGlnbm1lbnQu U1RBUlQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGFkZCAoQ2x1dHRlci5B Y3RvciBjaGlsZCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5CaW5BbGln bm1lbnQgeV9hbGlnbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Fs aWdubWVudCAoQ2x1dHRlci5BY3Rvcj8gY2hpbGQsIG91dCBDbHV0dGVyLkJpbkFsaWdubWVudCB4 X2FsaWduLCBvdXQgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbik7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3Rvcj8gY2hpbGQs IENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxp Z24pOworIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGlj IENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24geyBnZXQ7IHNldDsgfQorQEAgLTU3NTgsMzcg KzU2MjYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1 YmxpYyBmbG9hdCB5OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jYWlyb190ZXh0dXJlX2dldF90eXBlICgp IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBjbGFzcyBDYWlyb1RleHR1cmUgOiBDbHV0 dGVyLlRleHR1cmUsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVy LkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1YmxpYyBD YWlyb1RleHR1cmUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lkIGNs ZWFyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENhaXJvLkNvbnRleHQgY3JlYXRl ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENhaXJvLkNvbnRleHQgY3JlYXRlX3Jl Z2lvbiAoaW50IHhfb2Zmc2V0LCBpbnQgeV9vZmZzZXQsIGludCB3aWR0aCwgaW50IGhlaWdodCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgYm9vbCBnZXRfYXV0b19y ZXNpemUgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfc3VyZmFjZV9zaXplIChvdXQgdWludCB3aWR0 aCwgb3V0IHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyB2b2lkIGludmFsaWRhdGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CQlwdWJsaWMgdm9pZCBpbnZhbGlkYXRlX3JlY3RhbmdsZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBy ZWN0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9h dXRvX3Jlc2l6ZSAoYm9vbCB2YWx1ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfc3VyZmFjZV9zaXpl ICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgYm9vbCBhdXRvX3Jlc2l6ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IHN1cmZhY2VfaGVpZ2h0IHsgZ2V0OyBzZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgc3VyZmFjZV93aWR0aCB7IGdldDsg c2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgQ2Fpcm8uU3VyZmFjZSBjcmVhdGVfc3VyZmFjZSAodWludCB3aWR0aCwgdWludCBoZWln aHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2ln bmFsIGJvb2wgZHJhdyAoQ2Fpcm8uQ29udGV4dCBjcik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NhbnZh c19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMg Y2xhc3MgQ2FudmFzIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CitAQCAtNTkyMCw2 MiArNTc1NywyNCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfZmFj dG9yIChkb3VibGUgZmFjdG9yKTsKKyAJCXB1YmxpYyBkb3VibGUgZmFjdG9yIHsgZ2V0OyBzZXQ7 IH0KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfZGV2aWNlX21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRGV2aWNlTWFu YWdlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBEZXZpY2VNYW5hZ2VyICgpOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWRkX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZSBk ZXZpY2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfa2Jk X2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbXByZXNzX21vdGlvbiAoQ2x1dHRl ci5FdmVudCBldmVudCwgQ2x1dHRlci5FdmVudCB0b19kaXNjYXJkKTsKKy0JCXB1YmxpYyB2aXJ0 dWFsIENsdXR0ZXIuVmlydHVhbElucHV0RGV2aWNlIGNyZWF0ZV92aXJ0dWFsX2RldmljZSAoQ2x1 dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNlX3R5cGUpOworLQkJcHVibGljIHZpcnR1YWwgdW5v d25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9jb3JlX2RldmljZSAoQ2x1dHRlci5JbnB1dERl dmljZVR5cGUgZGV2aWNlX3R5cGUpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIu RGV2aWNlTWFuYWdlciBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQg Q2x1dHRlci5JbnB1dERldmljZSBnZXRfZGV2aWNlIChpbnQgZGV2aWNlX2lkKTsKKy0JCXB1Ymxp YyB2b2lkIGdldF9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0 dGluZ3MpOworLQkJcHVibGljIHZvaWQgZ2V0X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRl ci5Qb2ludGVyQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIENsdXR0 ZXIuVmlydHVhbERldmljZVR5cGUgZ2V0X3N1cHBvcnRlZF92aXJ0dWFsX2RldmljZV90eXBlcyAo KTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4gbGlzdF9k ZXZpY2VzICgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5TTGlzdDxDbHV0dGVyLklucHV0RGV2 aWNlPiBwZWVrX2RldmljZXMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCByZW1vdmVfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzZWxlY3Rfc3RhZ2VfZXZlbnRzIChDbHV0 dGVyLlN0YWdlIHN0YWdlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9rYmRfYTExeV9zZXR0aW5ncyAo Q2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJcHVibGljIHZvaWQgc2V0X3Bv aW50ZXJfYTExeV9kd2VsbF9jbGlja190eXBlIChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlj a1R5cGUgY2xpY2tfdHlwZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X3NldHRp bmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7 IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9hZGRlZCAoQ2x1dHRl ci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRldmljZV9yZW1v dmVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg a2JkX2ExMXlfZmxhZ3NfY2hhbmdlZCAodWludCBzZXR0aW5nc19mbGFncywgdWludCBjaGFuZ2Vk X21hc2spOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X21vZHNfc3RhdGVfY2hhbmdl ZCAodWludCBsYXRjaGVkX21hc2ssIHVpbnQgbG9ja2VkX21hc2spOworLQkJcHVibGljIHNpZ25h bCB2b2lkIHB0cl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGVfY2hhbmdlZCAoQ2x1dHRlci5Qb2ludGVy QTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHB0 cl9hMTF5X3RpbWVvdXRfc3RhcnRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UsIENsdXR0 ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIHVpbnQgZGVsYXkpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRfc3RvcHBlZCAoQ2x1dHRlci5JbnB1 dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5 cGUpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHRvb2xfY2hhbmdlZCAoQ2x1dHRlci5JbnB1dERl dmljZSBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2VUb29sIHAwKTsKKy0JfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfZHJhZ19hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorIAlwdWJsaWMgY2xhc3MgRHJhZ0FjdGlvbiA6IENsdXR0ZXIuQWN0aW9uIHsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24q IildCisgCQlwdWJsaWMgRHJhZ0FjdGlvbiAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9kcmFnX2Fy ZWEgKENsdXR0ZXIuUmVjdCBkcmFnX2FyZWEpOworKwkJcHVibGljIGJvb2wgZ2V0X2RyYWdfYXJl YSAoR3JhcGhlbmUuUmVjdCBkcmFnX2FyZWEpOworIAkJcHVibGljIENsdXR0ZXIuRHJhZ0F4aXMg Z2V0X2RyYWdfYXhpcyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2Ry YWdfaGFuZGxlICgpOworIAkJcHVibGljIHZvaWQgZ2V0X2RyYWdfdGhyZXNob2xkIChvdXQgdWlu dCB4X3RocmVzaG9sZCwgb3V0IHVpbnQgeV90aHJlc2hvbGQpOworIAkJcHVibGljIHZvaWQgZ2V0 X21vdGlvbl9jb29yZHMgKG91dCBmbG9hdCBtb3Rpb25feCwgb3V0IGZsb2F0IG1vdGlvbl95KTsK KyAJCXB1YmxpYyB2b2lkIGdldF9wcmVzc19jb29yZHMgKG91dCBmbG9hdCBwcmVzc194LCBvdXQg ZmxvYXQgcHJlc3NfeSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ19hcmVhIChDbHV0dGVyLlJl Y3Q/IGRyYWdfYXJlYSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ19hcmVhIChHcmFwaGVuZS5S ZWN0PyBkcmFnX2FyZWEpOworIAkJcHVibGljIHZvaWQgc2V0X2RyYWdfYXhpcyAoQ2x1dHRlci5E cmFnQXhpcyBheGlzKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9kcmFnX2hhbmRsZSAoQ2x1dHRlci5B Y3Rvcj8gaGFuZGxlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9kcmFnX3RocmVzaG9sZCAoaW50IHhf dGhyZXNob2xkLCBpbnQgeV90aHJlc2hvbGQpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuUmVjdCBkcmFnX2Fy ZWEgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgZHJhZ19hcmVh IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBib29sIGRyYWdfYXJlYV9zZXQgeyBnZXQ7IH0K K0BAIC02MDExLDEzICs1ODEwLDEzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtOb1dyYXBw ZXJdCisgCQlwdWJsaWMgdmlydHVhbCBib29sIG1vZGlmeV9wYWludF92b2x1bWUgKENsdXR0ZXIu UGFpbnRWb2x1bWUgdm9sdW1lKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHBhaW50IChDbHV0dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZp cnR1YWwgdm9pZCBwYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCwgQ2x1 dHRlci5FZmZlY3RQYWludEZsYWdzIGZsYWdzKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCB2b2lkIHBpY2sgKENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFncyk7CisrCQlw dWJsaWMgdmlydHVhbCB2b2lkIHBpY2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0 KTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBvc3RfcGFpbnQgKCk7 CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBvc3RfcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0 IHBhaW50X2NvbnRleHQpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wg cHJlX3BhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFpbnQgKENsdXR0ZXIu UGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorIAkJcHVibGljIHZvaWQgcXVldWVfcmVwYWludCAoKTsKKyAJfQorQEAgLTYwNjgsNyArNTg2 Nyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB1aW50IGdldF9tb2RlX2dyb3Vw ICgpOworIAkJcHVibGljIGJvb2wgZ2V0X3BhZF9ldmVudF9kZXRhaWxzIChvdXQgdWludCBudW1i ZXIsIG91dCB1aW50IG1vZGUsIG91dCBkb3VibGUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9wb3NpdGlvbiAoQ2x1dHRlci5Qb2ludCBw b3NpdGlvbik7CisrCQlwdWJsaWMgdm9pZCBnZXRfcG9zaXRpb24gKEdyYXBoZW5lLlBvaW50IHBv c2l0aW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuQWN0b3IgZ2V0X3JlbGF0ZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorQEAgLTYzMDgsNyArNjEwNyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9heGlzX3ZhbHVlIChbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZG91YmxlW10gYXhlcywgQ2x1dHRlci5JbnB1dEF4 aXMgYXhpcywgb3V0IGRvdWJsZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorLQkJcHVibGljIGJvb2wgZ2V0X2Nvb3JkcyAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1 ZW5jZSwgQ2x1dHRlci5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfY29vcmRzIChD bHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlLCBHcmFwaGVuZS5Qb2ludCBwb2ludCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgaW50IGdldF9kZXZpY2VfaWQg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjMyMiw3ICs2MTIxLDcgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZ2V0X2VuYWJsZWQgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3Rv ciBnZXRfZ3JhYmJlZF9hY3RvciAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2dyb3VwX25fbW9kZXMg KGludCBncm91cCk7CisrCQlwdWJsaWMgdmlydHVhbCBpbnQgZ2V0X2dyb3VwX25fbW9kZXMgKGlu dCBncm91cCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBn ZXRfaGFzX2N1cnNvciAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02MzQ0 LDE2ICs2MTQzLDE3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuU3RhZ2UgZ2V0X3BvaW50ZXJfc3RhZ2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yMiIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9wcm9kdWN0X2lkICgpOworKwkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5TZWF0IGdldF9zZWF0ICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZp Y2U+IGdldF9zbGF2ZV9kZXZpY2VzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjIiKV0K KyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdmVuZG9yX2lkICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGdyYWIgKENsdXR0ZXIuQWN0b3IgYWN0 b3IpOworLQkJcHVibGljIGJvb2wgaXNfZ3JvdXBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvdGhl cl9kZXZpY2UpOworLQkJcHVibGljIGJvb2wgaXNfbW9kZV9zd2l0Y2hfYnV0dG9uICh1aW50IGdy b3VwLCB1aW50IGJ1dHRvbik7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGlzX2dyb3VwZWQgKENs dXR0ZXIuSW5wdXREZXZpY2Ugb3RoZXJfZGV2aWNlKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wg aXNfbW9kZV9zd2l0Y2hfYnV0dG9uICh1aW50IGdyb3VwLCB1aW50IGJ1dHRvbik7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGJvb2wga2V5Y29kZV90b19ldmRldiAo dWludCBoYXJkd2FyZV9rZXljb2RlLCB1aW50IGV2ZGV2X2tleWNvZGUpOworKwkJcHVibGljIHZp cnR1YWwgYm9vbCBrZXljb2RlX3RvX2V2ZGV2ICh1aW50IGhhcmR3YXJlX2tleWNvZGUsIHVpbnQg ZXZkZXZfa2V5Y29kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5BY3RvciBzZXF1ZW5jZV9nZXRfZ3JhYmJlZF9hY3RvciAoQ2x1dHRl ci5FdmVudFNlcXVlbmNlIHNlcXVlbmNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CitAQCAtNjM2OSwxMiArNjE2OSwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg dm9pZCB1bmdyYWIgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMg dm9pZCB1cGRhdGVfZnJvbV9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgYm9vbCB1cGRhdGVf c3RhZ2UpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdXBkYXRlX2Zy b21fdG9vbCAoQ2x1dHRlci5JbnB1dERldmljZVRvb2wgdG9vbCk7CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkJh Y2tlbmQgYmFja2VuZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkRl dmljZU1hbmFnZXIgZGV2aWNlX21hbmFnZXIgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJ cHVibGljIENsdXR0ZXIuSW5wdXRNb2RlIGRldmljZV9tb2RlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0K KyAJCXB1YmxpYyBzdHJpbmcgZGV2aWNlX25vZGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorQEAgLTYzOTcsNiArNjE5Niw3IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHN0cmluZyBwcm9kdWN0 X2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBDbHV0dGVyLlNlYXQgc2VhdCB7IGdl dDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGlj IHN0cmluZyB2ZW5kb3JfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CitAQCAtNjQzNCw3ICs2 MjM0LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X2Nhbl9zaG93 X3ByZWVkaXQgKGJvb2wgY2FuX3Nob3dfcHJlZWRpdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29u dGVudF9oaW50cyAoQ2x1dHRlci5JbnB1dENvbnRlbnRIaW50RmxhZ3MgaGludCk7CisgCQlwdWJs aWMgdm9pZCBzZXRfY29udGVudF9wdXJwb3NlIChDbHV0dGVyLklucHV0Q29udGVudFB1cnBvc2Ug cHVycG9zZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9uIChDbHV0dGVyLlJl Y3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9uIChHcmFwaGVuZS5S ZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X2lucHV0X3BhbmVsX3N0YXRlIChDbHV0dGVy LklucHV0UGFuZWxTdGF0ZSBzdGF0ZSk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1 YWwgdm9pZCBzZXRfcHJlZWRpdF90ZXh0IChzdHJpbmcgcHJlZWRpdCwgdWludCBjdXJzb3IpOwor QEAgLTY0NTMsNyArNjI1Myw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtOb1dyYXBwZXJd CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHJlc2V0ICgpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoQ2x1dHRlci5SZWN0IHJlY3Qp OworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9uIChHcmFwaGVuZS5S ZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X2lucHV0X3BhbmVsX3N0YXRlIChDbHV0dGVy LklucHV0UGFuZWxTdGF0ZSBzdGF0ZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfcHJlZWRpdF90ZXh0 IChzdHJpbmc/IHByZWVkaXQsIHVpbnQgY3Vyc29yKTsKKyAJCVtOb1dyYXBwZXJdCitAQCAtNjQ3 MCw3ICs2MjcwLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuSW5w dXRDb250ZW50UHVycG9zZSBjb250ZW50X3B1cnBvc2UgeyBnZXQ7IHNldDsgfQorIAkJW0hhc0Vt aXR0ZXJdCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY29tbWl0IChzdHJpbmcgdGV4dCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX2xvY2F0aW9uX2NoYW5nZWQgKENsdXR0ZXIuUmVjdCBv YmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9sb2NhdGlvbl9jaGFuZ2VkIChH cmFwaGVuZS5SZWN0IG9iamVjdCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyBzaWduYWwg dm9pZCBkZWxldGVfc3Vycm91bmRpbmcgKHVpbnQgb2Zmc2V0LCB1aW50IGxlbik7CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgaW5wdXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRl IG9iamVjdCk7CitAQCAtNjU0NiwyNyArNjM0NiwzMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQg S2V5bWFwICgpOworIAkJcHVibGljIHZpcnR1YWwgYm9vbCBnZXRfY2Fwc19sb2NrX3N0YXRlICgp OworKwkJcHVibGljIHZpcnR1YWwgUGFuZ28uRGlyZWN0aW9uIGdldF9kaXJlY3Rpb24gKCk7Cisg CQlwdWJsaWMgdmlydHVhbCBib29sIGdldF9udW1fbG9ja19zdGF0ZSAoKTsKKyAJCXB1YmxpYyBz aWduYWwgdm9pZCBzdGF0ZV9jaGFuZ2VkICgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9sYXllcl9ub2Rl X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBMYXllck5vZGUgOiBDbHV0dGVyLlBhaW50 Tm9kZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9 ICJDbHV0dGVyUGFpbnROb2RlKiIpXQorKwkJcHVibGljIExheWVyTm9kZSAoQ29nbC5NYXRyaXgg cHJvamVjdGlvbiwgQ2Fpcm8uUmVjdGFuZ2xlIHZpZXdwb3J0LCBmbG9hdCB3aWR0aCwgZmxvYXQg aGVpZ2h0LCB1aW50OCBvcGFjaXR5KTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfbGF5b3V0X21hbmFnZXJf Z2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgYWJz dHJhY3QgY2xhc3MgTGF5b3V0TWFuYWdlciA6IEdMaWIuSW5pdGlhbGx5VW5vd25lZCB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgTGF5 b3V0TWFuYWdlciAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWxsb2NhdGUgKENsdXR0ZXIu Q29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvckJveCBhbGxvY2F0aW9uLCBDbHV0dGVy LkFsbG9jYXRpb25GbGFncyBmbGFncyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZp cnR1YWwgdW5vd25lZCBDbHV0dGVyLkFscGhhIGJlZ2luX2FuaW1hdGlvbiAodWludCBkdXJhdGlv biwgdWxvbmcgbW9kZSk7CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9nZXQgKENsdXR0ZXIuQ29udGFp bmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3RvciwgLi4uKTsKKyAJCXB1YmxpYyB2b2lk IGNoaWxkX2dldF9wcm9wZXJ0eSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVy LkFjdG9yIGFjdG9yLCBzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSB2YWx1ZSk7Cisg CQlwdWJsaWMgdm9pZCBjaGlsZF9zZXQgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1 dHRlci5BY3RvciBhY3RvciwgLi4uKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX3NldF9wcm9wZXJ0 eSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCBzdHJp bmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCQlbTm9XcmFwcGVyXQorIAkJ cHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkxheW91dE1ldGEgY3JlYXRlX2NoaWxkX21l dGEgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvcik7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMiIpXQorKwkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQg ZW5kX2FuaW1hdGlvbiAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRf Y2hpbGRfcHJvcGVydHkgKHN0cmluZyBuYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCisrCQlbTm9X cmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgZG91YmxlIGdldF9hbmltYXRpb25fcHJvZ3Jlc3Mg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkxheW91dE1ldGEgZ2V0X2NoaWxkX21ldGEgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5l ciwgQ2x1dHRlci5BY3RvciBhY3Rvcik7CitAQCAtNjYyMywxMiArNjQyNywxMiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuRWZmZWN0ICgpOworIAkJcHVibGlj IHZpcnR1YWwgQ29nbC5IYW5kbGUgY3JlYXRlX3RleHR1cmUgKGZsb2F0IHdpZHRoLCBmbG9hdCBo ZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyBib29sIGdl dF90YXJnZXRfcmVjdCAob3V0IHVub3duZWQgQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGlj IGJvb2wgZ2V0X3RhcmdldF9yZWN0IChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOwor IAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQi LCBzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBib29sIGdldF90YXJnZXRfc2l6ZSAob3V0IGZs b2F0IHdpZHRoLCBvdXQgZmxvYXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfdGFyZ2V0ICgpOworKwkJcHVibGljIHZpcnR1YWwgdm9p ZCBwYWludF90YXJnZXQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9wYWdlX3R1cm5fZWZmZWN0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KK0BAIC02NjQ1LDYgKzY0NDksMTYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIGRvdWJsZSBwZXJpb2QgeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIGZs b2F0IHJhZGl1cyB7IGdldDsgc2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgcmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGFpbnRfY29u dGV4dF9yZWYiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGFpbnRfY29udGV4dF9nZXRfdHlwZSAoKSIs IHVucmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGFpbnRfY29udGV4dF91bnJlZiIpXQorKwlbQ29t cGFjdF0KKysJcHVibGljIGNsYXNzIFBhaW50Q29udGV4dCB7CisrCQlwdWJsaWMgdm9pZCBkZXN0 cm95ICgpOworKwkJcHVibGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZnJhbWVidWZm ZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBwb3BfZnJhbWVidWZmZXIgKCk7CisrCQlwdWJsaWMgdm9p ZCBwdXNoX2ZyYW1lYnVmZmVyIChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsKKysJCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuUGFpbnRDb250ZXh0IEByZWYgKCk7CisrCQlwdWJsaWMgdm9p ZCB1bnJlZiAoKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGFpbnRfbm9kZV9nZXRfdHlwZSAoKSIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUGFp bnROb2RlIHsKK0BAIC02NjU0LDcgKzY0NjgsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgdm9pZCBhZGRfbXVsdGl0ZXh0dXJlX3JlY3RhbmdsZSAoQ2x1dHRlci5BY3RvckJveCBy ZWN0LCBmbG9hdCB0ZXh0X2Nvb3JkcywgdWludCB0ZXh0X2Nvb3Jkc19sZW4pOworIAkJcHVibGlj IHZvaWQgYWRkX3JlY3RhbmdsZSAoQ2x1dHRlci5BY3RvckJveCByZWN0KTsKKyAJCXB1YmxpYyB2 b2lkIGFkZF90ZXh0dXJlX3JlY3RhbmdsZSAoQ2x1dHRlci5BY3RvckJveCByZWN0LCBmbG9hdCB4 XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQkJcHVibGljIHZvaWQgcGFp bnQgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9mcmFtZWJ1ZmZl ciAoKTsKKysJCXB1YmxpYyB2b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9j b250ZXh0KTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUGFpbnROb2RlIEByZWYgKCk7Cisg CQlwdWJsaWMgdm9pZCBzZXRfbmFtZSAoc3RyaW5nIG5hbWUpOworIAkJcHVibGljIHZvaWQgdW5y ZWYgKCk7CitAQCAtNjY3Miw3ICs2NDg3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGZsb2F0IGdldF9oZWlnaHQgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggZ2V0 X29yaWdpbiAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF9vcmlnaW4gKG91dCB1bm93bmVkIEdyYXBo ZW5lLlBvaW50M0QgdmVydGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1 YmxpYyBmbG9hdCBnZXRfd2lkdGggKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitA QCAtNjY4Miw3ICs2NDk3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2hlaWdodCAoZmxvYXQgaGVpZ2h0KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9vcmlnaW4g KENsdXR0ZXIuVmVydGV4IG9yaWdpbik7CisrCQlwdWJsaWMgdm9pZCBzZXRfb3JpZ2luIChHcmFw aGVuZS5Qb2ludDNEIG9yaWdpbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlw dWJsaWMgdm9pZCBzZXRfd2lkdGggKGZsb2F0IHdpZHRoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KK0BAIC02NzY5LDI2ICs2NTg0LDE5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyBDbHV0dGVyLlBhdGggcGF0aCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgbm9kZV9yZWFjaGVkIChDbHV0dGVyLkFjdG9yIGFjdG9yLCB1aW50IGluZGV4KTsKKyAJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCByZWZf ZnVuY3Rpb24gPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfcmVmIiwgdHlwZV9pZCA9ICJjbHV0dGVy X3BpY2tfY29udGV4dF9nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gImNsdXR0ZXJfcGlj a19jb250ZXh0X3VucmVmIildCisrCVtDb21wYWN0XQorKwlwdWJsaWMgY2xhc3MgUGlja0NvbnRl eHQgeworKwkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuUGlja0NvbnRleHQgQHJlZiAoKTsKKysJCXB1YmxpYyB2b2lkIHVucmVmICgpOworKwl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl9waXBlbGluZV9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBQaXBlbGluZU5vZGUgOiBDbHV0dGVyLlBhaW50 Tm9kZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlw cm90ZWN0ZWQgUGlwZWxpbmVOb2RlICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5Iiwg ZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcG9pbnRf Z2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CistCXB1YmxpYyBjbGFzcyBQb2ludCB7CistCQlwdWJsaWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBm bG9hdCB5OworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlBvaW50IGFsbG9jICgpOworLQkJcHVi bGljIENsdXR0ZXIuUG9pbnQgY29weSAoKTsKKy0JCXB1YmxpYyBmbG9hdCBkaXN0YW5jZSAoQ2x1 dHRlci5Qb2ludCBiLCBvdXQgZmxvYXQgeF9kaXN0YW5jZSwgb3V0IGZsb2F0IHlfZGlzdGFuY2Up OworLQkJcHVibGljIGJvb2wgZXF1YWxzIChDbHV0dGVyLlBvaW50IGIpOworLQkJcHVibGljIHZv aWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUG9pbnQgaW5pdCAoZmxvYXQg eCwgZmxvYXQgeSk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5Qb2ludCB6ZXJv ICgpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wcm9wZXJ0eV90cmFuc2l0aW9uX2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBQcm9wZXJ0eVRy YW5zaXRpb24gOiBDbHV0dGVyLlRyYW5zaXRpb24sIENsdXR0ZXIuU2NyaXB0YWJsZSB7CitAQCAt Njc5OCwzMyArNjYwNiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNl dF9wcm9wZXJ0eV9uYW1lIChzdHJpbmc/IHByb3BlcnR5X25hbWUpOworIAkJcHVibGljIHN0cmlu ZyBwcm9wZXJ0eV9uYW1lIHsgZ2V0OyBzZXQ7IH0KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29w eSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Jl Y3RfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCistCXB1YmxpYyBjbGFzcyBSZWN0IHsKKy0JCXB1YmxpYyB3ZWFrIENsdXR0ZXIuUG9pbnQg b3JpZ2luOworLQkJcHVibGljIHdlYWsgQ2x1dHRlci5TaXplIHNpemU7CistCQlwdWJsaWMgc3Rh dGljIENsdXR0ZXIuUmVjdCBhbGxvYyAoKTsKKy0JCXB1YmxpYyB2b2lkIGNsYW1wX3RvX3BpeGVs ICgpOworLQkJcHVibGljIGJvb2wgY29udGFpbnNfcG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQp OworLQkJcHVibGljIGJvb2wgY29udGFpbnNfcmVjdCAoQ2x1dHRlci5SZWN0IGIpOworLQkJcHVi bGljIENsdXR0ZXIuUmVjdCBjb3B5ICgpOworLQkJcHVibGljIGJvb2wgZXF1YWxzIChDbHV0dGVy LlJlY3QgYik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHZvaWQgZ2V0X2Nl bnRlciAoQ2x1dHRlci5Qb2ludCBjZW50ZXIpOworLQkJcHVibGljIGZsb2F0IGdldF9oZWlnaHQg KCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3dpZHRoICgpOworLQkJcHVibGljIGZsb2F0IGdldF94 ICgpOworLQkJcHVibGljIGZsb2F0IGdldF95ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5SZWN0IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQp OworLQkJcHVibGljIHZvaWQgaW5zZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKy0JCXB1Ymxp YyBib29sIGludGVyc2VjdGlvbiAoQ2x1dHRlci5SZWN0IGIsIENsdXR0ZXIuUmVjdD8gcmVzKTsK Ky0JCXB1YmxpYyBDbHV0dGVyLlJlY3Qgbm9ybWFsaXplICgpOworLQkJcHVibGljIHZvaWQgb2Zm c2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CistCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQg c194LCBmbG9hdCBzX3kpOworLQkJcHVibGljIHZvaWQgdW5pb24gKENsdXR0ZXIuUmVjdCBiLCBD bHV0dGVyLlJlY3QgcmVzKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlJlY3Qg emVybyAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcmVjdGFuZ2xlX2dldF90eXBlICgpIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJcHVibGljIGNsYXNzIFJlY3RhbmdsZSA6IENsdXR0 ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNv bnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC02OTA3LDggKzY2ODgsOCBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCisgCQlwdWJsaWMgU2Nyb2xsQWN0b3IgKCk7Cisg CQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxNb2RlIGdldF9zY3JvbGxfbW9kZSAoKTsKKy0JCXB1Ymxp YyB2b2lkIHNjcm9sbF90b19wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMg dm9pZCBzY3JvbGxfdG9fcmVjdCAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQg c2Nyb2xsX3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBz Y3JvbGxfdG9fcmVjdCAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9z Y3JvbGxfbW9kZSAoQ2x1dHRlci5TY3JvbGxNb2RlIG1vZGUpOworIAkJcHVibGljIENsdXR0ZXIu U2Nyb2xsTW9kZSBzY3JvbGxfbW9kZSB7IGdldDsgc2V0OyB9CisgCX0KK0BAIC02OTMwLDYgKzY3 MTEsNDQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJs aWMgZmxvYXQgeTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc2VhdF9nZXRfdHlwZSAoKSIpXQorKwlwdWJs aWMgYWJzdHJhY3QgY2xhc3MgU2VhdCA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTZWF0ICgpOworKwkJW05v V3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfa2JkX2ExMXlfc2V0dGluZ3Mg KENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgYmVsbF9ub3RpZnkgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbXByZXNzX21vdGlv biAoQ2x1dHRlci5FdmVudCBldmVudCwgQ2x1dHRlci5FdmVudCB0b19kaXNjYXJkKTsKKysJCVtO b1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvcHlfZXZlbnRfZGF0YSAoQ2x1dHRl ci5FdmVudCBzcmMsIENsdXR0ZXIuRXZlbnQgZGVzdCk7CisrCQlwdWJsaWMgdmlydHVhbCBDbHV0 dGVyLlZpcnR1YWxJbnB1dERldmljZSBjcmVhdGVfdmlydHVhbF9kZXZpY2UgKENsdXR0ZXIuSW5w dXREZXZpY2VUeXBlIGRldmljZV90eXBlKTsKKysJCXB1YmxpYyB2b2lkIGVuc3VyZV9hMTF5X3N0 YXRlICgpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZnJlZV9ldmVu dF9kYXRhIChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF9rYmRfYTEx eV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGlj IHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9rZXlib2FyZCAoKTsKKysJ CXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5LZXltYXAgZ2V0X2tleW1hcCAoKTsKKysJ CXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfcG9pbnRlciAo KTsKKysJCXB1YmxpYyB2b2lkIGdldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9p bnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZp cnR1YWxEZXZpY2VUeXBlIGdldF9zdXBwb3J0ZWRfdmlydHVhbF9kZXZpY2VfdHlwZXMgKCk7Cisr CQlwdWJsaWMgYm9vbCBnZXRfdG91Y2hfbW9kZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIEdMaWIu TGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+IGxpc3RfZGV2aWNlcyAoKTsKKysJCXB1Ymxp YyB2b2lkIHNldF9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0 dGluZ3MpOworKwkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfYTExeV9kd2VsbF9jbGlja190eXBl IChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xpY2tfdHlwZSk7CisrCQlwdWJs aWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0 dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCB3YXJwX3BvaW50ZXIgKGlu dCB4LCBpbnQgeSk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBDbHV0dGVyLkJh Y2tlbmQgYmFja2VuZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgYm9vbCB0 b3VjaF9tb2RlIHsgZ2V0OyB9CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNlX2FkZGVkIChD bHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNl X3JlbW92ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwg dm9pZCBrYmRfYTExeV9mbGFnc19jaGFuZ2VkICh1aW50IHNldHRpbmdzX2ZsYWdzLCB1aW50IGNo YW5nZWRfbWFzayk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfbW9kc19zdGF0ZV9j aGFuZ2VkICh1aW50IGxhdGNoZWRfbWFzaywgdWludCBsb2NrZWRfbWFzayk7CisrCQlwdWJsaWMg c2lnbmFsIHZvaWQgcHRyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZV9jaGFuZ2VkIChDbHV0dGVyLlBv aW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xpY2tfdHlwZSk7CisrCQlwdWJsaWMgc2lnbmFsIHZv aWQgcHRyX2ExMXlfdGltZW91dF9zdGFydGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwg Q2x1dHRlci5Qb2ludGVyQTExeVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlwZSwgdWludCBkZWxheSk7 CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGltZW91dF9zdG9wcGVkIChDbHV0dGVy LklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRpbWVvdXRUeXBlIHRpbWVv dXRfdHlwZSwgYm9vbCBjbGlja2VkKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB0b29sX2NoYW5n ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCBDbHV0dGVyLklucHV0RGV2aWNlVG9vbCBw MCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NldHRpbmdzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNsYXNzIFNldHRpbmdzIDogR0xpYi5PYmplY3Qg eworQEAgLTcwMDIsMTggKzY4MjEsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgU2hhZGVyTWF0 cml4ICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJn X2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfc2l6ZV9nZXRfdHlwZSAoKSIpXQorLQlb Q29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFNp emUgeworLQkJcHVibGljIGZsb2F0IGhlaWdodDsKKy0JCXB1YmxpYyBmbG9hdCB3aWR0aDsKKy0J CXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5TaXplIGFsbG9jICgpOworLQkJcHVibGljIENsdXR0ZXIu U2l6ZSBjb3B5ICgpOworLQkJcHVibGljIGJvb2wgZXF1YWxzIChDbHV0dGVyLlNpemUgYik7Cist CQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TaXplIGlu aXQgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zbmFwX2Nv bnN0cmFpbnRfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAlw dWJsaWMgY2xhc3MgU25hcENvbnN0cmFpbnQgOiBDbHV0dGVyLkNvbnN0cmFpbnQgeworQEAgLTcw NTIsMTQgKzY4NTksMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgZnJl ZXplX3VwZGF0ZXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMg Ym9vbCBnZXRfYWNjZXB0X2ZvY3VzICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3Rv ciBnZXRfYWN0b3JfYXRfcG9zIChDbHV0dGVyLlBpY2tNb2RlIHBpY2tfbW9kZSwgaW50IHgsIGlu dCB5KTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yX2F0X3BvcyAo Q2x1dHRlci5QaWNrTW9kZSBwaWNrX21vZGUsIGZsb2F0IHgsIGZsb2F0IHkpOworIAkJcHVibGlj IGJvb2wgZ2V0X2NhcHR1cmVfZmluYWxfc2l6ZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QsIGlu dCB3aWR0aCwgaW50IGhlaWdodCwgZmxvYXQgc2NhbGUpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDbHV0dGVy LkNvbG9yIGdldF9jb2xvciAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRl ci5TdGFnZSBnZXRfZGVmYXVsdCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1 dHRlci5Gb2cgZ2V0X2ZvZyAoKTsKKyAJCXB1YmxpYyBpbnQ2NCBnZXRfZnJhbWVfY291bnRlciAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuQWN0b3IgZ2V0X2tleV9mb2N1cyAoKTsKK0BAIC03MDY3LDE5ICs2ODcyLDE0IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGdldF9taW5pbXVtX3NpemUgKG91dCB1aW50 IHdpZHRoLCBvdXQgdWludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor IAkJcHVibGljIGJvb2wgZ2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9ub19jbGVhcl9oaW50ICgpOwor IAkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgZ2V0X3BlcnNwZWN0aXZlICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENhaXJvLlJlY3RhbmdsZUludCBnZXRf cmVkcmF3X2NsaXBfYm91bmRzICgpOworKwkJcHVibGljIENhaXJvLlJlZ2lvbiBnZXRfcmVkcmF3 X2NsaXAgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBn ZXRfdGhyb3R0bGVfbW90aW9uX2V2ZW50cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQi KV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdGl0bGUgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2FscGhhICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBib29sIGdldF91c2VfZm9nICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHZvaWQgaGlkZV9jdXJzb3IgKCk7CisgCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjAuOCIpXQorQEAgLTcwOTQsMTYgKzY4OTQsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIHZvaWQgc2V0X2FjY2VwdF9mb2N1cyAoYm9vbCBhY2NlcHRfZm9jdXMpOworIAkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZvZyAoQ2x1dHRlci5Gb2cgZm9nKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9rZXlfZm9jdXMg KENsdXR0ZXIuQWN0b3I/IGFjdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9taW5pbXVtX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9tb3Rpb25f ZXZlbnRzX2VuYWJsZWQgKGJvb2wgZW5hYmxlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdm9pZCBzZXRfbm9fY2xlYXJfaGludCAoYm9vbCBub19jbGVhcik7Cisg CQlwdWJsaWMgdm9pZCBzZXRfcGVyc3BlY3RpdmUgKENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3Bl Y3RpdmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X3Rocm90dGxlX21vdGlvbl9ldmVudHMgKGJvb2wgdGhyb3R0bGUpOworQEAgLTcxMTEsOCArNjkw Nyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF90aXRsZSAoc3Ry aW5nIHRpdGxlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF91c2VfYWxwaGEgKGJvb2wgdXNlX2FscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgdm9pZCBzZXRfdXNlX2ZvZyAoYm9vbCBmb2cpOworIAkJcHVibGljIHZvaWQgc2hvd19j dXJzb3IgKCk7CisgCQlwdWJsaWMgdm9pZCB0aGF3X3VwZGF0ZXMgKCk7CisgCQlwdWJsaWMgdm9p ZCB1cGRhdGVfcmVzb3VyY2Vfc2NhbGVzICgpOworQEAgLTcxMjIsMjAgKzY5MTYsMTQgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgY29sb3IgeyBnZXQ7IHNl dDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlwdWJsaWMgYm9vbCBjdXJzb3JfdmlzaWJs ZSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuRm9n IGZvZyB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJs aWMgQ2x1dHRlci5BY3RvciBrZXlfZm9jdXMgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgbm9fY2xlYXJfaGludCB7IGdldDsgc2V0OyB9 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRlci5QZXJzcGVj dGl2ZSBwZXJzcGVjdGl2ZSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCisgCQlwdWJsaWMgc3RyaW5nIHRpdGxlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBib29sIHVzZV9hbHBoYSB7IGdldDsgc2V0OyB9Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGJvb2wgdXNlX2ZvZyB7IGdldDsgc2V0OyB9Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9p ZCBhY3RpdmF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIwIildCitAQCAtNzE1OCw4 ICs2OTQ2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu OCIpXQorIAkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVyLlN0YWdlPiBsaXN0X3N0YWdl cyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIEdMaWIuU0xpc3Q8Q2x1dHRlci5TdGFnZT4gcGVla19z dGFnZXMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4yIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVmYXVsdF9z dGFnZSAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44Iild CisgCQlwdWJsaWMgQ2x1dHRlci5TdGFnZSBkZWZhdWx0X3N0YWdlIHsgZ2V0OyB9CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC44IildCitAQCAtNzIwNiwxNiArNjk5MiwxMCBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVpbnQgZ2V0X2R1cmF0aW9u IChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lKTsK KyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5TdGF0 ZUtleT4gZ2V0X2tleXMgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0 X3N0YXRlX25hbWUsIEdMaWIuT2JqZWN0PyBvYmplY3QsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zdGF0ZSAo KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgc3RyaW5nPiBn ZXRfc3RhdGVzICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuVGltZWxpbmUgZ2V0X3RpbWVsaW5lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB2b2lkIHJlbW92ZV9rZXkgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFy Z2V0X3N0YXRlX25hbWUsIEdMaWIuT2JqZWN0PyBvYmplY3QsIHN0cmluZz8gcHJvcGVydHlfbmFt ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uIChzdHJp bmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lLCB1aW50IGR1 cmF0aW9uKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlN0 YXRlIHNldF9rZXkgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZyB0YXJnZXRfc3Rh dGVfbmFtZSwgR0xpYi5PYmplY3Qgb2JqZWN0LCBzdHJpbmcgcHJvcGVydHlfbmFtZSwgdWludCBt b2RlLCBHTGliLlZhbHVlIHZhbHVlLCBkb3VibGUgcHJlX2RlbGF5LCBkb3VibGUgcG9zdF9kZWxh eSk7CitAQCAtNzIzNiwyNCArNzAxNiw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW0NvbXBh Y3RdCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNsYXNzIFN0YXRlS2V5 IHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X29iamVjdCAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZG91YmxlIGdldF9wb3N0X2RlbGF5ICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBkb3VibGUgZ2V0X3ByZV9kZWxheSAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Byb3BlcnR5 X25hbWUgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIEdMaWIuVHlwZSBnZXRfcHJv cGVydHlfdHlwZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X3NvdXJjZV9zdGF0ZV9uYW1lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB1bm93bmVkIHN0cmluZyBnZXRfdGFyZ2V0X3N0YXRlX25hbWUgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3ZhbHVlIChHTGliLlZhbHVlIHZhbHVlKTsKKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfc3dpcGVfYWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KK0BAIC03MjY1LDUzICs3MDI5LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBi b29sIHN3aXBlIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlN3aXBlRGlyZWN0aW9uIGRp cmVjdGlvbik7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhYmxlX2xheW91dF9nZXRfdHlwZSAoKSIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIs IHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgY2xhc3MgVGFibGVMYXlvdXQgOiBDbHV0dGVyLkxh eW91dE1hbmFnZXIgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Us IHR5cGUgPSAiQ2x1dHRlckxheW91dE1hbmFnZXIqIildCistCQlwdWJsaWMgVGFibGVMYXlvdXQg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FsaWdubWVudCAoQ2x1 dHRlci5BY3RvciBhY3Rvciwgb3V0IENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeF9hbGlnbiwgb3V0 IENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeV9hbGlnbik7CistCQlwdWJsaWMgaW50IGdldF9jb2x1 bW5fY291bnQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfY29sdW1uX3NwYWNpbmcgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZ2V0X2Vhc2luZ19kdXJhdGlvbiAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWxvbmcgZ2V0X2Vhc2luZ19tb2RlICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9leHBhbmQgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIG91dCBib29sIHhfZXhwYW5kLCBvdXQgYm9vbCB5X2V4cGFuZCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91 dCBib29sIHhfZmlsbCwgb3V0IGJvb2wgeV9maWxsKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3Jvd19j b3VudCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9yb3dfc3BhY2luZyAoKTsKKy0JCXB1YmxpYyB2 b2lkIGdldF9zcGFuIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgaW50IGNvbHVtbl9zcGFuLCBv dXQgaW50IHJvd19zcGFuKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRf dXNlX2FuaW1hdGlvbnMgKCk7CistCQlwdWJsaWMgdm9pZCBwYWNrIChDbHV0dGVyLkFjdG9yIGFj dG9yLCBpbnQgY29sdW1uLCBpbnQgcm93KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dm9pZCBzZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlRhYmxlQWxp Z25tZW50IHhfYWxpZ24sIENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeV9hbGlnbik7CistCQlwdWJs aWMgdm9pZCBzZXRfY29sdW1uX3NwYWNpbmcgKHVpbnQgc3BhY2luZyk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vhc2luZ19kdXJhdGlvbiAodWludCBtc2Vjcyk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vhc2luZ19tb2RlICh1bG9uZyBt b2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZXhwYW5kIChDbHV0 dGVyLkFjdG9yIGFjdG9yLCBib29sIHhfZXhwYW5kLCBib29sIHlfZXhwYW5kKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZmlsbCAoQ2x1dHRlci5BY3RvciBhY3Rvciwg Ym9vbCB4X2ZpbGwsIGJvb2wgeV9maWxsKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9yb3dfc3BhY2lu ZyAodWludCBzcGFjaW5nKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9zcGFuIChDbHV0dGVyLkFjdG9y IGFjdG9yLCBpbnQgY29sdW1uX3NwYW4sIGludCByb3dfc3Bhbik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHZvaWQgc2V0X3VzZV9hbmltYXRpb25zIChib29sIGFuaW1hdGUpOworLQkJ cHVibGljIHVpbnQgY29sdW1uX3NwYWNpbmcgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB1aW50IGVhc2luZ19kdXJhdGlvbiB7IGdldDsgc2V0OyB9CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHVsb25nIGVhc2luZ19tb2RlIHsgZ2V0OyBzZXQ7IH0KKy0J CXB1YmxpYyB1aW50IHJvd19zcGFjaW5nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgYm9vbCB1c2VfYW5pbWF0aW9ucyB7IGdldDsgc2V0OyB9CistCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3RhcF9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTQiKV0KKyAJcHVibGljIGNsYXNzIFRhcEFjdGlvbiA6IENsdXR0ZXIuR2VzdHVyZUFjdGlvbiB7 CitAQCAtNzMzOSw3ICs3MDU2LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENs dXR0ZXIuQ29sb3IgZ2V0X2N1cnNvcl9jb2xvciAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2N1cnNv cl9wb3NpdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMg dm9pZCBnZXRfY3Vyc29yX3JlY3QgKG91dCB1bm93bmVkIENsdXR0ZXIuUmVjdCByZWN0KTsKKysJ CXB1YmxpYyB2b2lkIGdldF9jdXJzb3JfcmVjdCAob3V0IHVub3duZWQgR3JhcGhlbmUuUmVjdCBy ZWN0KTsKKyAJCXB1YmxpYyB1aW50IGdldF9jdXJzb3Jfc2l6ZSAoKTsKKyAJCXB1YmxpYyBib29s IGdldF9jdXJzb3JfdmlzaWJsZSAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9lZGl0YWJsZSAoKTsK K0BAIC03NDU4LDcgKzcxNzUsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2No YW5nZWQgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgY3Vyc29yX2V2ZW50IChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5KTsKKysJCXB1YmxpYyB2 aXJ0dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9ldmVudCAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJ CVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHNp Z25hbCB2b2lkIGRlbGV0ZV90ZXh0IChpbnQgc3RhcnRfcG9zLCBpbnQgZW5kX3Bvcyk7CitAQCAt NzQ5Nyw5MiArNzIxNCw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBUZXh0Tm9k ZSAoUGFuZ28uTGF5b3V0PyBsYXlvdXQsIENsdXR0ZXIuQ29sb3I/IGNvbG9yKTsKKyAJfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC4y IildCistCXB1YmxpYyBjbGFzcyBUZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVu dG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlw dGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUg PSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBUZXh0dXJlICgpOworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIp XQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu OCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIFRleHR1cmUuZnJvbV9hY3RvciAoQ2x1dHRl ci5BY3RvciBhY3Rvcik7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGlj IFRleHR1cmUuZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBDbHV0dGVyLlRleHR1 cmVFcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIildCistCQlwdWJsaWMgdm9pZCBnZXRfYmFzZV9zaXplIChvdXQgaW50IHdpZHRo LCBvdXQgaW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQg Q29nbC5IYW5kbGUgZ2V0X2NvZ2xfbWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJ cHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X2NvZ2xfdGV4dHVyZSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMC44IildCistCQlwdWJsaWMgQ2x1dHRlci5UZXh0dXJlUXVhbGl0eSBnZXRfZmlsdGVyX3F1 YWxpdHkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2tlZXBfYXNw ZWN0X3JhdGlvICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9sb2Fk X2FzeW5jICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9sb2FkX2Rh dGFfYXN5bmMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGludCBnZXRfbWF4X3Rp bGVfd2FzdGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3BpY2tf d2l0aF9hbHBoYSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfcmVw ZWF0IChvdXQgYm9vbCByZXBlYXRfeCwgb3V0IGJvb2wgcmVwZWF0X3kpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9zeW5jX3NpemUgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIp XQorLQkJcHVibGljIGJvb2wgc2V0X2FyZWFfZnJvbV9yZ2JfZGF0YSAoW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgYm9vbCBoYXNfYWxwaGEsIGludCB4LCBpbnQg eSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgcm93c3RyaWRlLCBpbnQgYnBwLCBDbHV0dGVy LlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2NvZ2xfbWF0ZXJpYWwgKENvZ2wuSGFuZGxlIGNvZ2xfbWF0 ZXJpYWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2dsX3RleHR1 cmUgKENvZ2wuSGFuZGxlIGNvZ2xfdGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMg dm9pZCBzZXRfZmlsdGVyX3F1YWxpdHkgKENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZmlsdGVyX3F1 YWxpdHkpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9tX2ZpbGUg KHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNCIpXQor LQkJcHVibGljIGJvb2wgc2V0X2Zyb21fcmdiX2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0g ZmFsc2UpXSB1aW50OFtdIGRhdGEsIGJvb2wgaGFzX2FscGhhLCBpbnQgd2lkdGgsIGludCBoZWln aHQsIGludCByb3dzdHJpZGUsIGludCBicHAsIENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0 aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBzZXRf ZnJvbV95dXZfZGF0YSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0 YSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhy b3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2tl ZXBfYXNwZWN0X3JhdGlvIChib29sIGtlZXBfYXNwZWN0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfbG9hZF9hc3luYyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbG9hZF9kYXRhX2FzeW5jIChib29sIGxvYWRf YXN5bmMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9waWNrX3dpdGhf YWxwaGEgKGJvb2wgcGlja193aXRoX2FscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfcmVwZWF0IChib29sIHJlcGVhdF94LCBib29sIHJlcGVhdF95KTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3luY19zaXplIChib29sIHN5bmNfc2l6 ZSk7CisrCXB1YmxpYyBjbGFzcyBUZXh0dXJlIDogQ2x1dHRlci5BY3RvciB7CisgCQlwdWJsaWMg Q29nbC5NYXRlcmlhbCBjb2dsX21hdGVyaWFsIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBDb2ds LlRleHR1cmUgY29nbF90ZXh0dXJlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGJvb2wgZGlzYWJsZV9zbGljaW5nIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBzdHJpbmcgZmlsZW5hbWUgeyBvd25l ZCBnZXQ7IHNldDsgfQorLQkJcHVibGljIENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZmlsdGVyX3F1 YWxpdHkgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBib29sIGtlZXBfYXNwZWN0 X3JhdGlvIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBs b2FkX2FzeW5jIHsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgbG9h ZF9kYXRhX2FzeW5jIHsgc2V0OyB9CistCQlwdWJsaWMgYm9vbCBwaWNrX3dpdGhfYWxwaGEgeyBn ZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXBlYXRf eCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHJl cGVhdF95IHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBib29sIHN5bmNfc2l6ZSB7IGdldDsgc2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgdGlsZV93YXN0ZSB7IGdl dDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGxv YWRfZmluaXNoZWQgKEdMaWIuRXJyb3IgZXJyb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCB2b2lkIHBpeGJ1Zl9jaGFuZ2UgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFs IHZvaWQgc2l6ZV9jaGFuZ2UgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX3RleHR1cmVfbm9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorQEAgLTc2MDgsNyArNzI0Miw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9hdXRvX3JldmVyc2UgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2N1Ymlj X2Jlemllcl9wcm9ncmVzcyAoQ2x1dHRlci5Qb2ludCBjXzEsIENsdXR0ZXIuUG9pbnQgY18yKTsK KysJCXB1YmxpYyBib29sIGdldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKEdyYXBoZW5lLlBvaW50 IGNfMSwgR3JhcGhlbmUuUG9pbnQgY18yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgaW50IGdldF9jdXJyZW50X3JlcGVhdCAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjQiKV0KK0BAIC03NjQ1LDcgKzcyNzksNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYXV0b19yZXZl cnNlIChib29sIHJldmVyc2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKENsdXR0ZXIuUG9pbnQgY18xLCBD bHV0dGVyLlBvaW50IGNfMik7CisrCQlwdWJsaWMgdm9pZCBzZXRfY3ViaWNfYmV6aWVyX3Byb2dy ZXNzIChHcmFwaGVuZS5Qb2ludCBjXzEsIEdyYXBoZW5lLlBvaW50IGNfMik7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZGVsYXkgKHVpbnQgbXNlY3Mp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorQEAgLTc3NDQsNiArNzM3OCwxMSBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9hdCB5 OworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl90cmFuc2Zvcm1fbm9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJs aWMgY2xhc3MgVHJhbnNmb3JtTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUq IildCisrCQlwdWJsaWMgVHJhbnNmb3JtTm9kZSAoQ29nbC5NYXRyaXggcHJvamVjdGlvbik7Cisr CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3RyYW5zaXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFRyYW5zaXRpb24gOiBDbHV0 dGVyLlRpbWVsaW5lLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTc3ODMsNyArNzQyMiw2IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBWaXJ0dWFsSW5wdXREZXZpY2UgKCk7CisgCQlwdWJsaWMg aW50IGdldF9kZXZpY2VfdHlwZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuRGV2aWNl TWFuYWdlciBnZXRfbWFuYWdlciAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2Fi c29sdXRlX21vdGlvbiAodWludDY0IHRpbWVfdXMsIGRvdWJsZSB4LCBkb3VibGUgeSk7CisgCQlw dWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV9idXR0b24gKHVpbnQ2NCB0aW1lX3VzLCB1aW50MzIg YnV0dG9uLCBDbHV0dGVyLkJ1dHRvblN0YXRlIGJ1dHRvbl9zdGF0ZSk7CisgCQlwdWJsaWMgdmly dHVhbCB2b2lkIG5vdGlmeV9kaXNjcmV0ZV9zY3JvbGwgKHVpbnQ2NCB0aW1lX3VzLCBDbHV0dGVy LlNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIENsdXR0ZXIuU2Nyb2xsU291cmNlIHNjcm9sbF9z b3VyY2UpOworQEAgLTc3OTQsMjUgKzc0MzIsMjUgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfdG91Y2hfZG93biAodWludDY0IHRpbWVfdXMsIGlu dCBzbG90LCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3Rp ZnlfdG91Y2hfbW90aW9uICh1aW50NjQgdGltZV91cywgaW50IHNsb3QsIGRvdWJsZSB4LCBkb3Vi bGUgeSk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF91cCAodWludDY0IHRp bWVfdXMsIGludCBzbG90KTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENsdXR0 ZXIuRGV2aWNlTWFuYWdlciBkZXZpY2VfbWFuYWdlciB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9 CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNlX3R5cGUgeyBnZXQ7IGNv bnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5TZWF0 IHNlYXQgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl96b29tX2Fj dGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAlwdWJs aWMgY2xhc3MgWm9vbUFjdGlvbiA6IENsdXR0ZXIuR2VzdHVyZUFjdGlvbiB7CisgCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIp XQorIAkJcHVibGljIFpvb21BY3Rpb24gKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxfcG9p bnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQpOworLQkJcHVibGljIHZvaWQgZ2V0X3RyYW5zZm9ybWVk X2ZvY2FsX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF9m b2NhbF9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIHZvaWQgZ2V0X3Ry YW5zZm9ybWVkX2ZvY2FsX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisgCQlwdWJsaWMg Q2x1dHRlci5ab29tQXhpcyBnZXRfem9vbV9heGlzICgpOworIAkJcHVibGljIHZvaWQgc2V0X3pv b21fYXhpcyAoQ2x1dHRlci5ab29tQXhpcyBheGlzKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlpvb21B eGlzIHpvb21fYXhpcyB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9v bCB6b29tIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlBvaW50IGZvY2FsX3BvaW50LCBk b3VibGUgZmFjdG9yKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHpvb20gKENsdXR0 ZXIuQWN0b3IgYWN0b3IsIEdyYXBoZW5lLlBvaW50IGZvY2FsX3BvaW50LCBkb3VibGUgZmFjdG9y KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2NuYW1lID0gIkNsdXR0ZXJBbmltYXRhYmxlSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2FuaW1hdGFibGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGludGVyZmFjZSBBbmlt YXRhYmxlIDogR0xpYi5PYmplY3QgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjEuMCIpXQorKwkJW05vV3JhcHBlcl0K KyAJCXB1YmxpYyBhYnN0cmFjdCBib29sIGFuaW1hdGVfcHJvcGVydHkgKENsdXR0ZXIuQW5pbWF0 aW9uIGFuaW1hdGlvbiwgc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgaW5pdGlhbF92 YWx1ZSwgR0xpYi5WYWx1ZSBmaW5hbF92YWx1ZSwgZG91YmxlIHByb2dyZXNzLCBHTGliLlZhbHVl IHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFj dCB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9u YW1lKTsKK0BAIC03ODMwLDggKzc0NjgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0Nv ZGUgKHZmdW5jX25hbWUgPSAiYWRkIildCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIGFi c3RyYWN0IHZvaWQgYWRkX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC40IildCistCQlwdWJsaWMgdm9pZCBhZGRfdmFsaXN0IChDbHV0dGVyLkFjdG9yIGZpcnN0X2Fj dG9yLCB2YV9saXN0IHZhcl9hcmdzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJ CXB1YmxpYyB2b2lkIGNoaWxkX2dldCAoQ2x1dHRlci5BY3RvciBhY3RvciwgLi4uKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC03ODUzLDEwICs3NDg5LDYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBmaW5kX2NoaWxkX2J5 X25hbWUgKHN0cmluZyBjaGlsZF9uYW1lKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9j b250YWluZXJfY2xhc3NfZmluZF9jaGlsZF9wcm9wZXJ0eSIpXQorIAkJcHVibGljIGNsYXNzIHVu b3duZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9jaGlsZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5 X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIEBmb3Jl YWNoIChDbHV0dGVyLkNhbGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdmlydHVhbCB2b2lkIGZvcmVhY2hfd2l0aF9pbnRlcm5hbHMgKENsdXR0ZXIuQ2FsbGJh Y2sgY2FsbGJhY2spOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZp cnR1YWwgdW5vd25lZCBDbHV0dGVyLkNoaWxkTWV0YSBnZXRfY2hpbGRfbWV0YSAoQ2x1dHRlci5B Y3RvciBhY3Rvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorQEAgLTc4NzQsOCArNzUwNiw2IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAodmZ1bmNfbmFtZSA9ICJyZW1vdmUiKV0KKyAJ CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZW1vdmVfYWN0b3IgKENs dXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHJl bW92ZV92YWxpc3QgKENsdXR0ZXIuQWN0b3IgZmlyc3RfYWN0b3IsIHZhX2xpc3QgdmFyX2FyZ3Mp OworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNvcnRfZGVwdGhf b3JkZXIgKCk7CisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhY3Rvcl9hZGRlZCAoQ2x1 dHRlci5BY3RvciBhY3Rvcik7CitAQCAtNzg5Miw3ICs3NTIyLDcgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIGFic3RyYWN0IHZvaWQgaW52YWxpZGF0ZSAoKTsKKyAJCXB1YmxpYyBh YnN0cmFjdCB2b2lkIGludmFsaWRhdGVfc2l6ZSAoKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgYWJzdHJhY3Qgdm9pZCBwYWludF9jb250ZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0 dGVyLlBhaW50Tm9kZSBub2RlKTsKKysJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHBhaW50X2NvbnRl bnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuUGFpbnROb2RlIG5vZGUsIENsdXR0ZXIu UGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGF0dGFjaGVkIChDbHV0dGVyLkFjdG9y IGFjdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzkwOCwxMCArNzUz OCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIGludGVyZmFjZSBTdGFnZVdpbmRv dyA6IEdMaWIuT2JqZWN0IHsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9p ZCBhZGRfcmVkcmF3X2NsaXAgKENsdXR0ZXIuR2VvbWV0cnkgc3RhZ2VfcmVjdGFuZ2xlKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBnZXRfZ2VvbWV0cnkgKENsdXR0 ZXIuR2VvbWV0cnkgZ2VvbWV0cnkpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyBhYnN0cmFj dCBpbnQgZ2V0X3BlbmRpbmdfc3dhcHMgKCk7CisgCQlbTm9XcmFwcGVyXQorQEAgLTc5MzksMTQg Kzc1NjUsMTYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1Ymxp YyBhYnN0cmFjdCB2b2lkIHVucmVhbGl6ZSAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9BQ1RP Ul9CT1giKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94 ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9ib3hfZ2V0X3R5cGUgKCkiKV0KKyAJ cHVibGljIHN0cnVjdCBBY3RvckJveCB7CisgCQlwdWJsaWMgZmxvYXQgeDE7CisgCQlwdWJsaWMg ZmxvYXQgeTE7CisgCQlwdWJsaWMgZmxvYXQgeDI7CisgCQlwdWJsaWMgZmxvYXQgeTI7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGljIHN0YXRpYyBDbHV0dGVyLkFjdG9y Qm94PyBhbGxvYyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2 b2lkIGNsYW1wX3RvX3BpeGVsICgpOworKwkJcHVibGljIHN0YXRpYyB2b2lkIGNsYW1wX3RvX3Bp eGVsIChyZWYgQ2x1dHRlci5BY3RvckJveCBib3gpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorIAkJcHVibGljIGJvb2wgY29udGFpbnMgKGZsb2F0IHgsIGZsb2F0IHkpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorQEAgLTc5NTUsOCArNzU4Myw2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLkFjdG9yQm94IGJveF9iKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7Cist CQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfYWN0b3JfYm94X2Zyb21fdmVydGljZXMiKV0KKy0J CXB1YmxpYyBBY3RvckJveC5mcm9tX3ZlcnRpY2VzIChDbHV0dGVyLlZlcnRleFtdIHZlcnRzKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfYXJlYSAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KK0BAIC04MDAyLDcgKzc2MjgsNyBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgd2VhayBDYWlyby5TdXJmYWNlIGltYWdlOwor IAkJcHVibGljIENhaXJvLlJlY3RhbmdsZUludCByZWN0OworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBF X0NPTE9SIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2ZyZWUiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9DT0xPUiIpXQorIAlwdWJsaWMgc3Ry dWN0IENvbG9yIHsKKyAJCXB1YmxpYyB1aW50OCByZWQ7CisgCQlwdWJsaWMgdWludDggZ3JlZW47 CitAQCAtODA0MSwyNCArNzY2Nyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjIiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl9mb2dfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGlj IHN0cnVjdCBGb2cgeworLQkJcHVibGljIGZsb2F0IHpfbmVhcjsKKy0JCXB1YmxpYyBmbG9hdCB6 X2ZhcjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZ2VvbWV0cnlfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVi bGljIHN0cnVjdCBHZW9tZXRyeSB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7 CistCQlwdWJsaWMgdWludCB3aWR0aDsKKy0JCXB1YmxpYyB1aW50IGhlaWdodDsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGludGVyc2VjdHMgKENsdXR0ZXIu R2VvbWV0cnkgZ2VvbWV0cnkxKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyBDbHV0dGVyLkdlb21ldHJ5IHVuaW9uIChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5X2Ip OworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IEtiZEExMXlTZXR0aW5ncyB7 CisgCQlwdWJsaWMgQ2x1dHRlci5LZXlib2FyZEExMXlGbGFncyBjb250cm9sczsKK0BAIC04MDY5 LDcgKzc2NzcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgaW50IG1vdXNla2V5 c19tYXhfc3BlZWQ7CisgCQlwdWJsaWMgaW50IG1vdXNla2V5c19hY2NlbF90aW1lOworIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl9rbm90X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5Iiwg ZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfa25vdF9n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCXB1YmxpYyBzdHJ1 Y3QgS25vdCB7CisgCQlwdWJsaWMgaW50IHg7CitAQCAtODEyMSw3ICs3NzI5LDcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIGRvdWJsZSB2YWx1ZTsKKyAJCXB1YmxpYyB1aW50MzIg bW9kZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGF0aF9ub2RlX2dldF90eXBlICgpIildCisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24g PSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lk ID0gImNsdXR0ZXJfcGF0aF9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKyAJcHVibGljIHN0cnVjdCBQYXRoTm9kZSB7CisgCQlwdWJsaWMgQ2x1dHRlci5Q YXRoTm9kZVR5cGUgdHlwZTsKK0BAIC04MTMxLDcgKzc3MzksNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5QYXRoTm9kZSBub2RlX2IpOworIAkJ cHVibGljIHZvaWQgZnJlZSAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGVyc3BlY3RpdmVfZ2V0X3R5 cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94 ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wZXJzcGVjdGl2ZV9nZXRfdHlwZSAoKSIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCXB1YmxpYyBzdHJ1Y3QgUGVyc3BlY3RpdmUg eworIAkJcHVibGljIGZsb2F0IGZvdnk7CitAQCAtODE2Miw3ICs3NzcwLDcgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5BY3RvciBzb3VyY2U7CisgCQlwdWJs aWMgd2VhayBDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQ RV9VTklUUyIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19i b3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfVU5JVFMiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RydWN0IFVuaXRzIHsKKyAJCXB1YmxpYyBDbHV0 dGVyLlVuaXRzPyBjb3B5ICgpOworQEAgLTgxODYsMjMgKzc3OTQsNiBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgdG9fcGl4ZWxzICgpOworIAkJcHVibGljIHN0cmluZyB0 b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3ZlcnRleF9nZXRfdHlwZSAoKSIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBzdHJ1Y3QgVmVydGV4IHsKKy0JCXB1 YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJsaWMgZmxvYXQgejsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuVmVy dGV4PyBhbGxvYyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBD bHV0dGVyLlZlcnRleD8gY29weSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLlZlcnRleCB2ZXJ0ZXhfYik7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVmVydGV4PyBpbml0 IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQUNUT1JfQUxJ R05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX2FsaWduX2dldF90eXBlICgpIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBlbnVtIEFjdG9yQWxpZ24geworQEAg LTgzNDAsNiArNzkzMSwyNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlZX0FYSVMsCisgCQlC T1RICisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RFQlVHXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kZWJ1Z19m bGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gRGVidWdGbGFnIHsK KysJCU1JU0MsCisrCQlBQ1RPUiwKKysJCVRFWFRVUkUsCisrCQlFVkVOVCwKKysJCVBBSU5ULAor KwkJUEFOR08sCisrCQlCQUNLRU5ELAorKwkJU0NIRURVTEVSLAorKwkJU0NSSVBULAorKwkJU0hB REVSLAorKwkJTVVMVElTVEFHRSwKKysJCUFOSU1BVElPTiwKKysJCUxBWU9VVCwKKysJCVBJQ0ss CisrCQlFVkVOVExPT1AsCisrCQlDTElQUElORywKKysJCU9PQl9UUkFOU0ZPUk1TCisrCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9 ICJDTFVUVEVSX0RSQUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYWdfYXhpc19nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBlbnVtIERyYWdBeGlz IHsKK0BAIC04MzQ3LDYgKzc5NTksMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJWF9BWElT LAorIAkJWV9BWElTCisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RFQlVHXyIsIHR5cGVfaWQgPSAiY2x1dHRl cl9kcmF3X2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51 bSBEcmF3RGVidWdGbGFnIHsKKysJCURJU0FCTEVfU1dBUF9FVkVOVFMsCisrCQlESVNBQkxFX0NM SVBQRURfUkVEUkFXUywKKysJCVJFRFJBV1MsCisrCQlQQUlOVF9WT0xVTUVTLAorKwkJRElTQUJM RV9DVUxMSU5HLAorKwkJRElTQUJMRV9PRkZTQ1JFRU5fUkVESVJFQ1QsCisrCQlDT05USU5VT1VT X1JFRFJBVywKKysJCVBBSU5UX0RFRk9STV9USUxFUywKKysJCVBBSU5UX0RBTUFHRV9SRUdJT04K KysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBj cHJlZml4ID0gIkNMVVRURVJfRUZGRUNUX1BBSU5UX0FDVE9SXyIsIHR5cGVfaWQgPSAiY2x1dHRl cl9lZmZlY3RfcGFpbnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMg ZW51bSBFZmZlY3RQYWludEZsYWdzIHsKK0BAIC04Mzk4LDggKzgwMjMsNiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCXB1YmxpYyBlbnVtIEZlYXR1cmVGbGFncyB7CisgCQlURVhUVVJFX05QT1Qs CisgCQlTV0FQX1RIUk9UVExFLAorLQkJVEVYVFVSRV9ZVVYsCistCQlURVhUVVJFX1JFQURfUElY RUxTLAorIAkJU1RBR0VfU1RBVElDLAorIAkJU1RBR0VfQ1VSU09SLAorIAkJU0hBREVSU19HTFNM LAorQEAgLTg2NTcsNiArODI4MCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlSRUxfTElO RV9UTywKKyAJCVJFTF9DVVJWRV9UTworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9ERUJVR19OT1BfIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3BpY2tfZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3Nd CisrCXB1YmxpYyBlbnVtIFBpY2tEZWJ1Z0ZsYWcgeworKwkJUElDS0lORworKwl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xV VFRFUl9QSUNLXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX21vZGVfZ2V0X3R5cGUgKCkiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgZW51bSBQaWNrTW9kZSB7CitA QCAtODg1MSwxMyArODQ3OSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCUxFRlQsCisgCQlS SUdIVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9UQUJMRV9BTElHTk1FTlRfIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX3RhYmxlX2FsaWdubWVudF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yMiIsIHNpbmNlID0gIjEuNCIpXQorLQlw dWJsaWMgZW51bSBUYWJsZUFsaWdubWVudCB7CistCQlTVEFSVCwKKy0JCUNFTlRFUiwKKy0JCUVO RAorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IGNwcmVmaXggPSAiQ0xVVFRFUl9URVhUX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gImNsdXR0ZXJf dGV4dF9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIp XQorIAlwdWJsaWMgZW51bSBUZXh0RGlyZWN0aW9uIHsKK0BAIC04OTMzLDI4ICs4NTU0LDE5IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVZBTFVFOworIAkJcHVibGljIHN0YXRpYyBHTGliLlF1 YXJrIHF1YXJrICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9URVhUVVJFX0VSUk9SXyIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCistCXB1YmxpYyBlcnJvcmRvbWFpbiBUZXh0dXJlRXJyb3Ig eworLQkJT1VUX09GX01FTU9SWSwKKy0JCU5PX1lVViwKKy0JCUJBRF9GT1JNQVQ7CistCQlwdWJs aWMgc3RhdGljIEdMaWIuUXVhcmsgcXVhcmsgKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMjQiKV0KKyAJcHVibGljIGRlbGVnYXRlIENsdXR0ZXIuQWN0b3Ig QWN0b3JDcmVhdGVDaGlsZEZ1bmMgKEdMaWIuT2JqZWN0IGl0ZW0pOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQor IAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgZGVsZWdhdGUgZG91YmxlIEFscGhhRnVuYyAoQ2x1 dHRlci5BbHBoYSBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVi bGljIGRlbGVnYXRlIHZvaWQgQmVoYXZpb3VyRm9yZWFjaEZ1bmMgKENsdXR0ZXIuQmVoYXZpb3Vy IGJlaGF2aW91ciwgQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgQmluZGluZ0FjdGlv bkZ1bmMgKEdMaWIuT2JqZWN0IGdvYmplY3QsIHN0cmluZyBhY3Rpb25fbmFtZSwgdWludCBrZXlf dmFsLCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RpZmllcnMpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlw dWJsaWMgZGVsZWdhdGUgdm9pZCBDYWxsYmFjayAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190YXJnZXQg PSBmYWxzZSldCisrCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEVtaXRJbnB1dERldmljZUV2ZW50IChD bHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9 IDEuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisgCXB1YmxpYyBkZWxlZ2F0ZSBi b29sIEV2ZW50RmlsdGVyRnVuYyAoQ2x1dHRlci5FdmVudCBldmVudCk7CitAQCAtODk4NSw5ICs4 NTk3LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMC44Iild CisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVEUkFXOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKy0JcHVibGljIHN0YXRpYyBDbHV0dGVyLkFjdG9yQm94PyBhY3Rvcl9ib3hfYWxsb2Mg KCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor IAlwdWJsaWMgc3RhdGljIHZvaWQgYmFzZV9pbml0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KK0BAIC05MDUxLDkgKzg2NjAsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyB1bm93bmVkIFBhbmdvLkZvbnRNYXAg Z2V0X2ZvbnRfbWFwICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGlj IHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfa2V5Ym9hcmRfZ3JhYiAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjIiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRpb25f Z3JvdXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorQEAgLTkwNjEsMTcgKzg2NjcsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCXB1Ymxp YyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwX3dpdGhvdXRfaW5pdCAo KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0 ZXIuQWN0b3IgZ2V0X3BvaW50ZXJfZ3JhYiAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJ cHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBnZXRfc2NyaXB0X2lkIChHTGliLk9iamVjdCBn b2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdy YWJfa2V5Ym9hcmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ3JhYl9wb2ludGVyIChDbHV0dGVyLkFjdG9yIGFjdG9y KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisg CXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5Jbml0RXJyb3IgaW5pdCAoW0NDb2RlIChhcnJheV9sZW5n dGhfY25hbWUgPSAiYXJnYyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUpXSByZWYgdW5vd25lZCBz dHJpbmdbXT8gYXJndik7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCitAQCAtOTA4NywyOSArODY4 NCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfY3VzdG9tX2Jh Y2tlbmRfZnVuYyAodm9pZCogZnVuYyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgdGVzdF9hZGRfZGF0YV9mdWxsIChzdHJpbmcgdGVzdF9wYXRoLCBvd25l ZCBHTGliLlRlc3REYXRhRnVuYyB0ZXN0X2Z1bmMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0K Ky0JcHVibGljIHN0YXRpYyBib29sIHRlc3RfY2hlY2tfYWN0b3JfYXRfcG9pbnQgKENsdXR0ZXIu QWN0b3Igc3RhZ2UsIENsdXR0ZXIuUG9pbnQgcG9pbnQsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91 dCBDbHV0dGVyLkFjdG9yPyByZXN1bHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVi bGljIHN0YXRpYyBib29sIHRlc3RfY2hlY2tfY29sb3JfYXRfcG9pbnQgKENsdXR0ZXIuQWN0b3Ig c3RhZ2UsIENsdXR0ZXIuUG9pbnQgcG9pbnQsIENsdXR0ZXIuQ29sb3IgY29sb3IsIG91dCBDbHV0 dGVyLkNvbG9yIHJlc3VsdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3Rh dGljIHVub3duZWQgQ2x1dHRlci5BY3RvciB0ZXN0X2dldF9zdGFnZSAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCB0ZXN0X2luaXQgKGludCBhcmdjLCBzdHJpbmcgYXJndik7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIGludCB0ZXN0X3J1biAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHVuZ3JhYl9rZXlib2FyZCAoKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHVuZ3JhYl9wb2ludGVyICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIHN0YXRpYyB1aW50IHVuaWNvZGVf dG9fa2V5c3ltICh1aW50MzIgd2MpOworIH0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRl ci00LmRlcHMgdmFwaS9tdXR0ZXItY2x1dHRlci03LmRlcHMKK3NpbWlsYXJpdHkgaW5kZXggNTQl CityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jbHV0dGVyLTQuZGVwcworcmVuYW1lIHRvIHZhcGkv bXV0dGVyLWNsdXR0ZXItNy5kZXBzCitpbmRleCA5NTA5NDAyNi4uNmJkMWNjZjcgMTAwNjQ0Cist LS0gdmFwaS9tdXR0ZXItY2x1dHRlci00LmRlcHMKKysrKyB2YXBpL211dHRlci1jbHV0dGVyLTcu ZGVwcworQEAgLTEsNSArMSw0IEBACisgYXRrCisgY2Fpcm8KKyBqc29uLWdsaWItMS4wCistbXV0 dGVyLWNvZ2wtNAorLXBhbmdvCisrbXV0dGVyLWNvZ2wtNworZGlmZiAtLWdpdCB2YXBpL211dHRl ci1jbHV0dGVyLTQudmFwaSB2YXBpL211dHRlci1jbHV0dGVyLTcudmFwaQorc2ltaWxhcml0eSBp bmRleCA4NiUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC52YXBpCityZW5hbWUg dG8gdmFwaS9tdXR0ZXItY2x1dHRlci03LnZhcGkKK2luZGV4IGM4YTFkMjNiLi5hZWE2YTMxYSAx MDA2NDQKKy0tLSB2YXBpL211dHRlci1jbHV0dGVyLTQudmFwaQorKysrIHZhcGkvbXV0dGVyLWNs dXR0ZXItNy52YXBpCitAQCAtMSw2ICsxLDYgQEAKKy0vKiBtdXR0ZXItY2x1dHRlci00LnZhcGkg Z2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisrLyogbXV0dGVyLWNsdXR0 ZXItNy52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworIAorLVtD Q29kZSAoY3ByZWZpeCA9ICJDbHV0dGVyIiwgZ2lyX25hbWVzcGFjZSA9ICJDbHV0dGVyIiwgZ2ly X3ZlcnNpb24gPSAiNCIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJjbHV0dGVyXyIpXQorK1tDQ29k ZSAoY3ByZWZpeCA9ICJDbHV0dGVyIiwgZ2lyX25hbWVzcGFjZSA9ICJDbHV0dGVyIiwgZ2lyX3Zl cnNpb24gPSAiNyIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJjbHV0dGVyXyIpXQorIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJbmFtZXNwYWNlIEtleSB7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjbmFtZSA9ICJDTFVUVEVSX0tFWV8wIildCitAQCAt NDU3NiwyMCArNDU3Niw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgc3RhdGljIHVpbnQgYWRkX3JlcGFpbnRfZnVuY19mdWxs IChDbHV0dGVyLlJlcGFpbnRGbGFncyBmbGFncywgb3duZWQgR0xpYi5Tb3VyY2VGdW5jIGZ1bmMp OworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVudGVyICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjAuNCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGluaXQgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC40IildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgbGVhdmUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfcmVwYWludF9mdW5jICh1aW50IGhhbmRsZV9p ZCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf bG9ja19mdW5jdGlvbnMgKEdMaWIuQ2FsbGJhY2sgZW50ZXJfZm4sIEdMaWIuQ2FsbGJhY2sgbGVh dmVfZm4pOworIAl9CisgCW5hbWVzcGFjZSBWYWx1ZSB7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KK0BAIC00NjM2LDcgKzQ2MjQsNiBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgdGFrZV9wYWludF9ub2RlIChH TGliLlZhbHVlIHZhbHVlLCBDbHV0dGVyLlBhaW50Tm9kZT8gbm9kZSk7CisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisg CXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBBY3Rpb24gOiBDbHV0dGVyLkFjdG9yTWV0YSB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgQWN0 aW9uICgpOworQEAgLTQ2NjQsMzMgKzQ2NTEsMjMgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGFkZF90cmFuc2l0aW9u IChzdHJpbmcgbmFtZSwgQ2x1dHRlci5UcmFuc2l0aW9uIHRyYW5zaXRpb24pOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1 dHRlci5BY3RvckJveCBib3gsIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKysJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgYWxsb2NhdGUgKENsdXR0ZXIuQWN0b3JCb3ggYm94KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGFsbG9jYXRlX2FsaWduX2Zp bGwgKENsdXR0ZXIuQWN0b3JCb3ggYm94LCBkb3VibGUgeF9hbGlnbiwgZG91YmxlIHlfYWxpZ24s IGJvb2wgeF9maWxsLCBib29sIHlfZmlsbCwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3Mp OworKwkJcHVibGljIHZvaWQgYWxsb2NhdGVfYWxpZ25fZmlsbCAoQ2x1dHRlci5BY3RvckJveCBi b3gsIGRvdWJsZSB4X2FsaWduLCBkb3VibGUgeV9hbGlnbiwgYm9vbCB4X2ZpbGwsIGJvb2wgeV9m aWxsKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGFsbG9j YXRlX2F2YWlsYWJsZV9zaXplIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCBhdmFpbGFibGVfd2lk dGgsIGZsb2F0IGF2YWlsYWJsZV9oZWlnaHQsIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdz KTsKKysJCXB1YmxpYyB2b2lkIGFsbG9jYXRlX2F2YWlsYWJsZV9zaXplIChmbG9hdCB4LCBmbG9h dCB5LCBmbG9hdCBhdmFpbGFibGVfd2lkdGgsIGZsb2F0IGF2YWlsYWJsZV9oZWlnaHQpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgYWxsb2NhdGVfcHJlZmVy cmVkX3NpemUgKENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlICh1bG9uZyBt b2RlLCB1aW50IGR1cmF0aW9uLCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0aF9hbHBoYSAoQ2x1dHRlci5BbHBo YSBhbHBoYSwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfYWxwaGF2IChDbHV0dGVyLkFscGhhIGFscGhhLCBb Q0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhf cG9zID0gMS41KV0gc3RyaW5nW10gcHJvcGVydGllcywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25h bWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSldIEdMaWIuVmFsdWVb XSB2YWx1ZXMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu QW5pbWF0aW9uIGFuaW1hdGVfd2l0aF90aW1lbGluZSAodWxvbmcgbW9kZSwgQ2x1dHRlci5UaW1l bGluZSB0aW1lbGluZSwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfdGltZWxpbmV2ICh1bG9uZyBtb2RlLCBD bHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJu X3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gc3RyaW5nW10gcHJvcGVydGll cywgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVu Z3RoX3BvcyA9IDIuNSldIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGV2ICh1bG9uZyBtb2Rl LCB1aW50IGR1cmF0aW9uLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRp ZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gc3RyaW5nW10gcHJvcGVydGllcywgW0NDb2Rl IChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9 IDIuNSldIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOworKwkJcHVibGljIHZvaWQgYWxsb2NhdGVfcHJl ZmVycmVkX3NpemUgKGZsb2F0IHgsIGZsb2F0IHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IGFwcGx5X3JlbGF0aXZlX3RyYW5zZm9ybV90 b19wb2ludCAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0b3IsIENsdXR0ZXIuVmVydGV4IHBvaW50KTsK KysJCXB1YmxpYyB2b2lkIGFwcGx5X3JlbGF0aXZlX3RyYW5zZm9ybV90b19wb2ludCAoQ2x1dHRl ci5BY3Rvcj8gYW5jZXN0b3IsIEdyYXBoZW5lLlBvaW50M0QgcG9pbnQsIG91dCB1bm93bmVkIEdy YXBoZW5lLlBvaW50M0QgdmVydGV4KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVh bCB2b2lkIGFwcGx5X3RyYW5zZm9ybSAocmVmIENsdXR0ZXIuTWF0cml4IG1hdHJpeCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggYXBwbHlf dHJhbnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLlZlcnRleCBwb2ludCk7CisrCQlwdWJsaWMgdm9p ZCBhcHBseV90cmFuc2Zvcm1fdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQsIG91dCB1 bm93bmVkIEdyYXBoZW5lLlBvaW50M0QgdmVydGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjI0IildCisgCQlwdWJsaWMgdm9pZCBiaW5kX21vZGVsIChHTGliLkxpc3RNb2RlbD8gbW9kZWws IG93bmVkIENsdXR0ZXIuQWN0b3JDcmVhdGVDaGlsZEZ1bmMgY3JlYXRlX2NoaWxkX2Z1bmMpOwor KwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZV9yZXNvdXJj ZV9zY2FsZSAoaW50IHBoYXNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1 YmxpYyB2b2lkIGNsZWFyX2FjdGlvbnMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CitAQCAtNDcwMCwyMCArNDY3NywxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBjb250YWlucyAoQ2x1dHRlci5BY3Rv ciBkZXNjZW5kYW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2 b2lkIGNvbnRpbnVlX3BhaW50ICgpOworKwkJcHVibGljIHZvaWQgY29udGludWVfcGFpbnQgKENs dXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworKwkJcHVibGljIHZvaWQgY29udGlu dWVfcGljayAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIFBhbmdvLkNvbnRleHQgY3JlYXRlX3BhbmdvX2Nv bnRleHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgUGFuZ28u TGF5b3V0IGNyZWF0ZV9wYW5nb19sYXlvdXQgKHN0cmluZz8gdGV4dCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgZGVzdHJveV9hbGxfY2hpbGRyZW4gKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZGV0YWNoX2FuaW1hdGlvbiAoKTsK KyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9ldmVudCIpXQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGJvb2wgZW1pdF9ldmVudCAoQ2x1dHRlci5FdmVu dCBldmVudCwgYm9vbCBjYXB0dXJlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0J CXB1YmxpYyB2b2lkIGdldF9hYnNfYWxsb2NhdGlvbl92ZXJ0aWNlcyAoW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldIENsdXR0ZXIuVmVydGV4IHZlcnRzWzRdKTsKKysJCXB1YmxpYyB2b2lk IGdldF9hYnNfYWxsb2NhdGlvbl92ZXJ0aWNlcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldIEdyYXBoZW5lLlBvaW50M0QgdmVydHNbNF0pOworIAkJcHVibGljIHZpcnR1YWwgdW5vd25l ZCBBdGsuT2JqZWN0IGdldF9hY2Nlc3NpYmxlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3Rpb24gZ2V0X2FjdGlvbiAoc3RyaW5n IG5hbWUpOworQEAgLTQ3MjEsMjEgKzQ2OTcsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5BY3Rpb24+IGdldF9hY3Rpb25zICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3JCb3ggZ2V0 X2FsbG9jYXRpb25fYm94ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBDbHV0dGVy Lkdlb21ldHJ5IGdldF9hbGxvY2F0aW9uX2dlb21ldHJ5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FsbG9jYXRpb25fdmVydGljZXMgKENsdXR0 ZXIuQWN0b3I/IGFuY2VzdG9yLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gQ2x1dHRl ci5WZXJ0ZXggdmVydHNbNF0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdl dF9hbmNob3JfcG9pbnQgKG91dCBmbG9hdCBhbmNob3JfeCwgb3V0IGZsb2F0IGFuY2hvcl95KTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IGdldF9hbmNob3Jf cG9pbnRfZ3Jhdml0eSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLkFuaW1hdGlvbiBnZXRfYW5pbWF0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9iYWNrZ3JvdW5kX2NvbG9yICgp OworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2dldF9hY3Rvcl9ieV9naWQiKV0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5j ZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9i eV9naWQgKHVpbnQzMiBpZF8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2NoaWxkX2F0X2luZGV4IChpbnQgaW5kZXhf KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtNDc2Miw4ICs0NzI1LDYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgZ2V0X2NvbnRlbnRfc2NhbGluZ19m aWx0ZXJzIChvdXQgQ2x1dHRlci5TY2FsaW5nRmlsdGVyIG1pbl9maWx0ZXIsIG91dCBDbHV0dGVy LlNjYWxpbmdGaWx0ZXIgbWFnX2ZpbHRlcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludFZvbHVtZSBnZXRfZGVmYXVsdF9wYWlu dF92b2x1bWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIGZsb2F0IGdldF9kZXB0aCAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdWludCBnZXRfZWFzaW5nX2RlbGF5ICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC00Nzc2LDEyICs0NzM3LDExIEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLkVm ZmVjdD4gZ2V0X2VmZmVjdHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZmlyc3RfY2hpbGQgKCk7CisrCQlwdWJs aWMgYm9vbCBnZXRfZml4ZWRfcG9zaXRpb24gKG91dCBmbG9hdCB4LCBvdXQgZmxvYXQgeSk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgYm9vbCBnZXRfZml4ZWRfcG9z aXRpb25fc2V0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIENs dXR0ZXIuQWN0b3JGbGFncyBnZXRfZmxhZ3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCistCQlwdWJs aWMgdWludDMyIGdldF9naWQgKCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfYWN0b3Jf aGFzX3BvaW50ZXIiKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBi b29sIGdldF9oYXNfcG9pbnRlciAoKTsKK0BAIC00ODM5LDE3ICs0Nzk5LDExIEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGdldF9yZWFjdGl2ZSAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlJlcXVlc3RNb2RlIGdldF9yZXF1 ZXN0X21vZGUgKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfcmVzb3VyY2Vfc2NhbGUgKG91dCBmbG9h dCByZXNvdXJjZV9zY2FsZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGRvdWJsZSBn ZXRfcm90YXRpb24gKENsdXR0ZXIuUm90YXRlQXhpcyBheGlzLCBvdXQgZmxvYXQgeCwgb3V0IGZs b2F0IHksIG91dCBmbG9hdCB6KTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfcmVzb3VyY2Vfc2NhbGUg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGRvdWJsZSBnZXRf cm90YXRpb25fYW5nbGUgKENsdXR0ZXIuUm90YXRlQXhpcyBheGlzKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjIiKV0KKyAJCXB1YmxpYyB2b2lkIGdldF9zY2FsZSAob3V0IGRvdWJsZSBzY2Fs ZV94LCBvdXQgZG91YmxlIHNjYWxlX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9zY2FsZV9jZW50ZXIgKG91dCBmbG9hdCBjZW50ZXJfeCwgb3V0IGZsb2F0IGNlbnRl cl95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IGdldF9z Y2FsZV9ncmF2aXR5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1Ymxp YyBkb3VibGUgZ2V0X3NjYWxlX3ogKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCitA QCAtNDg2MCw4ICs0ODE0LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0 ZXIuVGV4dERpcmVjdGlvbiBnZXRfdGV4dF9kaXJlY3Rpb24gKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorIAkJcHVibGljIENsdXR0ZXIuTWF0cml4IGdldF90cmFuc2Zvcm0gKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuTWF0cml4IGdldF90cmFuc2Zv cm1hdGlvbl9tYXRyaXggKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfdHJhbnNmb3JtZWRfZXh0ZW50 cyAob3V0IHVub3duZWQgR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUGFpbnRWb2x1bWUgZ2V0X3RyYW5z Zm9ybWVkX3BhaW50X3ZvbHVtZSAoQ2x1dHRlci5BY3RvciByZWxhdGl2ZV90b19hbmNlc3Rvcik7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCitAQCAtNDg4NSwxMCArNDgzOCw5IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGdldF95X2V4cGFuZCAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X3pfcG9zaXRpb24g KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBnZXRfel9y b3RhdGlvbl9ncmF2aXR5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVi bGljIHZvaWQgZ3JhYl9rZXlfZm9jdXMgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGhhc19h Y2Nlc3NpYmxlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBi b29sIGhhc19hY3Rpb25zICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTQ5 MDAsMTggKzQ4NTIsMjAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgaGFz X2VmZmVjdHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9v bCBoYXNfa2V5X2ZvY3VzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJCXB1 YmxpYyBib29sIGhhc19tYXBwZWRfY2xvbmVzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorIAkJcHVibGljIHZpcnR1YWwgYm9vbCBoYXNfb3ZlcmxhcHMgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjAuMiIpXQorKwkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaGlkZV9hbGwg KCk7CisrCQlwdWJsaWMgdm9pZCBpbmhpYml0X2N1bGxpbmcgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgaW5zZXJ0X2NoaWxkX2Fib3ZlIChDbHV0dGVy LkFjdG9yIGNoaWxkLCBDbHV0dGVyLkFjdG9yPyBzaWJsaW5nKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBpbnNlcnRfY2hpbGRfYXRfaW5kZXggKENsdXR0 ZXIuQWN0b3IgY2hpbGQsIGludCBpbmRleF8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJCXB1YmxpYyB2b2lkIGluc2VydF9jaGlsZF9iZWxvdyAoQ2x1dHRlci5BY3RvciBjaGls ZCwgQ2x1dHRlci5BY3Rvcj8gc2libGluZyk7CisrCQlwdWJsaWMgdm9pZCBpbnZhbGlkYXRlX3Ry YW5zZm9ybSAoKTsKKysJCXB1YmxpYyBib29sIGlzX2VmZmVjdGl2ZWx5X29uX3N0YWdlX3ZpZXcg KENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor IAkJcHVibGljIGJvb2wgaXNfaW5fY2xvbmVfcGFpbnQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yNCIpXQorQEAgLTQ5MjQsMzMgKzQ4NzgsMjAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIGJvb2wgaXNfc2NhbGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQi KV0KKyAJCXB1YmxpYyBib29sIGlzX3Zpc2libGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgbG93 ZXIgKENsdXR0ZXIuQWN0b3I/IGFib3ZlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBsb3dlcl9ib3R0 b20gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdmlydHVhbCB2 b2lkIG1hcCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBtb3ZlX2FuY2hv cl9wb2ludCAoZmxvYXQgYW5jaG9yX3gsIGZsb2F0IGFuY2hvcl95KTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42 IildCistCQlwdWJsaWMgdm9pZCBtb3ZlX2FuY2hvcl9wb2ludF9mcm9tX2dyYXZpdHkgKENsdXR0 ZXIuR3Jhdml0eSBncmF2aXR5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJCXB1 YmxpYyB2b2lkIG1vdmVfYnkgKGZsb2F0IGR4LCBmbG9hdCBkeSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wgbmVlZHNfZXhwYW5kIChDbHV0dGVyLk9yaWVu dGF0aW9uIG9yaWVudGF0aW9uKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHBhaW50X25vZGUgKENsdXR0ZXIuUGFpbnROb2RlIHJvb3QpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIi KV0KKy0JCXB1YmxpYyB2b2lkIHBvcF9pbnRlcm5hbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCist CQlwdWJsaWMgdm9pZCBwdXNoX2ludGVybmFsICgpOworKwkJcHVibGljIHVub3duZWQgR0xpYi5M aXN0PENsdXR0ZXIuU3RhZ2VWaWV3PiBwZWVrX3N0YWdlX3ZpZXdzICgpOworKwkJcHVibGljIHZv aWQgcGlja19ib3ggKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0LCBDbHV0dGVyLkFj dG9yQm94IGJveCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkZyYW1lQ2xvY2sgcGlja19m cmFtZV9jbG9jayAoKTsKKyAJCXB1YmxpYyB2b2lkIHF1ZXVlX3JlZHJhdyAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZWRyYXdfd2l0aF9j bGlwIChDYWlyby5SZWN0YW5nbGVJbnQ/IGNsaXApOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJhaXNl IChDbHV0dGVyLkFjdG9yPyBiZWxvdyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmFpc2VfdG9wICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgcmVtb3ZlX2Fj dGlvbiAoQ2x1dHRlci5BY3Rpb24gYWN0aW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KK0BAIC00OTcyLDggKzQ5MTMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg dm9pZCByZW1vdmVfZWZmZWN0X2J5X25hbWUgKHN0cmluZyBuYW1lKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfdHJhbnNpdGlvbiAoc3RyaW5n IG5hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHJlcGFyZW50IChDbHV0 dGVyLkFjdG9yIG5ld19wYXJlbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ CXB1YmxpYyB2b2lkIHJlcGxhY2VfY2hpbGQgKENsdXR0ZXIuQWN0b3Igb2xkX2NoaWxkLCBDbHV0 dGVyLkFjdG9yIG5ld19jaGlsZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAg LTQ5ODEsMTEgKzQ5MjAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2F2ZV9lYXNpbmdfc3RhdGUgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FsbG9jYXRpb24g KENsdXR0ZXIuQWN0b3JCb3ggYm94LCBDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FuY2hvcl9wb2ludCAoZmxvYXQg YW5jaG9yX3gsIGZsb2F0IGFuY2hvcl95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMg dm9pZCBzZXRfYW5jaG9yX3BvaW50X2Zyb21fZ3Jhdml0eSAoQ2x1dHRlci5HcmF2aXR5IGdyYXZp dHkpOworKwkJcHVibGljIHZvaWQgc2V0X2FsbG9jYXRpb24gKENsdXR0ZXIuQWN0b3JCb3ggYm94 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmFj a2dyb3VuZF9jb2xvciAoQ2x1dHRlci5Db2xvcj8gY29sb3IpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KK0BAIC01MDA4LDggKzQ5NDMsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgdm9pZCBzZXRfY29udGVudF9yZXBlYXQgKENsdXR0ZXIuQ29udGVudFJlcGVhdCBy ZXBlYXQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF9jb250ZW50X3NjYWxpbmdfZmlsdGVycyAoQ2x1dHRlci5TY2FsaW5nRmlsdGVyIG1pbl9maWx0 ZXIsIENsdXR0ZXIuU2NhbGluZ0ZpbHRlciBtYWdfZmlsdGVyKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdm9p ZCBzZXRfZGVwdGggKGZsb2F0IGRlcHRoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgdm9pZCBzZXRfZWFzaW5nX2RlbGF5ICh1aW50IG1zZWNzKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTAzOSw4ICs0OTcyLDYgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X29mZnNjcmVlbl9yZWRpcmVjdCAoQ2x1dHRlci5P ZmZzY3JlZW5SZWRpcmVjdCByZWRpcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfb3BhY2l0eSAo dWludDggb3BhY2l0eSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfb3BhY2l0eV9vdmVycmlkZSAoaW50 IG9wYWNpdHkpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wYXJlbnQgKENsdXR0ZXIuQWN0b3Ig cGFyZW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBz ZXRfcGl2b3RfcG9pbnQgKGZsb2F0IHBpdm90X3gsIGZsb2F0IHBpdm90X3kpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC01MDUwLDE2ICs0OTgxLDEwIEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9yZWFjdGl2ZSAoYm9vbCByZWFjdGl2ZSk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcmVxdWVzdF9t b2RlIChDbHV0dGVyLlJlcXVlc3RNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9yb3RhdGlvbiAoQ2x1dHRlci5Sb3RhdGVBeGlzIGF4aXMsIGRvdWJsZSBh bmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3JvdGF0aW9uX2FuZ2xlIChDbHV0dGVyLlJvdGF0 ZUF4aXMgYXhpcywgZG91YmxlIGFuZ2xlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9zY2FsZSAoZG91YmxlIHNjYWxlX3gsIGRvdWJsZSBzY2FsZV95 KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVfZnVsbCAoZG91 YmxlIHNjYWxlX3gsIGRvdWJsZSBzY2FsZV95LCBmbG9hdCBjZW50ZXJfeCwgZmxvYXQgY2VudGVy X3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zY2FsZV93aXRoX2dy YXZpdHkgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSwgQ2x1dHRlci5HcmF2aXR5IGdy YXZpdHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF9zY2FsZV96IChkb3VibGUgc2NhbGVfeik7CisgCQlwdWJsaWMgdm9pZCBzZXRfc2l6ZSAoZmxv YXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CitAQCAtNTA4NSwxNyArNTAxMCwxMiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfeV9leHBhbmQgKGJvb2wgZXhwYW5kKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRfel9wb3Np dGlvbiAoZmxvYXQgel9wb3NpdGlvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3pfcm90YXRpb25fZnJvbV9ncmF2aXR5IChkb3VibGUgYW5nbGUsIENsdXR0ZXIuR3Jh dml0eSBncmF2aXR5KTsKKyAJCXB1YmxpYyBib29sIHNob3VsZF9waWNrX3BhaW50ICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd19hbGwgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYm9vbCB0cmFuc2Zvcm1fc3RhZ2Vf cG9pbnQgKGZsb2F0IHgsIGZsb2F0IHksIG91dCBmbG9hdCB4X291dCwgb3V0IGZsb2F0IHlfb3V0 KTsKKysJCXB1YmxpYyB2b2lkIHVuaW5oaWJpdF9jdWxsaW5nICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCB1bm1hcCAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMC4yIildCistCQlwdWJsaWMgdm9pZCB1bnBhcmVudCAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHVuc2V0X2ZsYWdzIChDbHV0dGVyLkFjdG9yRmxh Z3MgZmxhZ3MpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTEwMywxNiArNTAyMyw3IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkFjdGlvbiBhY3Rpb25zIHsg c2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLkFjdG9yQm94IGFsbG9jYXRpb24geyBnZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdy YXZpdHkgYW5jaG9yX2dyYXZpdHkgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGZsb2F0IGFuY2hvcl94IHsgZ2V0OyBzZXQ7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBm bG9hdCBhbmNob3JfeSB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBh bGxvY2F0aW9uIHsgb3duZWQgZ2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAkJcHVibGljIENsdXR0ZXIuQ29sb3IgYmFja2dyb3VuZF9jb2xvciB7IGdldDsgc2V0OyB9Cisg CQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MTIyLDExICs1MDMzLDggQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBib29sIGNo aWxkX3RyYW5zZm9ybV9zZXQgeyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0J CXB1YmxpYyBDbHV0dGVyLkdlb21ldHJ5IGNsaXAgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0 ZXIuUmVjdCBjbGlwX3JlY3QgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5l LlJlY3QgY2xpcF9yZWN0IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGNsaXBfdG9fYWxsb2NhdGlvbiB7IGdldDsgc2V0OyB9 CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MTQwLDggKzUwNDgsNiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5Db250ZW50R3Jhdml0eSBjb250ZW50X2dyYXZp dHkgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1Ymxp YyBDbHV0dGVyLkNvbnRlbnRSZXBlYXQgY29udGVudF9yZXBlYXQgeyBnZXQ7IHNldDsgfQorLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBmbG9hdCBkZXB0aCB7IGdldDsgc2V0OyB9CisgCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1Ymxp YyBDbHV0dGVyLkVmZmVjdCBlZmZlY3QgeyBzZXQ7IH0KK0BAIC01MjExLDEyICs1MTE3LDEyIEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB1aW50IG9wYWNpdHkgeyBnZXQ7IHNldDsg fQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor LQkJcHVibGljIENsdXR0ZXIuUG9pbnQgcGl2b3RfcG9pbnQgeyBvd25lZCBnZXQ7IHNldDsgfQor KwkJcHVibGljIEdyYXBoZW5lLlBvaW50IHBpdm90X3BvaW50IHsgb3duZWQgZ2V0OyBzZXQ7IH0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZmxvYXQgcGl2b3RfcG9p bnRfeiB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBwb3NpdGlvbiB7IG93bmVk IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcG9zaXRpb24geyBvd25lZCBn ZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGJvb2wg cmVhY3RpdmUgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCitAQCAtNTIyNSw4 ICs1MTMxLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu OCIpXQorIAkJcHVibGljIENsdXR0ZXIuUmVxdWVzdE1vZGUgcmVxdWVzdF9tb2RlIHsgZ2V0OyBz ZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGZsb2F0IHJlc291cmNlX3Nj YWxlIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKyAJCXB1YmxpYyBkb3VibGUgcm90YXRpb25fYW5nbGVfeCB7IGdldDsgc2V0OyB9 CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MjM2LDI3ICs1MTQwLDYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGRvdWJs ZSByb3RhdGlvbl9hbmdsZV96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3RhdGlvbl9jZW50 ZXJfeCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42 IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3kgeyBnZXQ7IHNl dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IENsdXR0ZXIuVmVydGV4IHJvdGF0aW9uX2NlbnRlcl96IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdyYXZp dHkgcm90YXRpb25fY2VudGVyX3pfZ3Jhdml0eSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgZmxvYXQgc2NhbGVfY2VudGVy X3ggeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIGZsb2F0IHNjYWxlX2NlbnRlcl95IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdyYXZp dHkgc2NhbGVfZ3Jhdml0eSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBkb3VibGUgc2NhbGVfeCB7IGdl dDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MjY5LDcgKzUxNTIsNyBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBzaG93X29uX3NldF9wYXJlbnQgeyBn ZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuU2l6ZSBzaXplIHsgb3duZWQgZ2V0OyBzZXQ7IH0K KysJCXB1YmxpYyBHcmFwaGVuZS5TaXplIHNpemUgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIENsdXR0ZXIuVGV4dERpcmVjdGlvbiB0 ZXh0X2RpcmVjdGlvbiB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01 Mjk5LDggKzUxODIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCB5X2V4 cGFuZCB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVi bGljIGZsb2F0IHpfcG9zaXRpb24geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGFsbG9jYXRpb25fY2hhbmdlZCAoQ2x1dHRl ci5BY3RvckJveCBib3gsIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGJ1dHRv bl9wcmVzc19ldmVudCAoQ2x1dHRlci5CdXR0b25FdmVudCBldmVudCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCitAQCAtNTMzMSwyMiArNTIxMiwyNSBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBtb3Rpb25fZXZlbnQgKENsdXR0ZXIu TW90aW9uRXZlbnQgZXZlbnQpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQor LQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFpbnQgKCk7CisrCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgdm9pZCBwYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg dm9pZCBwYXJlbnRfc2V0IChDbHV0dGVyLkFjdG9yPyBvbGRfcGFyZW50KTsKKysJCVtIYXNFbWl0 dGVyXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgcGljayAoQ2x1dHRlci5Db2xvciBjb2xvcik7CisrCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgdm9pZCBwaWNrIChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlb SGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIHF1ZXVlX3JlbGF5b3V0ICgpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcmVhbGl6ZSAoKTsK KysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHJlc291cmNlX3NjYWxlX2NoYW5nZWQgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg Ym9vbCBzY3JvbGxfZXZlbnQgKENsdXR0ZXIuU2Nyb2xsRXZlbnQgZXZlbnQpOworIAkJW0hhc0Vt aXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgdm9pZCBzaG93ICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHN0YWdlX3ZpZXdzX2No YW5nZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIGJvb2wgdG91Y2hfZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC01MzU4LDIxICs1MjQyLDMzIEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHVucmVhbGl6ZSAoKTsK KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfYWN0b3JfbWV0YV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBBY3Rvck1ldGEgOiBHTGli LkluaXRpYWxseVVub3duZWQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorIAkJcHJvdGVjdGVkIEFjdG9yTWV0YSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2VuYWJsZWQg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X25hbWUgKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBz ZXRfYWN0b3IgKENsdXR0ZXIuQWN0b3I/IGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9lbmFi bGVkIChib29sIGlzX2VuYWJsZWQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJ cHVibGljIHZpcnR1YWwgdm9pZCBzZXRfZW5hYmxlZCAoYm9vbCBpc19lbmFibGVkKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9uYW1lIChzdHJpbmcg bmFtZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgQ2x1dHRlci5B Y3RvciBhY3RvciB7IGdldDsgfQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVi bGljIGJvb2wgZW5hYmxlZCB7IGdldDsgc2V0OyB9CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCisgCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9hY3Rvcl9ub2RlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBBY3Rvck5vZGUgOiBD bHV0dGVyLlBhaW50Tm9kZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnROb2RlKiIpXQorKwkJcHVibGljIEFjdG9yTm9kZSAo Q2x1dHRlci5BY3RvciBhY3Rvcik7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FsaWduX2NvbnN0cmFpbnRf Z2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgY2xh c3MgQWxpZ25Db25zdHJhaW50IDogQ2x1dHRlci5Db25zdHJhaW50IHsKK0BAIC01MzgwLDgxICs1 Mjc2LDE4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBBbGlnbkNvbnN0cmFpbnQg KENsdXR0ZXIuQWN0b3I/IHNvdXJjZSwgQ2x1dHRlci5BbGlnbkF4aXMgYXhpcywgZmxvYXQgZmFj dG9yKTsKKyAJCXB1YmxpYyBDbHV0dGVyLkFsaWduQXhpcyBnZXRfYWxpZ25fYXhpcyAoKTsKKyAJ CXB1YmxpYyBmbG9hdCBnZXRfZmFjdG9yICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3Bpdm90X3Bv aW50IChvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludCBwaXZvdF9wb2ludCk7CisgCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9zb3VyY2UgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRf YWxpZ25fYXhpcyAoQ2x1dHRlci5BbGlnbkF4aXMgYXhpcyk7CisgCQlwdWJsaWMgdm9pZCBzZXRf ZmFjdG9yIChmbG9hdCBmYWN0b3IpOworKwkJcHVibGljIHZvaWQgc2V0X3Bpdm90X3BvaW50IChH cmFwaGVuZS5Qb2ludCBwaXZvdF9wb2ludCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfc291cmNlIChD bHV0dGVyLkFjdG9yPyBzb3VyY2UpOworIAkJcHVibGljIENsdXR0ZXIuQWxpZ25BeGlzIGFsaWdu X2F4aXMgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBmbG9hdCBmYWN0b3IgeyBn ZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIEdy YXBoZW5lLlBvaW50IHBpdm90X3BvaW50IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBD bHV0dGVyLkFjdG9yIHNvdXJjZSB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9hbHBoYV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xh c3MgQWxwaGEgOiBHTGliLkluaXRpYWxseVVub3duZWQsIENsdXR0ZXIuU2NyaXB0YWJsZSB7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgQWxw aGEgKCk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQWxwaGEuZnVsbCAoQ2x1dHRlci5U aW1lbGluZSB0aW1lbGluZSwgdWxvbmcgbW9kZSk7CistCQlwdWJsaWMgZG91YmxlIGdldF9hbHBo YSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bG9uZyBnZXRf bW9kZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxpbmUgZ2V0X3RpbWVsaW5l ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bG9u ZyByZWdpc3Rlcl9jbG9zdXJlIChHTGliLkNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVsb25nIHJlZ2lzdGVyX2Z1bmMgKENs dXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2Nsb3N1cmUgKEdMaWIuQ2xvc3VyZSBjbG9zdXJlKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9mdW5jIChvd25lZCBDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9tb2RlICh1bG9uZyBtb2Rl KTsKKy0JCXB1YmxpYyB2b2lkIHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGlu ZSk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQWxwaGEud2l0aF9mdW5jIChDbHV0dGVy LlRpbWVsaW5lIHRpbWVsaW5lLCBvd25lZCBDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKy0JCXB1 YmxpYyBkb3VibGUgYWxwaGEgeyBnZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB1bG9uZyBtb2RlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CistCQlwdWJsaWMg Q2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X2FuaW1hdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgY2xh c3MgQW5pbWF0aW9uIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgQW5pbWF0aW9u ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYmluZCAoc3RyaW5nIHBy b3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgZmluYWwpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5BbmltYXRpb24gYmluZF9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUsIG93bmVkIENs dXR0ZXIuSW50ZXJ2YWwgaW50ZXJ2YWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuQWxwaGEgZ2V0X2FscGhhICgpOworLQkJcHVibGljIHVpbnQgZ2V0X2R1 cmF0aW9uICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5JbnRlcnZhbCBnZXRfaW50ZXJ2 YWwgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCXB1YmxpYyBib29sIGdldF9sb29wICgpOwor LQkJcHVibGljIHVsb25nIGdldF9tb2RlICgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5PYmpl Y3QgZ2V0X29iamVjdCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxpbmUgZ2V0 X3RpbWVsaW5lICgpOworLQkJcHVibGljIGJvb2wgaGFzX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVy dHlfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhhIChD bHV0dGVyLkFscGhhIGFscGhhKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kdXJhdGlvbiAodWludCBt c2Vjcyk7CistCQlwdWJsaWMgdm9pZCBzZXRfbG9vcCAoYm9vbCBsb29wKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9tb2RlICh1bG9uZyBtb2RlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9vYmplY3QgKEdM aWIuT2JqZWN0IG9iamVjdCk7CistCQlwdWJsaWMgdm9pZCBzZXRfdGltZWxpbmUgKENsdXR0ZXIu VGltZWxpbmU/IHRpbWVsaW5lKTsKKy0JCXB1YmxpYyB2b2lkIHVuYmluZF9wcm9wZXJ0eSAoc3Ry aW5nIHByb3BlcnR5X25hbWUpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24g dXBkYXRlIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBmaW5hbCk7CistCQlwdWJs aWMgdm9pZCB1cGRhdGVfaW50ZXJ2YWwgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBDbHV0dGVyLklu dGVydmFsIGludGVydmFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5B bHBoYSBhbHBoYSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdWludCBkdXJhdGlvbiB7IGdldDsg c2V0OyB9CistCQlwdWJsaWMgYm9vbCBsb29wIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB1bG9u ZyBtb2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBHTGliLk9iamVjdCBvYmplY3QgeyBnZXQ7 IHNldDsgfQorLQkJcHVibGljIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUgeyBnZXQ7IHNldDsg fQorLQkJW0hhc0VtaXR0ZXJdCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjb21wbGV0 ZWQgKCk7CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBzdGFydGVkICgpOworLQl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQor QEAgLTU0NjcsMzcgKzUzMDAsMTQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9iYWNrZW5kX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0K Ky0JcHVibGljIGNsYXNzIEJhY2tlbmQgOiBHTGliLk9iamVjdCB7CisrCXB1YmxpYyBhYnN0cmFj dCBjbGFzcyBCYWNrZW5kIDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEJhY2tlbmQgKCk7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhZGRfb3B0aW9ucyAoR0xpYi5PcHRpb25Hcm91 cCBncm91cCk7CistCQlwdWJsaWMgdm9pZCBiZWxsX25vdGlmeSAoKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCBib29sIGNyZWF0ZV9jb250ZXh0ICgpIHRocm93cyBHTGliLkVy cm9yOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5T dGFnZVdpbmRvdyBjcmVhdGVfc3RhZ2UgKENsdXR0ZXIuU3RhZ2Ugd3JhcHBlcikgdGhyb3dzIEdM aWIuRXJyb3I7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBlbnN1cmVf Y29udGV4dCAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RldmljZV9tYW5hZ2Vy ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuRmVhdHVyZUZs YWdzIGdldF9mZWF0dXJlcyAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU2VhdCBnZXRf ZGVmYXVsdF9zZWF0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGlj IHVub3duZWQgQ2Fpcm8uRm9udE9wdGlvbnMgZ2V0X2ZvbnRfb3B0aW9ucyAoKTsKKyAJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuSW5wdXRNZXRob2QgZ2V0X2lucHV0X21ldGhvZCAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuS2V5bWFwIGdldF9rZXltYXAgKCk7CisgCQlwdWJsaWMgZG91 YmxlIGdldF9yZXNvbHV0aW9uICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IHZvaWQgaW5pdF9ldmVudHMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCBpbml0X2ZlYXR1cmVzICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IGJvb2wgcG9zdF9wYXJzZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCBib29sIHByZV9wYXJzZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHJlZHJhdyAoQ2x1dHRlci5TdGFn ZSBzdGFnZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9pZCBz ZXRfZm9udF9vcHRpb25zIChDYWlyby5Gb250T3B0aW9ucyBvcHRpb25zKTsKKyAJCXB1YmxpYyB2 b2lkIHNldF9pbnB1dF9tZXRob2QgKENsdXR0ZXIuSW5wdXRNZXRob2QgbWV0aG9kKTsKK0BAIC01 NTA4LDk1ICs1MzE4LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzZXR0aW5nc19jaGFuZ2VkICgpOwor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIp XQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQmVoYXZpb3VyIDogR0xpYi5PYmplY3QsIENsdXR0 ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistCQlwcm90ZWN0ZWQgQmVoYXZpb3VyICgpOworLQkJcHVibGljIHZvaWQgYWN0b3JzX2Zv cmVhY2ggKENsdXR0ZXIuQmVoYXZpb3VyRm9yZWFjaEZ1bmMgZnVuYyk7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhbHBoYV9ub3RpZnkgKGRvdWJsZSBhbHBoYV92YWx1 ZSk7CistCQlwdWJsaWMgdm9pZCBhcHBseSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJs aWMgR0xpYi5TTGlzdDx3ZWFrIENsdXR0ZXIuQWN0b3I+IGdldF9hY3RvcnMgKCk7CistCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLkFscGhhIGdldF9hbHBoYSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0 X25fYWN0b3JzICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfbnRoX2Fj dG9yIChpbnQgaW5kZXhfKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1Ymxp YyBib29sIGlzX2FwcGxpZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQg cmVtb3ZlIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQi KV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9hbGwgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfYWxw aGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOworLQkJcHVibGljIENsdXR0ZXIuQWxwaGEgYWxwaGEg eyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZp cnR1YWwgc2lnbmFsIHZvaWQgYXBwbGllZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCByZW1v dmVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX2Rl cHRoX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEJlaGF2 aW91ckRlcHRoIDogQ2x1dHRlci5CZWhhdmlvdXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQmVo YXZpb3VyKiIpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIEJlaGF2 aW91ckRlcHRoIChDbHV0dGVyLkFscGhhPyBhbHBoYSwgaW50IGRlcHRoX3N0YXJ0LCBpbnQgZGVw dGhfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdl dF9ib3VuZHMgKG91dCBpbnQgZGVwdGhfc3RhcnQsIG91dCBpbnQgZGVwdGhfZW5kKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3VuZHMgKGludCBk ZXB0aF9zdGFydCwgaW50IGRlcHRoX2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBpbnQgZGVwdGhfZW5kIHsgZ2V0OyBz ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorLQkJcHVibGljIGludCBkZXB0aF9zdGFydCB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2JlaGF2aW91cl9vcGFjaXR5X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjYiLCBzaW5jZSA9ICIwLjIiKV0KKy0J cHVibGljIGNsYXNzIEJlaGF2aW91ck9wYWNpdHkgOiBDbHV0dGVyLkJlaGF2aW91ciwgQ2x1dHRl ci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl LCB0eXBlID0gIkNsdXR0ZXJCZWhhdmlvdXIqIildCistCQlwdWJsaWMgQmVoYXZpb3VyT3BhY2l0 eSAoQ2x1dHRlci5BbHBoYT8gYWxwaGEsIHVpbnQ4IG9wYWNpdHlfc3RhcnQsIHVpbnQ4IG9wYWNp dHlfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdl dF9ib3VuZHMgKG91dCB1aW50OCBvcGFjaXR5X3N0YXJ0LCBvdXQgdWludDggb3BhY2l0eV9lbmQp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvdW5k cyAodWludDggb3BhY2l0eV9zdGFydCwgdWludDggb3BhY2l0eV9lbmQpOworLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgdWludCBvcGFjaXR5X2VuZCB7IGdldDsgc2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG9wYWNpdHlfc3RhcnQgeyBnZXQ7IHNl dDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJfc2NhbGVfZ2V0X3R5cGUgKCkiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNp bmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyU2NhbGUgOiBDbHV0dGVyLkJl aGF2aW91ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJCZWhhdmlvdXIqIildCistCQlwdWJsaWMg QmVoYXZpb3VyU2NhbGUgKENsdXR0ZXIuQWxwaGE/IGFscGhhLCBkb3VibGUgeF9zY2FsZV9zdGFy dCwgZG91YmxlIHlfc2NhbGVfc3RhcnQsIGRvdWJsZSB4X3NjYWxlX2VuZCwgZG91YmxlIHlfc2Nh bGVfZW5kKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGdl dF9ib3VuZHMgKG91dCBkb3VibGUgeF9zY2FsZV9zdGFydCwgb3V0IGRvdWJsZSB5X3NjYWxlX3N0 YXJ0LCBvdXQgZG91YmxlIHhfc2NhbGVfZW5kLCBvdXQgZG91YmxlIHlfc2NhbGVfZW5kKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3VuZHMgKGRv dWJsZSB4X3NjYWxlX3N0YXJ0LCBkb3VibGUgeV9zY2FsZV9zdGFydCwgZG91YmxlIHhfc2NhbGVf ZW5kLCBkb3VibGUgeV9zY2FsZV9lbmQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHhfc2NhbGVfZW5kIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorLQkJcHVibGljIGRvdWJsZSB4X3NjYWxlX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IGRvdWJsZSB5X3NjYWxlX2VuZCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeV9zY2FsZV9z dGFydCB7IGdldDsgc2V0OyB9CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Jpbl9sYXlvdXRfZ2V0X3R5cGUg KCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgY2xhc3MgQmluTGF5 b3V0IDogQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJMYXlvdXRNYW5hZ2VyKiIpXQorIAkJcHVi bGljIEJpbkxheW91dCAoQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiA9IENsdXR0ZXIuQmlu QWxpZ25tZW50LlNUQVJULCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduID0gQ2x1dHRlci5C aW5BbGlnbm1lbnQuU1RBUlQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGFk ZCAoQ2x1dHRlci5BY3RvciBjaGlsZCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgQ2x1 dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3Rvcj8gY2hpbGQsIG91dCBDbHV0dGVyLkJp bkFsaWdubWVudCB4X2FsaWduLCBvdXQgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbik7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FsaWdubWVudCAoQ2x1dHRlci5B Y3Rvcj8gY2hpbGQsIENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQmluQWxp Z25tZW50IHlfYWxpZ24pOworIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIp XQorIAkJcHVibGljIENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24geyBnZXQ7IHNldDsgfQor QEAgLTU2NDQsOTggKzUzNzAsMjkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckVmZmVjdCoiKV0K KyAJCXB1YmxpYyBCbHVyRWZmZWN0ICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ib3hfZ2V0X3R5cGUg KCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgY2xhc3MgQm94IDog Q2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0 ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyBCb3ggKENsdXR0ZXIuTGF5b3V0TWFuYWdlciBtYW5hZ2VyKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY29sb3IgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5MYXlvdXRNYW5h Z2VyIGdldF9sYXlvdXRfbWFuYWdlciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMg dm9pZCBwYWNrIChDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0K Ky0JCXB1YmxpYyB2b2lkIHBhY2tfYWZ0ZXIgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIu QWN0b3I/IHNpYmxpbmcsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQg cGFja19hdCAoQ2x1dHRlci5BY3RvciBhY3RvciwgaW50IHBvc2l0aW9uLCAuLi4pOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBhY2tfYmVmb3JlIChDbHV0dGVyLkFjdG9yIGFj dG9yLCBDbHV0dGVyLkFjdG9yPyBzaWJsaW5nLCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0J CXB1YmxpYyB2b2lkIHBhY2t2IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBbQ0NvZGUgKGFycmF5X2xl bmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMS41LCBhcnJh eV9sZW5ndGhfdHlwZSA9ICJndWludCIpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFy cmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMS41 LCBhcnJheV9sZW5ndGhfdHlwZSA9ICJndWludCIpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3I/ IGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5b3V0X21h bmFnZXIgKENsdXR0ZXIuTGF5b3V0TWFuYWdlciBtYW5hZ2VyKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIild CistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb2xvciB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCBjb2xvcl9zZXQg eyBnZXQ7IHNldDsgfQorLQkJcHVibGljIENsdXR0ZXIuTGF5b3V0TWFuYWdlciBsYXlvdXRfbWFu YWdlciB7IGdldDsgc2V0OyB9CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JveF9sYXlvdXRfZ2V0X3R5cGUg KCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgY2xhc3MgQm94TGF5 b3V0IDogQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJMYXlvdXRNYW5hZ2VyKiIpXQorIAkJcHVi bGljIEJveExheW91dCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBnZXRf YWxpZ25tZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5Cb3hBbGlnbm1lbnQg eF9hbGlnbiwgb3V0IENsdXR0ZXIuQm94QWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjIiKV0KKy0JCXB1YmxpYyB1aW50IGdldF9lYXNpbmdfZHVyYXRpb24gKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMiIpXQorLQkJcHVibGljIHVsb25nIGdldF9lYXNpbmdfbW9kZSAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4yIildCistCQlwdWJsaWMgYm9vbCBnZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBnZXRfZmlsbCAoQ2x1dHRlci5BY3Rv ciBhY3Rvciwgb3V0IGJvb2wgeF9maWxsLCBvdXQgYm9vbCB5X2ZpbGwpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2hvbW9nZW5lb3VzICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLk9yaWVudGF0aW9u IGdldF9vcmllbnRhdGlvbiAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9wYWNrX3N0YXJ0ICgpOwor IAkJcHVibGljIHVpbnQgZ2V0X3NwYWNpbmcgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVi bGljIGJvb2wgZ2V0X3VzZV9hbmltYXRpb25zICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1 YmxpYyBib29sIGdldF92ZXJ0aWNhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMg dm9pZCBwYWNrIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIGV4cGFuZCwgYm9vbCB4X2ZpbGws IGJvb2wgeV9maWxsLCBDbHV0dGVyLkJveEFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJveEFs aWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRf YWxpZ25tZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLkJveEFsaWdubWVudCB4X2Fs aWduLCBDbHV0dGVyLkJveEFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCist CQlwdWJsaWMgdm9pZCBzZXRfZWFzaW5nX2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfZWFzaW5nX21vZGUgKHVsb25nIG1vZGUpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9leHBhbmQgKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIGJvb2wgZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9p ZCBzZXRfZmlsbCAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9vbCB4X2ZpbGwsIGJvb2wgeV9maWxs KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ob21v Z2VuZW91cyAoYm9vbCBob21vZ2VuZW91cyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorIAkJcHVibGljIHZvaWQgc2V0X29yaWVudGF0aW9uIChDbHV0dGVyLk9yaWVudGF0aW9uIG9y aWVudGF0aW9uKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9wYWNrX3N0YXJ0IChib29sIHBhY2tfc3Rh cnQpOworIAkJcHVibGljIHZvaWQgc2V0X3NwYWNpbmcgKHVpbnQgc3BhY2luZyk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VzZV9hbmltYXRpb25zIChib29sIGFuaW1h dGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF92ZXJ0aWNhbCAoYm9v bCB2ZXJ0aWNhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHVpbnQgZWFzaW5nX2R1 cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdWxvbmcg ZWFzaW5nX21vZGUgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor IAkJcHVibGljIGJvb2wgaG9tb2dlbmVvdXMgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLk9yaWVudGF0aW9uIG9yaWVudGF0aW9u IHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBib29sIHBhY2tfc3RhcnQgeyBnZXQ7IHNldDsgfQor IAkJcHVibGljIHVpbnQgc3BhY2luZyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQor LQkJcHVibGljIGJvb2wgdXNlX2FuaW1hdGlvbnMgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjIiKV0KKy0JCXB1YmxpYyBib29sIHZlcnRpY2FsIHsgZ2V0OyBzZXQ7IH0KKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfYnJpZ2h0bmVzc19jb250cmFzdF9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01NzQ5LDkgKzU0MDYsOSBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29udHJhc3QgKGZsb2F0IGNvbnRyYXN0KTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9jb250cmFzdF9mdWxsIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBm bG9hdCBibHVlKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENsdXR0ZXIuQ29s b3IgYnJpZ2h0bmVzcyB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBicmln aHRuZXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIENsdXR0ZXIuQ29sb3IgY29udHJhc3QgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENsdXR0 ZXIuQ29sb3IgY29udHJhc3QgeyBvd25lZCBnZXQ7IHNldDsgfQorIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorIAlbQ29tcGFjdF0KK0BAIC01NzcwLDM3ICs1NDI3LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfY2Fpcm9fdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgY2xhc3MgQ2Fpcm9UZXh0dXJlIDogQ2x1dHRlci5UZXh0dXJlLCBBdGsuSW1wbGVtZW50b3Is IENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJs ZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJD bHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQ2Fpcm9UZXh0dXJlICh1aW50IHdpZHRoLCB1aW50 IGhlaWdodCk7CistCQlwdWJsaWMgdm9pZCBjbGVhciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyBDYWlyby5Db250ZXh0IGNyZWF0ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyBDYWlyby5Db250ZXh0IGNyZWF0ZV9yZWdpb24gKGludCB4X29mZnNldCwgaW50IHlfb2Zm c2V0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorLQkJcHVibGljIGJvb2wgZ2V0X2F1dG9fcmVzaXplICgpOworLQkJcHVibGljIHZvaWQgZ2V0 X3N1cmZhY2Vfc2l6ZSAob3V0IHVpbnQgd2lkdGgsIG91dCB1aW50IGhlaWdodCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBpbnZhbGlkYXRlICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgaW52YWxpZGF0ZV9yZWN0 YW5nbGUgKENhaXJvLlJlY3RhbmdsZUludD8gcmVjdCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfYXV0b19yZXNpemUgKGJvb2wgdmFsdWUpOworLQkJ cHVibGljIHZvaWQgc2V0X3N1cmZhY2Vfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGJvb2wgYXV0b19yZXNpemUg eyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBzdXJm YWNlX2hlaWdodCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyB1aW50IHN1cmZhY2Vfd2lkdGggeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIENhaXJvLlN1cmZhY2UgY3JlYXRlX3N1 cmZhY2UgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGRyYXcgKENhaXJvLkNvbnRleHQg Y3IpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jYW52YXNfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIENhbnZhcyA6IEdMaWIuT2JqZWN0LCBD bHV0dGVyLkNvbnRlbnQgeworQEAgLTU4MjcsMTcgKzU0NTMsMjAgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciB7IGdldDsgY29uc3Ry dWN0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NsaWNrX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBDbGlja0FjdGlvbiA6IENs dXR0ZXIuQWN0aW9uIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl LCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24qIildCisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CisgCQlwdWJsaWMgQ2xpY2tBY3Rpb24gKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CisgCQlwdWJsaWMgdWludCBnZXRfYnV0dG9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorIAkJcHVibGljIHZvaWQgZ2V0X2Nvb3JkcyAob3V0IGZsb2F0IHByZXNzX3gsIG91dCBm bG9hdCBwcmVzc195KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBD bHV0dGVyLk1vZGlmaWVyVHlwZSBnZXRfc3RhdGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCisgCQlwdWJsaWMgdm9pZCByZWxlYXNlICgpOworIAkJW05vQWNjZXNzb3JNZXRob2Rd CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBoZWxkIHsgZ2V0 OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K K0BAIC01ODQ2LDcgKzU0NzUsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgaW50IGxvbmdfcHJlc3NfdGhyZXNob2xkIHsgZ2V0 OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorIAkJcHVibGljIGJvb2wgcHJlc3NlZCB7IGdldDsgfQorKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY2xpY2tlZCAoQ2x1dHRl ci5BY3RvciBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMg dmlydHVhbCBzaWduYWwgYm9vbCBsb25nX3ByZXNzIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0 dGVyLkxvbmdQcmVzc1N0YXRlIHN0YXRlKTsKK0BAIC01ODg4LDggKzU1MTksNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwcm90ZWN0ZWQgQ29uc3RyYWludCAoKTsKKyAJCVtOb1dyYXBwZXJd CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVwZGF0ZV9hbGxvY2F0aW9uIChDbHV0dGVyLkFjdG9y IGFjdG9yLCBDbHV0dGVyLkFjdG9yQm94IGFsbG9jYXRpb24pOworLQkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyB2aXJ0dWFsIHZvaWQgdXBkYXRlX3ByZWZlcnJlZF9zaXplIChDbHV0dGVyLkFjdG9y IGFjdG9yLCBDbHV0dGVyLk9yaWVudGF0aW9uIGRpcmVjdGlvbiwgZmxvYXQgZm9yX3NpemUsIGZs b2F0IG1pbmltdW1fc2l6ZSwgZmxvYXQgbmF0dXJhbF9zaXplKTsKKysJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgdXBkYXRlX3ByZWZlcnJlZF9zaXplIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVy Lk9yaWVudGF0aW9uIGRpcmVjdGlvbiwgZmxvYXQgZm9yX3NpemUsIHJlZiBmbG9hdCBtaW5pbXVt X3NpemUsIHJlZiBmbG9hdCBuYXR1cmFsX3NpemUpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlb Q29tcGFjdF0KK0BAIC01ODk4LDYgKzU1MjgsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgd2VhayBDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZTsKKyAJCXB1YmxpYyBDbHV0dGVy LkV2ZW50RmxhZ3MgZmxhZ3M7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVyLkFjdG9yIHJlbGF0ZWQ7 CisrCQlwdWJsaWMgd2VhayBDbHV0dGVyLkV2ZW50U2VxdWVuY2Ugc2VxdWVuY2U7CisgCQlwdWJs aWMgd2VhayBDbHV0dGVyLkFjdG9yIHNvdXJjZTsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuU3Rh Z2Ugc3RhZ2U7CisgCQlwdWJsaWMgdWludDMyIHRpbWU7CitAQCAtNTkzMSw5OCArNTU2MiwyMSBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfZmFjdG9yIChkb3VibGUg ZmFjdG9yKTsKKyAJCXB1YmxpYyBkb3VibGUgZmFjdG9yIHsgZ2V0OyBzZXQ7IH0KKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfZGV2aWNlX21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMiIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRGV2aWNlTWFuYWdlciA6IEdMaWIu T2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0J CXByb3RlY3RlZCBEZXZpY2VNYW5hZ2VyICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgYWRkX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfa2JkX2ExMXlfc2V0dGlu Z3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbXByZXNzX21vdGlvbiAoQ2x1dHRlci5FdmVudCBldmVu dCwgQ2x1dHRlci5FdmVudCB0b19kaXNjYXJkKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIu VmlydHVhbElucHV0RGV2aWNlIGNyZWF0ZV92aXJ0dWFsX2RldmljZSAoQ2x1dHRlci5JbnB1dERl dmljZVR5cGUgZGV2aWNlX3R5cGUpOworLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVy LklucHV0RGV2aWNlIGdldF9jb3JlX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZGV2 aWNlX3R5cGUpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdl ciBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1 dERldmljZSBnZXRfZGV2aWNlIChpbnQgZGV2aWNlX2lkKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9r YmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJ cHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsRGV2aWNlVHlwZSBnZXRfc3VwcG9ydGVkX3Zp cnR1YWxfZGV2aWNlX3R5cGVzICgpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVy LklucHV0RGV2aWNlPiBsaXN0X2RldmljZXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLlNM aXN0PENsdXR0ZXIuSW5wdXREZXZpY2U+IHBlZWtfZGV2aWNlcyAoKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHJlbW92ZV9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZp Y2UgZGV2aWNlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNlbGVj dF9zdGFnZV9ldmVudHMgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLQkJcHVibGljIHZvaWQgc2V0 X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkJhY2tlbmQgYmFja2VuZCB7 IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNlX2Fk ZGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg ZGV2aWNlX3JlbW92ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBrYmRfYTExeV9mbGFnc19jaGFuZ2VkICh1aW50IHNldHRpbmdzX2ZsYWdzLCB1 aW50IGNoYW5nZWRfbWFzayk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfbW9kc19z dGF0ZV9jaGFuZ2VkICh1aW50IGxhdGNoZWRfbWFzaywgdWludCBsb2NrZWRfbWFzayk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgdG9vbF9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVj dCwgQ2x1dHRlci5JbnB1dERldmljZVRvb2wgcDApOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kcmFnX2Fj dGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCXB1Ymxp YyBjbGFzcyBEcmFnQWN0aW9uIDogQ2x1dHRlci5BY3Rpb24geworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKy0JCXB1 YmxpYyBEcmFnQWN0aW9uICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2RyYWdfYXJlYSAoQ2x1dHRl ci5SZWN0IGRyYWdfYXJlYSk7CistCQlwdWJsaWMgQ2x1dHRlci5EcmFnQXhpcyBnZXRfZHJhZ19h eGlzICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZHJhZ19oYW5kbGUg KCk7CistCQlwdWJsaWMgdm9pZCBnZXRfZHJhZ190aHJlc2hvbGQgKG91dCB1aW50IHhfdGhyZXNo b2xkLCBvdXQgdWludCB5X3RocmVzaG9sZCk7CistCQlwdWJsaWMgdm9pZCBnZXRfbW90aW9uX2Nv b3JkcyAob3V0IGZsb2F0IG1vdGlvbl94LCBvdXQgZmxvYXQgbW90aW9uX3kpOworLQkJcHVibGlj IHZvaWQgZ2V0X3ByZXNzX2Nvb3JkcyAob3V0IGZsb2F0IHByZXNzX3gsIG91dCBmbG9hdCBwcmVz c195KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kcmFnX2FyZWEgKENsdXR0ZXIuUmVjdD8gZHJhZ19h cmVhKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kcmFnX2F4aXMgKENsdXR0ZXIuRHJhZ0F4aXMgYXhp cyk7CistCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ19oYW5kbGUgKENsdXR0ZXIuQWN0b3I/IGhhbmRs ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ190aHJlc2hvbGQgKGludCB4X3RocmVzaG9sZCwg aW50IHlfdGhyZXNob2xkKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgZHJhZ19hcmVhIHsgb3duZWQg Z2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGRyYWdfYXJlYV9zZXQgeyBnZXQ7IH0KKy0JCXB1Ymxp YyBDbHV0dGVyLkRyYWdBeGlzIGRyYWdfYXhpcyB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1 dHRlci5BY3RvciBkcmFnX2hhbmRsZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBpbnQgeF9kcmFnX3RocmVzaG9sZCB7IGdldDsgc2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeV9kcmFnX3RocmVzaG9sZCB7IGdldDsgc2V0 OyB9CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBkcmFnX2JlZ2luIChDbHV0dGVyLkFj dG9yIGFjdG9yLCBmbG9hdCBldmVudF94LCBmbG9hdCBldmVudF95LCBDbHV0dGVyLk1vZGlmaWVy VHlwZSBtb2RpZmllcnMpOworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZHJhZ19lbmQg KENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50X3gsIGZsb2F0IGV2ZW50X3ksIENsdXR0 ZXIuTW9kaWZpZXJUeXBlIG1vZGlmaWVycyk7CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9p ZCBkcmFnX21vdGlvbiAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZGVsdGFfeCwgZmxvYXQg ZGVsdGFfeSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIGJvb2wgZHJhZ19wcm9ncmVzcyAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQg ZGVsdGFfeCwgZmxvYXQgZGVsdGFfeSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Ryb3BfYWN0aW9uX2dl dF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIGNsYXNz IERyb3BBY3Rpb24gOiBDbHV0dGVyLkFjdGlvbiB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorLQkJcHVibGljIERy b3BBY3Rpb24gKCk7CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBjYW5fZHJvcCAoQ2x1 dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRfeSk7CistCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgdm9pZCBkcm9wIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBl dmVudF94LCBmbG9hdCBldmVudF95KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCist CQlwdWJsaWMgc2lnbmFsIHZvaWQgZHJvcF9jYW5jZWwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZs b2F0IGV2ZW50X3gsIGZsb2F0IGV2ZW50X3kpOworLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgb3Zlcl9pbiAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgdm9pZCBvdmVyX291dCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1 YmxpYyBhYnN0cmFjdCBjbGFzcyBFZmZlY3QgOiBDbHV0dGVyLkFjdG9yTWV0YSB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgRWZmZWN0 ICgpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0X3BhaW50X3Zv bHVtZSAoQ2x1dHRlci5QYWludFZvbHVtZSB2b2x1bWUpOworKwkJcHVibGljIHZpcnR1YWwgYm9v bCBtb2RpZnlfcGFpbnRfdm9sdW1lIChDbHV0dGVyLlBhaW50Vm9sdW1lIHZvbHVtZSk7CisgCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludCAoQ2x1dHRlci5FZmZlY3RQ YWludEZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnQgKENsdXR0ZXIu UGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQsIENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFn cyk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwaWNrIChDbHV0dGVy LkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBwaWNrIChD bHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIHZpcnR1YWwgdm9pZCBwb3N0X3BhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBw b3N0X3BhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIHByZV9wYWludCAoKTsKKysJCXB1YmxpYyB2 aXJ0dWFsIGJvb2wgcHJlX3BhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHF1ZXVlX3Jl cGFpbnQgKCk7CisgCX0KK0BAIC02MDMzLDggKzU1ODcsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIENsdXR0ZXIuRXZlbnRUeXBlIHR5cGU7CisgCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwdWJsaWMgRXZlbnQgKENsdXR0ZXIuRXZlbnRU eXBlIHR5cGUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKysJCXB1YmxpYyBzdGF0 aWMgdWludCBhZGRfZmlsdGVyIChDbHV0dGVyLlN0YWdlPyBzdGFnZSwgW0NDb2RlIChkZWxlZ2F0 ZV90YXJnZXRfcG9zID0gMi4yLCBkZXN0cm95X25vdGlmeV9wb3MgPSAyLjEpXSBvd25lZCBDbHV0 dGVyLkV2ZW50RmlsdGVyRnVuYyBmdW5jKTsKKyAJCXB1YmxpYyBDbHV0dGVyLkV2ZW50IGNvcHkg KCk7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorKwkJcHVibGljIHN0YXRpYyBDbHV0dGVyLkV2ZW50IEBnZXQgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGRvdWJsZSBnZXRfYW5nbGUgKENsdXR0ZXIuRXZl bnQgdGFyZ2V0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02MDczLDcgKzU2 MzEsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWludCBnZXRfbW9kZV9ncm91 cCAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9wYWRfZXZlbnRfZGV0YWlscyAob3V0IHVpbnQgbnVt YmVyLCBvdXQgdWludCBtb2RlLCBvdXQgZG91YmxlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCistCQlwdWJsaWMgdm9pZCBnZXRfcG9zaXRpb24gKENsdXR0ZXIuUG9pbnQg cG9zaXRpb24pOworKwkJcHVibGljIHZvaWQgZ2V0X3Bvc2l0aW9uIChHcmFwaGVuZS5Qb2ludCBw b3NpdGlvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFjdG9yIGdldF9yZWxhdGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KK0BAIC02MTA2LDggKzU2NjQsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIGJvb2wgaGFzX3NoaWZ0X21vZGlmaWVyICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKyAJCXB1YmxpYyBib29sIGlzX3BvaW50ZXJfZW11bGF0ZWQgKCk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMC40IildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5FdmVu dCBwZWVrICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZvaWQg cHV0ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKysJCXB1YmxpYyBzdGF0aWMg dm9pZCByZW1vdmVfZmlsdGVyICh1aW50IGlkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9idXR0b24gKHVpbnQzMiBidXR0b24pOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTYxNDAsMTYgKzU3MDIsNiBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfc3RhdGUgKENsdXR0ZXIuTW9kaWZpZXJUeXBlIHN0 YXRlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF90 aW1lICh1aW50MzIgdGltZV8pOworLQkJcHVibGljIENsdXR0ZXIuQW55RXZlbnQgYW55IHtbQ0Nv ZGUgKGNuYW1lID0gIihDbHV0dGVyQW55RXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENs dXR0ZXIuQnV0dG9uRXZlbnQgYnV0dG9uIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyQnV0dG9u RXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuQ3Jvc3NpbmdFdmVudCBjcm9z c2luZyB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlckNyb3NzaW5nRXZlbnQgKikiKV0gIGdldDsg fQorLQkJcHVibGljIENsdXR0ZXIuS2V5RXZlbnQga2V5IHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0 dGVyS2V5RXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuTW90aW9uRXZlbnQg bW90aW9uIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyTW90aW9uRXZlbnQgKikiKV0gIGdldDsg fQorLQkJcHVibGljIENsdXR0ZXIuU2Nyb2xsRXZlbnQgc2Nyb2xsIHtbQ0NvZGUgKGNuYW1lID0g IihDbHV0dGVyU2Nyb2xsRXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuU3Rh Z2VTdGF0ZUV2ZW50IHN0YWdlX3N0YXRlIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyU3RhZ2VT dGF0ZUV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRvdWNoRXZlbnQgdG91 Y2gge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJUb3VjaEV2ZW50ICopIildICBnZXQ7IH0KKy0J CXB1YmxpYyBDbHV0dGVyLlRvdWNocGFkUGluY2hFdmVudCB0b3VjaHBhZF9waW5jaCB7W0NDb2Rl IChjbmFtZSA9ICIoQ2x1dHRlclRvdWNocGFkUGluY2hFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlw dWJsaWMgQ2x1dHRlci5Ub3VjaHBhZFN3aXBlRXZlbnQgdG91Y2hwYWRfc3dpcGUge1tDQ29kZSAo Y25hbWUgPSAiKENsdXR0ZXJUb3VjaHBhZFN3aXBlRXZlbnQgKikiKV0gIGdldDsgfQorIAl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVu Y3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0 eXBlX2lkID0gImNsdXR0ZXJfZXZlbnRfc2VxdWVuY2VfZ2V0X3R5cGUgKCkiKV0KKyAJW0NvbXBh Y3RdCitAQCAtNjE5OCwxMCArNTc1MCwyNCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIGJvb2wgc25hcF90b19ncmlkIHsgZ2V0 OyBzZXQ7IH0KKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZnJhbWVfY2xvY2tfZ2V0X3R5cGUgKCkiKV0KKysJ cHVibGljIGNsYXNzIEZyYW1lQ2xvY2sgOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwdWJsaWMgRnJhbWVDbG9jayAoZmxvYXQg cmVmcmVzaF9yYXRlLCBDbHV0dGVyLkZyYW1lTGlzdGVuZXJJZmFjZSBpZmFjZSwgdm9pZCogdXNl cl9kYXRhKTsKKysJCXB1YmxpYyB2b2lkIGFkZF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZSB0 aW1lbGluZSk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3JlZnJlc2hfcmF0ZSAoKTsKKysJCXB1Ymxp YyB2b2lkIGluaGliaXQgKCk7CisrCQlwdWJsaWMgdm9pZCByZW1vdmVfdGltZWxpbmUgKENsdXR0 ZXIuVGltZWxpbmUgdGltZWxpbmUpOworKwkJcHVibGljIHZvaWQgc2NoZWR1bGVfdXBkYXRlICgp OworKwkJcHVibGljIHZvaWQgc2NoZWR1bGVfdXBkYXRlX25vdyAoKTsKKysJCXB1YmxpYyB2b2lk IHVuaW5oaWJpdCAoKTsKKysJCVtIYXNFbWl0dGVyXQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGRl c3Ryb3kgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dlc3R1cmVfYWN0aW9uX2dldF90eXBlICgpIild CistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIGNsYXNzIEdlc3R1cmVBY3Rp b24gOiBDbHV0dGVyLkFjdGlvbiB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorIAkJcHVibGljIEdlc3R1cmVBY3Rpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorIAkJcHVibGljIHZvaWQgY2FuY2VsICgpOworQEAgLTYyMTEsNiArNTc3Nyw3 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuSW5wdXRE ZXZpY2UgZ2V0X2RldmljZSAodWludCBwb2ludCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x NCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5FdmVudCBnZXRfbGFzdF9ldmVudCAodWlu dCBwb2ludCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBn ZXRfbW90aW9uX2Nvb3JkcyAodWludCBwb2ludCwgb3V0IGZsb2F0IG1vdGlvbl94LCBvdXQgZmxv YXQgbW90aW9uX3kpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBm bG9hdCBnZXRfbW90aW9uX2RlbHRhICh1aW50IHBvaW50LCBvdXQgZmxvYXQgZGVsdGFfeCwgb3V0 IGZsb2F0IGRlbHRhX3kpOworQEAgLTYyMTgsNyArNTc4NSw5IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyB1aW50IGdldF9uX2N1cnJlbnRfcG9pbnRzICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X25fdG91Y2hfcG9pbnRzICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgZ2V0X3ByZXNzX2Nv b3JkcyAodWludCBwb2ludCwgb3V0IGZsb2F0IHByZXNzX3gsIG91dCBmbG9hdCBwcmVzc195KTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGdldF9yZWxlYXNl X2Nvb3JkcyAodWludCBwb2ludCwgb3V0IGZsb2F0IHJlbGVhc2VfeCwgb3V0IGZsb2F0IHJlbGVh c2VfeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHVub3duZWQg Q2x1dHRlci5FdmVudFNlcXVlbmNlIGdldF9zZXF1ZW5jZSAodWludCBwb2ludCk7CitAQCAtNjI0 Niw5ICs1ODE1LDEzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB0aHJl c2hvbGRfdHJpZ2dlcl9kaXN0YW5jZV95IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE4IildCisgCQlwdWJsaWMgQ2x1dHRlci5HZXN0dXJlVHJpZ2dlckVkZ2Ug dGhyZXNob2xkX3RyaWdnZXJfZWRnZSB7IGdldDsgY29uc3RydWN0OyB9CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBnZXN0dXJlX2Jl Z2luIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K KyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGdlc3R1cmVfY2FuY2VsIChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIGdlc3R1cmVfZW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGdl c3R1cmVfcHJvZ3Jlc3MgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9n cmlkX2xheW91dF9nZXRfdHlwZSAoKSIpXQorQEAgLTYyNzgsMTkgKzU4NTEsNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCByb3dfaG9tb2dlbmVvdXMgeyBnZXQ7IHNldDsg fQorIAkJcHVibGljIHVpbnQgcm93X3NwYWNpbmcgeyBnZXQ7IHNldDsgfQorIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9ncm91cF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCist CXB1YmxpYyBjbGFzcyBHcm91cCA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1 dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0 ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgR3JvdXAgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQor LQkJcHVibGljIGludCBnZXRfbl9jaGlsZHJlbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9udGhfY2hpbGQgKGludCBpbmRleF8pOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9hbGwgKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ltYWdl X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBj bGFzcyBJbWFnZSA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworQEAgLTYzMDYsNiAr NTg2Niw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIGNsYXNzIElucHV0RGV2aWNl IDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorIAkJcHJvdGVjdGVkIElucHV0RGV2aWNlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3IgKENsdXR0 ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfYXNzb2NpYXRlZF9k ZXZpY2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtNjMxMyw3ICs1ODc1 LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor IAkJcHVibGljIGJvb2wgZ2V0X2F4aXNfdmFsdWUgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFs c2UpXSBkb3VibGVbXSBheGVzLCBDbHV0dGVyLklucHV0QXhpcyBheGlzLCBvdXQgZG91YmxlIHZh bHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgYm9vbCBnZXRf Y29vcmRzIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlLCBDbHV0dGVyLlBvaW50IHBv aW50KTsKKysJCXB1YmxpYyBib29sIGdldF9jb29yZHMgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8g c2VxdWVuY2UsIEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2RldmljZV9pZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KK0BAIC02MzI1LDEyICs1ODg3LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGdldF9kZXZpY2VfdHlwZSAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9lbmFibGVkICgp OworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2dldF9pbnB1dF9kZXZpY2VfZm9yX2lkIild CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuSW5w dXREZXZpY2UgZ2V0X2Zvcl9pZCAoaW50IGlkXyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZ3JhYmJlZF9hY3RvciAo KTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2dyb3VwX25fbW9kZXMgKGludCBncm91cCk7CisrCQlwdWJs aWMgdmlydHVhbCBpbnQgZ2V0X2dyb3VwX25fbW9kZXMgKGludCBncm91cCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfaGFzX2N1cnNvciAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02MzQ2LDIzICs1OTA1LDIxIEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fbW9kZV9ncm91cHMgKCk7CisgCQlw dWJsaWMgaW50IGdldF9uX3JpbmdzICgpOworIAkJcHVibGljIGludCBnZXRfbl9zdHJpcHMgKCk7 CistCQlwdWJsaWMgYm9vbCBnZXRfcGh5c2ljYWxfc2l6ZSAoZG91YmxlIHdpZHRoLCBkb3VibGUg aGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuQWN0b3IgZ2V0X3BvaW50ZXJfYWN0b3IgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlN0YWdlIGdldF9wb2ludGVyX3N0 YWdlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfcHJvZHVjdF9pZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU2Vh dCBnZXRfc2VhdCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBH TGliLkxpc3Q8d2VhayBDbHV0dGVyLklucHV0RGV2aWNlPiBnZXRfc2xhdmVfZGV2aWNlcyAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X3ZlbmRvcl9pZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJs aWMgdm9pZCBncmFiIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBib29sIGlzX2dy b3VwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb3RoZXJfZGV2aWNlKTsKKy0JCXB1YmxpYyBib29s IGlzX21vZGVfc3dpdGNoX2J1dHRvbiAodWludCBncm91cCwgdWludCBidXR0b24pOworKwkJcHVi bGljIHZpcnR1YWwgYm9vbCBpc19ncm91cGVkIChDbHV0dGVyLklucHV0RGV2aWNlIG90aGVyX2Rl dmljZSk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGlzX21vZGVfc3dpdGNoX2J1dHRvbiAodWlu dCBncm91cCwgdWludCBidXR0b24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyBib29sIGtleWNvZGVfdG9fZXZkZXYgKHVpbnQgaGFyZHdhcmVfa2V5Y29kZSwgdWlu dCBldmRldl9rZXljb2RlKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wga2V5Y29kZV90b19ldmRl diAodWludCBoYXJkd2FyZV9rZXljb2RlLCB1aW50IGV2ZGV2X2tleWNvZGUpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3Igc2Vx dWVuY2VfZ2V0X2dyYWJiZWRfYWN0b3IgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZSBzZXF1ZW5jZSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTYzNzgsMTIgKzU5MzUsMTEgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgdW5ncmFiICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgdXBkYXRlX2Zyb21fZXZlbnQgKENs dXR0ZXIuRXZlbnQgZXZlbnQsIGJvb2wgdXBkYXRlX3N0YWdlKTsKKysJCVtOb1dyYXBwZXJdCisr CQlwdWJsaWMgdmlydHVhbCB2b2lkIHVwZGF0ZV9mcm9tX3Rvb2wgKENsdXR0ZXIuSW5wdXREZXZp Y2VUb29sIHRvb2wpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS42IildCisgCQlwdWJsaWMgQ2x1dHRlci5CYWNrZW5kIGJhY2tlbmQgeyBvd25lZCBnZXQ7 IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS42IildCistCQlwdWJsaWMgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGRldmljZV9tYW5hZ2Vy IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0TW9kZSBk ZXZpY2VfbW9kZSB7IGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgc3RyaW5nIGRldmljZV9u b2RlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KK0BA IC02NDA2LDYgKzU5NjIsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgc3RyaW5n IG5hbWUgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MjIiKV0KKyAJCXB1YmxpYyBzdHJpbmcgcHJvZHVjdF9pZCB7IGdldDsgY29uc3RydWN0OyB9Cisr CQlwdWJsaWMgQ2x1dHRlci5TZWF0IHNlYXQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdmVuZG9yX2lkIHsgZ2V0OyBj b25zdHJ1Y3Q7IH0KKyAJfQorQEAgLTY0MzAsNyArNTk4Nyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbW1pdF90ZXh0IChz dHJpbmcgdGV4dCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBkZWxl dGVfc3Vycm91bmRpbmcgKHVpbnQgb2Zmc2V0LCB1aW50IGxlbik7CisrCQlwdWJsaWMgdmlydHVh bCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAoaW50IG9mZnNldCwgdWludCBsZW4pOworIAkJcHVi bGljIGJvb2wgZmlsdGVyX2tleV9ldmVudCAoQ2x1dHRlci5LZXlFdmVudCBrZXkpOworIAkJW05v V3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZm9jdXNfaW4gKENsdXR0ZXIuSW5wdXRN ZXRob2QgaW5wdXRfbWV0aG9kKTsKK0BAIC02NDQzLDcgKzYwMDAsNyBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfY2FuX3Nob3dfcHJlZWRpdCAoYm9vbCBjYW5fc2hv d19wcmVlZGl0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X2hpbnRzIChDbHV0dGVyLklu cHV0Q29udGVudEhpbnRGbGFncyBoaW50KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X3B1 cnBvc2UgKENsdXR0ZXIuSW5wdXRDb250ZW50UHVycG9zZSBwdXJwb3NlKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2 b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMg dm9pZCBzZXRfaW5wdXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIHN0YXRl KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9wcmVlZGl0X3Rl eHQgKHN0cmluZyBwcmVlZGl0LCB1aW50IGN1cnNvcik7CitAQCAtNjQ2Miw3ICs2MDE5LDcgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgcmVzZXQgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXRf Y3Vyc29yX2xvY2F0aW9uIChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMg dm9pZCBzZXRfaW5wdXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIHN0YXRl KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9wcmVlZGl0X3RleHQgKHN0cmluZz8gcHJlZWRpdCwgdWlu dCBjdXJzb3IpOworIAkJW05vV3JhcHBlcl0KK0BAIC02NDc5LDkgKzYwMzYsOSBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dENvbnRlbnRQdXJwb3NlIGNvbnRl bnRfcHVycG9zZSB7IGdldDsgc2V0OyB9CisgCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBjb21taXQgKHN0cmluZyB0ZXh0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJz b3JfbG9jYXRpb25fY2hhbmdlZCAoQ2x1dHRlci5SZWN0IG9iamVjdCk7CisrCQlwdWJsaWMgc2ln bmFsIHZvaWQgY3Vyc29yX2xvY2F0aW9uX2NoYW5nZWQgKEdyYXBoZW5lLlJlY3Qgb2JqZWN0KTsK KyAJCVtIYXNFbWl0dGVyXQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGlu ZyAodWludCBvZmZzZXQsIHVpbnQgbGVuKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZWxldGVf c3Vycm91bmRpbmcgKGludCBvZmZzZXQsIHVpbnQgbGVuKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9p ZCBpbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgb2JqZWN0KTsKKyAJ CVtIYXNFbWl0dGVyXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIHJlcXVlc3Rfc3Vycm91bmRpbmcg KCk7CitAQCAtNjU1NSwyOCArNjExMiwyOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgS2V5bWFw ICgpOworIAkJcHVibGljIHZpcnR1YWwgYm9vbCBnZXRfY2Fwc19sb2NrX3N0YXRlICgpOworKwkJ cHVibGljIHZpcnR1YWwgUGFuZ28uRGlyZWN0aW9uIGdldF9kaXJlY3Rpb24gKCk7CisgCQlwdWJs aWMgdmlydHVhbCBib29sIGdldF9udW1fbG9ja19zdGF0ZSAoKTsKKyAJCXB1YmxpYyBzaWduYWwg dm9pZCBzdGF0ZV9jaGFuZ2VkICgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9sYXllcl9ub2RlX2dldF90 eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBMYXllck5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7 CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyUGFpbnROb2RlKiIpXQorKwkJcHVibGljIExheWVyTm9kZSAoQ29nbC5NYXRyaXggcHJvamVj dGlvbiwgQ2Fpcm8uUmVjdGFuZ2xlIHZpZXdwb3J0LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0 LCB1aW50OCBvcGFjaXR5KTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfbGF5b3V0X21hbmFnZXJfZ2V0X3R5 cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAlwdWJsaWMgYWJzdHJhY3Qg Y2xhc3MgTGF5b3V0TWFuYWdlciA6IEdMaWIuSW5pdGlhbGx5VW5vd25lZCB7CisgCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgTGF5b3V0TWFu YWdlciAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWxsb2NhdGUgKENsdXR0ZXIuQ29udGFp bmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvckJveCBhbGxvY2F0aW9uLCBDbHV0dGVyLkFsbG9j YXRpb25GbGFncyBmbGFncyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZpcnR1YWwg dW5vd25lZCBDbHV0dGVyLkFscGhhIGJlZ2luX2FuaW1hdGlvbiAodWludCBkdXJhdGlvbiwgdWxv bmcgbW9kZSk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkNvbnRh aW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlvbik7CisgCQlwdWJsaWMg dm9pZCBjaGlsZF9nZXQgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3Rv ciBhY3RvciwgLi4uKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX2dldF9wcm9wZXJ0eSAoQ2x1dHRl ci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCBzdHJpbmcgcHJvcGVy dHlfbmFtZSwgR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCQlwdWJsaWMgdm9pZCBjaGlsZF9zZXQgKENs dXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3RvciwgLi4uKTsKKyAJ CXB1YmxpYyB2b2lkIGNoaWxkX3NldF9wcm9wZXJ0eSAoQ2x1dHRlci5Db250YWluZXIgY29udGFp bmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCBzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1 ZSB2YWx1ZSk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0 dGVyLkxheW91dE1ldGEgY3JlYXRlX2NoaWxkX21ldGEgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRh aW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBlbmRfYW5pbWF0aW9uICgpOworIAkJcHVibGljIHVub3duZWQgR0xpYi5Q YXJhbVNwZWMgZmluZF9jaGlsZF9wcm9wZXJ0eSAoc3RyaW5nIG5hbWUpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIGRvdWJsZSBnZXRfYW5pbWF0aW9uX3Byb2dyZXNzICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5MYXlvdXRNZXRhIGdldF9jaGlsZF9tZXRhIChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIs IENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW05vV3JhcHBlcl0KK0BAIC02NjMyLDEyICs2MTg5 LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXByb3RlY3RlZCBPZmZzY3JlZW5FZmZlY3Qg KCk7CisgCQlwdWJsaWMgdmlydHVhbCBDb2dsLkhhbmRsZSBjcmVhdGVfdGV4dHVyZSAoZmxvYXQg d2lkdGgsIGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJ cHVibGljIGJvb2wgZ2V0X3RhcmdldF9yZWN0IChvdXQgdW5vd25lZCBDbHV0dGVyLlJlY3QgcmVj dCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3JlY3QgKG91dCB1bm93bmVkIEdyYXBoZW5l LlJlY3QgcmVjdCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X3Rhcmdl dF9zaXplIChvdXQgZmxvYXQgd2lkdGgsIG91dCBmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF90ZXh0 dXJlICgpOworLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludF90YXJnZXQgKCk7CisrCQlwdWJs aWMgdmlydHVhbCB2b2lkIHBhaW50X3RhcmdldCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRf Y29udGV4dCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhZ2VfdHVybl9lZmZlY3RfZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTY2NTQsNiArNjIxMSwxNyBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91YmxlIHBlcmlvZCB7IGdldDsgc2V0OyB9 CisgCQlwdWJsaWMgZmxvYXQgcmFkaXVzIHsgZ2V0OyBzZXQ7IH0KKyAJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCByZWZfZnVuY3Rpb24gPSAiY2x1 dHRlcl9wYWludF9jb250ZXh0X3JlZiIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWludF9jb250ZXh0 X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9wYWludF9jb250ZXh0X3Vu cmVmIildCisrCVtDb21wYWN0XQorKwlwdWJsaWMgY2xhc3MgUGFpbnRDb250ZXh0IHsKKysJCXB1 YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVy IGdldF9mcmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENhaXJvLlJlZ2lvbiBnZXRf cmVkcmF3X2NsaXAgKCk7CisrCQlwdWJsaWMgdm9pZCBwb3BfZnJhbWVidWZmZXIgKCk7CisrCQlw dWJsaWMgdm9pZCBwdXNoX2ZyYW1lYnVmZmVyIChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVy KTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUGFpbnRDb250ZXh0IEByZWYgKCk7CisrCQlw dWJsaWMgdm9pZCB1bnJlZiAoKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGFpbnRfbm9kZV9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgYWJzdHJhY3Qg Y2xhc3MgUGFpbnROb2RlIHsKK0BAIC02NjYzLDcgKzYyMzEsOCBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgdm9pZCBhZGRfbXVsdGl0ZXh0dXJlX3JlY3RhbmdsZSAoQ2x1dHRlci5B Y3RvckJveCByZWN0LCBmbG9hdCB0ZXh0X2Nvb3JkcywgdWludCB0ZXh0X2Nvb3Jkc19sZW4pOwor IAkJcHVibGljIHZvaWQgYWRkX3JlY3RhbmdsZSAoQ2x1dHRlci5BY3RvckJveCByZWN0KTsKKyAJ CXB1YmxpYyB2b2lkIGFkZF90ZXh0dXJlX3JlY3RhbmdsZSAoQ2x1dHRlci5BY3RvckJveCByZWN0 LCBmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQkJcHVibGlj IHZvaWQgcGFpbnQgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9m cmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29udGV4 dCBwYWludF9jb250ZXh0KTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUGFpbnROb2RlIEBy ZWYgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfbmFtZSAoc3RyaW5nIG5hbWUpOworIAkJcHVibGlj IHZvaWQgdW5yZWYgKCk7CitAQCAtNjY4MSw3ICs2MjUwLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGZsb2F0IGdldF9oZWln aHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ2x1dHRlci5W ZXJ0ZXggZ2V0X29yaWdpbiAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF9vcmlnaW4gKG91dCB1bm93 bmVkIEdyYXBoZW5lLlBvaW50M0QgdmVydGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYi KV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfd2lkdGggKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS42IildCitAQCAtNjY5MSw3ICs2MjYwLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2hlaWdodCAoZmxvYXQg aGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9vcmlnaW4gKENsdXR0ZXIuVmVydGV4IG9yaWdpbik7CisrCQlwdWJsaWMgdm9pZCBzZXRfb3Jp Z2luIChHcmFwaGVuZS5Qb2ludDNEIG9yaWdpbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCisgCQlwdWJsaWMgdm9pZCBzZXRfd2lkdGggKGZsb2F0IHdpZHRoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KK0BAIC02Nzc4LDg4ICs2MzQ3LDI5IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlBhdGggcGF0aCB7IGdldDsgc2V0OyB9CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgbm9kZV9yZWFjaGVkIChDbHV0dGVyLkFjdG9yIGFjdG9yLCB1aW50IGlu ZGV4KTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCByZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfcmVmIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX3BpY2tfY29udGV4dF9nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gImNs dXR0ZXJfcGlja19jb250ZXh0X3VucmVmIildCisrCVtDb21wYWN0XQorKwlwdWJsaWMgY2xhc3Mg UGlja0NvbnRleHQgeworKwkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKysJCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuUGlja0NvbnRleHQgQHJlZiAoKTsKKysJCXB1YmxpYyB2b2lkIHVucmVmICgp OworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl9waXBlbGluZV9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBQaXBlbGluZU5vZGUgOiBDbHV0 dGVyLlBhaW50Tm9kZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCisgCQlwcm90ZWN0ZWQgUGlwZWxpbmVOb2RlICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hl ZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0 ZXJfcG9pbnRfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCistCXB1YmxpYyBjbGFzcyBQb2ludCB7CistCQlwdWJsaWMgZmxvYXQgeDsKKy0J CXB1YmxpYyBmbG9hdCB5OworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlBvaW50IGFsbG9jICgp OworLQkJcHVibGljIENsdXR0ZXIuUG9pbnQgY29weSAoKTsKKy0JCXB1YmxpYyBmbG9hdCBkaXN0 YW5jZSAoQ2x1dHRlci5Qb2ludCBiLCBvdXQgZmxvYXQgeF9kaXN0YW5jZSwgb3V0IGZsb2F0IHlf ZGlzdGFuY2UpOworLQkJcHVibGljIGJvb2wgZXF1YWxzIChDbHV0dGVyLlBvaW50IGIpOworLQkJ cHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUG9pbnQgaW5p dCAoZmxvYXQgeCwgZmxvYXQgeSk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5Q b2ludCB6ZXJvICgpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wcm9wZXJ0eV90cmFuc2l0aW9uX2dldF90 eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBQ cm9wZXJ0eVRyYW5zaXRpb24gOiBDbHV0dGVyLlRyYW5zaXRpb24sIENsdXR0ZXIuU2NyaXB0YWJs ZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJD bHV0dGVyVHJhbnNpdGlvbioiKV0KKyAJCXB1YmxpYyBQcm9wZXJ0eVRyYW5zaXRpb24gKHN0cmlu Zz8gcHJvcGVydHlfbmFtZSk7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSwgdHlwZSA9ICJDbHV0dGVyVHJhbnNpdGlvbioiKV0KKysJCXB1YmxpYyBQcm9wZXJ0eVRy YW5zaXRpb24uZm9yX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBzdHJpbmc/IHByb3BlcnR5 X25hbWUpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9wcm9wZXJ0eV9uYW1lICgpOwor LQkJcHVibGljIHZvaWQgc2V0X3Byb3BlcnR5X25hbWUgKHN0cmluZz8gcHJvcGVydHlfbmFtZSk7 CistCQlwdWJsaWMgc3RyaW5nIHByb3BlcnR5X25hbWUgeyBnZXQ7IHNldDsgfQorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rp b24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBl X2lkID0gImNsdXR0ZXJfcmVjdF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFJlY3QgeworLQkJcHVibGljIHdl YWsgQ2x1dHRlci5Qb2ludCBvcmlnaW47CistCQlwdWJsaWMgd2VhayBDbHV0dGVyLlNpemUgc2l6 ZTsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5SZWN0IGFsbG9jICgpOworLQkJcHVibGljIHZv aWQgY2xhbXBfdG9fcGl4ZWwgKCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19wb2ludCAoQ2x1 dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19yZWN0IChDbHV0dGVy LlJlY3QgYik7CistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGNvcHkgKCk7CistCQlwdWJsaWMgYm9v bCBlcXVhbHMgKENsdXR0ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlw dWJsaWMgdm9pZCBnZXRfY2VudGVyIChDbHV0dGVyLlBvaW50IGNlbnRlcik7CistCQlwdWJsaWMg ZmxvYXQgZ2V0X2hlaWdodCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfd2lkdGggKCk7CistCQlw dWJsaWMgZmxvYXQgZ2V0X3ggKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7CistCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLlJlY3QgaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lk dGgsIGZsb2F0IGhlaWdodCk7CistCQlwdWJsaWMgdm9pZCBpbnNldCAoZmxvYXQgZF94LCBmbG9h dCBkX3kpOworLQkJcHVibGljIGJvb2wgaW50ZXJzZWN0aW9uIChDbHV0dGVyLlJlY3QgYiwgQ2x1 dHRlci5SZWN0PyByZXMpOworLQkJcHVibGljIENsdXR0ZXIuUmVjdCBub3JtYWxpemUgKCk7Cist CQlwdWJsaWMgdm9pZCBvZmZzZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKy0JCXB1YmxpYyB2 b2lkIHNjYWxlIChmbG9hdCBzX3gsIGZsb2F0IHNfeSk7CistCQlwdWJsaWMgdm9pZCB1bmlvbiAo Q2x1dHRlci5SZWN0IGIsIENsdXR0ZXIuUmVjdCByZXMpOworLQkJcHVibGljIHN0YXRpYyB1bm93 bmVkIENsdXR0ZXIuUmVjdCB6ZXJvICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZWN0YW5nbGVfZ2V0 X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3Mg UmVjdGFuZ2xlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1h dGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIp XQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyBSZWN0YW5nbGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVi bGljIENsdXR0ZXIuQ29sb3IgZ2V0X2JvcmRlcl9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIild CistCQlwdWJsaWMgdWludCBnZXRfYm9yZGVyX3dpZHRoICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDbHV0 dGVyLkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfYm9yZGVyX2Nv bG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMg dm9pZCBzZXRfYm9yZGVyX3dpZHRoICh1aW50IHdpZHRoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBz ZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyBSZWN0YW5nbGUud2l0aF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlwdWJsaWMg Q2x1dHRlci5Db2xvciBib3JkZXJfY29sb3IgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVpbnQg Ym9yZGVyX3dpZHRoIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNvbG9y IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgaGFz X2JvcmRlciB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgdm9pZCBzZXRfcHJvcGVydHlfbmFtZSAo c3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKysJCXB1YmxpYyBzdHJpbmcgcHJvcGVydHlfbmFtZSB7 IGdldDsgc2V0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Jvb3Rfbm9kZV9nZXRfdHlwZSAoKSIpXQor IAlwdWJsaWMgY2xhc3MgUm9vdE5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7CitAQCAtNjg4MCwx NSArNjM5MCwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgU2NyaXB0ICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgYWRkX3NlYXJjaF9w YXRocyAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wYXRocyIsIGFycmF5X2xlbmd0 aF9wb3MgPSAxLjEsIGFycmF5X2xlbmd0aF90eXBlID0gImdzaXplIildIHN0cmluZ1tdIHBhdGhz KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBhZGRfc3RhdGVzIChzdHJpbmc/ IG5hbWUsIENsdXR0ZXIuU3RhdGUgc3RhdGUpOworIAkJcHVibGljIHZvaWQgY29ubmVjdF9zaWdu YWxzICh2b2lkKiB1c2VyX2RhdGEpOworIAkJcHVibGljIHZvaWQgY29ubmVjdF9zaWduYWxzX2Z1 bGwgKENsdXR0ZXIuU2NyaXB0Q29ubmVjdEZ1bmMgZnVuYyk7CisgCQlwdWJsaWMgdm9pZCBlbnN1 cmVfb2JqZWN0cyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9vYmplY3Qg KHN0cmluZyBuYW1lKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X29iamVjdHMgKC4uLik7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuOCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TdGF0ZSBnZXRfc3RhdGVzIChz dHJpbmc/IG5hbWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1 bm93bmVkIHN0cmluZyBnZXRfdHJhbnNsYXRpb25fZG9tYWluICgpOworIAkJcHVibGljIHZpcnR1 YWwgR0xpYi5UeXBlIGdldF90eXBlX2Zyb21fbmFtZSAoc3RyaW5nIHR5cGVfbmFtZSk7CitAQCAt NjkxNiw4ICs2NDIyLDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorIAkJcHVi bGljIFNjcm9sbEFjdG9yICgpOworIAkJcHVibGljIENsdXR0ZXIuU2Nyb2xsTW9kZSBnZXRfc2Ny b2xsX21vZGUgKCk7CistCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcG9pbnQgKENsdXR0ZXIuUG9p bnQgcG9pbnQpOworLQkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3JlY3QgKENsdXR0ZXIuUmVjdCBy ZWN0KTsKKysJCXB1YmxpYyB2b2lkIHNjcm9sbF90b19wb2ludCAoR3JhcGhlbmUuUG9pbnQgcG9p bnQpOworKwkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3JlY3QgKEdyYXBoZW5lLlJlY3QgcmVjdCk7 CisgCQlwdWJsaWMgdm9pZCBzZXRfc2Nyb2xsX21vZGUgKENsdXR0ZXIuU2Nyb2xsTW9kZSBtb2Rl KTsKKyAJCXB1YmxpYyBDbHV0dGVyLlNjcm9sbE1vZGUgc2Nyb2xsX21vZGUgeyBnZXQ7IHNldDsg fQorIAl9CitAQCAtNjkzOSw2ICs2NDQ1LDQ3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NlYXRf Z2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGFic3RyYWN0IGNsYXNzIFNlYXQgOiBHTGliLk9iamVj dCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90 ZWN0ZWQgU2VhdCAoKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFw cGx5X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7 CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGJlbGxfbm90aWZ5ICgpOworKwkJcHVibGljIHZpcnR1 YWwgdm9pZCBjb21wcmVzc19tb3Rpb24gKENsdXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIuRXZl bnQgdG9fZGlzY2FyZCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBj b3B5X2V2ZW50X2RhdGEgKENsdXR0ZXIuRXZlbnQgc3JjLCBDbHV0dGVyLkV2ZW50IGRlc3QpOwor KwkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsSW5wdXREZXZpY2UgY3JlYXRlX3ZpcnR1 YWxfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CisrCQlwdWJs aWMgdm9pZCBlbnN1cmVfYTExeV9zdGF0ZSAoKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMg dmlydHVhbCB2b2lkIGZyZWVfZXZlbnRfZGF0YSAoQ2x1dHRlci5FdmVudCBldmVudCk7CisrCQlw dWJsaWMgdm9pZCBnZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdz IHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmlj ZSBnZXRfa2V5Ym9hcmQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuS2V5 bWFwIGdldF9rZXltYXAgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5w dXREZXZpY2UgZ2V0X3BvaW50ZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRlcl9hMTF5 X3NldHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVi bGljIGJvb2wgZ2V0X3RvdWNoX21vZGUgKCk7CisrCQlwdWJsaWMgdm9pZCBpbmhpYml0X3VuZm9j dXMgKCk7CisrCQlwdWJsaWMgYm9vbCBpc191bmZvY3VzX2luaGliaXRlZCAoKTsKKysJCXB1Ymxp YyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLklucHV0RGV2aWNlPiBsaXN0X2RldmljZXMgKCk7Cisr CQlwdWJsaWMgdm9pZCBzZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRp bmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfZHdlbGxfY2xp Y2tfdHlwZSAoQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUpOwor KwkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVy QTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2b2lkIHVuaW5oaWJpdF91bmZvY3Vz ICgpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCB3YXJwX3BvaW50ZXIgKGludCB4LCBpbnQgeSk7 CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBDbHV0dGVyLkJhY2tlbmQgYmFja2Vu ZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgYm9vbCB0b3VjaF9tb2RlIHsg Z2V0OyB9CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNlX2FkZGVkIChDbHV0dGVyLklucHV0 RGV2aWNlIG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNlX3JlbW92ZWQgKENs dXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBpc191bmZv Y3VzX2luaGliaXRlZF9jaGFuZ2VkICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5 X2ZsYWdzX2NoYW5nZWQgKHVpbnQgc2V0dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNrKTsK KysJCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVpbnQg bGF0Y2hlZF9tYXNrLCB1aW50IGxvY2tlZF9tYXNrKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBw dHJfYTExeV9kd2VsbF9jbGlja190eXBlX2NoYW5nZWQgKENsdXR0ZXIuUG9pbnRlckExMXlEd2Vs bENsaWNrVHlwZSBjbGlja190eXBlKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90 aW1lb3V0X3N0YXJ0ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50 ZXJBMTF5VGltZW91dFR5cGUgdGltZW91dF90eXBlLCB1aW50IGRlbGF5KTsKKysJCXB1YmxpYyBz aWduYWwgdm9pZCBwdHJfYTExeV90aW1lb3V0X3N0b3BwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ug ZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJBMTF5VGltZW91dFR5cGUgdGltZW91dF90eXBlLCBib29s IGNsaWNrZWQpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHRvb2xfY2hhbmdlZCAoQ2x1dHRlci5J bnB1dERldmljZSBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2VUb29sIHAwKTsKKysJfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfc2V0dGluZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorIAlwdWJsaWMgY2xhc3MgU2V0dGluZ3MgOiBHTGliLk9iamVjdCB7CitAQCAtNzAxMSwx OCArNjU1OCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBTaGFkZXJNYXRyaXggKCk7CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9m dW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIs IHR5cGVfaWQgPSAiY2x1dHRlcl9zaXplX2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3MgU2l6ZSB7CistCQlwdWJs aWMgZmxvYXQgaGVpZ2h0OworLQkJcHVibGljIGZsb2F0IHdpZHRoOworLQkJcHVibGljIHN0YXRp YyBDbHV0dGVyLlNpemUgYWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRlci5TaXplIGNvcHkgKCk7 CistCQlwdWJsaWMgYm9vbCBlcXVhbHMgKENsdXR0ZXIuU2l6ZSBiKTsKKy0JCXB1YmxpYyB2b2lk IGZyZWUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNpemUgaW5pdCAoZmxvYXQgd2lk dGgsIGZsb2F0IGhlaWdodCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NuYXBfY29uc3RyYWludF9nZXRf dHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCXB1YmxpYyBjbGFzcyBT bmFwQ29uc3RyYWludCA6IENsdXR0ZXIuQ29uc3RyYWludCB7CitAQCAtNzA0MywxMzUgKzY1Nzgs NjYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zdGFnZV9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBTdGFn ZSA6IENsdXR0ZXIuR3JvdXAsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBD bHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKysJcHVibGljIGNsYXNzIFN0 YWdlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUs IENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIFN0YWdlICgpOworLQkJcHVibGlj IGJvb2wgY2FwdHVyZSAoYm9vbCBwYWludCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QsIENsdXR0 ZXIuQ2FwdHVyZSBjYXB0dXJlcywgaW50IG5fY2FwdHVyZXMpOworIAkJcHVibGljIHZvaWQgY2Fw dHVyZV9pbnRvIChib29sIHBhaW50LCBDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgdWludDggZGF0 YSk7CisrCQlwdWJsaWMgdm9pZCBjbGVhcl9zdGFnZV92aWV3cyAoKTsKKyAJCVtDQ29kZSAoY25h bWUgPSAiY2x1dHRlcl9zdGFnZV9ldmVudCIpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorIAkJcHVibGljIGJvb2wgZW1pdF9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZv aWQgZW5zdXJlX2N1cnJlbnQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdm9pZCBlbnN1cmVfcmVkcmF3ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAkJcHVibGljIHZvaWQgZW5zdXJlX3ZpZXdwb3J0ICgpOworLQkJcHVibGljIHZvaWQgZnJl ZXplX3VwZGF0ZXMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMg Ym9vbCBnZXRfYWNjZXB0X2ZvY3VzICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3Rv ciBnZXRfYWN0b3JfYXRfcG9zIChDbHV0dGVyLlBpY2tNb2RlIHBpY2tfbW9kZSwgaW50IHgsIGlu dCB5KTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yX2F0X3BvcyAo Q2x1dHRlci5QaWNrTW9kZSBwaWNrX21vZGUsIGZsb2F0IHgsIGZsb2F0IHkpOworIAkJcHVibGlj IGJvb2wgZ2V0X2NhcHR1cmVfZmluYWxfc2l6ZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QsIGlu dCB3aWR0aCwgaW50IGhlaWdodCwgZmxvYXQgc2NhbGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDbHV0dGVy LkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRl ci5TdGFnZSBnZXRfZGVmYXVsdCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1 dHRlci5Gb2cgZ2V0X2ZvZyAoKTsKKyAJCXB1YmxpYyBpbnQ2NCBnZXRfZnJhbWVfY291bnRlciAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9mdWxs c2NyZWVuICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5BY3RvciBnZXRfa2V5X2ZvY3VzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorIAkJcHVibGljIHZvaWQgZ2V0X21pbmltdW1fc2l6ZSAob3V0IHVpbnQgd2lkdGgs IG91dCB1aW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJs aWMgYm9vbCBnZXRfbW90aW9uX2V2ZW50c19lbmFibGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X25vX2NsZWFyX2hpbnQgKCk7CisgCQlwdWJs aWMgQ2x1dHRlci5QZXJzcGVjdGl2ZSBnZXRfcGVyc3BlY3RpdmUgKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ2Fpcm8uUmVjdGFuZ2xlSW50IGdldF9yZWRyYXdf Y2xpcF9ib3VuZHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMg Ym9vbCBnZXRfdGhyb3R0bGVfbW90aW9uX2V2ZW50cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdGl0bGUgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2FscGhhICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBib29sIGdldF91c2VfZm9nICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3VzZXJfcmVzaXphYmxl ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgaGlkZV9j dXJzb3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGJvb2wgaXNfZGVmYXVsdCAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZWRyYXcgKCk7Cisr CQlwdWJsaWMgYm9vbCBwYWludF90b19idWZmZXIgKENhaXJvLlJlY3RhbmdsZUludCByZWN0LCBm bG9hdCBzY2FsZSwgdWludDggZGF0YSwgaW50IHN0cmlkZSwgQ29nbC5QaXhlbEZvcm1hdCBmb3Jt YXQsIENsdXR0ZXIuUGFpbnRGbGFnIHBhaW50X2ZsYWdzKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJ CXB1YmxpYyB2b2lkIHBhaW50X3RvX2ZyYW1lYnVmZmVyIChDb2dsLkZyYW1lYnVmZmVyIGZyYW1l YnVmZmVyLCBDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgZmxvYXQgc2NhbGUsIENsdXR0ZXIuUGFp bnRGbGFnIHBhaW50X2ZsYWdzKTsKKyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQor IAkJcHVibGljIHVpbnQ4W10gcmVhZF9waXhlbHMgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoID0g LTEsIGludCBoZWlnaHQgPSAtMSk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfcmVkcmF3 IildCistCQlwdWJsaWMgdm9pZCByZWRyYXcgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWNjZXB0X2ZvY3VzIChib29sIGFjY2VwdF9mb2N1cyk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfZm9nIChDbHV0dGVyLkZvZyBmb2cp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Z1bGxz Y3JlZW4gKGJvb2wgZnVsbHNjcmVlbik7CisrCQlwdWJsaWMgdm9pZCBzY2hlZHVsZV91cGRhdGUg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfa2V5 X2ZvY3VzIChDbHV0dGVyLkFjdG9yPyBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCisgCQlwdWJsaWMgdm9pZCBzZXRfbWluaW11bV9zaXplICh1aW50IHdpZHRoLCB1aW50IGhl aWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBzZXRf bW90aW9uX2V2ZW50c19lbmFibGVkIChib29sIGVuYWJsZWQpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X25vX2NsZWFyX2hpbnQgKGJvb2wgbm9fY2xl YXIpOworLQkJcHVibGljIHZvaWQgc2V0X3BlcnNwZWN0aXZlIChDbHV0dGVyLlBlcnNwZWN0aXZl IHBlcnNwZWN0aXZlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2 b2lkIHNldF90aHJvdHRsZV9tb3Rpb25fZXZlbnRzIChib29sIHRocm90dGxlKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF90aXRsZSAoc3RyaW5nIHRp dGxlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91 c2VfYWxwaGEgKGJvb2wgdXNlX2FscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMg dm9pZCBzZXRfdXNlX2ZvZyAoYm9vbCBmb2cpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorLQkJcHVibGljIHZvaWQgc2V0X3VzZXJfcmVzaXphYmxlIChib29sIHJlc2l6YWJsZSk7Cist CQlwdWJsaWMgdm9pZCBzaG93X2N1cnNvciAoKTsKKy0JCXB1YmxpYyB2b2lkIHRoYXdfdXBkYXRl cyAoKTsKKy0JCXB1YmxpYyB2b2lkIHVwZGF0ZV9yZXNvdXJjZV9zY2FsZXMgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgYm9vbCBhY2NlcHRfZm9jdXMgeyBnZXQ7 IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNvbG9yIHsgZ2V0OyBzZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgY3Vyc29yX3Zpc2libGUgeyBn ZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZvZyBmb2cg eyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBmdWxs c2NyZWVuX3NldCB7IGdldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVi bGljIENsdXR0ZXIuQWN0b3Iga2V5X2ZvY3VzIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIG5vX2NsZWFyX2hpbnQgeyBnZXQ7IHNldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGJvb2wgb2Zmc2NyZWVuIHsg Z2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBDbHV0 dGVyLlBlcnNwZWN0aXZlIHBlcnNwZWN0aXZlIHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBDbHV0 dGVyLlBlcnNwZWN0aXZlIHBlcnNwZWN0aXZlIHsgZ2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC40IildCisgCQlwdWJsaWMgc3RyaW5nIHRpdGxlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIHVzZV9hbHBoYSB7IGdldDsgc2V0 OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGJvb2wgdXNlX2ZvZyB7IGdldDsgc2V0 OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCB1c2VyX3Jl c2l6YWJsZSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhY3RpdmF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIwIildCistCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWZ0ZXJfcGFpbnQgKCk7CisrCQlw dWJsaWMgc2lnbmFsIHZvaWQgYWZ0ZXJfcGFpbnQgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOwor KwkJcHVibGljIHNpZ25hbCB2b2lkIGFmdGVyX3VwZGF0ZSAoQ2x1dHRlci5TdGFnZVZpZXcgdmll dyk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgYmVmb3JlX3BhaW50IChDbHV0dGVyLlN0YWdlVmll dyB2aWV3KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBiZWZvcmVfdXBkYXRlIChDbHV0dGVyLlN0 YWdlVmlldyB2aWV3KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2 aXJ0dWFsIHNpZ25hbCB2b2lkIGRlYWN0aXZhdGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBkZWxldGVfZXZlbnQgKENsdXR0 ZXIuRXZlbnQgZXZlbnQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgZnVsbHNjcmVlbiAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHVuZnVsbHNjcmVlbiAoKTsK KysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBhaW50X3ZpZXcgKENsdXR0ZXIuU3RhZ2VW aWV3IHZpZXcsIENhaXJvLlJlZ2lvbiByZWRyYXdfY2xpcCk7CisgCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0 YWdlX21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor QEAgLTcxODUsOCArNjY1MSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5TdGFnZT4g bGlzdF9zdGFnZXMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBHTGliLlNMaXN0PENsdXR0ZXIuU3Rh Z2U+IHBlZWtfc3RhZ2VzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2RlZmF1bHRfc3RhZ2UgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuOCIpXQorIAkJcHVibGljIENsdXR0ZXIuU3RhZ2UgZGVmYXVsdF9zdGFnZSB7IGdldDsg fQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTcyMDYsNjMgKzY2NzAsMzMgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQzMiB0aW1lOworIAkJcHVibGljIENs dXR0ZXIuRXZlbnRUeXBlIHR5cGU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0YXRlX2dldF90eXBlICgp IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGNsYXNzIFN0YXRlIDog R0xpYi5PYmplY3QsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zdGFnZV92aWV3 X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBTdGFnZVZpZXcgOiBHTGliLk9iamVjdCB7 CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIFN0YXRlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB1aW50IGdldF9kdXJhdGlvbiAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0 YXJnZXRfc3RhdGVfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIEdMaWIuTGlz dDx3ZWFrIENsdXR0ZXIuU3RhdGVLZXk+IGdldF9rZXlzIChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9u YW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lLCBHTGliLk9iamVjdD8gb2JqZWN0LCBzdHJp bmc/IHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfc3RhdGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIEdMaWIu TGlzdDx3ZWFrIHN0cmluZz4gZ2V0X3N0YXRlcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLlRpbWVsaW5lIGdldF90aW1lbGluZSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfa2V5IChzdHJpbmc/IHNvdXJjZV9zdGF0 ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lLCBHTGliLk9iamVjdD8gb2JqZWN0LCBz dHJpbmc/IHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9kdXJhdGlvbiAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRf c3RhdGVfbmFtZSwgdWludCBkdXJhdGlvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5TdGF0ZSBzZXRfa2V5IChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1l LCBzdHJpbmcgdGFyZ2V0X3N0YXRlX25hbWUsIEdMaWIuT2JqZWN0IG9iamVjdCwgc3RyaW5nIHBy b3BlcnR5X25hbWUsIHVpbnQgbW9kZSwgR0xpYi5WYWx1ZSB2YWx1ZSwgZG91YmxlIHByZV9kZWxh eSwgZG91YmxlIHBvc3RfZGVsYXkpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuVGltZWxpbmUgc2V0X3N0YXRlIChzdHJpbmcgdGFyZ2V0X3N0YXRlX25hbWUp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxpbmUg d2FycF90b19zdGF0ZSAoc3RyaW5nIHRhcmdldF9zdGF0ZV9uYW1lKTsKKysJCXByb3RlY3RlZCBT dGFnZVZpZXcgKCk7CisrCQlwdWJsaWMgdm9pZCBhc3NpZ25fbmV4dF9zY2Fub3V0IChDb2dsLlNj YW5vdXQgc2Nhbm91dCk7CisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9m cmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF9sYXlvdXQgKENhaXJvLlJlY3Rhbmds ZUludCByZWN0KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZ2V0X29mZnNjcmVlbl90cmFuc2Zv cm1hdGlvbl9tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CisrCQlwdWJsaWMgdW5vd25lZCBD b2dsLkZyYW1lYnVmZmVyIGdldF9vbnNjcmVlbiAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfc2Nh bGUgKCk7CisrCQlwdWJsaWMgdm9pZCBpbnZhbGlkYXRlX29mZnNjcmVlbl9ibGl0X3BpcGVsaW5l ICgpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0dXBfb2Zmc2Ny ZWVuX2JsaXRfcGlwZWxpbmUgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUpOworKwkJW05vV3JhcHBl cl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdHJhbnNmb3JtX3JlY3RfdG9fb25zY3JlZW4gKENh aXJvLlJlY3RhbmdsZUludCBzcmNfcmVjdCwgaW50IGRzdF93aWR0aCwgaW50IGRzdF9oZWlnaHQs IENhaXJvLlJlY3RhbmdsZUludCBkc3RfcmVjdCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWludCBkdXJhdGlvbiB7IGdldDsgc2V0OyB9Cisr CQlwdWJsaWMgQ2Fpcm8uUmVjdGFuZ2xlSW50IGxheW91dCB7IG93bmVkIGdldDsgc2V0IGNvbnN0 cnVjdDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHN0cmluZyBzdGF0ZSB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY29tcGxldGVkICgpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24g PSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lk ID0gImNsdXR0ZXJfc3RhdGVfa2V5X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBjbGFzcyBTdGF0ZUtleSB7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHVsb25nIGdldF9tb2RlICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9vYmplY3QgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIGRvdWJsZSBnZXRfcG9zdF9kZWxheSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgZG91YmxlIGdldF9wcmVfZGVsYXkgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9wcm9wZXJ0eV9uYW1lICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBHTGliLlR5cGUgZ2V0X3Byb3BlcnR5X3R5cGUg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zb3Vy Y2Vfc3RhdGVfbmFtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X3RhcmdldF9zdGF0ZV9uYW1lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyBib29sIGdldF92YWx1ZSAoR0xpYi5WYWx1ZSB2YWx1ZSk7CisrCQlwdWJsaWMgc3RyaW5n IG5hbWUgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisr CQlwdWJsaWMgZmxvYXQgcmVmcmVzaF9yYXRlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisrCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBmbG9hdCBzY2FsZSB7IGdldDsgc2V0IGNvbnN0 cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgQ2x1dHRlci5TdGFnZSBz dGFnZSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJ CXB1YmxpYyBib29sIHVzZV9zaGFkb3dmYiB7IGdldDsgY29uc3RydWN0OyB9CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3N3aXBlX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCitAQCAtNzI3NCw1MyArNjcwOCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBz d2lwZSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Td2lwZURpcmVjdGlvbiBkaXJlY3Rp b24pOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YWJsZV9sYXlvdXRfZ2V0X3R5cGUgKCkiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JcHVibGljIGNsYXNzIFRhYmxlTGF5b3V0IDogQ2x1dHRlci5MYXlvdXRN YW5hZ2VyIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBl ID0gIkNsdXR0ZXJMYXlvdXRNYW5hZ2VyKiIpXQorLQkJcHVibGljIFRhYmxlTGF5b3V0ICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0ZXIu QWN0b3IgYWN0b3IsIG91dCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0 dGVyLlRhYmxlQWxpZ25tZW50IHlfYWxpZ24pOworLQkJcHVibGljIGludCBnZXRfY29sdW1uX2Nv dW50ICgpOworLQkJcHVibGljIHVpbnQgZ2V0X2NvbHVtbl9zcGFjaW5nICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB1aW50IGdldF9lYXNpbmdfZHVyYXRpb24gKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHVsb25nIGdldF9lYXNpbmdfbW9kZSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBnZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9y LCBvdXQgYm9vbCB4X2V4cGFuZCwgb3V0IGJvb2wgeV9leHBhbmQpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIGdldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9v bCB4X2ZpbGwsIG91dCBib29sIHlfZmlsbCk7CistCQlwdWJsaWMgaW50IGdldF9yb3dfY291bnQg KCk7CistCQlwdWJsaWMgdWludCBnZXRfcm93X3NwYWNpbmcgKCk7CistCQlwdWJsaWMgdm9pZCBn ZXRfc3BhbiAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGludCBjb2x1bW5fc3Bhbiwgb3V0IGlu dCByb3dfc3Bhbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3VzZV9h bmltYXRpb25zICgpOworLQkJcHVibGljIHZvaWQgcGFjayAoQ2x1dHRlci5BY3RvciBhY3Rvciwg aW50IGNvbHVtbiwgaW50IHJvdyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5UYWJsZUFsaWdubWVu dCB4X2FsaWduLCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50IHlfYWxpZ24pOworLQkJcHVibGljIHZv aWQgc2V0X2NvbHVtbl9zcGFjaW5nICh1aW50IHNwYWNpbmcpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdfbW9kZSAodWxvbmcgbW9kZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2V4cGFuZCAoQ2x1dHRlci5B Y3RvciBhY3RvciwgYm9vbCB4X2V4cGFuZCwgYm9vbCB5X2V4cGFuZCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wg eF9maWxsLCBib29sIHlfZmlsbCk7CistCQlwdWJsaWMgdm9pZCBzZXRfcm93X3NwYWNpbmcgKHVp bnQgc3BhY2luZyk7CistCQlwdWJsaWMgdm9pZCBzZXRfc3BhbiAoQ2x1dHRlci5BY3RvciBhY3Rv ciwgaW50IGNvbHVtbl9zcGFuLCBpbnQgcm93X3NwYW4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF91c2VfYW5pbWF0aW9ucyAoYm9vbCBhbmltYXRlKTsKKy0JCXB1Ymxp YyB1aW50IGNvbHVtbl9zcGFjaW5nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdWludCBlYXNpbmdfZHVyYXRpb24geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB1bG9uZyBlYXNpbmdfbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJs aWMgdWludCByb3dfc3BhY2luZyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIGJvb2wgdXNlX2FuaW1hdGlvbnMgeyBnZXQ7IHNldDsgfQorLQl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl90YXBfYWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0Iild CisgCXB1YmxpYyBjbGFzcyBUYXBBY3Rpb24gOiBDbHV0dGVyLkdlc3R1cmVBY3Rpb24geworQEAg LTczNDgsNyArNjczNSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVy LkNvbG9yIGdldF9jdXJzb3JfY29sb3IgKCk7CisgCQlwdWJsaWMgaW50IGdldF9jdXJzb3JfcG9z aXRpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQg Z2V0X2N1cnNvcl9yZWN0IChvdXQgdW5vd25lZCBDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJs aWMgdm9pZCBnZXRfY3Vyc29yX3JlY3QgKG91dCB1bm93bmVkIEdyYXBoZW5lLlJlY3QgcmVjdCk7 CisgCQlwdWJsaWMgdWludCBnZXRfY3Vyc29yX3NpemUgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRf Y3Vyc29yX3Zpc2libGUgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfZWRpdGFibGUgKCk7CitAQCAt NzQ2Nyw3ICs2ODU0LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9jaGFuZ2Vk ICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1 cnNvcl9ldmVudCAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CisrCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgdm9pZCBjdXJzb3JfZXZlbnQgKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlbSGFz RW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBzaWduYWwg dm9pZCBkZWxldGVfdGV4dCAoaW50IHN0YXJ0X3BvcywgaW50IGVuZF9wb3MpOworQEAgLTc1MDUs OTQgKzY4OTIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnROb2RlKiIpXQorIAkJcHVi bGljIFRleHROb2RlIChQYW5nby5MYXlvdXQ/IGxheW91dCwgQ2x1dHRlci5Db2xvcj8gY29sb3Ip OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0dXJlX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIFRleHR1cmUgOiBDbHV0dGVyLkFjdG9yLCBB dGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENs dXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIFRleHR1cmUgKCk7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2Fj dG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44Iild CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIENs dXR0ZXIuVGV4dHVyZUVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9iYXNlX3NpemUgKG91 dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfY29nbF9tYXRlcmlhbCAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MC44IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfY29nbF90ZXh0dXJlICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGdl dF9maWx0ZXJfcXVhbGl0eSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBn ZXRfa2VlcF9hc3BlY3RfcmF0aW8gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJv b2wgZ2V0X2xvYWRfYXN5bmMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wg Z2V0X2xvYWRfZGF0YV9hc3luYyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgaW50 IGdldF9tYXhfdGlsZV93YXN0ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9v bCBnZXRfcGlja193aXRoX2FscGhhICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9yZXBlYXQgKG91dCBib29sIHJlcGVhdF94LCBvdXQgYm9vbCByZXBlYXRfeSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3N5bmNfc2l6ZSAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgYm9vbCBzZXRfYXJlYV9mcm9tX3JnYl9kYXRhIChbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBib29sIGhhc19hbHBoYSwg aW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCByb3dzdHJpZGUsIGludCBi cHAsIENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29nbF9tYXRlcmlhbCAoQ29nbC5IYW5k bGUgY29nbF9tYXRlcmlhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2NvZ2xfdGV4dHVyZSAoQ29nbC5IYW5kbGUgY29nbF90ZXgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9maWx0ZXJfcXVhbGl0eSAoQ2x1dHRlci5UZXh0dXJlUXVhbGl0 eSBmaWx0ZXJfcXVhbGl0eSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGJvb2wgc2V0 X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMC40IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV9yZ2JfZGF0YSAoW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgYm9vbCBoYXNfYWxwaGEsIGludCB3aWR0 aCwgaW50IGhlaWdodCwgaW50IHJvd3N0cmlkZSwgaW50IGJwcCwgQ2x1dHRlci5UZXh0dXJlRmxh Z3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1Ymxp YyBib29sIHNldF9mcm9tX3l1dl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0g dWludDhbXSBkYXRhLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENsdXR0ZXIuVGV4dHVyZUZsYWdz IGZsYWdzKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfa2VlcF9hc3BlY3RfcmF0aW8gKGJvb2wga2VlcF9hc3BlY3QpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sb2FkX2FzeW5jIChib29sIGxvYWRfYXN5bmMp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sb2FkX2RhdGFfYXN5bmMg KGJvb2wgbG9hZF9hc3luYyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X3BpY2tfd2l0aF9hbHBoYSAoYm9vbCBwaWNrX3dpdGhfYWxwaGEpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZXBlYXQgKGJvb2wgcmVwZWF0X3gsIGJvb2wgcmVwZWF0 X3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zeW5jX3NpemUgKGJv b2wgc3luY19zaXplKTsKKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsIGNvZ2xfbWF0ZXJpYWwgeyBn ZXQ7IHNldDsgfQorLQkJcHVibGljIENvZ2wuVGV4dHVyZSBjb2dsX3RleHR1cmUgeyBnZXQ7IHNl dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBkaXNhYmxlX3NsaWNp bmcgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVi bGljIHN0cmluZyBmaWxlbmFtZSB7IG93bmVkIGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1dHRl ci5UZXh0dXJlUXVhbGl0eSBmaWx0ZXJfcXVhbGl0eSB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQor LQkJcHVibGljIGJvb2wga2VlcF9hc3BlY3RfcmF0aW8geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGxvYWRfYXN5bmMgeyBzZXQ7IH0KKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgYm9vbCBsb2FkX2RhdGFfYXN5bmMgeyBzZXQ7IH0KKy0JCXB1Ymxp YyBib29sIHBpY2tfd2l0aF9hbHBoYSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBib29sIHJlcGVhdF94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVwZWF0X3kgeyBnZXQ7IHNldDsgfQorLQkJcHVibGlj IGJvb2wgc3luY19zaXplIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIGludCB0aWxlX3dhc3RlIHsgZ2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgbG9hZF9maW5pc2hlZCAoR0xpYi5FcnJvciBlcnJvcik7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGl4YnVmX2NoYW5nZSAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIild CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBzaXplX2NoYW5nZSAoaW50IHdpZHRoLCBp bnQgaGVpZ2h0KTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGV4dHVyZV9ub2RlX2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBUZXh0dXJlTm9k ZSA6IENsdXR0ZXIuUGlwZWxpbmVOb2RlIHsKK0BAIC03NjA0LDcgKzY5MDMsNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCXB1YmxpYyBjbGFzcyBUaW1lbGluZSA6IEdMaWIuT2JqZWN0LCBDbHV0 dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIFRpbWVsaW5lICh1 aW50IG1zZWNzKTsKKysJCXB1YmxpYyBUaW1lbGluZSAodWludCBkdXJhdGlvbl9tcyk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGljIHZvaWQgYWRkX21hcmtlciAoc3Ry aW5nIG1hcmtlcl9uYW1lLCBkb3VibGUgcHJvZ3Jlc3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuOCIpXQorQEAgLTc2MTIsMTIgKzY5MTEsMTUgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIHZvaWQgYWR2YW5jZSAodWludCBtc2Vjcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC44IildCisgCQlwdWJsaWMgdm9pZCBhZHZhbmNlX3RvX21hcmtlciAoc3RyaW5nIG1hcmtlcl9u YW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgQ2x1dHRlci5UaW1lbGluZSBjbG9u ZSAoKTsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXB1 YmxpYyBUaW1lbGluZS5mb3JfYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIHVpbnQgZHVyYXRp b25fbXMpOworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJ cHVibGljIFRpbWVsaW5lLmZvcl9mcmFtZV9jbG9jayAoQ2x1dHRlci5GcmFtZUNsb2NrIGZyYW1l X2Nsb2NrLCB1aW50IGR1cmF0aW9uX21zKTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0 b3IgZ2V0X2FjdG9yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGlj IGJvb2wgZ2V0X2F1dG9fcmV2ZXJzZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CistCQlwdWJsaWMgYm9vbCBnZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChDbHV0dGVyLlBvaW50 IGNfMSwgQ2x1dHRlci5Qb2ludCBjXzIpOworKwkJcHVibGljIGJvb2wgZ2V0X2N1YmljX2Jlemll cl9wcm9ncmVzcyAoR3JhcGhlbmUuUG9pbnQgY18xLCBHcmFwaGVuZS5Qb2ludCBjXzIpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2N1cnJlbnRfcmVw ZWF0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorQEAgLTc2MzEsOCArNjkzMyw2 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CQlwdWJsaWMgaW50NjQgZ2V0X2R1cmF0aW9uX2hpbnQgKCk7CisgCQlwdWJsaWMgdWludCBnZXRf ZWxhcHNlZF90aW1lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9sb29wICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGRvdWJsZSBnZXRfcHJvZ3Jlc3MgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc2NTEsMTggKzY5NTEsMTggQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVi bGljIHZvaWQgcmVtb3ZlX21hcmtlciAoc3RyaW5nIG1hcmtlcl9uYW1lKTsKKyAJCXB1YmxpYyB2 b2lkIHJld2luZCAoKTsKKysJCXB1YmxpYyB2b2lkIHNldF9hY3RvciAoQ2x1dHRlci5BY3Rvcj8g YWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0 X2F1dG9fcmV2ZXJzZSAoYm9vbCByZXZlcnNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCistCQlwdWJsaWMgdm9pZCBzZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChDbHV0dGVyLlBv aW50IGNfMSwgQ2x1dHRlci5Qb2ludCBjXzIpOworKwkJcHVibGljIHZvaWQgc2V0X2N1YmljX2Jl emllcl9wcm9ncmVzcyAoR3JhcGhlbmUuUG9pbnQgY18xLCBHcmFwaGVuZS5Qb2ludCBjXzIpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2RlbGF5ICh1 aW50IG1zZWNzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9kaXJlY3Rpb24gKENsdXR0ZXIuVGltZWxpbmVEaXJlY3Rpb24gZGlyZWN0aW9uKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9kdXJhdGlvbiAo dWludCBtc2Vjcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xvb3AgKGJvb2wgbG9vcCk7Cisr CQlwdWJsaWMgdm9pZCBzZXRfZnJhbWVfY2xvY2sgKENsdXR0ZXIuRnJhbWVDbG9jayBmcmFtZV9j bG9jayk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X3Byb2dyZXNzX2Z1bmMgKG93bmVkIENsdXR0ZXIuVGltZWxpbmVQcm9ncmVzc0Z1bmM/IGZ1bmMp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03Njc0LDYgKzY5NzQsNyBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBza2lwICh1aW50IG1zZWNzKTsKKyAJ CXB1YmxpYyB2b2lkIHN0YXJ0ICgpOworIAkJcHVibGljIHZvaWQgc3RvcCAoKTsKKysJCXB1Ymxp YyBDbHV0dGVyLkFjdG9yIGFjdG9yIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBhdXRvX3JldmVyc2UgeyBnZXQ7IHNl dDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorQEAgLTc2ODIsOCArNjk4Myw4IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lRGlyZWN0aW9u IGRpcmVjdGlvbiB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisg CQlwdWJsaWMgdWludCBkdXJhdGlvbiB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGJvb2wg bG9vcCB7IGdldDsgc2V0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBDbHV0 dGVyLkZyYW1lQ2xvY2sgZnJhbWVfY2xvY2sgeyBvd25lZCBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5BbmltYXRp b25Nb2RlIHByb2dyZXNzX21vZGUgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KK0BAIC03Njk3LDEyICs2OTk4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lk IHN0b3BwZWQgKGJvb2wgaXNfZmluaXNoZWQpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNz IFRpbWVvdXRQb29sIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKy0JCXB1YmxpYyBUaW1lb3V0UG9vbCAoaW50IHByaW9yaXR5KTsKKy0JfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKyAJW0NvbXBhY3RdCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzc1 Myw2ICs3MDQ4LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB4Owor IAkJcHVibGljIGZsb2F0IHk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RyYW5zZm9ybV9ub2RlX2dldF90 eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBUcmFuc2Zvcm1Ob2RlIDogQ2x1dHRlci5QYWludE5v ZGUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAi Q2x1dHRlclBhaW50Tm9kZSoiKV0KKysJCXB1YmxpYyBUcmFuc2Zvcm1Ob2RlIChDb2dsLk1hdHJp eCBwcm9qZWN0aW9uKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdHJhbnNpdGlvbl9nZXRfdHlwZSAoKSIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3Mg VHJhbnNpdGlvbiA6IENsdXR0ZXIuVGltZWxpbmUsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CitAQCAt Nzc5Miw3ICs3MDkyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFZpcnR1YWxJbnB1dERldmlj ZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2RldmljZV90eXBlICgpOworLQkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9tYW5hZ2VyICgpOworIAkJcHVibGljIHZpcnR1 YWwgdm9pZCBub3RpZnlfYWJzb2x1dGVfbW90aW9uICh1aW50NjQgdGltZV91cywgZG91YmxlIHgs IGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2J1dHRvbiAodWludDY0 IHRpbWVfdXMsIHVpbnQzMiBidXR0b24sIENsdXR0ZXIuQnV0dG9uU3RhdGUgYnV0dG9uX3N0YXRl KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2Rpc2NyZXRlX3Njcm9sbCAodWludDY0 IHRpbWVfdXMsIENsdXR0ZXIuU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgQ2x1dHRlci5TY3Jv bGxTb3VyY2Ugc2Nyb2xsX3NvdXJjZSk7CitAQCAtNzgwMywyOCArNzEwMiwyNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF9kb3duICh1 aW50NjQgdGltZV91cywgaW50IHNsb3QsIGRvdWJsZSB4LCBkb3VibGUgeSk7CisgCQlwdWJsaWMg dmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF9tb3Rpb24gKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xv dCwgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3Rv dWNoX3VwICh1aW50NjQgdGltZV91cywgaW50IHNsb3QpOworLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGRldmljZV9tYW5hZ2VyIHsgb3duZWQg Z2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZp Y2VfdHlwZSB7IGdldDsgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1 YmxpYyBDbHV0dGVyLlNlYXQgc2VhdCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX3pvb21fYWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCisgCXB1YmxpYyBjbGFzcyBab29tQWN0aW9uIDogQ2x1dHRlci5HZXN0dXJlQWN0 aW9uIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0g IkNsdXR0ZXJBY3Rpb24qIildCisgCQlwdWJsaWMgWm9vbUFjdGlvbiAoKTsKKy0JCXB1YmxpYyB2 b2lkIGdldF9mb2NhbF9wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMgdm9p ZCBnZXRfdHJhbnNmb3JtZWRfZm9jYWxfcG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQpOworKwkJ cHVibGljIHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisrCQlw dWJsaWMgdm9pZCBnZXRfdHJhbnNmb3JtZWRfZm9jYWxfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBv aW50KTsKKyAJCXB1YmxpYyBDbHV0dGVyLlpvb21BeGlzIGdldF96b29tX2F4aXMgKCk7CisgCQlw dWJsaWMgdm9pZCBzZXRfem9vbV9heGlzIChDbHV0dGVyLlpvb21BeGlzIGF4aXMpOworIAkJcHVi bGljIENsdXR0ZXIuWm9vbUF4aXMgem9vbV9heGlzIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHNpZ25hbCBib29sIHpvb20gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuUG9p bnQgZm9jYWxfcG9pbnQsIGRvdWJsZSBmYWN0b3IpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFs IGJvb2wgem9vbSAoQ2x1dHRlci5BY3RvciBhY3RvciwgR3JhcGhlbmUuUG9pbnQgZm9jYWxfcG9p bnQsIGRvdWJsZSBmYWN0b3IpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfY25hbWUgPSAiQ2x1dHRlckFuaW1hdGFibGVJbnRlcmZh Y2UiLCB0eXBlX2lkID0gImNsdXR0ZXJfYW5pbWF0YWJsZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJs aWMgaW50ZXJmYWNlIEFuaW1hdGFibGUgOiBHTGliLk9iamVjdCB7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCBhbmltYXRlX3Byb3BlcnR5IChDbHV0dGVyLkFuaW1h dGlvbiBhbmltYXRpb24sIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGluaXRpYWxf dmFsdWUsIEdMaWIuVmFsdWUgZmluYWxfdmFsdWUsIGRvdWJsZSBwcm9ncmVzcywgR0xpYi5WYWx1 ZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYWJzdHJh Y3QgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlf bmFtZSk7CisrCQlwdWJsaWMgYWJzdHJhY3QgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rv ciAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2 b2lkIGdldF9pbml0aWFsX3N0YXRlIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSB2 YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNzgzNSwxMiArNzEzMyw5 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NvbnRhaW5lcl9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCXB1YmxpYyBpbnRlcmZhY2UgQ29u dGFpbmVyIDogR0xpYi5PYmplY3QgeworLQkJcHVibGljIHZvaWQgYWRkIChwYXJhbXMgQ2x1dHRl ci5BY3RvcltdIGFjdG9ycyk7CisgCQlbQ0NvZGUgKHZmdW5jX25hbWUgPSAiYWRkIildCisgCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgYWRkX2FjdG9yIChDbHV0dGVy LkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBhZGRfdmFs aXN0IChDbHV0dGVyLkFjdG9yIGZpcnN0X2FjdG9yLCB2YV9saXN0IHZhcl9hcmdzKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGNoaWxkX2dldCAoQ2x1dHRl ci5BY3RvciBhY3RvciwgLi4uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC03 ODYwLDE4ICs3MTU1LDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgZGVzdHJveV9jaGlsZF9tZXRhIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZmlu ZF9jaGlsZF9ieV9uYW1lIChzdHJpbmcgY2hpbGRfbmFtZSk7CistCQlbQ0NvZGUgKGNuYW1lID0g ImNsdXR0ZXJfY29udGFpbmVyX2NsYXNzX2ZpbmRfY2hpbGRfcHJvcGVydHkiKV0KKy0JCXB1Ymxp YyBjbGFzcyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRfY2hpbGRfcHJvcGVydHkgKHN0cmlu ZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYWJzdHJhY3Qg dm9pZCBAZm9yZWFjaCAoQ2x1dHRlci5DYWxsYmFjayBjYWxsYmFjayk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBmb3JlYWNoX3dpdGhfaW50ZXJuYWxzIChDbHV0 dGVyLkNhbGxiYWNrIGNhbGxiYWNrKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJ CXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5DaGlsZE1ldGEgZ2V0X2NoaWxkX21ldGEg KENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBHTGli Lkxpc3Q8d2VhayBDbHV0dGVyLkFjdG9yPiBnZXRfY2hpbGRyZW4gKCk7CistCQlbQ0NvZGUgKGNu YW1lID0gImNsdXR0ZXJfY29udGFpbmVyX2NsYXNzX2xpc3RfY2hpbGRfcHJvcGVydGllcyIpXQor LQkJcHVibGljIGNsYXNzIHVub3duZWQgR0xpYi5QYXJhbVNwZWNbXSBsaXN0X2NoaWxkX3Byb3Bl cnRpZXMgKCk7CisgCQlbQ0NvZGUgKHZmdW5jX25hbWUgPSAibG93ZXIiKV0KKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC42IildCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGxvd2VyX2NoaWxkIChDbHV0dGVyLkFjdG9y IGFjdG9yLCBDbHV0dGVyLkFjdG9yPyBzaWJsaW5nID0gbnVsbCk7CitAQCAtNzg4Myw4ICs3MTcw LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlICh2ZnVuY19uYW1lID0gInJlbW92 ZSIpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlbW92ZV9h Y3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGlj IHZvaWQgcmVtb3ZlX3ZhbGlzdCAoQ2x1dHRlci5BY3RvciBmaXJzdF9hY3RvciwgdmFfbGlzdCB2 YXJfYXJncyk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgc29y dF9kZXB0aF9vcmRlciAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFjdG9yX2Fk ZGVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKK0BAIC03OTAxLDcgKzcxODYsNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBpbnZhbGlkYXRlICgpOworIAkJ cHVibGljIGFic3RyYWN0IHZvaWQgaW52YWxpZGF0ZV9zaXplICgpOworIAkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHBhaW50X2NvbnRlbnQgKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIENsdXR0ZXIuUGFpbnROb2RlIG5vZGUpOworKwkJcHVibGljIGFic3RyYWN0IHZvaWQgcGFp bnRfY29udGVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5QYWludE5vZGUgbm9kZSwg Q2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYXR0YWNoZWQgKENsdXR0 ZXIuQWN0b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03OTE1 LDQ3ICs3MjAwLDE2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBhYnN0cmFjdCB2 b2lkIHNldF9jdXN0b21fcHJvcGVydHkgKENsdXR0ZXIuU2NyaXB0IHNjcmlwdCwgc3RyaW5nIG5h bWUsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X2lkIChz dHJpbmcgaWRfKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JcHVibGljIGludGVyZmFjZSBTdGFnZVdpbmRvdyA6IEdMaWIuT2JqZWN0 IHsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRfcmVkcmF3X2Ns aXAgKENsdXR0ZXIuR2VvbWV0cnkgc3RhZ2VfcmVjdGFuZ2xlKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBnZXRfZ2VvbWV0cnkgKENsdXR0ZXIuR2VvbWV0cnkgZ2Vv bWV0cnkpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0X3BlbmRp bmdfc3dhcHMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHVub3duZWQg Q2x1dHRlci5BY3RvciBnZXRfd3JhcHBlciAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg YWJzdHJhY3QgYm9vbCBoYXNfcmVkcmF3X2NsaXBzICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyBhYnN0cmFjdCB2b2lkIGhpZGUgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFi c3RyYWN0IGJvb2wgaWdub3JpbmdfcmVkcmF3X2NsaXBzICgpOworLQkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyBhYnN0cmFjdCBib29sIHJlYWxpemUgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIGFic3RyYWN0IHZvaWQgcmVzaXplIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW05v V3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF9jdXJzb3JfdmlzaWJsZSAoYm9v bCBjdXJzb3JfdmlzaWJsZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZv aWQgc2V0X2Z1bGxzY3JlZW4gKGJvb2wgaXNfZnVsbHNjcmVlbik7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworLQkJW05v V3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHNldF91c2VyX3Jlc2l6YWJsZSAoYm9v bCBpc19yZXNpemFibGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lk IHNob3cgKGJvb2wgZG9fcmFpc2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFj dCB2b2lkIHVucmVhbGl6ZSAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9BQ1RPUl9CT1giKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9m dW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIs IHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9ib3hfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIHN0 cnVjdCBBY3RvckJveCB7CisgCQlwdWJsaWMgZmxvYXQgeDE7CisgCQlwdWJsaWMgZmxvYXQgeTE7 CisgCQlwdWJsaWMgZmxvYXQgeDI7CisgCQlwdWJsaWMgZmxvYXQgeTI7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGljIHN0YXRpYyBDbHV0dGVyLkFjdG9yQm94PyBhbGxv YyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGNsYW1w X3RvX3BpeGVsICgpOworKwkJcHVibGljIHN0YXRpYyB2b2lkIGNsYW1wX3RvX3BpeGVsIChyZWYg Q2x1dHRlci5BY3RvckJveCBib3gpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJ cHVibGljIGJvb2wgY29udGFpbnMgKGZsb2F0IHgsIGZsb2F0IHkpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorQEAgLTc5NjQsOCArNzIxOCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLkFjdG9yQm94IGJveF9iKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbQ0NvZGUg KGNuYW1lID0gImNsdXR0ZXJfYWN0b3JfYm94X2Zyb21fdmVydGljZXMiKV0KKy0JCXB1YmxpYyBB Y3RvckJveC5mcm9tX3ZlcnRpY2VzIChDbHV0dGVyLlZlcnRleFtdIHZlcnRzKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfYXJlYSAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KK0BAIC03OTg2LDYgKzcyMzgsNyBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBpbml0X3JlY3QgKGZsb2F0IHgsIGZsb2F0IHksIGZs b2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQor IAkJcHVibGljIENsdXR0ZXIuQWN0b3JCb3ggaW50ZXJwb2xhdGUgKENsdXR0ZXIuQWN0b3JCb3gg ZmluYWwsIGRvdWJsZSBwcm9ncmVzcyk7CisrCQlwdWJsaWMgYm9vbCBpc19pbml0aWFsaXplZCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNjYWxlIChm bG9hdCBzY2FsZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCitAQCAtODAxMSw3ICs3 MjY0LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHdlYWsgQ2Fpcm8uU3VyZmFj ZSBpbWFnZTsKKyAJCXB1YmxpYyBDYWlyby5SZWN0YW5nbGVJbnQgcmVjdDsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNM VVRURVJfVFlQRV9DT0xPUiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rp b24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NvbG9yX2dldF90eXBlICgp IildCisgCXB1YmxpYyBzdHJ1Y3QgQ29sb3IgeworIAkJcHVibGljIHVpbnQ4IHJlZDsKKyAJCXB1 YmxpYyB1aW50OCBncmVlbjsKK0BAIC04MDI3LDEyICs3MjgwLDExIEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLkNvbG9yIHYyKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbQ0NvZGUg KGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9obHMiKV0KKy0JCXB1YmxpYyBDb2xvci5mcm9t X2hscyAoZmxvYXQgaHVlLCBmbG9hdCBsdW1pbmFuY2UsIGZsb2F0IHNhdHVyYXRpb24pOworLQkJ W0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fcGl4ZWwiKV0KKy0JCXB1YmxpYyBD b2xvci5mcm9tX3BpeGVsICh1aW50MzIgcGl4ZWwpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0 dGVyX2NvbG9yX2Zyb21fc3RyaW5nIildCistCQlwdWJsaWMgQ29sb3IuZnJvbV9zdHJpbmcgKHN0 cmluZyBzdHIpOworKwkJcHVibGljIHN0YXRpYyB2b2lkIGZyb21faGxzIChvdXQgQ2x1dHRlci5D b2xvciBjb2xvciwgZmxvYXQgaHVlLCBmbG9hdCBsdW1pbmFuY2UsIGZsb2F0IHNhdHVyYXRpb24p OworKwkJcHVibGljIHN0YXRpYyB2b2lkIGZyb21fcGl4ZWwgKG91dCBDbHV0dGVyLkNvbG9yIGNv bG9yLCB1aW50MzIgcGl4ZWwpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHN0YXRpYyBib29sIGZyb21fc3RyaW5nIChvdXQgQ2x1dHRlci5Db2xvciBjb2xvciwgc3Ry aW5nIHN0cik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgQ2x1dHRlci5Db2xvcj8gZ2V0X3N0YXRpYyAoQ2x1dHRlci5TdGF0aWNDb2xvciBj b2xvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdWludCBoYXNo ICgpOworQEAgLTgwNDEsOCArNzI5Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGludGVycG9sYXRl IChDbHV0dGVyLkNvbG9yIGZpbmFsLCBkb3VibGUgcHJvZ3Jlc3MpOworIAkJcHVibGljIENsdXR0 ZXIuQ29sb3IgbGlnaHRlbiAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9m cm9tX3N0cmluZyIpXQorLQkJcHVibGljIGJvb2wgcGFyc2Vfc3RyaW5nIChzdHJpbmcgc3RyKTsK KyAJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIHNoYWRlIChkb3VibGUgZmFjdG9yKTsKKyAJCXB1Ymxp YyBDbHV0dGVyLkNvbG9yIHN1YnRyYWN0IChDbHV0dGVyLkNvbG9yIGIpOworIAkJcHVibGljIHZv aWQgdG9faGxzIChvdXQgZmxvYXQgaHVlLCBvdXQgZmxvYXQgbHVtaW5hbmNlLCBvdXQgZmxvYXQg c2F0dXJhdGlvbik7CitAQCAtODA1MCwyMyArNzMwMCwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCQlwdWJsaWMgc3RyaW5nIHRvX3N0cmlu ZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZm9nX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42 IildCistCXB1YmxpYyBzdHJ1Y3QgRm9nIHsKKy0JCXB1YmxpYyBmbG9hdCB6X25lYXI7CistCQlw dWJsaWMgZmxvYXQgel9mYXI7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dlb21ldHJ5X2dldF90eXBlICgp IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2IildCistCXB1YmxpYyBzdHJ1Y3QgR2VvbWV0cnkgeworLQkJcHVibGljIGludCB4OworLQkJ cHVibGljIGludCB5OworLQkJcHVibGljIHVpbnQgd2lkdGg7CistCQlwdWJsaWMgdWludCBoZWln aHQ7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBpbnRlcnNl Y3RzIChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5MSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgQ2x1dHRlci5HZW9tZXRyeSB1bmlvbiAoQ2x1dHRlci5HZW9tZXRy eSBnZW9tZXRyeV9iKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBzdHJ1Y3QgRnJhbWVMaXN0 ZW5lcklmYWNlIHsKKysJCXB1YmxpYyB3ZWFrIGdsb2JhbDo6YmVmb3JlX2ZyYW1lIGJlZm9yZV9m cmFtZTsKKysJCXB1YmxpYyB3ZWFrIGdsb2JhbDo6ZnJhbWUgZnJhbWU7CisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgS2JkQTExeVNldHRpbmdzIHsKK0BAIC04MDc4LDcgKzcz MTUsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgaW50IG1vdXNla2V5c19tYXhf c3BlZWQ7CisgCQlwdWJsaWMgaW50IG1vdXNla2V5c19hY2NlbF90aW1lOworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9rbm90X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9m dW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfa25vdF9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCXB1YmxpYyBzdHJ1Y3QgS25v dCB7CisgCQlwdWJsaWMgaW50IHg7CitAQCAtODA4Nyw4ICs3MzI0LDE5IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLktub3Qga25vdF9iKTsKKyAJ CXB1YmxpYyB2b2lkIGZyZWUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJWCIpXQorIAlwdWJsaWMg c3RydWN0IE1hdHJpeCA6IENvZ2wuTWF0cml4IHsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCisrCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuTWF0cml4PyBhbGxvYyAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJsaWMgdm9pZCBmcmVlICgpOworKwkJcHVibGlj IHN0YXRpYyBHTGliLlR5cGUgZ2V0X3R5cGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MiIpXQorKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5NYXRyaXg/IGluaXRfZnJvbV9hcnJheSAo W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IHZhbHVlc1sxNl0pOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTWF0cml4 PyBpbml0X2Zyb21fbWF0cml4IChDbHV0dGVyLk1hdHJpeCBiKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLk1hdHJpeD8gaW5pdF9pZGVu dGl0eSAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBQYWRCdXR0b25F dmVudCB7CitAQCAtODEzMCw3ICs3Mzc4LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIGRvdWJsZSB2YWx1ZTsKKyAJCXB1YmxpYyB1aW50MzIgbW9kZTsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfcGF0aF9ub2RlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJl ZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGF0aF9ub2Rl X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0 cnVjdCBQYXRoTm9kZSB7CisgCQlwdWJsaWMgQ2x1dHRlci5QYXRoTm9kZVR5cGUgdHlwZTsKK0BA IC04MTQwLDcgKzczODgsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBl cXVhbCAoQ2x1dHRlci5QYXRoTm9kZSBub2RlX2IpOworIAkJcHVibGljIHZvaWQgZnJlZSAoKTsK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfcGVyc3BlY3RpdmVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJn X2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9wZXJzcGVjdGl2ZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCisgCXB1YmxpYyBzdHJ1Y3QgUGVyc3BlY3RpdmUgeworIAkJcHVibGljIGZsb2F0IGZv dnk7CitAQCAtODE0OSw2ICs3Mzk3LDE5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBmbG9hdCB6X2ZhcjsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJcHVibGljIHN0cnVjdCBQb2lu dGVyQTExeVNldHRpbmdzIHsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5RmxhZ3MgY29u dHJvbHM7CisrCQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGR3ZWxs X2NsaWNrX3R5cGU7CisrCQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsTW9kZSBkd2Vs bF9tb2RlOworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbERpcmVjdGlvbiBkd2Vs bF9nZXN0dXJlX3NpbmdsZTsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxEaXJl Y3Rpb24gZHdlbGxfZ2VzdHVyZV9kb3VibGU7CisrCQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVyQTEx eUR3ZWxsRGlyZWN0aW9uIGR3ZWxsX2dlc3R1cmVfZHJhZzsKKysJCXB1YmxpYyBDbHV0dGVyLlBv aW50ZXJBMTF5RHdlbGxEaXJlY3Rpb24gZHdlbGxfZ2VzdHVyZV9zZWNvbmRhcnk7CisrCQlwdWJs aWMgaW50IHNlY29uZGFyeV9jbGlja19kZWxheTsKKysJCXB1YmxpYyBpbnQgZHdlbGxfZGVsYXk7 CisrCQlwdWJsaWMgaW50IGR3ZWxsX3RocmVzaG9sZDsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMjgiKV0KKyAJcHVibGljIHN0cnVjdCBQcm94aW1pdHlFdmVu dCB7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudFR5cGUgdHlwZTsKK0BAIC04MTU4LDQ3ICs3NDE5 LDE2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuQWN0b3Ig c291cmNlOworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2U7CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJDTFVUVEVSX1RZUEVfVU5JVFMiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVl X2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl91bml0c19nZXRf dHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdHJ1Y3Qg VW5pdHMgeworIAkJcHVibGljIENsdXR0ZXIuVW5pdHM/IGNvcHkgKCk7CisgCQlwdWJsaWMgdm9p ZCBmcmVlICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fY20iKV0K Ky0JCXB1YmxpYyBVbml0cy5mcm9tX2NtIChmbG9hdCBjbSk7CistCQlbQ0NvZGUgKGNuYW1lID0g ImNsdXR0ZXJfdW5pdHNfZnJvbV9lbSIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fZW0gKGZsb2F0 IGVtKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2VtX2Zvcl9mb250 IildCistCQlwdWJsaWMgVW5pdHMuZnJvbV9lbV9mb3JfZm9udCAoc3RyaW5nIGZvbnRfbmFtZSwg ZmxvYXQgZW0pOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fbW0iKV0K Ky0JCXB1YmxpYyBVbml0cy5mcm9tX21tIChmbG9hdCBtbSk7CistCQlbQ0NvZGUgKGNuYW1lID0g ImNsdXR0ZXJfdW5pdHNfZnJvbV9waXhlbHMiKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX3BpeGVs cyAoaW50IHB4KTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3B0Iild CistCQlwdWJsaWMgVW5pdHMuZnJvbV9wdCAoZmxvYXQgcHQpOworLQkJW0NDb2RlIChjbmFtZSA9 ICJjbHV0dGVyX3VuaXRzX2Zyb21fc3RyaW5nIildCistCQlwdWJsaWMgVW5pdHMuZnJvbV9zdHJp bmcgKHN0cmluZyBzdHIpOworIAkJcHVibGljIENsdXR0ZXIuVW5pdFR5cGUgZ2V0X3VuaXRfdHlw ZSAoKTsKKyAJCXB1YmxpYyBmbG9hdCBnZXRfdW5pdF92YWx1ZSAoKTsKKyAJCXB1YmxpYyBmbG9h dCB0b19waXhlbHMgKCk7CisgCQlwdWJsaWMgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfdmVydGV4X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQi KV0KKy0JcHVibGljIHN0cnVjdCBWZXJ0ZXggeworLQkJcHVibGljIGZsb2F0IHg7CistCQlwdWJs aWMgZmxvYXQgeTsKKy0JCXB1YmxpYyBmbG9hdCB6OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5WZXJ0ZXg/IGFsbG9jICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4PyBjb3B5ICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZXF1YWwgKENs dXR0ZXIuVmVydGV4IHZlcnRleF9iKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5WZXJ0ZXg/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZs b2F0IHopOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BQ1RPUl9BTElHTl8iLCB0eXBlX2lkID0gImNsdXR0 ZXJfYWN0b3JfYWxpZ25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJcHVibGljIGVudW0gQWN0b3JBbGlnbiB7CitAQCAtODIyMywxNCArNzQ1Myw2IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVlfQVhJUywKKyAJCUJPVEgKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJf IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FsbG9jYXRpb25fZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0J W0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEFsbG9j YXRpb25GbGFncyB7CistCQlBTExPQ0FUSU9OX05PTkUsCistCQlBQlNPTFVURV9PUklHSU5fQ0hB TkdFRCwKKy0JCURFTEVHQVRFX0xBWU9VVAorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl8iLCB0eXBlX2lkID0g ImNsdXR0ZXJfYW5pbWF0aW9uX21vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorIAlwdWJsaWMgZW51bSBBbmltYXRpb25Nb2RlIHsKK0BAIC04MzM2LDYgKzc1 NTgsMjcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJWV9BWElTLAorIAkJQk9USAorIAl9Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXgg PSAiQ0xVVFRFUl9ERUJVR18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZGVidWdfZmxhZ19nZXRfdHlw ZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIERlYnVnRmxhZyB7CisrCQlNSVNDLAor KwkJQUNUT1IsCisrCQlURVhUVVJFLAorKwkJRVZFTlQsCisrCQlQQUlOVCwKKysJCVBBTkdPLAor KwkJQkFDS0VORCwKKysJCVNDSEVEVUxFUiwKKysJCVNDUklQVCwKKysJCVNIQURFUiwKKysJCU1V TFRJU1RBR0UsCisrCQlBTklNQVRJT04sCisrCQlMQVlPVVQsCisrCQlQSUNLLAorKwkJRVZFTlRM T09QLAorKwkJQ0xJUFBJTkcsCisrCQlPT0JfVFJBTlNGT1JNUworKwl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9E UkFHXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kcmFnX2F4aXNfZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgZW51bSBEcmFnQXhpcyB7CitAQCAtODM0 MywxMSArNzU4NiwyNCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlYX0FYSVMsCisgCQlZX0FY SVMKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBjcHJlZml4ID0gIkNMVVRURVJfRUZGRUNUX1BBSU5UX0FDVE9SXyIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9lZmZlY3RfcGFpbnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RFQlVH XyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kcmF3X2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJ W0ZsYWdzXQorKwlwdWJsaWMgZW51bSBEcmF3RGVidWdGbGFnIHsKKysJCURJU0FCTEVfU1dBUF9F VkVOVFMsCisrCQlESVNBQkxFX0NMSVBQRURfUkVEUkFXUywKKysJCVJFRFJBV1MsCisrCQlQQUlO VF9WT0xVTUVTLAorKwkJRElTQUJMRV9DVUxMSU5HLAorKwkJRElTQUJMRV9PRkZTQ1JFRU5fUkVE SVJFQ1QsCisrCQlDT05USU5VT1VTX1JFRFJBVywKKysJCVBBSU5UX0RFRk9STV9USUxFUywKKysJ CVBBSU5UX0RBTUFHRV9SRUdJT04KKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRUZGRUNUX1BBSU5UXyIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9lZmZlY3RfcGFpbnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0Zs YWdzXQorIAlwdWJsaWMgZW51bSBFZmZlY3RQYWludEZsYWdzIHsKKy0JCVtDQ29kZSAoY25hbWUg PSAiQ0xVVFRFUl9FRkZFQ1RfUEFJTlRfQUNUT1JfRElSVFkiKV0KKy0JCUFDVE9SX0RJUlRZCisr CQlBQ1RPUl9ESVJUWSwKKysJCUJZUEFTU19FRkZFQ1QKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRVZFTlRf IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2V2ZW50X2ZsYWdzX2dldF90eXBlICgpIildCisgCVtGbGFn c10KK0BAIC04MzkyLDIxICs3NjQ4LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW0ZsYWdz XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCXB1YmxpYyBlbnVtIEZlYXR1cmVGbGFn cyB7CistCQlURVhUVVJFX05QT1QsCistCQlTV0FQX1RIUk9UVExFLAorLQkJVEVYVFVSRV9ZVVYs CistCQlURVhUVVJFX1JFQURfUElYRUxTLAorIAkJU1RBR0VfU1RBVElDLAorLQkJU1RBR0VfVVNF Ul9SRVNJWkUsCisgCQlTVEFHRV9DVVJTT1IsCisgCQlTSEFERVJTX0dMU0wsCisgCQlPRkZTQ1JF RU4sCisgCQlTVEFHRV9NVUxUSVBMRSwKKy0JCVNXQVBfRVZFTlRTOworLQkJW0NDb2RlIChjbmFt ZSA9ICJjbHV0dGVyX2ZlYXR1cmVfYXZhaWxhYmxlIildCistCQlwdWJsaWMgYm9vbCBpc19hdmFp bGFibGUgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZmVhdHVyZV9nZXRfYWxsIild CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuRmVhdHVyZUZsYWdzIEBnZXQgKCk7CisrCQlTV0FQ X0VWRU5UUworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9GTE9XXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9mbG93 X29yaWVudGF0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K K0BAIC04NDE0LDEyICs3NjYxLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCUhPUklaT05U QUwsCisgCQlWRVJUSUNBTAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9GT05UXyIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9mb250X2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMjIiLCBzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIGVudW0gRm9udEZsYWdzIHsKKy0JCU1JUE1BUFBJTkcsCistCQlISU5USU5H CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVm aXggPSAiQ0xVVFRFUl9GUkFNRV9SRVNVTFRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZyYW1lX3Jl c3VsdF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBGcmFtZVJlc3VsdCB7CisrCQlQRU5E SU5HX1BSRVNFTlRFRCwKKysJCUlETEUKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfR0VTVFVSRV9UUklHR0VS X0VER0VfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dlc3R1cmVfdHJpZ2dlcl9lZGdlX2dldF90eXBl ICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCitAQCAtODYzNCw3ICs3ODc5LDgg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCXB1 YmxpYyBlbnVtIE9mZnNjcmVlblJlZGlyZWN0IHsKKyAJCUFVVE9NQVRJQ19GT1JfT1BBQ0lUWSwK Ky0JCUFMV0FZUworKwkJQUxXQVlTLAorKwkJT05fSURMRQorIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9PUklF TlRBVElPTl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfb3JpZW50YXRpb25fZ2V0X3R5cGUgKCkiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC04NjQyLDYgKzc4ODgsMTMgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJSE9SSVpPTlRBTCwKKyAJCVZFUlRJQ0FMCisgCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJD TFVUVEVSX1BBSU5UX0ZMQUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhaW50X2ZsYWdfZ2V0X3R5 cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51bSBQYWludEZsYWcgeworKwkJTk9ORSwK KysJCU5PX0NVUlNPUlMsCisrCQlGT1JDRV9DVVJTT1JTCisrCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1BBTl8i LCB0eXBlX2lkID0gImNsdXR0ZXJfcGFuX2F4aXNfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTIiKV0KKyAJcHVibGljIGVudW0gUGFuQXhpcyB7CitAQCAtODY2MSw2ICs3 OTE0LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVJFTF9MSU5FX1RPLAorIAkJUkVMX0NV UlZFX1RPCisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RFQlVHX05PUF8iLCB0eXBlX2lkID0gImNsdXR0ZXJf cGlja19kZWJ1Z19mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0g UGlja0RlYnVnRmxhZyB7CisrCQlQSUNLSU5HCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1BJQ0tfIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3BpY2tfbW9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisgCXB1YmxpYyBlbnVtIFBpY2tNb2RlIHsKK0BAIC04NjY4LDEzICs3OTI2 LDQ2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVJFQUNUSVZFLAorIAkJQUxMCisgCX0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9 ICJDTFVUVEVSX0ExMVlfRFdFTExfQ0xJQ0tfVFlQRV8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcG9p bnRlcl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGVudW0g UG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSB7CisrCQlOT05FLAorKwkJUFJJTUFSWSwKKysJCVNF Q09OREFSWSwKKysJCU1JRERMRSwKKysJCURPVUJMRSwKKysJCURSQUcKKysJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRU RVJfQTExWV9EV0VMTF9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTEx eV9kd2VsbF9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGVudW0gUG9pbnRlckEx MXlEd2VsbERpcmVjdGlvbiB7CisrCQlOT05FLAorKwkJTEVGVCwKKysJCVJJR0hULAorKwkJVVAs CisrCQlET1dOCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ExMVlfRFdFTExfTU9ERV8iLCB0eXBlX2lkID0g ImNsdXR0ZXJfcG9pbnRlcl9hMTF5X2R3ZWxsX21vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGlj IGVudW0gUG9pbnRlckExMXlEd2VsbE1vZGUgeworKwkJV0lORE9XLAorKwkJR0VTVFVSRQorKwl9 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVm aXggPSAiQ0xVVFRFUl9BMTFZXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfZmxh Z3NfZ2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUZs YWdzIHsKKysJCVNFQ09OREFSWV9DTElDS19FTkFCTEVELAorKwkJRFdFTExfRU5BQkxFRAorKwl9 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVm aXggPSAiQ0xVVFRFUl9BMTFZX1RJTUVPVVRfVFlQRV8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcG9p bnRlcl9hMTF5X3RpbWVvdXRfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQb2lu dGVyQTExeVRpbWVvdXRUeXBlIHsKKysJCVNFQ09OREFSWV9DTElDSywKKysJCURXRUxMLAorKwkJ R0VTVFVSRQorKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9SRVBBSU5UX0ZMQUdTXyIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9yZXBhaW50X2ZsYWdzX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGVudW0gUmVwYWludEZsYWdzIHsKKyAJCVBSRV9Q QUlOVCwKKy0JCVBPU1RfUEFJTlQsCistCQlRVUVVRV9SRURSQVdfT05fQURECisrCQlQT1NUX1BB SU5UCisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgY3ByZWZpeCA9ICJDTFVUVEVSX1JFUVVFU1RfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlcXVl c3RfbW9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCitAQCAt ODc1NSw4ICs4MDQ2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbRmxhZ3NdCisgCVtWZXJz aW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGljIGVudW0gU3RhZ2VTdGF0ZSB7CistCQlGVUxM U0NSRUVOLAorLQkJT0ZGU0NSRUVOLAorIAkJQUNUSVZBVEVECisgCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0NP TE9SXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zdGF0aWNfY29sb3JfZ2V0X3R5cGUgKCkiKV0KK0BA IC04ODIzLDEzICs4MTEyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJTEVGVCwKKyAJCVJJ R0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RBQkxFX0FMSUdOTUVOVF8iLCB0eXBlX2lkID0gImNsdXR0 ZXJfdGFibGVfYWxpZ25tZW50X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIyIiwgc2luY2UgPSAiMS40IildCistCXB1 YmxpYyBlbnVtIFRhYmxlQWxpZ25tZW50IHsKKy0JCVNUQVJULAorLQkJQ0VOVEVSLAorLQkJRU5E CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y3ByZWZpeCA9ICJDTFVUVEVSX1RFWFRfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90 ZXh0X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CisgCXB1YmxpYyBlbnVtIFRleHREaXJlY3Rpb24geworQEAgLTg5MDUsMjggKzgxODcsMTYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJVkFMVUU7CisgCQlwdWJsaWMgc3RhdGljIEdMaWIuUXVh cmsgcXVhcmsgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RFWFRVUkVfRVJST1JfIildCistCVtWZXJz aW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIGVycm9yZG9tYWluIFRleHR1cmVFcnJvciB7 CistCQlPVVRfT0ZfTUVNT1JZLAorLQkJTk9fWVVWLAorLQkJQkFEX0ZPUk1BVDsKKy0JCXB1Ymxp YyBzdGF0aWMgR0xpYi5RdWFyayBxdWFyayAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgQ2x1dHRlci5BY3RvciBB Y3RvckNyZWF0ZUNoaWxkRnVuYyAoR0xpYi5PYmplY3QgaXRlbSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMC4yIildCistCXB1YmxpYyBkZWxlZ2F0ZSBkb3VibGUgQWxwaGFGdW5jIChDbHV0 dGVyLkFscGhhIGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJs aWMgZGVsZWdhdGUgdm9pZCBCZWhhdmlvdXJGb3JlYWNoRnVuYyAoQ2x1dHRlci5CZWhhdmlvdXIg YmVoYXZpb3VyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gNC45KV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBCaW5kaW5nQWN0aW9u RnVuYyAoR0xpYi5PYmplY3QgZ29iamVjdCwgc3RyaW5nIGFjdGlvbl9uYW1lLCB1aW50IGtleV92 YWwsIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZGlmaWVycyk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1 YmxpYyBkZWxlZ2F0ZSB2b2lkIENhbGxiYWNrIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3RhcmdldCA9 IGZhbHNlKV0KKysJcHVibGljIGRlbGVnYXRlIHZvaWQgRW1pdElucHV0RGV2aWNlRXZlbnQgKENs dXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0g MS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJcHVibGljIGRlbGVnYXRlIGJv b2wgRXZlbnRGaWx0ZXJGdW5jIChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKK0BAIC04OTU3LDkgKzgy MjcsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0K KyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9SRURSQVc7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MiIpXQorLQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuQWN0b3JCb3g/IGFjdG9yX2JveF9hbGxvYyAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisg CXB1YmxpYyBzdGF0aWMgdm9pZCBiYXNlX2luaXQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorQEAgLTg5NzEsMzcgKzgyMzgsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgY2hlY2tfd2luZG93aW5n X2JhY2tlbmQgKHN0cmluZyBiYWNrZW5kX3R5cGUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIGNsZWFyX2dseXBoX2NhY2hlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNvbG9yX2Zy b21faGxzIChvdXQgQ2x1dHRlci5Db2xvciBjb2xvciwgZmxvYXQgaHVlLCBmbG9hdCBsdW1pbmFu Y2UsIGZsb2F0IHNhdHVyYXRpb24pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNvbG9yX2Zyb21fcGl4ZWwg KG91dCBDbHV0dGVyLkNvbG9yIGNvbG9yLCB1aW50MzIgcGl4ZWwpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgY29sb3JfZnJvbV9zdHJpbmcgKG91dCBDbHV0 dGVyLkNvbG9yIGNvbG9yLCBzdHJpbmcgc3RyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0J cHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQ29sb3I/IGNvbG9yX2dldF9zdGF0aWMgKENs dXR0ZXIuU3RhdGljQ29sb3IgY29sb3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVi bGljIHN0YXRpYyB2b2lkIGRpc2FibGVfYWNjZXNzaWJpbGl0eSAoKTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjQiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGRvX2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2 ZW50KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgdWludCBldmVu dF9hZGRfZmlsdGVyIChDbHV0dGVyLlN0YWdlPyBzdGFnZSwgW0NDb2RlIChkZWxlZ2F0ZV90YXJn ZXRfcG9zID0gMi4yLCBkZXN0cm95X25vdGlmeV9wb3MgPSAyLjEpXSBvd25lZCBDbHV0dGVyLkV2 ZW50RmlsdGVyRnVuYyBmdW5jKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIHN0 YXRpYyBDbHV0dGVyLkV2ZW50IGV2ZW50X2dldCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0K Ky0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuRXZlbnQgZXZlbnRfcGVlayAoKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBldmVudF9yZW1vdmVf ZmlsdGVyICh1aW50IGlkKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGljIHN0YXRp YyBib29sIGV2ZW50c19wZW5kaW5nICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KK0BAIC05MDE0LDkgKzgyNTYsNiBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyB1aW50 MzIgZ2V0X2N1cnJlbnRfZXZlbnRfdGltZSAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZGVi dWdfZW5hYmxlZCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGljIHN0YXRpYyB1 bm93bmVkIENsdXR0ZXIuQmFja2VuZCBnZXRfZGVmYXVsdF9iYWNrZW5kICgpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KK0BAIC05MDI2LDE4ICs4 MjY1LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CisgCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9uIGdldF9kZWZhdWx0X3RleHRf ZGlyZWN0aW9uICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyBDbHV0dGVyLkZvbnRG bGFncyBnZXRfZm9udF9mbGFncyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGlj IHN0YXRpYyB1bm93bmVkIFBhbmdvLkZvbnRNYXAgZ2V0X2ZvbnRfbWFwICgpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRf a2V5Ym9hcmRfZ3JhYiAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGdldF9t b3Rpb25fZXZlbnRzX2VuYWJsZWQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCisgCXB1Ymxp YyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KK0BAIC05MDQ1LDI2ICs4 Mjc1LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlwdWJsaWMgc3RhdGljIEdMaWIuT3B0aW9u R3JvdXAgZ2V0X29wdGlvbl9ncm91cF93aXRob3V0X2luaXQgKCk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9wb2ludGVy X2dyYWIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBzdHJpbmcgZ2V0X3NjcmlwdF9pZCAoR0xpYi5PYmplY3QgZ29iamVjdCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIp XQorLQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3Nob3dfZnBzICgpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB1 bG9uZyBnZXRfdGltZXN0YW1wICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgZ3JhYl9rZXlib2FyZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX3BvaW50ZXIgKENsdXR0 ZXIuQWN0b3IgYWN0b3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdyYWJf cG9pbnRlcl9mb3JfZGV2aWNlIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgaWRfKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCXB1YmxpYyBz dGF0aWMgQ2x1dHRlci5Jbml0RXJyb3IgaW5pdCAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUg PSAiYXJnYyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUpXSByZWYgdW5vd25lZCBzdHJpbmdbXT8g YXJndik7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCitAQCAtOTA4MCw0MSArODI5Miw2IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfY3VzdG9tX2JhY2tlbmRfZnVu YyAodm9pZCogZnVuYyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2Rl ZmF1bHRfZnJhbWVfcmF0ZSAodWludCBmcmFtZXNfcGVyX3NlYyk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgc2V0X2ZvbnRfZmxhZ3MgKENsdXR0ZXIuRm9udEZsYWdzIGZsYWdz KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBz aW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9tb3Rpb25fZXZlbnRzX2Vu YWJsZWQgKGJvb2wgZW5hYmxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCB0ZXN0X2FkZF9kYXRhX2Z1bGwgKHN0cmluZyB0ZXN0X3BhdGgsIG93bmVkIEdM aWIuVGVzdERhdGFGdW5jIHRlc3RfZnVuYyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlw dWJsaWMgc3RhdGljIGJvb2wgdGVzdF9jaGVja19hY3Rvcl9hdF9wb2ludCAoQ2x1dHRlci5BY3Rv ciBzdGFnZSwgQ2x1dHRlci5Qb2ludCBwb2ludCwgQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IENs dXR0ZXIuQWN0b3I/IHJlc3VsdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMg c3RhdGljIGJvb2wgdGVzdF9jaGVja19jb2xvcl9hdF9wb2ludCAoQ2x1dHRlci5BY3RvciBzdGFn ZSwgQ2x1dHRlci5Qb2ludCBwb2ludCwgQ2x1dHRlci5Db2xvciBjb2xvciwgb3V0IENsdXR0ZXIu Q29sb3IgcmVzdWx0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBDbHV0dGVyLkFjdG9yIHRlc3RfZ2V0X3N0YWdlICgpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHRlc3RfaW5pdCAoaW50IGFyZ2MsIHN0cmluZyBhcmd2KTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4 IildCistCXB1YmxpYyBzdGF0aWMgaW50IHRlc3RfcnVuICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdW5ncmFiX2tleWJvYXJkICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdW5ncmFiX3BvaW50ZXIgKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdW5ncmFiX3BvaW50ZXJfZm9yX2Rldmlj ZSAoaW50IGlkXyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgc3RhdGljIHVp bnQgdW5pY29kZV90b19rZXlzeW0gKHVpbnQzMiB3Yyk7CisgfQorZGlmZiAtLWdpdCB2YXBpL211 dHRlci1jb2dsLTUtY3VzdG9tLnZhbGEgdmFwaS9tdXR0ZXItY29nbC02LWN1c3RvbS52YWxhCitz aW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNvZ2wtNS1jdXN0 b20udmFsYQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNvZ2wtNi1jdXN0b20udmFsYQorZGlmZiAt LWdpdCB2YXBpL211dHRlci1jb2dsLTQuZGVwcyB2YXBpL211dHRlci1jb2dsLTYuZGVwcworc2lt aWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTQuZGVwcwor cmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNvZ2wtNi5kZXBzCitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVy LWNvZ2wtNS52YXBpIHZhcGkvbXV0dGVyLWNvZ2wtNi52YXBpCitzaW1pbGFyaXR5IGluZGV4IDY4 JQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC01LnZhcGkKK3JlbmFtZSB0byB2YXBpL211 dHRlci1jb2dsLTYudmFwaQoraW5kZXggYTg5NjEyMjQuLjE5NWUzYjE3IDEwMDY0NAorLS0tIHZh cGkvbXV0dGVyLWNvZ2wtNS52YXBpCisrKysgdmFwaS9tdXR0ZXItY29nbC02LnZhcGkKK0BAIC0x LDYgKzEsNiBAQAorLS8qIG11dHRlci1jb2dsLTUudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwg ZG8gbm90IG1vZGlmeS4gKi8KKysvKiBtdXR0ZXItY29nbC02LnZhcGkgZ2VuZXJhdGVkIGJ5IHZh cGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCistW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wiLCBn aXJfbmFtZXNwYWNlID0gIkNvZ2wiLCBnaXJfdmVyc2lvbiA9ICI1IiwgbG93ZXJfY2FzZV9jcHJl Zml4ID0gImNvZ2xfIildCisrW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNl ID0gIkNvZ2wiLCBnaXJfdmVyc2lvbiA9ICI2IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xf IildCisgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjbmFtZSA9ICJDb2dsSGFuZGxlIiwgdHlwZV9pZCA9ICJjb2dsX2JpdG1hcF9n ZXRfZ3R5cGUgKCkiKV0KKyAJW0NvbXBhY3RdCitAQCAtMjgsOSArMjgsMTAgQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJcHVibGljIGJvb2wgc2V0X2RhdGEgKHNpemVfdCBvZmZzZXQsIFtDQ29kZSAo YXJyYXlfbGVuZ3RoX3R5cGUgPSAic2l6ZV90IildIHVpbnQ4W10gZGF0YSk7CisgCQlwdWJsaWMg dm9pZCB1bm1hcCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFz cyBFdWxlciB7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5 cGVfaWQgPSAiY29nbF9jb250ZXh0X2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgQ29u dGV4dCA6IENvZ2wuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKysJCXByb3RlY3RlZCBDb250ZXh0ICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5 IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNvZ2xfZnJhbWVf Y2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKyAJW0NvbXBhY3RdCitAQCAtNjUsNjIgKzY2LDE3IEBA IG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCisgCQlwdWJsaWMgTWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMiIpXQorLQkJ cHVibGljIENvZ2wuTWF0ZXJpYWwgY29weSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdm9pZCBmb3JlYWNoX2xheWVyIChDb2dsLk1hdGVyaWFsTGF5ZXJDYWxsYmFjayBjYWxsYmFj ayk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wu Q29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3Ig Z2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZm dXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIGJvb2wgZ2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAo aW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5NYXRl cmlhbFdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF9sYXll cl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCQlw dWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxh eWVyX2luZGV4KTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuTGlzdDxDb2dsLk1hdGVyaWFsTGF5 ZXI+IGdldF9sYXllcnMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGludCBnZXRf bl9sYXllcnMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9wb2lu dF9zaXplICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfc2hpbmlu ZXNzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9zcGVjdWxhciAo Q29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3du ZWQgQ29nbC5IYW5kbGUgZ2V0X3VzZXJfcHJvZ3JhbSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSBAcmVmIChDb2dsLkhhbmRsZSBtYXRl cmlhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2xheWVyIChpbnQgbGF5ZXJfaW5kZXgp OworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0 aW9uIChDb2dsLk1hdGVyaWFsQWxwaGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVy ZW5jZSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENv Z2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2FtYmllbnRfYW5kX2RpZmZ1c2UgKENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKyAJCXB1YmxpYyBib29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dz IEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsZW5k X2NvbnN0YW50IChDb2dsLkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcjRmIChmbG9hdCByZWQsIGZsb2F0IGdy ZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVl LCB1aW50OCBhbHBoYSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Rp ZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXIgKGludCBsYXllcl9pbmRleCwgQ29nbC5IYW5k bGUgdGV4dHVyZSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgc2V0X2xheWVy X2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdM aWIuRXJyb3I7CitAQCAtMTMzLDQxICs4OSwxMyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuNCIpXQorIAkJcHVibGljIGJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNf ZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBib29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7 CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAo aW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJf aW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29n bC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFs V3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Bv aW50X3NpemUgKGZsb2F0IHBvaW50X3NpemUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9zaGluaW5lc3MgKGZsb2F0IHNoaW5pbmVzcyk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKyAJ CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfdXNlcl9wcm9ncmFtIChDb2dsLkhh bmRsZSBwcm9ncmFtKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB1 bnJlZiAoQ29nbC5IYW5kbGUgbWF0ZXJpYWwpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0K KyAJcHVibGljIGNsYXNzIE1hdGVyaWFsTGF5ZXIgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVy aWFsRmlsdGVyIGdldF9tYWdfZmlsdGVyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFs RmlsdGVyIGdldF9taW5fZmlsdGVyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFu ZGxlIGdldF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsTGF5ZXJUeXBl IGdldF90eXBlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFs V3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV9wICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV9zICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV90ICgp OworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVf aWQgPSAiY29nbF9vYmplY3RfZ2V0X2d0eXBlICgpIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFz cyBPYmplY3QgeworQEAgLTE3OCwxMyArMTA2LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlwdWJs aWMgY2xhc3MgT2Zmc2NyZWVuIDogQ29nbC5PYmplY3QsIENvZ2wuRnJhbWVidWZmZXIgeworIAkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIE9m ZnNjcmVlbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCogQHJlZiAodm9pZCogb2Zmc2Ny ZWVuKTsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisg CQlwdWJsaWMgT2Zmc2NyZWVuLnRvX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCB1bnJlZiAodm9pZCogb2Zmc2NyZWVuKTsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1YmxpYyBPZmZzY3JlZW4u d2l0aF90ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CisgCX0KK0BAIC0xOTYsOSArMTIw LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIENvZ2wuT25zY3JlZW5EaXJ0eUNsb3N1 cmUgYWRkX2RpcnR5X2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUp XSBDb2dsLk9uc2NyZWVuRGlydHlDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ry b3lDYWxsYmFjaz8gZGVzdHJveSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1cmUgYWRkX3Jlc2l6ZV9jYWxsYmFjayAoW0ND b2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlblJlc2l6ZUNhbGxi YWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwg c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVpbnQgYWRkX3N3YXBfYnVmZmVyc19jYWxsYmFj ayAoQ29nbC5Td2FwQnVmZmVyc05vdGlmeSBjYWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGljIHZv aWQgY2x1dHRlcl9iYWNrZW5kX3NldF9zaXplX0NMVVRURVIgKGludCB3aWR0aCwgaW50IGhlaWdo dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGljIGludCBnZXRfYnVm ZmVyX2FnZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCitAQCAtMjEzLDggKzEz NCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9mcmFtZV9jYWxs YmFjayAoQ29nbC5GcmFtZUNsb3N1cmUgY2xvc3VyZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfcmVzaXplX2NhbGxiYWNrIChDb2dsLk9uc2Ny ZWVuUmVzaXplQ2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgcmVtb3ZlX3N3YXBfYnVmZmVyc19jYWxsYmFjayAodWludCBpZCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcmVzaXphYmxlIChib29sIHJl c2l6YWJsZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCitAQCAtMjQ0LDcgKzE2Myw4 IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3BpcGVsaW5lX2dldF9ndHlwZSAoKSIpXQorIAlwdWJs aWMgY2xhc3MgUGlwZWxpbmUgOiBDb2dsLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUGlwZWxpbmUgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisrCQlwdWJsaWMgUGlwZWxpbmUgKENvZ2wuQ29udGV4dCBj b250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLlBp cGVsaW5lIGNvcHkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCitAQCAtMjU0LDE2 ICsxNzQsMTAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorIAkJcHVibGljIGZsb2F0IGdldF9hbHBoYV90ZXN0X3JlZmVyZW5jZSAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbWJpZW50IChDb2dsLkNv bG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENv Z2wuQ29sb3IgZ2V0X2NvbG9yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJ cHVibGljIENvZ2wuUGlwZWxpbmVDdWxsRmFjZU1vZGUgZ2V0X2N1bGxfZmFjZV9tb2RlICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2Ug KENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBnZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuV2luZGluZyBnZXRfZnJvbnRfZmFj ZV93aW5kaW5nICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBD b2dsLlBpcGVsaW5lRmlsdGVyIGdldF9sYXllcl9tYWdfZmlsdGVyIChpbnQgbGF5ZXJfaW5kZXgp OworQEAgLTI3NCw4ICsxODgsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9sYXllcl90 ZXh0dXJlIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor LQkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGlu dCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMg Q29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2lu ZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVs aW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOworQEAg LTI4NiwxMCArMTk4LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorIAkJcHVibGljIGZsb2F0IGdldF9wb2ludF9zaXplICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc3BlY3VsYXIgKENv Z2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIGludCBnZXRfdW5pZm9ybV9sb2NhdGlvbiAoc3RyaW5nIHVuaWZvcm1fbmFtZSk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBn ZXRfdXNlcl9wcm9ncmFtICgpOworQEAgLTI5OCwxMCArMjA2LDYgQEAgbmFtZXNwYWNlIENvZ2wg eworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2FscGhh X3Rlc3RfZnVuY3Rpb24gKENvZ2wuUGlwZWxpbmVBbHBoYUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQg YWxwaGFfcmVmZXJlbmNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnRfYW5kX2RpZmZ1c2UgKENv Z2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGlj IGJvb2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9j b25zdGFudCAoQ29nbC5Db2xvciBjb25zdGFudF9jb2xvcik7CitAQCAtMzE0LDEwICsyMTgsNiBA QCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgdm9pZCBzZXRfY3VsbF9mYWNlX21vZGUgKENvZ2wuUGlwZWxpbmVDdWxsRmFjZU1vZGUgY3Vs bF9mYWNlX21vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Np b24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Zy b250X2ZhY2Vfd2luZGluZyAoQ29nbC5XaW5kaW5nIGZyb250X3dpbmRpbmcpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIGJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGlu dCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CitA QCAtMzM1LDggKzIzNSw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGUgKGludCBsYXllcl9p bmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJf aW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVy X2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXll cl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworQEAgLTM0NSwxMCArMjQzLDYg QEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X3BvaW50X3NpemUgKGZsb2F0IHBvaW50X3NpemUpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hp bmluZXNzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xZiAoaW50IHVuaWZvcm1fbG9jYXRp b24sIGZsb2F0IHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF91bmlmb3JtXzFpIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IHZhbHVlKTsK K0BAIC0zODIsMTAgKzI3Niw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBzdGF0aWMg dm9pZCB1bmlmb3JtX21hdHJpeCAoaW50IHVuaWZvcm1fbm8sIGludCBzaXplLCBib29sIHRyYW5z cG9zZSwgW0NDb2RlIChhcnJheV9sZW5ndGhfcG9zID0gMi45KV0gZmxvYXRbXSB2YWx1ZSk7Cisg CQlwdWJsaWMgdm9pZCB1c2UgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtDb21wYWN0XQorLQlwdWJs aWMgY2xhc3MgUXVhdGVybmlvbiB7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9mdW5jdGlvbiA9ICJjb2ds X3NoYWRlcl9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2dsX3NoYWRlcl91bnJlZiIpXQorIAlb Q29tcGFjdF0KKyAJcHVibGljIGNsYXNzIFNoYWRlciA6IENvZ2wuSGFuZGxlIHsKK0BAIC00NjUs MTIgKzM1NSwxMCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgaW50IGdldF9hbHBoYV9i aXRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGludCBnZXRf Ymx1ZV9iaXRzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorKwkJcHVibGljIHVu b3duZWQgQ29nbC5Db250ZXh0IGdldF9jb250ZXh0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorIAkJcHVibGljIGludCBnZXRfZGVwdGhfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2RlcHRo X3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIGJv b2wgZ2V0X2RlcHRoX3RleHR1cmVfZW5hYmxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE4IildCisgCQlwdWJsaWMgYm9vbCBnZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC01MTYsNiArNDA0LDcgQEAgbmFtZXNwYWNlIENv Z2wgeworIAkJcHVibGljIHZvaWQgcHVzaF9tYXRyaXggKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcHVzaF9yZWN0YW5nbGVfY2xpcCAoZmxvYXQgeF8x LCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsKKysJCXB1YmxpYyB2b2lkIHB1c2hf cmVnaW9uX2NsaXAgKENhaXJvLlJlZ2lvbiByZWdpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHB1c2hfc2Npc3Nvcl9jbGlwIChpbnQgeCwgaW50IHks IGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor QEAgLTUyOSwxMyArNDE4LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgs IGZsb2F0IHksIGZsb2F0IHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1 YXRlcm5pb24gcXVhdGVybmlvbik7CisrCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKEdyYXBo ZW5lLkV1bGVyIGV1bGVyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJs aWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3RleHR1cmVfZW5hYmxl ZCAoYm9vbCBlbmFibGVkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisgCQlwdWJs aWMgdm9pZCBzZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoYm9vbCBkZXB0aF93cml0ZV9lbmFibGVk KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC02MzUsMTAgKzUyMCw2IEBAIG5h bWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9ibHVlX2J5dGUgKHVpbnQ4IGJsdWUp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsdWVf ZmxvYXQgKGZsb2F0IGJsdWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuNCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2Zyb21fNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhh KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjQiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzR1YiAodWludDgg cmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2dyZWVuIChmbG9hdCBncmVlbik7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNjYyLDcgKzU0Myw3IEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB3ZWFrIHN0cmluZyBuYW1lOworIAkJcHVibGljIHVsb25n IGluc3RhbmNlX2NvdW50OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIHR5cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJWCIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29w eSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJDT0dMX1RZUEVf TUFUUklYIildCisgCXB1YmxpYyBzdHJ1Y3QgTWF0cml4IHsKKyAJCXB1YmxpYyBmbG9hdCB4eDsK KyAJCXB1YmxpYyBmbG9hdCB5eDsKK0BAIC02OTIsOCArNTczLDcgQEAgbmFtZXNwYWNlIENvZ2wg eworIAkJcHVibGljIGJvb2wgZ2V0X2ludmVyc2UgKG91dCBDb2dsLk1hdHJpeCBpbnZlcnNlKTsK KyAJCVtDQ29kZSAoY25hbWUgPSAiY29nbF9tYXRyaXhfaW5pdF9pZGVudGl0eSIpXQorIAkJcHVi bGljIE1hdHJpeC5pZGVudGl0eSAoKTsKKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9ldWxlciAo Q29nbC5FdWxlciBldWxlcik7CistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fcXVhdGVybmlvbiAo Q29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1 bGVyIChHcmFwaGVuZS5FdWxlciBldWxlcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CisgCQlwdWJsaWMgdm9pZCBpbml0X3RyYW5zbGF0aW9uIChmbG9hdCB0eCwgZmxvYXQgdHksIGZs b2F0IHR6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC03MDIsMTkgKzU4Miwx NSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBsb29rX2F0IChmbG9hdCBleWVf cG9zaXRpb25feCwgZmxvYXQgZXllX3Bvc2l0aW9uX3ksIGZsb2F0IGV5ZV9wb3NpdGlvbl96LCBm bG9hdCBvYmplY3RfeCwgZmxvYXQgb2JqZWN0X3ksIGZsb2F0IG9iamVjdF96LCBmbG9hdCB3b3Js ZF91cF94LCBmbG9hdCB3b3JsZF91cF95LCBmbG9hdCB3b3JsZF91cF96KTsKKyAJCVtDQ29kZSAo Y25hbWUgPSAiY29nbF9tYXRyaXhfbXVsdGlwbHkiKV0KKyAJCXB1YmxpYyBNYXRyaXgubXVsdGlw bHkgKENvZ2wuTWF0cml4IGEsIENvZ2wuTWF0cml4IGIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIG9y dGhvIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZs b2F0IG5lYXIsIGZsb2F0IGZhcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJ cHVibGljIHZvaWQgb3J0aG9ncmFwaGljIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8y LCBmbG9hdCB5XzIsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CisgCQlwdWJsaWMgdm9pZCBwZXJz cGVjdGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6 X2Zhcik7CisgCQlwdWJsaWMgdm9pZCBwcm9qZWN0X3BvaW50cyAoaW50IG5fY29tcG9uZW50cywg c2l6ZV90IHN0cmlkZV9pbiwgdm9pZCogcG9pbnRzX2luLCBzaXplX3Qgc3RyaWRlX291dCwgdm9p ZCogcG9pbnRzX291dCwgaW50IG5fcG9pbnRzKTsKKyAJCXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxv YXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVy KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9x dWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CisrCQlwdWJsaWMgdm9pZCBy b3RhdGVfZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGV1bGVyKTsKKyAJCXB1YmxpYyB2b2lkIHNjYWxl IChmbG9hdCBzeCwgZmxvYXQgc3ksIGZsb2F0IHN6KTsKKy0JCXB1YmxpYyB2b2lkIHRyYW5zZm9y bV9wb2ludCAocmVmIGZsb2F0IHgsIHJlZiBmbG9hdCB5LCByZWYgZmxvYXQgeiwgcmVmIGZsb2F0 IHcpOworKwkJcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zZm9ybV9wb2ludCAocmVmIENvZ2wuTWF0 cml4IG1hdHJpeCwgcmVmIGZsb2F0IHgsIHJlZiBmbG9hdCB5LCByZWYgZmxvYXQgeiwgcmVmIGZs b2F0IHcpOworIAkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50cyAoaW50IG5fY29tcG9uZW50 cywgc2l6ZV90IHN0cmlkZV9pbiwgdm9pZCogcG9pbnRzX2luLCBzaXplX3Qgc3RyaWRlX291dCwg dm9pZCogcG9pbnRzX291dCwgaW50IG5fcG9pbnRzKTsKKyAJCXB1YmxpYyB2b2lkIHRyYW5zbGF0 ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorQEAgLTgxOCwzOCArNjk0LDMzIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCU5PTkUsCisg CQlOT19HRVRfREFUQQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GRUFUVVJFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIGVudW0gRmVh dHVyZUZsYWdzIHsKKy0JCVRFWFRVUkVfWVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJWEVMUywKKy0J CU9GRlNDUkVFTiwKKy0JCU9GRlNDUkVFTl9NVUxUSVNBTVBMRSwKKy0JCUZPVVJfQ0xJUF9QTEFO RVMsCistCQlTVEVOQ0lMX0JVRkZFUiwKKy0JCVZCT1MsCistCQlQQk9TLAorLQkJVU5TSUdORURf SU5UX0lORElDRVMsCistCQlERVBUSF9SQU5HRSwKKy0JCVBPSU5UX1NQUklURSwKKy0JCU1BUF9C VUZGRVJfRk9SX1JFQUQsCistCQlNQVBfQlVGRkVSX0ZPUl9XUklURSwKKy0JCU9OU0NSRUVOX01V TFRJUExFLAorLQkJREVQVEhfVEVYVFVSRQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRkVBVFVSRV9JRF8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIGVudW0gRmVh dHVyZUlEIHsKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1VOU0lHTkVEX0lO VF9JTkRJQ0VTIildCisrCQlPR0xfRkVBVFVSRV9JRF9VTlNJR05FRF9JTlRfSU5ESUNFUywKKysJ CVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1JFQUQiKV0K KysJCU9HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1JFQUQsCisrCQlbQ0NvZGUgKGNuYW1l ID0gIkNPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9XUklURSIpXQorKwkJT0dMX0ZFQVRV UkVfSURfTUFQX0JVRkZFUl9GT1JfV1JJVEUsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVB VFVSRV9JRF9TV0FQX0JVRkZFUlNfRVZFTlQiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1NXQVBfQlVG RkVSU19FVkVOVCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1BSRVNFTlRB VElPTl9USU1FIildCisrCQlPR0xfRkVBVFVSRV9JRF9QUkVTRU5UQVRJT05fVElNRSwKKysJCVtD Q29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0ZFTkNFIildCisrCQlPR0xfRkVBVFVSRV9J RF9GRU5DRSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1RFWFRVUkVfUkci KV0KKysJCU9HTF9GRUFUVVJFX0lEX1RFWFRVUkVfUkcsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNP R0xfRkVBVFVSRV9JRF9CVUZGRVJfQUdFIildCisrCQlPR0xfRkVBVFVSRV9JRF9CVUZGRVJfQUdF LAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9FR0xfSU1BR0Vf RVhURVJOQUwiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1RFWFRVUkVfRUdMX0lNQUdFX0VYVEVSTkFM CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZp eCA9ICJDT0dMX0ZJTFRFUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIGVudW0g RmlsdGVyUmV0dXJuIHsKKyAJCUNPTlRJTlVFLAorIAkJUkVNT1ZFCisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZPR19NT0RF XyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCist CXB1YmxpYyBlbnVtIEZvZ01vZGUgeworLQkJTElORUFSLAorLQkJRVhQT05FTlRJQUwsCistCQlF WFBPTkVOVElBTF9TUVVBUkVECistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZSQU1FX0VWRU5UXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgZW51bSBGcmFt ZUV2ZW50IHsKK0BAIC04NjIsNiArNzMzLDE0IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCUZSQU1F QlVGRkVSX0VSUk9SX0FMTE9DQVRFOworIAkJcHVibGljIHN0YXRpYyB1aW50MzIgcXVhcmsgKCk7 CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZp eCA9ICJDT0dMX0dSQVBISUNTX1JFU0VUX1NUQVRVU18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KysJcHVibGljIGVudW0gR3JhcGhpY3NSZXNldFN0YXR1cyB7CisrCQlOT19FUlJPUiwKKysJCUdV SUxUWV9DT05URVhUX1JFU0VULAorKwkJSU5OT0NFTlRfQ09OVEVYVF9SRVNFVCwKKysJCVVOS05P V05fQ09OVEVYVF9SRVNFVCwKKysJCVBVUkdFRF9DT05URVhUX1JFU0VUCisrCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0lORElD RVNfVFlQRV9VTlNJR05FRF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIGVudW0g SW5kaWNlc1R5cGUgeworIAkJQllURSwKK0BAIC04ODgsMTIgKzc2Nyw2IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJCU5FQVJFU1RfTUlQTUFQX0xJTkVBUiwKKyAJCUxJTkVBUl9NSVBNQVBfTElORUFS CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZp eCA9ICJDT0dMX01BVEVSSUFMX0xBWUVSX1RZUEVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gTWF0ZXJpYWxMYXllclR5 cGUgeworLQkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX01BVEVSSUFMX0xBWUVSX1RZUEVfVEVYVFVS RSIpXQorLQkJTUFURVJJQUxfTEFZRVJfVFlQRV9URVhUVVJFCistCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX01BVEVSSUFMX1dS QVBfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorIAlwdWJsaWMgZW51bSBNYXRlcmlhbFdyYXBNb2RlIHsKK0BAIC05NzEsNiArODQ0LDgg QEAgbmFtZXNwYWNlIENvZ2wgeworIAkJREVQVEhfMTYsCisgCQlERVBUSF8zMiwKKyAJCURFUFRI XzI0X1NURU5DSUxfODsKKysJCXB1YmxpYyBpbnQgZ2V0X2J5dGVzX3Blcl9waXhlbCAoaW50IHBs YW5lKTsKKysJCXB1YmxpYyBpbnQgZ2V0X25fcGxhbmVzICgpOworIAkJcHVibGljIHVub3duZWQg c3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUkVBRF9QSVhFTFNfQ09MT1JfIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCitAQCAtMTA2NCw5ICs5MzksOSBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9 IDEuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIGRlbGVnYXRlIHZv aWQgRGVidWdPYmplY3RGb3JlYWNoVHlwZUNhbGxiYWNrIChDb2dsLkRlYnVnT2JqZWN0VHlwZUlu Zm8gaW5mbyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGlu c3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBkZWxlZ2F0ZSBi b29sIE1hdGVyaWFsTGF5ZXJDYWxsYmFjayAoQ29nbC5NYXRlcmlhbCBtYXRlcmlhbCwgaW50IGxh eWVyX2luZGV4KTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg aW5zdGFuY2VfcG9zID0gMS45KV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjAuMTAiKV0KKysJcHVi bGljIGRlbGVnYXRlIHZvaWQgRmVhdHVyZUNhbGxiYWNrIChDb2dsLkZlYXR1cmVJRCBmZWF0dXJl KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2Vf cG9zID0gMi45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIGRlbGVn YXRlIHZvaWQgT25zY3JlZW5EaXJ0eUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBD b2dsLk9uc2NyZWVuRGlydHlJbmZvIGluZm8pOworQEAgLTEwNzQsMTMgKzk0OSw5IEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAlwdWJsaWMgZGVsZWdh dGUgdm9pZCBPbnNjcmVlblJlc2l6ZUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBp bnQgd2lkdGgsIGludCBoZWlnaHQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBP bnNjcmVlblgxMU1hc2tDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMyIGV2 ZW50X21hc2spOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBp bnN0YW5jZV9wb3MgPSAyLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCXB1Ymxp YyBkZWxlZ2F0ZSBib29sIFBpcGVsaW5lTGF5ZXJDYWxsYmFjayAoQ29nbC5QaXBlbGluZSBwaXBl bGluZSwgaW50IGxheWVyX2luZGV4KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQg U3dhcEJ1ZmZlcnNOb3RpZnkgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkp XQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBUZXh0dXJlMkRFR0xJbWFnZUV4dGVybmFsQWxsb2Mg KENvZ2wuVGV4dHVyZTJEIHRleF8yZCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190YXJnZXQgPSBmYWxzZSldCisgCXB1 YmxpYyBkZWxlZ2F0ZSB2b2lkIFVzZXJEYXRhRGVzdHJveUNhbGxiYWNrICh2b2lkKiBkYXRhKTsK K0BAIC0xMDkyLDYgKzk2Myw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJcHVibGljIGNvbnN0IGlu dCBCR1JfQklUOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj bmFtZSA9ICJDT0dMX0RFUFRIX0JJVCIpXQorIAlwdWJsaWMgY29uc3QgaW50IERFUFRIX0JJVDsK KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09H TF9QSVhFTF9GT1JNQVRfTUFYX1BMQU5FUyIpXQorKwlwdWJsaWMgY29uc3QgaW50IFBJWEVMX0ZP Uk1BVF9NQVhfUExBTkVTOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjbmFtZSA9ICJDT0dMX1BSRU1VTFRfQklUIildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJF TVVMVF9CSVQ7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNu YW1lID0gIkNPR0xfU1RFTkNJTF9CSVQiKV0KK0BAIC0xMDk5LDE5ICs5NzIsOCBAQCBuYW1lc3Bh Y2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNu YW1lID0gIkNPR0xfVEVYVFVSRV9NQVhfV0FTVEUiKV0KKyAJcHVibGljIGNvbnN0IGludCBURVhU VVJFX01BWF9XQVNURTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBiZWdpbl9nbCAoKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCXB1YmxpYyBz dGF0aWMgYm9vbCBibGl0X2ZyYW1lYnVmZmVyIChDb2dsLkZyYW1lYnVmZmVyIHNyYywgQ29nbC5G cmFtZWJ1ZmZlciBkZXN0LCBpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0 X3ksIGludCB3aWR0aCwgaW50IGhlaWdodCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgYm9v bCBjaGVja19leHRlbnNpb24gKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBjbGVhciAoQ29nbC5Db2xvciBjb2xvciwgdWxvbmcgYnVmZmVycyk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgY2x1 dHRlcl9jaGVja19leHRlbnNpb25fQ0xVVFRFUiAoc3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJcHVibGljIHN0 YXRpYyBib29sIGNsdXR0ZXJfd2luc3lzX2hhc19mZWF0dXJlX0NMVVRURVIgKENvZ2wuV2luc3lz RmVhdHVyZSBmZWF0dXJlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KK0BAIC0xMTI5LDU3ICs5OTEsMzgg QEAgbmFtZXNwYWNlIENvZ2wgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCXB1Ymxp YyBzdGF0aWMgdm9pZCBkZWJ1Z19vYmplY3RfcHJpbnRfaW5zdGFuY2VzICgpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIGRpc2FibGVfZm9nICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGVuZF9nbCAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1 YmxpYyBzdGF0aWMgYm9vbCBmZWF0dXJlc19hdmFpbGFibGUgKENvZ2wuRmVhdHVyZUZsYWdzIGZl YXR1cmVzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGZsdXNoICgp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjguMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxv YXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpf ZmFyKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyB2b2lk IGZvcmVhY2hfZmVhdHVyZSAoQ29nbC5Db250ZXh0IGNvbnRleHQsIENvZ2wuRmVhdHVyZUNhbGxi YWNrIGNhbGxiYWNrKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2IildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVk ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgZ2V0X2JpdG1hc2tzIChvdXQgaW50IHJlZCwgb3V0IGludCBncmVl biwgb3V0IGludCBibHVlLCBvdXQgaW50IGFscGhhKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTQiKV0KKysJcHVibGljIHN0YXRpYyBpbnQ2NCBnZXRfY2xvY2tfdGltZSAoQ29nbC5Db250ZXh0 IGNvbnRleHQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K KyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKyAJcHVibGljIHN0YXRpYyBib29sIGdldF9kZXB0aF90ZXN0X2VuYWJsZWQgKCk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdl dF9kcmF3X2ZyYW1lYnVmZmVyICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkZlYXR1 cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9tb2RlbHZp ZXdfbWF0cml4ICgpOworKwlwdWJsaWMgc3RhdGljIENvZ2wuR3JhcGhpY3NSZXNldFN0YXR1cyBn ZXRfZ3JhcGhpY3NfcmVzZXRfc3RhdHVzIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor IAlwdWJsaWMgc3RhdGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCXB1YmxpYyBzdGF0 aWMgR0xpYi5DYWxsYmFjayBnZXRfcHJvY19hZGRyZXNzIChzdHJpbmcgcyk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENv Z2wuTWF0cml4IGdldF9wcm9qZWN0aW9uX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCogZ2V0X3NvdXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfdmlld3BvcnQgKFtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBvdXQgZmxvYXQgdls0XSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIu VHlwZSBndHlwZV9tYXRyaXhfZ2V0X3R5cGUgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJs aWMgc3RhdGljIGJvb2wgaGFzX2ZlYXR1cmUgKENvZ2wuQ29udGV4dCBjb250ZXh0LCBDb2dsLkZl YXR1cmVJRCBmZWF0dXJlKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9v bCBpc19jb250ZXh0ICh2b2lkKiBvYmplY3QpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGlj IHN0YXRpYyBib29sIGlzX2ZyYW1lYnVmZmVyICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KK0BAIC0xMTkzLDUzICsxMDM2LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgaXNfdGV4dHVyZV8yZF9z bGljZWQgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfdmVy dGV4X2J1ZmZlcl9pbmRpY2VzIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorIAlwdWJsaWMgc3RhdGljIGJvb2wgbWF0cml4X2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIG9ydGhvIChmbG9hdCBsZWZ0LCBmbG9hdCBy aWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZvdnksIGZsb2F0IGFzcGVjdCwgZmxvYXQg el9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBwb2x5Z29uIChDb2dsLlRleHR1cmVWZXJ0ZXggdmVydGljZXMsIHVpbnQgbl92ZXJ0aWNl cywgYm9vbCB1c2VfY29sb3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvcF9tYXRyaXggKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX3NvdXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX21h dHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX3NvdXJjZSAodm9pZCog bWF0ZXJpYWwpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZSAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZs b2F0IHhfMiwgZmxvYXQgeV8yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHJlY3RhbmdsZV93aXRoX211bHRpdGV4dHVyZV9jb29yZHMgKGZsb2F0IHgxLCBmbG9hdCB5 MSwgZmxvYXQgeDIsIGZsb2F0IHkyLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxv YXRbXSB0ZXhfY29vcmRzLCBpbnQgdGV4X2Nvb3Jkc19sZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlX3dpdGhfdGV4dHVyZV9jb29yZHMgKGZsb2F0 IHgxLCBmbG9hdCB5MSwgZmxvYXQgeDIsIGZsb2F0IHkyLCBmbG9hdCB0eDEsIGZsb2F0IHR5MSwg ZmxvYXQgdHgyLCBmbG9hdCB0eTIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgcmVjdGFuZ2xlcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10g dmVydHMsIHVpbnQgbl9yZWN0cyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44LjYiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHJlY3RhbmdsZXNfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldIGZsb2F0W10gdmVydHMsIHVpbnQgbl9yZWN0cyk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg cm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNl dF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKGJvb2wgc2V0dGluZyk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorQEAgLTEyNDcsNTMgKzEwNDYsMTEgQEAg bmFtZXNwYWNlIENvZ2wgeworIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2RlcHRoX3Rlc3RfZW5h YmxlZCAoYm9vbCBzZXR0aW5nKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZm9nIChDb2dsLkNvbG9yIGZv Z19jb2xvciwgQ29nbC5Gb2dNb2RlIG1vZGUsIGZsb2F0IGRlbnNpdHksIGZsb2F0IHpfbmVhciwg ZmxvYXQgel9mYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9tb2RlbHZpZXdfbWF0cml4IChDb2dsLk1h dHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9wcm9qZWN0aW9uX21hdHJpeCAoQ29nbC5N YXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlICh2 b2lkKiBtYXRlcmlhbCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV9j b2xvciAoQ29nbC5Db2xvciBjb2xvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0 X3NvdXJjZV9jb2xvcjRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9h dCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV9jb2xvcjR1 YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2VfdGV4dHVyZSAoQ29nbC5UZXh0dXJl IHRleHR1cmUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIs IHNpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3ZpZXdwb3J0IChpbnQg eCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX2Nv bXBpbGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHN0cmluZyBzaGFkZXJfZ2V0X2lu Zm9fbG9nIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyBDb2dsLlNoYWRlclR5cGUgc2hh ZGVyX2dldF90eXBlIChDb2dsLkhhbmRsZSBoYW5kbGUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIHNoYWRlcl9p c19jb21waWxlZCAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhh bmRsZSBzaGFkZXJfcmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNoYWRl cl9zb3VyY2UgKENvZ2wuSGFuZGxlIHNoYWRlciwgc3RyaW5nIHNvdXJjZSk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgc2hhZGVyX3VucmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0 YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJp dG1hcCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxf Zm9ybWF0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCitA QCAtMTMwNiw1OSArMTA2Myw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0K KyAJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfd2l0aF9zaXplICh1aW50 IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxG b3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFu c2Zvcm0gKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNsYXRlIChmbG9h dCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2FkZCAo Q29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUsIHVpbnQ4IG5fY29tcG9u ZW50cywgQ29nbC5BdHRyaWJ1dGVUeXBlIHR5cGUsIGJvb2wgbm9ybWFsaXplZCwgdWludDE2IHN0 cmlkZSwgdm9pZCogcG9pbnRlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kZWxldGUg KENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCB2ZXJ0ZXhfYnVmZmVyX2Rpc2FibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJp YnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXcgKENvZ2wuSGFuZGxl IGhhbmRsZSwgQ29nbC5WZXJ0aWNlc01vZGUgbW9kZSwgaW50IGZpcnN0LCBpbnQgY291bnQpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZHJhd19lbGVtZW50cyAoQ29nbC5IYW5kbGUgaGFu ZGxlLCBDb2dsLlZlcnRpY2VzTW9kZSBtb2RlLCBDb2dsLkhhbmRsZSBpbmRpY2VzLCBpbnQgbWlu X2luZGV4LCBpbnQgbWF4X2luZGV4LCBpbnQgaW5kaWNlc19vZmZzZXQsIGludCBjb3VudCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9lbmFibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3Ry aW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdWludCB2ZXJ0ZXhfYnVmZmVyX2dldF9uX3Zl cnRpY2VzIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxl IHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRfZm9yX3F1YWRzICh1aW50IG5faW5kaWNlcyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIENvZ2wuSW5kaWNlc1R5cGUgdmVydGV4X2J1ZmZlcl9pbmRpY2VzX2dldF90eXBlIChD b2dsLkhhbmRsZSBpbmRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhf YnVmZmVyX25ldyAodWludCBuX3ZlcnRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxl IHZlcnRleF9idWZmZXJfcmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZl cnRleF9idWZmZXJfc3VibWl0IChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVy dGV4X2J1ZmZlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjguMiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgdmlld3BvcnQgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdWlu dDMyIHgxMV9vbnNjcmVlbl9nZXRfdmlzdWFsX3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbik7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3JlZW5f Z2V0X3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgeDExX29uc2NyZWVuX3NldF9mb3JlaWduX3dpbmRvd194 aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIHVpbnQzMiB4aWQsIFtDQ29kZSAoc2NvcGUgPSAi YXN5bmMiKV0gQ29nbC5PbnNjcmVlblgxMU1hc2tDYWxsYmFjayB1cGRhdGUpOworIH0KK2RpZmYg LS1naXQgdmFwaS9tdXR0ZXItY29nbC00LWN1c3RvbS52YWxhIHZhcGkvbXV0dGVyLWNvZ2wtNy1j dXN0b20udmFsYQorc2ltaWxhcml0eSBpbmRleCA4MSUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVy LWNvZ2wtNC1jdXN0b20udmFsYQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNvZ2wtNy1jdXN0b20u dmFsYQoraW5kZXggMjU1MTg4NWEuLmM0ZDRiOTNhIDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNv Z2wtNC1jdXN0b20udmFsYQorKysrIHZhcGkvbXV0dGVyLWNvZ2wtNy1jdXN0b20udmFsYQorQEAg LTEsMTAgKzEsNCBAQAorIG5hbWVzcGFjZSBDb2dsIHsKKy0JW0NvbXBhY3RdCistCVtDQ29kZSAo Y25hbWUgPSAiQ29nbEhhbmRsZSIpXQorLQlwdWJsaWMgY2xhc3MgQml0bWFwOiBIYW5kbGUgewor LQkJcHVibGljIHN0YXRpYyBCaXRtYXAgbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0 aHJvd3MgR0xpYi5FcnJvcjsKKy0JfQorLQorIAlbQ29tcGFjdF0KKyAJW0NDb2RlIChjbmFtZSA9 ICJDb2dsSGFuZGxlIildCisgCXB1YmxpYyBjbGFzcyBCdWZmZXI6IEhhbmRsZSB7CitAQCAtNDIs NyArMzYsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBpc192ZXJ0ZXhfYnVm ZmVyICgpOworIAl9CisgCistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNvcHlfZnVuY3Rpb24gPSAiY29nbF9wYXRoX2NvcHkiKV0gCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiY29nbF9wYXRoX2Nv cHkiKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBQYXRoIHsKKyAJCXB1YmxpYyBzdGF0 aWMgdm9pZCBAbmV3ICgpOworQEAgLTgyLDE4ICs3Niw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ CXB1YmxpYyB2b2lkIHNvdXJjZSAoc3RyaW5nIHNvdXJjZSk7CisgCX0KKyAKKy0JW0NvbXBhY3Rd CistCVtDQ29kZSAoY25hbWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9mdW5jdGlvbiA9ICJjb2dsX3Rl eHR1cmVfcmVmIiwgdW5yZWZfZnVuY3Rpb24gPSAiY29nbF90ZXh0dXJlX3VucmVmIildCistCXB1 YmxpYyBjbGFzcyBUZXh0dXJlOiBIYW5kbGUgeworLQkJcHVibGljIENvZ2wuUGl4ZWxGb3JtYXQg Z2V0X2Zvcm1hdCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9yb3dzdHJpZGUgKCk7CistCQlwdWJs aWMgVGV4dHVyZS5mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYm1wX2hhbmRsZSwgQ29nbC5UZXh0 dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCXB1 YmxpYyBUZXh0dXJlLmZyb21fZGF0YSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4 dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1h dCBpbnRlcm5hbF9mb3JtYXQsIHVpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0gdWNoYXJbXSBkYXRhKTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZmlsZSAoc3Ry aW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBp bnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIFRleHR1cmUuZnJv bV9zdWJfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIGZ1bGxfdGV4dHVyZSwgaW50IHN1Yl94LCBpbnQg c3ViX3ksIGludCBzdWJfd2lkdGgsIGludCBzdWJfaGVpZ2h0KTsKKy0JCXB1YmxpYyBUZXh0dXJl LndpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZs YWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCX0KKy0KKyAJW0NvbXBh Y3RdCisgCVtDQ29kZSAoY25hbWUgPSAiQ29nbEhhbmRsZSIsIHJlZl9mdW5jdGlvbiA9ICJjb2ds X3ZlcnRleF9idWZmZXJfcmVmIiwgdW5yZWZfZnVuY3Rpb24gPSAiY29nbF92ZXJ0ZXhfYnVmZmVy X3VucmVmIildCisgCXB1YmxpYyBjbGFzcyBWZXJ0ZXhCdWZmZXI6IEhhbmRsZSB7CitkaWZmIC0t Z2l0IHZhcGkvbXV0dGVyLWNvZ2wtNS5kZXBzIHZhcGkvbXV0dGVyLWNvZ2wtNy5kZXBzCitzaW1p bGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNvZ2wtNS5kZXBzCity ZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC03LmRlcHMKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXIt Y29nbC00LnZhcGkgdmFwaS9tdXR0ZXItY29nbC03LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggNTkl CityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTQudmFwaQorcmVuYW1lIHRvIHZhcGkvbXV0 dGVyLWNvZ2wtNy52YXBpCitpbmRleCA1ZGU4ZjQ0Ny4uNjIwYzIzMTcgMTAwNjQ0CistLS0gdmFw aS9tdXR0ZXItY29nbC00LnZhcGkKKysrKyB2YXBpL211dHRlci1jb2dsLTcudmFwaQorQEAgLTEs MTIgKzEsMTMgQEAKKy0vKiBtdXR0ZXItY29nbC00LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4s IGRvIG5vdCBtb2RpZnkuICovCisrLyogbXV0dGVyLWNvZ2wtNy52YXBpIGdlbmVyYXRlZCBieSB2 YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworIAorLVtDQ29kZSAoY3ByZWZpeCA9ICJDb2dsIiwg Z2lyX25hbWVzcGFjZSA9ICJDb2dsIiwgZ2lyX3ZlcnNpb24gPSAiNCIsIGxvd2VyX2Nhc2VfY3By ZWZpeCA9ICJjb2dsXyIpXQorK1tDQ29kZSAoY3ByZWZpeCA9ICJDb2dsIiwgZ2lyX25hbWVzcGFj ZSA9ICJDb2dsIiwgZ2lyX3ZlcnNpb24gPSAiNyIsIGxvd2VyX2Nhc2VfY3ByZWZpeCA9ICJjb2ds XyIpXQorIG5hbWVzcGFjZSBDb2dsIHsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIsIHR5cGVfaWQgPSAiY29nbF9iaXRtYXBf Z2V0X2d0eXBlICgpIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgQml0bWFwIDogQ29n bC5IYW5kbGUgeworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0 eXBlX2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgQml0 bWFwIDogQ29nbC5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorKwkJcHJvdGVjdGVkIEJpdG1hcCAoKTsKKyAJCXB1YmxpYyBzdGF0aWMgdWludDMy IGVycm9yX3F1YXJrICgpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UsIHR5cGUgPSAiQ29nbEJpdG1hcCoiKV0KKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBC aXRtYXAuZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBHTGliLkVycm9yOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC0xNiwxMCArMTcsOSBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGludCBnZXRf cm93c3RyaWRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0 YXRpYyBDb2dsLkJvb2wgZ2V0X3NpemVfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIG91dCBp bnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKysJCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfc2l6 ZV9mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgb3V0IGludCB3aWR0aCwgb3V0IGludCBoZWln aHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X3dp ZHRoICgpOworLQkJcHVibGljIHN0YXRpYyBDb2dsLkJpdG1hcCBuZXdfZnJvbV9maWxlIChzdHJp bmcgZmlsZW5hbWUpIHRocm93cyBHTGliLkVycm9yOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiKV0KKyAJW0NvbXBh Y3RdCitAQCAtMjgsMTUgKzI4LDI4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBib29s IHNldF9kYXRhIChzaXplX3Qgb2Zmc2V0LCBbQ0NvZGUgKGFycmF5X2xlbmd0aF90eXBlID0gInNp emVfdCIpXSB1aW50OFtdIGRhdGEpOworIAkJcHVibGljIHZvaWQgdW5tYXAgKCk7CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgRXVsZXIgeworKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfY29udGV4dF9n ZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIENvbnRleHQgOiBDb2dsLk9iamVjdCB7Cisr CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQg Q29udGV4dCAoKTsKKysJCXB1YmxpYyBib29sIGlzX2hhcmR3YXJlX2FjY2VsZXJhdGVkICgpOwor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVu Y3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0 eXBlX2lkID0gImNvZ2xfZnJhbWVfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKyAJW0NvbXBhY3Rd CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBjbGFzcyBGcmFtZUNsb3N1 cmUgeworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5 cGVfaWQgPSAiY29nbF9mcmFtZV9pbmZvX2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3Mg RnJhbWVJbmZvIDogQ29nbC5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIEZyYW1lSW5mbyAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE0IildCisrCQlwdWJsaWMgaW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwkJcHVibGljIGludDY0IGdldF9wcmVzZW50 YXRpb25fdGltZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCQlwdWJsaWMg ZmxvYXQgZ2V0X3JlZnJlc2hfcmF0ZSAoKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCByZWZfZnVuY3Rpb24gPSAiY29nbF9oYW5kbGVfcmVmIiwgdW5y ZWZfZnVuY3Rpb24gPSAiY29nbF9oYW5kbGVfdW5yZWYiKV0KKyAJW0NvbXBhY3RdCisgCXB1Ymxp YyBjbGFzcyBIYW5kbGUgeworQEAgLTY1LDY1ICs3OCwyMCBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGlj IE1hdGVyaWFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFs IGNvcHkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZm9yZWFjaF9sYXll ciAoQ29nbC5NYXRlcmlhbExheWVyQ2FsbGJhY2sgY2FsbGJhY2spOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZm dXNlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZW1pc3Npb24gKENv Z2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLkJv b2wgZ2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4 KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdl dF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42Iild CistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcyAo aW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5NYXRl cmlhbFdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4KTsKKy0J CXB1YmxpYyB1bm93bmVkIEdMaWIuTGlzdDxDb2dsLk1hdGVyaWFsTGF5ZXI+IGdldF9sYXllcnMg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGludCBnZXRfbl9sYXllcnMgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9wb2ludF9zaXplICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfc2hpbmluZXNzICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVj dWxhcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUg Z2V0X3VzZXJfcHJvZ3JhbSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBDb2dsLkhhbmRsZSBAcmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJ cHVibGljIHZvaWQgcmVtb3ZlX2xheWVyIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2dsLk1hdGVy aWFsQWxwaGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7CisgCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVu dCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnRfYW5kX2Rp ZmZ1c2UgKENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBD b2dsLkJvb2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJv cjsKKysJCXB1YmxpYyBib29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dz IEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsZW5k X2NvbnN0YW50IChDb2dsLkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcjRmIChmbG9hdCByZWQsIGZsb2F0IGdy ZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVl LCB1aW50OCBhbHBoYSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Rp ZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXIgKGludCBsYXllcl9pbmRleCwgQ29nbC5IYW5k bGUgdGV4dHVyZSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRf bGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJv d3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBib29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5 ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl9jb21iaW5lX2NvbnN0YW50IChp bnQgbGF5ZXJfaW5kZXgsIENvZ2wuQ29sb3IgY29uc3RhbnQpOworIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KK0BAIC0xMzEsNDMgKzk5 LDE1IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbWF0 cml4IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0cml4IG1hdHJpeCk7CisgCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19l bmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVy cm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21v ZGUgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxh eWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgs IENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRl cmlhbFdyYXBNb2RlIG1vZGUpOworKwkJcHVibGljIGJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0 ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBib29sIGVuYWJsZSkgdGhyb3dzIEdM aWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3BvaW50X3Np emUgKGZsb2F0IHBvaW50X3NpemUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9zaGluaW5lc3MgKGZsb2F0IHNoaW5pbmVzcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfdXNlcl9wcm9ncmFtIChDb2dsLkhhbmRsZSBw cm9ncmFtKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB1bnJlZiAo Q29nbC5IYW5kbGUgbWF0ZXJpYWwpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJcHVi bGljIGNsYXNzIE1hdGVyaWFsTGF5ZXIgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsRmls dGVyIGdldF9tYWdfZmlsdGVyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsRmlsdGVy IGdldF9taW5fZmlsdGVyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdl dF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsTGF5ZXJUeXBlIGdldF90 eXBlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1v ZGUgZ2V0X3dyYXBfbW9kZV9wICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2ds Lk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV9zICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV90ICgpOworIAl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAi Y29nbF9vYmplY3RfZ2V0X2d0eXBlICgpIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBPYmpl Y3QgeworQEAgLTE3OCwxMyArMTE4LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlwdWJsaWMgY2xh c3MgT2Zmc2NyZWVuIDogQ29nbC5PYmplY3QsIENvZ2wuRnJhbWVidWZmZXIgeworIAkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIE9mZnNjcmVl biAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCogQHJlZiAodm9pZCogb2Zmc2NyZWVuKTsK KyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCQlwdWJs aWMgT2Zmc2NyZWVuLnRvX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCB1bnJlZiAodm9pZCogb2Zmc2NyZWVuKTsKKyAJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1YmxpYyBPZmZzY3JlZW4ud2l0aF90 ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CisgCX0KK0BAIC0xOTQsMTcgKzEzMCwxNiBA QCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwcm90ZWN0ZWQgT25zY3JlZW4gKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIENvZ2wuT25zY3JlZW5EaXJ0eUNsb3N1cmUg YWRkX2RpcnR5X2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBD b2dsLk9uc2NyZWVuRGlydHlDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ryb3lD YWxsYmFjaz8gZGVzdHJveSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwkJcHVi bGljIENvZ2wuRnJhbWVDbG9zdXJlIGFkZF9mcmFtZV9jYWxsYmFjayAoW0NDb2RlIChkZWxlZ2F0 ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5GcmFtZUNhbGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVz ZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKyAJCXB1YmxpYyBDb2dsLk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBhZGRfcmVzaXplX2Nh bGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2dsLk9uc2NyZWVu UmVzaXplQ2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRl c3Ryb3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdWludCBhZGRfc3dhcF9idWZm ZXJzX2NhbGxiYWNrIChDb2dsLlN3YXBCdWZmZXJzTm90aWZ5IGNhbGxiYWNrKTsKKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCBjbHV0dGVyX2JhY2tlbmRfc2V0X3NpemVfQ0xVVFRFUiAoaW50IHdpZHRo LCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMg aW50IGdldF9idWZmZXJfYWdlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJ CXB1YmxpYyBpbnQ2NCBnZXRfZnJhbWVfY291bnRlciAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3Jlc2l6YWJsZSAoKTsKKysJCXB1Ymxp YyBib29sIGdldF9yZXNpemFibGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisg CQlwdWJsaWMgdm9pZCBoaWRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KK0BA IC0yMTMsMTggKzE0OCwxNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCByZW1v dmVfZnJhbWVfY2FsbGJhY2sgKENvZ2wuRnJhbWVDbG9zdXJlIGNsb3N1cmUpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgcmVtb3ZlX3Jlc2l6ZV9jYWxsYmFj ayAoQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKHVpbnQgaWQp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Jlc2l6 YWJsZSAoQ29nbC5Cb29sIHJlc2l6YWJsZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfcmVzaXphYmxl IChib29sIHJlc2l6YWJsZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgdm9pZCBzaG93ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyB2b2lkIHN3YXBfYnVmZmVycyAoKTsKKysJCXB1YmxpYyB2b2lkIHN3YXBfYnVmZmVycyAoQ29n bC5GcmFtZUluZm8gZnJhbWVfaW5mbyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQor LQkJcHVibGljIHZvaWQgc3dhcF9idWZmZXJzX3dpdGhfZGFtYWdlIChpbnQgcmVjdGFuZ2xlcywg aW50IG5fcmVjdGFuZ2xlcyk7CisrCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZlcnNfd2l0aF9kYW1h Z2UgKGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVzLCBDb2dsLkZyYW1lSW5mbyBpbmZv KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzd2FwX3Jl Z2lvbiAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMpOworKwkJcHVibGljIHZvaWQg c3dhcF9yZWdpb24gKGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVzLCBDb2dsLkZyYW1l SW5mbyBpbmZvKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19i b3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjb2dsX29uc2NyZWVuX2RpcnR5X2Nsb3N1cmVfZ2V0X2d0 eXBlICgpIildCisgCVtDb21wYWN0XQorQEAgLTI0NCw3ICsxNzcsOCBAQCBuYW1lc3BhY2UgQ29n bCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQg PSAiY29nbF9waXBlbGluZV9nZXRfZ3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFBpcGVsaW5l IDogQ29nbC5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIFBpcGVsaW5lICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorKwkJcHVibGljIFBpcGVsaW5lIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZSBjb3B5ICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorQEAgLTI1NCw0NCArMTg4LDMwIEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBmbG9h dCBnZXRfYWxwaGFfdGVzdF9yZWZlcmVuY2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLkNvbG9yIGdldF9jb2xv ciAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9y TWFzayBnZXRfY29sb3JfbWFzayAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJ CXB1YmxpYyBDb2dsLlBpcGVsaW5lQ3VsbEZhY2VNb2RlIGdldF9jdWxsX2ZhY2VfbW9kZSAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZmdXNl IChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLldpbmRpbmcgZ2V0X2Zyb250X2Zh Y2Vfd2luZGluZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg Q29nbC5QaXBlbGluZUZpbHRlciBnZXRfbGF5ZXJfbWFnX2ZpbHRlciAoaW50IGxheWVyX2luZGV4 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGlu ZUZpbHRlciBnZXRfbGF5ZXJfbWluX2ZpbHRlciAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2xheWVyX3BvaW50 X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4KTsKKysJCXB1YmxpYyBib29s IGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgQ29nbC5U ZXh0dXJlIGdldF9sYXllcl90ZXh0dXJlIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5 ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS42IildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21v ZGVfcyAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJ CXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQg bGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIGlu dCBnZXRfbl9sYXllcnMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgQ29nbC5Cb29sIGdldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKCk7CisrCQlwdWJsaWMgYm9v bCBnZXRfcGVyX3ZlcnRleF9wb2ludF9zaXplICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorIAkJcHVibGljIGZsb2F0IGdldF9wb2ludF9zaXplICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfc3BlY3VsYXIgKENvZ2wu Q29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGlj IGludCBnZXRfdW5pZm9ybV9sb2NhdGlvbiAoc3RyaW5nIHVuaWZvcm1fbmFtZSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRf dXNlcl9wcm9ncmFtICgpOworQEAgLTMwMCwxMSArMjIwLDcgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2FscGhhX3Rl c3RfZnVuY3Rpb24gKENvZ2wuUGlwZWxpbmVBbHBoYUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQgYWxw aGFfcmVmZXJlbmNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnRfYW5kX2RpZmZ1c2UgKENvZ2wu Q29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENv Z2wuQm9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9y OworKwkJcHVibGljIGJvb2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9ibGVuZF9jb25zdGFudCAoQ29nbC5Db2xvciBjb25zdGFudF9jb2xvcik7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCitAQCAtMzEzLDQ2ICsyMjksMzUgQEAgbmFtZXNwYWNlIENv Z2wgeworIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4s IGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvcjR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWlu dDggYmx1ZSwgdWludDggYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9yX21hc2spOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2N1bGxfZmFj ZV9tb2RlIChDb2dsLlBpcGVsaW5lQ3VsbEZhY2VNb2RlIGN1bGxfZmFjZV9tb2RlKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNlIChDb2ds LkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9mcm9udF9mYWNlX3dpbmRpbmcgKENv Z2wuV2luZGluZyBmcm9udF93aW5kaW5nKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwg c3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBz ZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0 aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9sYXllcl9jb21iaW5lX2NvbnN0YW50IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wu Q29sb3IgY29uc3RhbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9sYXllcl9maWx0ZXJzIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVG aWx0ZXIgbWluX2ZpbHRlciwgQ29nbC5QaXBlbGluZUZpbHRlciBtYWdfZmlsdGVyKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbWF0cml4 IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0cml4IG1hdHJpeCk7CisrCQlwdWJsaWMgdm9pZCBz ZXRfbGF5ZXJfbWF4X21pcG1hcF9sZXZlbCAoaW50IGxheWVyLCBpbnQgbWF4X2xldmVsKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfbnVs bF90ZXh0dXJlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuVGV4dHVyZVR5cGUgdGV4dHVyZV90eXBl KTsKKysJCXB1YmxpYyB2b2lkIHNldF9sYXllcl9udWxsX3RleHR1cmUgKGludCBsYXllcl9pbmRl eCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNl dF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCwgQ29n bC5Cb29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRfbGF5 ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIGJvb2wgZW5h YmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl90ZXh0dXJl IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGUgKGludCBs YXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQg bGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcyAoaW50 IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGlu dCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcGVyX3ZlcnRleF9wb2lu dF9zaXplIChDb2dsLkJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBi b29sIHNldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKGJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5F cnJvcjsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9w b2ludF9zaXplIChmbG9hdCBwb2ludF9zaXplKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zaGluaW5lc3MgKGZsb2F0IHNoaW5pbmVzcyk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENv Z2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X3VuaWZvcm1fMWYgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBmbG9hdCB2YWx1 ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdW5p Zm9ybV8xaSAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGludCB2YWx1ZSk7CitAQCAtMzYxLDcgKzI2 Niw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF91bmlmb3JtX2ludCAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGludCBu X2NvbXBvbmVudHMsIGludCBjb3VudCwgaW50IHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtX21hdHJpeCAoaW50IHVuaWZvcm1f bG9jYXRpb24sIGludCBkaW1lbnNpb25zLCBpbnQgY291bnQsIENvZ2wuQm9vbCB0cmFuc3Bvc2Us IGZsb2F0IHZhbHVlKTsKKysJCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtX21hdHJpeCAoaW50IHVu aWZvcm1fbG9jYXRpb24sIGludCBkaW1lbnNpb25zLCBpbnQgY291bnQsIGJvb2wgdHJhbnNwb3Nl LCBmbG9hdCB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMg dm9pZCBzZXRfdXNlcl9wcm9ncmFtIChDb2dsLkhhbmRsZSBwcm9ncmFtKTsKKyAJfQorQEAgLTM4 OCw3ICsyOTMsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0 XQorLQlwdWJsaWMgY2xhc3MgUXVhdGVybmlvbiB7CisrCXB1YmxpYyBjbGFzcyBTY2Fub3V0IHsK KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9 ICJDb2dsSGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfc2hhZGVyX3JlZiIsIHVucmVmX2Z1 bmN0aW9uID0gImNvZ2xfc2hhZGVyX3VucmVmIildCisgCVtDb21wYWN0XQorQEAgLTQwMSw0OCAr MzA2LDIzIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBib29sIGlzX2NvbXBpbGVkICgp OworIAkJcHVibGljIHZvaWQgc291cmNlIChzdHJpbmcgc291cmNlKTsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDb2dsSGFuZGxlIiwg cmVmX2Z1bmN0aW9uID0gImNvZ2xfdGV4dHVyZV9yZWYiLCB0eXBlX2lkID0gImNvZ2xfdGV4dHVy ZV9nZXRfZ3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2dsX3RleHR1cmVfdW5yZWYiKV0K Ky0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBUZXh0dXJlIDogQ29nbC5IYW5kbGUgeworLQkJ cHVibGljIENvZ2wuQm9vbCBhbGxvY2F0ZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCXB1Ymxp YyBzdGF0aWMgdWludDMyIGVycm9yX3F1YXJrICgpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9i aXRtYXAgKENvZ2wuQml0bWFwIGJtcF9oYW5kbGUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBD b2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9t X2RhdGEgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywg Q29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0 LCB1aW50IHJvd3N0cmlkZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVjaGFyW10g ZGF0YSk7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgQ29n bC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0 aHJvd3MgR0xpYi5FcnJvcjsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fc3ViX3RleHR1cmUgKENv Z2wuVGV4dHVyZSBmdWxsX3RleHR1cmUsIGludCBzdWJfeCwgaW50IHN1Yl95LCBpbnQgc3ViX3dp ZHRoLCBpbnQgc3ViX2hlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJ cHVibGljIENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgZ2V0X2NvbXBvbmVudHMgKCk7CistCQlwdWJs aWMgaW50IGdldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUs IHVpbnQ4IGRhdGEpOworLQkJcHVibGljIENvZ2wuUGl4ZWxGb3JtYXQgZ2V0X2Zvcm1hdCAoKTsK Ky0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2dsX3RleHR1cmUgKG91dCB1aW50IG91dF9nbF9oYW5k bGUsIG91dCB1aW50IG91dF9nbF90YXJnZXQpOworLQkJcHVibGljIHVpbnQgZ2V0X2hlaWdodCAo KTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21heF93YXN0ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE4IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9wcmVtdWx0aXBsaWVkICgpOworLQkJ cHVibGljIHVpbnQgZ2V0X3Jvd3N0cmlkZSAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF93aWR0aCAo KTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgaXNfc2xpY2VkICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2JpdG1hcCAoQ29nbC5CaXRt YXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRl cm5hbF9mb3JtYXQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5U ZXh0dXJlIG5ld19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0dXJl RmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGlu dGVybmFsX2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAu OCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZmlsZSAoc3RyaW5n IGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRl cm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2ZvcmVpZ24gKHVpbnQgZ2xfaGFuZGxl LCB1aW50IGdsX3RhcmdldCwgdWludCB3aWR0aCwgdWludCBoZWlnaHQsIHVpbnQgeF9wb3Rfd2Fz dGUsIHVpbnQgeV9wb3Rfd2FzdGUsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0KTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2Ug PSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX3N1Yl90ZXh0dXJlIChp bnQgc3ViX3gsIGludCBzdWJfeSwgaW50IHN1Yl93aWR0aCwgaW50IHN1Yl9oZWlnaHQpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBz aW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld193aXRoX3Np emUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29n bC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb21wb25lbnRzIChDb2dsLlRleHR1cmVDb21wb25l bnRzIGNvbXBvbmVudHMpOworLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfZGF0YSAoQ29nbC5QaXhl bEZvcm1hdCBmb3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEsIGludCBsZXZlbCkgdGhy b3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X3ByZW11bHRpcGxpZWQgKENvZ2wuQm9vbCBwcmVtdWx0aXBsaWVkKTsKKy0JCXB1 YmxpYyBDb2dsLkJvb2wgc2V0X3JlZ2lvbiAoaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3Rf eCwgaW50IGRzdF95LCB1aW50IGRzdF93aWR0aCwgdWludCBkc3RfaGVpZ2h0LCBpbnQgd2lkdGgs IGludCBoZWlnaHQsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgdWlu dDggZGF0YSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5C b29sIHNldF9yZWdpb25fZnJvbV9iaXRtYXAgKGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0 X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdodCwgQ29nbC5CaXRt YXAgYml0bWFwKTsKKy0JCXB1YmxpYyBUZXh0dXJlLndpdGhfc2l6ZSAodWludCB3aWR0aCwgdWlu dCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVy bmFsX2Zvcm1hdCk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGxvd2VyX2Nhc2VfY3N1ZmZpeCA9ICJ0ZXh0dXJlXzJkIiwgdHlwZV9pZCA9ICJjb2dsX3RleHR1 cmVfMmRfZ2V0X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBUZXh0dXJlMkQgOiBDb2dsLk9i amVjdCwgQ29nbC5UZXh0dXJlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKysJCXByb3RlY3RlZCBUZXh0dXJlMkQgKCk7CisrCQlwdWJsaWMgdm9pZCBlZ2xf aW1hZ2VfZXh0ZXJuYWxfYWxsb2NfZmluaXNoICh2b2lkKiB1c2VyX2RhdGEsIEdMaWIuRGVzdHJv eU5vdGlmeSBkZXN0cm95KTsKKysJCXB1YmxpYyB2b2lkIGVnbF9pbWFnZV9leHRlcm5hbF9iaW5k ICgpOworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorKwkJcHVibGljIFRleHR1cmUyRC5mcm9tX2JpdG1hcCAo Q29nbC5CaXRtYXAgYml0bWFwKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBsb3dlcl9jYXNlX2NzdWZmaXggPSAidGV4dHVyZV8yZF9zbGljZWQiLCB0 eXBlX2lkID0gImNvZ2xfdGV4dHVyZV8yZF9zbGljZWRfZ2V0X2d0eXBlICgpIildCisrCXB1Ymxp YyBjbGFzcyBUZXh0dXJlMkRTbGljZWQgOiBDb2dsLk9iamVjdCwgQ29nbC5UZXh0dXJlIHsKKysJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBU ZXh0dXJlMkRTbGljZWQgKCk7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorKwkJcHVibGljIFRleHR1cmUy RFNsaWNlZC5mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYm1wLCBpbnQgbWF4X3dhc3RlKTsKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJD b2dsSGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfdmVydGV4X2J1ZmZlcl9yZWYiLCB1bnJl Zl9mdW5jdGlvbiA9ICJjb2dsX3ZlcnRleF9idWZmZXJfdW5yZWYiKV0KKyAJW0NvbXBhY3RdCitA QCAtNDY4LDcgKzM0OCw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1lYnVmZmVyX2dldF9n dHlwZSAoKSIpXQorIAlwdWJsaWMgaW50ZXJmYWNlIEZyYW1lYnVmZmVyIDogQ29nbC5PYmplY3Qg eworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBhbGxv Y2F0ZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBib29sIGFsbG9jYXRlICgpIHRo cm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGlj IHZvaWQgY2xlYXIgKHVsb25nIGJ1ZmZlcnMsIENvZ2wuQ29sb3IgY29sb3IpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTQ4OCw2ICszNjgsNyBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBmaW5pc2ggKCk7CisrCQlwdWJsaWMgdm9p ZCBmbHVzaCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9p ZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0 b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorQEAgLTQ5NSwyMiArMzc2LDE4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2JsdWVfYml0cyAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkNvbG9yTWFzayBnZXRfY29s b3JfbWFzayAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuQ29udGV4dCBnZXRfY29udGV4dCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2RlcHRo X2JpdHMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIHVub3du ZWQgQ29nbC5UZXh0dXJlIGdldF9kZXB0aF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTQiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3RleHR1cmVfZW5hYmxl ZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgQ29nbC5Cb29s IGdldF9kZXB0aF93cml0ZV9lbmFibGVkICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2RlcHRoX3dy aXRlX2VuYWJsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMg Q29nbC5Cb29sIGdldF9kaXRoZXJfZW5hYmxlZCAoKTsKKysJCXB1YmxpYyBib29sIGdldF9kaXRo ZXJfZW5hYmxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBp bnQgZ2V0X2dyZWVuX2JpdHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlw dWJsaWMgaW50IGdldF9oZWlnaHQgKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9pc19zdGVy ZW8gKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfaXNfc3RlcmVvICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDb2dsLk1hdHJpeCBnZXRfbW9kZWx2aWV3X21hdHJp eCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTQ3LDEyICs0MjQsMTMg QEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgcHVzaF9tYXRyaXggKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcHVzaF9yZWN0YW5nbGVf Y2xpcCAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhfMiwgZmxvYXQgeV8yKTsKKysJCXB1 YmxpYyB2b2lkIHB1c2hfcmVnaW9uX2NsaXAgKENhaXJvLlJlZ2lvbiByZWdpb24pOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHB1c2hfc2Npc3Nvcl9jbGlw IChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCByZWFkX3BpeGVscyAoaW50IHgsIGlu dCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50 OCBwaXhlbHMpOworKwkJcHVibGljIGJvb2wgcmVhZF9waXhlbHMgKGludCB4LCBpbnQgeSwgaW50 IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludDggcGl4ZWxz KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHJl YWRfcGl4ZWxzX2ludG9fYml0bWFwIChpbnQgeCwgaW50IHksIENvZ2wuUmVhZFBpeGVsc0ZsYWdz IHNvdXJjZSwgQ29nbC5CaXRtYXAgYml0bWFwKTsKKysJCXB1YmxpYyBib29sIHJlYWRfcGl4ZWxz X2ludG9fYml0bWFwIChpbnQgeCwgaW50IHksIENvZ2wuUmVhZFBpeGVsc0ZsYWdzIHNvdXJjZSwg Q29nbC5CaXRtYXAgYml0bWFwKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1 YmxpYyB2b2lkIHJlc29sdmVfc2FtcGxlcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KK0BAIC01NjAsMTkgKzQzOCwxMyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxv YXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENv Z2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAo R3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ CXB1YmxpYyB2b2lkIHNjYWxlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcl9tYXNrIChDb2ds LkNvbG9yTWFzayBjb2xvcl9tYXNrKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCist CQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkIChDb2dsLkJvb2wgZW5hYmxl ZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Rl cHRoX3dyaXRlX2VuYWJsZWQgKENvZ2wuQm9vbCBkZXB0aF93cml0ZV9lbmFibGVkKTsKKysJCXB1 YmxpYyB2b2lkIHNldF9kZXB0aF93cml0ZV9lbmFibGVkIChib29sIGRlcHRoX3dyaXRlX2VuYWJs ZWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Rp dGhlcl9lbmFibGVkIChDb2dsLkJvb2wgZGl0aGVyX2VuYWJsZWQpOworKwkJcHVibGljIHZvaWQg c2V0X2RpdGhlcl9lbmFibGVkIChib29sIGRpdGhlcl9lbmFibGVkKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfbW9kZWx2aWV3X21hdHJpeCAoQ29n bC5NYXRyaXggbWF0cml4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTg4 LDYgKzQ2MCwzOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorIAkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6 KTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBl X2lkID0gImNvZ2xfdGV4dHVyZV9nZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGludGVyZmFjZSBU ZXh0dXJlIDogQ29nbC5PYmplY3QgeworKwkJcHVibGljIGJvb2wgYWxsb2NhdGUgKCkgdGhyb3dz IEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBlcnJvcl9xdWFyayAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisrCQlwdWJsaWMgQ29nbC5UZXh0dXJlQ29tcG9u ZW50cyBnZXRfY29tcG9uZW50cyAoKTsKKysJCXB1YmxpYyBpbnQgZ2V0X2RhdGEgKENvZ2wuUGl4 ZWxGb3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSldIHVpbnQ4W10/IGRhdGEpOworKwkJcHVibGljIGJvb2wgZ2V0X2dsX3RleHR1cmUgKG91 dCB1aW50IG91dF9nbF9oYW5kbGUsIG91dCB1aW50IG91dF9nbF90YXJnZXQpOworKwkJcHVibGlj IHVpbnQgZ2V0X2hlaWdodCAoKTsKKysJCXB1YmxpYyBpbnQgZ2V0X21heF93YXN0ZSAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCisrCQlwdWJsaWMgYm9vbCBnZXRfcHJlbXVsdGlw bGllZCAoKTsKKysJCXB1YmxpYyB1aW50IGdldF93aWR0aCAoKTsKKysJCXB1YmxpYyBib29sIGlz X3NsaWNlZCAoKTsKKysJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4 dHVyZSBuZXdfZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCwgQ29nbC5UZXh0dXJlRmxh Z3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKysJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAi MC44IildCisrCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9kYXRhIChpbnQg d2lkdGgsIGludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9y bWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJp ZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEpOworKwkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5j ZSA9ICIwLjgiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2ZpbGUg KHN0cmluZyBmaWxlbmFtZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3Jt YXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4yIild CisrCQlwdWJsaWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX3N1Yl90ZXh0dXJlIChpbnQgc3ViX3gs IGludCBzdWJfeSwgaW50IHN1Yl93aWR0aCwgaW50IHN1Yl9oZWlnaHQpOworKwkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIw LjgiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld193aXRoX3NpemUgKHVpbnQg d2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZv cm1hdCBpbnRlcm5hbF9mb3JtYXQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKysJ CXB1YmxpYyB2b2lkIHNldF9jb21wb25lbnRzIChDb2dsLlRleHR1cmVDb21wb25lbnRzIGNvbXBv bmVudHMpOworKwkJcHVibGljIGJvb2wgc2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0 LCBpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBk YXRhLCBpbnQgbGV2ZWwpIHRocm93cyBHTGliLkVycm9yOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTgiKV0KKysJCXB1YmxpYyB2b2lkIHNldF9wcmVtdWx0aXBsaWVkIChib29sIHByZW11bHRp cGxpZWQpOworKwkJcHVibGljIGJvb2wgc2V0X3JlZ2lvbiAoaW50IHNyY194LCBpbnQgc3JjX3ks IGludCBkc3RfeCwgaW50IGRzdF95LCB1aW50IGRzdF93aWR0aCwgdWludCBkc3RfaGVpZ2h0LCBp bnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0 cmlkZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCisrCQlwdWJsaWMgYm9vbCBzZXRfcmVnaW9uX2Zyb21f Yml0bWFwIChpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQg ZHN0X3dpZHRoLCB1aW50IGRzdF9oZWlnaHQsIENvZ2wuQml0bWFwIGJpdG1hcCk7CisrCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtTaW1wbGVUeXBl XQorIAlwdWJsaWMgc3RydWN0IEFuZ2xlIDogaW50MzIgeworQEAgLTYzNSwxMCArNTQwLDYgQEAg bmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgc2V0X2JsdWVfYnl0ZSAodWludDggYmx1 ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmx1 ZV9mbG9hdCAoZmxvYXQgYmx1ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfZnJvbV80ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxw aGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuNCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zyb21fNHViICh1aW50 OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZ3JlZW4gKGZsb2F0IGdyZWVu KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC02NjIsNyArNTYzLDcgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHdlYWsgc3RyaW5nIG5hbWU7CisgCQlwdWJsaWMgdWxv bmcgaW5zdGFuY2VfY291bnQ7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgdHlwZV9pZCA9ICJDT0dMX1RZUEVfTUFUUklYIildCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9j b3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIkNPR0xfVFlQ RV9NQVRSSVgiKV0KKyAJcHVibGljIHN0cnVjdCBNYXRyaXggeworIAkJcHVibGljIGZsb2F0IHh4 OworIAkJcHVibGljIGZsb2F0IHl4OworQEAgLTY4OSwzMiArNTkwLDI3IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJCXB1YmxpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBm bG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisgCQlw dWJsaWMgdW5vd25lZCBmbG9hdFtdIGdldF9hcnJheSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2ludmVyc2UgKG91dCBDb2dsLk1hdHJp eCBpbnZlcnNlKTsKKysJCXB1YmxpYyBib29sIGdldF9pbnZlcnNlIChvdXQgQ29nbC5NYXRyaXgg aW52ZXJzZSk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNvZ2xfbWF0cml4X2luaXRfaWRlbnRpdHki KV0KKyAJCXB1YmxpYyBNYXRyaXguaWRlbnRpdHkgKCk7CistCQlwdWJsaWMgdm9pZCBpbml0X2Zy b21fZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tX3F1 YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lkIGlu aXRfZnJvbV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgaW5pdF90cmFuc2xhdGlvbiAoZmxvYXQgdHgsIGZs b2F0IHR5LCBmbG9hdCB0eik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgQ29nbC5Cb29sIGlzX2lkZW50aXR5ICgpOworKwkJcHVibGljIGJvb2wgaXNfaWRlbnRpdHkg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBsb29rX2F0 IChmbG9hdCBleWVfcG9zaXRpb25feCwgZmxvYXQgZXllX3Bvc2l0aW9uX3ksIGZsb2F0IGV5ZV9w b3NpdGlvbl96LCBmbG9hdCBvYmplY3RfeCwgZmxvYXQgb2JqZWN0X3ksIGZsb2F0IG9iamVjdF96 LCBmbG9hdCB3b3JsZF91cF94LCBmbG9hdCB3b3JsZF91cF95LCBmbG9hdCB3b3JsZF91cF96KTsK KyAJCVtDQ29kZSAoY25hbWUgPSAiY29nbF9tYXRyaXhfbXVsdGlwbHkiKV0KKyAJCXB1YmxpYyBN YXRyaXgubXVsdGlwbHkgKENvZ2wuTWF0cml4IGEsIENvZ2wuTWF0cml4IGIpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIG9ydGhvIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBm bG9hdCB0b3AsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorIAkJcHVibGljIHZvaWQgb3J0aG9ncmFwaGljIChmbG9hdCB4XzEsIGZsb2F0IHlf MSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CisgCQlwdWJs aWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9u ZWFyLCBmbG9hdCB6X2Zhcik7CisgCQlwdWJsaWMgdm9pZCBwcm9qZWN0X3BvaW50cyAoaW50IG5f Y29tcG9uZW50cywgc2l6ZV90IHN0cmlkZV9pbiwgdm9pZCogcG9pbnRzX2luLCBzaXplX3Qgc3Ry aWRlX291dCwgdm9pZCogcG9pbnRzX291dCwgaW50IG5fcG9pbnRzKTsKKyAJCXB1YmxpYyB2b2lk IHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2ds LkV1bGVyIGV1bGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CisrCQlw dWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGV1bGVyKTsKKyAJCXB1Ymxp YyB2b2lkIHNjYWxlIChmbG9hdCBzeCwgZmxvYXQgc3ksIGZsb2F0IHN6KTsKKy0JCXB1YmxpYyB2 b2lkIHRyYW5zZm9ybV9wb2ludCAocmVmIGZsb2F0IHgsIHJlZiBmbG9hdCB5LCByZWYgZmxvYXQg eiwgcmVmIGZsb2F0IHcpOworKwkJcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zZm9ybV9wb2ludCAo cmVmIENvZ2wuTWF0cml4IG1hdHJpeCwgcmVmIGZsb2F0IHgsIHJlZiBmbG9hdCB5LCByZWYgZmxv YXQgeiwgcmVmIGZsb2F0IHcpOworIAkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50cyAoaW50 IG5fY29tcG9uZW50cywgc2l6ZV90IHN0cmlkZV9pbiwgdm9pZCogcG9pbnRzX2luLCBzaXplX3Qg c3RyaWRlX291dCwgdm9pZCogcG9pbnRzX291dCwgaW50IG5fcG9pbnRzKTsKKyAJCXB1YmxpYyB2 b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorQEAgLTgwMSwxNiArNjk3LDYgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJV0lORE9XX0JVRkZFUiwKKyAJCU9GRlNDUkVFTl9CVUZGRVIKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfQ09MT1JfTUFT S18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBDb2xv ck1hc2sgeworLQkJTk9ORSwKKy0JCVJFRCwKKy0JCUdSRUVOLAorLQkJQkxVRSwKKy0JCUFMUEhB LAorLQkJQUxMCistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY3ByZWZpeCA9ICJDT0dMX0RFUFRIX1RFU1RfRlVOQ1RJT05fIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCisgCXB1YmxpYyBlbnVtIERlcHRoVGVzdEZ1bmN0aW9uIHsKKyAJCU5FVkVSLAorQEAg LTgyMiw0NiArNzA4LDQxIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCUdFUVVBTCwKKyAJCUFMV0FZ UworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9GRUFUVVJFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRUdMX0lNQUdF X0ZMQUdfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjAuOCIpXQorLQlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJVEVYVFVSRV9S RUNUQU5HTEUsCistCQlURVhUVVJFX05QT1QsCistCQlURVhUVVJFX1lVViwKKy0JCVRFWFRVUkVf UkVBRF9QSVhFTFMsCistCQlTSEFERVJTX0dMU0wsCistCQlPRkZTQ1JFRU4sCistCQlPRkZTQ1JF RU5fTVVMVElTQU1QTEUsCistCQlPRkZTQ1JFRU5fQkxJVCwKKy0JCUZPVVJfQ0xJUF9QTEFORVMs CistCQlTVEVOQ0lMX0JVRkZFUiwKKy0JCVZCT1MsCistCQlQQk9TLAorLQkJVU5TSUdORURfSU5U X0lORElDRVMsCistCQlERVBUSF9SQU5HRSwKKy0JCVRFWFRVUkVfTlBPVF9CQVNJQywKKy0JCVRF WFRVUkVfTlBPVF9NSVBNQVAsCistCQlURVhUVVJFX05QT1RfUkVQRUFULAorLQkJUE9JTlRfU1BS SVRFLAorLQkJVEVYVFVSRV8zRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1JFQUQsCistCQlNQVBfQlVG RkVSX0ZPUl9XUklURSwKKy0JCU9OU0NSRUVOX01VTFRJUExFLAorLQkJREVQVEhfVEVYVFVSRQor KwlwdWJsaWMgZW51bSBFZ2xJbWFnZUZsYWdzIHsKKysJCU5PTkUsCisrCQlOT19HRVRfREFUQQor Kwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXgg PSAiQ09HTF9GRUFUVVJFX0lEXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgZW51bSBGZWF0dXJlSUQgeworKwkJW0NDb2RlIChj bmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfVU5TSUdORURfSU5UX0lORElDRVMiKV0KKysJCU9HTF9G RUFUVVJFX0lEX1VOU0lHTkVEX0lOVF9JTkRJQ0VTLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dM X0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfUkVBRCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfTUFQ X0JVRkZFUl9GT1JfUkVBRCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX01B UF9CVUZGRVJfRk9SX1dSSVRFIildCisrCQlPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9X UklURSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1NXQVBfQlVGRkVSU19F VkVOVCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfU1dBUF9CVUZGRVJTX0VWRU5ULAorKwkJW0NDb2Rl IChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfUFJFU0VOVEFUSU9OX1RJTUUiKV0KKysJCU9HTF9G RUFUVVJFX0lEX1BSRVNFTlRBVElPTl9USU1FLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZF QVRVUkVfSURfRkVOQ0UiKV0KKysJCU9HTF9GRUFUVVJFX0lEX0ZFTkNFLAorKwkJW0NDb2RlIChj bmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9SRyIpXQorKwkJT0dMX0ZFQVRVUkVfSURf VEVYVFVSRV9SRywKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0JVRkZFUl9B R0UiKV0KKysJCU9HTF9GRUFUVVJFX0lEX0JVRkZFUl9BR0UsCisrCQlbQ0NvZGUgKGNuYW1lID0g IkNPR0xfRkVBVFVSRV9JRF9URVhUVVJFX0VHTF9JTUFHRV9FWFRFUk5BTCIpXQorKwkJT0dMX0ZF QVRVUkVfSURfVEVYVFVSRV9FR0xfSU1BR0VfRVhURVJOQUwsCisrCQlbQ0NvZGUgKGNuYW1lID0g IkNPR0xfRkVBVFVSRV9JRF9CTElUX0ZSQU1FQlVGRkVSIildCisrCQlPR0xfRkVBVFVSRV9JRF9C TElUX0ZSQU1FQlVGRkVSCisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZJTFRFUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KyAJcHVibGljIGVudW0gRmlsdGVyUmV0dXJuIHsKKyAJCUNPTlRJTlVFLAorIAkJUkVNT1ZFCisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9 ICJDT0dMX0ZPR19NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIEZvZ01vZGUgeworLQkJTElORUFSLAorLQkJRVhQ T05FTlRJQUwsCistCQlFWFBPTkVOVElBTF9TUVVBUkVECistCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZSQU1FX0VWRU5UXyIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlw dWJsaWMgZW51bSBGcmFtZUV2ZW50IHsKK0BAIC04NzQsNiArNzU1LDE0IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJCUZSQU1FQlVGRkVSX0VSUk9SX0FMTE9DQVRFOworIAkJcHVibGljIHN0YXRpYyB1 aW50MzIgcXVhcmsgKCk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0dSQVBISUNTX1JFU0VUX1NUQVRVU18iLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKysJcHVibGljIGVudW0gR3JhcGhpY3NSZXNldFN0YXR1cyB7CisrCQlO T19FUlJPUiwKKysJCUdVSUxUWV9DT05URVhUX1JFU0VULAorKwkJSU5OT0NFTlRfQ09OVEVYVF9S RVNFVCwKKysJCVVOS05PV05fQ09OVEVYVF9SRVNFVCwKKysJCVBVUkdFRF9DT05URVhUX1JFU0VU CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZp eCA9ICJDT0dMX0lORElDRVNfVFlQRV9VTlNJR05FRF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KyAJcHVibGljIGVudW0gSW5kaWNlc1R5cGUgeworIAkJQllURSwKK0BAIC05MDAsMTIgKzc4OSw2 IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCU5FQVJFU1RfTUlQTUFQX0xJTkVBUiwKKyAJCUxJTkVB Ul9NSVBNQVBfTElORUFSCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX01BVEVSSUFMX0xBWUVSX1RZUEVfIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0g TWF0ZXJpYWxMYXllclR5cGUgeworLQkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX01BVEVSSUFMX0xB WUVSX1RZUEVfVEVYVFVSRSIpXQorLQkJTUFURVJJQUxfTEFZRVJfVFlQRV9URVhUVVJFCistCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJD T0dMX01BVEVSSUFMX1dSQVBfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgZW51bSBNYXRlcmlhbFdyYXBNb2RlIHsKK0BA IC05NzAsNiArODUzLDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCUJHUkFfMTAxMDEwMiwKKyAJ CUFSR0JfMjEwMTAxMCwKKyAJCUFCR1JfMjEwMTAxMCwKKysJCVJHQkFfRlBfMTYxNjE2MTYsCisr CQlCR1JBX0ZQXzE2MTYxNjE2LAorKwkJQVJHQl9GUF8xNjE2MTYxNiwKKysJCUFCR1JfRlBfMTYx NjE2MTYsCisgCQlSR0JBXzg4ODhfUFJFLAorIAkJQkdSQV84ODg4X1BSRSwKKyAJCUFSR0JfODg4 OF9QUkUsCitAQCAtOTgwLDkgKzg2NywxNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlCR1JBXzEw MTAxMDJfUFJFLAorIAkJQVJHQl8yMTAxMDEwX1BSRSwKKyAJCUFCR1JfMjEwMTAxMF9QUkUsCisr CQlSR0JBX0ZQXzE2MTYxNjE2X1BSRSwKKysJCUJHUkFfRlBfMTYxNjE2MTZfUFJFLAorKwkJQVJH Ql9GUF8xNjE2MTYxNl9QUkUsCisrCQlBQkdSX0ZQXzE2MTYxNjE2X1BSRSwKKyAJCURFUFRIXzE2 LAorIAkJREVQVEhfMzIsCistCQlERVBUSF8yNF9TVEVOQ0lMXzgKKysJCURFUFRIXzI0X1NURU5D SUxfODsKKysJCXB1YmxpYyBpbnQgZ2V0X2J5dGVzX3Blcl9waXhlbCAoaW50IHBsYW5lKTsKKysJ CXB1YmxpYyBpbnQgZ2V0X25fcGxhbmVzICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIHRv X3N0cmluZyAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjcHJlZml4ID0gIkNPR0xfUkVBRF9QSVhFTFNfQ09MT1JfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCisgCVtGbGFnc10KK0BAIC0xMDQxLDEzICs5MzUsNiBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlOT19TTElDSU5HLAorIAkJTk9fQVRMQVMKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVYVFVSRV9UWVBFXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJs aWMgZW51bSBUZXh0dXJlVHlwZSB7CistCQlAMkQsCistCQlAM0QsCistCQlSRUNUQU5HTEUKKy0J fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfVkVSVElDRVNfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgZW51bSBWZXJ0aWNlc01vZGUgeworQEAgLTEwNjcs NyArOTU0LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfV0lOU1lTX0ZFQVRVUkVfIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBlbnVtIFdpbnN5c0ZlYXR1cmUgeworIAkJTVVMVElQ TEVfT05TQ1JFRU4sCistCQlTV0FQX1RIUk9UVExFLAorIAkJVkJMQU5LX0NPVU5URVIsCisgCQlW QkxBTktfV0FJVCwKKyAJCVRFWFRVUkVfRlJPTV9QSVhNQVAsCitAQCAtMTA4Miw5ICs5NjgsMTIg QEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIERlYnVnT2JqZWN0Rm9yZWFjaFR5cGVDYWxsYmFjayAo Q29nbC5EZWJ1Z09iamVjdFR5cGVJbmZvIGluZm8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIp XQorLQlwdWJsaWMgZGVsZWdhdGUgQ29nbC5Cb29sIE1hdGVyaWFsTGF5ZXJDYWxsYmFjayAoQ29n bC5NYXRlcmlhbCBtYXRlcmlhbCwgaW50IGxheWVyX2luZGV4KTsKKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKysJW1ZlcnNp b24gKHNpbmNlID0gIjAuMTAiKV0KKysJcHVibGljIGRlbGVnYXRlIHZvaWQgRmVhdHVyZUNhbGxi YWNrIChDb2dsLkZlYXR1cmVJRCBmZWF0dXJlKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMy45KV0KKysJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTQiKV0KKysJcHVibGljIGRlbGVnYXRlIHZvaWQgRnJhbWVDYWxsYmFjayAoQ29nbC5P bnNjcmVlbiBvbnNjcmVlbiwgQ29nbC5GcmFtZUV2ZW50IGV2ZW50LCBDb2dsLkZyYW1lSW5mbyBp bmZvKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFu Y2VfcG9zID0gMi45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIGRl bGVnYXRlIHZvaWQgT25zY3JlZW5EaXJ0eUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVu LCBDb2dsLk9uc2NyZWVuRGlydHlJbmZvIGluZm8pOworQEAgLTEwOTIsMTIgKzk4MSwxMCBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJcHVibGljIGRl bGVnYXRlIHZvaWQgT25zY3JlZW5SZXNpemVDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVl biwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZv aWQgT25zY3JlZW5YMTFNYXNrQ2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIHVpbnQz MiBldmVudF9tYXNrKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlw dWJsaWMgZGVsZWdhdGUgQ29nbC5Cb29sIFBpcGVsaW5lTGF5ZXJDYWxsYmFjayAoQ29nbC5QaXBl bGluZSBwaXBlbGluZSwgaW50IGxheWVyX2luZGV4KTsKKysJcHVibGljIGRlbGVnYXRlIGJvb2wg UGlwZWxpbmVMYXllckNhbGxiYWNrIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJf aW5kZXgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0 YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBTd2FwQnVmZmVyc05vdGlm eSAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CisrCXB1YmxpYyBkZWxlZ2F0ZSBib29s IFRleHR1cmUyREVHTEltYWdlRXh0ZXJuYWxBbGxvYyAoQ29nbC5UZXh0dXJlMkQgdGV4XzJkKSB0 aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgaGFzX3RhcmdldCA9IGZhbHNlKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgVXNlckRh dGFEZXN0cm95Q2FsbGJhY2sgKHZvaWQqIGRhdGEpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0FGSVJTVF9CSVQiKV0KK0BAIC0xMTA4 LDYgKzk5NSw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJcHVibGljIGNvbnN0IGludCBCR1JfQklU OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJD T0dMX0RFUFRIX0JJVCIpXQorIAlwdWJsaWMgY29uc3QgaW50IERFUFRIX0JJVDsKKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9QSVhFTF9G T1JNQVRfTUFYX1BMQU5FUyIpXQorKwlwdWJsaWMgY29uc3QgaW50IFBJWEVMX0ZPUk1BVF9NQVhf UExBTkVTOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFt ZSA9ICJDT0dMX1BSRU1VTFRfQklUIildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJFTVVMVF9CSVQ7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNP R0xfU1RFTkNJTF9CSVQiKV0KK0BAIC0xMTE1LDIxICsxMDA0LDEyIEBAIG5hbWVzcGFjZSBDb2ds IHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAi Q09HTF9URVhUVVJFX01BWF9XQVNURSIpXQorIAlwdWJsaWMgY29uc3QgaW50IFRFWFRVUkVfTUFY X1dBU1RFOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGJlZ2luX2dsICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGlj IENvZ2wuQm9vbCBjaGVja19leHRlbnNpb24gKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBjbGVhciAoQ29nbC5Db2xvciBjb2xvciwgdWxvbmcgYnVmZmVycyk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGlj IENvZ2wuQm9vbCBjbHV0dGVyX2NoZWNrX2V4dGVuc2lvbl9DTFVUVEVSIChzdHJpbmcgbmFtZSwg c3RyaW5nIGV4dCk7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBibGl0X2ZyYW1lYnVmZmVyIChDb2ds LkZyYW1lYnVmZmVyIHNyYywgQ29nbC5GcmFtZWJ1ZmZlciBkZXN0LCBpbnQgc3JjX3gsIGludCBz cmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIGludCB3aWR0aCwgaW50IGhlaWdodCkgdGhyb3dz IEdMaWIuRXJyb3I7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBjbHV0dGVyX3dpbnN5c19oYXNfZmVhdHVyZV9D TFVUVEVSIChDb2dsLldpbnN5c0ZlYXR1cmUgZmVhdHVyZSk7CisrCXB1YmxpYyBzdGF0aWMgYm9v bCBjbHV0dGVyX3dpbnN5c19oYXNfZmVhdHVyZV9DTFVUVEVSIChDb2dsLldpbnN5c0ZlYXR1cmUg ZmVhdHVyZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNv bG9yX2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgY29s b3JfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAlwdWJs aWMgc3RhdGljIHZvaWQgY29sb3JfaW5pdF9mcm9tX2hzbCAob3V0IENvZ2wuQ29sb3IgY29sb3Is IGZsb2F0IGh1ZSwgZmxvYXQgc2F0dXJhdGlvbiwgZmxvYXQgbHVtaW5hbmNlKTsKK0BAIC0xMTQz LDIzNCArMTAyMyw4NyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGRlYnVnX29iamVjdF9wcmludF9pbnN0YW5jZXMg KCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV9mb2cgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgZW5kX2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZmVhdHVyZXNfYXZhaWxhYmxlIChD b2dsLkZlYXR1cmVGbGFncyBmZWF0dXJlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBz dGF0aWMgdm9pZCBmbHVzaCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGZydXN0 dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxv YXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisr CXB1YmxpYyBzdGF0aWMgdm9pZCBmb3JlYWNoX2ZlYXR1cmUgKENvZ2wuQ29udGV4dCBjb250ZXh0 LCBDb2dsLkZlYXR1cmVDYWxsYmFjayBjYWxsYmFjayk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRf YmFja2ZhY2VfY3VsbGluZ19lbmFibGVkICgpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2Jh Y2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdldF9iaXRtYXNrcyAob3V0 IGludCByZWQsIG91dCBpbnQgZ3JlZW4sIG91dCBpbnQgYmx1ZSwgb3V0IGludCBhbHBoYSk7Cisr CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCXB1YmxpYyBzdGF0aWMgaW50NjQgZ2V0X2Ns b2NrX3RpbWUgKENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9k ZXB0aF90ZXN0X2VuYWJsZWQgKCk7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZGVwdGhfdGVz dF9lbmFibGVkICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQg Q29nbC5GcmFtZWJ1ZmZlciBnZXRfZHJhd19mcmFtZWJ1ZmZlciAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1Ymxp YyBzdGF0aWMgQ29nbC5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2ds Lk1hdHJpeCBnZXRfbW9kZWx2aWV3X21hdHJpeCAoKTsKKysJcHVibGljIHN0YXRpYyBDb2dsLkdy YXBoaWNzUmVzZXRTdGF0dXMgZ2V0X2dyYXBoaWNzX3Jlc2V0X3N0YXR1cyAoQ29nbC5Db250ZXh0 IGNvbnRleHQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K KyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9v cHRpb25fZ3JvdXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuQ2FsbGJhY2sgZ2V0X3Byb2NfYWRkcmVzcyAoc3Ry aW5nIHMpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0K Ky0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRfcHJvamVjdGlvbl9tYXRyaXggKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQqIGdldF9zb3VyY2UgKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg Z2V0X3ZpZXdwb3J0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gb3V0IGZsb2F0IHZb NF0pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiKV0KKyAJ cHVibGljIHN0YXRpYyBHTGliLlR5cGUgZ3R5cGVfbWF0cml4X2dldF90eXBlICgpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfZnJhbWVidWZmZXIgKHZv aWQqIG9iamVjdCk7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBoYXNfZmVhdHVyZSAoQ29nbC5Db250 ZXh0IGNvbnRleHQsIENvZ2wuRmVhdHVyZUlEIGZlYXR1cmUpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K Ky0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfb25zY3JlZW4gKHZvaWQqIG9iamVjdCk7Cisr CXB1YmxpYyBzdGF0aWMgYm9vbCBpc19jb250ZXh0ICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19waXBlbGluZSAodm9pZCogb2Jq ZWN0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS40IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX3ZlcnRleF9idWZmZXJf aW5kaWNlcyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKysJcHVibGljIHN0YXRpYyBib29sIGlzX2Zy YW1lX2luZm8gKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdGF0 aWMgQ29nbC5Cb29sIG1hdHJpeF9lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBvcnRobyAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0 IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCBuZWFyLCBmbG9hdCBmYXIpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHBlcnNwZWN0aXZlIChmbG9hdCBmb3Z5LCBmbG9hdCBhc3BlY3QsIGZsb2F0IHpfbmVhciwgZmxv YXQgel9mYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9seWdv biAoQ29nbC5UZXh0dXJlVmVydGV4IHZlcnRpY2VzLCB1aW50IG5fdmVydGljZXMsIENvZ2wuQm9v bCB1c2VfY29sb3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvcF9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgcG9wX3NvdXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX21hdHJpeCAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX3NvdXJjZSAodm9pZCogbWF0ZXJp YWwpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZSAoZmxvYXQgeF8xLCBmbG9hdCB5XzEsIGZsb2F0IHhf MiwgZmxvYXQgeV8yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJl Y3RhbmdsZV93aXRoX211bHRpdGV4dHVyZV9jb29yZHMgKGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxv YXQgeDIsIGZsb2F0IHkyLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB0 ZXhfY29vcmRzLCBpbnQgdGV4X2Nvb3Jkc19sZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlX3dpdGhfdGV4dHVyZV9jb29yZHMgKGZsb2F0IHgxLCBm bG9hdCB5MSwgZmxvYXQgeDIsIGZsb2F0IHkyLCBmbG9hdCB0eDEsIGZsb2F0IHR5MSwgZmxvYXQg dHgyLCBmbG9hdCB0eTIpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMg c3RhdGljIGJvb2wgaXNfZnJhbWVidWZmZXIgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVzIChbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywgdWludCBuX3JlY3RzKTsKKysJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGlzX29uc2NyZWVuICh2b2lkKiBv YmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjAuOC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5n bGVzX3dpdGhfdGV4dHVyZV9jb29yZHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBm bG9hdFtdIHZlcnRzLCB1aW50IG5fcmVjdHMpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19waXBlbGluZSAodm9pZCogb2JqZWN0KTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsK KysJcHVibGljIHN0YXRpYyBib29sIGlzX3RleHR1cmVfMmQgKHZvaWQqIG9iamVjdCk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfdGV4dHVyZV8yZF9zbGlj ZWQgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5h YmxlZCAoQ29nbC5Cb29sIHNldHRpbmcpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisr CXB1YmxpYyBzdGF0aWMgYm9vbCBtYXRyaXhfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgc2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoQ29nbC5Cb29sIHNldHRpbmcpOwor KwlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoYm9vbCBz ZXR0aW5nKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisg CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZm9nIChDb2dsLkNvbG9yIGZvZ19jb2xvciwgQ29n bC5Gb2dNb2RlIG1vZGUsIGZsb2F0IGRlbnNpdHksIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIp OworKwlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoYm9vbCBzZXR0 aW5nKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfbW9kZWx2aWV3X21hdHJpeCAoQ29nbC5NYXRyaXggbWF0 cml4KTsKKysJcHVibGljIHN0YXRpYyB2b2lkIHNldF90cmFjaW5nX2Rpc2FibGVkX29uX3RocmVh ZCAodm9pZCogZGF0YSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3Byb2plY3Rpb25fbWF0cml4IChDb2ds Lk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2Ug KHZvaWQqIG1hdGVyaWFsKTsKKysJcHVibGljIHN0YXRpYyB2b2lkIHNldF90cmFjaW5nX2VuYWJs ZWRfb25fdGhyZWFkICh2b2lkKiBkYXRhLCBzdHJpbmcgZ3JvdXAsIHN0cmluZyBmaWxlbmFtZSk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV9jb2xvciAoQ29nbC5Db2xv ciBjb2xvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV9jb2xvcjRm IChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV9jb2xvcjR1YiAodWludDggcmVkLCB1 aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNldF9zb3VyY2VfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjEuMiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3ZpZXdwb3J0IChpbnQgeCwgaW50IHksIGludCB3 aWR0aCwgaW50IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX2NvbXBpbGUgKENvZ2wuSGFu ZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQlwdWJsaWMgc3RhdGljIHN0cmluZyBzaGFkZXJfZ2V0X2luZm9fbG9nIChDb2dsLkhh bmRsZSBoYW5kbGUpOworKwlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3RyYWNpbmdfZW5hYmxlZF9v bl90aHJlYWRfd2l0aF9mZCAodm9pZCogZGF0YSwgc3RyaW5nIGdyb3VwLCBpbnQgZmQpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0 YXRpYyBDb2dsLlNoYWRlclR5cGUgc2hhZGVyX2dldF90eXBlIChDb2dsLkhhbmRsZSBoYW5kbGUp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVi bGljIHN0YXRpYyBDb2dsLkJvb2wgc2hhZGVyX2lzX2NvbXBpbGVkIChDb2dsLkhhbmRsZSBoYW5k bGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHNoYWRlcl9yZWYgKENvZ2wuSGFuZGxl IGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorIAlwdWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX3NvdXJjZSAoQ29nbC5IYW5kbGUgc2hhZGVy LCBzdHJpbmcgc291cmNlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfdW5yZWYgKENvZ2wuSGFuZGxl IGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor IAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIs IHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25l d19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFn cywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0 YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGludCBo ZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwg Q29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4IGRh dGEpOworKwlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2RhdGEg KGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4 ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgaW50IHJv d3N0cmlkZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSk7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAu OCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2ZpbGUg KHN0cmluZyBmaWxlbmFtZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3Jt YXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBz dGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZm9yZWlnbiAodWludCBnbF9oYW5k bGUsIHVpbnQgZ2xfdGFyZ2V0LCB1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgdWludCB4X3BvdF93 YXN0ZSwgdWludCB5X3BvdF93YXN0ZSwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0K KyAJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfd2l0aF9zaXplICh1aW50 IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxG b3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFu c2Zvcm0gKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNsYXRlIChmbG9h dCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2FkZCAo Q29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUsIHVpbnQ4IG5fY29tcG9u ZW50cywgQ29nbC5BdHRyaWJ1dGVUeXBlIHR5cGUsIENvZ2wuQm9vbCBub3JtYWxpemVkLCB1aW50 MTYgc3RyaWRlLCB2b2lkKiBwb2ludGVyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2Rl bGV0ZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHZlcnRleF9idWZmZXJfZGlzYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcg YXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZHJhdyAoQ29nbC5I YW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRpY2VzTW9kZSBtb2RlLCBpbnQgZmlyc3QsIGludCBjb3Vu dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kcmF3X2VsZW1lbnRzIChDb2dsLkhhbmRs ZSBoYW5kbGUsIENvZ2wuVmVydGljZXNNb2RlIG1vZGUsIENvZ2wuSGFuZGxlIGluZGljZXMsIGlu dCBtaW5faW5kZXgsIGludCBtYXhfaW5kZXgsIGludCBpbmRpY2VzX29mZnNldCwgaW50IGNvdW50 KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2VuYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxl LCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50IHZlcnRleF9idWZmZXJfZ2V0 X25fdmVydGljZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5I YW5kbGUgdmVydGV4X2J1ZmZlcl9pbmRpY2VzX2dldF9mb3JfcXVhZHMgKHVpbnQgbl9pbmRpY2Vz KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgQ29nbC5JbmRpY2VzVHlwZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X3R5 cGUgKENvZ2wuSGFuZGxlIGluZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHZl cnRleF9idWZmZXJfbmV3ICh1aW50IG5fdmVydGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5I YW5kbGUgdmVydGV4X2J1ZmZlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgdmVydGV4X2J1ZmZlcl9zdWJtaXQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCB2ZXJ0ZXhfYnVmZmVyX3VucmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCB2aWV3cG9ydCAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRp YyB1aW50MzIgeDExX29uc2NyZWVuX2dldF92aXN1YWxfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2Ny ZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9vbnNj cmVlbl9nZXRfd2luZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB4MTFfb25zY3JlZW5fc2V0X2ZvcmVpZ25fd2lu ZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMyIHhpZCwgW0NDb2RlIChzY29w ZSA9ICJhc3luYyIpXSBDb2dsLk9uc2NyZWVuWDExTWFza0NhbGxiYWNrIHVwZGF0ZSk7CisgfQor ZGlmZiAtLWdpdCB2YXBpL3BvbGtpdC1nb2JqZWN0LTEudmFwaSB2YXBpL3BvbGtpdC1nb2JqZWN0 LTEudmFwaQoraW5kZXggOTNlZmY4YTUuLmZlZGM2YTRhIDEwMDY0NAorLS0tIHZhcGkvcG9sa2l0 LWdvYmplY3QtMS52YXBpCisrKysgdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkKK0BAIC03LDcg KzcsNyBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBBY3Rpb25EZXNjcmlwdGlvbiAoKTsKKyAJCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfYWN0aW9uX2lkICgpOworLQkJcHVibGljIHVub3duZWQg c3RyaW5nIGdldF9hbm5vdGF0aW9uIChzdHJpbmcga2V5KTsKKysJCXB1YmxpYyB1bm93bmVkIHN0 cmluZz8gZ2V0X2Fubm90YXRpb24gKHN0cmluZyBrZXkpOworIAkJW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1ZSldCisgCQlwdWJsaWMgdW5v d25lZCBzdHJpbmdbXSBnZXRfYW5ub3RhdGlvbl9rZXlzICgpOworIAkJcHVibGljIHVub3duZWQg c3RyaW5nIGdldF9kZXNjcmlwdGlvbiAoKTsKK0BAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBQ b2xraXQgeworIAkJcHVibGljIFBvbGtpdC5BdXRob3JpdHlGZWF0dXJlcyBnZXRfYmFja2VuZF9m ZWF0dXJlcyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfYmFja2VuZF9uYW1lICgp OworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9iYWNrZW5kX3ZlcnNpb24gKCk7CistCQlw dWJsaWMgc3RyaW5nIGdldF9vd25lciAoKTsKKysJCXB1YmxpYyBzdHJpbmc/IGdldF9vd25lciAo KTsKKyAJCXB1YmxpYyBzdGF0aWMgUG9sa2l0LkF1dGhvcml0eSBnZXRfc3luYyAoR0xpYi5DYW5j ZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCXB1Ymxp YyBhc3luYyBib29sIHJlZ2lzdGVyX2F1dGhlbnRpY2F0aW9uX2FnZW50IChQb2xraXQuU3ViamVj dCBzdWJqZWN0LCBzdHJpbmcgbG9jYWxlLCBzdHJpbmcgb2JqZWN0X3BhdGgsIEdMaWIuQ2FuY2Vs bGFibGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCXB1YmxpYyBib29sIHJl Z2lzdGVyX2F1dGhlbnRpY2F0aW9uX2FnZW50X3N5bmMgKFBvbGtpdC5TdWJqZWN0IHN1YmplY3Qs IHN0cmluZyBsb2NhbGUsIHN0cmluZyBvYmplY3RfcGF0aCwgR0xpYi5DYW5jZWxsYWJsZT8gY2Fu Y2VsbGFibGUgPSBudWxsKSB0aHJvd3MgR0xpYi5FcnJvcjsKK0BAIC01NiwyMSArNTYsMjIgQEAg bmFtZXNwYWNlIFBvbGtpdCB7CisgCXB1YmxpYyBjbGFzcyBBdXRob3JpemF0aW9uUmVzdWx0IDog R0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorIAkJcHVibGljIEF1dGhvcml6YXRpb25SZXN1bHQgKGJvb2wgaXNfYXV0aG9yaXplZCwgYm9v bCBpc19jaGFsbGVuZ2UsIFBvbGtpdC5EZXRhaWxzPyBkZXRhaWxzKTsKKy0JCXB1YmxpYyB1bm93 bmVkIFBvbGtpdC5EZXRhaWxzIGdldF9kZXRhaWxzICgpOworKwkJcHVibGljIHVub3duZWQgUG9s a2l0LkRldGFpbHM/IGdldF9kZXRhaWxzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMTAx IildCisgCQlwdWJsaWMgYm9vbCBnZXRfZGlzbWlzc2VkICgpOworIAkJcHVibGljIGJvb2wgZ2V0 X2lzX2F1dGhvcml6ZWQgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfaXNfY2hhbGxlbmdlICgpOwor IAkJcHVibGljIGJvb2wgZ2V0X3JldGFpbnNfYXV0aG9yaXphdGlvbiAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIHN0cmluZyBnZXRfdGVtcG9yYXJ5X2F1dGhvcml6YXRpb25faWQgKCk7CisrCQlwdWJs aWMgdW5vd25lZCBzdHJpbmc/IGdldF90ZW1wb3JhcnlfYXV0aG9yaXphdGlvbl9pZCAoKTsKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIiwgdHlwZV9p ZCA9ICJwb2xraXRfZGV0YWlsc19nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgRGV0YWls cyA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKyAJCXB1YmxpYyBEZXRhaWxzICgpOworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1ZSldCistCQlwdWJsaWMgc3RyaW5nW10g Z2V0X2tleXMgKCk7CisrCQlwdWJsaWMgc3RyaW5nW10/IGdldF9rZXlzICgpOworIAkJcHVibGlj IHZvaWQgaW5zZXJ0IChzdHJpbmcga2V5LCBzdHJpbmc/IHZhbHVlKTsKKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBsb29rdXAgKHN0cmluZyBrZXkpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5n PyBsb29rdXAgKHN0cmluZyBrZXkpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJwb2xraXQvcG9sa2l0LmgiLCB0eXBlX2lkID0gInBvbGtpdF9wZXJtaXNzaW9uX2dldF90eXBl ICgpIildCisgCXB1YmxpYyBjbGFzcyBQZXJtaXNzaW9uIDogR0xpYi5QZXJtaXNzaW9uLCBHTGli LkFzeW5jSW5pdGFibGUsIEdMaWIuSW5pdGFibGUgeworQEAgLTg4LDcgKzg5LDggQEAgbmFtZXNw YWNlIFBvbGtpdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CisgCQlwcm90ZWN0ZWQgU3lzdGVtQnVzTmFtZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfbmFtZSAoKTsKKy0JCXB1YmxpYyBQb2xraXQuU3ViamVjdCBnZXRfcHJvY2Vzc19zeW5j IChHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9y OworKwkJcHVibGljIFBvbGtpdC5TdWJqZWN0PyBnZXRfcHJvY2Vzc19zeW5jIChHTGliLkNhbmNl bGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGlj IFBvbGtpdC5Vbml4VXNlcj8gZ2V0X3VzZXJfc3luYyAoR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2Vs bGFibGUgPSBudWxsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCXB1YmxpYyBzdGF0aWMgUG9sa2l0 LlN1YmplY3QgQG5ldyAoc3RyaW5nIG5hbWUpOworIAkJcHVibGljIHZvaWQgc2V0X25hbWUgKHN0 cmluZyBuYW1lKTsKKyAJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IGdldDsgc2V0IGNvbnN0cnVjdDsg fQorQEAgLTE0Niw5ICsxNDgsMTAgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCQlwcm90ZWN0ZWQg VW5peFNlc3Npb24gKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Nlc3Npb25faWQg KCk7CisgCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5TdWJqZWN0IEBuZXcgKHN0cmluZyBzZXNzaW9u X2lkKTsKKy0JCXB1YmxpYyBzdGF0aWMgYXN5bmMgUG9sa2l0LlN1YmplY3QgbmV3X2Zvcl9wcm9j ZXNzIChpbnQgcGlkLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSkgdGhyb3dzIEdMaWIu RXJyb3I7CistCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5TdWJqZWN0IG5ld19mb3JfcHJvY2Vzc19z eW5jIChpbnQgcGlkLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93 cyBHTGliLkVycm9yOworKwkJcHVibGljIHN0YXRpYyBhc3luYyBQb2xraXQuU3ViamVjdD8gbmV3 X2Zvcl9wcm9jZXNzIChpbnQgcGlkLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSkgdGhy b3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5TdWJqZWN0PyBuZXdfZm9y X3Byb2Nlc3Nfc3luYyAoaW50IHBpZCwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBu dWxsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCXB1YmxpYyB2b2lkIHNldF9zZXNzaW9uX2lkIChz dHJpbmcgc2Vzc2lvbl9pZCk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCXB1YmxpYyBpbnQg cGlkIHsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgc3RyaW5nIHNlc3Npb25faWQgeyBnZXQ7IHNl dCBjb25zdHJ1Y3Q7IH0KKyAJfQorQEAgLTE1NiwxNyArMTU5LDE3IEBAIG5hbWVzcGFjZSBQb2xr aXQgeworIAlwdWJsaWMgY2xhc3MgVW5peFVzZXIgOiBHTGliLk9iamVjdCwgUG9sa2l0LklkZW50 aXR5IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXBy b3RlY3RlZCBVbml4VXNlciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAo KTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZz8gZ2V0X25hbWUgKCk7CisgCQlwdWJsaWMgaW50 IGdldF91aWQgKCk7CisgCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eSBAbmV3IChpbnQg dWlkKTsKKy0JCXB1YmxpYyBzdGF0aWMgUG9sa2l0LklkZW50aXR5IG5ld19mb3JfbmFtZSAoc3Ry aW5nIG5hbWUpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHN0YXRpYyBQb2xraXQuSWRl bnRpdHk/IG5ld19mb3JfbmFtZSAoc3RyaW5nIG5hbWUpIHRocm93cyBHTGliLkVycm9yOworIAkJ cHVibGljIHZvaWQgc2V0X3VpZCAoaW50IHVpZCk7CisgCQlwdWJsaWMgaW50IHVpZCB7IGdldDsg c2V0IGNvbnN0cnVjdDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xr aXQvcG9sa2l0LmgiLCB0eXBlX2lkID0gInBvbGtpdF9pZGVudGl0eV9nZXRfdHlwZSAoKSIpXQor IAlwdWJsaWMgaW50ZXJmYWNlIElkZW50aXR5IDogR0xpYi5PYmplY3QgeworIAkJcHVibGljIGFi c3RyYWN0IGJvb2wgZXF1YWwgKFBvbGtpdC5JZGVudGl0eSBiKTsKKy0JCXB1YmxpYyBzdGF0aWMg UG9sa2l0LklkZW50aXR5IGZyb21fc3RyaW5nIChzdHJpbmcgc3RyKSB0aHJvd3MgR0xpYi5FcnJv cjsKKysJCXB1YmxpYyBzdGF0aWMgUG9sa2l0LklkZW50aXR5PyBmcm9tX3N0cmluZyAoc3RyaW5n IHN0cikgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgYWJzdHJhY3QgdWludCBoYXNoICgp OworIAkJcHVibGljIGFic3RyYWN0IHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KK0BAIC0yMDEs NyArMjA0LDcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCQlBRE1JTklTVFJBVE9SX0FVVEhFTlRJ Q0FUSU9OX1JFUVVJUkVEX1JFVEFJTkVELAorIAkJQVVUSE9SSVpFRDsKKyAJCXB1YmxpYyBzdGF0 aWMgYm9vbCBmcm9tX3N0cmluZyAoc3RyaW5nIHN0cmluZywgUG9sa2l0LkltcGxpY2l0QXV0aG9y aXphdGlvbiBvdXRfaW1wbGljaXRfYXV0aG9yaXphdGlvbik7CistCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgc3RyaW5nIHRvX3N0cmluZyAoUG9sa2l0LkltcGxpY2l0QXV0aG9yaXphdGlvbiBpbXBs aWNpdF9hdXRob3JpemF0aW9uKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcg KCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIs IGNwcmVmaXggPSAiUE9MS0lUX0VSUk9SXyIpXQorIAlwdWJsaWMgZXJyb3Jkb21haW4gRXJyb3Ig eworQEAgLTIxMiw3ICsyMTUsNyBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCXB1YmxpYyBzdGF0 aWMgR0xpYi5RdWFyayBxdWFyayAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAicG9sa2l0L3BvbGtpdC5oIildCistCXB1YmxpYyBzdGF0aWMgUG9sa2l0LklkZW50aXR5IGlk ZW50aXR5X2Zyb21fc3RyaW5nIChzdHJpbmcgc3RyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJcHVi bGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHk/IGlkZW50aXR5X2Zyb21fc3RyaW5nIChzdHJpbmcg c3RyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBv bGtpdC9wb2xraXQuaCIpXQorIAlwdWJsaWMgc3RhdGljIFBvbGtpdC5TdWJqZWN0IHN1YmplY3Rf ZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworIH0KKy0tIAorMi4y OC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUgYi9zcmNw a2dzL2J1ZGdpZS1kZXNrdG9wL3RlbXBsYXRlCmluZGV4IGIzMmU3NzM0ZDNiLi5hZTVhOWQ1Zjc2 OSAxMDA2NDQKLS0tIGEvc3JjcGtncy9idWRnaWUtZGVza3RvcC90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2J1ZGdpZS1kZXNrdG9wL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnYnVkZ2llLWRlc2t0b3AnCiBwa2duYW1lPWJ1ZGdpZS1kZXNrdG9wCiB2ZXJzaW9u PTEwLjUuMQotcmV2aXNpb249MworcmV2aXNpb249NAogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxk X2hlbHBlcj1naXIKIGNvbmZpZ3VyZV9hcmdzPSItRHdpdGgtZ3RrLWRvYz1mYWxzZSAtRHdpdGgt ZGVza3RvcC1pY29ucz1ub25lIgo= --===============8398037279118617906==--