From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.2 Received: from inbox.vuxu.org (localhost [IPv6:::1]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id d2ce12b9 for ; Thu, 13 Jun 2019 23:26:11 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============3158910899412569524==" MIME-Version: 1.0 Subject: Re: [PR PATCH] [Updated] [WIP] xbps-0.54 - xbps-src improvements To: ml@inbox.vuxu.org From: voidlinux-github@inbox.vuxu.org Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Fri, 14 Jun 2019 01:26:11 +0200 Message-ID: <20190613232611.yWR_aijTp5k6Lu2FPW6cI6F1mTkRsATswjB56_eyEx8@z> GitHub notification mails are now in MIME to allow UTF8. --===============3158910899412569524== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgRHVuY2FlbiBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vRHVu Y2Flbi92b2lkLXBhY2thZ2VzIHhicHMtc3JjLWltcHJvdmVtZW50cwpodHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMTI0MzMKCltXSVBdIHhicHMtMC41NCAt IHhicHMtc3JjIGltcHJvdmVtZW50cwoKCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHVi LmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8xMjQzMy5wYXRjaCBpcyBhdHRhY2hl ZA== --===============3158910899412569524== Content-Type: application/text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-xbps-src-improvements-12433.patch" RnJvbSAwNzJhNzA0ZWViN2FlNTVjMzMzY2I3MzRlNWE2NTkwMzA3MDBmMjdkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEdW5jYWVuIDxkdW5jYWVuQHZvaWRsaW51eC5vcmc+CkRhdGU6 IFdlZCwgMTIgSnVuIDIwMTkgMjM6NTA6MTkgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvOF0geGJw cy1zcmM6IGRvbid0IGNoZWNrIGlmIGJhc2UtY2hyb290IGlzIGluc3RhbGxlZCBmb3IKIGV2ZXJ5 IHNpbmdsZSBzb3VyY2VkIHRlbXBsYXRlCgotLS0KIGNvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2Nv bW1vbi5zaCB8IDkgKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1v bi5zaCBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaAppbmRleCBjZGYxODAzYTRk NS4uNjJkNmFlMzBhZWMgMTAwNjQ0Ci0tLSBhL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1v bi5zaAorKysgYi9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jb21tb24uc2gKQEAgLTM3MiwxMiAr MzcyLDkgQEAgc2V0dXBfcGtnKCkgewogICAgIGVzYWMKIAogICAgICMgQ2hlY2sgaWYgYmFzZS1j aHJvb3QgaXMgYWxyZWFkeSBpbnN0YWxsZWQuCi0gICAgaWYgWyAteiAiJGJvb3RzdHJhcCIgLWEg Inokc2hvd19wcm9ibGVtcyIgIT0gInppZ25vcmUtcHJvYmxlbXMiIF07IHRoZW4KLSAgICAgICAg Y2hlY2tfaW5zdGFsbGVkX3BrZyBiYXNlLWNocm9vdC0wLjFfMQotICAgICAgICBpZiBbICQ/IC1u ZSAwIF07IHRoZW4KLSAgICAgICAgICAgIG1zZ19yZWQgIiR7cGtnfSBpcyBub3QgYSBib290c3Ry YXAgcGFja2FnZSBhbmQgY2Fubm90IGJlIGJ1aWx0IHdpdGhvdXQgaXQuXG4iCi0gICAgICAgICAg ICBtc2dfZXJyb3IgIlBsZWFzZSBpbnN0YWxsIGJvb3RzdHJhcCBwYWNrYWdlcyBhbmQgdHJ5IGFn YWluLlxuIgotICAgICAgICBmaQorICAgIGlmIFsgLXogIiRib290c3RyYXAiIC1hIC16ICIkQ0hS T09UX1JFQURZIiAtYSAieiRzaG93X3Byb2JsZW1zIiAhPSAiemlnbm9yZS1wcm9ibGVtcyIgXTsg dGhlbgorICAgICAgICBtc2dfcmVkICIke3BrZ30gaXMgbm90IGEgYm9vdHN0cmFwIHBhY2thZ2Ug YW5kIGNhbm5vdCBiZSBidWlsdCB3aXRob3V0IGl0LlxuIgorICAgICAgICBtc2dfZXJyb3IgIlBs ZWFzZSBpbnN0YWxsIGJvb3RzdHJhcCBwYWNrYWdlcyBhbmQgdHJ5IGFnYWluLlxuIgogICAgIGZp CiAKICAgICBzb3VyY2Vwa2c9IiR7cGtnbmFtZX0iCgpGcm9tIGM0YjIxMzc3N2ZmNjhlMGJmMDcx ZGM4YzliYTRkOTY3NzU2ODViMjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IER1bmNh ZW4gPGR1bmNhZW5Adm9pZGxpbnV4Lm9yZz4KRGF0ZTogV2VkLCAxMiBKdW4gMjAxOSAyMzo1MTow OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi84XSB4YnBzLXNyYzogbGVzcyBmb3JraW5nIGluIGdl dF9zdWJwa2dzIGFuZAogdW5zZXRfcGFja2FnZV9mdW5jcwoKLS0tCiBjb21tb24veGJwcy1zcmMv c2h1dGlscy9jb21tb24uc2ggfCAyMyArKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Nv bW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaCBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxz L2NvbW1vbi5zaAppbmRleCA2MmQ2YWUzMGFlYy4uNjVhZTUwYTAwYTAgMTAwNjQ0Ci0tLSBhL2Nv bW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaAorKysgYi9jb21tb24veGJwcy1zcmMvc2h1 dGlscy9jb21tb24uc2gKQEAgLTI1OCwyMSArMjU4LDI0IEBAIHJ1bl9wa2dfaG9va3MoKSB7CiB1 bnNldF9wYWNrYWdlX2Z1bmNzKCkgewogICAgIGxvY2FsIGYKIAotICAgIGZvciBmIGluICQodHlw ZXNldCAtRnxncmVwIC1FICdfcGFja2FnZSQnKTsgZG8KLSAgICAgICAgZXZhbCB1bnNldCAtZiAk ZgorICAgIGZvciBmIGluICIkKHR5cGVzZXQgLUYpIjsgZG8KKyAgICAgICAgY2FzZSAiJGYiIGlu CisgICAgICAgICpfcGFja2FnZSkKKyAgICAgICAgICAgIHVuc2V0IC1mICIkZiIKKyAgICAgICAg ICAgIDs7CisgICAgICAgIGVzYWMKICAgICBkb25lCiB9CiAKIGdldF9zdWJwa2dzKCkgewotICAg IGxvY2FsIGFyZ3MgbGlzdAorICAgIGxvY2FsIGYKIAotICAgIGFyZ3M9IiQodHlwZXNldCAtRnxn cmVwIC1FICdfcGFja2FnZSQnKSIKLSAgICBzZXQgLS0gJHthcmdzfQotICAgIHdoaWxlIFsgJCMg LWd0IDAgXTsgZG8KLSAgICAgICAgbGlzdCs9IiAkezMlX3BhY2thZ2V9Ijsgc2hpZnQgMwotICAg IGRvbmUKLSAgICBmb3IgZiBpbiAke2xpc3R9OyBkbwotICAgICAgICBlY2hvICIkZiIKKyAgICBm b3IgZiBpbiAkKHR5cGVzZXQgLUYpOyBkbworICAgICAgICBjYXNlICIkZiIgaW4KKyAgICAgICAg Kl9wYWNrYWdlKQorICAgICAgICAgICAgZWNobyAiJHtmJV9wYWNrYWdlfSIKKyAgICAgICAgICAg IDs7CisgICAgICAgIGVzYWMKICAgICBkb25lCiB9CiAKCkZyb20gNTBmMGZmOGMxMDg5OTZiZDEz YmE5NTMwMDQ4YmUwYzc0YWNhOGFjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRHVu Y2FlbiA8ZHVuY2FlbkB2b2lkbGludXgub3JnPgpEYXRlOiBXZWQsIDEyIEp1biAyMDE5IDIzOjUy OjI0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzLzhdIHhicHMtc3JjOiBzaW1wbGlmeSBzZXRfYnVp bGRfb3B0aW9ucwoKLS0tCiBjb21tb24veGJwcy1zcmMvc2h1dGlscy9jb21tb24uc2ggfCA0NyAr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0 aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3hicHMtc3JjL3No dXRpbHMvY29tbW9uLnNoIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY29tbW9uLnNoCmluZGV4 IDY1YWU1MGEwMGEwLi5jNDQ3ZTVmZDg1MCAxMDA2NDQKLS0tIGEvY29tbW9uL3hicHMtc3JjL3No dXRpbHMvY29tbW9uLnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaApA QCAtMTU0LDcgKzE1NCw3IEBAIG1zZ19ub3JtYWxfYXBwZW5kKCkgewogfQogCiBzZXRfYnVpbGRf b3B0aW9ucygpIHsKLSAgICBsb2NhbCBmIGogb3B0IG9wdHZhbCBfb3B0c3NldCBwa2dvcHRzIF9w a2duYW1lCisgICAgbG9jYWwgZiBqIHBrZ29wdHMgX3BrZ25hbWUKICAgICBsb2NhbCAtQSBvcHRp b25zCiAKICAgICBpZiBbIC16ICIkYnVpbGRfb3B0aW9ucyIgXTsgdGhlbgpAQCAtMTcwLDMwICsx NzAsMjEgQEAgc2V0X2J1aWxkX29wdGlvbnMoKSB7CiAgICAgICAgIGZpCiAgICAgICAgIE9JRlM9 IiRJRlMiOyBJRlM9JywnCiAgICAgICAgIGZvciBqIGluICR7cGtnb3B0c307IGRvCi0gICAgICAg ICAgICBvcHQ9JHtqI1x+fQotICAgICAgICAgICAgb3B0X2Rpc2FibGVkPSR7ajowOjF9Ci0gICAg ICAgICAgICBpZiBbICIkb3B0IiA9ICIkZiIgXTsgdGhlbgotICAgICAgICAgICAgICAgIGlmIFsg IiRvcHRfZGlzYWJsZWQiICE9ICJ+IiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIGV2YWwg b3B0aW9uc1skb3B0XT0xCi0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg ICBldmFsIG9wdGlvbnNbJG9wdF09MAotICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICBm aQorICAgICAgICAgICAgY2FzZSAiJGoiIGluCisgICAgICAgICAgICAiJGYiKSBvcHRpb25zWyRq XT0xIDs7CisgICAgICAgICAgICAifiRmIikgb3B0aW9uc1ske2ojXH59XT0wIDs7CisgICAgICAg ICAgICBlc2FjCiAgICAgICAgIGRvbmUKICAgICAgICAgSUZTPSIkT0lGUyIKICAgICBkb25lCiAK ICAgICBmb3IgZiBpbiAke2J1aWxkX29wdGlvbnNfZGVmYXVsdH07IGRvCi0gICAgICAgIG9wdHZh bD0ke29wdGlvbnNbJGZdfQotICAgICAgICBpZiBbWyAteiAiJG9wdHZhbCIgXV0gfHwgW1sgJG9w dHZhbCAtZXEgMSBdXTsgdGhlbgotICAgICAgICAgICAgb3B0aW9uc1skZl09MQotICAgICAgICBm aQorICAgICAgICBbWyAteiAiJHtvcHRpb25zWyRmXX0iIF1dICYmIG9wdGlvbnNbJGZdPTEKICAg ICBkb25lCiAKICAgICAjIFByZXBhcmUgZmluYWwgb3B0aW9ucy4KICAgICBmb3IgZiBpbiAkeyFv cHRpb25zW0BdfTsgZG8KLSAgICAgICAgb3B0dmFsPSR7b3B0aW9uc1skZl19Ci0gICAgICAgIGlm IFtbICRvcHR2YWwgLWVxIDEgXV07IHRoZW4KKyAgICAgICAgaWYgW1sgJHtvcHRpb25zWyRmXX0g LWVxIDEgXV07IHRoZW4KICAgICAgICAgICAgIGV2YWwgZXhwb3J0IGJ1aWxkX29wdGlvbl8ke2Z9 PTEKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZXZhbCB1bnNldCBidWlsZF9vcHRpb25fJHtm fQpAQCAtMjEwLDI1ICsyMDEsMTMgQEAgc2V0X2J1aWxkX29wdGlvbnMoKSB7CiAgICAgICAgIHJl dHVybiAwCiAgICAgZmkKIAotICAgIGZvciBmIGluICR7YnVpbGRfb3B0aW9uc307IGRvCi0gICAg ICAgIGV2YWwgb3B0dmFsPSR7b3B0aW9uc1skZl19Ci0gICAgICAgIGlmIFtbICRvcHR2YWwgLWVx IDEgXV07IHRoZW4KLSAgICAgICAgICAgIF9vcHRzc2V0Kz0iICR7Zn0iCi0gICAgICAgIGVsc2UK LSAgICAgICAgICAgIF9vcHRzc2V0Kz0iIH4ke2Z9IgotICAgICAgICBmaQotICAgIGRvbmUKLQot ICAgIGZvciBmIGluICR7X29wdHNzZXR9OyBkbwotICAgICAgICBpZiBbIC16ICIkUEtHX0JVSUxE X09QVElPTlMiIF07IHRoZW4KLSAgICAgICAgICAgIFBLR19CVUlMRF9PUFRJT05TPSIkZiIKLSAg ICAgICAgZWxzZQotICAgICAgICAgICAgUEtHX0JVSUxEX09QVElPTlMrPSIgJGYiCi0gICAgICAg IGZpCi0gICAgZG9uZQotCiAgICAgIyBTb3J0IHBrZyBidWlsZCBvcHRpb25zIGFscGhhYmV0aWNh bGx5LgotICAgIGV4cG9ydCBQS0dfQlVJTERfT1BUSU9OUz0iJChlY2hvICIkUEtHX0JVSUxEX09Q VElPTlMifHRyICcgJyAnXG4nfHNvcnR8dHIgJ1xuJyAnICcpIgorICAgIGV4cG9ydCBQS0dfQlVJ TERfT1BUSU9OUz0kKAorICAgICAgICBmb3IgZiBpbiAke2J1aWxkX29wdGlvbnN9OyBkbworICAg ICAgICAgICAgW1sgIiR7b3B0aW9uc1skZl19IiAtZXEgMSBdXSB8fCBwcmludGYgJ34nCisgICAg ICAgICAgICBwcmludGYgJyVzXG4nICIkZiIKKyAgICAgICAgZG9uZSB8IHNvcnQKKyAgICApCiB9 CiAKIHNvdXJjZV9maWxlKCkgewoKRnJvbSA2NWY5M2I0NDk2MDAwMTE5MTIzYTkzZWE1NjdiYmI2 NTQ0ZTE0OWQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEdW5jYWVuIDxkdW5jYWVu QHZvaWRsaW51eC5vcmc+CkRhdGU6IFRodSwgMTMgSnVuIDIwMTkgMDA6Mjk6NDkgKzAyMDAKU3Vi amVjdDogW1BBVENIIDQvOF0geGJwcy1zcmM6IG9wZW4gJFhCUFNfTUFTVEVSRElSL2V0Yy94YnBz L3hicHMtc3JjLmNvbmYKIG9ubHkgb25jZQoKLS0tCiBjb21tb24veGJwcy1zcmMvc2h1dGlscy9j aHJvb3Quc2ggfCAxMyArKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24veGJwcy1zcmMvc2h1dGls cy9jaHJvb3Quc2ggYi9jb21tb24veGJwcy1zcmMvc2h1dGlscy9jaHJvb3Quc2gKaW5kZXggNTBl YjE5NWE0YmQuLjk2OGVhMGU4NDNhIDEwMDY0NAotLS0gYS9jb21tb24veGJwcy1zcmMvc2h1dGls cy9jaHJvb3Quc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY2hyb290LnNoCkBAIC0z LDE3ICszLDExIEBACiAjIEZJWE1FOiAkWEJQU19GRkxBR1MgaXMgbm90IHNldCB3aGVuIGNocm9v dF9pbml0KCkgaXMgcnVuCiAjIEl0IGlzIHNldCBpbiBjb21tb24vYnVpbGQtcHJvZmlsZXMvYm9v dHN0cmFwLnNoIGJ1dCBsb3N0IHNvbWV3aGVyZT8KIGNocm9vdF9pbml0KCkgewotICAgIFhCUFNT UkNfQ0Y9JFhCUFNfTUFTVEVSRElSL2V0Yy94YnBzL3hicHMtc3JjLmNvbmYKLQogICAgIG1rZGly IC1wICRYQlBTX01BU1RFUkRJUi9ldGMveGJwcwogCi0gICAgY2F0ID4gJFhCUFNTUkNfQ0YgPDxf RU9GCisgICAgY2F0ID4gJFhCUFNfTUFTVEVSRElSL2V0Yy94YnBzL3hicHMtc3JjLmNvbmYgPDxf RU9GCiAjIEdlbmVyYXRlZCBjb25maWd1cmF0aW9uIGZpbGUgYnkgeGJwcy1zcmMsIERPIE5PVCBF RElUIQotX0VPRgotICAgIGlmIFsgLWUgIiRYQlBTX0NPTkZJR19GSUxFIiBdOyB0aGVuCi0gICAg ICAgIGdyZXAgLUUgJ15YQlBTXy4qJyAkWEJQU19DT05GSUdfRklMRSA+PiAkWEJQU1NSQ19DRgot ICAgIGZpCi0gICAgY2F0ID4+ICRYQlBTU1JDX0NGIDw8X0VPRgorJChncmVwIC1FICdeWEJQU18u KicgIiRYQlBTX0NPTkZJR19GSUxFIikKIFhCUFNfTUFTVEVSRElSPS8KIFhCUFNfQ0ZMQUdTPSIk WEJQU19DRkxBR1MiCiBYQlBTX0NYWEZMQUdTPSIkWEJQU19DWFhGTEFHUyIKQEAgLTIxLDEwICsx NSw5IEBAIFhCUFNfRkZMQUdTPSItZlBJQyAtcGlwZSIKIFhCUFNfQ1BQRkxBR1M9IiRYQlBTX0NQ UEZMQUdTIgogWEJQU19MREZMQUdTPSIkWEJQU19MREZMQUdTIgogWEJQU19IT1NURElSPS9ob3N0 CisjIEVuZCBvZiBjb25maWd1cmF0aW9uIGZpbGUuCiBfRU9GCiAKLSAgICBlY2hvICIjIEVuZCBv ZiBjb25maWd1cmF0aW9uIGZpbGUuIiA+PiAkWEJQU1NSQ19DRgotCiAgICAgIyBDcmVhdGUgY3Vz dG9tIHNjcmlwdCB0byBzdGFydCB0aGUgY2hyb290IGJhc2ggc2hlbGwuCiAgICAgY2F0ID4gJFhC UFNfTUFTVEVSRElSL2Jpbi94YnBzLXNoZWxsIDw8X0VPRgogIyEvYmluL3NoCgpGcm9tIGJjZWRm ODI1NmU5N2IzM2E0NDIzZTlmNmExZmM5NGRjNTUxNGIyNmQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IER1bmNhZW4gPGR1bmNhZW5Adm9pZGxpbnV4Lm9yZz4KRGF0ZTogVGh1LCAxMyBK dW4gMjAxOSAwMDozNzo1OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNS84XSB4YnBzLXNyYzogdXNl IHN1YnN0aXR1dGlvbnMgaW5zdGVhZCBvZiBzZWQgZm9yIHhicHMtc2hlbGwKCi0tLQogY29tbW9u L3hicHMtc3JjL3NodXRpbHMvY2hyb290LnNoIHwgMTYgKysrKy0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv Y29tbW9uL3hicHMtc3JjL3NodXRpbHMvY2hyb290LnNoIGIvY29tbW9uL3hicHMtc3JjL3NodXRp bHMvY2hyb290LnNoCmluZGV4IDk2OGVhMGU4NDNhLi5lYThmN2I2MjQ2NSAxMDA2NDQKLS0tIGEv Y29tbW9uL3hicHMtc3JjL3NodXRpbHMvY2hyb290LnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9z aHV0aWxzL2Nocm9vdC5zaApAQCAtMjgsMjAgKzI4LDEyIEBAIFhCUFNfU1JDX1ZFUlNJT049IiRY QlBTX1NSQ19WRVJTSU9OIgogCiBQQVRIPS92b2lkLXBhY2thZ2VzOi91c3IvYmluOi91c3Ivc2Jp bgogCi1leGVjIGVudiAtaSAtLSBTSEVMTD0vYmluL3NoIFBBVEg9IlwkUEFUSCIgRElTVENDX0hP U1RTPSJcJFhCUFNfRElTVENDX0hPU1RTIiBESVNUQ0NfRElSPSIvaG9zdC9kaXN0Y2MiIEBAWEFS Q0hAQCBcCi0gICAgQEBDSEVDS0BAIENDQUNIRV9ESVI9Ii9ob3N0L2NjYWNoZSIgSU5fQ0hST09U PTEgTENfQ09MTEFURT1DIExBTkc9ZW5fVVMuVVRGLTggVEVSTT1saW51eCBIT01FPSIvdG1wIiBc CitleGVjIGVudiAtaSAtLSBTSEVMTD0vYmluL3NoIFBBVEg9IlwkUEFUSCIgRElTVENDX0hPU1RT PSJcJFhCUFNfRElTVENDX0hPU1RTIiBESVNUQ0NfRElSPSIvaG9zdC9kaXN0Y2MiIFwKKyAgICAk e1hCUFNfQVJDSCtYQlBTX0FSQ0g9JFhCUFNfQVJDSH0gJHtYQlBTX0NIRUNLX1BLR1MrWEJQU19D SEVDS19QS0dTPSRYQlBTX0NIRUNLX1BLR1N9IFwKKyAgICBDQ0FDSEVfRElSPSIvaG9zdC9jY2Fj aGUiIElOX0NIUk9PVD0xIExDX0NPTExBVEU9QyBMQU5HPWVuX1VTLlVURi04IFRFUk09bGludXgg SE9NRT0iL3RtcCIgXAogICAgIFBTMT0iW1x1QCRYQlBTX01BU1RFUkRJUiBcV10kICIgL2Jpbi9i YXNoICtoCiBfRU9GCi0gICAgaWYgWyAtbiAiJFhCUFNfQVJDSCIgXTsgdGhlbgotICAgICAgICBz ZWQgLWUgInMsQEBYQVJDSEBALFhCUFNfQVJDSD0ke1hCUFNfQVJDSH0sZyIgLWkgJFhCUFNfTUFT VEVSRElSL2Jpbi94YnBzLXNoZWxsCi0gICAgZWxzZQotICAgICAgICBzZWQgLWUgJ3MsQEBYQVJD SEBALCxnJyAtaSAkWEJQU19NQVNURVJESVIvYmluL3hicHMtc2hlbGwKLSAgICBmaQotICAgIGlm IFsgLXogIiRYQlBTX0NIRUNLX1BLR1MiIF07IHRoZW4KLSAgICAgICAgc2VkIC1lICdzLEBAQ0hF Q0tAQCwsZycgLWkgJFhCUFNfTUFTVEVSRElSL2Jpbi94YnBzLXNoZWxsCi0gICAgZWxzZQotICAg ICAgICBzZWQgLWUgInMsQEBDSEVDS0BALFhCUFNfQ0hFQ0tfUEtHUz0kWEJQU19DSEVDS19QS0dT LGciIC1pICRYQlBTX01BU1RFUkRJUi9iaW4veGJwcy1zaGVsbAotICAgIGZpCisKICAgICBjaG1v ZCA3NTUgJFhCUFNfTUFTVEVSRElSL2Jpbi94YnBzLXNoZWxsCiAKICAgICBjcCAtZiAvZXRjL3Jl c29sdi5jb25mICRYQlBTX01BU1RFUkRJUi9ldGMKCkZyb20gODllOTQ3ZGM5NDdkNmFjOGVjMzc5 NmUzMTljN2QzN2EwMjM1YWYxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRHVuY2Fl biA8ZHVuY2FlbkB2b2lkbGludXgub3JnPgpEYXRlOiBUaHUsIDEzIEp1biAyMDE5IDIzOjU2OjM5 ICswMjAwClN1YmplY3Q6IFtQQVRDSCA2LzhdIHhicHM6IHVwZGF0ZSB0byAwLjU0LWdpdC4gRE8g Tk9UIE1FUkdFCgotLS0KIC4uLi94YnBzL3BhdGNoZXMvZml4LTMyLWJpdC1mb3JtYXR0aW5nLnBh dGNoICB8ICA2MiAtLS0KIHNyY3BrZ3MveGJwcy9wYXRjaGVzL2ZpeC1jb25mZGlyLXNpemUucGF0 Y2ggICB8ICA0MiAtLQogc3JjcGtncy94YnBzL3BhdGNoZXMvZml4LWh0dHBzLXByb3h5LnBhdGNo ICAgIHwgIDUyIC0tCiAuLi4vcGF0Y2hlcy9maXgtbmFtZXNwYWNlLXZpb2xhdGlvbi5wYXRjaCAg ICAgfCA0NzUgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL3hicHMvcGF0Y2hlcy9maXgtcm9v dGRpci1zaXplLnBhdGNoICAgfCAgMjUgLQogc3JjcGtncy94YnBzL3BhdGNoZXMvZml4LXN0cm5j YXQtZGFzaC5wYXRjaCAgIHwgIDE0IC0KIHNyY3BrZ3MveGJwcy90ZW1wbGF0ZSAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAxNCArLQogNyBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyks IDY3NiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3hicHMvcGF0Y2hl cy9maXgtMzItYml0LWZvcm1hdHRpbmcucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3hicHMvcGF0Y2hlcy9maXgtY29uZmRpci1zaXplLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy94YnBzL3BhdGNoZXMvZml4LWh0dHBzLXByb3h5LnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy94YnBzL3BhdGNoZXMvZml4LW5hbWVzcGFjZS12aW9sYXRpb24ucGF0Y2gK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3hicHMvcGF0Y2hlcy9maXgtcm9vdGRpci1zaXpl LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy94YnBzL3BhdGNoZXMvZml4LXN0cm5j YXQtZGFzaC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MveGJwcy9wYXRjaGVzL2ZpeC0zMi1i aXQtZm9ybWF0dGluZy5wYXRjaCBiL3NyY3BrZ3MveGJwcy9wYXRjaGVzL2ZpeC0zMi1iaXQtZm9y bWF0dGluZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTMwMjkyYjlmYTAu LjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MveGJwcy9wYXRjaGVzL2ZpeC0zMi1iaXQtZm9ybWF0 dGluZy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLUZyb20gNGVhZjQ1YTc2 NzllNTlmNmUyNGQ1NDY0ZGMxYTEyMmJkMDU5ZGJiNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IEZveGxldCA8Zm94bGV0QGZ1cmNvZGUuY28+Ci1EYXRlOiBUdWUsIDE3IEp1bCAyMDE4 IDIwOjI2OjA4IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBzdHJpbmcgZm9ybWF0dGluZyBv ZiA2NC1iaXQgdW5zaWduZWQgaW50ZWdlcnMKLQotLS0tCi0gYmluL3hicHMtY3JlYXRlL21haW4u YyB8IDQgKystLQotIGxpYi9wYWNrYWdlX3VucGFjay5jICAgfCA2ICsrKy0tLQotIDIgZmlsZXMg Y2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGJp bi94YnBzLWNyZWF0ZS9tYWluLmMgYmluL3hicHMtY3JlYXRlL21haW4uYwotaW5kZXggZDAzYjlm MzkuLmFhYzk2NzZhIDEwMDY0NAotLS0tIGJpbi94YnBzLWNyZWF0ZS9tYWluLmMKLSsrKyBiaW4v eGJwcy1jcmVhdGUvbWFpbi5jCi1AQCAtNDI2LDcgKzQyNiw3IEBAIGZ0d19jYihjb25zdCBjaGFy ICpmcGF0aCwgY29uc3Qgc3RydWN0IHN0YXQgKnNiLCBjb25zdCBzdHJ1Y3QgZGlyZW50ICpkaXIg X3VudXNlCi0gCQlUQUlMUV9GT1JFQUNIKHhlcCwgJnhlbnRyeV9saXN0LCBlbnRyaWVzKSB7Ci0g CQkJaWYgKHNiLT5zdF9ubGluayA+IDEgJiYgeGVwLT5pbm9kZSA9PSBzYi0+c3RfaW5vKSB7Ci0g CQkJCS8qIG1hdGNoZWQgKi8KLS0JCQkJcHJpbnRmKCIlbHUgJWx1XG4iLCB4ZXAtPmlub2RlLCBz Yi0+c3RfaW5vKTsKLSsJCQkJcHJpbnRmKCIlIlBSSXU2NCIgJSJQUkl1NjQiXG4iLCB4ZXAtPmlu b2RlLCBzYi0+c3RfaW5vKTsKLSAJCQkJaGxpbmsgPSB0cnVlOwotIAkJCQlicmVhazsKLSAJCQl9 Ci1AQCAtNDQxLDcgKzQ0MSw3IEBAIGZ0d19jYihjb25zdCBjaGFyICpmcGF0aCwgY29uc3Qgc3Ry dWN0IHN0YXQgKnNiLCBjb25zdCBzdHJ1Y3QgZGlyZW50ICpkaXIgX3VudXNlCi0gCQkJeGJwc19k aWN0aW9uYXJ5X2dldF91aW50NjQobGlua2luZm8sICJpbm9kZSIsICZpbm9kZSk7Ci0gCQkJaWYg KGlub2RlID09IHNiLT5zdF9pbm8pIHsKLSAJCQkJLyogbWF0Y2hlZCAqLwotLQkJCQlwcmludGYo IiVsdSAlbHVcbiIsIGlub2RlLCBzYi0+c3RfaW5vKTsKLSsJCQkJcHJpbnRmKCIlIlBSSXU2NCIg JSJQUkl1NjQiXG4iLCBpbm9kZSwgc2ItPnN0X2lubyk7Ci0gCQkJCWJyZWFrOwotIAkJCX0KLSAJ CX0KLWRpZmYgLS1naXQgbGliL3BhY2thZ2VfdW5wYWNrLmMgbGliL3BhY2thZ2VfdW5wYWNrLmMK LWluZGV4IDY1NDZhNzdhLi4yNWE2Mzg4ZSAxMDA2NDQKLS0tLSBsaWIvcGFja2FnZV91bnBhY2su YwotKysrIGxpYi9wYWNrYWdlX3VucGFjay5jCi1AQCAtMzc3LDEzICszNzcsMTMgQEAgdW5wYWNr X2FyY2hpdmUoc3RydWN0IHhicHNfaGFuZGxlICp4aHAsCi0gCQkJICAgIGFyY2hpdmVfZW50cnlf Z2lkKGVudHJ5KSkgIT0gMCkgewotIAkJCQl4YnBzX2RiZ19wcmludGYoeGhwLAotIAkJCQkgICAg IiVzOiBmYWlsZWQgIgotLQkJCQkgICAgInRvIHNldCB1aWQvZ2lkIHRvICV6dTolenUgKCVzKVxu IiwKLSsJCQkJICAgICJ0byBzZXQgdWlkL2dpZCB0byAlIlBSSXU2NCI6JSJQUkl1NjQiICglcylc biIsCi0gCQkJCSAgICBwa2d2ZXIsIGFyY2hpdmVfZW50cnlfdWlkKGVudHJ5KSwKLSAJCQkJICAg IGFyY2hpdmVfZW50cnlfZ2lkKGVudHJ5KSwKLSAJCQkJICAgIHN0cmVycm9yKGVycm5vKSk7Ci0g CQkJfSBlbHNlIHsKLSAJCQkJeGJwc19kYmdfcHJpbnRmKHhocCwgIiVzOiBlbnRyeSAlcyBjaGFu Z2VkICIKLS0JCQkJICAgICJ1aWQvZ2lkIHRvICV6dTolenUuXG4iLCBwa2d2ZXIsIGVudHJ5X3Bu YW1lLAotKwkJCQkgICAgInVpZC9naWQgdG8gJSJQUkl1NjQiOiUiUFJJdTY0Ii5cbiIsIHBrZ3Zl ciwgZW50cnlfcG5hbWUsCi0gCQkJCSAgICBhcmNoaXZlX2VudHJ5X3VpZChlbnRyeSksCi0gCQkJ CSAgICBhcmNoaXZlX2VudHJ5X2dpZChlbnRyeSkpOwotIAkJCX0KLUBAIC00MjYsNyArNDI2LDcg QEAgdW5wYWNrX2FyY2hpdmUoc3RydWN0IHhicHNfaGFuZGxlICp4aHAsCi0gCQkJCSAgICAgIEFU X1NZTUxJTktfTk9GT0xMT1cpID09IC0xKSB7Ci0gCQkJCXhicHNfZGJnX3ByaW50Zih4aHAsCi0g CQkJCSAgICAiJXM6IGZhaWxlZCAiCi0tCQkJCSAgICAidG8gc2V0IG10aW1lICVqdSB0byAlczog JXNcbiIsCi0rCQkJCSAgICAidG8gc2V0IG10aW1lICVsdSB0byAlczogJXNcbiIsCi0gCQkJCSAg ICBwa2d2ZXIsIGFyY2hpdmVfZW50cnlfbXRpbWVfbnNlYyhlbnRyeSksCi0gCQkJCSAgICBlbnRy eV9wbmFtZSwKLSAJCQkJICAgIHN0cmVycm9yKGVycm5vKSk7Ci0KZGlmZiAtLWdpdCBhL3NyY3Br Z3MveGJwcy9wYXRjaGVzL2ZpeC1jb25mZGlyLXNpemUucGF0Y2ggYi9zcmNwa2dzL3hicHMvcGF0 Y2hlcy9maXgtY29uZmRpci1zaXplLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBmZWM5Zjk5YTgxNi4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy94YnBzL3BhdGNoZXMvZml4 LWNvbmZkaXItc2l6ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLS0tLSB0 ZXN0cy94YnBzL2xpYnhicHMvY29uZmlnL21haW4uYwkyMDE4LTA3LTMwIDEzOjQ3OjA4LjAwMDAw MDAwMCArMDIwMAotKysrIHRlc3RzL3hicHMvbGlieGJwcy9jb25maWcvbWFpbi5jCTIwMTgtMDgt MDcgMDg6Mzc6MzcuOTAwNjkwOTUzICswMjAwCi1AQCAtMzksNiArMzksOCBAQAotIAlzdHJ1Y3Qg eGJwc19oYW5kbGUgeGg7Ci0gCWNvbnN0IGNoYXIgKnRjc2RpcjsKLSAJY2hhciAqYnVmLCAqYnVm MiwgcHdkW1BBVEhfTUFYXTsKLSsJY2hhciBjb25mZGlyW1BBVEhfTUFYICsgMSArIHNpemVvZigi eGJwcy5kIildOwotKwlzaXplX3QgbGVuOwotIAotIAkvKiBnZXQgdGVzdCBzb3VyY2UgZGlyICov Ci0gCXRjc2RpciA9IGF0Zl90Y19nZXRfY29uZmlnX3Zhcih0YywgInNyY2RpciIpOwotQEAgLTQ4 LDcgKzUwLDkgQEAKLSAKLSAJeGJwc19zdHJsY3B5KHhoLnJvb3RkaXIsIHB3ZCwgc2l6ZW9mKHho LnJvb3RkaXIpKTsKLSAJeGJwc19zdHJsY3B5KHhoLm1ldGFkaXIsIHB3ZCwgc2l6ZW9mKHhoLm1l dGFkaXIpKTsKLS0Jc25wcmludGYoeGguY29uZmRpciwgc2l6ZW9mKHhoLmNvbmZkaXIpLCAiJXMv eGJwcy5kIiwgcHdkKTsKLSsJbGVuID0gc25wcmludGYoY29uZmRpciwgc2l6ZW9mKGNvbmZkaXIp LCAiJXMveGJwcy5kIiwgcHdkKTsKLSsJQVRGX1JFUVVJUkVfRVEoKGxlbiA8IHNpemVvZih4aC5j b25mZGlyKSksIDEpOwotKwltZW1jcHkoeGguY29uZmRpciwgY29uZmRpciwgbGVuICsgMSk7Ci0g Ci0gCUFURl9SRVFVSVJFX0VRKHhicHNfbWtwYXRoKHhoLmNvbmZkaXIsIDA3NTUpLCAwKTsKLSAK LUBAIC04OCw2ICs4OCw4IEBACi0gCXN0cnVjdCB4YnBzX2hhbmRsZSB4aDsKLSAJY29uc3QgY2hh ciAqdGNzZGlyOwotIAljaGFyICpidWYsICpidWYyLCBwd2RbUEFUSF9NQVhdOwotKwljaGFyIGNv bmZkaXJbUEFUSF9NQVggKyAxICsgc2l6ZW9mKCJ4YnBzLmQiKV07Ci0rCXNpemVfdCBsZW47Ci0g Ci0gCS8qIGdldCB0ZXN0IHNvdXJjZSBkaXIgKi8KLSAJdGNzZGlyID0gYXRmX3RjX2dldF9jb25m aWdfdmFyKHRjLCAic3JjZGlyIik7Ci1AQCAtOTcsNyArOTksOSBAQAotIAotIAl4YnBzX3N0cmxj cHkoeGgucm9vdGRpciwgdGNzZGlyLCBzaXplb2YoeGgucm9vdGRpcikpOwotIAl4YnBzX3N0cmxj cHkoeGgubWV0YWRpciwgdGNzZGlyLCBzaXplb2YoeGgubWV0YWRpcikpOwotLQlzbnByaW50Zih4 aC5jb25mZGlyLCBzaXplb2YoeGguY29uZmRpciksICIlcy94YnBzLmQiLCBwd2QpOwotKwlsZW4g PSBzbnByaW50Zihjb25mZGlyLCBzaXplb2YoY29uZmRpciksICIlcy94YnBzLmQiLCBwd2QpOwot KwlBVEZfUkVRVUlSRV9FUSgobGVuIDwgc2l6ZW9mKHhoLmNvbmZkaXIpKSwgMSk7Ci0rCW1lbWNw eSh4aC5jb25mZGlyLCBjb25mZGlyLCBsZW4gKyAxKTsKLSAKLSAJQVRGX1JFUVVJUkVfRVEoeGJw c19ta3BhdGgoeGguY29uZmRpciwgMDc1NSksIDApOwotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy94 YnBzL3BhdGNoZXMvZml4LWh0dHBzLXByb3h5LnBhdGNoIGIvc3JjcGtncy94YnBzL3BhdGNoZXMv Zml4LWh0dHBzLXByb3h5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NjBj MjQ1YjNhZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy94YnBzL3BhdGNoZXMvZml4LWh0dHBz LXByb3h5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBAQAotRnJvbSAwN2VjOTgy YjA3OGY4NjcyYzhjZGJiNDJiZjJlODYxYzk2OWFiNDBiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogRHVuY2FlbiA8bWFpbEBkdW5jYW5vLmRlPgotRGF0ZTogTW9uLCA4IEFwciAyMDE5 IDEzOjE2OjUzICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGxpYi9mZXRjaC9odHRwLmM6IGlnbm9y ZSBoZWFkZXJzIGFmdGVyIENPTk5FQ1QgcmVzcG9uc2UKLQotLS0tCi0gbGliL2ZldGNoL2h0dHAu YyB8IDE5ICsrKysrKysrKysrKysrKysrKy0KLSAxIGZpbGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGxpYi9mZXRjaC9odHRwLmMgbGliL2Zl dGNoL2h0dHAuYwotaW5kZXggZGNjN2JmN2QuLmNiMjc5MDVlIDEwMDY0NAotLS0tIGxpYi9mZXRj aC9odHRwLmMKLSsrKyBsaWIvZmV0Y2gvaHR0cC5jCi1AQCAtNzIxLDYgKzcyMSw4IEBAIGh0dHBf Y29ubmVjdChzdHJ1Y3QgdXJsICpVUkwsIHN0cnVjdCB1cmwgKnB1cmwsIGNvbnN0IGNoYXIgKmZs YWdzLCBpbnQgKmNhY2hlZCkKLSB7Ci0gCXN0cnVjdCB1cmwgKmN1cmw7Ci0gCWNvbm5fdCAqY29u bjsKLSsJY29uc3QgY2hhciAqcDsKLSsJaGRyX3QgaDsKLSAJaW50IGFmLCB2ZXJib3NlOwotICNp ZmRlZiBUQ1BfTk9QVVNICi0gCWludCB2YWw7Ci1AQCAtNzU5LDEwICs3NjEsMjUgQEAgaHR0cF9j b25uZWN0KHN0cnVjdCB1cmwgKlVSTCwgc3RydWN0IHVybCAqcHVybCwgY29uc3QgY2hhciAqZmxh Z3MsIGludCAqY2FjaGVkKQotIAkJaHR0cF9jbWQoY29ubiwgIlxyXG4iKTsKLSAKLSAJCWlmICho dHRwX2dldF9yZXBseShjb25uKSAhPSBIVFRQX09LKSB7Ci0rCQkJaHR0cF9zZXRlcnIoY29ubi0+ ZXJyKTsKLSAJCQlmZXRjaF9jbG9zZShjb25uKTsKLSAJCQlyZXR1cm4gKE5VTEwpOwotIAkJfQot LQkJaHR0cF9nZXRfcmVwbHkoY29ubik7Ci0rCQkvKiBSZWFkIGFuZCBkaXNjYXJkIHRoZSByZXN0 IG9mIHRoZSBwcm94eSByZXNwb25zZSAqLwotKwkJZG8gewotKwkJCXN3aXRjaCAoKGggPSBodHRw X25leHRfaGVhZGVyKGNvbm4sICZwKSkpIHsKLSsJCQljYXNlIGhkcl9zeXNlcnJvcjoKLSsJCQkJ ZmV0Y2hfc3lzZXJyKCk7Ci0rCQkJCWZldGNoX2Nsb3NlKGNvbm4pOwotKwkJCQlyZXR1cm4gKE5V TEwpOwotKwkJCWNhc2UgaGRyX2Vycm9yOgotKwkJCQlodHRwX3NldGVycihIVFRQX1BST1RPQ09M X0VSUk9SKTsKLSsJCQkJZmV0Y2hfY2xvc2UoY29ubik7Ci0rCQkJCXJldHVybiAoTlVMTCk7Ci0r CQkJZGVmYXVsdDoKLSsJCQkJLyogaWdub3JlICovIDsKLSsJCQl9Ci0rCQl9IHdoaWxlIChoID4g aGRyX2VuZCk7Ci0gCX0KLSAJaWYgKHN0cmNhc2VjbXAoVVJMLT5zY2hlbWUsIFNDSEVNRV9IVFRQ UykgPT0gMCAmJgotIAkgICAgZmV0Y2hfc3NsKGNvbm4sIFVSTCwgdmVyYm9zZSkgPT0gLTEpIHsK LS0tIAotMi4yMS4wCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MveGJwcy9wYXRjaGVzL2ZpeC1uYW1l c3BhY2UtdmlvbGF0aW9uLnBhdGNoIGIvc3JjcGtncy94YnBzL3BhdGNoZXMvZml4LW5hbWVzcGFj ZS12aW9sYXRpb24ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY3YjAyMDJk ODhlLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3hicHMvcGF0Y2hlcy9maXgtbmFtZXNwYWNl LXZpb2xhdGlvbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ3NSArMCwwIEBACi1Gcm9tIDBm MzM4NTk3MDE1MjcxZWU1MDQxMDBjMzJmZDJjNDkyNmVmZGI0MjMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBGb3hsZXQgPGZveGxldEBmdXJjb2RlLmNvPgotRGF0ZTogVHVlLCAxNyBK dWwgMjAxOCAyMjoyNDoyNiAtMDQwMAotU3ViamVjdDogW1BBVENIXSBGaXggbmFtZXNwYWNlIHZp b2xhdGlvbgotCi0tLS0KLSBiaW4veGJwcy1hbHRlcm5hdGl2ZXMvbWFpbi5jICAgICAgICB8ICAy ICstCi0gYmluL3hicHMtY3JlYXRlL21haW4uYyAgICAgICAgICAgICAgfCAgNCArLS0KLSBiaW4v eGJwcy1pbnN0YWxsL21haW4uYyAgICAgICAgICAgICB8ICA0ICstLQotIGJpbi94YnBzLWluc3Rh bGwvc3RhdGVfY2IuYyAgICAgICAgIHwgIDIgKy0KLSBiaW4veGJwcy1wa2dkYi9jaGVjay5jICAg ICAgICAgICAgICB8ICA2ICsrLS0tCi0gYmluL3hicHMtcGtnZGIvY2hlY2tfcGtnX3VubmVlZGVk LmMgfCAgMiArLQotIGJpbi94YnBzLXF1ZXJ5L2xpc3QuYyAgICAgICAgICAgICAgIHwgMzggKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KLSBiaW4veGJwcy1xdWVyeS9vd25lZGJ5LmMgICAg ICAgICAgICB8IDEwICsrKystLS0tCi0gYmluL3hicHMtcXVlcnkvc2VhcmNoLmMgICAgICAgICAg ICAgfCAgOCArKystLS0KLSBiaW4veGJwcy1yZWNvbmZpZ3VyZS9tYWluLmMgICAgICAgICB8ICAy ICstCi0gYmluL3hicHMtcmVtb3ZlL2NsZWFuLWNhY2hlLmMgICAgICAgfCAgNCArLS0KLSBiaW4v eGJwcy1yZW1vdmUvbWFpbi5jICAgICAgICAgICAgICB8ICAyICstCi0gYmluL3hicHMtcmluZGV4 L2luZGV4LWNsZWFuLmMgICAgICAgfCAgNCArLS0KLSBiaW4veGJwcy1yaW5kZXgvcmVtb3ZlLW9i c29sZXRlcy5jICB8ICAyICstCi0gYmluL3hicHMtdWNocm9vdC9tYWluLmMgICAgICAgICAgICAg fCAgNCArLS0KLSBjb25maWd1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCi0g bGliL3BhY2thZ2Vfb3JwaGFucy5jICAgICAgICAgICAgICAgfCAgMiArLQotIGxpYi9wbGlzdF9m ZXRjaC5jICAgICAgICAgICAgICAgICAgIHwgIDYgKystLS0KLSBsaWIvcnBvb2wuYyAgICAgICAg ICAgICAgICAgICAgICAgICB8ICA2ICsrLS0tCi0gbGliL3RyYW5zYWN0aW9uX2NvbmZsaWN0cy5j ICAgICAgICAgfCAgMiArLQotIDIwIGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDU2 IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGJpbi94YnBzLWFsdGVybmF0aXZlcy9tYWluLmMg YmluL3hicHMtYWx0ZXJuYXRpdmVzL21haW4uYwotaW5kZXggYzcyMmE3NGIuLjk0YWIzMWU4IDEw MDY0NAotLS0tIGJpbi94YnBzLWFsdGVybmF0aXZlcy9tYWluLmMKLSsrKyBiaW4veGJwcy1hbHRl cm5hdGl2ZXMvbWFpbi5jCi1AQCAtNTUsNyArNTUsNyBAQCB1c2FnZShib29sIGZhaWwpCi0gfQot IAotIHN0YXRpYyBpbnQKLS1zdGF0ZV9jYihjb25zdCBzdHJ1Y3QgeGJwc19zdGF0ZV9jYl9kYXRh ICp4c2NkLCB2b2lkICpjYmQgX3VudXNlZCkKLStzdGF0ZV9jYihjb25zdCBzdHJ1Y3QgeGJwc19z dGF0ZV9jYl9kYXRhICp4c2NkLCB2b2lkICpjYmQgVU5VU0VEKQotIHsKLSAJYm9vbCBzbG9nID0g ZmFsc2U7Ci0gCi1kaWZmIC0tZ2l0IGJpbi94YnBzLWNyZWF0ZS9tYWluLmMgYmluL3hicHMtY3Jl YXRlL21haW4uYwotaW5kZXggYWFjOTY3NmEuLjJjMjExMjE1IDEwMDY0NAotLS0tIGJpbi94YnBz LWNyZWF0ZS9tYWluLmMKLSsrKyBiaW4veGJwcy1jcmVhdGUvbWFpbi5jCi1AQCAtMTk5LDcgKzE5 OSw3IEBAIHByb2Nlc3Nfb25lX2FsdGVybmF0aXZlKGNvbnN0IGNoYXIgKmFsdGdybmFtZSwgY29u c3QgY2hhciAqdmFsKQotIAotIAotIHN0YXRpYyB2b2lkCi0tcHJvY2Vzc19kaWN0X29mX2FycmF5 cyhjb25zdCBjaGFyICprZXkgX3VudXNlZCwgY29uc3QgY2hhciAqdmFsKQotK3Byb2Nlc3NfZGlj dF9vZl9hcnJheXMoY29uc3QgY2hhciAqa2V5IFVOVVNFRCwgY29uc3QgY2hhciAqdmFsKQotIHsK LSAJY2hhciAqYWx0Z3JuYW1lLCAqYXJncywgKnAsICpzYXZlcHRyOwotIAotQEAgLTMwMiw3ICsz MDIsNyBAQCBlbnRyeV9pc19jb25mX2ZpbGUoY29uc3QgY2hhciAqZmlsZSkKLSB9Ci0gCi0gc3Rh dGljIGludAotLWZ0d19jYihjb25zdCBjaGFyICpmcGF0aCwgY29uc3Qgc3RydWN0IHN0YXQgKnNi LCBjb25zdCBzdHJ1Y3QgZGlyZW50ICpkaXIgX3VudXNlZCkKLStmdHdfY2IoY29uc3QgY2hhciAq ZnBhdGgsIGNvbnN0IHN0cnVjdCBzdGF0ICpzYiwgY29uc3Qgc3RydWN0IGRpcmVudCAqZGlyIFVO VVNFRCkKLSB7Ci0gCXN0cnVjdCB4ZW50cnkgKnhlID0gTlVMTDsKLSAJeGJwc19kaWN0aW9uYXJ5 X3QgZmlsZWluZm8gPSBOVUxMOwotZGlmZiAtLWdpdCBiaW4veGJwcy1pbnN0YWxsL21haW4uYyBi aW4veGJwcy1pbnN0YWxsL21haW4uYwotaW5kZXggYjU3ZjJmZTkuLmRhMjBkYTFhIDEwMDY0NAot LS0tIGJpbi94YnBzLWluc3RhbGwvbWFpbi5jCi0rKysgYmluL3hicHMtaW5zdGFsbC9tYWluLmMK LUBAIC02OCw3ICs2OCw3IEBAIHVzYWdlKGJvb2wgZmFpbCkKLSB9Ci0gCi0gc3RhdGljIHZvaWQK LS11bnBhY2tfcHJvZ3Jlc3NfY2IoY29uc3Qgc3RydWN0IHhicHNfdW5wYWNrX2NiX2RhdGEgKnhw ZCwgdm9pZCAqY2JkYXRhIF91bnVzZWQpCi0rdW5wYWNrX3Byb2dyZXNzX2NiKGNvbnN0IHN0cnVj dCB4YnBzX3VucGFja19jYl9kYXRhICp4cGQsIHZvaWQgKmNiZGF0YSBVTlVTRUQpCi0gewotIAlp ZiAoeHBkLT5lbnRyeSA9PSBOVUxMIHx8IHhwZC0+ZW50cnlfdG90YWxfY291bnQgPD0gMCkKLSAJ CXJldHVybjsKLUBAIC04MCw3ICs4MCw3IEBAIHVucGFja19wcm9ncmVzc19jYihjb25zdCBzdHJ1 Y3QgeGJwc191bnBhY2tfY2JfZGF0YSAqeHBkLCB2b2lkICpjYmRhdGEgX3VudXNlZCkKLSB9Ci0g Ci0gc3RhdGljIGludAotLXJlcG9faW1wb3J0X2tleV9jYihzdHJ1Y3QgeGJwc19yZXBvICpyZXBv LCB2b2lkICphcmcgX3VudXNlZCwgYm9vbCAqZG9uZSBfdW51c2VkKQotK3JlcG9faW1wb3J0X2tl eV9jYihzdHJ1Y3QgeGJwc19yZXBvICpyZXBvLCB2b2lkICphcmcgVU5VU0VELCBib29sICpkb25l IFVOVVNFRCkKLSB7Ci0gCWludCBydjsKLSAKLWRpZmYgLS1naXQgYmluL3hicHMtaW5zdGFsbC9z dGF0ZV9jYi5jIGJpbi94YnBzLWluc3RhbGwvc3RhdGVfY2IuYwotaW5kZXggNTE4OWI5YTkuLmEy MDYzY2VhIDEwMDY0NAotLS0tIGJpbi94YnBzLWluc3RhbGwvc3RhdGVfY2IuYwotKysrIGJpbi94 YnBzLWluc3RhbGwvc3RhdGVfY2IuYwotQEAgLTMyLDcgKzMyLDcgQEAKLSAjaW5jbHVkZSAiZGVm cy5oIgotIAotIGludAotLXN0YXRlX2NiKGNvbnN0IHN0cnVjdCB4YnBzX3N0YXRlX2NiX2RhdGEg KnhzY2QsIHZvaWQgKmNiZGF0YSBfdW51c2VkKQotK3N0YXRlX2NiKGNvbnN0IHN0cnVjdCB4YnBz X3N0YXRlX2NiX2RhdGEgKnhzY2QsIHZvaWQgKmNiZGF0YSBVTlVTRUQpCi0gewotIAl4YnBzX2Rp Y3Rpb25hcnlfdCBwa2dkOwotIAljb25zdCBjaGFyICppbnN0dmVyLCAqbmV3dmVyOwotZGlmZiAt LWdpdCBiaW4veGJwcy1wa2dkYi9jaGVjay5jIGJpbi94YnBzLXBrZ2RiL2NoZWNrLmMKLWluZGV4 IGVkMzkzMzk4Li42YWUxMWRiNyAxMDA2NDQKLS0tLSBiaW4veGJwcy1wa2dkYi9jaGVjay5jCi0r KysgYmluL3hicHMtcGtnZGIvY2hlY2suYwotQEAgLTM2LDExICszNiwxMSBAQAotICNpbmNsdWRl ICJkZWZzLmgiCi0gCi0gc3RhdGljIGludAotLXBrZ2RiX2NiKHN0cnVjdCB4YnBzX2hhbmRsZSAq eGhwIF91bnVzZWQsCi0rcGtnZGJfY2Ioc3RydWN0IHhicHNfaGFuZGxlICp4aHAgVU5VU0VELAot IAkJeGJwc19vYmplY3RfdCBvYmosCi0tCQljb25zdCBjaGFyICprZXkgX3VudXNlZCwKLSsJCWNv bnN0IGNoYXIgKmtleSBVTlVTRUQsCi0gCQl2b2lkICphcmcsCi0tCQlib29sICpkb25lIF91bnVz ZWQpCi0rCQlib29sICpkb25lIFVOVVNFRCkKLSB7Ci0gCWNvbnN0IGNoYXIgKnBrZ3ZlcjsKLSAJ Y2hhciAqcGtnbmFtZTsKLWRpZmYgLS1naXQgYmluL3hicHMtcGtnZGIvY2hlY2tfcGtnX3VubmVl ZGVkLmMgYmluL3hicHMtcGtnZGIvY2hlY2tfcGtnX3VubmVlZGVkLmMKLWluZGV4IGQyMjQ5MzA0 Li4yYjEzN2IzZiAxMDA2NDQKLS0tLSBiaW4veGJwcy1wa2dkYi9jaGVja19wa2dfdW5uZWVkZWQu YwotKysrIGJpbi94YnBzLXBrZ2RiL2NoZWNrX3BrZ191bm5lZWRlZC5jCi1AQCAtNDMsNyArNDMs NyBAQAotICAqIAkgIGFuZCByZW1vdmUgdGhlbSBpZiB0aGF0IHdhcyB0cnVlLgotICAqLwotIGlu dAotLWNoZWNrX3BrZ191bm5lZWRlZChzdHJ1Y3QgeGJwc19oYW5kbGUgKnhocCBfdW51c2VkLCBj b25zdCBjaGFyICpwa2duYW1lLCB2b2lkICphcmcpCi0rY2hlY2tfcGtnX3VubmVlZGVkKHN0cnVj dCB4YnBzX2hhbmRsZSAqeGhwIFVOVVNFRCwgY29uc3QgY2hhciAqcGtnbmFtZSwgdm9pZCAqYXJn KQotIHsKLSAJeGJwc19hcnJheV90IHJlcGxhY2VzOwotIAl4YnBzX2RpY3Rpb25hcnlfdCBwa2dk ID0gYXJnOwotZGlmZiAtLWdpdCBiaW4veGJwcy1xdWVyeS9saXN0LmMgYmluL3hicHMtcXVlcnkv bGlzdC5jCi1pbmRleCBkZGRhOGJlOC4uZjA4MzM0YzMgMTAwNjQ0Ci0tLS0gYmluL3hicHMtcXVl cnkvbGlzdC5jCi0rKysgYmluL3hicHMtcXVlcnkvbGlzdC5jCi1AQCAtMzgsMTEgKzM4LDExIEBA IHN0cnVjdCBsaXN0X3BrZ3Zlcl9jYiB7Ci0gfTsKLSAKLSBpbnQKLS1saXN0X3BrZ3NfaW5fZGlj dChzdHJ1Y3QgeGJwc19oYW5kbGUgKnhocCBfdW51c2VkLAotK2xpc3RfcGtnc19pbl9kaWN0KHN0 cnVjdCB4YnBzX2hhbmRsZSAqeGhwIFVOVVNFRCwKLSAJCSAgeGJwc19vYmplY3RfdCBvYmosCi0t CQkgIGNvbnN0IGNoYXIgKmtleSBfdW51c2VkLAotKwkJICBjb25zdCBjaGFyICprZXkgVU5VU0VE LAotIAkJICB2b2lkICphcmcsCi0tCQkgIGJvb2wgKmxvb3BfZG9uZSBfdW51c2VkKQotKwkJICBi b29sICpsb29wX2RvbmUgVU5VU0VEKQotIHsKLSAJc3RydWN0IGxpc3RfcGtndmVyX2NiICpscGMg PSBhcmc7Ci0gCWNvbnN0IGNoYXIgKnBrZ3ZlciwgKnNob3J0X2Rlc2MsICpzdGF0ZV9zdHI7Ci1A QCAtODgsMTEgKzg4LDExIEBAIGxpc3RfcGtnc19pbl9kaWN0KHN0cnVjdCB4YnBzX2hhbmRsZSAq eGhwIF91bnVzZWQsCi0gfQotIAotIGludAotLWxpc3RfbWFudWFsX3BrZ3Moc3RydWN0IHhicHNf aGFuZGxlICp4aHAgX3VudXNlZCwKLStsaXN0X21hbnVhbF9wa2dzKHN0cnVjdCB4YnBzX2hhbmRs ZSAqeGhwIFVOVVNFRCwKLSAJCSB4YnBzX29iamVjdF90IG9iaiwKLS0JCSBjb25zdCBjaGFyICpr ZXkgX3VudXNlZCwKLS0JCSB2b2lkICphcmcgX3VudXNlZCwKLS0JCSBib29sICpsb29wX2RvbmUg X3VudXNlZCkKLSsJCSBjb25zdCBjaGFyICprZXkgVU5VU0VELAotKwkJIHZvaWQgKmFyZyBVTlVT RUQsCi0rCQkgYm9vbCAqbG9vcF9kb25lIFVOVVNFRCkKLSB7Ci0gCWNvbnN0IGNoYXIgKnBrZ3Zl cjsKLSAJYm9vbCBhdXRvbWF0aWMgPSBmYWxzZTsKLUBAIC0xMDcsMTEgKzEwNywxMSBAQCBsaXN0 X21hbnVhbF9wa2dzKHN0cnVjdCB4YnBzX2hhbmRsZSAqeGhwIF91bnVzZWQsCi0gfQotIAotIGlu dAotLWxpc3RfaG9sZF9wa2dzKHN0cnVjdCB4YnBzX2hhbmRsZSAqeGhwIF91bnVzZWQsCi0rbGlz dF9ob2xkX3BrZ3Moc3RydWN0IHhicHNfaGFuZGxlICp4aHAgVU5VU0VELAotIAkJeGJwc19vYmpl Y3RfdCBvYmosCi0tCQljb25zdCBjaGFyICprZXkgX3VudXNlZCwKLS0JCXZvaWQgKmFyZyBfdW51 c2VkLAotLQkJYm9vbCAqbG9vcF9kb25lIF91bnVzZWQpCi0rCQljb25zdCBjaGFyICprZXkgVU5V U0VELAotKwkJdm9pZCAqYXJnIFVOVVNFRCwKLSsJCWJvb2wgKmxvb3BfZG9uZSBVTlVTRUQpCi0g ewotIAljb25zdCBjaGFyICpwa2d2ZXI7Ci0gCi1AQCAtMTI0LDExICsxMjQsMTEgQEAgbGlzdF9o b2xkX3BrZ3Moc3RydWN0IHhicHNfaGFuZGxlICp4aHAgX3VudXNlZCwKLSB9Ci0gCi0gaW50Ci0t bGlzdF9yZXBvbG9ja19wa2dzKHN0cnVjdCB4YnBzX2hhbmRsZSAqeGhwIF91bnVzZWQsCi0rbGlz dF9yZXBvbG9ja19wa2dzKHN0cnVjdCB4YnBzX2hhbmRsZSAqeGhwIFVOVVNFRCwKLSAJCXhicHNf b2JqZWN0X3Qgb2JqLAotLQkJY29uc3QgY2hhciAqa2V5IF91bnVzZWQsCi0tCQl2b2lkICphcmcg X3VudXNlZCwKLS0JCWJvb2wgKmxvb3BfZG9uZSBfdW51c2VkKQotKwkJY29uc3QgY2hhciAqa2V5 IFVOVVNFRCwKLSsJCXZvaWQgKmFyZyBVTlVTRUQsCi0rCQlib29sICpsb29wX2RvbmUgVU5VU0VE KQotIHsKLSAJY29uc3QgY2hhciAqcGtndmVyOwotIAotQEAgLTE3MSw3ICsxNzEsNyBAQCBsaXN0 X3BrZ3NfcGtnZGIoc3RydWN0IHhicHNfaGFuZGxlICp4aHApCi0gfQotIAotIHN0YXRpYyBpbnQK LS1yZXBvX2xpc3RfdXJpX2NiKHN0cnVjdCB4YnBzX3JlcG8gKnJlcG8sIHZvaWQgKmFyZyBfdW51 c2VkLCBib29sICpkb25lIF91bnVzZWQpCi0rcmVwb19saXN0X3VyaV9jYihzdHJ1Y3QgeGJwc19y ZXBvICpyZXBvLCB2b2lkICphcmcgVU5VU0VELCBib29sICpkb25lIFVOVVNFRCkKLSB7Ci0gCWNv bnN0IGNoYXIgKnNpZ25lZGJ5ID0gTlVMTDsKLSAJdWludDE2X3QgcHVia2V5c2l6ZSA9IDA7Ci1A QCAtMjE5LDExICsyMTksMTEgQEAgc3RydWN0IGZmbG9uZ2VzdCB7Ci0gfTsKLSAKLSBzdGF0aWMg aW50Ci0tX2ZpbmRfbG9uZ2VzdF9wa2d2ZXJfY2Ioc3RydWN0IHhicHNfaGFuZGxlICp4aHAgX3Vu dXNlZCwKLStfZmluZF9sb25nZXN0X3BrZ3Zlcl9jYihzdHJ1Y3QgeGJwc19oYW5kbGUgKnhocCBV TlVTRUQsCi0gCQkJeGJwc19vYmplY3RfdCBvYmosCi0tCQkJY29uc3QgY2hhciAqa2V5IF91bnVz ZWQsCi0rCQkJY29uc3QgY2hhciAqa2V5IFVOVVNFRCwKLSAJCQl2b2lkICphcmcsCi0tCQkJYm9v bCAqbG9vcF9kb25lIF91bnVzZWQpCi0rCQkJYm9vbCAqbG9vcF9kb25lIFVOVVNFRCkKLSB7Ci0g CXN0cnVjdCBmZmxvbmdlc3QgKmZmbCA9IGFyZzsKLSAJY29uc3QgY2hhciAqcGtndmVyOwotZGlm ZiAtLWdpdCBiaW4veGJwcy1xdWVyeS9vd25lZGJ5LmMgYmluL3hicHMtcXVlcnkvb3duZWRieS5j Ci1pbmRleCBmYzg2ODRkYy4uMTFmNzZhOTkgMTAwNjQ0Ci0tLS0gYmluL3hicHMtcXVlcnkvb3du ZWRieS5jCi0rKysgYmluL3hicHMtcXVlcnkvb3duZWRieS5jCi1AQCAtOTcsOSArOTcsOSBAQCBt YXRjaF9maWxlc19ieV9wYXR0ZXJuKHhicHNfZGljdGlvbmFyeV90IHBrZ19maWxlc2QsCi0gc3Rh dGljIGludAotIG93bmVkYnlfcGtnZGJfY2Ioc3RydWN0IHhicHNfaGFuZGxlICp4aHAsCi0gCQl4 YnBzX29iamVjdF90IG9iaiwKLS0JCWNvbnN0IGNoYXIgKm9ial9rZXkgX3VudXNlZCwKLSsJCWNv bnN0IGNoYXIgKm9ial9rZXkgVU5VU0VELAotIAkJdm9pZCAqYXJnLAotLQkJYm9vbCAqZG9uZSBf dW51c2VkKQotKwkJYm9vbCAqZG9uZSBVTlVTRUQpCi0gewotIAl4YnBzX2RpY3Rpb25hcnlfdCBw a2dtZXRhZDsKLSAJeGJwc19hcnJheV90IGZpbGVzX2tleXM7Ci1AQCAtMTI5LDkgKzEyOSw5IEBA IG93bmVkYnlfcGtnZGJfY2Ioc3RydWN0IHhicHNfaGFuZGxlICp4aHAsCi0gc3RhdGljIGludAot IHJlcG9fbWF0Y2hfY2Ioc3RydWN0IHhicHNfaGFuZGxlICp4aHAsCi0gCQl4YnBzX29iamVjdF90 IG9iaiwKLS0JCWNvbnN0IGNoYXIgKmtleSBfdW51c2VkLAotKwkJY29uc3QgY2hhciAqa2V5IFVO VVNFRCwKLSAJCXZvaWQgKmFyZywKLS0JCWJvb2wgKmRvbmUgX3VudXNlZCkKLSsJCWJvb2wgKmRv bmUgVU5VU0VEKQotIHsKLSAJeGJwc19kaWN0aW9uYXJ5X3QgZmlsZXNkOwotIAl4YnBzX2FycmF5 X3QgZmlsZXNfa2V5czsKLUBAIC0xNjMsNyArMTYzLDcgQEAgcmVwb19tYXRjaF9jYihzdHJ1Y3Qg eGJwc19oYW5kbGUgKnhocCwKLSB9Ci0gCi0gc3RhdGljIGludAotLXJlcG9fb3duZWRieV9jYihz dHJ1Y3QgeGJwc19yZXBvICpyZXBvLCB2b2lkICphcmcsIGJvb2wgKmRvbmUgX3VudXNlZCkKLSty ZXBvX293bmVkYnlfY2Ioc3RydWN0IHhicHNfcmVwbyAqcmVwbywgdm9pZCAqYXJnLCBib29sICpk b25lIFVOVVNFRCkKLSB7Ci0gCXhicHNfYXJyYXlfdCBhbGxrZXlzOwotIAlzdHJ1Y3QgZmZkYXRh ICpmZmQgPSBhcmc7Ci1kaWZmIC0tZ2l0IGJpbi94YnBzLXF1ZXJ5L3NlYXJjaC5jIGJpbi94YnBz LXF1ZXJ5L3NlYXJjaC5jCi1pbmRleCA0YjdlZjA1NC4uNDFlMTIxMWQgMTAwNjQ0Ci0tLS0gYmlu L3hicHMtcXVlcnkvc2VhcmNoLmMKLSsrKyBiaW4veGJwcy1xdWVyeS9zZWFyY2guYwotQEAgLTk0 LDExICs5NCwxMSBAQCBwcmludF9yZXN1bHRzKHN0cnVjdCB4YnBzX2hhbmRsZSAqeGhwLCBzdHJ1 Y3Qgc2VhcmNoX2RhdGEgKnNkKQotIH0KLSAKLSBzdGF0aWMgaW50Ci0tc2VhcmNoX2FycmF5X2Ni KHN0cnVjdCB4YnBzX2hhbmRsZSAqeGhwIF91bnVzZWQsCi0rc2VhcmNoX2FycmF5X2NiKHN0cnVj dCB4YnBzX2hhbmRsZSAqeGhwIFVOVVNFRCwKLSAJCXhicHNfb2JqZWN0X3Qgb2JqLAotLQkJY29u c3QgY2hhciAqa2V5IF91bnVzZWQsCi0rCQljb25zdCBjaGFyICprZXkgVU5VU0VELAotIAkJdm9p ZCAqYXJnLAotLQkJYm9vbCAqZG9uZSBfdW51c2VkKQotKwkJYm9vbCAqZG9uZSBVTlVTRUQpCi0g ewotIAl4YnBzX29iamVjdF90IG9iajI7Ci0gCXN0cnVjdCBzZWFyY2hfZGF0YSAqc2QgPSBhcmc7 Ci1AQCAtMjEwLDcgKzIxMCw3IEBAIHNlYXJjaF9hcnJheV9jYihzdHJ1Y3QgeGJwc19oYW5kbGUg KnhocCBfdW51c2VkLAotIH0KLSAKLSBzdGF0aWMgaW50Ci0tc2VhcmNoX3JlcG9fY2Ioc3RydWN0 IHhicHNfcmVwbyAqcmVwbywgdm9pZCAqYXJnLCBib29sICpkb25lIF91bnVzZWQpCi0rc2VhcmNo X3JlcG9fY2Ioc3RydWN0IHhicHNfcmVwbyAqcmVwbywgdm9pZCAqYXJnLCBib29sICpkb25lIFVO VVNFRCkKLSB7Ci0gCXhicHNfYXJyYXlfdCBhbGxrZXlzOwotIAlzdHJ1Y3Qgc2VhcmNoX2RhdGEg KnNkID0gYXJnOwotZGlmZiAtLWdpdCBiaW4veGJwcy1yZWNvbmZpZ3VyZS9tYWluLmMgYmluL3hi cHMtcmVjb25maWd1cmUvbWFpbi5jCi1pbmRleCA4MTQ5NTlhOC4uMTUwOGMzNzUgMTAwNjQ0Ci0t LS0gYmluL3hicHMtcmVjb25maWd1cmUvbWFpbi5jCi0rKysgYmluL3hicHMtcmVjb25maWd1cmUv bWFpbi5jCi1AQCAtNTIsNyArNTIsNyBAQCB1c2FnZShib29sIGZhaWwpCi0gfQotIAotIHN0YXRp YyBpbnQKLS1zdGF0ZV9jYihjb25zdCBzdHJ1Y3QgeGJwc19zdGF0ZV9jYl9kYXRhICp4c2NkLCB2 b2lkICpjYmQgX3VudXNlZCkKLStzdGF0ZV9jYihjb25zdCBzdHJ1Y3QgeGJwc19zdGF0ZV9jYl9k YXRhICp4c2NkLCB2b2lkICpjYmQgVU5VU0VEKQotIHsKLSAJYm9vbCBzbG9nID0gZmFsc2U7Ci0g Ci1kaWZmIC0tZ2l0IGJpbi94YnBzLXJlbW92ZS9jbGVhbi1jYWNoZS5jIGJpbi94YnBzLXJlbW92 ZS9jbGVhbi1jYWNoZS5jCi1pbmRleCBkYWNjOWE1OS4uYjNlMDA2MjIgMTAwNjQ0Ci0tLS0gYmlu L3hicHMtcmVtb3ZlL2NsZWFuLWNhY2hlLmMKLSsrKyBiaW4veGJwcy1yZW1vdmUvY2xlYW4tY2Fj aGUuYwotQEAgLTM4LDggKzM4LDggQEAKLSAKLSBzdGF0aWMgaW50Ci0gY2xlYW5lcl9jYihzdHJ1 Y3QgeGJwc19oYW5kbGUgKnhocCwgeGJwc19vYmplY3RfdCBvYmosCi0tCQljb25zdCBjaGFyICpr ZXkgX3VudXNlZCwgdm9pZCAqYXJnLAotLQkJYm9vbCAqZG9uZSBfdW51c2VkKQotKwkJY29uc3Qg Y2hhciAqa2V5IFVOVVNFRCwgdm9pZCAqYXJnLAotKwkJYm9vbCAqZG9uZSBVTlVTRUQpCi0gewot IAl4YnBzX2RpY3Rpb25hcnlfdCByZXBvX3BrZ2Q7Ci0gCWNvbnN0IGNoYXIgKmJpbnBrZywgKnJz aGEyNTY7Ci1kaWZmIC0tZ2l0IGJpbi94YnBzLXJlbW92ZS9tYWluLmMgYmluL3hicHMtcmVtb3Zl L21haW4uYwotaW5kZXggMjU1NTRlOGMuLjgzOGU2MTBiIDEwMDY0NAotLS0tIGJpbi94YnBzLXJl bW92ZS9tYWluLmMKLSsrKyBiaW4veGJwcy1yZW1vdmUvbWFpbi5jCi1AQCAtNjQsNyArNjQsNyBA QCB1c2FnZShib29sIGZhaWwpCi0gfQotIAotIHN0YXRpYyBpbnQKLS1zdGF0ZV9jYl9ybShjb25z dCBzdHJ1Y3QgeGJwc19zdGF0ZV9jYl9kYXRhICp4c2NkLCB2b2lkICpjYmRhdGEgX3VudXNlZCkK LStzdGF0ZV9jYl9ybShjb25zdCBzdHJ1Y3QgeGJwc19zdGF0ZV9jYl9kYXRhICp4c2NkLCB2b2lk ICpjYmRhdGEgVU5VU0VEKQotIHsKLSAJYm9vbCBzbG9nID0gZmFsc2U7Ci0gCi1kaWZmIC0tZ2l0 IGJpbi94YnBzLXJpbmRleC9pbmRleC1jbGVhbi5jIGJpbi94YnBzLXJpbmRleC9pbmRleC1jbGVh bi5jCi1pbmRleCAzNjRkNTdlZC4uMjdjZWRkNmUgMTAwNjQ0Ci0tLS0gYmluL3hicHMtcmluZGV4 L2luZGV4LWNsZWFuLmMKLSsrKyBiaW4veGJwcy1yaW5kZXgvaW5kZXgtY2xlYW4uYwotQEAgLTQ3 LDkgKzQ3LDkgQEAgc3RydWN0IENsZWFuZXJDYkluZm8gewotIHN0YXRpYyBpbnQKLSBpZHhfY2xl YW5lcl9jYihzdHJ1Y3QgeGJwc19oYW5kbGUgKnhocCwKLSAJCXhicHNfb2JqZWN0X3Qgb2JqLAot LQkJY29uc3QgY2hhciAqa2V5IF91bnVzZWQsCi0rCQljb25zdCBjaGFyICprZXkgVU5VU0VELAot IAkJdm9pZCAqYXJnLAotLQkJYm9vbCAqZG9uZSBfdW51c2VkKQotKwkJYm9vbCAqZG9uZSBVTlVT RUQpCi0gewotIAlzdHJ1Y3QgQ2xlYW5lckNiSW5mbyAqaW5mbyA9IGFyZzsKLSAJY29uc3QgY2hh ciAqYXJjaCwgKnBrZ3ZlciwgKnNoYTI1NjsKLWRpZmYgLS1naXQgYmluL3hicHMtcmluZGV4L3Jl bW92ZS1vYnNvbGV0ZXMuYyBiaW4veGJwcy1yaW5kZXgvcmVtb3ZlLW9ic29sZXRlcy5jCi1pbmRl eCBmNDI2ZmU3Yy4uODBjZjJmZmYgMTAwNjQ0Ci0tLS0gYmluL3hicHMtcmluZGV4L3JlbW92ZS1v YnNvbGV0ZXMuYwotKysrIGJpbi94YnBzLXJpbmRleC9yZW1vdmUtb2Jzb2xldGVzLmMKLUBAIC02 NSw3ICs2NSw3IEBAIHJlbW92ZV9wa2coY29uc3QgY2hhciAqcmVwb2RpciwgY29uc3QgY2hhciAq ZmlsZSkKLSB9Ci0gCi0gc3RhdGljIGludAotLWNsZWFuZXJfY2Ioc3RydWN0IHhicHNfaGFuZGxl ICp4aHAsIHhicHNfb2JqZWN0X3Qgb2JqLCBjb25zdCBjaGFyICprZXkgX3VudXNlZCwgdm9pZCAq YXJnLCBib29sICpkb25lIF91bnVzZWQpCi0rY2xlYW5lcl9jYihzdHJ1Y3QgeGJwc19oYW5kbGUg KnhocCwgeGJwc19vYmplY3RfdCBvYmosIGNvbnN0IGNoYXIgKmtleSBVTlVTRUQsIHZvaWQgKmFy ZywgYm9vbCAqZG9uZSBVTlVTRUQpCi0gewotIAlzdHJ1Y3QgeGJwc19yZXBvICpyZXBvID0gKChz dHJ1Y3QgeGJwc19yZXBvICoqKWFyZylbMF0sICpzdGFnZSA9ICgoc3RydWN0IHhicHNfcmVwbyAq KilhcmcpWzFdOwotIAljb25zdCBjaGFyICpiaW5wa2c7Ci1kaWZmIC0tZ2l0IGJpbi94YnBzLXVj aHJvb3QvbWFpbi5jIGJpbi94YnBzLXVjaHJvb3QvbWFpbi5jCi1pbmRleCAwZWUxMzI1My4uYzIz MmRlOGUgMTAwNjQ0Ci0tLS0gYmluL3hicHMtdWNocm9vdC9tYWluLmMKLSsrKyBiaW4veGJwcy11 Y2hyb290L21haW4uYwotQEAgLTEwOSw4ICsxMDksOCBAQCBkaWUoY29uc3QgY2hhciAqZm10LCAu Li4pCi0gfQotIAotIHN0YXRpYyBpbnQKLS1mdHdfY2IoY29uc3QgY2hhciAqZnBhdGgsIGNvbnN0 IHN0cnVjdCBzdGF0ICpzYiBfdW51c2VkLCBpbnQgdHlwZSwKLS0JCXN0cnVjdCBGVFcgKmZ0d2J1 ZiBfdW51c2VkKQotK2Z0d19jYihjb25zdCBjaGFyICpmcGF0aCwgY29uc3Qgc3RydWN0IHN0YXQg KnNiIFVOVVNFRCwgaW50IHR5cGUsCi0rCQlzdHJ1Y3QgRlRXICpmdHdidWYgVU5VU0VEKQotIHsK LSAJaW50IHN2ZXJybm8gPSAwOwotIAotZGlmZiAtLWdpdCBjb25maWd1cmUgY29uZmlndXJlCi1p bmRleCAzMmNjNTU2OS4uZWJlZjk5MGEgMTAwNzU1Ci0tLS0gY29uZmlndXJlCi0rKysgY29uZmln dXJlCi1AQCAtMTkyLDcgKzE5Miw3IEBAIGVjaG8gIkNQUEZMQUdTICs9CS1EWEJQU19TWVNDT05G X1BBVEg9XFxcIiR7RVRDRElSfVxcXCIiID4+JENPTkZJR19NSwotIGVjaG8gIkNQUEZMQUdTICs9 CS1EWEJQU19TWVNERUZDT05GX1BBVEg9XFxcIiR7U0hBUkVESVJ9L3hicHMuZFxcXCIiID4+JENP TkZJR19NSwotIGVjaG8gIkNQUEZMQUdTICs9CS1EWEJQU19WRVJTSU9OPVxcXCIke1ZFUlNJT059 XFxcIiIgPj4kQ09ORklHX01LCi0gZWNobyAiQ1BQRkxBR1MgKz0JLURYQlBTX01FVEFfUEFUSD1c XFwiJHtEQkRJUn1cXFwiIiA+PiRDT05GSUdfTUsKLS1lY2hvICJDUFBGTEFHUyArPQktRF91bnVz ZWQ9XCJfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSlcIiIgPj4kQ09ORklHX01LCi0rZWNobyAi Q1BQRkxBR1MgKz0JLURVTlVTRUQ9XCJfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSlcIiIgPj4k Q09ORklHX01LCi0gCi0gaWYgWyAtZCAuZ2l0IF07IHRoZW4KLSAJX2dpdHJldj0kKGdpdCByZXYt cGFyc2UgLS1zaG9ydCBIRUFEKQotZGlmZiAtLWdpdCBsaWIvcGFja2FnZV9vcnBoYW5zLmMgbGli L3BhY2thZ2Vfb3JwaGFucy5jCi1pbmRleCA0YTMxZmUxZC4uYjkwOGMwNDkgMTAwNjQ0Ci0tLS0g bGliL3BhY2thZ2Vfb3JwaGFucy5jCi0rKysgbGliL3BhY2thZ2Vfb3JwaGFucy5jCi1AQCAtNjAs NyArNjAsNyBAQAotICAqLwotIAotIHhicHNfYXJyYXlfdAotLXhicHNfZmluZF9wa2dfb3JwaGFu cyhzdHJ1Y3QgeGJwc19oYW5kbGUgKnhocCwgeGJwc19hcnJheV90IG9ycGhhbnNfdXNlciBfdW51 c2VkKQotK3hicHNfZmluZF9wa2dfb3JwaGFucyhzdHJ1Y3QgeGJwc19oYW5kbGUgKnhocCwgeGJw c19hcnJheV90IG9ycGhhbnNfdXNlciBVTlVTRUQpCi0gewotIAl4YnBzX2FycmF5X3QgcmRlcHMs IHJlcWJ5LCBhcnJheSA9IE5VTEw7Ci0gCXhicHNfZGljdGlvbmFyeV90IHBrZ2QsIGRlcHBrZ2Q7 Ci1kaWZmIC0tZ2l0IGxpYi9wbGlzdF9mZXRjaC5jIGxpYi9wbGlzdF9mZXRjaC5jCi1pbmRleCBh MTUzNTUxNS4uZmVkZDhjZTggMTAwNjQ0Ci0tLS0gbGliL3BsaXN0X2ZldGNoLmMKLSsrKyBsaWIv cGxpc3RfZmV0Y2guYwotQEAgLTQ2LDcgKzQ2LDcgQEAgc3RydWN0IGZldGNoX2FyY2hpdmUgewot IH07Ci0gCi0gc3RhdGljIGludAotLWZldGNoX2FyY2hpdmVfb3BlbihzdHJ1Y3QgYXJjaGl2ZSAq YSBfdW51c2VkLCB2b2lkICpjbGllbnRfZGF0YSkKLStmZXRjaF9hcmNoaXZlX29wZW4oc3RydWN0 IGFyY2hpdmUgKmEgVU5VU0VELCB2b2lkICpjbGllbnRfZGF0YSkKLSB7Ci0gCXN0cnVjdCBmZXRj aF9hcmNoaXZlICpmID0gY2xpZW50X2RhdGE7Ci0gCi1AQCAtNTksNyArNTksNyBAQCBmZXRjaF9h cmNoaXZlX29wZW4oc3RydWN0IGFyY2hpdmUgKmEgX3VudXNlZCwgdm9pZCAqY2xpZW50X2RhdGEp Ci0gfQotIAotIHN0YXRpYyBzc2l6ZV90Ci0tZmV0Y2hfYXJjaGl2ZV9yZWFkKHN0cnVjdCBhcmNo aXZlICphIF91bnVzZWQsIHZvaWQgKmNsaWVudF9kYXRhLCBjb25zdCB2b2lkICoqYnVmKQotK2Zl dGNoX2FyY2hpdmVfcmVhZChzdHJ1Y3QgYXJjaGl2ZSAqYSBVTlVTRUQsIHZvaWQgKmNsaWVudF9k YXRhLCBjb25zdCB2b2lkICoqYnVmKQotIHsKLSAJc3RydWN0IGZldGNoX2FyY2hpdmUgKmYgPSBj bGllbnRfZGF0YTsKLSAKLUBAIC02OCw3ICs2OCw3IEBAIGZldGNoX2FyY2hpdmVfcmVhZChzdHJ1 Y3QgYXJjaGl2ZSAqYSBfdW51c2VkLCB2b2lkICpjbGllbnRfZGF0YSwgY29uc3Qgdm9pZCAqKmJ1 Ci0gfQotIAotIHN0YXRpYyBpbnQKLS1mZXRjaF9hcmNoaXZlX2Nsb3NlKHN0cnVjdCBhcmNoaXZl ICphIF91bnVzZWQsIHZvaWQgKmNsaWVudF9kYXRhKQotK2ZldGNoX2FyY2hpdmVfY2xvc2Uoc3Ry dWN0IGFyY2hpdmUgKmEgVU5VU0VELCB2b2lkICpjbGllbnRfZGF0YSkKLSB7Ci0gCXN0cnVjdCBm ZXRjaF9hcmNoaXZlICpmID0gY2xpZW50X2RhdGE7Ci0gCi1kaWZmIC0tZ2l0IGxpYi9ycG9vbC5j IGxpYi9ycG9vbC5jCi1pbmRleCA5YWNjMTE4MS4uOTRhZjcyOTggMTAwNjQ0Ci0tLS0gbGliL3Jw b29sLmMKLSsrKyBsaWIvcnBvb2wuYwotQEAgLTEyMCw3ICsxMjAsNyBAQCB4YnBzX3Jwb29sX2dl dF9yZXBvKGNvbnN0IGNoYXIgKnVybCkKLSB9Ci0gCi0gdm9pZAotLXhicHNfcnBvb2xfcmVsZWFz ZShzdHJ1Y3QgeGJwc19oYW5kbGUgKnhocCBfdW51c2VkKQotK3hicHNfcnBvb2xfcmVsZWFzZShz dHJ1Y3QgeGJwc19oYW5kbGUgKnhocCBVTlVTRUQpCi0gewotIAlzdHJ1Y3QgeGJwc19yZXBvICpy ZXBvOwotIAotQEAgLTE5NSw3ICsxOTUsNyBAQCBmaW5kX3BrZ19jYihzdHJ1Y3QgeGJwc19yZXBv ICpyZXBvLCB2b2lkICphcmcsIGJvb2wgKmRvbmUpCi0gfQotIAotIHN0YXRpYyBpbnQKLS1maW5k X3BrZ19yZXZkZXBzX2NiKHN0cnVjdCB4YnBzX3JlcG8gKnJlcG8sIHZvaWQgKmFyZywgYm9vbCAq ZG9uZSBfdW51c2VkKQotK2ZpbmRfcGtnX3JldmRlcHNfY2Ioc3RydWN0IHhicHNfcmVwbyAqcmVw bywgdm9pZCAqYXJnLCBib29sICpkb25lIFVOVVNFRCkKLSB7Ci0gCXN0cnVjdCBycG9vbF9mcGtn ICpycGYgPSBhcmc7Ci0gCXhicHNfYXJyYXlfdCByZXZkZXBzID0gTlVMTDsKLUBAIC0yMTYsNyAr MjE2LDcgQEAgZmluZF9wa2dfcmV2ZGVwc19jYihzdHJ1Y3QgeGJwc19yZXBvICpyZXBvLCB2b2lk ICphcmcsIGJvb2wgKmRvbmUgX3VudXNlZCkKLSB9Ci0gCi0gc3RhdGljIGludAotLWZpbmRfYmVz dF9wa2dfY2Ioc3RydWN0IHhicHNfcmVwbyAqcmVwbywgdm9pZCAqYXJnLCBib29sICpkb25lIF91 bnVzZWQpCi0rZmluZF9iZXN0X3BrZ19jYihzdHJ1Y3QgeGJwc19yZXBvICpyZXBvLCB2b2lkICph cmcsIGJvb2wgKmRvbmUgVU5VU0VEKQotIHsKLSAJc3RydWN0IHJwb29sX2Zwa2cgKnJwZiA9IGFy ZzsKLSAJeGJwc19kaWN0aW9uYXJ5X3QgcGtnZDsKLWRpZmYgLS1naXQgbGliL3RyYW5zYWN0aW9u X2NvbmZsaWN0cy5jIGxpYi90cmFuc2FjdGlvbl9jb25mbGljdHMuYwotaW5kZXggMDk5NzVjZWUu LjM4Nzg5NWE0IDEwMDY0NAotLS0tIGxpYi90cmFuc2FjdGlvbl9jb25mbGljdHMuYwotKysrIGxp Yi90cmFuc2FjdGlvbl9jb25mbGljdHMuYwotQEAgLTE0OCw3ICsxNDgsNyBAQCBwa2dfY29uZmxp Y3RzX3RyYW5zKHN0cnVjdCB4YnBzX2hhbmRsZSAqeGhwLCB4YnBzX2FycmF5X3QgYXJyYXksCi0g Ci0gc3RhdGljIGludAotIHBrZ2RiX2NvbmZsaWN0c19jYihzdHJ1Y3QgeGJwc19oYW5kbGUgKnho cCwgeGJwc19vYmplY3RfdCBvYmosCi0tCQljb25zdCBjaGFyICprZXkgX3VudXNlZCwgdm9pZCAq YXJnLCBib29sICpkb25lIF91bnVzZWQpCi0rCQljb25zdCBjaGFyICprZXkgVU5VU0VELCB2b2lk ICphcmcsIGJvb2wgKmRvbmUgVU5VU0VEKQotIHsKLSAJeGJwc19hcnJheV90IHBrZ19jZmxpY3Rz LCB0cmFuc19jZmxpY3RzLCBwa2dzID0gYXJnOwotIAl4YnBzX2RpY3Rpb25hcnlfdCBwa2dkOwot LS0gCi0yLjE5LjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy94YnBzL3BhdGNoZXMvZml4LXJvb3Rk aXItc2l6ZS5wYXRjaCBiL3NyY3BrZ3MveGJwcy9wYXRjaGVzL2ZpeC1yb290ZGlyLXNpemUucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3Y2E3YjI2NTg4Li4wMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL3hicHMvcGF0Y2hlcy9maXgtcm9vdGRpci1zaXplLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotLS0tIGxpYi9pbml0ZW5kLmMJMjAxOC0wNy0zMCAx Mzo0NzowOC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBsaWIvaW5pdGVuZC5jCTIwMTgtMDgtMDcgMDg6 Mjg6MjQuMjYxNjYyMzkxICswMjAwCi1AQCAtMzk4LDYgKzM5OCw3IEBACi0gewotIAlzdHJ1Y3Qg dXRzbmFtZSB1bjsKLSAJY2hhciBjd2RbUEFUSF9NQVgtMV0sIHN5c2NvbmZkaXJbWEJQU19NQVhQ QVRIK3NpemVvZihYQlBTX1NZU0RFRkNPTkZfUEFUSCldLCAqYnVmOwotKwljaGFyIHJlbHBhdGhb UEFUSF9NQVgrMStYQlBTX01BWFBBVEhdOwotIAljb25zdCBjaGFyICpyZXBvZGlyLCAqbmF0aXZl X2FyY2g7Ci0gCWludCBydjsKLSAKLUBAIC00MTIsOSArNDEzLDEzIEBACi0gCQl4aHAtPnJvb3Rk aXJbMF0gPSAnLyc7Ci0gCQl4aHAtPnJvb3RkaXJbMV0gPSAnXDAnOwotIAl9IGVsc2UgaWYgKHho cC0+cm9vdGRpclswXSAhPSAnLycpIHsKLSsJCXNpemVfdCBsZW47Ci0gCQlidWYgPSBzdHJkdXAo eGhwLT5yb290ZGlyKTsKLS0JCXNucHJpbnRmKHhocC0+cm9vdGRpciwgc2l6ZW9mKHhocC0+cm9v dGRpciksICIlcy8lcyIsIGN3ZCwgYnVmKTsKLSsJCWxlbiA9IHNucHJpbnRmKHJlbHBhdGgsIHNp emVvZihyZWxwYXRoKSwgIiVzLyVzIiwgY3dkLCBidWYpOwotIAkJZnJlZShidWYpOwotKwkJaWYg KGxlbiA+PSBYQlBTX01BWFBBVEgpCi0rCQkJcmV0dXJuIEVOT1RTVVA7Ci0rCQltZW1jcHkoeGhw LT5yb290ZGlyLCByZWxwYXRoLCBsZW4gKyAxKTsKLSAJfQotIAl4YnBzX2RiZ19wcmludGYoeGhw LCAiJXNcbiIsIFhCUFNfUkVMVkVSKTsKLSAJLyogc2V0IGNvbmZkaXIgKi8KZGlmZiAtLWdpdCBh L3NyY3BrZ3MveGJwcy9wYXRjaGVzL2ZpeC1zdHJuY2F0LWRhc2gucGF0Y2ggYi9zcmNwa2dzL3hi cHMvcGF0Y2hlcy9maXgtc3RybmNhdC1kYXNoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBhY2FiZjQxODY1ZC4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy94YnBzL3BhdGNo ZXMvZml4LXN0cm5jYXQtZGFzaC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAK LS0tLSBiaW4veGJwcy1jaGVja3ZlcnMvbWFpbi5jCTIwMTgtMDctMzAgMTM6NDc6MDguMDAwMDAw MDAwICswMjAwCi0rKysgYmluL3hicHMtY2hlY2t2ZXJzL21haW4uYwkyMDE4LTA4LTA3IDA4OjQ3 OjAzLjA3MDcyMDEwOSArMDIwMAotQEAgLTU5OSw5ICs1OTksOSBAQAotIAllbHNlCi0gCQlyY3Yt PnBrZ2QgPSB4YnBzX3Jwb29sX2dldF9wa2coJnJjdi0+eGhwLCBzcmN2ZXIpOwotIAotLQlzcmN2 ZXIgPSBzdHJuY2F0KHNyY3ZlciwgIi0iLCAxKTsKLSsJc3JjdmVyID0gc3RybmNhdChzcmN2ZXIs ICItIiwgMik7Ci0gCXNyY3ZlciA9IHN0cm5jYXQoc3JjdmVyLCB2ZXJzaW9uLnYucywgdmVyc2lv bi52Lmxlbik7Ci0tCXNyY3ZlciA9IHN0cm5jYXQoc3JjdmVyLCAiXyIsIDEpOwotKwlzcmN2ZXIg PSBzdHJuY2F0KHNyY3ZlciwgIl8iLCAyKTsKLSAJc3JjdmVyID0gc3RybmNhdChzcmN2ZXIsIHJl dmlzaW9uLnYucywgcmV2aXNpb24udi5sZW4pOwotIAotIAl4YnBzX2RpY3Rpb25hcnlfZ2V0X2Nz dHJpbmdfbm9jb3B5KHJjdi0+cGtnZCwgInBrZ3ZlciIsICZyZXBvdmVyKTsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MveGJwcy90ZW1wbGF0ZSBiL3NyY3BrZ3MveGJwcy90ZW1wbGF0ZQppbmRleCAyM2M4 ZDkwMGM0YS4uYzQyYzFmYjM4NWQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MveGJwcy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3hicHMvdGVtcGxhdGUKQEAgLTEsMTUgKzEsMTcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3hicHMnCiBwa2duYW1lPXhicHMKLXZlcnNpb249MC41MwotcmV2aXNpb249MTAK K3ZlcnNpb249MC41NAorcmV2aXNpb249MQorX2dpdHJldj0iZjE4Y2Y4N2UzYTU5YmVkMGViZWQ1 Y2NlZDY0NjljMTE3OTFkMzNlZCIKK3dya3NyYz0ieGJwcy0ke19naXRyZXZ9IgogYm9vdHN0cmFw PXllcwogYnVpbGRfc3R5bGU9Y29uZmlndXJlCiBzaG9ydF9kZXNjPSJUaGUgWEJQUyBwYWNrYWdl IHN5c3RlbSB1dGlsaXRpZXMiCiBtYWludGFpbmVyPSJKdWFuIFJQIDx4dHJhZW1lQHZvaWRsaW51 eC5vcmc+IgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3hicHMiCiBs aWNlbnNlPSJCU0QtMi1DbGF1c2UiCi1kaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS92b2lk LWxpbnV4L3hicHMvYXJjaGl2ZS8ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTM2MGIzMTQ5 MTQxZmVjNDZkZDZkYTkwMTk2MDViY2VlNDhlZTRkMjliZmZlNWFhNDdhOWZkNWZhNjhjY2Q1ZjQK K2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgveGJwcy9hcmNoaXZlLyR7 X2dpdHJldn0udGFyLmd6IgorY2hlY2tzdW09NTE3NTM3MGM0ODc1MmU0OGY2YmE2YTFkZWM3MjYw MWE3NTNkNjAzN2JlNDA3MzgxMDdmNTMzMWI3ODc2OGJlNQogCiBob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWciCiBjaGVja2RlcGVuZHM9Imt5dWEiCkBAIC00OCw4ICs1MCw4IEBAIHBvc3RfaW5z dGFsbCgpIHsKIAkJCSR7REVTVERJUn0vdXNyL3NoYXJlL3hicHMuZC8wMC1yZXBvc2l0b3J5LW1h aW4uY29uZgogCQk7OwogCWVzYWMKLQl2bGljZW5zZSBDT1BZSU5HCi0JdmxpY2Vuc2UgQ09QWUlO Ry4zUkRQQVJUWQorCXZsaWNlbnNlIExJQ0VOU0UubWQKKwl2bGljZW5zZSBMSUNFTlNFLjNSRFBB UlRZCiB9CiAKIGxpYnhicHNfcGFja2FnZSgpIHsKCkZyb20gZjIwNmU1YjM4ODBmZDY1NGQzMTc0 ZGZiZDI2Nzc4MjQ3YmUxMjgxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRHVuY2Fl biA8ZHVuY2FlbkB2b2lkbGludXgub3JnPgpEYXRlOiBUaHUsIDEzIEp1biAyMDE5IDIzOjU3OjI3 ICswMjAwClN1YmplY3Q6IFtQQVRDSCA3LzhdIHhicHMtc3JjOiB1cGRhdGUgZm9yIHhicHMgMC41 NAoKLS0tCiB4YnBzLXNyYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hicHMtc3JjIGIveGJwcy1zcmMKaW5k ZXggNjVjNDVhZGE1NmQuLjI1ZTBlZmY4MjU0IDEwMDc1NQotLS0gYS94YnBzLXNyYworKysgYi94 YnBzLXNyYwpAQCAtNDE2LDcgKzQxNiw3IEBAIHNldHVwX2Rpc3RmaWxlc19taXJyb3IoKSB7CiAg ICAgZG9uZQogfQogCi1yZWFkb25seSBYQlBTX1ZFUlNJT05fUkVRPSIwLjQ2IgorcmVhZG9ubHkg WEJQU19WRVJTSU9OX1JFUT0iMC41NCIKIHJlYWRvbmx5IFhCUFNfVkVSU0lPTj0kKHhicHMtdWhl bHBlciAtVnxhd2sgJ3twcmludCAkMn0nKQogcmVhZG9ubHkgWEJQU19TUkNfVkVSU0lPTj0iMTEz IgogZXhwb3J0IFhCUFNfTUFDSElORT0kKHhicHMtdWhlbHBlciBhcmNoKQpAQCAtNTYxLDggKzU2 MSw4IEBAIGVsc2UKICAgICByZWFkb25seSBYQlBTX0xJQkVYRUNESVI9JFhCUFNfQ09NTU9ORElS L3hicHMtc3JjL2xpYmV4ZWMKICAgICByZWFkb25seSBYQlBTX0JVSUxESEVMUEVSRElSPSRYQlBT X0NPTU1PTkRJUi9idWlsZC1oZWxwZXIKIGZpCi1yZWFkb25seSBYQlBTX0ZFVENIX0NNRD0ieGJw cy11aGVscGVyIGZldGNoIgotcmVhZG9ubHkgWEJQU19ESUdFU1RfQ01EPSJ4YnBzLXVoZWxwZXIg ZGlnZXN0IgorcmVhZG9ubHkgWEJQU19GRVRDSF9DTUQ9InhicHMtZmV0Y2giCityZWFkb25seSBY QlBTX0RJR0VTVF9DTUQ9InhicHMtZGlnZXN0IgogcmVhZG9ubHkgWEJQU19DTVBWRVJfQ01EPSJ4 YnBzLXVoZWxwZXIgY21wdmVyIgogCiByZWFkb25seSBYQlBTX1RBUkdFVD0iJDEiCgpGcm9tIGQ2 ZGRjODY3ZjdkZTgyOGNmOGQxMGQ3MDlmNjRiMTk2YTdkNzE5MDEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IER1bmNhZW4gPGR1bmNhZW5Adm9pZGxpbnV4Lm9yZz4KRGF0ZTogRnJpLCAx NCBKdW4gMjAxOSAwMToyMDoyNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggOC84XSB4YnBzLXNyYzog dXNlIHhicHMtY2hlY2t2ZXJzIHRvIGZpbmQKIHtob3N0LGNoZWNrLG1ha2UsfWRlcGVuZHMKCi0t LQogY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVpbGRfZGVwZW5kZW5jaWVzLnNoIHwgMjg1ICsr KysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwMyBpbnNlcnRpb25zKCspLCAxODIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVpbGRf ZGVwZW5kZW5jaWVzLnNoIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvYnVpbGRfZGVwZW5kZW5j aWVzLnNoCmluZGV4IDU1YThlZTYzNWNkLi43OWZhNjVkYmU0MyAxMDA2NDQKLS0tIGEvY29tbW9u L3hicHMtc3JjL3NodXRpbHMvYnVpbGRfZGVwZW5kZW5jaWVzLnNoCisrKyBiL2NvbW1vbi94YnBz LXNyYy9zaHV0aWxzL2J1aWxkX2RlcGVuZGVuY2llcy5zaApAQCAtMSw3ICsxLDggQEAKICMgdmlt OiBzZXQgdHM9NCBzdz00IGV0OgogIworCiBzZXR1cF9wa2dfZGVwZW5kcygpIHsKLSAgICBsb2Nh bCBwa2c9IiQxIiBqIF9wa2dkZXBuYW1lIF9wa2dkZXAgX3Jwa2duYW1lIF9kZXBuYW1lIF9kZXB2 ZXIgX3JlcGxhY2VtZW50CisgICAgbG9jYWwgcGtnPSIkMSIgaiBfcGtnZGVwbmFtZSBfcGtnZGVw IF9ycGtnbmFtZSBfZGVwbmFtZSBfZGVwcmVwb3ZlciBfZGVwdmVyIF9yZXBsYWNlbWVudAogCiAg ICAgaWYgWyAtbiAiJHBrZyIgXTsgdGhlbgogICAgICAgICAjIHN1YnBrZwpAQCAtMzMsNyArMzQs OCBAQCBzZXR1cF9wa2dfZGVwZW5kcygpIHsKICAgICAgICAgICAgIGlmIFsgLXogIiR7X3BrZ2Rl cG5hbWV9IiBdOyB0aGVuCiAgICAgICAgICAgICAgICAgX3BrZ2RlcG5hbWU9IiR7X3JlcGxhY2Vt ZW50fT49MCIKICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICBydW5fZGVwZW5kcys9IiAke19k ZXBuYW1lfT8ke19wa2dkZXBuYW1lfSIKKyAgICAgICAgICAgICMgcnVuX2RlcGVuZHMrPSIgJHtf ZGVwbmFtZX0/JHtfcGtnZGVwbmFtZX0iCisgICAgICAgICAgICBydW5fZGVwZW5kcys9IiAke19w a2dkZXBuYW1lfSIKICAgICAgICAgICAgICNlY2hvICJBZGRpbmcgZGVwZW5kZW5jeSB2aXJ0dWFs OiAgJHtfZGVwbmFtZX0/JHtfcGtnZGVwbmFtZX0iCiAgICAgICAgIGVsc2UKICAgICAgICAgICAg IGlmIFsgLXogIiR7X3BrZ2RlcG5hbWV9IiBdOyB0aGVuCkBAIC00NCwyMyArNDYsNyBAQCBzZXR1 cF9wa2dfZGVwZW5kcygpIHsKICAgICAgICAgICAgIHJ1bl9kZXBlbmRzKz0iICR7X3BrZ2RlcH0i CiAgICAgICAgIGZpCiAgICAgZG9uZQotICAgIGZvciBqIGluICR7aG9zdG1ha2VkZXBlbmRzfTsg ZG8KLSAgICAgICAgX2RlcG5hbWU9IiR7aiVcPyp9IgotICAgICAgICBfZGVwdmVyPSQoc3JjcGtn X2dldF92ZXJzaW9uICR7X2RlcG5hbWV9KSB8fCBleGl0ICQ/Ci0gICAgICAgIGhvc3RfYnVpbGRf ZGVwZW5kcys9IiAke19kZXBuYW1lfS0ke19kZXB2ZXJ9IgotICAgIGRvbmUKLSAgICBpZiBbIC1u ICIkWEJQU19DSEVDS19QS0dTIiBdOyB0aGVuCi0gICAgICAgIGZvciBqIGluICR7Y2hlY2tkZXBl bmRzfTsgZG8KLSAgICAgICAgICAgIF9kZXBuYW1lPSIke2olXD8qfSIKLSAgICAgICAgICAgIF9k ZXB2ZXI9JChzcmNwa2dfZ2V0X3ZlcnNpb24gJHtfZGVwbmFtZX0pIHx8IGV4aXQgJD8KLSAgICAg ICAgICAgIGhvc3RfY2hlY2tfZGVwZW5kcys9IiAke19kZXBuYW1lfS0ke19kZXB2ZXJ9IgotICAg ICAgICBkb25lCi0gICAgZmkKLSAgICBmb3IgaiBpbiAke21ha2VkZXBlbmRzfTsgZG8KLSAgICAg ICAgX2RlcG5hbWU9IiR7aiVcPyp9IgotICAgICAgICBfZGVwdmVyPSQoc3JjcGtnX2dldF92ZXJz aW9uICR7X2RlcG5hbWV9KSB8fCBleGl0ICQ/Ci0gICAgICAgIGJ1aWxkX2RlcGVuZHMrPSIgJHtf ZGVwbmFtZX0tJHtfZGVwdmVyfSIKLSAgICBkb25lCisKIH0KIAogIyBJbnN0YWxsIGEgcmVxdWly ZWQgcGFja2FnZSBkZXBlbmRlbmN5LCBsaWtlOgpAQCAtMTAyLDYgKzg4LDQyIEBAIGluc3RhbGxf cGtnX2Zyb21fcmVwb3MoKSB7CiAgICAgcmV0dXJuICRydmFsCiB9CiAKK2luc3RhbGxfcGtnc19m cm9tX3JlcG9zKCkgeworICAgIGxvY2FsIGNyb3NzPSIkMSIgcnZhbD0gdG1wbG9nZj0KKyAgICBz aGlmdCAxCisKKyAgICBbICQjIC1lcSAwIF0gJiYgcmV0dXJuIDAKKworICAgIG1rZGlyIC1wICRY QlBTX1NUQVRFRElSCisgICAgdG1wbG9nZj0ke1hCUFNfU1RBVEVESVJ9L3hicHNfJHtYQlBTX1RB UkdFVF9NQUNISU5FfV9iZGVwLmxvZworCisgICAgaWYgWyAtbiAiJGNyb3NzIiBdOyB0aGVuCisg ICAgICAgICRYQlBTX0lOU1RBTExfWENNRCAtQXlkICIkQCIgPiR0bXBsb2dmIDI+JjEKKyAgICBl bHNlCisgICAgICAgICRYQlBTX0lOU1RBTExfQ01EIC1BeWQgIiRAIiA+JHRtcGxvZ2YgMj4mMQor ICAgIGZpCisgICAgcnZhbD0kPworICAgIGlmIFsgJHJ2YWwgLW5lIDAgLWEgJHJ2YWwgLW5lIDE3 IF07IHRoZW4KKyAgICAgICAgIyB4YnBzLWluc3RhbGwgY2FuIHJldHVybjoKKyAgICAgICAgIwor ICAgICAgICAjIFNVQ0NFU1MgICgwKTogcGFja2FnZSBpbnN0YWxsZWQgc3VjY2Vzc2Z1bGx5Lgor ICAgICAgICAjIEVOT0VOVCAgICgyKTogcGFja2FnZSBtaXNzaW5nIGluIHJlcG9zaXRvcmllcy4K KyAgICAgICAgIyBFTlhJTyAgICAoNik6IHBhY2thZ2UgZGVwZW5kcyBvbiBpbnZhbGlkIGRlcGVu ZGVuY2llcy4KKyAgICAgICAgIyBFQUdBSU4gICgxMSk6IHBhY2thZ2UgY29uZmxpY3RzLgorICAg ICAgICAjIEVFWElTVCAgKDE3KTogcGFja2FnZSBhbHJlYWR5IGluc3RhbGxlZC4KKyAgICAgICAg IyBFTk9ERVYgICgxOSk6IHBhY2thZ2UgZGVwZW5kcyBvbiBtaXNzaW5nIGRlcGVuZGVuY2llcy4K KyAgICAgICAgIyBFTk9UU1VQICg5NSk6IG5vIHJlcG9zaXRvcmllcyByZWdpc3RlcmVkLgorICAg ICAgICAjCisgICAgICAgIFsgLXogIiRYQlBTX0tFRVBfQUxMIiBdICYmIHJlbW92ZV9wa2dfYXV0 b2RlcHMKKyAgICAgICAgIyBtc2dfcmVkICIkcGtndmVyOiBmYWlsZWQgdG8gaW5zdGFsbCAnJDEn IGRlcGVuZGVuY3khIChlcnJvciAkcnZhbClcbiIKKyAgICAgICAgY2F0ICR0bXBsb2dmCisgICAg ICAgIG1zZ19lcnJvciAiUGxlYXNlIHNlZSBhYm92ZSBmb3IgdGhlIHJlYWwgZXJyb3IsIGV4aXRp bmcuLi5cbiIKKyAgICBmaQorICAgIFsgJHJ2YWwgLWVxIDE3IF0gJiYgcnZhbD0wCisgICAgcmV0 dXJuICRydmFsCit9CisKKwogIwogIyBSZXR1cm5zIDAgaWYgcGtncGF0dGVybiBpbiAkMSBpcyBt YXRjaGVkIGFnYWluc3QgY3VycmVudCBpbnN0YWxsZWQKICMgcGFja2FnZSwgMSBpZiBubyBtYXRj aCBhbmQgMiBpZiBub3QgaW5zdGFsbGVkLgpAQCAtMTk3LDYgKzIxOSw3IEBAIGluc3RhbGxfcGtn X2RlcHMoKSB7CiAKICAgICBzZXR1cF9wa2dfZGVwZW5kcwogCisgICAgCiAgICAgWyAtbiAiJGJ1 aWxkX3N0eWxlIiBdICYmIHN0eWxlPSIgWyRidWlsZF9zdHlsZV0iCiAKICAgICBmb3IgcyBpbiAk YnVpbGRfaGVscGVyOyBkbwpAQCAtMjA5LDE4OSArMjMyLDg0IEBAIGluc3RhbGxfcGtnX2RlcHMo KSB7CiAgICAgICAgIG1zZ19ub3JtYWwgIiRwa2d2ZXI6IGJ1aWxkaW5nJHtzdHlsZX0gLi4uXG4i CiAgICAgZmkKIAotICAgIGlmIFsgLXogIiRidWlsZF9kZXBlbmRzIiAtYSAteiAiJGhvc3RfYnVp bGRfZGVwZW5kcyIgLWEgLXogIiRob3N0X2NoZWNrX2RlcGVuZHMiIC1hIC16ICIkcnVuX2RlcGVu ZHMiIF07IHRoZW4KLSAgICAgICAgcmV0dXJuIDAKLSAgICBmaQotCiAgICAgIwogICAgICMgSG9z dCBidWlsZCBkZXBlbmRlbmNpZXMuCiAgICAgIwotICAgIGZvciBpIGluICR7aG9zdF9idWlsZF9k ZXBlbmRzfTsgZG8KLSAgICAgICAgX3JlYWxwa2c9JCgkWEJQU19VSEVMUEVSX0NNRCBnZXRwa2du YW1lICIkaSIgMj4vZGV2L251bGwpCi0gICAgICAgIGNoZWNrX3BrZ2RlcF9tYXRjaGVkICIkaSIg dmVyc2lvbgotICAgICAgICBsb2NhbCBydmFsPSQ/Ci0gICAgICAgIGlmIFsgJHJ2YWwgLWVxIDAg XTsgdGhlbgotICAgICAgICAgICAgZWNobyAiICAgW2hvc3RdICR7aX06IGluc3RhbGxlZC4iCi0g ICAgICAgICAgICBjb250aW51ZQotICAgICAgICBlbGlmIFsgJHJ2YWwgLWVxIDEgXTsgdGhlbgot ICAgICAgICAgICAgaXZlcj0kKCRYQlBTX1VIRUxQRVJfQ01EIHZlcnNpb24gJHtfcmVhbHBrZ30p Ci0gICAgICAgICAgICBpZiBbICQ/IC1lcSAwIC1hIC1uICIkaXZlciIgXTsgdGhlbgotICAgICAg ICAgICAgICAgIGVjaG8gIiAgIFtob3N0XSAke2l9OiBpbnN0YWxsZWQgJGl2ZXIgKHZpcnR1YWxw a2cpLiIKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZWxzZQotICAgICAg ICAgICAgICAgIGVjaG8gIiAgIFtob3N0XSAke2l9OiB1bnJlc29sdmVkIGJ1aWxkIGRlcGVuZGVu Y3khIgotICAgICAgICAgICAgICAgIHJldHVybiAxCi0gICAgICAgICAgICBmaQotICAgICAgICBl bHNlCi0gICAgICAgICAgICByZXBvPSQoJFhCUFNfUVVFUllfQ01EIC1SIC1wcmVwb3NpdG9yeSAk e2l9IDI+L2Rldi9udWxsKQotICAgICAgICAgICAgaWYgWyAtbiAiJHtyZXBvfSIgXTsgdGhlbgot ICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtob3N0XSAke2l9OiBmb3VuZCAoJHJlcG8pIgotICAg ICAgICAgICAgICAgIGhvc3RfYmlucGtnX2RlcHMrPSgiJHtpfSIpCi0gICAgICAgICAgICAgICAg Y29udGludWUKKyAgICBpZiBbIC1uICIke2hvc3RkZXBlbmRzfSIgXTsgdGhlbgorICAgICAgICBs b2NhbCAtYSBfaG9zdGRlcGVuZHMKKyAgICAgICAgZm9yIGkgaW4gJHtob3N0ZGVwZW5kc307IGRv CisgICAgICAgICAgICBfaG9zdGRlcGVuZHMrPSgiJGkiKQorICAgICAgICBkb25lCisgICAgICAg IGk9MAorICAgICAgICB3aGlsZSByZWFkIC1yIF9kZXBuYW1lIF9kZXByZXBvdmVyIF9kZXB2ZXI7 IGRvCisgICAgICAgICAgICBfZGVwbmFtZT0ke19ob3N0ZGVwZW5kc1skKCggaSsrICkpXX0KKyAg ICAgICAgICAgIGlmIFsgIiRfZGVwdmVyIiAhPSAiJF9kZXByZXBvdmVyIiBdOyB0aGVuCisgICAg ICAgICAgICAgICAgaG9zdF9taXNzaW5nX2RlcHMrPSgiJHtfZGVwbmFtZX0tJHtfZGVwdmVyfSIp CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZWNobyAiICAgW2hvc3RdICR7aX06 IG5vdCBmb3VuZC4iCi0gICAgICAgICAgICAgICAgaWYgWyAteiAiJGNyb3NzIiBdOyB0aGVuCi0g ICAgICAgICAgICAgICAgICAgIGlmIFsgIiR7X3JlYWxwa2d9IiA9ICIkdGFyZ2V0cGtnIiBdOyB0 aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICBtc2dfZXJyb3IgIiR7cGtnfTogW2hvc3RdIGJ1 aWxkIGxvb3AgZGV0ZWN0ZWQ6ICR7X3JlYWxwa2d9IDwtPiAke3RhcmdldHBrZ30gW2RlcGVuZHMg b24gaXRzZWxmXVxuIgotICAgICAgICAgICAgICAgICAgICBlbGlmIFsgIiR7X3JlYWxwa2d9IiA9 ICIkcGtnIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICBtc2dfZXJyb3IgIiR7cGtn fTogW2hvc3RdIGJ1aWxkIGxvb3AgZGV0ZWN0ZWQ6ICRwa2cgPC0+ICR7X3JlYWxwa2d9XG4iCi0g ICAgICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAg ICBob3N0X2JpbnBrZ19kZXBzKz0iICR7X2RlcG5hbWV9LSR7X2RlcHZlcn0iCiAgICAgICAgICAg ICBmaQotICAgICAgICBmaQotICAgICAgICBob3N0X21pc3NpbmdfZGVwcys9KCIke2l9IikKLSAg ICBkb25lCisgICAgICAgICAgICBob3N0X2J1aWxkX2RlcGVuZHMrPSIgJHtfZGVwbmFtZX0tJHtf ZGVwdmVyfSIKKyAgICAgICAgZG9uZSA8IDwoeGJwcy1jaGVja3ZlcnMgLUQgL3ZvaWQtcGFja2Fn ZXMgLXNtICQocHJpbnRmICJzcmNwa2dzLyVzL3RlbXBsYXRlXG4iICR7aG9zdG1ha2VkZXBlbmRz fSkpCisgICAgZmkKIAogICAgICMKICAgICAjIEhvc3QgY2hlY2sgZGVwZW5kZW5jaWVzLgogICAg ICMKLSAgICBmb3IgaSBpbiAke2hvc3RfY2hlY2tfZGVwZW5kc307IGRvCi0gICAgICAgIF9yZWFs cGtnPSIkKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ25hbWUgJGkgMj4vZGV2L251bGwpIgotICAg ICAgICBjaGVja19wa2dkZXBfbWF0Y2hlZCAiJGkiIHZlcnNpb24KLSAgICAgICAgbG9jYWwgcnZh bD0kPwotICAgICAgICBpZiBbICRydmFsIC1lcSAwIF07IHRoZW4KLSAgICAgICAgICAgIGVjaG8g IiAgIFtjaGVja10gJHtpfTogaW5zdGFsbGVkLiIKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAg ICAgIGVsaWYgWyAkcnZhbCAtZXEgMSBdOyB0aGVuCi0gICAgICAgICAgICBpdmVyPSQoJFhCUFNf VUhFTFBFUl9DTUQgdmVyc2lvbiAke19yZWFscGtnfSkKLSAgICAgICAgICAgIGlmIFsgJD8gLWVx IDAgLWEgLW4gIiRpdmVyIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgZWNobyAiICAgW2NoZWNr XSAke2l9OiBpbnN0YWxsZWQgJGl2ZXIgKHZpcnR1YWxwa2cpLiIKLSAgICAgICAgICAgICAgICBj b250aW51ZQotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtjaGVj a10gJHtpfTogdW5yZXNvbHZlZCBjaGVjayBkZXBlbmRlbmN5ISIKLSAgICAgICAgICAgICAgICBy ZXR1cm4gMQotICAgICAgICAgICAgZmkKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVwbz0k KCRYQlBTX1FVRVJZX0NNRCAtUiAtcHJlcG9zaXRvcnkgJHtpfSAyPi9kZXYvbnVsbCkKLSAgICAg ICAgICAgIGlmIFsgLW4gIiR7cmVwb30iIF07IHRoZW4KLSAgICAgICAgICAgICAgICBlY2hvICIg ICBbY2hlY2tdICR7aX06IGZvdW5kICgkcmVwbykiCi0gICAgICAgICAgICAgICAgY2hlY2tfYmlu cGtnX2RlcHMrPSgiJHtpfSIpCi0gICAgICAgICAgICAgICAgY29udGludWUKKyAgICBpZiBbIC1u ICIkWEJQU19DSEVDS19QS0dTIiAtYSAtbiAiJHtjaGVja2RlcGVuZHN9IiBdOyB0aGVuCisgICAg ICAgIGxvY2FsIC1hIF9jaGVja2RlcGVuZHMKKyAgICAgICAgZm9yIGkgaW4gJHtjaGVja2RlcGVu ZHN9OyBkbworICAgICAgICAgICAgX2NoZWNrZGVwZW5kcys9KCIkaSIpCisgICAgICAgIGRvbmUK KyAgICAgICAgaT0wCisgICAgICAgIHdoaWxlIHJlYWQgLXIgX2RlcG5hbWUgX2RlcHJlcG92ZXIg X2RlcHZlcjsgZG8KKyAgICAgICAgICAgIF9kZXBuYW1lPSR7X2NoZWNrZGVwZW5kc1skKCggaSsr ICkpXX0KKyAgICAgICAgICAgIGlmIFsgIiRfZGVwdmVyIiAhPSAiJF9kZXByZXBvdmVyIiBdOyB0 aGVuCisgICAgICAgICAgICAgICAgaG9zdF9taXNzaW5nX2RlcHMrPSgiJHtfZGVwbmFtZX0tJHtf ZGVwdmVyfSIpCiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZWNobyAiICAgW2No ZWNrXSAke2l9OiBub3QgZm91bmQuIgotICAgICAgICAgICAgICAgIGlmIFsgIiR7X3JlYWxwa2d9 IiA9ICIkdGFyZ2V0cGtnIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIG1zZ19lcnJvciAi JHtwa2d9OiBbY2hlY2tdIGJ1aWxkIGxvb3AgZGV0ZWN0ZWQ6ICR7X3JlYWxwa2d9IDwtPiAke3Rh cmdldHBrZ30gW2RlcGVuZHMgb24gaXRzZWxmXSFcbiIKLSAgICAgICAgICAgICAgICBlbGlmIFsg IiR7X3JlYWxwa2d9IiA9ICIkcGtnIiBdOyB0aGVuCi0gICAgICAgICAgICAgICAgICAgIG1zZ19l cnJvciAiJHtwa2d9OiBbY2hlY2tdIGJ1aWxkIGxvb3AgZGV0ZWN0ZWQ6ICRwa2cgPC0+ICR7X3Jl YWxwa2d9XG4iCi0gICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICBob3N0X2JpbnBr Z19kZXBzKz0iICR7X2RlcG5hbWV9LSR7X2RlcHZlcn0iCiAgICAgICAgICAgICBmaQotICAgICAg ICBmaQotICAgICAgICBjaGVja19taXNzaW5nX2RlcHMrPSgiJHtpfSIpCi0gICAgZG9uZQotCisg ICAgICAgICAgICBob3N0X2NoZWNrX2RlcGVuZHMrPSIgJHtfZGVwbmFtZX0tJHtfZGVwdmVyfSIK KyAgICAgICAgZG9uZSA8IDwoeGJwcy1jaGVja3ZlcnMgLUQgL3ZvaWQtcGFja2FnZXMgLXNtICQo cHJpbnRmICJzcmNwa2dzLyVzL3RlbXBsYXRlXG4iICR7aG9zdGNoZWNrZGVwZW5kc30pKQorICAg IGZpCiAKICAgICAjCiAgICAgIyBUYXJnZXQgYnVpbGQgZGVwZW5kZW5jaWVzLgogICAgICMKLSAg ICBmb3IgaSBpbiAke2J1aWxkX2RlcGVuZHN9OyBkbwotICAgICAgICBfcmVhbHBrZz0iJCgkWEJQ U19VSEVMUEVSX0NNRCBnZXRwa2duYW1lICRpIDI+L2Rldi9udWxsKSIKLSAgICAgICAgIyBDaGVj ayBpZiBkZXBlbmRlbmN5IGlzIGEgc3VicGtnLCBpZiBpdCBpcywgaWdub3JlIGl0LgotICAgICAg ICB1bnNldCBmb3VuZAotICAgICAgICBmb3IgaiBpbiAke3N1YnBhY2thZ2VzfTsgZG8KLSAgICAg ICAgICAgIFsgIiRqIiA9ICIke19yZWFscGtnfSIgXSAmJiBmb3VuZD0xICYmIGJyZWFrCisgICAg aWYgWyAtbiAiJHttYWtlZGVwZW5kc30iIF07IHRoZW4KKyAgICAgICAgbG9jYWwgLWEgX21ha2Vk ZXBlbmRzCisgICAgICAgIGZvciBpIGluICR7bWFrZWRlcGVuZHN9OyBkbworICAgICAgICAgICAg X21ha2VkZXBlbmRzKz0oIiRpIikKICAgICAgICAgZG9uZQotICAgICAgICBbIC1uICIkZm91bmQi IF0gJiYgY29udGludWUKLSAgICAgICAgY2hlY2tfcGtnZGVwX21hdGNoZWQgIiR7aX0iIHZlcnNp b24gJGNyb3NzCi0gICAgICAgIGxvY2FsIHJ2YWw9JD8KLSAgICAgICAgaWYgWyAkcnZhbCAtZXEg MCBdOyB0aGVuCi0gICAgICAgICAgICBlY2hvICIgICBbdGFyZ2V0XSAke2l9OiBpbnN0YWxsZWQu IgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgZWxpZiBbICRydmFsIC1lcSAxIF07IHRo ZW4KLSAgICAgICAgICAgIGl2ZXI9JCgkWEJQU19VSEVMUEVSX1hDTUQgdmVyc2lvbiAke19yZWFs cGtnfSkKLSAgICAgICAgICAgIGlmIFsgJD8gLWVxIDAgLWEgLW4gIiRpdmVyIiBdOyB0aGVuCi0g ICAgICAgICAgICAgICAgZWNobyAiICAgW3RhcmdldF0gJHtpfTogaW5zdGFsbGVkICRpdmVyICh2 aXJ0dWFscGtnKS4iCi0gICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgaT0wCisgICAg ICAgIHdoaWxlIHJlYWQgLXIgX2RlcG5hbWUgX2RlcHJlcG92ZXIgX2RlcHZlcjsgZG8KKyAgICAg ICAgICAgIF9kZXBuYW1lPSR7X21ha2VkZXBlbmRzWyQoKCBpKysgKSldfQorICAgICAgICAgICAg aWYgWyAiJF9kZXB2ZXIiICE9ICIkX2RlcHJlcG92ZXIiIF07IHRoZW4KKyAgICAgICAgICAgICAg ICBtaXNzaW5nX2RlcHMrPSgiJHtfZGVwbmFtZX0tJHtfZGVwdmVyfSIpCiAgICAgICAgICAgICBl bHNlCi0gICAgICAgICAgICAgICAgZWNobyAiICAgW3RhcmdldF0gJHtpfTogdW5yZXNvbHZlZCBi dWlsZCBkZXBlbmRlbmN5ISIKLSAgICAgICAgICAgICAgICByZXR1cm4gMQorICAgICAgICAgICAg ICAgIGJpbnBrZ19kZXBzKz0iICR7X2RlcG5hbWV9LSR7X2RlcHZlcn0iCiAgICAgICAgICAgICBm aQotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXBvPSQoJFhCUFNfUVVFUllfWENNRCAtUiAt cHJlcG9zaXRvcnkgJHtpfSAyPi9kZXYvbnVsbCkKLSAgICAgICAgICAgIGlmIFsgLW4gIiR7cmVw b30iIF07IHRoZW4KLSAgICAgICAgICAgICAgICBlY2hvICIgICBbdGFyZ2V0XSAke2l9OiBmb3Vu ZCAoJHJlcG8pIgotICAgICAgICAgICAgICAgIGJpbnBrZ19kZXBzKz0oIiR7aX0iKQotICAgICAg ICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZWNo byAiICAgW3RhcmdldF0gJHtpfTogbm90IGZvdW5kLiIKLSAgICAgICAgICAgICAgICBpZiBbICIk e19yZWFscGtnfSIgPSAiJHRhcmdldHBrZyIgXTsgdGhlbgotICAgICAgICAgICAgICAgICAgICBt c2dfZXJyb3IgIiR7cGtnfTogW3RhcmdldF0gYnVpbGQgbG9vcCBkZXRlY3RlZDogJHtfcmVhbHBr Z30gPC0+ICR7dGFyZ2V0cGtnfSBbZGVwZW5kcyBvbiBpdHNlbGZdXG4iCi0gICAgICAgICAgICAg ICAgZWxpZiBbICIke19yZWFscGtnfSIgPSAiJHBrZyIgXTsgdGhlbgotICAgICAgICAgICAgICAg ICAgICBtc2dfZXJyb3IgIiR7cGtnfTogW3RhcmdldF0gYnVpbGQgbG9vcCBkZXRlY3RlZDogJHBr ZyA8LT4gJHtfcmVhbHBrZ31cbiIKLSAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgZmkK LSAgICAgICAgZmkKLSAgICAgICAgbWlzc2luZ19kZXBzKz0oIiR7aX0iKQotICAgIGRvbmUKKyAg ICAgICAgICAgIGJ1aWxkX2RlcGVuZHMrPSIgJHtfZGVwbmFtZX0tJHtfZGVwdmVyfSIKKyAgICAg ICAgZG9uZSA8IDwoeGJwcy1jaGVja3ZlcnMgLUQgL3ZvaWQtcGFja2FnZXMgLXNtICQocHJpbnRm ICJzcmNwa2dzLyVzL3RlbXBsYXRlXG4iICR7bWFrZWRlcGVuZHN9KSkKKyAgICBmaQorCiAKICAg ICAjCiAgICAgIyBUYXJnZXQgcnVuIHRpbWUgZGVwZW5kZW5jaWVzCiAgICAgIwotICAgIGZvciBp IGluICR7cnVuX2RlcGVuZHN9OyBkbwotICAgICAgICBfcmVhbHBrZz0iJHtpJVw/Kn0iCi0gICAg ICAgIF9jdXJwa2c9IiR7X3JlYWxwa2d9IgotICAgICAgICBfdnBrZz0iJHtpIypcP30iCi0gICAg ICAgIGlmIFsgIiR7X3JlYWxwa2d9IiAhPSAiJHtfdnBrZ30iIF07IHRoZW4KLSAgICAgICAgICAg IF9yZWFscGtnPSIke192cGtnfSIKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdW5zZXQgX2N1 cnBrZwotICAgICAgICBmaQotICAgICAgICBwa2duPSQoJFhCUFNfVUhFTFBFUl9DTUQgZ2V0cGtn ZGVwbmFtZSAiJHtfcmVhbHBrZ30iKQotICAgICAgICBpZiBbIC16ICIkcGtnbiIgXTsgdGhlbgot ICAgICAgICAgICAgcGtnbj0kKCRYQlBTX1VIRUxQRVJfQ01EIGdldHBrZ25hbWUgIiR7X3JlYWxw a2d9IikKLSAgICAgICAgICAgIGlmIFsgLXogIiRwa2duIiBdOyB0aGVuCi0gICAgICAgICAgICAg ICAgbXNnX2Vycm9yICIkcGtndmVyOiBpbnZhbGlkIHJ1bnRpbWUgZGVwZW5kZW5jeTogJHtfcmVh bHBrZ31cbiIKLSAgICAgICAgICAgIGZpCi0gICAgICAgIGZpCi0gICAgICAgICMgQ2hlY2sgaWYg ZGVwZW5kZW5jeSBpcyBhIHN1YnBrZywgaWYgaXQgaXMsIGlnbm9yZSBpdC4KLSAgICAgICAgdW5z ZXQgZm91bmQKLSAgICAgICAgZm9yIGogaW4gJHtzdWJwYWNrYWdlc307IGRvCi0gICAgICAgICAg ICBbICIkaiIgPSAiJHtwa2dufSIgXSAmJiBmb3VuZD0xICYmIGJyZWFrCisgICAgaWYgWyAtbiAi JHtkZXBlbmRzfSIgXTsgdGhlbgorICAgICAgICBsb2NhbCAtYSBfZGVwZW5kcworICAgICAgICBm b3IgaSBpbiAke2RlcGVuZHN9OyBkbworICAgICAgICAgICAgX2RlcGVuZHMrPSgiJGkiKQogICAg ICAgICBkb25lCi0gICAgICAgIFsgLW4gIiRmb3VuZCIgXSAmJiBjb250aW51ZQotICAgICAgICBf cHJvcHM9JCgkWEJQU19RVUVSWV9YQ01EIC1SIC1wcGtndmVyLHJlcG9zaXRvcnkgJHtfcmVhbHBr Z30gMj4vZGV2L251bGwpCi0gICAgICAgIGlmIFsgLW4gIiR7X3Byb3BzfSIgXTsgdGhlbgotICAg ICAgICAgICAgc2V0IC0tICR7X3Byb3BzfQotICAgICAgICAgICAgJFhCUFNfVUhFTFBFUl9DTUQg cGtnbWF0Y2ggJHsxfSAiJHtfcmVhbHBrZ30iCi0gICAgICAgICAgICBpZiBbICQ/IC1lcSAxIF07 IHRoZW4KLSAgICAgICAgICAgICAgICBpZiBbIC1uICIke19jdXJwa2d9IiBdOyB0aGVuCi0gICAg ICAgICAgICAgICAgICAgIGVjaG8gIiAgIFtydW50aW1lXSAke19jdXJwa2d9OiR7X3JlYWxwa2d9 ICh2aXJ0dWFsIGRlcGVuZGVuY3kpOiBmb3VuZCAkMSAoJDIpIgotICAgICAgICAgICAgICAgIGVs c2UKLSAgICAgICAgICAgICAgICAgICAgZWNobyAiICAgW3J1bnRpbWVdICR7X3JlYWxwa2d9OiBm b3VuZCAkMSAoJDIpIgotICAgICAgICAgICAgICAgIGZpCi0gICAgICAgICAgICAgICAgc2hpZnQg MgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAg ICAgICAgaWYgWyAtbiAiJHtfY3VycGtnfSIgXTsgdGhlbgotICAgICAgICAgICAgICAgICAgICBl Y2hvICIgICBbcnVudGltZV0gJHtfY3VycGtnfToke19yZWFscGtnfSAodmlydHVhbCBkZXBlbmRl bmN5KTogbm90IGZvdW5kLiIKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg ICAgIGVjaG8gIiAgIFtydW50aW1lXSAke19yZWFscGtnfTogbm90IGZvdW5kLiIKLSAgICAgICAg ICAgICAgICBmaQotICAgICAgICAgICAgZmkKLSAgICAgICAgICAgIHNoaWZ0IDIKLSAgICAgICAg ZWxzZQotICAgICAgICAgICAgaWYgWyAtbiAiJHtfY3VycGtnfSIgXTsgdGhlbgotICAgICAgICAg ICAgICAgIGVjaG8gIiAgIFtydW50aW1lXSAke19jdXJwa2d9OiR7X3JlYWxwa2d9ICh2aXJ0dWFs IGRlcGVuZGVuY3kpOiBub3QgZm91bmQuIgotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg ICAgIGVjaG8gIiAgIFtydW50aW1lXSAke19yZWFscGtnfTogbm90IGZvdW5kLiIKKyAgICAgICAg aT0wCisgICAgICAgIHdoaWxlIHJlYWQgLXIgX2RlcG5hbWUgX2RlcHJlcG92ZXIgX2RlcHZlcjsg ZG8KKyAgICAgICAgICAgIF9kZXBuYW1lPSR7X2RlcGVuZHNbJCgoIGkrKyApKV19CisgICAgICAg ICAgICBpZiBbICIkX2RlcHZlciIgIT0gIiRfZGVwcmVwb3ZlciIgXTsgdGhlbgorICAgICAgICAg ICAgICAgIG1pc3NpbmdfZGVwcys9KCIke19kZXBuYW1lfS0ke19kZXB2ZXJ9IikKICAgICAgICAg ICAgIGZpCi0gICAgICAgIGZpCi0gICAgICAgIGlmIFsgIiR7X3JlYWxwa2d9IiA9ICIkdGFyZ2V0 cGtnIiBdOyB0aGVuCi0gICAgICAgICAgICBtc2dfZXJyb3IgIiR7cGtnfTogW3J1bl0gYnVpbGQg bG9vcCBkZXRlY3RlZDogJHtfcmVhbHBrZ30gPC0+ICR7dGFyZ2V0cGtnfSBbZGVwZW5kcyBvbiBp dHNlbGZdXG4iCi0gICAgICAgIGVsaWYgWyAiJHtfcmVhbHBrZ30iID0gIiRwa2ciIF07IHRoZW4K LSAgICAgICAgICAgIG1zZ19lcnJvciAiJHtwa2d9OiBbcnVuXSBidWlsZCBsb29wIGRldGVjdGVk OiAkcGtnIDwtPiAke19yZWFscGtnfVxuIgotICAgICAgICBmaQotICAgICAgICBtaXNzaW5nX3Jk ZXBzKz0oIiR7X3JlYWxwa2d9IikKLSAgICBkb25lCisgICAgICAgICAgICBidWlsZF9kZXBlbmRz Kz0iICR7X2RlcG5hbWV9LSR7X2RlcHZlcn0iCisgICAgICAgIGRvbmUgPCA8KHhicHMtY2hlY2t2 ZXJzIC1EIC92b2lkLXBhY2thZ2VzIC1zbSAkKHByaW50ZiAic3JjcGtncy8lcy90ZW1wbGF0ZVxu IiAke3J1bl9kZXBlbmRzfSkpCisgICAgZmkKIAogICAgIGlmIFsgLW4gIiRYQlBTX0JVSUxEX09O TFlfT05FX1BLRyIgXTsgdGhlbgogICAgICAgICAgICBmb3IgaSBpbiAke2hvc3RfbWlzc2luZ19k ZXBzW0BdfTsgZG8KQEAgLTQwOCw2ICszMjYsMTAgQEAgaW5zdGFsbF9wa2dfZGVwcygpIHsKICAg ICAgICAgICAgZG9uZQogICAgIGZpCiAKKyAgICBpZiBbIC16ICIkYnVpbGRfZGVwZW5kcyIgLWEg LXogIiRob3N0X2J1aWxkX2RlcGVuZHMiIC1hIC16ICIkaG9zdF9jaGVja19kZXBlbmRzIiAtYSAt eiAiJHJ1bl9kZXBlbmRzIiBdOyB0aGVuCisgICAgICAgIHJldHVybiAwCisgICAgZmkKKwogICAg ICMgTWlzc2luZyBob3N0IGRlcGVuZGVuY2llcywgYnVpbGQgZnJvbSBzcmNwa2dzLgogICAgIGZv ciBpIGluICR7aG9zdF9taXNzaW5nX2RlcHNbQF19OyBkbwogICAgICAgICAjIHBhY2thZ2VzIG5v dCBmb3VuZCBpbiByZXBvcywgaW5zdGFsbCBmcm9tIHNvdXJjZS4KQEAgLTQ2OCwxNiArMzkwLDE1 IEBAIGluc3RhbGxfcGtnX2RlcHMoKSB7CiAKICAgICBmb3IgaSBpbiAke2hvc3RfYmlucGtnX2Rl cHNbQF19OyBkbwogICAgICAgICBtc2dfbm9ybWFsICIkcGtndmVyOiBpbnN0YWxsaW5nIGhvc3Qg ZGVwZW5kZW5jeSAnJGknIC4uLlxuIgotICAgICAgICBpbnN0YWxsX3BrZ19mcm9tX3JlcG9zICIk e2l9IgogICAgIGRvbmUKLQogICAgIGZvciBpIGluICR7Y2hlY2tfYmlucGtnX2RlcHNbQF19OyBk bwogICAgICAgICBtc2dfbm9ybWFsICIkcGtndmVyOiBpbnN0YWxsaW5nIGNoZWNrIGRlcGVuZGVu Y3kgJyRpJyAuLi5cbiIKLSAgICAgICAgaW5zdGFsbF9wa2dfZnJvbV9yZXBvcyAiJHtpfSIKICAg ICBkb25lCisgICAgaW5zdGFsbF9wa2dzX2Zyb21fcmVwb3MgIiIgJHtob3N0X2JpbnBrZ19kZXBz W0BdfSAke2NoZWNrX2JpbnBrZ19kZXBzW0BdfQorCiAKICAgICBmb3IgaSBpbiAke2JpbnBrZ19k ZXBzW0BdfTsgZG8KICAgICAgICAgbXNnX25vcm1hbCAiJHBrZ3ZlcjogaW5zdGFsbGluZyB0YXJn ZXQgZGVwZW5kZW5jeSAnJGknIC4uLlxuIgotICAgICAgICBpbnN0YWxsX3BrZ19mcm9tX3JlcG9z ICIkaSIgJGNyb3NzCiAgICAgZG9uZQorICAgIGluc3RhbGxfcGtnc19mcm9tX3JlcG9zICIkY3Jv c3MiICR7YmlucGtnX2RlcHNbQF19CiB9Cg== --===============3158910899412569524==--