X-Original-To: alpine-aports@lists.alpinelinux.org Delivered-To: alpine-aports@mail.alpinelinux.org Received: from mail-pa0-f46.google.com (mail-pa0-f46.google.com [209.85.220.46]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mail.alpinelinux.org (Postfix) with ESMTPS id A64E3DC023A for ; Wed, 28 Jan 2015 05:35:30 +0000 (UTC) Received: by mail-pa0-f46.google.com with SMTP id lj1so23236151pab.5 for ; Tue, 27 Jan 2015 21:35:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:mime-version:content-type :content-transfer-encoding; bh=Ig9UfXLE38wi/LsHyAtKaHcrgKebhduGkdKs4/mmRbk=; b=EZDW+/vaHXzoHkaV6PVzHOsqFH4KiAJVaJ3geMfHEt/b+5UZQuFEaW5mx81FL11wlu GUOY5Yex6MaAAETLrUk75YL0D+LVWq+Qeq8joolci0v1nbqio7KUDYW8w6QwilmbPrw3 Z3AaNMGQ8qrjSvsjDaGUPSEqdoFa7yNPwMy2AI87d56LtjDzbV+twat8XkHq8ijSdsaH FxwFUeKDS2Ow2AtDxW70T5nwMzFn3WYRPosYJ082GtBNZS9xvIZW6UW23QTNVPRW0WEB koKsjfHqT56NWWoryhHQG39R3Do14sOAWe+HC/sQfaUxpjpbBI9UNrFAFwKi+gRpjxhf txKQ== X-Received: by 10.66.246.130 with SMTP id xw2mr3021878pac.32.1422423329368; Tue, 27 Jan 2015 21:35:29 -0800 (PST) Received: from localhost.localdomain ([50.0.228.59]) by mx.google.com with ESMTPSA id ml8sm2054277pab.3.2015.01.27.21.35.25 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 27 Jan 2015 21:35:27 -0800 (PST) From: Isaac Dunham To: alpine-aports@lists.alpinelinux.org Cc: Isaac Dunham Subject: [alpine-aports] [PATCH] testing/heirloom-mailx: new aport Date: Tue, 27 Jan 2015 21:35:30 -0800 Message-Id: <1422423330-7467-1-git-send-email-ibid.ag@gmail.com> X-Mailer: git-send-email 2.2.2 X-Mailinglist: alpine-aports Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 aGVpcmxvb20tbWFpbHggaXMgYSBjbG9uZSBvZiBTeXN0ZW0gViAibWFpbHgiLCBiYXNlZCBvbiBC ZXJrZWxleSBNYWlsIDguMS4NCg0KSXQgaGFzIGJlZW4gZW5oYW5jZWQgdG8gcHJvdmlkZSBhbGwg dGhlIGNvbW1hbmQgbGluZSBvcHRpb25zDQpyZXF1aXJlZCBieSBQT1NJWCwgYXMgd2VsbCBhcyBz ZXZlcmFsIG90aGVyIGZlYXR1cmVzOg0KKiBzdXBwb3J0IGZvciBNSU1FLCBTL01JTUUsIGFuZCBh dHRhY2htZW50cw0KKiBzdXBwb3J0IGZvciBTTVRQKFMpLCBQT1AzKFMpLCBhbmQgSU1BUChTKQ0K KiBzdXBwb3J0IGZvciBtYWlsZGlyLWZvcm1hdCBlbWFpbCBhcmNoaXZlcw0KLi4uIGFuZCBtdWNo ICBtb3JlLg0KDQpUaGlzIGlzIHVwZGF0ZWQgZnJvbSBDVlMgdG8gZ2V0IGN1cnJlbnQgT3BlblNT TCBjb21wYXQuDQpOU1MgY291bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIE9wZW5TU0wuDQpTb21lIHNl Y3VyaXR5IGZpeGVzIGZyb20gRmxvcmlhbiBXZWltZXIgYXJlIGluY2x1ZGVkIC0gc2VlDQogaHR0 cDovL3NlY2xpc3RzLm9yZy9vc3Mtc2VjLzIwMTQvcTQvMTA2Ng0KDQprcmI1IGlzIHVzZWQgZm9y IElNQVAgYXV0aGVudGljYXRpb24gb3ZlciBHU1M7IG91ciBsaWJnc3MgZG9lc24ndCB3b3JrDQoo YW5kIG1pZ2h0IG5vdCBiZSBPSyB0byBsaW5rIHdpdGggb3BlbnNzbD8pIGFuZCB1c2luZyBsaWJn c3NnbHVlDQp3aWxsIHByb2JhYmx5IHJlcXVpcmUgc29tZSBwYXRjaGluZyBvZiB0aGUgbWFrZWZp bGUuDQotLS0NCg0KIC4uLi8wMDAxLW91dG9mLUludHJvZHVjZS1leHBhbmRhZGRyLWZsYWcucGF0 Y2ggICAgIHwgICA2NSArKw0KIC4uLmJsZS1vcHRpb24tcHJvY2Vzc2luZy1mb3ItZW1haWwtYWRk cmVzc2VzLnBhdGNoIHwgICA3NSArKw0KIC4uLmMtVW5jb25kaXRpb25hbGx5LXJlcXVpcmUtd29y ZGV4cC1zdXBwb3J0LnBhdGNoIHwgIDEwOSArKysNCiAuLi52b2tlLXdvcmRleHAtd2l0aC1XUkRF X05PQ01ELUNWRS0yMDA0LTI3Ny5wYXRjaCB8ICAgMjYgKw0KIHRlc3RpbmcvaGVpcmxvb20tbWFp bHgvMTIuNC10by0xMi41cHJlLnBhdGNoICAgICAgIHwgMTAwMSArKysrKysrKysrKysrKysrKysr Kw0KIHRlc3RpbmcvaGVpcmxvb20tbWFpbHgvQVBLQlVJTEQgICAgICAgICAgICAgICAgICAgIHwg ICA2NiArKw0KIHRlc3RpbmcvaGVpcmxvb20tbWFpbHgvbWFrZXZhcnMucGF0Y2ggICAgICAgICAg ICAgIHwgICAzMyArDQogNyBmaWxlcyBjaGFuZ2VkLCAxMzc1IGluc2VydGlvbnMoKykNCiBjcmVh dGUgbW9kZSAxMDA2NDQgdGVzdGluZy9oZWlybG9vbS1tYWlseC8wMDAxLW91dG9mLUludHJvZHVj ZS1leHBhbmRhZGRyLWZsYWcucGF0Y2gNCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdGluZy9oZWly bG9vbS1tYWlseC8wMDAyLXVucGFjay1EaXNhYmxlLW9wdGlvbi1wcm9jZXNzaW5nLWZvci1lbWFp bC1hZGRyZXNzZXMucGF0Y2gNCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdGluZy9oZWlybG9vbS1t YWlseC8wMDAzLWZpb19jLVVuY29uZGl0aW9uYWxseS1yZXF1aXJlLXdvcmRleHAtc3VwcG9ydC5w YXRjaA0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0aW5nL2hlaXJsb29tLW1haWx4LzAwMDQtZ2xv Ym5hbWUtSW52b2tlLXdvcmRleHAtd2l0aC1XUkRFX05PQ01ELUNWRS0yMDA0LTI3Ny5wYXRjaA0K IGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0aW5nL2hlaXJsb29tLW1haWx4LzEyLjQtdG8tMTIuNXBy ZS5wYXRjaA0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0aW5nL2hlaXJsb29tLW1haWx4L0FQS0JV SUxEDQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RpbmcvaGVpcmxvb20tbWFpbHgvbWFrZXZhcnMu cGF0Y2gNCg0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvaGVpcmxvb20tbWFpbHgvMDAwMS1vdXRvZi1J bnRyb2R1Y2UtZXhwYW5kYWRkci1mbGFnLnBhdGNoIGIvdGVzdGluZy9oZWlybG9vbS1tYWlseC8w MDAxLW91dG9mLUludHJvZHVjZS1leHBhbmRhZGRyLWZsYWcucGF0Y2gNCm5ldyBmaWxlIG1vZGUg MTAwNjQ0DQppbmRleCAwMDAwMDAwLi5jNTZlOGE3DQotLS0gL2Rldi9udWxsDQorKysgYi90ZXN0 aW5nL2hlaXJsb29tLW1haWx4LzAwMDEtb3V0b2YtSW50cm9kdWNlLWV4cGFuZGFkZHItZmxhZy5w YXRjaA0KQEAgLTAsMCArMSw2NSBAQA0KKz5Gcm9tIDk5ODRhZTVjYjBlYTBkNjFkZjE2MTJiMDY5 NTJhNjEzMjNjMDgzZDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxDQorRnJvbTogRmxvcmlhbiBX ZWltZXIgPGZ3ZWltZXIgKCkgcmVkaGF0IGNvbT4NCitEYXRlOiBNb24sIDE3IE5vdiAyMDE0IDEx OjEzOjM4ICswMTAwDQorU3ViamVjdDogW1BBVENIIDEvNF0gb3V0b2Y6IEludHJvZHVjZSBleHBh bmRhZGRyIGZsYWcNCisNCitEb2N1bWVudCB0aGF0IGFkZHJlc3MgZXhwYW5zaW9uIGlzIGRpc2Fi bGVkIHVubGVzcyB0aGUgZXhwYW5kYWRkcg0KK2JpbmFyeSBvcHRpb24gaXMgc2V0Lg0KKw0KK1Ro aXMgaGFzIGJlZW4gYXNzaWduZWQgQ1ZFLTIwMTQtNzg0NCBmb3IgQlNEIG1haWx4LCBidXQgaXQg aXMgbm90DQorYSB2dWxuZXJhYmlsaXR5IGluIEhlaXJsb29tIG1haWx4IGJlY2F1c2UgdGhpcyBm ZWF0dXJlIHdhcyBkb2N1bWVudGVkLg0KKy0tLQ0KKyBtYWlseC4xIHwgMTQgKysrKysrKysrKysr KysNCisgbmFtZXMuYyB8ICAzICsrKw0KKyAyIGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMo KykNCisNCitkaWZmIC0tZ2l0IGEvbWFpbHguMSBiL21haWx4LjENCitpbmRleCA3MGE3ODU5Li4y MmExNzFiIDEwMDY0NA0KKy0tLSBhL21haWx4LjENCisrKysgYi9tYWlseC4xDQorQEAgLTY1Niw2 ICs2NTYsMTQgQEAgYnV0IGFueSByZXBseSByZXR1cm5lZCB0byB0aGUgbWFjaGluZQ0KKyB3aWxs IGhhdmUgdGhlIHN5c3RlbSB3aWRlIGFsaWFzIGV4cGFuZGVkDQorIGFzIGFsbCBtYWlsIGdvZXMg dGhyb3VnaCBzZW5kbWFpbC4NCisgLlNTICJSZWNpcGllbnQgYWRkcmVzcyBzcGVjaWZpY2F0aW9u cyINCisrSWYgdGhlDQorKy5JIGV4cGFuZGFkZHINCisrb3B0aW9uIGlzIG5vdCBzZXQgKHRoZSBk ZWZhdWx0KSwgcmVjaXBpZW50IGFkZHJlc3NlcyBtdXN0IGJlIG5hbWVzIG9mDQorK2xvY2FsIG1h aWxib3hlcyBvciBJbnRlcm5ldCBtYWlsIGFkZHJlc3Nlcy4NCisrLlBQDQorK0lmIHRoZQ0KKysu SSBleHBhbmRhZGRyDQorK29wdGlvbiBpcyBzZXQsIHRoZSBmb2xsb3dpbmcgcnVsZXMgYXBwbHk6 DQorIFdoZW4gYW4gYWRkcmVzcyBpcyB1c2VkIHRvIG5hbWUgYSByZWNpcGllbnQNCisgKGluIGFu eSBvZiBUbywgQ2MsIG9yIEJjYyksDQorIG5hbWVzIG9mIGxvY2FsIG1haWwgZm9sZGVycw0KK0BA IC0yMzkxLDYgKzIzOTksMTIgQEAgYW5kIGV4aXRzIGltbWVkaWF0ZWx5Lg0KKyBJZiB0aGlzIG9w dGlvbiBpcyBzZXQsDQorIFxmSW1haWx4XGZSIHN0YXJ0cyBldmVuIHdpdGggYW4gZW1wdHkgbWFp bGJveC4NCisgLlRQDQorKy5CIGV4cGFuZGFkZHINCisrQ2F1c2VzDQorKy5JIG1haWx4DQorK3Rv IGV4cGFuZCBtZXNzYWdlIHJlY2lwaWVudCBhZGRyZXNzZXMsIGFzIGV4cGxhaW5lZCBpbiB0aGUg c2VjdGlvbiwNCisrUmVjaXBpZW50IGFkZHJlc3Mgc3BlY2lmaWNhdGlvbnMuDQorKy5UUA0KKyAu QiBmbGlwcg0KKyBFeGNoYW5nZXMgdGhlDQorIC5JIFJlc3BvbmQNCitkaWZmIC0tZ2l0IGEvbmFt ZXMuYyBiL25hbWVzLmMNCitpbmRleCA2NmU5NzZiLi5jNjk1NjBmIDEwMDY0NA0KKy0tLSBhL25h bWVzLmMNCisrKysgYi9uYW1lcy5jDQorQEAgLTI2OCw2ICsyNjgsOSBAQCBvdXRvZihzdHJ1Y3Qg bmFtZSAqbmFtZXMsIEZJTEUgKmZvLCBzdHJ1Y3QgaGVhZGVyICpocCkNCisgCUZJTEUgKmZvdXQs ICpmaW47DQorIAlpbnQgaXNwaXBlOw0KKyANCisrCWlmICh2YWx1ZSgiZXhwYW5kYWRkciIpID09 IE5VTEwpDQorKwkJcmV0dXJuIG5hbWVzOw0KKysNCisgCXRvcCA9IG5hbWVzOw0KKyAJbnAgPSBu YW1lczsNCisgCXRpbWUoJm5vdyk7DQorLS0gDQorMS45LjMNCisNCisNCmRpZmYgLS1naXQgYS90 ZXN0aW5nL2hlaXJsb29tLW1haWx4LzAwMDItdW5wYWNrLURpc2FibGUtb3B0aW9uLXByb2Nlc3Np bmctZm9yLWVtYWlsLWFkZHJlc3Nlcy5wYXRjaCBiL3Rlc3RpbmcvaGVpcmxvb20tbWFpbHgvMDAw Mi11bnBhY2stRGlzYWJsZS1vcHRpb24tcHJvY2Vzc2luZy1mb3ItZW1haWwtYWRkcmVzc2VzLnBh dGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uOWJhZjYwOA0KLS0tIC9k ZXYvbnVsbA0KKysrIGIvdGVzdGluZy9oZWlybG9vbS1tYWlseC8wMDAyLXVucGFjay1EaXNhYmxl LW9wdGlvbi1wcm9jZXNzaW5nLWZvci1lbWFpbC1hZGRyZXNzZXMucGF0Y2gNCkBAIC0wLDAgKzEs NzUgQEANCis+RnJvbSBlMzRlMmFjNjdiODA0OTcwODBlYmVjY2NlYzQwYzNiNjE0NTYxNjdkIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyICgp IHJlZGhhdCBjb20+DQorRGF0ZTogTW9uLCAxNyBOb3YgMjAxNCAxMToxNDowNiArMDEwMA0KK1N1 YmplY3Q6IFtQQVRDSCAyLzRdIHVucGFjazogRGlzYWJsZSBvcHRpb24gcHJvY2Vzc2luZyBmb3Ig ZW1haWwgYWRkcmVzc2VzDQorIHdoZW4gY2FsbGluZyBzZW5kbWFpbA0KKw0KKy0tLQ0KKyBleHRl cm4uaCAgfCAyICstDQorIG5hbWVzLmMgICB8IDggKysrKysrLS0NCisgc2VuZG91dC5jIHwgMiAr LQ0KKyAzIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkNCisN CitkaWZmIC0tZ2l0IGEvZXh0ZXJuLmggYi9leHRlcm4uaA0KK2luZGV4IDZiODViYTAuLjg4NzNm ZTggMTAwNjQ0DQorLS0tIGEvZXh0ZXJuLmgNCisrKysgYi9leHRlcm4uaA0KK0BAIC0zOTYsNyAr Mzk2LDcgQEAgc3RydWN0IG5hbWUgKm91dG9mKHN0cnVjdCBuYW1lICpuYW1lcywgRklMRSAqZm8s IHN0cnVjdCBoZWFkZXIgKmhwKTsNCisgaW50IGlzX2ZpbGVhZGRyKGNoYXIgKm5hbWUpOw0KKyBz dHJ1Y3QgbmFtZSAqdXNlcm1hcChzdHJ1Y3QgbmFtZSAqbmFtZXMpOw0KKyBzdHJ1Y3QgbmFtZSAq Y2F0KHN0cnVjdCBuYW1lICpuMSwgc3RydWN0IG5hbWUgKm4yKTsNCistY2hhciAqKnVucGFjayhz dHJ1Y3QgbmFtZSAqbnApOw0KKytjaGFyICoqdW5wYWNrKHN0cnVjdCBuYW1lICpzbW9wdHMsIHN0 cnVjdCBuYW1lICpucCk7DQorIHN0cnVjdCBuYW1lICplbGlkZShzdHJ1Y3QgbmFtZSAqbmFtZXMp Ow0KKyBpbnQgY291bnQoc3RydWN0IG5hbWUgKm5wKTsNCisgc3RydWN0IG5hbWUgKmRlbGV0ZV9h bHRlcm5hdGVzKHN0cnVjdCBuYW1lICpucCk7DQorZGlmZiAtLWdpdCBhL25hbWVzLmMgYi9uYW1l cy5jDQoraW5kZXggYzY5NTYwZi4uNDViYmFlZCAxMDA2NDQNCistLS0gYS9uYW1lcy5jDQorKysr IGIvbmFtZXMuYw0KK0BAIC01NDksNyArNTQ5LDcgQEAgY2F0KHN0cnVjdCBuYW1lICpuMSwgc3Ry dWN0IG5hbWUgKm4yKQ0KKyAgKiBSZXR1cm4gYW4gZXJyb3IgaWYgdGhlIG5hbWUgbGlzdCB3b24n dCBmaXQuDQorICAqLw0KKyBjaGFyICoqDQorLXVucGFjayhzdHJ1Y3QgbmFtZSAqbnApDQorK3Vu cGFjayhzdHJ1Y3QgbmFtZSAqc21vcHRzLCBzdHJ1Y3QgbmFtZSAqbnApDQorIHsNCisgCWNoYXIg KiphcCwgKip0b3A7DQorIAlzdHJ1Y3QgbmFtZSAqbjsNCitAQCAtNTY0LDcgKzU2NCw3IEBAIHVu cGFjayhzdHJ1Y3QgbmFtZSAqbnApDQorIAkgKiB0aGUgdGVybWluYXRpbmcgMCBwb2ludGVyLiAg QWRkaXRpb25hbCBzcG90cyBtYXkgYmUgbmVlZGVkDQorIAkgKiB0byBwYXNzIGFsb25nIC1mIHRv IHRoZSBob3N0IG1haWxlci4NCisgCSAqLw0KKy0JZXh0cmEgPSAyOw0KKysJZXh0cmEgPSAzICsg Y291bnQoc21vcHRzKTsNCisgCWV4dHJhKys7DQorIAltZXRvbyA9IHZhbHVlKCJtZXRvbyIpICE9 IE5VTEw7DQorIAlpZiAobWV0b28pDQorQEAgLTU4MSw2ICs1ODEsMTAgQEAgdW5wYWNrKHN0cnVj dCBuYW1lICpucCkNCisgCQkqYXArKyA9ICItbSI7DQorIAlpZiAodmVyYm9zZSkNCisgCQkqYXAr KyA9ICItdiI7DQorKwlmb3IgKDsgc21vcHRzICE9IE5VTEw7IHNtb3B0cyA9IHNtb3B0cy0+bl9m bGluaykNCisrCQlpZiAoKHNtb3B0cy0+bl90eXBlICYgR0RFTCkgPT0gMCkNCisrCQkJKmFwKysg PSBzbW9wdHMtPm5fbmFtZTsNCisrCSphcCsrID0gIi0tIjsNCisgCWZvciAoOyBuICE9IE5VTEw7 IG4gPSBuLT5uX2ZsaW5rKQ0KKyAJCWlmICgobi0+bl90eXBlICYgR0RFTCkgPT0gMCkNCisgCQkJ KmFwKysgPSBuLT5uX25hbWU7DQorZGlmZiAtLWdpdCBhL3NlbmRvdXQuYyBiL3NlbmRvdXQuYw0K K2luZGV4IDdiN2YyZWIuLmM1MmYxNWQgMTAwNjQ0DQorLS0tIGEvc2VuZG91dC5jDQorKysrIGIv c2VuZG91dC5jDQorQEAgLTgzNSw3ICs4MzUsNyBAQCBzdGFydF9tdGEoc3RydWN0IG5hbWUgKnRv LCBzdHJ1Y3QgbmFtZSAqbWFpbGFyZ3MsIEZJTEUgKmlucHV0LA0KKyAjZW5kaWYJLyogSEFWRV9T T0NLRVRTICovDQorIA0KKyAJaWYgKChzbXRwID0gdmFsdWUoInNtdHAiKSkgPT0gTlVMTCkgew0K Ky0JCWFyZ3MgPSB1bnBhY2soY2F0KG1haWxhcmdzLCB0bykpOw0KKysJCWFyZ3MgPSB1bnBhY2so bWFpbGFyZ3MsIHRvKTsNCisgCQlpZiAoZGVidWcgfHwgdmFsdWUoImRlYnVnIikpIHsNCisgCQkJ cHJpbnRmKGNhdGdldHMoY2F0ZCwgQ0FUU0VULCAxODEsDQorIAkJCQkJIlNlbmRtYWlsIGFyZ3Vt ZW50czoiKSk7DQorLS0gDQorMS45LjMNCisNCisNCmRpZmYgLS1naXQgYS90ZXN0aW5nL2hlaXJs b29tLW1haWx4LzAwMDMtZmlvX2MtVW5jb25kaXRpb25hbGx5LXJlcXVpcmUtd29yZGV4cC1zdXBw b3J0LnBhdGNoIGIvdGVzdGluZy9oZWlybG9vbS1tYWlseC8wMDAzLWZpb19jLVVuY29uZGl0aW9u YWxseS1yZXF1aXJlLXdvcmRleHAtc3VwcG9ydC5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAuLjA1ZmUwMGYNCi0tLSAvZGV2L251bGwNCisrKyBiL3Rlc3RpbmcvaGVp cmxvb20tbWFpbHgvMDAwMy1maW9fYy1VbmNvbmRpdGlvbmFsbHktcmVxdWlyZS13b3JkZXhwLXN1 cHBvcnQucGF0Y2gNCkBAIC0wLDAgKzEsMTA5IEBADQorPkZyb20gMmJhZThlY2YwNGVjMmJhNmJi OWYwYWY1YjgwNDg1ZGQwZWRiNDI3ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCitGcm9tOiBG bG9yaWFuIFdlaW1lciA8ZndlaW1lciAoKSByZWRoYXQgY29tPg0KK0RhdGU6IE1vbiwgMTcgTm92 IDIwMTQgMTI6NDg6MjUgKzAxMDANCitTdWJqZWN0OiBbUEFUQ0ggMy80XSBmaW8uYzogVW5jb25k aXRpb25hbGx5IHJlcXVpcmUgd29yZGV4cCBzdXBwb3J0DQorDQorLS0tDQorIGZpby5jIHwgNjcg KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KKyAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlv bnMoLSkNCisNCitkaWZmIC0tZ2l0IGEvZmlvLmMgYi9maW8uYw0KK2luZGV4IDY1ZThmMTAuLjE1 MjkyMzYgMTAwNjQ0DQorLS0tIGEvZmlvLmMNCisrKysgYi9maW8uYw0KK0BAIC00MywxMiArNDMs MTUgQEAgc3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKWZpby5jCTIuNzYgKGdyaXR0ZXIpIDkv MTYvMDkiOw0KKyAjZW5kaWYgLyogbm90IGxpbnQgKi8NCisgDQorICNpbmNsdWRlICJyY3YuaCIN CisrDQorKyNpZm5kZWYgSEFWRV9XT1JERVhQDQorKyNlcnJvciB3b3JkZXhwIHN1cHBvcnQgaXMg cmVxdWlyZWQNCisrI2VuZGlmDQorKw0KKyAjaW5jbHVkZSA8c3lzL3N0YXQuaD4NCisgI2luY2x1 ZGUgPHN5cy9maWxlLmg+DQorICNpbmNsdWRlIDxzeXMvd2FpdC5oPg0KKy0jaWZkZWYJSEFWRV9X T1JERVhQDQorICNpbmNsdWRlIDx3b3JkZXhwLmg+DQorLSNlbmRpZgkvKiBIQVZFX1dPUkRFWFAg Ki8NCisgI2luY2x1ZGUgPHVuaXN0ZC5oPg0KKyANCisgI2lmIGRlZmluZWQgKFVTRV9OU1MpDQor QEAgLTQ4MSw3ICs0ODQsNiBAQCBuZXh0Og0KKyBzdGF0aWMgY2hhciAqDQorIGdsb2JuYW1lKGNo YXIgKm5hbWUpDQorIHsNCistI2lmZGVmCUhBVkVfV09SREVYUA0KKyAJd29yZGV4cF90IHdlOw0K KyAJY2hhciAqY3A7DQorIAlzaWdzZXRfdCBuc2V0Ow0KK0BAIC01MjcsNjUgKzUyOSw2IEBAIGds b2JuYW1lKGNoYXIgKm5hbWUpDQorIAl9DQorIAl3b3JkZnJlZSgmd2UpOw0KKyAJcmV0dXJuIGNw Ow0KKy0jZWxzZQkvKiAhSEFWRV9XT1JERVhQICovDQorLQljaGFyIHhuYW1lW1BBVEhTSVpFXTsN CistCWNoYXIgY21kYnVmW1BBVEhTSVpFXTsJCS8qIGFsc28gdXNlZCBmb3IgZmlsZSBuYW1lcyAq Lw0KKy0JaW50IHBpZCwgbDsNCistCWNoYXIgKmNwLCAqc2hlbGw7DQorLQlpbnQgcGl2ZWNbMl07 DQorLQlleHRlcm4gaW50IHdhaXRfc3RhdHVzOw0KKy0Jc3RydWN0IHN0YXQgc2J1ZjsNCistDQor LQlpZiAocGlwZShwaXZlYykgPCAwKSB7DQorLQkJcGVycm9yKCJwaXBlIik7DQorLQkJcmV0dXJu IG5hbWU7DQorLQl9DQorLQlzbnByaW50ZihjbWRidWYsIHNpemVvZiBjbWRidWYsICJlY2hvICVz IiwgbmFtZSk7DQorLQlpZiAoKHNoZWxsID0gdmFsdWUoIlNIRUxMIikpID09IE5VTEwpDQorLQkJ c2hlbGwgPSBTSEVMTDsNCistCXBpZCA9IHN0YXJ0X2NvbW1hbmQoc2hlbGwsIDAsIC0xLCBwaXZl Y1sxXSwgIi1jIiwgY21kYnVmLCBOVUxMKTsNCistCWlmIChwaWQgPCAwKSB7DQorLQkJY2xvc2Uo cGl2ZWNbMF0pOw0KKy0JCWNsb3NlKHBpdmVjWzFdKTsNCistCQlyZXR1cm4gTlVMTDsNCistCX0N CistCWNsb3NlKHBpdmVjWzFdKTsNCistYWdhaW46DQorLQlsID0gcmVhZChwaXZlY1swXSwgeG5h bWUsIHNpemVvZiB4bmFtZSk7DQorLQlpZiAobCA8IDApIHsNCistCQlpZiAoZXJybm8gPT0gRUlO VFIpDQorLQkJCWdvdG8gYWdhaW47DQorLQkJcGVycm9yKCJyZWFkIik7DQorLQkJY2xvc2UocGl2 ZWNbMF0pOw0KKy0JCXJldHVybiBOVUxMOw0KKy0JfQ0KKy0JY2xvc2UocGl2ZWNbMF0pOw0KKy0J aWYgKHdhaXRfY2hpbGQocGlkKSA8IDAgJiYgV1RFUk1TSUcod2FpdF9zdGF0dXMpICE9IFNJR1BJ UEUpIHsNCistCQlmcHJpbnRmKHN0ZGVyciwgY2F0Z2V0cyhjYXRkLCBDQVRTRVQsIDgxLA0KKy0J CQkJIlwiJXNcIjogRXhwYW5zaW9uIGZhaWxlZC5cbiIpLCBuYW1lKTsNCistCQlyZXR1cm4gTlVM TDsNCistCX0NCistCWlmIChsID09IDApIHsNCistCQlmcHJpbnRmKHN0ZGVyciwgY2F0Z2V0cyhj YXRkLCBDQVRTRVQsIDgyLA0KKy0JCQkJCSJcIiVzXCI6IE5vIG1hdGNoLlxuIiksIG5hbWUpOw0K Ky0JCXJldHVybiBOVUxMOw0KKy0JfQ0KKy0JaWYgKGwgPT0gc2l6ZW9mIHhuYW1lKSB7DQorLQkJ ZnByaW50ZihzdGRlcnIsIGNhdGdldHMoY2F0ZCwgQ0FUU0VULCA4MywNCistCQkJCSJcIiVzXCI6 IEV4cGFuc2lvbiBidWZmZXIgb3ZlcmZsb3cuXG4iKSwgbmFtZSk7DQorLQkJcmV0dXJuIE5VTEw7 DQorLQl9DQorLQl4bmFtZVtsXSA9IDA7DQorLQlmb3IgKGNwID0gJnhuYW1lW2wtMV07ICpjcCA9 PSAnXG4nICYmIGNwID4geG5hbWU7IGNwLS0pDQorLQkJOw0KKy0JY3BbMV0gPSAnXDAnOw0KKy0J aWYgKHN0cmNocih4bmFtZSwgJyAnKSAmJiBzdGF0KHhuYW1lLCAmc2J1ZikgPCAwKSB7DQorLQkJ ZnByaW50ZihzdGRlcnIsIGNhdGdldHMoY2F0ZCwgQ0FUU0VULCA4NCwNCistCQkJCSJcIiVzXCI6 IEFtYmlndW91cy5cbiIpLCBuYW1lKTsNCistCQlyZXR1cm4gTlVMTDsNCistCX0NCistCXJldHVy biBzYXZlc3RyKHhuYW1lKTsNCistI2VuZGlmCS8qICFIQVZFX1dPUkRFWFAgKi8NCisgfQ0KKyAN CisgLyoNCistLSANCisxLjkuMw0KKw0KKw0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvaGVpcmxvb20t bWFpbHgvMDAwNC1nbG9ibmFtZS1JbnZva2Utd29yZGV4cC13aXRoLVdSREVfTk9DTUQtQ1ZFLTIw MDQtMjc3LnBhdGNoIGIvdGVzdGluZy9oZWlybG9vbS1tYWlseC8wMDA0LWdsb2JuYW1lLUludm9r ZS13b3JkZXhwLXdpdGgtV1JERV9OT0NNRC1DVkUtMjAwNC0yNzcucGF0Y2gNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi4xNzMzNzhmDQotLS0gL2Rldi9udWxsDQorKysgYi90 ZXN0aW5nL2hlaXJsb29tLW1haWx4LzAwMDQtZ2xvYm5hbWUtSW52b2tlLXdvcmRleHAtd2l0aC1X UkRFX05PQ01ELUNWRS0yMDA0LTI3Ny5wYXRjaA0KQEAgLTAsMCArMSwyNiBAQA0KKz5Gcm9tIDcz ZmVmYTBjMWFjNzAwNDNlYzg0ZjJkOGI4ZjlmNjgzMjEzZjE2OGQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxDQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXIgKCkgcmVkaGF0IGNvbT4NCitE YXRlOiBNb24sIDE3IE5vdiAyMDE0IDEzOjExOjMyICswMTAwDQorU3ViamVjdDogW1BBVENIIDQv NF0gZ2xvYm5hbWU6IEludm9rZSB3b3JkZXhwIHdpdGggV1JERV9OT0NNRCAoQ1ZFLTIwMDQtMjc3 MSkNCisNCistLS0NCisgZmlvLmMgfCAyICstDQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQ0KKw0KK2RpZmYgLS1naXQgYS9maW8uYyBiL2Zpby5jDQoraW5k ZXggMTUyOTIzNi4uNzc0YTIwNCAxMDA2NDQNCistLS0gYS9maW8uYw0KKysrKyBiL2Zpby5jDQor QEAgLTQ5Nyw3ICs0OTcsNyBAQCBnbG9ibmFtZShjaGFyICpuYW1lKQ0KKyAJc2lnZW1wdHlzZXQo Jm5zZXQpOw0KKyAJc2lnYWRkc2V0KCZuc2V0LCBTSUdDSExEKTsNCisgCXNpZ3Byb2NtYXNrKFNJ R19CTE9DSywgJm5zZXQsIE5VTEwpOw0KKy0JaSA9IHdvcmRleHAobmFtZSwgJndlLCAwKTsNCisr CWkgPSB3b3JkZXhwKG5hbWUsICZ3ZSwgV1JERV9OT0NNRCk7DQorIAlzaWdwcm9jbWFzayhTSUdf VU5CTE9DSywgJm5zZXQsIE5VTEwpOw0KKyAJc3dpdGNoIChpKSB7DQorIAljYXNlIDA6DQorLS0g DQorMS45LjMNCisNCisNCmRpZmYgLS1naXQgYS90ZXN0aW5nL2hlaXJsb29tLW1haWx4LzEyLjQt dG8tMTIuNXByZS5wYXRjaCBiL3Rlc3RpbmcvaGVpcmxvb20tbWFpbHgvMTIuNC10by0xMi41cHJl LnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uOWZkNWM4Zg0KLS0t IC9kZXYvbnVsbA0KKysrIGIvdGVzdGluZy9oZWlybG9vbS1tYWlseC8xMi40LXRvLTEyLjVwcmUu cGF0Y2gNCkBAIC0wLDAgKzEsMTAwMSBAQA0KKy0tLSBtYWlseC0xMi40L0NoYW5nZUxvZw0KKysr KyBuYWlsL0NoYW5nZUxvZw0KK0BAIC0xLDMgKzEsMzggQEANCisrWzEyLjVdIGFzIG9mIDcvNS8x MA0KKysqIFRoZSB1bmRvY3VtZW50ZWQgY29udGVudHR5cGUtY250cmwgb3B0aW9uIHdvcmtzIGFn YWluIChwYXRjaCBieQ0KKysgIExhdXJlbnQgUGFyZW50ZWF1KS4NCisrDQorK1sxMi41XSBhcyBv ZiA2LzIwLzEwDQorKyogRml4ZWQgYSBtZXNzYWdlIGNvcnJ1cHRpb24gdGhhdCBvY2N1cnJlZCB3 aGVuIHRoZSAiaW5jIiBjb21tYW5kIHdhcyB1c2VkDQorKyAgd2l0aCBhIG1ib3ggZm9ybWF0IG1h aWxib3ggYWZ0ZXIgZW5jcnlwdGVkIG1lc3NhZ2VzIGhhZCBiZWVuIHZpZXdlZA0KKysgIChyZXBv cnRlZCBieSBNYXJ0aW4gTmVpdHplbCkuDQorKyogRml4ZWQgYSBjb25kaXRpb24gdGhhdCBjYXVz ZWQgbWFpbHggdG8gaGFuZyB3aGVuIGxvb2tpbmcgYXQgYSBtZXNzYWdlLA0KKysgIGNvcHlpbmcg dGhhdCBtZXNzYWdlLCBhbmQgaXNzdWluZyBhICJ6IiBjb21tYW5kIGV2YWx1YXRpbmcgYW4gdW5j YWNoZWQNCisrICBwb3J0aW9uIG9mIGFuIElNQVAgZm9sZGVyLg0KKysqIE1ha2UgaXQgY29tcGls ZSB3aXRoIE9wZW5TU0wgMS4wLjAtYmV0YTIgKHBhdGNoIGJ5IEJlcm5oYXJkIFJvc2Vua3LDpG56 ZXIpLg0KKysqIFdoZW4gZXhlY3V0aW5nIGFuICJhY2NvdW50IiBjb21tYW5kLCBlbnN1cmUgdGhh dCB0aGUgdmFsdWVzIG9mIHRoZSAiaG9sZCIsDQorKyAgImtlZXBzYXZlIiwgImFwcGVuZCIsIGFu ZCAiZW1wdHlib3giIHZhcmlhYmxlcyByZW1haW4gdGhvc2Ugb2YgdGhlIHByZXZpb3VzDQorKyAg YWNjb3VudCBmb3IgYWxsIG91dHN0YW5kaW5nIG9wZXJhdGlvbnMgb24gdGhhdCBhY2NvdW50IChi dWcgcmVwb3J0ZWQgYnkNCisrICBKZWZmIFdvb2RhbGwpLg0KKysqIFN1cHBvcnQgR21haWwgSU1B UCBzZW1hbnRpY3Mgb2YgImRlbGV0ZSIgdHVybmluZyBpbnRvICJhcmNoaXZlIi4gUHJldmlvdXNs eSwNCisrICB3aGVuIG1haWx4IHdhcyBzZXR0aW5nIHRoZSAiXERlbGV0ZWQiIGZsYWcgb24gYSBt ZXNzYWdlLCBpdCBkaWQgbm90IHNldCBhbnkNCisrICBvdGhlciBmbGFncy4gVGhpcyBjYXVzZWQg bWFpbHMgdGhhdCBoYWQgYmVlbiByZWFkIGFuZCB0aGVuIGRlbGV0ZWQgdG8gYXBwZWFyDQorKyAg YXMgdW5yZWFkIGluIEdtYWlsJ3MgIkFsbCBNYWlsIi4gTm93LCBmbGFncyBiZXNpZGVzICJcRGVs ZXRlZCIgYXJlIGFsc28gc2V0LA0KKysgIHNvIHRoYXQgdGhleSBhcmUga2VwdCBpbiB0aGUgYXJj aGl2ZWQgY29weSAocmVwb3J0ZWQgYnkgSmVyZW15IE8nQnJpZW4pLg0KKysqIEZvciBSRkMgMjA0 NyBNSU1FICJlbmNvZGVkLXdvcmQiIHBhcnRzIGluIGhlYWRlcnMsIGFzc3VtZSB0aGF0IHRoZSBl bmQgb2YNCisrICBlYWNoIHdvcmQgcmVzZXRzIHRoZSBjb252ZXJzaW9uIHN0YXRlIChZZWRpZHlh aCBCYXItRGF2aWQpLg0KKysqIFdoZW4gdGhlIE9SR0FOSVpBVElPTiB2YXJpYWJsZSBoYXMgYW4g ZW1wdHkgdmFsdWUsIGRvIG5vdCBnZW5lcmF0ZSBhbg0KKysgICJPcmdhbml6YXRpb246IiBoZWFk ZXIgZmllbGQuIFByZXZpb3VzbHksIHRoaXMgY29uZGl0aW9uIHJlc3VsdGVkIGluDQorKyAgbWFp bHggcmVmdXNpbmcgdG8gc2VuZCBtYWlsIChUaG9tYXMgRS4gS2FtbWV5ZXIpLg0KKysqIFdoZW4g Y2xhc3NpZnlpbmcgbWVzc2FnZXMgd2l0aCB0aGUganVuayBmaWx0ZXIsIHdoZW4gc2VsZWN0aW5n IHRoZSBtb3N0DQorKyAgcmVwcmVzZW50YXRpdmUgdG9rZW5zLCBwcmVmZXIgbm9uLWp1bmsgdG9r ZW5zIG92ZXIganVuayB0b2tlbnMgaWYgYm90aA0KKysgIGhhdmUgdGhlIHNhbWUgKHJldmVyc2Vk KSBwcm9iYWJpbGl0eSwgaW4gb3JkZXIgdG8gYXZvaWQgZmFsc2UgcG9zaXRpdmVzLg0KKysqIFdo ZW4gY2FsY3VsYXRpbmcgdGhlIHByb2JhYmlsaXRpZXMgb2YgdG9rZW5zIHRoYXQgaGF2ZSBvY2N1 cnJlZCBvbmx5IGluDQorKyAgZ29vZCBtZXNzYWdlcyBvciBvbmx5IGluIGp1bmsgbWVzc2FnZXMg c28gZmFyLCBhbmQgdGhlc2UgdG9rZW5zIG9jY3VycmVkDQorKyAgbGVzcyB0aGFuIHRlbiB0aW1l cywgZ2l2ZSB0aGVtIHNsaWdodGx5IGxlc3MgdGhhbiB0aGUgbWluaW11bS9tYXhpbXVtLg0KKysq IEZpeGVkICJ1bmlnbm9yZSIgYW5kIHNpbWlsYXIgY29tbWFuZHM7IHRoZXkgZGlkIG5vdCB3b3Jr IGF0IGFsbCBzbyBmYXINCisrICAoaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9jZ2kvcXVlcnktcHIu Y2dpP3ByPTE0NjI4MCkuDQorKw0KKyBbMTIuNF0gcmVsZWFzZWQgNy8yOS8wOA0KKyAqIFdpdGgg dGhlICItRSIgY29tbWFuZCBsaW5lIG9wdGlvbiBvciBpZiB0aGUgInNraXBlbXB0eWJvZHkiIHZh cmlhYmxlIGlzDQorICAgc2V0LCBvdXRnb2luZyBtZXNzYWdlcyB0aGF0IGNvbnRhaW4gbm8gdGV4 dCBpbiB0aGVpciBmaXJzdCBvciBvbmx5IHBhcnQNCistLS0gbWFpbHgtMTIuNC9jbWQyLmMNCisr KysgbmFpbC9jbWQyLmMNCitAQCAtMzgsNyArMzgsNyBAQA0KKyANCisgI2lmbmRlZiBsaW50DQor ICNpZmRlZglET1NDQ1MNCistc3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKWNtZDIuYwkyLjQ2 IChncml0dGVyKSAzLzQvMDYiOw0KKytzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpY21kMi5j CTIuNDcgKGdyaXR0ZXIpIDUvOS8xMCI7DQorICNlbmRpZg0KKyAjZW5kaWYgLyogbm90IGxpbnQg Ki8NCisgDQorQEAgLTgwMywxNiArODAzLDE3IEBADQorIAlpbnQgaCA9IGhhc2gobmFtZSk7DQor IA0KKyAJZm9yIChpcCA9IHRhYi0+aV9oZWFkW2hdOyBpcDsgaXAgPSBpcC0+aV9saW5rKSB7DQor LQkJaWYgKGFzY2Nhc2VjbXAoaXAtPmlfZmllbGQsIG5hbWUpKSB7DQorKwkJaWYgKGFzY2Nhc2Vj bXAoaXAtPmlfZmllbGQsIG5hbWUpID09IDApIHsNCisgCQkJZnJlZShpcC0+aV9maWVsZCk7DQor IAkJCWlmIChpcSAhPSBOVUxMKQ0KKyAJCQkJaXEtPmlfbGluayA9IGlwLT5pX2xpbms7DQorIAkJ CWVsc2UNCistCQkJCXRhYi0+aV9oZWFkW2hdID0gTlVMTDsNCisrCQkJCXRhYi0+aV9oZWFkW2hd ID0gaXAtPmlfbGluazsNCisgCQkJZnJlZShpcCk7DQorIAkJCXRhYi0+aV9jb3VudC0tOw0KKyAJ CQlicmVhazsNCisgCQl9DQorKwkJaXEgPSBpcDsNCisgCX0NCisgfQ0KKyANCistLS0gbWFpbHgt MTIuNC9jbWQzLmMNCisrKysgbmFpbC9jbWQzLmMNCitAQCAtMzgsNyArMzgsNyBAQA0KKyANCisg I2lmbmRlZiBsaW50DQorICNpZmRlZglET1NDQ1MNCistc3RhdGljIGNoYXIgc2Njc2lkW10gPSAi QCgjKWNtZDMuYwkyLjg2IChncml0dGVyKSAxMC8xLzA3IjsNCisrc3RhdGljIGNoYXIgc2Njc2lk W10gPSAiQCgjKWNtZDMuYwkyLjg3IChncml0dGVyKSAxMC8xLzA4IjsNCisgI2VuZGlmDQorICNl bmRpZiAvKiBub3QgbGludCAqLw0KKyANCitAQCAtMTMxMSw3ICsxMzExLDcgQEANCisgCWNoYXIJ KiphcmdzID0gKGNoYXIgKiopdjsNCisgCXN0cnVjdCBvbGRhY2NvdW50CSphOw0KKyAJY2hhcgkq Y3A7DQorLQlpbnQJaSwgbWM7DQorKwlpbnQJaSwgbWMsIG9xZiwgbnFmOw0KKyAJRklMRQkqZnAg PSBzdGRvdXQ7DQorIA0KKyAJaWYgKGFyZ3NbMF0gPT0gTlVMTCkgew0KK0BAIC0xMzQ1LDYgKzEz NDUsNyBAQA0KKyAJCXJldHVybiBkZWZpbmUxKGFyZ3NbMF0sIDEpOw0KKyAJfQ0KKyAJc3RybmNw eShtYm94bmFtZSwgZXhwYW5kKCImIiksIHNpemVvZiBtYm94bmFtZSlbc2l6ZW9mIG1ib3huYW1l LTFdPSdcMCc7DQorKwlvcWYgPSBzYXZlcXVpdGZsYWdzKCk7DQorIAlpZiAoKGEgPSBnZXRfb2xk YWNjb3VudChhcmdzWzBdKSkgPT0gTlVMTCkgew0KKyAJCWlmIChhcmdzWzFdKSB7DQorIAkJCWEg PSBzY2FsbG9jKDEsIHNpemVvZiAqYSk7DQorQEAgLTEzNjgsOCArMTM2OSwxMyBAQA0KKyAJCXVu c2V0X2FsbG93X3VuZGVmaW5lZCA9IDE7DQorIAkJc2V0KGEtPmFjX3ZhcnMpOw0KKyAJCXVuc2V0 X2FsbG93X3VuZGVmaW5lZCA9IDA7DQorLQlzZXRmOglpZiAoIXN0YXJ0aW5nKQ0KKy0JCQlyZXR1 cm4gZmlsZTEoIiUiKTsNCisrCXNldGY6CWlmICghc3RhcnRpbmcpIHsNCisrCQkJbnFmID0gc2F2 ZXF1aXRmbGFncygpOw0KKysJCQlyZXN0b3JlcXVpdGZsYWdzKG9xZik7DQorKwkJCWkgPSBmaWxl MSgiJSIpOw0KKysJCQlyZXN0b3JlcXVpdGZsYWdzKG5xZik7DQorKwkJCXJldHVybiBpOw0KKysJ CX0NCisgCX0NCisgCXJldHVybiAwOw0KKyB9DQorLS0tIG1haWx4LTEyLjQvZXh0ZXJuLmgNCisr KysgbmFpbC9leHRlcm4uaA0KK0BAIC0zNSw3ICszNSw3IEBADQorICAqIE9VVCBPRiBUSEUgVVNF IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YN CisgICogU1VDSCBEQU1BR0UuDQorICAqDQorLSAqCVNjY3NpZCBAKCMpZXh0ZXJuLmgJMi4xNjEg KGdyaXR0ZXIpIDEwLzEvMDcNCisrICoJU2Njc2lkIEAoIylleHRlcm4uaAkyLjE2MiAoZ3JpdHRl cikgMTAvMS8wOA0KKyAgKi8NCisgDQorIC8qIGF1eC5jICovDQorQEAgLTQ0Niw2ICs0NDYsOCBA QA0KKyB2b2lkIHF1aXQodm9pZCk7DQorIGludCBob2xkYml0cyh2b2lkKTsNCisgZW51bSBva2F5 IG1ha2VtYm94KHZvaWQpOw0KKytpbnQgc2F2ZXF1aXRmbGFncyh2b2lkKTsNCisrdm9pZCByZXN0 b3JlcXVpdGZsYWdzKGludCk7DQorIC8qIHNlbmQuYyAqLw0KKyBjaGFyICpmb2xkZXJnZXRzKGNo YXIgKipzLCBzaXplX3QgKnNpemUsIHNpemVfdCAqY291bnQsIHNpemVfdCAqbGxlbiwNCisgCQlG SUxFICpzdHJlYW0pOw0KK0BAIC01MTMsMTIgKzUxNSwxMiBAQA0KKyB2b2lkIGRlbWFpbCh2b2lk KTsNCisgY2hhciAqdXNlcm5hbWUodm9pZCk7DQorIC8qIHZhcnMuYyAqLw0KKy12b2lkIGFzc2ln bihjaGFyICpuYW1lLCBjaGFyICp2YWx1ZSk7DQorK3ZvaWQgYXNzaWduKGNvbnN0IGNoYXIgKm5h bWUsIGNvbnN0IGNoYXIgKnZhbHVlKTsNCisgY2hhciAqdmNvcHkoY29uc3QgY2hhciAqc3RyKTsN CisgY2hhciAqdmFsdWUoY29uc3QgY2hhciAqbmFtZSk7DQorIHN0cnVjdCBncm91cGhlYWQgKmZp bmRncm91cChjaGFyICpuYW1lKTsNCisgdm9pZCBwcmludGdyb3VwKGNoYXIgKm5hbWUpOw0KKyBp bnQgaGFzaChjb25zdCBjaGFyICpuYW1lKTsNCistaW50IHVuc2V0X2ludGVybmFsKGNoYXIgKm5h bWUpOw0KKytpbnQgdW5zZXRfaW50ZXJuYWwoY29uc3QgY2hhciAqbmFtZSk7DQorIHZvaWQgcmVt b3ZlX2dyb3VwKGNvbnN0IGNoYXIgKm5hbWUpOw0KKyAvKiB2ZXJzaW9uLmMgKi8NCistLS0gbWFp bHgtMTIuNC9maW8uYw0KKysrKyBuYWlsL2Zpby5jDQorQEAgLTM4LDcgKzM4LDcgQEANCisgDQor ICNpZm5kZWYgbGludA0KKyAjaWZkZWYJRE9TQ0NTDQorLXN0YXRpYyBjaGFyIHNjY3NpZFtdID0g IkAoIylmaW8uYwkyLjczIChncml0dGVyKSAxLzcvMDgiOw0KKytzdGF0aWMgY2hhciBzY2NzaWRb XSA9ICJAKCMpZmlvLmMJMi43NiAoZ3JpdHRlcikgOS8xNi8wOSI7DQorICNlbmRpZg0KKyAjZW5k aWYgLyogbm90IGxpbnQgKi8NCisgDQorQEAgLTEwOCw2ICsxMDgsNyBAQA0KKyAJbWVtc2V0KCZ0 aGlzLCAwLCBzaXplb2YgdGhpcyk7DQorIAl0aGlzLm1fZmxhZyA9IE1VU0VEfE1ORVd8TU5FV0VT VDsNCisgCWZpbGVzaXplID0gbWFpbHNpemUgLSBvZmZzZXQ7DQorKwlvZmZzZXQgPSBmdGVsbCht Yi5tYl9vdGYpOw0KKyAJZm9yICg7Oykgew0KKyAJCWlmIChmZ2V0bGluZSgmbGluZWJ1ZiwgJmxp bmVzaXplLCAmZmlsZXNpemUsICZjb3VudCwgaWJ1ZiwgMCkNCisgCQkJCT09IE5VTEwpIHsNCitA QCAtMTA1MCw3ICsxMDUxLDggQEANCisgCQkJCQkJTklfTlVNRVJJQ0hPU1QpICE9IDApDQorIAkJ CQlzdHJjcHkoaGJ1ZiwgInVua25vd24gaG9zdCIpOw0KKyAJCQlmcHJpbnRmKHN0ZGVyciwgY2F0 Z2V0cyhjYXRkLCBDQVRTRVQsIDE5MiwNCistCQkJCQkiQ29ubmVjdGluZyB0byAlcyAuIC4gLiIp LCBoYnVmKTsNCisrCQkJCQkiQ29ubmVjdGluZyB0byAlczolcyAuIC4gLiIpLA0KKysJCQkJCWhi dWYsIHBvcnRzdHIpOw0KKyAJCX0NCisgCQlpZiAoKHNvY2tmZCA9IHNvY2tldChyZXMtPmFpX2Zh bWlseSwgcmVzLT5haV9zb2NrdHlwZSwNCisgCQkJCXJlcy0+YWlfcHJvdG9jb2wpKSA+PSAwKSB7 DQorQEAgLTEwNjgsMjYgKzEwNzAsMjUgQEANCisgCWZyZWVhZGRyaW5mbyhyZXMwKTsNCisgI2Vs c2UJLyogIUhBVkVfSVB2Nl9GVU5DUyAqLw0KKyAJaWYgKHBvcnQgPT0gMCkgew0KKy0JCWlmICgo ZXAgPSBnZXRzZXJ2YnluYW1lKChjaGFyICopcG9ydHN0ciwgInRjcCIpKSA9PSBOVUxMKSB7DQor LQkJCWlmIChlcXVhbChwb3J0c3RyLCAic210cCIpKQ0KKy0JCQkJcG9ydCA9IGh0b25zKDI1KTsN CistCQkJZWxzZSBpZiAoZXF1YWwocG9ydHN0ciwgInNtdHBzIikpDQorLQkJCQlwb3J0ID0gaHRv bnMoNDY1KTsNCistCQkJZWxzZSBpZiAoZXF1YWwocG9ydHN0ciwgImltYXAiKSkNCistCQkJCXBv cnQgPSBodG9ucygxNDMpOw0KKy0JCQllbHNlIGlmIChlcXVhbChwb3J0c3RyLCAiaW1hcHMiKSkN CistCQkJCXBvcnQgPSBodG9ucyg5OTMpOw0KKy0JCQllbHNlIGlmIChlcXVhbChwb3J0c3RyLCAi cG9wMyIpKQ0KKy0JCQkJcG9ydCA9IGh0b25zKDExMCk7DQorLQkJCWVsc2UgaWYgKGVxdWFsKHBv cnRzdHIsICJwb3AzcyIpKQ0KKy0JCQkJcG9ydCA9IGh0b25zKDk5NSk7DQorLQkJCWVsc2Ugew0K Ky0JCQkJZnByaW50ZihzdGRlcnIsIGNhdGdldHMoY2F0ZCwgQ0FUU0VULCAyNTEsDQorLQkJCQkJ IlVua25vd24gc2VydmljZTogJXNcbiIpLCBwb3J0c3RyKTsNCistCQkJCXJldHVybiBTVE9QOw0K Ky0JCQl9DQorLQkJfSBlbHNlDQorKwkJaWYgKGVxdWFsKHBvcnRzdHIsICJzbXRwIikpDQorKwkJ CXBvcnQgPSBodG9ucygyNSk7DQorKwkJZWxzZSBpZiAoZXF1YWwocG9ydHN0ciwgInNtdHBzIikp DQorKwkJCXBvcnQgPSBodG9ucyg0NjUpOw0KKysJCWVsc2UgaWYgKGVxdWFsKHBvcnRzdHIsICJp bWFwIikpDQorKwkJCXBvcnQgPSBodG9ucygxNDMpOw0KKysJCWVsc2UgaWYgKGVxdWFsKHBvcnRz dHIsICJpbWFwcyIpKQ0KKysJCQlwb3J0ID0gaHRvbnMoOTkzKTsNCisrCQllbHNlIGlmIChlcXVh bChwb3J0c3RyLCAicG9wMyIpKQ0KKysJCQlwb3J0ID0gaHRvbnMoMTEwKTsNCisrCQllbHNlIGlm IChlcXVhbChwb3J0c3RyLCAicG9wM3MiKSkNCisrCQkJcG9ydCA9IGh0b25zKDk5NSk7DQorKwkJ ZWxzZSBpZiAoKGVwID0gZ2V0c2VydmJ5bmFtZSgoY2hhciAqKXBvcnRzdHIsICJ0Y3AiKSkgIT0g TlVMTCkNCisgCQkJcG9ydCA9IGVwLT5zX3BvcnQ7DQorKwkJZWxzZSB7DQorKwkJCWZwcmludGYo c3RkZXJyLCBjYXRnZXRzKGNhdGQsIENBVFNFVCwgMjUxLA0KKysJCQkJIlVua25vd24gc2Vydmlj ZTogJXNcbiIpLCBwb3J0c3RyKTsNCisrCQkJcmV0dXJuIFNUT1A7DQorKwkJfQ0KKyAJfSBlbHNl DQorIAkJcG9ydCA9IGh0b25zKHBvcnQpOw0KKyAJaWYgKHZlcmJvc2UpDQorQEAgLTExMDksNyAr MTExMCw4IEBADQorIAltZW1jcHkoJnNlcnZhZGRyLnNpbl9hZGRyLCAqcHB0ciwgc2l6ZW9mKHN0 cnVjdCBpbl9hZGRyKSk7DQorIAlpZiAodmVyYm9zZSkNCisgCQlmcHJpbnRmKHN0ZGVyciwgY2F0 Z2V0cyhjYXRkLCBDQVRTRVQsIDE5MiwNCistCQkJCSJDb25uZWN0aW5nIHRvICVzIC4gLiAuIiks IGluZXRfbnRvYSgqKnBwdHIpKTsNCisrCQkJCSJDb25uZWN0aW5nIHRvICVzOiVkIC4gLiAuIiks DQorKwkJCQlpbmV0X250b2EoKipwcHRyKSwgbnRvaHMocG9ydCkpOw0KKyAJaWYgKGNvbm5lY3Qo c29ja2ZkLCAoc3RydWN0IHNvY2thZGRyICopJnNlcnZhZGRyLCBzaXplb2Ygc2VydmFkZHIpDQor IAkJCSE9IDApIHsNCisgCQlwZXJyb3IoY2F0Z2V0cyhjYXRkLCBDQVRTRVQsIDI1NCwgImNvdWxk IG5vdCBjb25uZWN0IikpOw0KKy0tLSBtYWlseC0xMi40L2ltYXAuYw0KKysrKyBuYWlsL2ltYXAu Yw0KK0BAIC0zOCw3ICszOCw3IEBADQorIA0KKyAjaWZuZGVmIGxpbnQNCisgI2lmZGVmCURPU0ND Uw0KKy1zdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpaW1hcC5jCTEuMjE5IChncml0dGVyKSAx LzYvMDgiOw0KKytzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpaW1hcC5jCTEuMjIyIChncml0 dGVyKSAzLzEzLzA5IjsNCisgI2VuZGlmDQorICNlbmRpZiAvKiBub3QgbGludCAqLw0KKyANCitA QCAtMTgyMSw1NyArMTgyMSw2MiBAQA0KKyAJCSAqIHJlYWRpbmcgdGhlaXIgcmVzdWx0cy4NCisg CQkgKi8NCisgCQluZWVkc3RhdCA9IHN0b3JlZCA+IDAgJiYgc3RvcmVkICUgODAwID09IDA7DQor KwkJLyoNCisrCQkgKiBFdmVuIGlmIHRoaXMgbWVzc2FnZSBoYXMgYmVlbiBkZWxldGVkLCBjb250 aW51ZQ0KKysJCSAqIHRvIHNldCBmdXJ0aGVyIGZsYWdzLiBUaGlzIGlzIG5lY2Vzc2FyeSB0byBz dXBwb3J0DQorKwkJICogR21haWwgc2VtYW50aWNzLCB3aGVyZSAiZGVsZXRlIiBhY3R1YWxseSBt ZWFucw0KKysJCSAqICJhcmNoaXZlIiwgYW5kIHRoZSBmbGFncyBhcmUgYXBwbGllZCB0byB0aGUg Y29weQ0KKysJCSAqIGluICJBbGwgTWFpbCIuDQorKwkJICovDQorKwkJaWYgKChtLT5tX2ZsYWcm KE1SRUFEfE1TVEFUVVMpKSA9PSAoTVJFQUR8TVNUQVRVUykpIHsNCisrCQkJaW1hcF9zdG9yZSht cCwgbSwgbS1tZXNzYWdlKzEsDQorKwkJCQkJJysnLCAiXFxTZWVuIiwgbmVlZHN0YXQpOw0KKysJ CQlzdG9yZWQrKzsNCisrCQl9DQorKwkJaWYgKG0tPm1fZmxhZyAmIE1GTEFHKSB7DQorKwkJCWlt YXBfc3RvcmUobXAsIG0sIG0tbWVzc2FnZSsxLA0KKysJCQkJCScrJywgIlxcRmxhZ2dlZCIsIG5l ZWRzdGF0KTsNCisrCQkJc3RvcmVkKys7DQorKwkJfQ0KKysJCWlmIChtLT5tX2ZsYWcgJiBNVU5G TEFHKSB7DQorKwkJCWltYXBfc3RvcmUobXAsIG0sIG0tbWVzc2FnZSsxLA0KKysJCQkJCSctJywg IlxcRmxhZ2dlZCIsIG5lZWRzdGF0KTsNCisrCQkJc3RvcmVkKys7DQorKwkJfQ0KKysJCWlmICht LT5tX2ZsYWcgJiBNQU5TV0VSKSB7DQorKwkJCWltYXBfc3RvcmUobXAsIG0sIG0tbWVzc2FnZSsx LA0KKysJCQkJCScrJywgIlxcQW5zd2VyZWQiLCBuZWVkc3RhdCk7DQorKwkJCXN0b3JlZCsrOw0K KysJCX0NCisrCQlpZiAobS0+bV9mbGFnICYgTVVOQU5TV0VSKSB7DQorKwkJCWltYXBfc3RvcmUo bXAsIG0sIG0tbWVzc2FnZSsxLA0KKysJCQkJCSctJywgIlxcQW5zd2VyZWQiLCBuZWVkc3RhdCk7 DQorKwkJCXN0b3JlZCsrOw0KKysJCX0NCisrCQlpZiAobS0+bV9mbGFnICYgTURSQUZUKSB7DQor KwkJCWltYXBfc3RvcmUobXAsIG0sIG0tbWVzc2FnZSsxLA0KKysJCQkJCScrJywgIlxcRHJhZnQi LCBuZWVkc3RhdCk7DQorKwkJCXN0b3JlZCsrOw0KKysJCX0NCisrCQlpZiAobS0+bV9mbGFnICYg TVVORFJBRlQpIHsNCisrCQkJaW1hcF9zdG9yZShtcCwgbSwgbS1tZXNzYWdlKzEsDQorKwkJCQkJ Jy0nLCAiXFxEcmFmdCIsIG5lZWRzdGF0KTsNCisrCQkJc3RvcmVkKys7DQorKwkJfQ0KKyAJCWlm IChkb2RlbCkgew0KKyAJCQlpbWFwX2RlbGV0ZShtcCwgbS1tZXNzYWdlKzEsIG0sIG5lZWRzdGF0 KTsNCisgCQkJc3RvcmVkKys7DQorIAkJCWdvdGNoYSsrOw0KKy0JCX0gZWxzZSB7DQorLQkJCWlm ICgobS0+bV9mbGFnJihNUkVBRHxNU1RBVFVTKSkgPT0gKE1SRUFEfE1TVEFUVVMpKSB7DQorLQkJ CQlpbWFwX3N0b3JlKG1wLCBtLCBtLW1lc3NhZ2UrMSwNCistCQkJCQkJJysnLCAiXFxTZWVuIiwg bmVlZHN0YXQpOw0KKy0JCQkJc3RvcmVkKys7DQorLQkJCX0NCistCQkJaWYgKG0tPm1fZmxhZyAm IE1GTEFHKSB7DQorLQkJCQlpbWFwX3N0b3JlKG1wLCBtLCBtLW1lc3NhZ2UrMSwNCistCQkJCQkJ JysnLCAiXFxGbGFnZ2VkIiwgbmVlZHN0YXQpOw0KKy0JCQkJc3RvcmVkKys7DQorLQkJCX0NCist CQkJaWYgKG0tPm1fZmxhZyAmIE1VTkZMQUcpIHsNCistCQkJCWltYXBfc3RvcmUobXAsIG0sIG0t bWVzc2FnZSsxLA0KKy0JCQkJCQknLScsICJcXEZsYWdnZWQiLCBuZWVkc3RhdCk7DQorLQkJCQlz dG9yZWQrKzsNCistCQkJfQ0KKy0JCQlpZiAobS0+bV9mbGFnICYgTUFOU1dFUikgew0KKy0JCQkJ aW1hcF9zdG9yZShtcCwgbSwgbS1tZXNzYWdlKzEsDQorLQkJCQkJCScrJywgIlxcQW5zd2VyZWQi LCBuZWVkc3RhdCk7DQorLQkJCQlzdG9yZWQrKzsNCistCQkJfQ0KKy0JCQlpZiAobS0+bV9mbGFn ICYgTVVOQU5TV0VSKSB7DQorLQkJCQlpbWFwX3N0b3JlKG1wLCBtLCBtLW1lc3NhZ2UrMSwNCist CQkJCQkJJy0nLCAiXFxBbnN3ZXJlZCIsIG5lZWRzdGF0KTsNCistCQkJCXN0b3JlZCsrOw0KKy0J CQl9DQorLQkJCWlmIChtLT5tX2ZsYWcgJiBNRFJBRlQpIHsNCistCQkJCWltYXBfc3RvcmUobXAs IG0sIG0tbWVzc2FnZSsxLA0KKy0JCQkJCQknKycsICJcXERyYWZ0IiwgbmVlZHN0YXQpOw0KKy0J CQkJc3RvcmVkKys7DQorLQkJCX0NCistCQkJaWYgKG0tPm1fZmxhZyAmIE1VTkRSQUZUKSB7DQor LQkJCQlpbWFwX3N0b3JlKG1wLCBtLCBtLW1lc3NhZ2UrMSwNCistCQkJCQkJJy0nLCAiXFxEcmFm dCIsIG5lZWRzdGF0KTsNCistCQkJCXN0b3JlZCsrOw0KKy0JCQl9DQorLQkJCWlmIChtcC0+bWJf dHlwZSAhPSBNQl9DQUNIRSB8fA0KKy0JCQkJIWVkaXQgJiYgKCEobS0+bV9mbGFnJihNQk9YRUR8 TVNBVkVEfE1ERUxFVEVEKSkNCistCQkJCQl8fCAobS0+bV9mbGFnICYNCistCQkJCQkJKE1CT1hF RHxNUFJFU0VSVkV8TVRPVUNIKSkgPT0NCistCQkJCSAgCQkoTVBSRVNFUlZFfE1UT1VDSCkpIHx8 DQorLQkJCQkJZWRpdCAmJiAhKG0tPm1fZmxhZyAmIE1ERUxFVEVEKSkNCistCQkJCWhlbGQrKzsN CistCQkJaWYgKG0tPm1fZmxhZyAmIE1ORVcpIHsNCistCQkJCW0tPm1fZmxhZyAmPSB+TU5FVzsN CistCQkJCW0tPm1fZmxhZyB8PSBNU1RBVFVTOw0KKy0JCQl9DQorKwkJfSBlbHNlIGlmIChtcC0+ bWJfdHlwZSAhPSBNQl9DQUNIRSB8fA0KKysJCQkhZWRpdCAmJiAoIShtLT5tX2ZsYWcmKE1CT1hF RHxNU0FWRUR8TURFTEVURUQpKQ0KKysJCQkJfHwgKG0tPm1fZmxhZyAmDQorKwkJCQkJKE1CT1hF RHxNUFJFU0VSVkV8TVRPVUNIKSkgPT0NCisrCQkJCQkoTVBSRVNFUlZFfE1UT1VDSCkpIHx8DQor KwkJCQllZGl0ICYmICEobS0+bV9mbGFnICYgTURFTEVURUQpKQ0KKysJCQloZWxkKys7DQorKwkJ aWYgKG0tPm1fZmxhZyAmIE1ORVcpIHsNCisrCQkJbS0+bV9mbGFnICY9IH5NTkVXOw0KKysJCQlt LT5tX2ZsYWcgfD0gTVNUQVRVUzsNCisgCQl9DQorIAl9DQorIGJ5cGFzczoJaWYgKHJlYWRzdGF0 ICE9IE5VTEwpDQorQEAgLTI1NzEsNiArMjU3Niw3IEBADQorIAljb25zdCBjaGFyCSpxbmFtZTsN CisgCWVudW0gb2theQlvayA9IFNUT1A7DQorIAlpbnQJdHdpY2UgPSAwOw0KKysJaW50CXN0b3Jl ZCA9IDA7DQorIAlGSUxFCSpxdWV1ZWZwID0gTlVMTDsNCisgDQorIAlpZiAobXAtPm1iX3R5cGUg PT0gTUJfQ0FDSEUpIHsNCitAQCAtMjYyOSwyMCArMjYzNSwzOCBAQA0KKyAJICogLi4uIGFuZCBy ZXNldCB0aGUgZmxhZyB0byBpdHMgaW5pdGlhbCB2YWx1ZSBzbyB0aGF0DQorIAkgKiB0aGUgJ2V4 aXQnIGNvbW1hbmQgc3RpbGwgbGVhdmVzIHRoZSBtZXNzYWdlIHVucmVhZC4NCisgCSAqLw0KKy1v dXQ6CWlmICgobS0+bV9mbGFnJihNUkVBRHxNU1RBVFVTKSkgPT0gKE1SRUFEfE1TVEFUVVMpKQ0K KytvdXQ6CWlmICgobS0+bV9mbGFnJihNUkVBRHxNU1RBVFVTKSkgPT0gKE1SRUFEfE1TVEFUVVMp KSB7DQorIAkJaW1hcF9zdG9yZShtcCwgbSwgbiwgJy0nLCAiXFxTZWVuIiwgMCk7DQorLQlpZiAo bS0+bV9mbGFnJk1GTEFHKQ0KKysJCXN0b3JlZCsrOw0KKysJfQ0KKysJaWYgKG0tPm1fZmxhZyZN RkxBRykgew0KKyAJCWltYXBfc3RvcmUobXAsIG0sIG4sICctJywgIlxcRmxhZ2dlZCIsIDApOw0K Ky0JaWYgKG0tPm1fZmxhZyZNVU5GTEFHKQ0KKysJCXN0b3JlZCsrOw0KKysJfQ0KKysJaWYgKG0t Pm1fZmxhZyZNVU5GTEFHKSB7DQorIAkJaW1hcF9zdG9yZShtcCwgbSwgbiwgJysnLCAiXFxGbGFn Z2VkIiwgMCk7DQorLQlpZiAobS0+bV9mbGFnJk1BTlNXRVIpDQorKwkJc3RvcmVkKys7DQorKwl9 DQorKwlpZiAobS0+bV9mbGFnJk1BTlNXRVIpIHsNCisgCQlpbWFwX3N0b3JlKG1wLCBtLCBuLCAn LScsICJcXEFuc3dlcmVkIiwgMCk7DQorLQlpZiAobS0+bV9mbGFnJk1VTkFOU1dFUikNCisrCQlz dG9yZWQrKzsNCisrCX0NCisrCWlmIChtLT5tX2ZsYWcmTVVOQU5TV0VSKSB7DQorIAkJaW1hcF9z dG9yZShtcCwgbSwgbiwgJysnLCAiXFxBbnN3ZXJlZCIsIDApOw0KKy0JaWYgKG0tPm1fZmxhZyZN RFJBRlQpDQorKwkJc3RvcmVkKys7DQorKwl9DQorKwlpZiAobS0+bV9mbGFnJk1EUkFGVCkgew0K KyAJCWltYXBfc3RvcmUobXAsIG0sIG4sICctJywgIlxcRHJhZnQiLCAwKTsNCistCWlmIChtLT5t X2ZsYWcmTVVORFJBRlQpDQorKwkJc3RvcmVkKys7DQorKwl9DQorKwlpZiAobS0+bV9mbGFnJk1V TkRSQUZUKSB7DQorIAkJaW1hcF9zdG9yZShtcCwgbSwgbiwgJysnLCAiXFxEcmFmdCIsIDApOw0K KysJCXN0b3JlZCsrOw0KKysJfQ0KKysJaWYgKHN0b3JlZCkgew0KKysJCW1wLT5tYl9hY3RpdmUg fD0gTUJfQ09NRDsNCisrCQlpbWFwX2ZpbmlzaChtcCk7DQorKwl9DQorIAlyZXR1cm4gb2s7DQor IH0NCisgDQorLS0tIG1haWx4LTEyLjQvanVuay5jDQorKysrIG5haWwvanVuay5jDQorQEAgLTM4 LDcgKzM4LDcgQEANCisgDQorICNpZm5kZWYgbGludA0KKyAjaWZkZWYJRE9TQ0NTDQorLXN0YXRp YyBjaGFyIHNjY3NpZFtdID0gIkAoIylqdW5rLmMJMS43MyAoZ3JpdHRlcikgMy80LzA2IjsNCisr c3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKWp1bmsuYwkxLjc1IChncml0dGVyKSA5LzE0LzA4 IjsNCisgI2VuZGlmDQorICNlbmRpZiAvKiBub3QgbGludCAqLw0KKyANCitAQCAtOTIwLDYgKzky MCwxMCBAQA0KKyAJCQkgc21pbigxLjAsIG5iYWQgPyAoZmxvYXQpYi9uYmFkIDogMC4wKSk7DQor IAkJcCA9IHNtaW4oVE9QLCBwKTsNCisgCQlwID0gc21heChCT1QsIHApOw0KKysJCWlmIChwID09 IFRPUCAmJiBiIDw9IDEwICYmIGcgPT0gMCkNCisrCQkJcCAtPSBCT1Q7DQorKwkJZWxzZSBpZiAo cCA9PSBCT1QgJiYgZyA8PSAxMCAmJiBiID09IDApDQorKwkJCXAgKz0gQk9UOw0KKyAJfSBlbHNl IGlmIChnID09IDAgJiYgYiA9PSAwKQ0KKyAJCXAgPSBERkw7DQorIAllbHNlDQorQEAgLTEwOTUs MTMgKzEwOTksMjAgQEANCisgCQkJaWYgKGgxID09IGJlc3RbaV0uaGFzaDEgJiYgaDIgPT0gYmVz dFtpXS5oYXNoMikNCisgCQkJCWJyZWFrOw0KKyAJCQkvKg0KKy0JCQkgKiBUaGlzIHNlbGVjdGlv biBwcmVmZXJzIHdvcmRzIGZyb20gdGhlIGVuZCBvZiB0aGUNCistCQkJICogaGVhZGVyIGFuZCBm cm9tIHRoZSBzdGFydCBvZiB0aGUgYm9keS4gSXQgZG9lcw0KKy0JCQkgKiBwcm9iYWJseSBub3Qg bWF0dGVyIG11Y2ggYXQgYWxsLCBidXQgZ2l2ZXMgYXQNCistCQkJICogbGVhc3QgdGhlIG1vc3Qg aW50ZXJlc3RpbmcgdmVyYm9zZSBvdXRwdXQuDQorKwkJCSAqIEZvciBlcXVhbCBkaXN0YW5jZSwg dGhpcyBzZWxlY3Rpb24gcHJlZmVycw0KKysJCQkgKiB3b3JkcyB3aXRoIGEgbG93IHByb2JhYmls aXR5LCBzaW5jZSBhIGZhbHNlDQorKwkJCSAqIG5lZ2F0aXZlIGlzIGJldHRlciB0aGFuIGEgZmFs c2UgcG9zaXRpdmUsDQorKwkJCSAqIGFuZCBzaW5jZSBleHBlcmllbmNlIGhhcyBzaG93biB0aGF0 IGZhbHNlDQorKwkJCSAqIHBvc2l0aXZlcyBhcmUgbW9yZSBsaWtlbHkgb3RoZXJ3aXNlLiBUaGVu LA0KKysJCQkgKiB3b3JkcyBmcm9tIHRoZSBlbmQgb2YgdGhlIGhlYWRlciBhbmQgZnJvbQ0KKysJ CQkgKiB0aGUgc3RhcnQgb2YgdGhlIGJvZHkgYXJlIHByZWZlcnJlZC4gVGhpcw0KKysJCQkgKiBn aXZlcyB0aGUgbW9zdCBpbnRlcmVzdGluZyB2ZXJib3NlIG91dHB1dC4NCisgCQkJICovDQorLQkJ CWlmIChkID4gYmVzdFtpXS5kaXN0IHx8IGJlc3RbaV0ubG9jID09IEhFQURFUiAmJg0KKy0JCQkJ CWQgPj0gYmVzdFtpXS5kaXN0KSB7DQorKwkJCWlmIChkID4gYmVzdFtpXS5kaXN0IHx8DQorKwkJ CQkJZCA9PSBiZXN0W2ldLmRpc3QgJiYNCisrCQkJCQkJcCA8IGJlc3RbaV0ucHJvYiB8fA0KKysJ CQkJCWJlc3RbaV0ubG9jID09IEhFQURFUiAmJg0KKysJCQkJCQlkID09IGJlc3RbaV0uZGlzdCkg ew0KKyAJCQkJZm9yIChqID0gQkVTVC0yOyBqID49IGk7IGotLSkNCisgCQkJCQliZXN0W2orMV0g PSBiZXN0W2pdOw0KKyAJCQkJYmVzdFtpXS5kaXN0ID0gZDsNCistLS0gbWFpbHgtMTIuNC9saXN0 LmMNCisrKysgbmFpbC9saXN0LmMNCitAQCAtMzgsNyArMzgsNyBAQA0KKyANCisgI2lmbmRlZiBs aW50DQorICNpZmRlZglET1NDQ1MNCistc3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKWxpc3Qu YwkyLjYxIChncml0dGVyKSAwMS8wNy8wNyI7DQorK3N0YXRpYyBjaGFyIHNjY3NpZFtdID0gIkAo IylsaXN0LmMJMi42MiAoZ3JpdHRlcikgMTIvMTEvMDgiOw0KKyAjZW5kaWYNCisgI2VuZGlmIC8q IG5vdCBsaW50ICovDQorIA0KK0BAIC00MzgsNyArNDM4LDcgQEANCisgCQkJaWYgKCFpbmhvb2sp DQorIAkJCQlwcmludGYodGJhY2sgPw0KKyAJCQkJCSJObyBwcmV2aW91c2x5IG1hcmtlZCBtZXNz YWdlcy5cbiIgOg0KKy0JCQkJCSJObyBtZXNzYWdlcyBzYXRpZnkgKGNyaXRlcmlhKS5cbiIpOw0K KysJCQkJCSJObyBtZXNzYWdlcyBzYXRpc2Z5IChjcml0ZXJpYSkuXG4iKTsNCisgCQkJbWFya2Fs bF9yZXQoLTEpDQorIAkJfQ0KKyAJfQ0KKy0tLSBtYWlseC0xMi40L21haWx4LjENCisrKysgbmFp bC9tYWlseC4xDQorQEAgLTM0LDkgKzM0LDkgQEANCisgLlwiIE9VVCBPRiBUSEUgVVNFIE9GIFRI SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YNCisgLlwi IFNVQ0ggREFNQUdFLg0KKyAuXCINCistLlwiICAgICBTY2NzaWQ6IEAoIyltYWlseC4xCTIuMzI2 IChncml0dGVyKSAxMC8xLzA3DQorKy5cIiAgICAgU2Njc2lkOiBAKCMpbWFpbHguMQkyLjMyOSAo Z3JpdHRlcikgMTAvOS8xMA0KKyAuXCINCistLlRIIE1BSUxYIDEgIjEwLzEvMDciICJIZWlybG9v bSBtYWlseCAxMi40IiAiVXNlciBDb21tYW5kcyINCisrLlRIIE1BSUxYIDEgIjEwLzkvMTAiICJI ZWlybG9vbSBtYWlseCAxMi41IiAiVXNlciBDb21tYW5kcyINCisgLlNIIE5BTUUNCisgbWFpbHgg XC0gc2VuZCBhbmQgcmVjZWl2ZSBJbnRlcm5ldCBtYWlsDQorIC5TSCBTWU5PUFNJUw0KK0BAIC00 MTgsNiArNDE4LDIxIEBADQorIC5JIGFkZHJlc3MNCisgQWxsIG1lc3NhZ2VzIGZyb20NCisgLklS IGFkZHJlc3MgLg0KKytCeSBkZWZhdWx0LCB0aGlzIGlzIGEgY2FzZS1zZW5zaXRpdmUgc2VhcmNo DQorK2ZvciB0aGUgY29tcGxldGUgZW1haWwgYWRkcmVzcy4NCisrSWYgdGhlDQorKy5JIGFsbG5l dA0KKyt2YXJpYWJsZSBpcyBzZXQsDQorK29ubHkgdGhlIGxvY2FsIHBhcnQgb2YgdGhlIGFkZHJl c3NlcyBpcyBldmFsdWF0ZWQgZm9yIHRoZSBjb21wYXJpc29uLg0KKytPdGhlcndpc2UgaWYgdGhl DQorKy5JIHNob3duYW1lDQorK3ZhcmlhYmxlIGlzIHNldCwNCisrYSBjYXNlLXNlbnNpdGl2ZSBz ZWFyY2ggZm9yIHRoZSBjb21wbGV0ZSByZWFsIG5hbWUNCisrb2YgYSBzZW5kZXIgaXMgcGVyZm9y bWVkLg0KKytUaGUgSU1BUC1zdHlsZQ0KKysuQkkgKGZyb21cICBhZGRyZXNzKQ0KKytleHByZXNz aW9uIGNhbiBiZSB1c2VkIGluc3RlYWQNCisraWYgc3Vic3RyaW5nIG1hdGNoZXMgYXJlIGRlc2ly ZWQuDQorIC5UUA0KKyAuQkkgKCBjcml0ZXJpb24gKQ0KKyBBbGwgbWVzc2FnZXMgdGhhdCBzYXRp c2Z5IHRoZSBnaXZlbiBJTUFQLXN0eWxlIFNFQVJDSA0KK0BAIC0zNzY2LDcgKzM3ODEsNyBAQA0K KyAuc3ANCisgLmZpDQorIHdoaWNoIG1pZ2h0IGNhdXNlDQorLS5OIG1haWx4DQorKy5CIG1haWx4 DQorIHRvIHJlc3BvbmQgd2l0aCwgZm9yIGV4YW1wbGU6DQorIC5uZg0KKyAuc3ANCistLS0gbWFp bHgtMTIuNC9tYWtlY29uZmlnDQorKysrIG5haWwvbWFrZWNvbmZpZw0KK0BAIC0xLDcgKzEsNyBA QA0KKyAjIS9iaW4vc2gNCisgDQorICMNCistIyBTY2NzaWQgQCgjKW1ha2Vjb25maWcJMS40MyAo Z3JpdHRlcikgNC8xNC8wNw0KKysjIFNjY3NpZCBAKCMpbWFrZWNvbmZpZwkxLjQ0IChncml0dGVy KSA1LzI2LzA5DQorICMNCisgDQorIHRtcD1fX19idWlsZCQkDQorQEAgLTM5Myw2ICszOTMsMjUg QEANCisgIQ0KKyBmaQ0KKyANCisraWYgdGVzdCB4JGhhdmVfb3BlbnNzbCA9IHh5ZXMNCisrdGhl bg0KKysJY29tcGlsZV9jaGVjayBzdGFja19vZiAnZm9yIFNUQUNLX09GKCknICcjZGVmaW5lIEhB VkVfU1RBQ0tfT0YnIDw8XCENCisrI2luY2x1ZGUgPG9wZW5zc2wvc3NsLmg+DQorKyNpbmNsdWRl IDxvcGVuc3NsL2Vyci5oPg0KKysjaW5jbHVkZSA8b3BlbnNzbC94NTA5djMuaD4NCisrI2luY2x1 ZGUgPG9wZW5zc2wveDUwOS5oPg0KKysjaW5jbHVkZSA8b3BlbnNzbC9yYW5kLmg+DQorKw0KKytp bnQgbWFpbih2b2lkKQ0KKyt7DQorKwlTVEFDS19PRihHRU5FUkFMX05BTUUpCSpnZW5zID0gTlVM TDsNCisrCXByaW50ZigiJXAiLCBnZW5zKTsJLyogdG8gbWFrZSBpdCB1c2VkICovDQorKwlTU0x2 MjNfY2xpZW50X21ldGhvZCgpOw0KKysJUEVNX3JlYWRfUHJpdmF0ZUtleSgwLCAwLCAwLCAwKTsN CisrCXJldHVybiAwOw0KKyt9DQorKyENCisrZmkNCisgDQorIGNhdCA+JHRtcDIuYyA8PFwhDQor ICNpbmNsdWRlIDxnc3NhcGkvZ3NzYXBpLmg+DQorLS0tIG1haWx4LTEyLjQvbWltZS5jDQorKysr IG5haWwvbWltZS5jDQorQEAgLTQwLDcgKzQwLDcgQEANCisgI2lmZGVmCURPU0NDUw0KKyBzdGF0 aWMgY2hhciBjb3B5cmlnaHRbXQ0KKyA9ICJAKCMpIENvcHlyaWdodCAoYykgMjAwMCwgMjAwMiBH dW5uYXIgUml0dGVyLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuIjsNCistc3RhdGljIGNoYXIgc2Nj c2lkW10gID0gIkAoIyltaW1lLmMJMi42OSAoZ3JpdHRlcikgNi8yOS8wOCI7DQorK3N0YXRpYyBj aGFyIHNjY3NpZFtdICA9ICJAKCMpbWltZS5jCTIuNzEgKGdyaXR0ZXIpIDcvNS8xMCI7DQorICNl bmRpZiAvKiBET1NDQ1MgKi8NCisgI2VuZGlmIC8qIG5vdCBsaW50ICovDQorIA0KK0BAIC03ODgs OCArNzg4LDcgQEANCisgDQorIAkqaXNjbGVhbiA9IG1pbWVfaXNjbGVhbihmcCk7DQorIAlpZiAo KmlzY2xlYW4gJiBNSU1FX0hBU05VTCB8fA0KKy0JCQkqY29udGVudHR5cGUgJiYgYXNjbmNhc2Vj bXAoKmNvbnRlbnR0eXBlLCAidGV4dC8iLCA1KSB8fA0KKy0JCQkqY29udGVudHR5cGUgPT0gTlVM TCAmJiAqaXNjbGVhbiAmIE1JTUVfQ1RSTENIQVIpIHsNCisrCQkJKmNvbnRlbnR0eXBlICYmIGFz Y25jYXNlY21wKCpjb250ZW50dHlwZSwgInRleHQvIiwgNSkpIHsNCisgCQljb252ZXJ0ID0gQ09O Vl9UT0I2NDsNCisgCQlpZiAoKmNvbnRlbnR0eXBlID09IE5VTEwgfHwNCisgCQkJCWFzY25jYXNl Y21wKCpjb250ZW50dHlwZSwgInRleHQvIiwgNSkgPT0gMCkNCitAQCAtODA5LDYgKzgwOCw3IEBA DQorIAkJCSpjb250ZW50dHlwZSA9ICJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iOw0KKyAJCQkq Y2hhcnNldCA9IE5VTEw7DQorIAkJfSBpZiAoKmlzY2xlYW4gJiBNSU1FX0NUUkxDSEFSKSB7DQor KwkJCWNvbnZlcnQgPSBDT05WX1RPQjY0Ow0KKyAJCQkvKg0KKyAJCQkgKiBSRkMgMjA0NiBmb3Ji aWRzIGNvbnRyb2wgY2hhcmFjdGVycyBvdGhlciB0aGFuDQorIAkJCSAqIF5JIG9yIF5MIGluIHRl eHQvcGxhaW4gYm9kaWVzLiBIb3dldmVyLCBzb21lDQorQEAgLTEwNDgsMTIgKzEwNDgsMjIgQEAN CisgCQkJCXVwdHIgPSBucHRyICsgb3V0bGVmdDsNCisgCQkJCWlwdHIgPSBjb3V0LnM7DQorIAkJ CQlpZiAoaWNvbnZfZnQoZmhpY2QsICZpcHRyLCAmaW5sZWZ0LA0KKy0JCQkJCQkmbnB0ciwgJm91 dGxlZnQpICE9IDAgJiYNCisrCQkJCQkmbnB0ciwgJm91dGxlZnQpID09IChzaXplX3QpLTEgJiYN CisgCQkJCQkJZXJybm8gPT0gRTJCSUcpIHsNCisgCQkJCQlpY29udihmaGljZCwgTlVMTCwgTlVM TCwgTlVMTCwgTlVMTCk7DQorIAkJCQkJbWltZV9mcm9taGRyX2luYyhpbmxlZnQpOw0KKyAJCQkJ CWdvdG8gYWdhaW47DQorIAkJCQl9DQorKwkJCQkvKg0KKysJCQkJICogRm9yIHN0YXRlLWRlcGVu ZGVudCBlbmNvZGluZ3MsDQorKwkJCQkgKiByZXNldCB0aGUgc3RhdGUgaGVyZSwgYXNzdW1pbmcN CisrCQkJCSAqIHRoYXQgc3RhdGVzIGFyZSByZXN0cmljdGVkIHRvDQorKwkJCQkgKiBzaW5nbGUg ZW5jb2RlZC13b3JkIHBhcnRzLg0KKysJCQkJICovDQorKwkJCQl3aGlsZSAoaWNvbnYoZmhpY2Qs IE5VTEwsIE5VTEwsDQorKwkJCQkJJm5wdHIsICZvdXRsZWZ0KSA9PSAoc2l6ZV90KS0xICYmDQor KwkJCQkJCWVycm5vID09IEUyQklHKQ0KKysJCQkJCW1pbWVfZnJvbWhkcl9pbmMoMTYpOw0KKyAJ CQkJb3V0LT5sICs9IHVwdHIgLSBtcHRyIC0gb3V0bGVmdDsNCisgCQkJCXEgKz0gdXB0ciAtIG1w dHIgLSBvdXRsZWZ0Ow0KKyAJCQl9IGVsc2Ugew0KK0BAIC0xMjk1LDcgKzEzMDUsNyBAQA0KKyAJ CWlzeiA9IGxlbjsNCisgCQlvcCA9IGNidWY7DQorIAkJb3N6ID0gY2J1ZnN6Ow0KKy0JCWlmIChp Y29udihpY29udmQsICZpcCwgJmlzeiwgJm9wLCAmb3N6KSAhPSAwKSB7DQorKwkJaWYgKGljb252 KGljb252ZCwgJmlwLCAmaXN6LCAmb3AsICZvc3opID09IChzaXplX3QpLTEpIHsNCisgCQkJaWYg KGVycm5vICE9IEUyQklHKSB7DQorIAkJCQlhY19mcmVlKGNidWYpOw0KKyAJCQkJcmV0dXJuIDA7 DQorQEAgLTE0ODksNyArMTQ5OSw4IEBADQorIAkJb3V0bGVmdCA9IG1wdHJzejsNCisgCQlucHRy ID0gbXB0cjsNCisgCQlpcHRyID0gcHRyOw0KKy0JCWlmIChpY29udl9mdChpY29udmQsICZpcHRy LCAmaW5sZWZ0LCAmbnB0ciwgJm91dGxlZnQpICE9IDAgJiYNCisrCQlpZiAoaWNvbnZfZnQoaWNv bnZkLCAmaXB0ciwgJmlubGVmdCwgJm5wdHIsICZvdXRsZWZ0KSA9PQ0KKysJCQkJCShzaXplX3Qp LTEgJiYNCisgCQkJCWVycm5vID09IEUyQklHKSB7DQorIAkJCWljb252KGljb252ZCwgTlVMTCwg TlVMTCwgTlVMTCwgTlVMTCk7DQorIAkJCWFjX2ZyZWUobXB0cik7DQorLS0tIG1haWx4LTEyLjQv bmFpbC5yYw0KKysrKyBuYWlsL25haWwucmMNCitAQCAtNCw3ICs0LDcgQEANCisgIyBUaGlzIGZp bGUgaXMgbm90IG92ZXJ3cml0dGVuIHdoZW4gJ21ha2UgaW5zdGFsbCcgaXMgcnVuIGluDQorICMg dGhlIG1haWx4IGJ1aWxkIHByb2Nlc3MgYWdhaW4uDQorIA0KKy0jIFNjY3NpZCBAKCMpbmFpbC5y YwkyLjEwIChncml0dGVyKSAzLzQvMDYNCisrIyBTY2NzaWQgQCgjKW5haWwucmMJMi4xMSAoZ3Jp dHRlcikgOC8yLzA4DQorIA0KKyAjIERvIG5vdCBmb3J3YXJkIHRvIG1ib3ggYnkgZGVmYXVsdCBz aW5jZSB0aGlzIGlzIGxpa2VseSB0byBiZQ0KKyAjIGlycml0YXRpbmcgZm9yIG1vc3QgdXNlcnMg dG9kYXkuDQorQEAgLTU0LDYgKzU0LDkgQEANCisgDQorICMgSWYgdGhyZWFkZWQgbW9kZSBpcyBh Y3RpdmF0ZWQsIGF1dG9tYXRpY2FsbHkgY29sbGFwc2UgdGhyZWFkLg0KKyBzZXQgYXV0b2NvbGxh cHNlDQorKw0KKysjIE1hcmsgbWVzc2FnZXMgdGhhdCBoYXZlIGJlZW4gYW5zd2VyZWQuDQorK3Nl dCBtYXJrYW5zd2VyZWQNCisgDQorICMgSGlkZSBzb21lIGhlYWRlciBmaWVsZHMgd2hpY2ggYXJl IHVuaW50ZXJlc3RpbmcgZm9yIG1vc3QgaHVtYW4gcmVhZGVycy4NCisgaWdub3JlIHJlY2VpdmVk IGluLXJlcGx5LXRvIG1lc3NhZ2UtaWQgcmVmZXJlbmNlcw0KKy0tLSBtYWlseC0xMi40L29wZW5z c2wuYw0KKysrKyBuYWlsL29wZW5zc2wuYw0KK0BAIC0zOCw3ICszOCw3IEBADQorIA0KKyAjaWZu ZGVmIGxpbnQNCisgI2lmZGVmCURPU0NDUw0KKy1zdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMp b3BlbnNzbC5jCTEuMjUgKGdyaXR0ZXIpIDgvNC8wNyI7DQorK3N0YXRpYyBjaGFyIHNjY3NpZFtd ID0gIkAoIylvcGVuc3NsLmMJMS4yNiAoZ3JpdHRlcikgNS8yNi8wOSI7DQorICNlbmRpZg0KKyAj ZW5kaWYgLyogbm90IGxpbnQgKi8NCisgDQorQEAgLTEwMSwxMiArMTAxLDE3IEBADQorIHN0YXRp YyBpbnQgc3NsX3JhbmRfaW5pdCh2b2lkKTsNCisgc3RhdGljIHZvaWQgc3NsX2luaXQodm9pZCk7 DQorIHN0YXRpYyBpbnQgc3NsX3ZlcmlmeV9jYihpbnQgc3VjY2VzcywgWDUwOV9TVE9SRV9DVFgg KnN0b3JlKTsNCistc3RhdGljIFNTTF9NRVRIT0QgKnNzbF9zZWxlY3RfbWV0aG9kKGNvbnN0IGNo YXIgKnVocCk7DQorK3N0YXRpYyBjb25zdCBTU0xfTUVUSE9EICpzc2xfc2VsZWN0X21ldGhvZChj b25zdCBjaGFyICp1aHApOw0KKyBzdGF0aWMgdm9pZCBzc2xfbG9hZF92ZXJpZmljYXRpb25zKHN0 cnVjdCBzb2NrICpzcCk7DQorIHN0YXRpYyB2b2lkIHNzbF9jZXJ0aWZpY2F0ZShzdHJ1Y3Qgc29j ayAqc3AsIGNvbnN0IGNoYXIgKnVocCk7DQorIHN0YXRpYyBlbnVtIG9rYXkgc3NsX2NoZWNrX2hv c3QoY29uc3QgY2hhciAqc2VydmVyLCBzdHJ1Y3Qgc29jayAqc3ApOw0KKysjaWZkZWYgSEFWRV9T VEFDS19PRg0KKytzdGF0aWMgaW50IHNtaW1lX3ZlcmlmeShzdHJ1Y3QgbWVzc2FnZSAqbSwgaW50 IG4sIFNUQUNLX09GKFg1MDkpICpjaGFpbiwNCisrCQlYNTA5X1NUT1JFICpzdG9yZSk7DQorKyNl bHNlDQorIHN0YXRpYyBpbnQgc21pbWVfdmVyaWZ5KHN0cnVjdCBtZXNzYWdlICptLCBpbnQgbiwg U1RBQ0sgKmNoYWluLA0KKyAJCVg1MDlfU1RPUkUgKnN0b3JlKTsNCisrI2VuZGlmDQorIHN0YXRp YyBFVlBfQ0lQSEVSICpzbWltZV9jaXBoZXIoY29uc3QgY2hhciAqbmFtZSk7DQorIHN0YXRpYyBp bnQgc3NsX3Bhc3N3b3JkX2NiKGNoYXIgKmJ1ZiwgaW50IHNpemUsIGludCByd2ZsYWcsIHZvaWQg KnVzZXJkYXRhKTsNCisgc3RhdGljIEZJTEUgKnNtaW1lX3NpZ25fY2VydChjb25zdCBjaGFyICp4 bmFtZSwgY29uc3QgY2hhciAqeG5hbWUyLCBpbnQgd2Fybik7DQorQEAgLTIwMywxMCArMjA4LDEw IEBADQorIAlyZXR1cm4gMTsNCisgfQ0KKyANCistc3RhdGljIFNTTF9NRVRIT0QgKg0KKytzdGF0 aWMgY29uc3QgU1NMX01FVEhPRCAqDQorIHNzbF9zZWxlY3RfbWV0aG9kKGNvbnN0IGNoYXIgKnVo cCkNCisgew0KKy0JU1NMX01FVEhPRCAqbWV0aG9kOw0KKysJY29uc3QgU1NMX01FVEhPRCAqbWV0 aG9kOw0KKyAJY2hhcgkqY3A7DQorIA0KKyAJY3AgPSBzc2xfbWV0aG9kX3N0cmluZyh1aHApOw0K K0BAIC0zMDgsNyArMzEzLDExIEBADQorIAlYNTA5ICpjZXJ0Ow0KKyAJWDUwOV9OQU1FICpzdWJq Ow0KKyAJY2hhciBkYXRhWzI1Nl07DQorKyNpZmRlZiBIQVZFX1NUQUNLX09GDQorKwlTVEFDS19P RihHRU5FUkFMX05BTUUpCSpnZW5zOw0KKysjZWxzZQ0KKyAJLypHRU5FUkFMX05BTUVTKi9TVEFD SwkqZ2VuczsNCisrI2VuZGlmDQorIAlHRU5FUkFMX05BTUUJKmdlbjsNCisgCWludAlpOw0KKyAN CitAQCAtMzU3LDcgKzM2Niw4IEBADQorIA0KKyAJc3NsX2luaXQoKTsNCisgCXNzbF9zZXRfdnJm eV9sZXZlbCh1aHApOw0KKy0JaWYgKChzcC0+c19jdHggPSBTU0xfQ1RYX25ldyhzc2xfc2VsZWN0 X21ldGhvZCh1aHApKSkgPT0gTlVMTCkgew0KKysJaWYgKChzcC0+c19jdHggPQ0KKysJICAgICBT U0xfQ1RYX25ldygoU1NMX01FVEhPRCAqKXNzbF9zZWxlY3RfbWV0aG9kKHVocCkpKSA9PSBOVUxM KSB7DQorIAkJc3NsX2dlbl9lcnIoY2F0Z2V0cyhjYXRkLCBDQVRTRVQsIDI2MSwgIlNTTF9DVFhf bmV3KCkgZmFpbGVkIikpOw0KKyAJCXJldHVybiBTVE9QOw0KKyAJfQ0KK0BAIC00OTYsNyArNTA2 LDExIEBADQorIH0NCisgDQorIHN0YXRpYyBpbnQNCisrI2lmZGVmIEhBVkVfU1RBQ0tfT0YNCisr c21pbWVfdmVyaWZ5KHN0cnVjdCBtZXNzYWdlICptLCBpbnQgbiwgU1RBQ0tfT0YoWDUwOSkgKmNo YWluLCBYNTA5X1NUT1JFICpzdG9yZSkNCisrI2Vsc2UNCisgc21pbWVfdmVyaWZ5KHN0cnVjdCBt ZXNzYWdlICptLCBpbnQgbiwgU1RBQ0sgKmNoYWluLCBYNTA5X1NUT1JFICpzdG9yZSkNCisrI2Vu ZGlmDQorIHsNCisgCXN0cnVjdCBtZXNzYWdlCSp4Ow0KKyAJY2hhcgkqY3AsICpzZW5kZXIsICp0 bywgKmNjLCAqY250dHlwZTsNCitAQCAtNTA1LDcgKzUxOSwxMiBAQA0KKyAJb2ZmX3QJc2l6ZTsN CisgCUJJTwkqZmIsICpwYjsNCisgCVBLQ1M3CSpwa2NzNzsNCisrI2lmZGVmIEhBVkVfU1RBQ0tf T0YNCisrCVNUQUNLX09GKFg1MDkpCSpjZXJ0czsNCisrCVNUQUNLX09GKEdFTkVSQUxfTkFNRSkJ KmdlbnM7DQorKyNlbHNlDQorIAlTVEFDSwkqY2VydHMsICpnZW5zOw0KKysjZW5kaWYNCisgCVg1 MDkJKmNlcnQ7DQorIAlYNTA5X05BTUUJKnN1Ymo7DQorIAljaGFyCWRhdGFbTElORVNJWkVdOw0K K0BAIC02MTQsNyArNjMzLDExIEBADQorIHsNCisgCWludAkqbXNndmVjID0gdnAsICppcDsNCisg CWludAllYyA9IDA7DQorKyNpZmRlZiBIQVZFX1NUQUNLX09GDQorKwlTVEFDS19PRihYNTA5KQkq Y2hhaW4gPSBOVUxMOw0KKysjZWxzZQ0KKyAJU1RBQ0sJKmNoYWluID0gTlVMTDsNCisrI2VuZGlm DQorIAlYNTA5X1NUT1JFCSpzdG9yZTsNCisgCWNoYXIJKmNhX2RpciwgKmNhX2ZpbGU7DQorIA0K K0BAIC02ODcsNyArNzEwLDExIEBADQorIAlYNTA5CSpjZXJ0Ow0KKyAJUEtDUzcJKnBrY3M3Ow0K KyAJQklPCSpiYiwgKnliOw0KKysjaWZkZWYgSEFWRV9TVEFDS19PRg0KKysJU1RBQ0tfT0YoWDUw OSkJKmNlcnRzOw0KKysjZWxzZQ0KKyAJU1RBQ0sJKmNlcnRzOw0KKysjZW5kaWYNCisgCUVWUF9D SVBIRVIJKmNpcGhlcjsNCisgDQorIAljZXJ0ZmlsZSA9IGV4cGFuZCgoY2hhciAqKWNlcnRmaWxl KTsNCitAQCAtOTUwLDkgKzk3NywxNCBAQA0KKyAJb2ZmX3QJc2l6ZTsNCisgCUJJTwkqZmIsICpw YjsNCisgCVBLQ1M3CSpwa2NzNzsNCisrI2lmZGVmIEhBVkVfU1RBQ0tfT0YNCisrCVNUQUNLX09G KFg1MDkpCSpjZXJ0czsNCisrCVNUQUNLX09GKFg1MDkpCSpjaGFpbiA9IE5VTEw7DQorKyNlbHNl DQorIAlTVEFDSwkqY2VydHM7DQorLQlYNTA5CSpjZXJ0Ow0KKyAJU1RBQ0sJKmNoYWluID0gTlVM TDsNCisrI2VuZGlmDQorKwlYNTA5CSpjZXJ0Ow0KKyAJZW51bSBva2F5CW9rID0gT0tBWTsNCisg DQorIAltZXNzYWdlX251bWJlciA9IG47DQorLS0tIG1haWx4LTEyLjQvcXVpdC5jDQorKysrIG5h aWwvcXVpdC5jDQorQEAgLTM4LDcgKzM4LDcgQEANCisgDQorICNpZm5kZWYgbGludA0KKyAjaWZk ZWYJRE9TQ0NTDQorLXN0YXRpYyBjaGFyIHNjY3NpZFtdID0gIkAoIylxdWl0LmMJMi4yOCAoZ3Jp dHRlcikgMy80LzA2IjsNCisrc3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKXF1aXQuYwkyLjMw IChncml0dGVyKSAxMS8xMS8wOCI7DQorICNlbmRpZg0KKyAjZW5kaWYgLyogbm90IGxpbnQgKi8N CisgDQorQEAgLTU4NCw0ICs1ODQsNDcgQEANCisgDQorIGRvbmU6DQorIAlyZWxzZXNpZ3MoKTsN CisrfQ0KKysNCisrZW51bSBxdWl0ZmxhZ3Mgew0KKysJUVVJVEZMQUdfSE9MRCAgICAgID0gMDAx LA0KKysJUVVJVEZMQUdfS0VFUFNBVkUgID0gMDAyLA0KKysJUVVJVEZMQUdfQVBQRU5EICAgID0g MDA0LA0KKysJUVVJVEZMQUdfRU1QVFlCT1ggID0gMDEwDQorK307DQorKw0KKytzdGF0aWMgY29u c3Qgc3RydWN0IHF1aXRuYW1lcyB7DQorKwllbnVtIHF1aXRmbGFncwlmbGFnOw0KKysJY29uc3Qg Y2hhcgkqbmFtZTsNCisrfSBxdWl0bmFtZXNbXSA9IHsNCisrCXsgUVVJVEZMQUdfSE9MRCwJImhv bGQiIH0sDQorKwl7IFFVSVRGTEFHX0tFRVBTQVZFLAkia2VlcHNhdmUiIH0sDQorKwl7IFFVSVRG TEFHX0FQUEVORCwJImFwcGVuZCIgfSwNCisrCXsgUVVJVEZMQUdfRU1QVFlCT1gsCSJlbXB0eWJv eCIgfSwNCisrCXsgMCwJCQlOVUxMIH0NCisrfTsNCisrDQorK2ludA0KKytzYXZlcXVpdGZsYWdz KHZvaWQpDQorK3sNCisrCWVudW0gcXVpdGZsYWdzCXFmID0gMDsNCisrCWludAlpOw0KKysNCisr CWZvciAoaSA9IDA7IHF1aXRuYW1lc1tpXS5uYW1lOyBpKyspDQorKwkJaWYgKHZhbHVlKHF1aXRu YW1lc1tpXS5uYW1lKSkNCisrCQkJcWYgfD0gcXVpdG5hbWVzW2ldLmZsYWc7DQorKwlyZXR1cm4g cWY7DQorK30NCisrDQorK3ZvaWQNCisrcmVzdG9yZXF1aXRmbGFncyhpbnQgcWYpDQorK3sNCisr CWludAlpOw0KKysNCisrCWZvciAoaSA9IDA7IHF1aXRuYW1lc1tpXS5uYW1lOyBpKyspDQorKwkJ aWYgKHFmICYgcXVpdG5hbWVzW2ldLmZsYWcpIHsNCisrCQkJaWYgKHZhbHVlKHF1aXRuYW1lc1tp XS5uYW1lKSA9PSBOVUxMKQ0KKysJCQkJYXNzaWduKHF1aXRuYW1lc1tpXS5uYW1lLCAiIik7DQor KwkJfSBlbHNlIGlmICh2YWx1ZShxdWl0bmFtZXNbaV0ubmFtZSkpDQorKwkJCXVuc2V0X2ludGVy bmFsKHF1aXRuYW1lc1tpXS5uYW1lKTsNCisgfQ0KKy0tLSBtYWlseC0xMi40L3NlbmRvdXQuYw0K KysrKyBuYWlsL3NlbmRvdXQuYw0KK0BAIC0zOCw3ICszOCw3IEBADQorIA0KKyAjaWZuZGVmIGxp bnQNCisgI2lmZGVmCURPU0NDUw0KKy1zdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpc2VuZG91 dC5jCTIuOTkgKGdyaXR0ZXIpIDcvNC8wOCI7DQorK3N0YXRpYyBjaGFyIHNjY3NpZFtdID0gIkAo IylzZW5kb3V0LmMJMi4xMDAgKGdyaXR0ZXIpIDMvMS8wOSI7DQorICNlbmRpZg0KKyAjZW5kaWYg Lyogbm90IGxpbnQgKi8NCisgDQorQEAgLTEyMTksOCArMTIxOSw5IEBADQorIAkJCWlmIChwdXRu YW1lKGFkZHIsIHcsIGFjdGlvbiwgJmdvdGNoYSwgIkZyb206IiwgZm8sDQorIAkJCQkJCSZmcm9t ZmllbGQpKQ0KKyAJCQkJcmV0dXJuIDE7DQorLQkJaWYgKChhZGRyID0gaHAtPmhfb3JnYW5pemF0 aW9uKSAhPSBOVUxMIHx8DQorLQkJCQkoYWRkciA9IHZhbHVlKCJPUkdBTklaQVRJT04iKSkgIT0g TlVMTCkgew0KKysJCWlmICgoKGFkZHIgPSBocC0+aF9vcmdhbml6YXRpb24pICE9IE5VTEwgfHwN CisrCQkJCShhZGRyID0gdmFsdWUoIk9SR0FOSVpBVElPTiIpKSAhPSBOVUxMKQ0KKysJCQkJJiYg c3RybGVuKGFkZHIpID4gMCkgew0KKyAJCQlmd3JpdGUoIk9yZ2FuaXphdGlvbjogIiwgc2l6ZW9m IChjaGFyKSwgMTQsIGZvKTsNCisgCQkJaWYgKG1pbWVfd3JpdGUoYWRkciwgc3RybGVuKGFkZHIp LCBmbywNCisgCQkJCQlhY3Rpb24gPT0gU0VORF9UT0RJU1AgPw0KK0BAIC0xMjY5LDcgKzEyNzAs OCBAQA0KKyAJCWZ3cml0ZSgiU3ViamVjdDogIiwgc2l6ZW9mIChjaGFyKSwgOSwgZm8pOw0KKyAJ CWlmIChhc2NuY2FzZWNtcChocC0+aF9zdWJqZWN0LCAicmU6ICIsIDQpID09IDApIHsNCisgCQkJ ZndyaXRlKCJSZTogIiwgc2l6ZW9mIChjaGFyKSwgNCwgZm8pOw0KKy0JCQlpZiAobWltZV93cml0 ZShocC0+aF9zdWJqZWN0ICsgNCwNCisrCQkJaWYgKHN0cmxlbihocC0+aF9zdWJqZWN0ICsgNCkg PiAwICYmDQorKwkJCQltaW1lX3dyaXRlKGhwLT5oX3N1YmplY3QgKyA0LA0KKyAJCQkJCXN0cmxl bihocC0+aF9zdWJqZWN0ICsgNCksDQorIAkJCQkJZm8sIGFjdGlvbiA9PSBTRU5EX1RPRElTUCA/ DQorIAkJCQkJQ09OVl9OT05FOkNPTlZfVE9IRFIsDQorLS0tIG1haWx4LTEyLjQvdmFycy5jDQor KysrIG5haWwvdmFycy5jDQorQEAgLTM4LDcgKzM4LDcgQEANCisgDQorICNpZm5kZWYgbGludA0K KyAjaWZkZWYJRE9TQ0NTDQorLXN0YXRpYyBjaGFyIHNjY3NpZFtdID0gIkAoIyl2YXJzLmMJMi4x MSAoZ3JpdHRlcikgMy80LzA2IjsNCisrc3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKXZhcnMu YwkyLjEyIChncml0dGVyKSAxMC8xLzA4IjsNCisgI2VuZGlmDQorICNlbmRpZiAvKiBub3QgbGlu dCAqLw0KKyANCitAQCAtODEsNyArODEsNyBAQA0KKyAgKiBBc3NpZ24gYSB2YWx1ZSB0byBhIHZh cmlhYmxlLg0KKyAgKi8NCisgdm9pZCANCistYXNzaWduKGNoYXIgKm5hbWUsIGNoYXIgKnZhbHVl KQ0KKythc3NpZ24oY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpDQorIHsNCisg CXN0cnVjdCB2YXIgKnZwOw0KKyAJaW50IGg7DQorQEAgLTIyMSw3ICsyMjEsNyBAQA0KKyB9DQor IA0KKyBpbnQgDQorLXVuc2V0X2ludGVybmFsKGNoYXIgKm5hbWUpDQorK3Vuc2V0X2ludGVybmFs KGNvbnN0IGNoYXIgKm5hbWUpDQorIHsNCisgCXN0cnVjdCB2YXIgKnZwLCAqdnAyOw0KKyAJaW50 IGg7DQorLS0tIG1haWx4LTEyLjQvdmVyc2lvbi5jDQorKysrIG5haWwvdmVyc2lvbi5jDQorQEAg LTEsNCArMSw0IEBADQorLSNkZWZpbmUJVgkiMTIuNCINCisrI2RlZmluZQlWCSIxMi41Ig0KKyAv Kg0KKyAgKiBIZWlybG9vbSBtYWlseCAtIGEgbWFpbCB1c2VyIGFnZW50IGRlcml2ZWQgZnJvbSBC ZXJrZWxleSBNYWlsLg0KKyAgKg0KK0BAIC0zOSw3ICszOSw3IEBADQorIA0KKyAjaWZuZGVmIGxp bnQNCisgI2lmZGVmCURPU0NDUw0KKy1zdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpdmVyc2lv bi5jCTIuMzg2IChncml0dGVyKSA3LzI5LzA4IjsNCisrc3RhdGljIGNoYXIgc2Njc2lkW10gPSAi QCgjKXZlcnNpb24uYwkyLjQwNCAoZ3JpdHRlcikgNy81LzEwIjsNCisgI2VuZGlmDQorICNlbmRp ZiAvKiBub3QgbGludCAqLw0KKyANCitAQCAtNDgsNyArNDgsNyBAQA0KKyAgKiBMb2FkIHRoaXMg ZmlsZSBmaXJzdCB0byBnZXQgYSAidG90YWwiIE1haWwgdmVyc2lvbi4NCisgICovDQorIC8qY2hh cgkqdmVyc2lvbiA9ICI4LjEgNi82LzkzIjsqLw0KKy1jb25zdCBjaGFyICp2ZXJzaW9uID0gViAi IDcvMjkvMDgiOw0KKytjb25zdCBjaGFyICp2ZXJzaW9uID0gViAiIDcvNS8xMCI7DQorICNpZm5k ZWYJbGludA0KKyAjaWYgX19HTlVDX18gPj0gMyAmJiBfX0dOVUNfTUlOT1JfXyA+PSA0IHx8IF9f R05VQ19fID49IDQNCisgI2RlZmluZSBVU0VEICAgIF9fYXR0cmlidXRlX18gKCh1c2VkKSkNCitA QCAtNTcsNyArNTcsNyBAQA0KKyAjZWxzZQ0KKyAjZGVmaW5lIFVTRUQNCisgI2VuZGlmDQorLXN0 YXRpYyBjb25zdCBjaGFyICp2ZXJzaW9uaWQgVVNFRCA9ICJAKCMpbWFpbHggIiBWICIgKGdyaXR0 ZXIpIDcvMjkvMDgiOw0KKytzdGF0aWMgY29uc3QgY2hhciAqdmVyc2lvbmlkIFVTRUQgPSAiQCgj KW1haWx4ICIgViAiIChncml0dGVyKSA3LzUvMTAiOw0KKyAjZW5kaWYJLyogIWxpbnQgKi8NCisg LyogU0xJU1QgKi8NCisgLyoNCitAQCAtNjUsNDIgKzY1LDQyIEBADQorIGJhc2U2NC5jOnN0YXRp YyBjaGFyIHNjY3NpZFtdID0gIkAoIyliYXNlNjQuYwkyLjE0IChncml0dGVyKSA0LzIxLzA2IjsN CisgY2FjaGUuYzpzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpY2FjaGUuYwkxLjYxIChncml0 dGVyKSAzLzQvMDYiOw0KKyBjbWQxLmM6c3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKWNtZDEu YwkyLjk3IChncml0dGVyKSA2LzE2LzA3IjsNCistY21kMi5jOnN0YXRpYyBjaGFyIHNjY3NpZFtd ID0gIkAoIyljbWQyLmMJMi40NiAoZ3JpdHRlcikgMy80LzA2IjsNCistY21kMy5jOnN0YXRpYyBj aGFyIHNjY3NpZFtdID0gIkAoIyljbWQzLmMJMi44NiAoZ3JpdHRlcikgMTAvMS8wNyI7DQorK2Nt ZDIuYzpzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpY21kMi5jCTIuNDcgKGdyaXR0ZXIpIDUv OS8xMCI7DQorK2NtZDMuYzpzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpY21kMy5jCTIuODcg KGdyaXR0ZXIpIDEwLzEvMDgiOw0KKyBjbWR0YWIuYzpzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJA KCMpY21kdGFiLmMJMi41MSAoZ3JpdHRlcikgMy80LzA2IjsNCisgY29sbGVjdC5jOnN0YXRpYyBj aGFyIHNjY3NpZFtdID0gIkAoIyljb2xsZWN0LmMJMi41NCAoZ3JpdHRlcikgNi8xNi8wNyI7DQor IGRlZi5oOiAqCVNjY3NpZCBAKCMpZGVmLmgJMi4xMDQgKGdyaXR0ZXIpIDMvNC8wNg0KKyBkb3Rs b2NrLmM6c3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKWRvdGxvY2suYwkyLjkgKGdyaXR0ZXIp IDMvMjAvMDYiOw0KKyBlZGl0LmM6c3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKWVkaXQuYwky LjI0IChncml0dGVyKSAzLzQvMDYiOw0KKy1leHRlcm4uaDogKglTY2NzaWQgQCgjKWV4dGVybi5o CTIuMTYxIChncml0dGVyKSAxMC8xLzA3DQorLWZpby5jOnN0YXRpYyBjaGFyIHNjY3NpZFtdID0g IkAoIylmaW8uYwkyLjczIChncml0dGVyKSAxLzcvMDgiOw0KKytleHRlcm4uaDogKglTY2NzaWQg QCgjKWV4dGVybi5oCTIuMTYyIChncml0dGVyKSAxMC8xLzA4DQorK2Zpby5jOnN0YXRpYyBjaGFy IHNjY3NpZFtdID0gIkAoIylmaW8uYwkyLjc2IChncml0dGVyKSA5LzE2LzA5IjsNCisgZ2V0bmFt ZS5jOnN0YXRpYyBjaGFyIHNjY3NpZFtdID0gIkAoIylnZXRuYW1lLmMJMi41IChncml0dGVyKSAz LzQvMDYiOw0KKyBnZXRvcHQuYzoJU2Njc2lkIEAoIylnZXRvcHQuYwkxLjcgKGdyaXR0ZXIpIDEy LzE2LzA3CQ0KKyBnbG9iLmg6ICoJU2Njc2lkIEAoIylnbG9iLmgJMi4yNyAoZ3JpdHRlcikgNi8x Ni8wNw0KKyBoZWFkLmM6c3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKWhlYWQuYwkyLjE3IChn cml0dGVyKSAzLzQvMDYiOw0KKyBobWFjLmM6CVNjY3NpZCBAKCMpaG1hYy5jCTEuOCAoZ3JpdHRl cikgMy80LzA2CQ0KKy1pbWFwLmM6c3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKWltYXAuYwkx LjIxOSAoZ3JpdHRlcikgMS82LzA4IjsNCisraW1hcC5jOnN0YXRpYyBjaGFyIHNjY3NpZFtdID0g IkAoIylpbWFwLmMJMS4yMjIgKGdyaXR0ZXIpIDMvMTMvMDkiOw0KKyBpbWFwX2dzc2FwaS5jOnN0 YXRpYyBjaGFyIHNjY3NpZFtdID0gIkAoIylpbWFwX2dzc2FwaS5jCTEuMTAgKGdyaXR0ZXIpIDMv NC8wNiI7DQorIGltYXBfc2VhcmNoLmM6c3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKWltYXBf c2VhcmNoLmMJMS4yOSAoZ3JpdHRlcikgMy80LzA2IjsNCistanVuay5jOnN0YXRpYyBjaGFyIHNj Y3NpZFtdID0gIkAoIylqdW5rLmMJMS43MyAoZ3JpdHRlcikgMy80LzA2IjsNCisranVuay5jOnN0 YXRpYyBjaGFyIHNjY3NpZFtdID0gIkAoIylqdW5rLmMJMS43NSAoZ3JpdHRlcikgOS8xNC8wOCI7 DQorIGxleC5jOnN0YXRpYyBjaGFyIHNjY3NpZFtdID0gIkAoIylsZXguYwkyLjg2IChncml0dGVy KSAxMi8yNS8wNiI7DQorLWxpc3QuYzpzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpbGlzdC5j CTIuNjEgKGdyaXR0ZXIpIDAxLzA3LzA3IjsNCisrbGlzdC5jOnN0YXRpYyBjaGFyIHNjY3NpZFtd ID0gIkAoIylsaXN0LmMJMi42MiAoZ3JpdHRlcikgMTIvMTEvMDgiOw0KKyBsencuYzogKiBTY2Nz aWQgQCgjKWx6dy5jCTEuMTEgKGdyaXR0ZXIpIDMvNC8wNg0KKyBtYWNyby5jOnN0YXRpYyBjaGFy IHNjY3NpZFtdID0gIkAoIyltYWNyby5jCTEuMTMgKGdyaXR0ZXIpIDMvNC8wNiI7DQorIG1haWxk aXIuYzpzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpbWFpbGRpci5jCTEuMjAgKGdyaXR0ZXIp IDEyLzI4LzA2IjsNCisgbWFpbi5jOnN0YXRpYyBjaGFyIHNjY3NpZFtdID0gIkAoIyltYWluLmMJ Mi41MSAoZ3JpdHRlcikgMTAvMS8wNyI7DQorIG1kNS5jOglTY2NzaWQgQCgjKW1kNS5jCTEuOCAo Z3JpdHRlcikgMy80LzA2CQ0KKyBtZDUuaDoJU2Njc2lkIEAoIyltZDUuaAkxLjggKGdyaXR0ZXIp IDMvNC8wNgkNCistbWltZS5jOnN0YXRpYyBjaGFyIHNjY3NpZFtdICA9ICJAKCMpbWltZS5jCTIu NjkgKGdyaXR0ZXIpIDYvMjkvMDgiOw0KKyttaW1lLmM6c3RhdGljIGNoYXIgc2Njc2lkW10gID0g IkAoIyltaW1lLmMJMi43MSAoZ3JpdHRlcikgNy81LzEwIjsNCisgbmFtZXMuYzpzdGF0aWMgY2hh ciBzY2NzaWRbXSA9ICJAKCMpbmFtZXMuYwkyLjIyIChncml0dGVyKSAzLzQvMDYiOw0KKyBuc3Mu YzpzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpbnNzLmMJMS40OCAoZ3JpdHRlcikgOC80LzA3 IjsNCistb3BlbnNzbC5jOnN0YXRpYyBjaGFyIHNjY3NpZFtdID0gIkAoIylvcGVuc3NsLmMJMS4y NSAoZ3JpdHRlcikgOC80LzA3IjsNCisrb3BlbnNzbC5jOnN0YXRpYyBjaGFyIHNjY3NpZFtdID0g IkAoIylvcGVuc3NsLmMJMS4yNiAoZ3JpdHRlcikgNS8yNi8wOSI7DQorIHBvcDMuYzpzdGF0aWMg Y2hhciBzY2NzaWRbXSA9ICJAKCMpcG9wMy5jCTIuNDMgKGdyaXR0ZXIpIDMvNC8wNiI7DQorIHBv cGVuLmM6c3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKXBvcGVuLmMJMi4yMCAoZ3JpdHRlcikg My80LzA2IjsNCistcXVpdC5jOnN0YXRpYyBjaGFyIHNjY3NpZFtdID0gIkAoIylxdWl0LmMJMi4y OCAoZ3JpdHRlcikgMy80LzA2IjsNCisrcXVpdC5jOnN0YXRpYyBjaGFyIHNjY3NpZFtdID0gIkAo IylxdWl0LmMJMi4zMCAoZ3JpdHRlcikgMTEvMTEvMDgiOw0KKyByY3YuaDogKglTY2NzaWQgQCgj KXJjdi5oCTIuNyAoZ3JpdHRlcikgMy80LzA2DQorIHNlbmQuYzpzdGF0aWMgY2hhciBzY2NzaWRb XSA9ICJAKCMpc2VuZC5jCTIuODYgKGdyaXR0ZXIpIDIvNC8wOCI7DQorLXNlbmRvdXQuYzpzdGF0 aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpc2VuZG91dC5jCTIuOTkgKGdyaXR0ZXIpIDcvNC8wOCI7 DQorK3NlbmRvdXQuYzpzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpc2VuZG91dC5jCTIuMTAw IChncml0dGVyKSAzLzEvMDkiOw0KKyBzbXRwLmM6c3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgj KXNtdHAuYwkyLjQzIChncml0dGVyKSA4LzQvMDciOw0KKyBzc2wuYzpzdGF0aWMgY2hhciBzY2Nz aWRbXSA9ICJAKCMpc3NsLmMJMS4zOSAoZ3JpdHRlcikgNi8xMi8wNiI7DQorIHN0cmluZ3MuYzpz dGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpc3RyaW5ncy5jCTIuNiAoZ3JpdHRlcikgMy80LzA2 IjsNCitAQCAtMTA4LDUgKzEwOCw1IEBADQorIHRocmVhZC5jOnN0YXRpYyBjaGFyIHNjY3NpZFtd ID0gIkAoIyl0aHJlYWQuYwkxLjU3IChncml0dGVyKSAzLzQvMDYiOw0KKyB0dHkuYzpzdGF0aWMg Y2hhciBzY2NzaWRbXSA9ICJAKCMpdHR5LmMJMi4yOSAoZ3JpdHRlcikgMy85LzA3IjsNCisgdjcu bG9jYWwuYzpzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpdjcubG9jYWwuYwkyLjEwIChncml0 dGVyKSAzLzQvMDYiOw0KKy12YXJzLmM6c3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKXZhcnMu YwkyLjExIChncml0dGVyKSAzLzQvMDYiOw0KKyt2YXJzLmM6c3RhdGljIGNoYXIgc2Njc2lkW10g PSAiQCgjKXZhcnMuYwkyLjEyIChncml0dGVyKSAxMC8xLzA4IjsNCisgKi8NCmRpZmYgLS1naXQg YS90ZXN0aW5nL2hlaXJsb29tLW1haWx4L0FQS0JVSUxEIGIvdGVzdGluZy9oZWlybG9vbS1tYWls eC9BUEtCVUlMRA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmNmYjMyMmYN Ci0tLSAvZGV2L251bGwNCisrKyBiL3Rlc3RpbmcvaGVpcmxvb20tbWFpbHgvQVBLQlVJTEQNCkBA IC0wLDAgKzEsNjYgQEANCisjIENvbnRyaWJ1dG9yOiBJc2FhYyBEdW5oYW0gPGliaWQuYWdAZ21h aWwuY29tPg0KKyMgTWFpbnRhaW5lcjogSXNhYWMgRHVuaGFtIDxpYmlkLmFnQGdtYWlsLmNvbT4N Citwa2duYW1lPWhlaXJsb29tLW1haWx4DQorcGtndmVyPTEyLjQNCitwa2dyZWw9MA0KK3BrZ2Rl c2M9IkEgZnJlZSBjbG9uZSBvZiBTeXNWIG1haWx4Ig0KK3VybD0iaHR0cDovL2hlaXJsb29tLnNv dXJjZWZvcmdlLm5ldC9tYWlseC5odG1sIg0KK2FyY2g9ImFsbCINCitsaWNlbnNlPSJCU0QiDQor ZGVwZW5kcz0iIg0KK21ha2VkZXBlbmRzPSJvcGVuc3NsLWRldiBrcmI1LWRldiINCitpbnN0YWxs PSIiDQorc3VicGFja2FnZXM9IiRwa2duYW1lLWRvYyINCitzb3VyY2U9Imh0dHA6Ly9zb3VyY2Vm b3JnZS5uZXQvcHJvamVjdHMvaGVpcmxvb20vZmlsZXMvaGVpcmxvb20tbWFpbHgvJHBrZ3Zlci9t YWlseC0kcGtndmVyLnRhci5iejINCisJMTIuNC10by0xMi41cHJlLnBhdGNoDQorCW1ha2V2YXJz LnBhdGNoDQorCTAwMDEtb3V0b2YtSW50cm9kdWNlLWV4cGFuZGFkZHItZmxhZy5wYXRjaA0KKwkw MDAyLXVucGFjay1EaXNhYmxlLW9wdGlvbi1wcm9jZXNzaW5nLWZvci1lbWFpbC1hZGRyZXNzZXMu cGF0Y2gNCisJMDAwMy1maW9fYy1VbmNvbmRpdGlvbmFsbHktcmVxdWlyZS13b3JkZXhwLXN1cHBv cnQucGF0Y2gNCisJMDAwNC1nbG9ibmFtZS1JbnZva2Utd29yZGV4cC13aXRoLVdSREVfTk9DTUQt Q1ZFLTIwMDQtMjc3LnBhdGNoDQorCSINCisNCitfYnVpbGRkaXI9IiRzcmNkaXIiL21haWx4LSRw a2d2ZXINCitwcmVwYXJlKCkgew0KKwlsb2NhbCBpDQorCWNkICIkX2J1aWxkZGlyIg0KKwlmb3Ig aSBpbiAkc291cmNlOyBkbw0KKwkJY2FzZSAkaSBpbg0KKwkJKi5wYXRjaCkgbXNnICRpOyBwYXRj aCAtcDEgLWkgIiRzcmNkaXIiLyRpIHx8IHJldHVybiAxOzsNCisJCWVzYWMNCisJZG9uZQ0KK30N CisNCitidWlsZCgpIHsNCisJY2QgIiRfYnVpbGRkaXIiDQorCW1ha2UgfHwgcmV0dXJuIDENCit9 DQorDQorcGFja2FnZSgpIHsNCisJY2QgIiRfYnVpbGRkaXIiDQorCW1ha2UgREVTVERJUj0iJHBr Z2RpciIgaW5zdGFsbCB8fCByZXR1cm4gMQ0KKwlpbnN0YWxsIC1EbSAwNjQ0IENPUFlJTkcgIiRw a2dkaXIiL3Vzci9zaGFyZS9saWNlbnNlcy8iJHBrZ25hbWUiL0NPUFlJTkcgfHwgcmV0dXJuIDEN CisJY2QgIiRwa2dkaXIiL3Vzci9zaGFyZS9tYW4vbWFuMS8gJiYgbXYgbWFpbHguMSAiJHBrZ25h bWUiLjENCit9DQorDQorbWQ1c3Vtcz0iMGM5Mzc1OWUzNDIwMGViNTZhMGU3YzQ2NDY4MGE1NGEg IG1haWx4LTEyLjQudGFyLmJ6Mg0KK2E0YTkxMzkxYWRhMzJhN2I4N2ZmNTI1NWQyZjA2YzQ3ICAx Mi40LXRvLTEyLjVwcmUucGF0Y2gNCis3NWFiZjllZmM5ZmFiZWU1OThkNTUwMDk1MTA3M2NiNiAg bWFrZXZhcnMucGF0Y2gNCisyNjgzNTNkMDYzZTZjOTYyZjAyNjcyZWNlYzljYjc3YiAgMDAwMS1v dXRvZi1JbnRyb2R1Y2UtZXhwYW5kYWRkci1mbGFnLnBhdGNoDQorMDExYTljOWE3ZDIwOGIzNjNi ZDU0OGI4NGM3MTBmYTQgIDAwMDItdW5wYWNrLURpc2FibGUtb3B0aW9uLXByb2Nlc3NpbmctZm9y LWVtYWlsLWFkZHJlc3Nlcy5wYXRjaA0KKzc0NTVkYTgxNzRhYzMxYTNkMWM1YWZkMWEzN2Q3ZjJk ICAwMDAzLWZpb19jLVVuY29uZGl0aW9uYWxseS1yZXF1aXJlLXdvcmRleHAtc3VwcG9ydC5wYXRj aA0KKzE5ZWFhNmVlMDhjNDVkYjE3YjQ4ZDY1YjNlYWNhNzhiICAwMDA0LWdsb2JuYW1lLUludm9r ZS13b3JkZXhwLXdpdGgtV1JERV9OT0NNRC1DVkUtMjAwNC0yNzcucGF0Y2giDQorc2hhMjU2c3Vt cz0iOTIyMDFlNzY5ZmUzNDZiYzAzNjRjODc0MzdhMzMwZWYzYzk3YWIzZTlkN2IyMjM1YjkzZjUw OWU4NWU1NzE2YSAgbWFpbHgtMTIuNC50YXIuYnoyDQorZDM2Mjk3ODJjMmI0ZDY3NmFhZGVhODIz MzM1YTU3YzhlZDVmODZlNmQ2ZmRlMzFiMTgzMTNiOWMwNzA3MjdiYyAgMTIuNC10by0xMi41cHJl LnBhdGNoDQorNWRmNzZkYzA4NTYyYmYxMmFiMGMyYWMxZTMyZmU3MGYxMzdjMTgyNThhZjI5Mjg0 NDQ4NDQ4ZjBiNTg0OGFjZSAgbWFrZXZhcnMucGF0Y2gNCis3MGMyNjhhNDBkMzIyMTUzOTJjMDhm ODhjODQxYTIxMjU1NzI4NzlmOTU0ZjRlMTY1YmJjOGZlNmNhMWJlZmY4ICAwMDAxLW91dG9mLUlu dHJvZHVjZS1leHBhbmRhZGRyLWZsYWcucGF0Y2gNCis4YmYwN2VhMzU5ZGFlZTc0Nzc3NjVmMWU0 ZjRkN2JhNmQ5MjNhNjkzNzc0M2YwOTdhMTk0MGI4N2ZlMWJkZDczICAwMDAyLXVucGFjay1EaXNh YmxlLW9wdGlvbi1wcm9jZXNzaW5nLWZvci1lbWFpbC1hZGRyZXNzZXMucGF0Y2gNCis2OTAyZTFm YjJjNzFiMjRkMTVkYjUyN2UxMGUwYmY2YmM3ZTYzYTMwNDhiNzg1MTE3NDY5M2NkZTkyZGRkYmMy ICAwMDAzLWZpb19jLVVuY29uZGl0aW9uYWxseS1yZXF1aXJlLXdvcmRleHAtc3VwcG9ydC5wYXRj aA0KKzUzODI4NWZhYmUxZWRlN2Y2MjAxM2NlZDA1YjAwYjI4ZTg2YjhjMTU0M2Y2ZGU3M2VlM2Ix YzA1YTljMmVjZWMgIDAwMDQtZ2xvYm5hbWUtSW52b2tlLXdvcmRleHAtd2l0aC1XUkRFX05PQ01E LUNWRS0yMDA0LTI3Ny5wYXRjaCINCitzaGE1MTJzdW1zPSJhMGUyOTk3MmY1NTJiZDYzMGNlMWEx NGY3MGU2MTY2MTgxNTExODUyMGJjZDRhMDBiNmNhZDUzZjMyNzBkM2QwOGM4MzVmZjY5ODJiYTg4 MDBlYjM4MGE1YjQ2ZjU0ZWI2ZTYwZmI3NTMzYjVmNDFjOTE2YWY0NWQyOTYwNWFmOCAgbWFpbHgt MTIuNC50YXIuYnoyDQorYzI0MzVjMThiM2U5NzJhNzdiYmFhMWI5MTVjYWU1NjdjYWZjZDY1Y2Jh MTcxMGNkNzhlN2I5MzRkMzM2NjIzNjFhYTFlNzJmYjk5ZDBmMTA5OTQ1YzYwM2VjODQ3NTUyMzQ1 YTRhNWMzZWM2NGRiYzMwN2NiYjgxMWE2ZDc0ZDAgIDEyLjQtdG8tMTIuNXByZS5wYXRjaA0KK2I4 MzE1NDRlOTJiMDI2MmI2ZDUyNzZjYjdlNzg0MjdjYjMzZmQwOWJjM2NiMmZmYzM5OGNiM2Y5MzBm MDU3NjRiY2VjYzhlNWIxNzQzNTU0ZGFkYzVlMGJkNzkxZDU2YjRhNzJiN2EwNTA4OWRiNzE3MDQz N2RkNTI1NGI5MDgwICBtYWtldmFycy5wYXRjaA0KK2ZjNWEyMmJmMTdlOTk4YzUyMjhmZjU4MTM4 OGEzZTJmOGZmYWQ5YzcwYjQ2ZjdlOTRlZGM2M2QzMDRlNWU5NTc2YjU5YzU3ZGYwN2RjN2U0MGNm MjM0ZmM4Yjg5YmYyYzUyMjQ4NTkyYWQ4MzRmYzRiNGQyOWUyNWE2NzNlZGM4ICAwMDAxLW91dG9m LUludHJvZHVjZS1leHBhbmRhZGRyLWZsYWcucGF0Y2gNCitiMTBhNWVjNTE1YmE0NDdlODI4ZGJm NDU2MmIwN2I2NWJjMmM4MTJmMGQ3MzFiMjQ0Zjc3Y2M0MzE1MmJmMTQyMDBlNDBkMjE4ZWJiMDgw ZmQ4MjBkYzE4ZWQ0NjY2YzRmNjZkZTU3OWI1NjJhOTIzMWQ4YTBlOTViNGMwYmIyNSAgMDAwMi11 bnBhY2stRGlzYWJsZS1vcHRpb24tcHJvY2Vzc2luZy1mb3ItZW1haWwtYWRkcmVzc2VzLnBhdGNo DQorYzQxYWQxZTkwZWJjNjA2MGNlMGE3YmFkZmRlNWZjMDFiODdjNGMwYzllYWNmN2UyZjU1NDQ0 MjEyY2JkOTMwOTdiMzdhM2U0MjZiY2RjYjRhNTY1YzFiMGQxNjAxMDk5NmQ5YWNhMWQ2MWMwZDkx OGExZDRhY2I0MTc1NGQ1MTYgIDAwMDMtZmlvX2MtVW5jb25kaXRpb25hbGx5LXJlcXVpcmUtd29y ZGV4cC1zdXBwb3J0LnBhdGNoDQorYmVlMmFmYjlmNjkxYTVjN2I3MTVlYWE5YWRiMTRhZmJkZTA2 OTQyMzViYjIyNDQ5NzQxZjQ2NDgxMjI3NmMzZjQ0ZDFiOTBlOGIwNzI1NWQxMzc4Yjk0MWQyYjE0 MTMzMTYxYTE1NzVjNDA2MDViMDkxMWQ4ZTI4YWZhZjU3OGEgIDAwMDQtZ2xvYm5hbWUtSW52b2tl LXdvcmRleHAtd2l0aC1XUkRFX05PQ01ELUNWRS0yMDA0LTI3Ny5wYXRjaCINCmRpZmYgLS1naXQg YS90ZXN0aW5nL2hlaXJsb29tLW1haWx4L21ha2V2YXJzLnBhdGNoIGIvdGVzdGluZy9oZWlybG9v bS1tYWlseC9tYWtldmFycy5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAuLjk0ZDk3ZWINCi0tLSAvZGV2L251bGwNCisrKyBiL3Rlc3RpbmcvaGVpcmxvb20tbWFpbHgv bWFrZXZhcnMucGF0Y2gNCkBAIC0wLDAgKzEsMzMgQEANCitjb21taXQgMzE1MjdmZmQ1ZDc3YzZj ZjIxODUwYmRkZDlhZTdlOTdlMzc3MjFjYQ0KK0F1dGhvcjogSXNhYWMgRHVuaGFtIDxpYmlkLmFn QGdtYWlsLmNvbT4NCitEYXRlOiAgIFNhdCBTZXAgMTMgMDk6NDg6MzQgMjAxNCAtMDcwMA0KKw0K KyAgICBVc2UgbW9yZSBzdGFuZGFyZCBkZWZhdWx0cw0KKw0KK2RpZmYgLS1naXQgYS9NYWtlZmls ZSBiL01ha2VmaWxlDQoraW5kZXggNWY0YjEyNC4uMDVkMDYzNSAxMDA2NDQNCistLS0gYS9NYWtl ZmlsZQ0KKysrKyBiL01ha2VmaWxlDQorQEAgLTYsMTggKzYsMTggQEANCisgIyBTZWUgdGhlIGZp bGUgSU5TVEFMTCBpZiB5b3UgbmVlZCBoZWxwLg0KKyAjDQorIA0KKy1QUkVGSVgJCT0gL3Vzci9s b2NhbA0KKytQUkVGSVgJCT0gL3Vzcg0KKyBCSU5ESVIJCT0gJChQUkVGSVgpL2Jpbg0KKyBNQU5E SVIJCT0gJChQUkVGSVgpL3NoYXJlL21hbg0KKyBTWVNDT05GRElSCT0gL2V0Yw0KKyANCisgTUFJ TFJDCQk9ICQoU1lTQ09ORkRJUikvbmFpbC5yYw0KKy1NQUlMU1BPT0wJPSAvdmFyL21haWwNCist U0VORE1BSUwJPSAvdXNyL2xpYi9zZW5kbWFpbA0KKytNQUlMU1BPT0wJPSAvdmFyL3Nwb29sL21h aWwNCisrU0VORE1BSUwJPSAvdXNyL3NiaW4vc2VuZG1haWwNCisgDQorIERFU1RESVIJCT0NCisg DQorLVVDQklOU1RBTEwJPSAvdXNyL3VjYi9pbnN0YWxsDQorK1VDQklOU1RBTEwJPSAvdXNyL2Jp bi9pbnN0YWxsDQorIA0KKyAjIERlZmluZSBjb21waWxlciwgcHJlcHJvY2Vzc29yLCBhbmQgbGlu a2VyIGZsYWdzIGhlcmUuDQorICMgTm90ZSB0aGF0IHNvbWUgTGludXgvZ2xpYmMgdmVyc2lvbnMg bmVlZCAtRF9HTlVfU09VUkNFIGluIENQUEZMQUdTLCBvcg0KLS0gDQoyLjIuMg0KDQoNCg0KLS0t DQpVbnN1YnNjcmliZTogIGFscGluZS1hcG9ydHMrdW5zdWJzY3JpYmVAbGlzdHMuYWxwaW5lbGlu dXgub3JnDQpIZWxwOiAgICAgICAgIGFscGluZS1hcG9ydHMraGVscEBsaXN0cy5hbHBpbmVsaW51 eC5vcmcNCi0tLQ0K