From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-il1-x134.google.com (mail-il1-x134.google.com [IPv6:2607:f8b0:4864:20::134]) by sourceware.org (Postfix) with ESMTPS id B91E8385B835 for ; Thu, 9 Apr 2020 17:51:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org B91E8385B835 Received: by mail-il1-x134.google.com with SMTP id t11so548815ils.1 for ; Thu, 09 Apr 2020 10:51:36 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=s6nXOX1rUZipbtqpeJn7qUU600DCGa425lZ4OjnP6Fc=; b=P/HoeOy6tsYXtsXTX9Blz0ZndhGp67UiprAqNq2jBQYzC7wQO3M1KHE0PP0Q36OGAo hXeMyyiF/XwkSFSFUSWdZsr1eb254uZLG4JD+hpmj8ujf7V9AG4Pt1w7xOCVQWoH3sCg tiupxUTNBGCyClxfcDtvymphoVnjy7ycI1Xlrq8p6N0y6rSSflucSJ0eP1Ra1CzJXLiI P3rUsAJua6OpQgFdxdtlRFIotn8re9Zv+Otd6yplgieB8wW6l+IjCnNUQPkZFczG5N72 LO+Wvag3VUWd7bBkDVPkQ9lqmgE6d2/HkyPSQGuHt6PJO8no8x8ZpsyhwE+52KbEEqJ3 N4ng== X-Gm-Message-State: AGi0PuYBdMLAmozaJJ8uJLlhHNor0OTPrG41hL7JZbog1vpl8/W4mgnA RVTcRa6c/XvMAXkl98h6tX99MgvTSy+mIFGo6jI= X-Google-Smtp-Source: APiQypL5MQSR8dxqxkQ+DQ3eaU1kjgtHiJ1GkkBkBpAIqeBkliADzVBtvO5nRdqbBKAKFECEvuCOucM//kthsKg7+NQ= X-Received: by 2002:a92:8710:: with SMTP id m16mr916135ild.151.1586454696017; Thu, 09 Apr 2020 10:51:36 -0700 (PDT) MIME-Version: 1.0 References: <20200312132334.1136925-1-hjl.tools@gmail.com> <20200319125114.GA960957@gmail.com> <1ae6d932-fb2d-680f-0f47-0c5df7aa8eab@redhat.com> In-Reply-To: <1ae6d932-fb2d-680f-0f47-0c5df7aa8eab@redhat.com> From: "H.J. Lu" Date: Thu, 9 Apr 2020 10:51:00 -0700 Message-ID: Subject: V2 [PATCH] readelf: Consolidate --syms --use-dynamic with --dyn-syms table To: Nick Clifton Cc: Binutils , Alan Modra Content-Type: multipart/mixed; boundary="0000000000009c901f05a2df44cd" X-Spam-Status: No, score=-17.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_STOCKGEN, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Apr 2020 17:51:42 -0000 --0000000000009c901f05a2df44cd Content-Type: text/plain; charset="UTF-8" On Thu, Apr 9, 2020 at 7:44 AM Nick Clifton wrote: > > Hi H.J. > > > Can you take a look at > > https://sourceware.org/pipermail/binutils/2020-March/000234.html > > Generally the patch looks fine to me, but ... there appear to be some > linker testsuite regressions for various targets: > > mips-elf: LD REGRESSION: ld-mips-elf/hash2 [and other mips based targets] > > arm-nto: LD REGRESSION: Thumb shared library with ARM [and other arm based targets] > LD REGRESSION: Mixed ARM/Thumb shared library > LD REGRESSION: Mixed ARM/Thumb dynamic application > LD REGRESSION: Mixed ARM/Thumb arch5 dynamic application Fixed. > A quick look suggests that these are all due to readelf's output > changing slightly and the tests not expecting the new format. > > Could you take a look and tweak the tests as necessary please ? > > Cheers > Nick > > PS. Hmm, just noticed that you had already patched the ld-mips-elf/hash2 > test, so I am wondering why it is failing. The entry in ld.log looks like > this: > > Executing on host: sh -c {readelf -d -s -D tmpdir/dump > tmpdir/dump.out 2>dump.tmp} /dev/null (timeout = 300) > spawn [open ...] > > extra regexps in ld/testsuite/ld-mips-elf/hash2.d starting with "^ +[0-9]+: +[0-9a-f]+ +[0-9]+ +FUNC +GLOBAL +DEFAULT +([1-9]|PRC) __start$" > EOF from tmpdir/dump.out > FAIL: ld-mips-elf/hash2 > > Is it possible that your revision of the original patch now makes this test fail ? > readelf never outputs PRC. It outputs PRC[0xff02]. It is fixed in this updated version. OK for master? -- H.J. --0000000000009c901f05a2df44cd Content-Type: text/x-patch; charset="US-ASCII"; name="0001-readelf-Consolidate-syms-use-dynamic-with-dyn-syms.patch" Content-Disposition: attachment; filename="0001-readelf-Consolidate-syms-use-dynamic-with-dyn-syms.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k8t229xc0 RnJvbSBmZmUyZWM5ZWU1YmIzNjUxNzY2MTVlYWI3NzhkZmM4OWI3NWM2YzcxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgNCBNYXIgMjAyMCAxNTo1ODoxMyAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIHJlYWRlbGY6 IENvbnNvbGlkYXRlIC0tc3ltcyAtLXVzZS1keW5hbWljIHdpdGggLS1keW4tc3ltcwoKV2hlbiBy ZWNvbnN0cnVjdGluZyBkeW5hbWljIHN5bWJvbCB0YWJsZSBmcm9tIHRoZSBQVF9EWU5BTUlDIHNl Z21lbnQsCmNvbXB1dGUgZHluYW1pYyBzeW1ib2wgdGFibGUgc2l6ZSBmcm9tIGhhc2ggdGFibGUu ICBGb3IgRFRfSEFTSCwgdGhlCm51bWJlciBvZiBkeW5hbWljIHN5bWJvbCB0YWJsZSBlbnRyaWVz IGVxdWFscyB0aGUgbnVtYmVyIG9mIGNoYWlucy4KRm9yIERUX0dOVV9IQVNIL0RUX01JUFNfWEhB U0gsIG9ubHkgZGVmaW5lZCBzeW1ib2xzIHdpdGggbm9uLVNUQl9MT0NBTAppbmRpbmdzIGFyZSBp biBoYXNoIHRhYmxlLiAgU2luY2UgRFRfR05VX0hBU0gvRFRfTUlQU19YSEFTSCBwbGFjZSBhbGwK c3ltYm9scyB3aXRoIFNUQl9MT0NBTCBiaW5kaW5nIGJlZm9yZSBzeW1ib2xzIHdpdGggb3RoZXIg YmluZGluZ3MgYW5kCmFsbCB1bmRlZmluZWQgc3ltYm9scyBkZWZpbmVkIG9uZXMgaW4gZHluYW1p YyBzeW1ib2wgdGFibGUsIHRoZSBoaWdoZXN0CnN5bWJvbCBpbmRleCBpbiBEVF9HTlVfSEFTSC9E VF9NSVBTX1hIQVNIIGlzIHRoZSBoaWdoZXN0IGR5bmFtaWMgc3ltYm9sCnRhYmxlIGluZGV4LgoK UmV3cml0ZSBwcmludF9keW5hbWljX3N5bWJvbCB0byBkdW1wIGR5bmFtaWMgc3ltYm9sIHRhYmxl IGZvciAtLWR5bi1zeW1zCmFuZCAtLXN5bXMgLS11c2UtZHluYW1pYy4KCmJpbnV0aWxzLwoKCVBS IGJpbnV0aWxzLzI1NzA3CgkqIHJlYWRlbGYuYyAobmJ1Y2tldHMpOiBOZXcuCgkobmNoYWlucyk6 IExpa2V3aXNlLgoJKGJ1Y2tldHMpOiBMaWtld2lzZS4KCShjaGFpbnMpOiBMaWtld2lzZS4KCShu Z251YnVja2V0cyk6IExpa2V3aXNlLgoJKGdudWJ1Y2tldHMpOiBMaWtld2lzZS4KCShnbnVjaGFp bnMpOiBMaWtld2lzZS4KCShtaXBzeGxhdCk6IExpa2V3aXNlLgoJKG5nbnVjaGFpbnMpOiBMaWtl d2lzZS4KCShnbnVzeW1pZHgpOiBMaWtld2lzZS4KCShWQUxJRF9TWU1CT0xfTkFNRSk6IExpa2V3 aXNlLgoJKFZBTElEX0RZTkFNSUNfTkFNRSk6IFVzZSBpdC4KCShnZXRfZHluYW1pY19kYXRhKTog TW92ZWQgYmVmb3JlIHByb2Nlc3NfZHluYW1pY19zZWN0aW9uLgoJKGdldF9udW1fZHluYW1pY19z eW1zKTogTmV3IGZ1bmN0aW9uLgoJKHByb2Nlc3NfZHluYW1pY19zZWN0aW9uKTogVXNlIERUX1NZ TVRBQiwgRFRfU1lNRU5ULCBEVF9IQVNILAoJRFRfR05VX0hBU0ggYW5kIERUX01JUFNfWEhBU0gg dG8gcmVjb25zdHJ1Y3QgZHluYW1pYyBzeW1ib2wKCXRhYmxlLiAgVXNlIERUX1NUUlRBQiBhbmQg RFRfU1RSU1ogdG8gcmVjb25zdHJ1Y3QgZHluYW1pYyBzdHJpbmcKCXRhYmxlLgoJKGdldF9zeW1i b2xfaW5kZXhfdHlwZSk6IERvbid0IHByaW50ICJiYWQgc2VjdGlvbiBpbmRleCIgd2hlbgoJdGhl cmUgaXMgbm8gc2VjdGlvbiBoZWFkZXIuCgkocHJpbnRfZHluYW1pY19zeW1ib2wpOiBSZXdyaXRl LgoJKHByb2Nlc3Nfc3ltYm9sX3RhYmxlKTogQ2FsbCBwcmludF9keW5hbWljX3N5bWJvbCB0byBk dW1wIGR5bmFtaWMKCXN5bWJvbCB0YWJsZS4KCmxkLwoKCVBSIGJpbnV0aWxzLzI1NzA3CgkqIHRl c3RzdWl0ZS9sZC1hcm0vYXJtdGh1bWItbGliLnN5bTogVXBkYXRlZC4KCSogdGVzdHN1aXRlL2xk LWFybS9mYXJjYWxsLW1peGVkLWFwcC5zeW06IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUvbGQtYXJt L2ZhcmNhbGwtbWl4ZWQtYXBwMi5zeW06IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUvbGQtYXJtL2Zk cGljLW1haW4tbS5zeW06IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUvbGQtYXJtL2ZkcGljLW1haW4u c3ltOiBMaWtld2lzZS4KCSogdGVzdHN1aXRlL2xkLWFybS9mZHBpYy1zaGFyZWQtbS5zeW06IExp a2V3aXNlLgoJKiB0ZXN0c3VpdGUvbGQtYXJtL2ZkcGljLXNoYXJlZC5zeW06IExpa2V3aXNlLgoJ KiB0ZXN0c3VpdGUvbGQtYXJtL21peGVkLWFwcC5zeW06IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUv bGQtYXJtL21peGVkLWxpYi5zeW06IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUvbGQtYXJtL3ByZWVt cHQtYXBwLnN5bTogTGlrZXdpc2UuCgkqIHRlc3RzdWl0ZS9sZC1lbGYvaGFzaC5kOiBMaWtld2lz ZS4KCSogdGVzdHN1aXRlL2xkLWVsZi9wcjEzMTk1LmQ6IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUv bGQtZWxmdnNiL2hpZGRlbjIuZDogTGlrZXdpc2UuCgkqIHRlc3RzdWl0ZS9sZC1taXBzLWVsZi9o YXNoMi5kOiBMaWtld2lzZS4KLS0tCiBiaW51dGlscy9yZWFkZWxmLmMgICAgICAgICAgICAgICAg ICAgICAgICAgfCAxMDUxICsrKysrKysrKystLS0tLS0tLS0tCiBsZC90ZXN0c3VpdGUvbGQtYXJt L2FybXRodW1iLWxpYi5zeW0gICAgICAgfCAgIDI5ICstCiBsZC90ZXN0c3VpdGUvbGQtYXJtL2Zh cmNhbGwtbWl4ZWQtYXBwLnN5bSAgfCAgIDI5ICstCiBsZC90ZXN0c3VpdGUvbGQtYXJtL2ZhcmNh bGwtbWl4ZWQtYXBwMi5zeW0gfCAgIDI5ICstCiBsZC90ZXN0c3VpdGUvbGQtYXJtL2ZkcGljLW1h aW4tbS5zeW0gICAgICAgfCAgIDI3ICstCiBsZC90ZXN0c3VpdGUvbGQtYXJtL2ZkcGljLW1haW4u c3ltICAgICAgICAgfCAgIDI3ICstCiBsZC90ZXN0c3VpdGUvbGQtYXJtL2ZkcGljLXNoYXJlZC1t LnN5bSAgICAgfCAgIDI5ICstCiBsZC90ZXN0c3VpdGUvbGQtYXJtL2ZkcGljLXNoYXJlZC5zeW0g ICAgICAgfCAgIDI5ICstCiBsZC90ZXN0c3VpdGUvbGQtYXJtL21peGVkLWFwcC5zeW0gICAgICAg ICAgfCAgIDI5ICstCiBsZC90ZXN0c3VpdGUvbGQtYXJtL21peGVkLWxpYi5zeW0gICAgICAgICAg fCAgIDI5ICstCiBsZC90ZXN0c3VpdGUvbGQtYXJtL3ByZWVtcHQtYXBwLnN5bSAgICAgICAgfCAg IDI3ICstCiBsZC90ZXN0c3VpdGUvbGQtZWxmL2hhc2guZCAgICAgICAgICAgICAgICAgfCAgICA4 ICstCiBsZC90ZXN0c3VpdGUvbGQtZWxmL3ByMTMxOTUuZCAgICAgICAgICAgICAgfCAgICAyICst CiBsZC90ZXN0c3VpdGUvbGQtZWxmdnNiL2hpZGRlbjIuZCAgICAgICAgICAgfCAgICA0ICstCiBs ZC90ZXN0c3VpdGUvbGQtbWlwcy1lbGYvaGFzaDIuZCAgICAgICAgICAgfCAgICA4ICstCiAxNSBm aWxlcyBjaGFuZ2VkLCA2ODQgaW5zZXJ0aW9ucygrKSwgNjczIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2JpbnV0aWxzL3JlYWRlbGYuYyBiL2JpbnV0aWxzL3JlYWRlbGYuYwppbmRleCBlYjQx ZTEwZGFlLi5jZDQ1NmIwMjkwIDEwMDY0NAotLS0gYS9iaW51dGlscy9yZWFkZWxmLmMKKysrIGIv YmludXRpbHMvcmVhZGVsZi5jCkBAIC0yMjYsNiArMjI2LDE2IEBAIHN0YXRpYyBzaXplX3QgZHlu YW1pY19uZW50Owogc3RhdGljIGNoYXIgKiBkeW5hbWljX3N0cmluZ3M7CiBzdGF0aWMgdW5zaWdu ZWQgbG9uZyBkeW5hbWljX3N0cmluZ3NfbGVuZ3RoOwogc3RhdGljIHVuc2lnbmVkIGxvbmcgbnVt X2R5bmFtaWNfc3ltczsKK3N0YXRpYyBiZmRfc2l6ZV90eXBlIG5idWNrZXRzOworc3RhdGljIGJm ZF9zaXplX3R5cGUgbmNoYWluczsKK3N0YXRpYyBiZmRfdm1hICpidWNrZXRzOworc3RhdGljIGJm ZF92bWEgKmNoYWluczsKK3N0YXRpYyBiZmRfdm1hIG5nbnVidWNrZXRzOworc3RhdGljIGJmZF92 bWEgKmdudWJ1Y2tldHM7CitzdGF0aWMgYmZkX3ZtYSAqZ251Y2hhaW5zOworc3RhdGljIGJmZF92 bWEgKm1pcHN4bGF0Oworc3RhdGljIGJmZF9zaXplX3R5cGUgbmdudWNoYWluczsKK3N0YXRpYyBi ZmRfdm1hIGdudXN5bWlkeDsKIHN0YXRpYyBFbGZfSW50ZXJuYWxfU3ltICogZHluYW1pY19zeW1i b2xzOwogc3RhdGljIEVsZl9JbnRlcm5hbF9TeW1pbmZvICogZHluYW1pY19zeW1pbmZvOwogc3Rh dGljIHVuc2lnbmVkIGxvbmcgZHluYW1pY19zeW1pbmZvX29mZnNldDsKQEAgLTMyNSw3ICszMzUs MTAgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBnZXRfc3ltYm9sX3ZlcnNpb25fc3RyaW5nCiAgIChp c18zMmJpdF9lbGYgPyBnZXRfMzJiaXRfZWxmX3N5bWJvbHMgKGZpbGUsIHNlY3Rpb24sIHN5bV9j b3VudCkJXAogICAgOiBnZXRfNjRiaXRfZWxmX3N5bWJvbHMgKGZpbGUsIHNlY3Rpb24sIHN5bV9j b3VudCkpCiAKLSNkZWZpbmUgVkFMSURfRFlOQU1JQ19OQU1FKG9mZnNldCkJKChkeW5hbWljX3N0 cmluZ3MgIT0gTlVMTCkgJiYgKG9mZnNldCA8IGR5bmFtaWNfc3RyaW5nc19sZW5ndGgpKQorI2Rl ZmluZSBWQUxJRF9TWU1CT0xfTkFNRShzdHJ0YWIsIHN0cnRhYl9zaXplLCBvZmZzZXQpIFwKKyAg IChzdHJ0YWIgIT0gTlVMTCAmJiBvZmZzZXQgPCBzdHJ0YWJfc2l6ZSkKKyNkZWZpbmUgVkFMSURf RFlOQU1JQ19OQU1FKG9mZnNldCkgXAorICBWQUxJRF9TWU1CT0xfTkFNRSAoZHluYW1pY19zdHJp bmdzLCBkeW5hbWljX3N0cmluZ3NfbGVuZ3RoLCBvZmZzZXQpCiAvKiBHRVRfRFlOQU1JQ19OQU1F IGFzc3N1bWVzIHRoYXQgVkFMSURfRFlOQU1JQ19OQU1FIGhhcwogICAgYWxyZWFkeSBiZWVuIGNh bGxlZCBhbmQgdmVyaWZpZWQgdGhhdCB0aGUgc3RyaW5nIGV4aXN0cy4gICovCiAjZGVmaW5lIEdF VF9EWU5BTUlDX05BTUUob2Zmc2V0KQkoZHluYW1pY19zdHJpbmdzICsgb2Zmc2V0KQpAQCAtOTg2 NSw2ICs5ODc4LDMyMCBAQCBwcmludF9keW5hbWljX2ZsYWdzIChiZmRfdm1hIGZsYWdzKQogICBw dXRzICgiIik7CiB9CiAKK3N0YXRpYyBiZmRfdm1hICoKK2dldF9keW5hbWljX2RhdGEgKEZpbGVk YXRhICogZmlsZWRhdGEsIGJmZF9zaXplX3R5cGUgbnVtYmVyLCB1bnNpZ25lZCBpbnQgZW50X3Np emUpCit7CisgIHVuc2lnbmVkIGNoYXIgKiBlX2RhdGE7CisgIGJmZF92bWEgKiBpX2RhdGE7CisK KyAgLyogSWYgdGhlIHNpemVfdCB0eXBlIGlzIHNtYWxsZXIgdGhhbiB0aGUgYmZkX3NpemVfdHlw ZSwgZWcgYmVjYXVzZQorICAgICB5b3UgYXJlIGJ1aWxkaW5nIGEgMzItYml0IHRvb2wgb24gYSA2 NC1iaXQgaG9zdCwgdGhlbiBtYWtlIHN1cmUKKyAgICAgdGhhdCB3aGVuIChudW1iZXIpIGlzIGNh c3QgdG8gKHNpemVfdCkgbm8gaW5mb3JtYXRpb24gaXMgbG9zdC4gICovCisgIGlmIChzaXplb2Yg KHNpemVfdCkgPCBzaXplb2YgKGJmZF9zaXplX3R5cGUpCisgICAgICAmJiAoYmZkX3NpemVfdHlw ZSkgKChzaXplX3QpIG51bWJlcikgIT0gbnVtYmVyKQorICAgIHsKKyAgICAgIGVycm9yIChfKCJT aXplIHRydW5jYXRpb24gcHJldmVudHMgcmVhZGluZyAlcyBlbGVtZW50cyBvZiBzaXplICV1XG4i KSwKKwkgICAgIGJmZF92bWF0b2EgKCJ1IiwgbnVtYmVyKSwgZW50X3NpemUpOworICAgICAgcmV0 dXJuIE5VTEw7CisgICAgfQorCisgIC8qIEJlIGtpbmQgdG8gbWVtb3J5IGNoZWNrZXJzIChlZyB2 YWxncmluZCwgYWRkcmVzcyBzYW5pdGl6ZXIpIGJ5IG5vdAorICAgICBhdHRlbXB0aW5nIHRvIGFs bG9jYXRlIG1lbW9yeSB3aGVuIHRoZSByZWFkIGlzIGJvdW5kIHRvIGZhaWwuICAqLworICBpZiAo ZW50X3NpemUgKiBudW1iZXIgPiBmaWxlZGF0YS0+ZmlsZV9zaXplKQorICAgIHsKKyAgICAgIGVy cm9yIChfKCJJbnZhbGlkIG51bWJlciBvZiBkeW5hbWljIGVudHJpZXM6ICVzXG4iKSwKKwkgICAg IGJmZF92bWF0b2EgKCJ1IiwgbnVtYmVyKSk7CisgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisK KyAgZV9kYXRhID0gKHVuc2lnbmVkIGNoYXIgKikgY21hbGxvYyAoKHNpemVfdCkgbnVtYmVyLCBl bnRfc2l6ZSk7CisgIGlmIChlX2RhdGEgPT0gTlVMTCkKKyAgICB7CisgICAgICBlcnJvciAoXygi T3V0IG9mIG1lbW9yeSByZWFkaW5nICVzIGR5bmFtaWMgZW50cmllc1xuIiksCisJICAgICBiZmRf dm1hdG9hICgidSIsIG51bWJlcikpOworICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgIGlm IChmcmVhZCAoZV9kYXRhLCBlbnRfc2l6ZSwgKHNpemVfdCkgbnVtYmVyLCBmaWxlZGF0YS0+aGFu ZGxlKSAhPSBudW1iZXIpCisgICAgeworICAgICAgZXJyb3IgKF8oIlVuYWJsZSB0byByZWFkIGlu ICVzIGJ5dGVzIG9mIGR5bmFtaWMgZGF0YVxuIiksCisJICAgICBiZmRfdm1hdG9hICgidSIsIG51 bWJlciAqIGVudF9zaXplKSk7CisgICAgICBmcmVlIChlX2RhdGEpOworICAgICAgcmV0dXJuIE5V TEw7CisgICAgfQorCisgIGlfZGF0YSA9IChiZmRfdm1hICopIGNtYWxsb2MgKChzaXplX3QpIG51 bWJlciwgc2l6ZW9mICgqaV9kYXRhKSk7CisgIGlmIChpX2RhdGEgPT0gTlVMTCkKKyAgICB7Cisg ICAgICBlcnJvciAoXygiT3V0IG9mIG1lbW9yeSBhbGxvY2F0aW5nIHNwYWNlIGZvciAlcyBkeW5h bWljIGVudHJpZXNcbiIpLAorCSAgICAgYmZkX3ZtYXRvYSAoInUiLCBudW1iZXIpKTsKKyAgICAg IGZyZWUgKGVfZGF0YSk7CisgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgd2hpbGUgKG51 bWJlci0tKQorICAgIGlfZGF0YVtudW1iZXJdID0gYnl0ZV9nZXQgKGVfZGF0YSArIG51bWJlciAq IGVudF9zaXplLCBlbnRfc2l6ZSk7CisKKyAgZnJlZSAoZV9kYXRhKTsKKworICByZXR1cm4gaV9k YXRhOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZworZ2V0X251bV9keW5hbWljX3N5bXMgKEZp bGVkYXRhICogZmlsZWRhdGEpCit7CisgIHVuc2lnbmVkIGxvbmcgbnVtX29mX3N5bXMgPSAwOwor CisgIGlmICghZG9faGlzdG9ncmFtICYmICghZG9fdXNpbmdfZHluYW1pYyB8fCBkb19keW5fc3lt cykpCisgICAgcmV0dXJuIG51bV9vZl9zeW1zOworCisgIGlmIChkeW5hbWljX2luZm9bRFRfSEFT SF0pCisgICAgeworICAgICAgdW5zaWduZWQgY2hhciBuYls4XTsKKyAgICAgIHVuc2lnbmVkIGNo YXIgbmNbOF07CisgICAgICB1bnNpZ25lZCBpbnQgaGFzaF9lbnRfc2l6ZSA9IDQ7CisKKyAgICAg IGlmICgoZmlsZWRhdGEtPmZpbGVfaGVhZGVyLmVfbWFjaGluZSA9PSBFTV9BTFBIQQorCSAgIHx8 IGZpbGVkYXRhLT5maWxlX2hlYWRlci5lX21hY2hpbmUgPT0gRU1fUzM5MAorCSAgIHx8IGZpbGVk YXRhLT5maWxlX2hlYWRlci5lX21hY2hpbmUgPT0gRU1fUzM5MF9PTEQpCisJICAmJiBmaWxlZGF0 YS0+ZmlsZV9oZWFkZXIuZV9pZGVudFtFSV9DTEFTU10gPT0gRUxGQ0xBU1M2NCkKKwloYXNoX2Vu dF9zaXplID0gODsKKworICAgICAgaWYgKGZzZWVrIChmaWxlZGF0YS0+aGFuZGxlLAorCQkgKGFy Y2hpdmVfZmlsZV9vZmZzZXQKKwkJICArIG9mZnNldF9mcm9tX3ZtYSAoZmlsZWRhdGEsIGR5bmFt aWNfaW5mb1tEVF9IQVNIXSwKKwkJCQkgICAgIHNpemVvZiBuYiArIHNpemVvZiBuYykpLAorCQkg U0VFS19TRVQpKQorCXsKKwkgIGVycm9yIChfKCJVbmFibGUgdG8gc2VlayB0byBzdGFydCBvZiBk eW5hbWljIGluZm9ybWF0aW9uXG4iKSk7CisJICBnb3RvIG5vX2hhc2g7CisJfQorCisgICAgICBp ZiAoZnJlYWQgKG5iLCBoYXNoX2VudF9zaXplLCAxLCBmaWxlZGF0YS0+aGFuZGxlKSAhPSAxKQor CXsKKwkgIGVycm9yIChfKCJGYWlsZWQgdG8gcmVhZCBpbiBudW1iZXIgb2YgYnVja2V0c1xuIikp OworCSAgZ290byBub19oYXNoOworCX0KKworICAgICAgaWYgKGZyZWFkIChuYywgaGFzaF9lbnRf c2l6ZSwgMSwgZmlsZWRhdGEtPmhhbmRsZSkgIT0gMSkKKwl7CisJICBlcnJvciAoXygiRmFpbGVk IHRvIHJlYWQgaW4gbnVtYmVyIG9mIGNoYWluc1xuIikpOworCSAgZ290byBub19oYXNoOworCX0K KworICAgICAgbmJ1Y2tldHMgPSBieXRlX2dldCAobmIsIGhhc2hfZW50X3NpemUpOworICAgICAg bmNoYWlucyA9IGJ5dGVfZ2V0IChuYywgaGFzaF9lbnRfc2l6ZSk7CisgICAgICBudW1fb2Zfc3lt cyA9IG5jaGFpbnM7CisKKyAgICAgIGJ1Y2tldHMgPSBnZXRfZHluYW1pY19kYXRhIChmaWxlZGF0 YSwgbmJ1Y2tldHMsIGhhc2hfZW50X3NpemUpOworICAgICAgY2hhaW5zICA9IGdldF9keW5hbWlj X2RhdGEgKGZpbGVkYXRhLCBuY2hhaW5zLCBoYXNoX2VudF9zaXplKTsKKworICBub19oYXNoOgor ICAgICAgaWYgKG51bV9vZl9zeW1zID09IDApCisJeworCSAgaWYgKGJ1Y2tldHMpCisJICAgIHsK KwkgICAgICBmcmVlIChidWNrZXRzKTsKKwkgICAgICBidWNrZXRzID0gTlVMTDsKKwkgICAgfQor CSAgaWYgKGNoYWlucykKKwkgICAgeworCSAgICAgIGZyZWUgKGNoYWlucyk7CisJICAgICAgYnVj a2V0cyA9IE5VTEw7CisJICAgIH0KKwkgIG5idWNrZXRzID0gMDsKKwl9CisgICAgfQorCisgIGlm IChkeW5hbWljX2luZm9fRFRfR05VX0hBU0gpCisgICAgeworICAgICAgdW5zaWduZWQgY2hhciBu YlsxNl07CisgICAgICBiZmRfdm1hIGksIG1heGNoYWluID0gMHhmZmZmZmZmZiwgYml0bWFza3dv cmRzOworICAgICAgYmZkX3ZtYSBidWNrZXRzX3ZtYTsKKyAgICAgIHVuc2lnbmVkIGxvbmcgaG47 CisgICAgICBiZmRfYm9vbGVhbiBnbnVfaGFzaF9lcnJvciA9IEZBTFNFOworCisgICAgICBpZiAo ZnNlZWsgKGZpbGVkYXRhLT5oYW5kbGUsCisJCSAoYXJjaGl2ZV9maWxlX29mZnNldAorCQkgICsg b2Zmc2V0X2Zyb21fdm1hIChmaWxlZGF0YSwgZHluYW1pY19pbmZvX0RUX0dOVV9IQVNILAorCQkJ CSAgICAgc2l6ZW9mIG5iKSksCisJCSBTRUVLX1NFVCkpCisJeworCSAgZXJyb3IgKF8oIlVuYWJs ZSB0byBzZWVrIHRvIHN0YXJ0IG9mIGR5bmFtaWMgaW5mb3JtYXRpb25cbiIpKTsKKwkgIGdudV9o YXNoX2Vycm9yID0gVFJVRTsKKwkgIGdvdG8gbm9fZ251X2hhc2g7CisJfQorCisgICAgICBpZiAo ZnJlYWQgKG5iLCAxNiwgMSwgZmlsZWRhdGEtPmhhbmRsZSkgIT0gMSkKKwl7CisJICBlcnJvciAo XygiRmFpbGVkIHRvIHJlYWQgaW4gbnVtYmVyIG9mIGJ1Y2tldHNcbiIpKTsKKwkgIGdudV9oYXNo X2Vycm9yID0gVFJVRTsKKwkgIGdvdG8gbm9fZ251X2hhc2g7CisJfQorCisgICAgICBuZ251YnVj a2V0cyA9IGJ5dGVfZ2V0IChuYiwgNCk7CisgICAgICBnbnVzeW1pZHggPSBieXRlX2dldCAobmIg KyA0LCA0KTsKKyAgICAgIGJpdG1hc2t3b3JkcyA9IGJ5dGVfZ2V0IChuYiArIDgsIDQpOworICAg ICAgYnVja2V0c192bWEgPSBkeW5hbWljX2luZm9fRFRfR05VX0hBU0ggKyAxNjsKKyAgICAgIGlm IChpc18zMmJpdF9lbGYpCisJYnVja2V0c192bWEgKz0gYml0bWFza3dvcmRzICogNDsKKyAgICAg IGVsc2UKKwlidWNrZXRzX3ZtYSArPSBiaXRtYXNrd29yZHMgKiA4OworCisgICAgICBpZiAoZnNl ZWsgKGZpbGVkYXRhLT5oYW5kbGUsCisJCSAoYXJjaGl2ZV9maWxlX29mZnNldAorCQkgICsgb2Zm c2V0X2Zyb21fdm1hIChmaWxlZGF0YSwgYnVja2V0c192bWEsIDQpKSwKKwkJIFNFRUtfU0VUKSkK Kwl7CisJICBlcnJvciAoXygiVW5hYmxlIHRvIHNlZWsgdG8gc3RhcnQgb2YgZHluYW1pYyBpbmZv cm1hdGlvblxuIikpOworCSAgZ251X2hhc2hfZXJyb3IgPSBUUlVFOworCSAgZ290byBub19nbnVf aGFzaDsKKwl9CisKKyAgICAgIGdudWJ1Y2tldHMgPSBnZXRfZHluYW1pY19kYXRhIChmaWxlZGF0 YSwgbmdudWJ1Y2tldHMsIDQpOworCisgICAgICBpZiAoZ251YnVja2V0cyA9PSBOVUxMKQorCXsK KwkgIGdudV9oYXNoX2Vycm9yID0gVFJVRTsKKwkgIGdvdG8gbm9fZ251X2hhc2g7CisJfQorCisg ICAgICBmb3IgKGkgPSAwOyBpIDwgbmdudWJ1Y2tldHM7IGkrKykKKwlpZiAoZ251YnVja2V0c1tp XSAhPSAwKQorCSAgeworCSAgICBpZiAoZ251YnVja2V0c1tpXSA8IGdudXN5bWlkeCkKKwkgICAg ICB7CisJCWdudV9oYXNoX2Vycm9yID0gVFJVRTsKKwkJcmV0dXJuIEZBTFNFOworCSAgICAgIH0K KworCSAgICBpZiAobWF4Y2hhaW4gPT0gMHhmZmZmZmZmZiB8fCBnbnVidWNrZXRzW2ldID4gbWF4 Y2hhaW4pCisJICAgICAgbWF4Y2hhaW4gPSBnbnVidWNrZXRzW2ldOworCSAgfQorCisgICAgICBp ZiAobWF4Y2hhaW4gPT0gMHhmZmZmZmZmZikKKwl7CisJICBnbnVfaGFzaF9lcnJvciA9IFRSVUU7 CisJICBnb3RvIG5vX2dudV9oYXNoOworCX0KKworICAgICAgbWF4Y2hhaW4gLT0gZ251c3ltaWR4 OworCisgICAgICBpZiAoZnNlZWsgKGZpbGVkYXRhLT5oYW5kbGUsCisJCSAoYXJjaGl2ZV9maWxl X29mZnNldAorCQkgICsgb2Zmc2V0X2Zyb21fdm1hIChmaWxlZGF0YSwgYnVja2V0c192bWEKKwkJ CQkJICAgKyA0ICogKG5nbnVidWNrZXRzICsgbWF4Y2hhaW4pLCA0KSksCisJCSBTRUVLX1NFVCkp CisJeworCSAgZXJyb3IgKF8oIlVuYWJsZSB0byBzZWVrIHRvIHN0YXJ0IG9mIGR5bmFtaWMgaW5m b3JtYXRpb25cbiIpKTsKKwkgIGdudV9oYXNoX2Vycm9yID0gVFJVRTsKKwkgIGdvdG8gbm9fZ251 X2hhc2g7CisJfQorCisgICAgICBkbworCXsKKwkgIGlmIChmcmVhZCAobmIsIDQsIDEsIGZpbGVk YXRhLT5oYW5kbGUpICE9IDEpCisJICAgIHsKKwkgICAgICBlcnJvciAoXygiRmFpbGVkIHRvIGRl dGVybWluZSBsYXN0IGNoYWluIGxlbmd0aFxuIikpOworCSAgZ251X2hhc2hfZXJyb3IgPSBUUlVF OworCSAgICAgIGdvdG8gbm9fZ251X2hhc2g7CisJICAgIH0KKworCSAgaWYgKG1heGNoYWluICsg MSA9PSAwKQorCSAgICB7CisJICAgICAgZ251X2hhc2hfZXJyb3IgPSBUUlVFOworCSAgICAgIGdv dG8gbm9fZ251X2hhc2g7CisJICAgIH0KKworCSAgKyttYXhjaGFpbjsKKwl9CisgICAgICB3aGls ZSAoKGJ5dGVfZ2V0IChuYiwgNCkgJiAxKSA9PSAwKTsKKworICAgICAgaWYgKGZzZWVrIChmaWxl ZGF0YS0+aGFuZGxlLAorCQkgKGFyY2hpdmVfZmlsZV9vZmZzZXQKKwkJICArIG9mZnNldF9mcm9t X3ZtYSAoZmlsZWRhdGEsIGJ1Y2tldHNfdm1hICsgNCAqIG5nbnVidWNrZXRzLCA0KSksCisJCSBT RUVLX1NFVCkpCisJeworCSAgZXJyb3IgKF8oIlVuYWJsZSB0byBzZWVrIHRvIHN0YXJ0IG9mIGR5 bmFtaWMgaW5mb3JtYXRpb25cbiIpKTsKKwkgIGdudV9oYXNoX2Vycm9yID0gVFJVRTsKKwkgIGdv dG8gbm9fZ251X2hhc2g7CisJfQorCisgICAgICBnbnVjaGFpbnMgPSBnZXRfZHluYW1pY19kYXRh IChmaWxlZGF0YSwgbWF4Y2hhaW4sIDQpOworICAgICAgbmdudWNoYWlucyA9IG1heGNoYWluOwor CisgICAgICBpZiAoZ251Y2hhaW5zID09IE5VTEwpCisJeworCSAgZ251X2hhc2hfZXJyb3IgPSBU UlVFOworCSAgZ290byBub19nbnVfaGFzaDsKKwl9CisKKyAgICAgIGlmIChkeW5hbWljX2luZm9f RFRfTUlQU19YSEFTSCkKKwl7CisJICBpZiAoZnNlZWsgKGZpbGVkYXRhLT5oYW5kbGUsCisJCSAg ICAgKGFyY2hpdmVfZmlsZV9vZmZzZXQKKwkJICAgICAgKyBvZmZzZXRfZnJvbV92bWEgKGZpbGVk YXRhLCAoYnVja2V0c192bWEKKwkJCQkJCSAgICArIDQgKiAobmdudWJ1Y2tldHMKKwkJCQkJCQkg ICArIG1heGNoYWluKSksIDQpKSwKKwkJICAgICBTRUVLX1NFVCkpCisJICAgIHsKKwkgICAgICBl cnJvciAoXygiVW5hYmxlIHRvIHNlZWsgdG8gc3RhcnQgb2YgZHluYW1pYyBpbmZvcm1hdGlvblxu IikpOworCSAgICAgIGdudV9oYXNoX2Vycm9yID0gVFJVRTsKKwkgICAgICBnb3RvIG5vX2dudV9o YXNoOworCSAgICB9CisKKwkgIG1pcHN4bGF0ID0gZ2V0X2R5bmFtaWNfZGF0YSAoZmlsZWRhdGEs IG1heGNoYWluLCA0KTsKKwl9CisKKyAgICAgIGZvciAoaG4gPSAwOyBobiA8IG5nbnVidWNrZXRz OyArK2huKQorCWlmIChnbnVidWNrZXRzW2huXSAhPSAwKQorCSAgeworCSAgICBiZmRfdm1hIHNp ID0gZ251YnVja2V0c1tobl07CisJICAgIGJmZF92bWEgb2ZmID0gc2kgLSBnbnVzeW1pZHg7CisK KwkgICAgZG8KKwkgICAgICB7CisJCWlmIChkeW5hbWljX2luZm9fRFRfTUlQU19YSEFTSCkKKwkJ ICB7CisJCSAgICBpZiAobWlwc3hsYXRbb2ZmXSA+PSBudW1fb2Zfc3ltcykKKwkJICAgICAgbnVt X29mX3N5bXMgPSBtaXBzeGxhdFtvZmZdICsgMTsKKwkJICB9CisJCWVsc2UKKwkJICB7CisJCSAg ICBpZiAoc2kgPj0gbnVtX29mX3N5bXMpCisJCSAgICAgIG51bV9vZl9zeW1zID0gc2kgKyAxOwor CQkgIH0KKwkJc2krKzsKKwkgICAgICB9CisJICAgIHdoaWxlIChvZmYgPCBuZ251Y2hhaW5zICYm IChnbnVjaGFpbnNbb2ZmKytdICYgMSkgPT0gMCk7CisJICB9CisKKyAgbm9fZ251X2hhc2g6Cisg ICAgICBpZiAoZ251X2hhc2hfZXJyb3IpCisJeworCSAgaWYgKG1pcHN4bGF0KQorCSAgICB7CisJ ICAgICAgZnJlZSAobWlwc3hsYXQpOworCSAgICAgIG1pcHN4bGF0ID0gTlVMTDsKKwkgICAgfQor CSAgaWYgKGdudWNoYWlucykKKwkgICAgeworCSAgICAgIGZyZWUgKGdudWNoYWlucyk7CisJICAg ICAgZ251Y2hhaW5zID0gTlVMTDsKKwkgICAgfQorCSAgaWYgKGdudWJ1Y2tldHMpCisJICAgIHsK KwkgICAgICBmcmVlIChnbnVidWNrZXRzKTsKKwkgICAgICBnbnVidWNrZXRzID0gTlVMTDsKKwkg ICAgfQorCSAgbmdudWJ1Y2tldHMgPSAwOworCSAgbmdudWNoYWlucyA9IDA7CisJfQorICAgIH0K KworICByZXR1cm4gbnVtX29mX3N5bXM7Cit9CisKIC8qIFBhcnNlIGFuZCBkaXNwbGF5IHRoZSBj b250ZW50cyBvZiB0aGUgZHluYW1pYyBzZWN0aW9uLiAgKi8KIAogc3RhdGljIGJmZF9ib29sZWFu CkBAIC05ODkyLDEwMyArMTAyMTksMTE3IEBAIHByb2Nlc3NfZHluYW1pY19zZWN0aW9uIChGaWxl ZGF0YSAqIGZpbGVkYXRhKQogICAgIH0KIAogICAvKiBGaW5kIHRoZSBhcHByb3ByaWF0ZSBzeW1i b2wgdGFibGUuICAqLwotICBpZiAoZHluYW1pY19zeW1ib2xzID09IE5VTEwpCisgIGlmIChkeW5h bWljX3N5bWJvbHMgPT0gTlVMTCB8fCBkb19oaXN0b2dyYW0pCiAgICAgewogICAgICAgZm9yIChl bnRyeSA9IGR5bmFtaWNfc2VjdGlvbjsKIAkgICBlbnRyeSA8IGR5bmFtaWNfc2VjdGlvbiArIGR5 bmFtaWNfbmVudDsKIAkgICArK2VudHJ5KQotCXsKLQkgIEVsZl9JbnRlcm5hbF9TaGRyIHNlY3Rp b247CisJaWYgKGVudHJ5LT5kX3RhZyA9PSBEVF9TWU1UQUIpCisJICBkeW5hbWljX2luZm9bRFRf U1lNVEFCXSA9IGVudHJ5LT5kX3VuLmRfdmFsOworCWVsc2UgaWYgKGVudHJ5LT5kX3RhZyA9PSBE VF9TWU1FTlQpCisJICBkeW5hbWljX2luZm9bRFRfU1lNRU5UXSA9IGVudHJ5LT5kX3VuLmRfdmFs OworCWVsc2UgaWYgKGVudHJ5LT5kX3RhZyA9PSBEVF9IQVNIKQorCSAgZHluYW1pY19pbmZvW0RU X0hBU0hdID0gZW50cnktPmRfdW4uZF92YWw7CisJZWxzZSBpZiAoZW50cnktPmRfdGFnID09IERU X0dOVV9IQVNIKQorCSAgZHluYW1pY19pbmZvX0RUX0dOVV9IQVNIID0gZW50cnktPmRfdW4uZF92 YWw7CisJZWxzZSBpZiAoKGZpbGVkYXRhLT5maWxlX2hlYWRlci5lX21hY2hpbmUgPT0gRU1fTUlQ UworCQkgIHx8IGZpbGVkYXRhLT5maWxlX2hlYWRlci5lX21hY2hpbmUgPT0gRU1fTUlQU19SUzNf TEUpCisJCSAmJiBlbnRyeS0+ZF90YWcgPT0gRFRfTUlQU19YSEFTSCkKKwkgIHsKKwkgICAgZHlu YW1pY19pbmZvX0RUX01JUFNfWEhBU0ggPSBlbnRyeS0+ZF91bi5kX3ZhbDsKKwkgICAgZHluYW1p Y19pbmZvX0RUX0dOVV9IQVNIID0gZW50cnktPmRfdW4uZF92YWw7CisJICB9CiAKLQkgIGlmIChl bnRyeS0+ZF90YWcgIT0gRFRfU1lNVEFCKQotCSAgICBjb250aW51ZTsKKyAgICAgIGlmIChkeW5h bWljX2luZm9bRFRfU1lNVEFCXSAmJiBkeW5hbWljX2luZm9bRFRfU1lNRU5UXSkKKwl7CisJICBF bGZfSW50ZXJuYWxfUGhkciAqc2VnOworCSAgICBiZmRfdm1hIHZtYSA9IGR5bmFtaWNfaW5mb1tE VF9TWU1UQUJdOwogCi0JICBkeW5hbWljX2luZm9bRFRfU1lNVEFCXSA9IGVudHJ5LT5kX3VuLmRf dmFsOworCSAgICBpZiAoISBnZXRfcHJvZ3JhbV9oZWFkZXJzIChmaWxlZGF0YSkpCisJICAgICAg eworCQllcnJvciAoXygiQ2Fubm90IGludGVycHJldCB2aXJ0dWFsIGFkZHJlc3NlcyB3aXRob3V0 IHByb2dyYW0gaGVhZGVycy5cbiIpKTsKKwkJcmV0dXJuIEZBTFNFOworCSAgICAgIH0KIAotCSAg LyogU2luY2Ugd2UgZG8gbm90IGtub3cgaG93IGJpZyB0aGUgc3ltYm9sIHRhYmxlIGlzLAotCSAg ICAgd2UgZGVmYXVsdCB0byByZWFkaW5nIGluIHRoZSBlbnRpcmUgZmlsZSAoISkgYW5kCi0JICAg ICBwcm9jZXNzaW5nIHRoYXQuICBUaGlzIGlzIG92ZXJraWxsLCBJIGtub3csIGJ1dCBpdAotCSAg ICAgc2hvdWxkIHdvcmsuICAqLwotCSAgc2VjdGlvbi5zaF9vZmZzZXQgPSBvZmZzZXRfZnJvbV92 bWEgKGZpbGVkYXRhLCBlbnRyeS0+ZF91bi5kX3ZhbCwgMCk7Ci0JICBpZiAoKGJmZF9zaXplX3R5 cGUpIHNlY3Rpb24uc2hfb2Zmc2V0ID4gZmlsZWRhdGEtPmZpbGVfc2l6ZSkKLQkgICAgewotCSAg ICAgIC8qIFNlZSBQUiAyMTM3OSBmb3IgYSByZXByb2R1Y2VyLiAgKi8KLQkgICAgICBlcnJvciAo XygiSW52YWxpZCBEVF9TWU1UQUIgZW50cnk6ICVseFxuIiksCi0JCSAgICAgKGxvbmcpIHNlY3Rp b24uc2hfb2Zmc2V0KTsKLQkgICAgICByZXR1cm4gRkFMU0U7Ci0JICAgIH0KKwkgICAgZm9yIChz ZWcgPSBmaWxlZGF0YS0+cHJvZ3JhbV9oZWFkZXJzOworCQkgc2VnIDwgZmlsZWRhdGEtPnByb2dy YW1faGVhZGVycyArIGZpbGVkYXRhLT5maWxlX2hlYWRlci5lX3BobnVtOworCQkgKytzZWcpCisJ ICAgICAgeworCQl1bnNpZ25lZCBsb25nIG51bV9vZl9zeW1zOwogCi0JICBpZiAoYXJjaGl2ZV9m aWxlX29mZnNldCAhPSAwKQotCSAgICBzZWN0aW9uLnNoX3NpemUgPSBhcmNoaXZlX2ZpbGVfc2l6 ZSAtIHNlY3Rpb24uc2hfb2Zmc2V0OwotCSAgZWxzZQotCSAgICBzZWN0aW9uLnNoX3NpemUgPSBm aWxlZGF0YS0+ZmlsZV9zaXplIC0gc2VjdGlvbi5zaF9vZmZzZXQ7CisJCWlmIChzZWctPnBfdHlw ZSAhPSBQVF9MT0FEKQorCQkgIGNvbnRpbnVlOwogCi0JICBpZiAoaXNfMzJiaXRfZWxmKQotCSAg ICBzZWN0aW9uLnNoX2VudHNpemUgPSBzaXplb2YgKEVsZjMyX0V4dGVybmFsX1N5bSk7Ci0JICBl bHNlCi0JICAgIHNlY3Rpb24uc2hfZW50c2l6ZSA9IHNpemVvZiAoRWxmNjRfRXh0ZXJuYWxfU3lt KTsKLQkgIHNlY3Rpb24uc2hfbmFtZSA9IGZpbGVkYXRhLT5zdHJpbmdfdGFibGVfbGVuZ3RoOwor CQlpZiAoKHNlZy0+cF9vZmZzZXQgKyBzZWctPnBfZmlsZXN6KQorCQkgICAgPiBmaWxlZGF0YS0+ ZmlsZV9zaXplKQorCQkgIHsKKwkJICAgIC8qIFNlZSBQUiAyMTM3OSBmb3IgYSByZXByb2R1Y2Vy LiAgKi8KKwkJICAgIGVycm9yIChfKCJJbnZhbGlkIFBUX0xPQUQgZW50cnlcbiIpKTsKKwkJICAg IHJldHVybiBGQUxTRTsKKwkJICB9CiAKLQkgIGlmIChkeW5hbWljX3N5bWJvbHMgIT0gTlVMTCkK LQkgICAgewotCSAgICAgIGVycm9yIChfKCJNdWx0aXBsZSBkeW5hbWljIHN5bWJvbCB0YWJsZSBz ZWN0aW9ucyBmb3VuZFxuIikpOwotCSAgICAgIGZyZWUgKGR5bmFtaWNfc3ltYm9scyk7Ci0JICAg IH0KLQkgIGR5bmFtaWNfc3ltYm9scyA9IEdFVF9FTEZfU1lNQk9MUyAoZmlsZWRhdGEsICZzZWN0 aW9uLCAmIG51bV9keW5hbWljX3N5bXMpOwotCSAgaWYgKG51bV9keW5hbWljX3N5bXMgPCAxKQot CSAgICB7Ci0JICAgICAgZXJyb3IgKF8oIlVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIG51bWJlciBv ZiBzeW1ib2xzIHRvIGxvYWRcbiIpKTsKLQkgICAgICBjb250aW51ZTsKLQkgICAgfQotCX0KLSAg ICB9CisJCWlmICh2bWEgPj0gKHNlZy0+cF92YWRkciAmIC1zZWctPnBfYWxpZ24pCisJCSAgICAm JiB2bWEgPD0gc2VnLT5wX3ZhZGRyICsgc2VnLT5wX2ZpbGVzegorCQkgICAgJiYgKG51bV9vZl9z eW1zID0gZ2V0X251bV9keW5hbWljX3N5bXMgKGZpbGVkYXRhKSkpCisJCSAgeworCQkgICAgLyog U2luY2Ugd2UgZG8gbm90IGtub3cgaG93IGJpZyB0aGUgc3ltYm9sIHRhYmxlIGlzLAorCQkgICAg ICAgd2UgZGVmYXVsdCB0byByZWFkaW5nIGluIHVwIHRvIHRoZSBlbmQgb2YgUFRfTE9BRAorCQkg ICAgICAgc2VnbWVudCBhbmQgcHJvY2Vzc2luZyB0aGF0LiAgVGhpcyBpcyBvdmVya2lsbCwgSQor CQkgICAgICAga25vdywgYnV0IGl0IHNob3VsZCB3b3JrLiAgKi8KKwkJICAgIEVsZl9JbnRlcm5h bF9TaGRyIHNlY3Rpb247CisJCSAgICBzZWN0aW9uLnNoX29mZnNldCA9ICh2bWEgLSBzZWctPnBf dmFkZHIKKwkJCQkJICsgc2VnLT5wX29mZnNldCk7CisJCSAgICBzZWN0aW9uLnNoX3NpemUgPSAo bnVtX29mX3N5bXMKKwkJCQkgICAgICAgKiBkeW5hbWljX2luZm9bRFRfU1lNRU5UXSk7CisJCSAg ICBzZWN0aW9uLnNoX2VudHNpemUgPSBkeW5hbWljX2luZm9bRFRfU1lNRU5UXTsKKwkJICAgIHNl Y3Rpb24uc2hfbmFtZSA9IGZpbGVkYXRhLT5zdHJpbmdfdGFibGVfbGVuZ3RoOworCQkgICAgZHlu YW1pY19zeW1ib2xzID0gR0VUX0VMRl9TWU1CT0xTIChmaWxlZGF0YSwKKwkJCQkJCSAgICAgICAm c2VjdGlvbiwKKwkJCQkJCSAgICAgICAmIG51bV9keW5hbWljX3N5bXMpOworCQkgICAgaWYgKGR5 bmFtaWNfc3ltYm9scyA9PSBOVUxMCisJCQl8fCBudW1fZHluYW1pY19zeW1zICE9IG51bV9vZl9z eW1zKQorCQkgICAgICB7CisJCQllcnJvciAoXygiQ29ycnVwdCBEVF9TWU1UQUIgZHluYW1pYyBl bnRyeVxuIikpOworCQkJcmV0dXJuIEZBTFNFOworCQkgICAgICB9CisJCSAgfQorCSAgICAgIH0K KwkgIH0KKyAgICAgIH0KIAogICAvKiBTaW1pbGFybHkgZmluZCBhIHN0cmluZyB0YWJsZS4gICov CiAgIGlmIChkeW5hbWljX3N0cmluZ3MgPT0gTlVMTCkKLSAgICB7Ci0gICAgICBmb3IgKGVudHJ5 ID0gZHluYW1pY19zZWN0aW9uOwotCSAgIGVudHJ5IDwgZHluYW1pY19zZWN0aW9uICsgZHluYW1p Y19uZW50OwotCSAgICsrZW50cnkpCi0JewotCSAgdW5zaWduZWQgbG9uZyBvZmZzZXQ7Ci0JICBs b25nIHN0cl90YWJfbGVuOwotCi0JICBpZiAoZW50cnktPmRfdGFnICE9IERUX1NUUlRBQikKLQkg ICAgY29udGludWU7Ci0KKyAgICBmb3IgKGVudHJ5ID0gZHluYW1pY19zZWN0aW9uOworCSBlbnRy eSA8IGR5bmFtaWNfc2VjdGlvbiArIGR5bmFtaWNfbmVudDsKKwkgKytlbnRyeSkKKyAgICAgIHsK KwlpZiAoZW50cnktPmRfdGFnID09IERUX1NUUlRBQikKIAkgIGR5bmFtaWNfaW5mb1tEVF9TVFJU QUJdID0gZW50cnktPmRfdW4uZF92YWw7CiAKLQkgIC8qIFNpbmNlIHdlIGRvIG5vdCBrbm93IGhv dyBiaWcgdGhlIHN0cmluZyB0YWJsZSBpcywKLQkgICAgIHdlIGRlZmF1bHQgdG8gcmVhZGluZyBp biB0aGUgZW50aXJlIGZpbGUgKCEpIGFuZAotCSAgICAgcHJvY2Vzc2luZyB0aGF0LiAgVGhpcyBp cyBvdmVya2lsbCwgSSBrbm93LCBidXQgaXQKLQkgICAgIHNob3VsZCB3b3JrLiAgKi8KLQotCSAg b2Zmc2V0ID0gb2Zmc2V0X2Zyb21fdm1hIChmaWxlZGF0YSwgZW50cnktPmRfdW4uZF92YWwsIDAp OwotCi0JICBpZiAoYXJjaGl2ZV9maWxlX29mZnNldCAhPSAwKQotCSAgICBzdHJfdGFiX2xlbiA9 IGFyY2hpdmVfZmlsZV9zaXplIC0gb2Zmc2V0OwotCSAgZWxzZQotCSAgICBzdHJfdGFiX2xlbiA9 IGZpbGVkYXRhLT5maWxlX3NpemUgLSBvZmZzZXQ7Ci0KLQkgIGlmIChzdHJfdGFiX2xlbiA8IDEp Ci0JICAgIHsKLQkgICAgICBlcnJvcgotCQkoXygiVW5hYmxlIHRvIGRldGVybWluZSB0aGUgbGVu Z3RoIG9mIHRoZSBkeW5hbWljIHN0cmluZyB0YWJsZVxuIikpOwotCSAgICAgIGNvbnRpbnVlOwot CSAgICB9CisJaWYgKGVudHJ5LT5kX3RhZyA9PSBEVF9TVFJTWikKKwkgIGR5bmFtaWNfaW5mb1tE VF9TVFJTWl0gPSBlbnRyeS0+ZF91bi5kX3ZhbDsKIAotCSAgaWYgKGR5bmFtaWNfc3RyaW5ncyAh PSBOVUxMKQotCSAgICB7Ci0JICAgICAgZXJyb3IgKF8oIk11bHRpcGxlIGR5bmFtaWMgc3RyaW5n IHRhYmxlcyBmb3VuZFxuIikpOwotCSAgICAgIGZyZWUgKGR5bmFtaWNfc3RyaW5ncyk7Ci0JICAg IH0KKwlpZiAoZHluYW1pY19pbmZvW0RUX1NUUlRBQl0gJiYgZHluYW1pY19pbmZvW0RUX1NUUlNa XSkKKwkgIHsKKwkgICAgdW5zaWduZWQgbG9uZyBvZmZzZXQ7CisJICAgIGJmZF9zaXplX3R5cGUg c3RyX3RhYl9sZW4gPSBkeW5hbWljX2luZm9bRFRfU1RSU1pdOworCisJICAgIG9mZnNldCA9IG9m ZnNldF9mcm9tX3ZtYSAoZmlsZWRhdGEsCisJCQkJICAgICAgZHluYW1pY19pbmZvW0RUX1NUUlRB Ql0sCisJCQkJICAgICAgc3RyX3RhYl9sZW4pOworCSAgICBkeW5hbWljX3N0cmluZ3MgPSAoY2hh ciAqKSBnZXRfZGF0YSAoTlVMTCwgZmlsZWRhdGEsIG9mZnNldCwgMSwKKwkJCQkJCSBzdHJfdGFi X2xlbiwKKwkJCQkJCSBfKCJkeW5hbWljIHN0cmluZyB0YWJsZSIpKTsKKwkgICAgaWYgKGR5bmFt aWNfc3RyaW5ncyA9PSBOVUxMKQorCSAgICAgIHsKKwkJZXJyb3IgKF8oIkNvcnJ1cHQgRFRfU1RS VEFCIGR5bmFtaWMgZW50cnlcbiIpKTsKKwkJYnJlYWs7CisJICAgICAgfQogCi0JICBkeW5hbWlj X3N0cmluZ3MgPSAoY2hhciAqKSBnZXRfZGF0YSAoTlVMTCwgZmlsZWRhdGEsIG9mZnNldCwgMSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyX3RhYl9s ZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oImR5 bmFtaWMgc3RyaW5nIHRhYmxlIikpOwotCSAgZHluYW1pY19zdHJpbmdzX2xlbmd0aCA9IGR5bmFt aWNfc3RyaW5ncyA9PSBOVUxMID8gMCA6IHN0cl90YWJfbGVuOwotCX0KLSAgICB9CisJICAgIGR5 bmFtaWNfc3RyaW5nc19sZW5ndGggPSBzdHJfdGFiX2xlbjsKKwkgICAgYnJlYWs7CisJICB9Cisg ICAgICB9CiAKICAgLyogQW5kIGZpbmQgdGhlIHN5bWluZm8gc2VjdGlvbiBpZiBhdmFpbGFibGUu ICAqLwogICBpZiAoZHluYW1pY19zeW1pbmZvID09IE5VTEwpCkBAIC0xMTQxMCwxNDMgKzExNzUx LDM2IEBAIGdldF9zeW1ib2xfaW5kZXhfdHlwZSAoRmlsZWRhdGEgKiBmaWxlZGF0YSwgdW5zaWdu ZWQgaW50IHR5cGUpCiAgICAgZGVmYXVsdDoKICAgICAgIGlmICh0eXBlID09IFNITl9JQV82NF9B TlNJX0NPTU1PTgogCSAgJiYgZmlsZWRhdGEtPmZpbGVfaGVhZGVyLmVfbWFjaGluZSA9PSBFTV9J QV82NAotCSAgJiYgZmlsZWRhdGEtPmZpbGVfaGVhZGVyLmVfaWRlbnRbRUlfT1NBQkldID09IEVM Rk9TQUJJX0hQVVgpCi0JcmV0dXJuICJBTlNJX0NPTSI7Ci0gICAgICBlbHNlIGlmICgoZmlsZWRh dGEtPmZpbGVfaGVhZGVyLmVfbWFjaGluZSA9PSBFTV9YODZfNjQKLQkJfHwgZmlsZWRhdGEtPmZp bGVfaGVhZGVyLmVfbWFjaGluZSA9PSBFTV9MMU9NCi0JCXx8IGZpbGVkYXRhLT5maWxlX2hlYWRl ci5lX21hY2hpbmUgPT0gRU1fSzFPTSkKLQkgICAgICAgJiYgdHlwZSA9PSBTSE5fWDg2XzY0X0xD T01NT04pCi0JcmV0dXJuICJMQVJHRV9DT00iOwotICAgICAgZWxzZSBpZiAoKHR5cGUgPT0gU0hO X01JUFNfU0NPTU1PTgotCQkmJiBmaWxlZGF0YS0+ZmlsZV9oZWFkZXIuZV9tYWNoaW5lID09IEVN X01JUFMpCi0JICAgICAgIHx8ICh0eXBlID09IFNITl9USUM2WF9TQ09NTU9OCi0JCSAgICYmIGZp bGVkYXRhLT5maWxlX2hlYWRlci5lX21hY2hpbmUgPT0gRU1fVElfQzYwMDApKQotCXJldHVybiAi U0NPTSI7Ci0gICAgICBlbHNlIGlmICh0eXBlID09IFNITl9NSVBTX1NVTkRFRklORUQKLQkgICAg ICAgJiYgZmlsZWRhdGEtPmZpbGVfaGVhZGVyLmVfbWFjaGluZSA9PSBFTV9NSVBTKQotCXJldHVy biAiU1VORCI7Ci0gICAgICBlbHNlIGlmICh0eXBlID49IFNITl9MT1BST0MgJiYgdHlwZSA8PSBT SE5fSElQUk9DKQotCXNwcmludGYgKGJ1ZmYsICJQUkNbMHglMDR4XSIsIHR5cGUgJiAweGZmZmYp OwotICAgICAgZWxzZSBpZiAodHlwZSA+PSBTSE5fTE9PUyAmJiB0eXBlIDw9IFNITl9ISU9TKQot CXNwcmludGYgKGJ1ZmYsICJPUyBbMHglMDR4XSIsIHR5cGUgJiAweGZmZmYpOwotICAgICAgZWxz ZSBpZiAodHlwZSA+PSBTSE5fTE9SRVNFUlZFKQotCXNwcmludGYgKGJ1ZmYsICJSU1ZbMHglMDR4 XSIsIHR5cGUgJiAweGZmZmYpOwotICAgICAgZWxzZSBpZiAodHlwZSA+PSBmaWxlZGF0YS0+Zmls ZV9oZWFkZXIuZV9zaG51bSkKLQlzcHJpbnRmIChidWZmLCBfKCJiYWQgc2VjdGlvbiBpbmRleFsl M2RdIiksIHR5cGUpOwotICAgICAgZWxzZQotCXNwcmludGYgKGJ1ZmYsICIlM2QiLCB0eXBlKTsK LSAgICAgIGJyZWFrOwotICAgIH0KLQotICByZXR1cm4gYnVmZjsKLX0KLQotc3RhdGljIGJmZF92 bWEgKgotZ2V0X2R5bmFtaWNfZGF0YSAoRmlsZWRhdGEgKiBmaWxlZGF0YSwgYmZkX3NpemVfdHlw ZSBudW1iZXIsIHVuc2lnbmVkIGludCBlbnRfc2l6ZSkKLXsKLSAgdW5zaWduZWQgY2hhciAqIGVf ZGF0YTsKLSAgYmZkX3ZtYSAqIGlfZGF0YTsKLQotICAvKiBJZiB0aGUgc2l6ZV90IHR5cGUgaXMg c21hbGxlciB0aGFuIHRoZSBiZmRfc2l6ZV90eXBlLCBlZyBiZWNhdXNlCi0gICAgIHlvdSBhcmUg YnVpbGRpbmcgYSAzMi1iaXQgdG9vbCBvbiBhIDY0LWJpdCBob3N0LCB0aGVuIG1ha2Ugc3VyZQot ICAgICB0aGF0IHdoZW4gKG51bWJlcikgaXMgY2FzdCB0byAoc2l6ZV90KSBubyBpbmZvcm1hdGlv biBpcyBsb3N0LiAgKi8KLSAgaWYgKHNpemVvZiAoc2l6ZV90KSA8IHNpemVvZiAoYmZkX3NpemVf dHlwZSkKLSAgICAgICYmIChiZmRfc2l6ZV90eXBlKSAoKHNpemVfdCkgbnVtYmVyKSAhPSBudW1i ZXIpCi0gICAgewotICAgICAgZXJyb3IgKF8oIlNpemUgdHJ1bmNhdGlvbiBwcmV2ZW50cyByZWFk aW5nICVzIGVsZW1lbnRzIG9mIHNpemUgJXVcbiIpLAotCSAgICAgYmZkX3ZtYXRvYSAoInUiLCBu dW1iZXIpLCBlbnRfc2l6ZSk7Ci0gICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgLyogQmUg a2luZCB0byBtZW1vcnkgY2hlY2tlcnMgKGVnIHZhbGdyaW5kLCBhZGRyZXNzIHNhbml0aXplcikg Ynkgbm90Ci0gICAgIGF0dGVtcHRpbmcgdG8gYWxsb2NhdGUgbWVtb3J5IHdoZW4gdGhlIHJlYWQg aXMgYm91bmQgdG8gZmFpbC4gICovCi0gIGlmIChlbnRfc2l6ZSAqIG51bWJlciA+IGZpbGVkYXRh LT5maWxlX3NpemUpCi0gICAgewotICAgICAgZXJyb3IgKF8oIkludmFsaWQgbnVtYmVyIG9mIGR5 bmFtaWMgZW50cmllczogJXNcbiIpLAotCSAgICAgYmZkX3ZtYXRvYSAoInUiLCBudW1iZXIpKTsK LSAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICBlX2RhdGEgPSAodW5zaWduZWQgY2hhciAq KSBjbWFsbG9jICgoc2l6ZV90KSBudW1iZXIsIGVudF9zaXplKTsKLSAgaWYgKGVfZGF0YSA9PSBO VUxMKQotICAgIHsKLSAgICAgIGVycm9yIChfKCJPdXQgb2YgbWVtb3J5IHJlYWRpbmcgJXMgZHlu YW1pYyBlbnRyaWVzXG4iKSwKLQkgICAgIGJmZF92bWF0b2EgKCJ1IiwgbnVtYmVyKSk7Ci0gICAg ICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgaWYgKGZyZWFkIChlX2RhdGEsIGVudF9zaXplLCAo c2l6ZV90KSBudW1iZXIsIGZpbGVkYXRhLT5oYW5kbGUpICE9IG51bWJlcikKLSAgICB7Ci0gICAg ICBlcnJvciAoXygiVW5hYmxlIHRvIHJlYWQgaW4gJXMgYnl0ZXMgb2YgZHluYW1pYyBkYXRhXG4i KSwKLQkgICAgIGJmZF92bWF0b2EgKCJ1IiwgbnVtYmVyICogZW50X3NpemUpKTsKLSAgICAgIGZy ZWUgKGVfZGF0YSk7Ci0gICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgaV9kYXRhID0gKGJm ZF92bWEgKikgY21hbGxvYyAoKHNpemVfdCkgbnVtYmVyLCBzaXplb2YgKCppX2RhdGEpKTsKLSAg aWYgKGlfZGF0YSA9PSBOVUxMKQotICAgIHsKLSAgICAgIGVycm9yIChfKCJPdXQgb2YgbWVtb3J5 IGFsbG9jYXRpbmcgc3BhY2UgZm9yICVzIGR5bmFtaWMgZW50cmllc1xuIiksCi0JICAgICBiZmRf dm1hdG9hICgidSIsIG51bWJlcikpOwotICAgICAgZnJlZSAoZV9kYXRhKTsKLSAgICAgIHJldHVy biBOVUxMOwotICAgIH0KLQotICB3aGlsZSAobnVtYmVyLS0pCi0gICAgaV9kYXRhW251bWJlcl0g PSBieXRlX2dldCAoZV9kYXRhICsgbnVtYmVyICogZW50X3NpemUsIGVudF9zaXplKTsKLQotICBm cmVlIChlX2RhdGEpOwotCi0gIHJldHVybiBpX2RhdGE7Ci19Ci0KLXN0YXRpYyB2b2lkCi1wcmlu dF9keW5hbWljX3N5bWJvbCAoRmlsZWRhdGEgKiBmaWxlZGF0YSwgYmZkX3ZtYSBzaSwgdW5zaWdu ZWQgbG9uZyBobikKLXsKLSAgRWxmX0ludGVybmFsX1N5bSAqIHBzeW07Ci0gIGludCBuOwotCi0g IG4gPSBwcmludF92bWEgKHNpLCBERUNfNSk7Ci0gIGlmIChuIDwgNSkKLSAgICBmcHV0cyAoJiIg ICAgICJbbl0sIHN0ZG91dCk7Ci0gIHByaW50ZiAoIiAlM2x1OiAiLCBobik7Ci0KLSAgaWYgKGR5 bmFtaWNfc3ltYm9scyA9PSBOVUxMIHx8IHNpID49IG51bV9keW5hbWljX3N5bXMpCi0gICAgewot ICAgICAgcHJpbnRmIChfKCI8Tm8gaW5mbyBhdmFpbGFibGUgZm9yIGR5bmFtaWMgc3ltYm9sIG51 bWJlciAlbHU+XG4iKSwKLQkgICAgICAodW5zaWduZWQgbG9uZykgc2kpOwotICAgICAgcmV0dXJu OwotICAgIH0KLQotICBwc3ltID0gZHluYW1pY19zeW1ib2xzICsgc2k7Ci0gIHByaW50X3ZtYSAo cHN5bS0+c3RfdmFsdWUsIExPTkdfSEVYKTsKLSAgcHV0Y2hhciAoJyAnKTsKLSAgcHJpbnRfdm1h IChwc3ltLT5zdF9zaXplLCBERUNfNSk7Ci0KLSAgcHJpbnRmICgiICUtN3MiLCBnZXRfc3ltYm9s X3R5cGUgKGZpbGVkYXRhLCBFTEZfU1RfVFlQRSAocHN5bS0+c3RfaW5mbykpKTsKLSAgcHJpbnRm ICgiICUtNnMiLCAgZ2V0X3N5bWJvbF9iaW5kaW5nIChmaWxlZGF0YSwgRUxGX1NUX0JJTkQgKHBz eW0tPnN0X2luZm8pKSk7Ci0KLSAgaWYgKGZpbGVkYXRhLT5maWxlX2hlYWRlci5lX2lkZW50W0VJ X09TQUJJXSA9PSBFTEZPU0FCSV9TT0xBUklTKQotICAgIHByaW50ZiAoIiAlLTdzIiwgIGdldF9z b2xhcmlzX3N5bWJvbF92aXNpYmlsaXR5IChwc3ltLT5zdF9vdGhlcikpOwotICBlbHNlCi0gICAg ewotICAgICAgdW5zaWduZWQgaW50IHZpcyA9IEVMRl9TVF9WSVNJQklMSVRZIChwc3ltLT5zdF9v dGhlcik7Ci0KLSAgICAgIHByaW50ZiAoIiAlLTdzIiwgIGdldF9zeW1ib2xfdmlzaWJpbGl0eSAo dmlzKSk7Ci0gICAgICAvKiBDaGVjayB0byBzZWUgaWYgYW55IG90aGVyIGJpdHMgaW4gdGhlIHN0 X290aGVyIGZpZWxkIGFyZSBzZXQuCi0JIE5vdGUgLSBkaXNwbGF5aW5nIHRoaXMgaW5mb3JtYXRp b24gZGlzcnVwdHMgdGhlIGxheW91dCBvZiB0aGUKLQkgdGFibGUgYmVpbmcgZ2VuZXJhdGVkLCBi dXQgZm9yIHRoZSBtb21lbnQgdGhpcyBjYXNlIGlzIHZlcnkKLQkgcmFyZS4gICovCi0gICAgICBp ZiAocHN5bS0+c3Rfb3RoZXIgXiB2aXMpCi0JcHJpbnRmICgiIFslc10gIiwgZ2V0X3N5bWJvbF9v dGhlciAoZmlsZWRhdGEsIHBzeW0tPnN0X290aGVyIF4gdmlzKSk7CisJICAmJiBmaWxlZGF0YS0+ ZmlsZV9oZWFkZXIuZV9pZGVudFtFSV9PU0FCSV0gPT0gRUxGT1NBQklfSFBVWCkKKwlyZXR1cm4g IkFOU0lfQ09NIjsKKyAgICAgIGVsc2UgaWYgKChmaWxlZGF0YS0+ZmlsZV9oZWFkZXIuZV9tYWNo aW5lID09IEVNX1g4Nl82NAorCQl8fCBmaWxlZGF0YS0+ZmlsZV9oZWFkZXIuZV9tYWNoaW5lID09 IEVNX0wxT00KKwkJfHwgZmlsZWRhdGEtPmZpbGVfaGVhZGVyLmVfbWFjaGluZSA9PSBFTV9LMU9N KQorCSAgICAgICAmJiB0eXBlID09IFNITl9YODZfNjRfTENPTU1PTikKKwlyZXR1cm4gIkxBUkdF X0NPTSI7CisgICAgICBlbHNlIGlmICgodHlwZSA9PSBTSE5fTUlQU19TQ09NTU9OCisJCSYmIGZp bGVkYXRhLT5maWxlX2hlYWRlci5lX21hY2hpbmUgPT0gRU1fTUlQUykKKwkgICAgICAgfHwgKHR5 cGUgPT0gU0hOX1RJQzZYX1NDT01NT04KKwkJICAgJiYgZmlsZWRhdGEtPmZpbGVfaGVhZGVyLmVf bWFjaGluZSA9PSBFTV9USV9DNjAwMCkpCisJcmV0dXJuICJTQ09NIjsKKyAgICAgIGVsc2UgaWYg KHR5cGUgPT0gU0hOX01JUFNfU1VOREVGSU5FRAorCSAgICAgICAmJiBmaWxlZGF0YS0+ZmlsZV9o ZWFkZXIuZV9tYWNoaW5lID09IEVNX01JUFMpCisJcmV0dXJuICJTVU5EIjsKKyAgICAgIGVsc2Ug aWYgKHR5cGUgPj0gU0hOX0xPUFJPQyAmJiB0eXBlIDw9IFNITl9ISVBST0MpCisJc3ByaW50ZiAo YnVmZiwgIlBSQ1sweCUwNHhdIiwgdHlwZSAmIDB4ZmZmZik7CisgICAgICBlbHNlIGlmICh0eXBl ID49IFNITl9MT09TICYmIHR5cGUgPD0gU0hOX0hJT1MpCisJc3ByaW50ZiAoYnVmZiwgIk9TIFsw eCUwNHhdIiwgdHlwZSAmIDB4ZmZmZik7CisgICAgICBlbHNlIGlmICh0eXBlID49IFNITl9MT1JF U0VSVkUpCisJc3ByaW50ZiAoYnVmZiwgIlJTVlsweCUwNHhdIiwgdHlwZSAmIDB4ZmZmZik7Cisg ICAgICBlbHNlIGlmIChmaWxlZGF0YS0+ZmlsZV9oZWFkZXIuZV9zaG51bSAhPSAwCisJICAgICAg ICYmIHR5cGUgPj0gZmlsZWRhdGEtPmZpbGVfaGVhZGVyLmVfc2hudW0pCisJc3ByaW50ZiAoYnVm ZiwgXygiYmFkIHNlY3Rpb24gaW5kZXhbJTNkXSIpLCB0eXBlKTsKKyAgICAgIGVsc2UKKwlzcHJp bnRmIChidWZmLCAiJTNkIiwgdHlwZSk7CisgICAgICBicmVhazsKICAgICB9CiAKLSAgcHJpbnRm ICgiICUzLjNzICIsIGdldF9zeW1ib2xfaW5kZXhfdHlwZSAoZmlsZWRhdGEsIHBzeW0tPnN0X3No bmR4KSk7Ci0gIGlmIChWQUxJRF9EWU5BTUlDX05BTUUgKHBzeW0tPnN0X25hbWUpKQotICAgIHBy aW50X3N5bWJvbCAoMjUsIEdFVF9EWU5BTUlDX05BTUUgKHBzeW0tPnN0X25hbWUpKTsKLSAgZWxz ZQotICAgIHByaW50ZiAoXygiIDxjb3JydXB0OiAlMTRsZD4iKSwgcHN5bS0+c3RfbmFtZSk7Ci0g IHB1dGNoYXIgKCdcbicpOworICByZXR1cm4gYnVmZjsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIg KgpAQCAtMTE3MjIsMjE0ICsxMTk1Niw3OCBAQCBnZXRfc3ltYm9sX3ZlcnNpb25fc3RyaW5nIChG aWxlZGF0YSAqICAgICAgICAgICAgICAgICAgIGZpbGVkYXRhLAogICByZXR1cm4gTlVMTDsKIH0K IAotLyogRHVtcCB0aGUgc3ltYm9sIHRhYmxlLiAgKi8KLXN0YXRpYyBiZmRfYm9vbGVhbgotcHJv Y2Vzc19zeW1ib2xfdGFibGUgKEZpbGVkYXRhICogZmlsZWRhdGEpCitzdGF0aWMgdm9pZAorcHJp bnRfZHluYW1pY19zeW1ib2wgKEZpbGVkYXRhICpmaWxlZGF0YSwgdW5zaWduZWQgbG9uZyBzaSwK KwkJICAgICAgRWxmX0ludGVybmFsX1N5bSAqc3ltdGFiLAorCQkgICAgICBFbGZfSW50ZXJuYWxf U2hkciAqc2VjdGlvbiwKKwkJICAgICAgY2hhciAqc3RydGFiLCBzaXplX3Qgc3RydGFiX3NpemUp CiB7Ci0gIEVsZl9JbnRlcm5hbF9TaGRyICogc2VjdGlvbjsKLSAgYmZkX3NpemVfdHlwZSBuYnVj a2V0cyA9IDA7Ci0gIGJmZF9zaXplX3R5cGUgbmNoYWlucyA9IDA7Ci0gIGJmZF92bWEgKiBidWNr ZXRzID0gTlVMTDsKLSAgYmZkX3ZtYSAqIGNoYWlucyA9IE5VTEw7Ci0gIGJmZF92bWEgbmdudWJ1 Y2tldHMgPSAwOwotICBiZmRfdm1hICogZ251YnVja2V0cyA9IE5VTEw7Ci0gIGJmZF92bWEgKiBn bnVjaGFpbnMgPSBOVUxMOwotICBiZmRfdm1hICogbWlwc3hsYXQgPSBOVUxMOwotICBiZmRfdm1h IGdudXN5bWlkeCA9IDA7Ci0gIGJmZF9zaXplX3R5cGUgbmdudWNoYWlucyA9IDA7Ci0KLSAgaWYg KCFkb19zeW1zICYmICFkb19keW5fc3ltcyAmJiAhZG9faGlzdG9ncmFtKQotICAgIHJldHVybiBU UlVFOworICBjb25zdCBjaGFyICp2ZXJzaW9uX3N0cmluZzsKKyAgZW51bSB2ZXJzaW9uZWRfc3lt Ym9sX2luZm8gc3ltX2luZm87CisgIHVuc2lnbmVkIHNob3J0IHZuYV9vdGhlcjsKKyAgRWxmX0lu dGVybmFsX1N5bSAqcHN5bSA9IHN5bXRhYiArIHNpOwogCi0gIGlmIChkeW5hbWljX2luZm9bRFRf SEFTSF0KLSAgICAgICYmIChkb19oaXN0b2dyYW0KLQkgIHx8IChkb191c2luZ19keW5hbWljCi0J ICAgICAgJiYgIWRvX2R5bl9zeW1zCi0JICAgICAgJiYgZHluYW1pY19zdHJpbmdzICE9IE5VTEwp KSkKKyAgcHJpbnRmICgiJTZsZDogIiwgc2kpOworICBwcmludF92bWEgKHBzeW0tPnN0X3ZhbHVl LCBMT05HX0hFWCk7CisgIHB1dGNoYXIgKCcgJyk7CisgIHByaW50X3ZtYSAocHN5bS0+c3Rfc2l6 ZSwgREVDXzUpOworICBwcmludGYgKCIgJS03cyIsIGdldF9zeW1ib2xfdHlwZSAoZmlsZWRhdGEs IEVMRl9TVF9UWVBFIChwc3ltLT5zdF9pbmZvKSkpOworICBwcmludGYgKCIgJS02cyIsIGdldF9z eW1ib2xfYmluZGluZyAoZmlsZWRhdGEsIEVMRl9TVF9CSU5EIChwc3ltLT5zdF9pbmZvKSkpOwor ICBpZiAoZmlsZWRhdGEtPmZpbGVfaGVhZGVyLmVfaWRlbnRbRUlfT1NBQkldID09IEVMRk9TQUJJ X1NPTEFSSVMpCisgICAgcHJpbnRmICgiICUtN3MiLCAgZ2V0X3NvbGFyaXNfc3ltYm9sX3Zpc2li aWxpdHkgKHBzeW0tPnN0X290aGVyKSk7CisgIGVsc2UKICAgICB7Ci0gICAgICB1bnNpZ25lZCBj aGFyIG5iWzhdOwotICAgICAgdW5zaWduZWQgY2hhciBuY1s4XTsKLSAgICAgIHVuc2lnbmVkIGlu dCBoYXNoX2VudF9zaXplID0gNDsKLQotICAgICAgaWYgKChmaWxlZGF0YS0+ZmlsZV9oZWFkZXIu ZV9tYWNoaW5lID09IEVNX0FMUEhBCi0JICAgfHwgZmlsZWRhdGEtPmZpbGVfaGVhZGVyLmVfbWFj aGluZSA9PSBFTV9TMzkwCi0JICAgfHwgZmlsZWRhdGEtPmZpbGVfaGVhZGVyLmVfbWFjaGluZSA9 PSBFTV9TMzkwX09MRCkKLQkgICYmIGZpbGVkYXRhLT5maWxlX2hlYWRlci5lX2lkZW50W0VJX0NM QVNTXSA9PSBFTEZDTEFTUzY0KQotCWhhc2hfZW50X3NpemUgPSA4OwotCi0gICAgICBpZiAoZnNl ZWsgKGZpbGVkYXRhLT5oYW5kbGUsCi0JCSAoYXJjaGl2ZV9maWxlX29mZnNldAotCQkgICsgb2Zm c2V0X2Zyb21fdm1hIChmaWxlZGF0YSwgZHluYW1pY19pbmZvW0RUX0hBU0hdLAotCQkJCSAgICAg c2l6ZW9mIG5iICsgc2l6ZW9mIG5jKSksCi0JCSBTRUVLX1NFVCkpCi0JewotCSAgZXJyb3IgKF8o IlVuYWJsZSB0byBzZWVrIHRvIHN0YXJ0IG9mIGR5bmFtaWMgaW5mb3JtYXRpb25cbiIpKTsKLQkg IGdvdG8gbm9faGFzaDsKLQl9Ci0KLSAgICAgIGlmIChmcmVhZCAobmIsIGhhc2hfZW50X3NpemUs IDEsIGZpbGVkYXRhLT5oYW5kbGUpICE9IDEpCi0JewotCSAgZXJyb3IgKF8oIkZhaWxlZCB0byBy ZWFkIGluIG51bWJlciBvZiBidWNrZXRzXG4iKSk7Ci0JICBnb3RvIG5vX2hhc2g7Ci0JfQotCi0g ICAgICBpZiAoZnJlYWQgKG5jLCBoYXNoX2VudF9zaXplLCAxLCBmaWxlZGF0YS0+aGFuZGxlKSAh PSAxKQotCXsKLQkgIGVycm9yIChfKCJGYWlsZWQgdG8gcmVhZCBpbiBudW1iZXIgb2YgY2hhaW5z XG4iKSk7Ci0JICBnb3RvIG5vX2hhc2g7Ci0JfQotCi0gICAgICBuYnVja2V0cyA9IGJ5dGVfZ2V0 IChuYiwgaGFzaF9lbnRfc2l6ZSk7Ci0gICAgICBuY2hhaW5zICA9IGJ5dGVfZ2V0IChuYywgaGFz aF9lbnRfc2l6ZSk7Ci0KLSAgICAgIGJ1Y2tldHMgPSBnZXRfZHluYW1pY19kYXRhIChmaWxlZGF0 YSwgbmJ1Y2tldHMsIGhhc2hfZW50X3NpemUpOwotICAgICAgY2hhaW5zICA9IGdldF9keW5hbWlj X2RhdGEgKGZpbGVkYXRhLCBuY2hhaW5zLCBoYXNoX2VudF9zaXplKTsKKyAgICAgIHVuc2lnbmVk IGludCB2aXMgPSBFTEZfU1RfVklTSUJJTElUWSAocHN5bS0+c3Rfb3RoZXIpOwogCi0gICAgICBp ZiAoYnVja2V0cyA9PSBOVUxMIHx8IGNoYWlucyA9PSBOVUxMKQotCXsKLQlub19oYXNoOgotCSAg ZnJlZSAoYnVja2V0cyk7Ci0JICBmcmVlIChjaGFpbnMpOwotCSAgYnVja2V0cyA9IE5VTEw7Ci0J ICBjaGFpbnMgPSBOVUxMOwotCSAgbmJ1Y2tldHMgPSAwOwotCSAgbmNoYWlucyA9IDA7Ci0JICBp ZiAoZG9fdXNpbmdfZHluYW1pYykKLQkgICAgZ290byBlcnJfb3V0OwotCX0KKyAgICAgIHByaW50 ZiAoIiAlLTdzIiwgZ2V0X3N5bWJvbF92aXNpYmlsaXR5ICh2aXMpKTsKKyAgICAgIC8qIENoZWNr IHRvIHNlZSBpZiBhbnkgb3RoZXIgYml0cyBpbiB0aGUgc3Rfb3RoZXIgZmllbGQgYXJlIHNldC4K KwkgTm90ZSAtIGRpc3BsYXlpbmcgdGhpcyBpbmZvcm1hdGlvbiBkaXNydXB0cyB0aGUgbGF5b3V0 IG9mIHRoZQorCSB0YWJsZSBiZWluZyBnZW5lcmF0ZWQsIGJ1dCBmb3IgdGhlIG1vbWVudCB0aGlz IGNhc2UgaXMgdmVyeSByYXJlLiAgKi8KKyAgICAgIGlmIChwc3ltLT5zdF9vdGhlciBeIHZpcykK KwlwcmludGYgKCIgWyVzXSAiLCBnZXRfc3ltYm9sX290aGVyIChmaWxlZGF0YSwgcHN5bS0+c3Rf b3RoZXIgXiB2aXMpKTsKICAgICB9Ci0KLSAgaWYgKGR5bmFtaWNfaW5mb19EVF9HTlVfSEFTSAot ICAgICAgJiYgKGRvX2hpc3RvZ3JhbQotCSAgfHwgKGRvX3VzaW5nX2R5bmFtaWMKLQkgICAgICAm JiAhZG9fZHluX3N5bXMKLQkgICAgICAmJiBkeW5hbWljX3N0cmluZ3MgIT0gTlVMTCkpKQotICAg IHsKLSAgICAgIHVuc2lnbmVkIGNoYXIgbmJbMTZdOwotICAgICAgYmZkX3ZtYSBpLCBtYXhjaGFp biA9IDB4ZmZmZmZmZmYsIGJpdG1hc2t3b3JkczsKLSAgICAgIGJmZF92bWEgYnVja2V0c192bWE7 Ci0KLSAgICAgIGlmIChmc2VlayAoZmlsZWRhdGEtPmhhbmRsZSwKLQkJIChhcmNoaXZlX2ZpbGVf b2Zmc2V0Ci0JCSAgKyBvZmZzZXRfZnJvbV92bWEgKGZpbGVkYXRhLCBkeW5hbWljX2luZm9fRFRf R05VX0hBU0gsCi0JCQkJICAgICBzaXplb2YgbmIpKSwKLQkJIFNFRUtfU0VUKSkKLQl7Ci0JICBl cnJvciAoXygiVW5hYmxlIHRvIHNlZWsgdG8gc3RhcnQgb2YgZHluYW1pYyBpbmZvcm1hdGlvblxu IikpOwotCSAgZ290byBub19nbnVfaGFzaDsKLQl9Ci0KLSAgICAgIGlmIChmcmVhZCAobmIsIDE2 LCAxLCBmaWxlZGF0YS0+aGFuZGxlKSAhPSAxKQotCXsKLQkgIGVycm9yIChfKCJGYWlsZWQgdG8g cmVhZCBpbiBudW1iZXIgb2YgYnVja2V0c1xuIikpOwotCSAgZ290byBub19nbnVfaGFzaDsKLQl9 Ci0KLSAgICAgIG5nbnVidWNrZXRzID0gYnl0ZV9nZXQgKG5iLCA0KTsKLSAgICAgIGdudXN5bWlk eCA9IGJ5dGVfZ2V0IChuYiArIDQsIDQpOwotICAgICAgYml0bWFza3dvcmRzID0gYnl0ZV9nZXQg KG5iICsgOCwgNCk7Ci0gICAgICBidWNrZXRzX3ZtYSA9IGR5bmFtaWNfaW5mb19EVF9HTlVfSEFT SCArIDE2OwotICAgICAgaWYgKGlzXzMyYml0X2VsZikKLQlidWNrZXRzX3ZtYSArPSBiaXRtYXNr d29yZHMgKiA0OworICBwcmludGYgKCIgJTRzICIsIGdldF9zeW1ib2xfaW5kZXhfdHlwZSAoZmls ZWRhdGEsIHBzeW0tPnN0X3NobmR4KSk7CisgIHByaW50X3N5bWJvbCAoMjUsIFZBTElEX1NZTUJP TF9OQU1FIChzdHJ0YWIsIHN0cnRhYl9zaXplLAorCQkJCSAgICAgICBwc3ltLT5zdF9uYW1lKQor CQk/IHN0cnRhYiArIHBzeW0tPnN0X25hbWUgOiBfKCI8Y29ycnVwdD4iKSk7CisKKyAgdmVyc2lv bl9zdHJpbmcKKyAgICA9IGdldF9zeW1ib2xfdmVyc2lvbl9zdHJpbmcgKGZpbGVkYXRhLAorCQkJ CSAoc2VjdGlvbiA9PSBOVUxMCisJCQkJICB8fCBzZWN0aW9uLT5zaF90eXBlID09IFNIVF9EWU5T WU0pLAorCQkJCSBzdHJ0YWIsIHN0cnRhYl9zaXplLCBzaSwKKwkJCQkgcHN5bSwgJnN5bV9pbmZv LCAmdm5hX290aGVyKTsKKyAgaWYgKHZlcnNpb25fc3RyaW5nKQorICAgIHsKKyAgICAgIGlmIChz eW1faW5mbyA9PSBzeW1ib2xfdW5kZWZpbmVkKQorCXByaW50ZiAoIkAlcyAoJWQpIiwgdmVyc2lv bl9zdHJpbmcsIHZuYV9vdGhlcik7CiAgICAgICBlbHNlCi0JYnVja2V0c192bWEgKz0gYml0bWFz a3dvcmRzICogODsKLQotICAgICAgaWYgKGZzZWVrIChmaWxlZGF0YS0+aGFuZGxlLAotCQkgKGFy Y2hpdmVfZmlsZV9vZmZzZXQKLQkJICArIG9mZnNldF9mcm9tX3ZtYSAoZmlsZWRhdGEsIGJ1Y2tl dHNfdm1hLCA0KSksCi0JCSBTRUVLX1NFVCkpCi0JewotCSAgZXJyb3IgKF8oIlVuYWJsZSB0byBz ZWVrIHRvIHN0YXJ0IG9mIGR5bmFtaWMgaW5mb3JtYXRpb25cbiIpKTsKLQkgIGdvdG8gbm9fZ251 X2hhc2g7Ci0JfQotCi0gICAgICBnbnVidWNrZXRzID0gZ2V0X2R5bmFtaWNfZGF0YSAoZmlsZWRh dGEsIG5nbnVidWNrZXRzLCA0KTsKLQotICAgICAgaWYgKGdudWJ1Y2tldHMgPT0gTlVMTCkKLQln b3RvIG5vX2dudV9oYXNoOwotCi0gICAgICBmb3IgKGkgPSAwOyBpIDwgbmdudWJ1Y2tldHM7IGkr KykKLQlpZiAoZ251YnVja2V0c1tpXSAhPSAwKQotCSAgewotCSAgICBpZiAoZ251YnVja2V0c1tp XSA8IGdudXN5bWlkeCkKLQkgICAgICBnb3RvIGVycl9vdXQ7Ci0KLQkgICAgaWYgKG1heGNoYWlu ID09IDB4ZmZmZmZmZmYgfHwgZ251YnVja2V0c1tpXSA+IG1heGNoYWluKQotCSAgICAgIG1heGNo YWluID0gZ251YnVja2V0c1tpXTsKLQkgIH0KLQotICAgICAgaWYgKG1heGNoYWluID09IDB4ZmZm ZmZmZmYpCi0JZ290byBub19nbnVfaGFzaDsKLQotICAgICAgbWF4Y2hhaW4gLT0gZ251c3ltaWR4 OwotCi0gICAgICBpZiAoZnNlZWsgKGZpbGVkYXRhLT5oYW5kbGUsCi0JCSAoYXJjaGl2ZV9maWxl X29mZnNldAotCQkgICsgb2Zmc2V0X2Zyb21fdm1hIChmaWxlZGF0YSwgYnVja2V0c192bWEKLQkJ CQkJICAgKyA0ICogKG5nbnVidWNrZXRzICsgbWF4Y2hhaW4pLCA0KSksCi0JCSBTRUVLX1NFVCkp Ci0JewotCSAgZXJyb3IgKF8oIlVuYWJsZSB0byBzZWVrIHRvIHN0YXJ0IG9mIGR5bmFtaWMgaW5m b3JtYXRpb25cbiIpKTsKLQkgIGdvdG8gbm9fZ251X2hhc2g7Ci0JfQotCi0gICAgICBkbwotCXsK LQkgIGlmIChmcmVhZCAobmIsIDQsIDEsIGZpbGVkYXRhLT5oYW5kbGUpICE9IDEpCi0JICAgIHsK LQkgICAgICBlcnJvciAoXygiRmFpbGVkIHRvIGRldGVybWluZSBsYXN0IGNoYWluIGxlbmd0aFxu IikpOwotCSAgICAgIGdvdG8gbm9fZ251X2hhc2g7Ci0JICAgIH0KLQotCSAgaWYgKG1heGNoYWlu ICsgMSA9PSAwKQotCSAgICBnb3RvIG5vX2dudV9oYXNoOwotCi0JICArK21heGNoYWluOwotCX0K LSAgICAgIHdoaWxlICgoYnl0ZV9nZXQgKG5iLCA0KSAmIDEpID09IDApOwotCi0gICAgICBpZiAo ZnNlZWsgKGZpbGVkYXRhLT5oYW5kbGUsCi0JCSAoYXJjaGl2ZV9maWxlX29mZnNldAotCQkgICsg b2Zmc2V0X2Zyb21fdm1hIChmaWxlZGF0YSwgYnVja2V0c192bWEgKyA0ICogbmdudWJ1Y2tldHMs IDQpKSwKLQkJIFNFRUtfU0VUKSkKLQl7Ci0JICBlcnJvciAoXygiVW5hYmxlIHRvIHNlZWsgdG8g c3RhcnQgb2YgZHluYW1pYyBpbmZvcm1hdGlvblxuIikpOwotCSAgZ290byBub19nbnVfaGFzaDsK LQl9CisJcHJpbnRmIChzeW1faW5mbyA9PSBzeW1ib2xfaGlkZGVuID8gIkAlcyIgOiAiQEAlcyIs CisJCXZlcnNpb25fc3RyaW5nKTsKKyAgICB9CiAKLSAgICAgIGdudWNoYWlucyA9IGdldF9keW5h bWljX2RhdGEgKGZpbGVkYXRhLCBtYXhjaGFpbiwgNCk7Ci0gICAgICBuZ251Y2hhaW5zID0gbWF4 Y2hhaW47CisgIHB1dGNoYXIgKCdcbicpOwogCi0gICAgICBpZiAoZ251Y2hhaW5zID09IE5VTEwp Ci0JZ290byBub19nbnVfaGFzaDsKKyAgaWYgKEVMRl9TVF9CSU5EIChwc3ltLT5zdF9pbmZvKSA9 PSBTVEJfTE9DQUwKKyAgICAgICYmIHNlY3Rpb24gIT0gTlVMTAorICAgICAgJiYgc2kgPj0gc2Vj dGlvbi0+c2hfaW5mbworICAgICAgLyogSXJpeCA1IGFuZCA2IE1JUFMgYmluYXJpZXMgYXJlIGtu b3duIHRvIGlnbm9yZSB0aGlzIHJlcXVpcmVtZW50LiAgKi8KKyAgICAgICYmIGZpbGVkYXRhLT5m aWxlX2hlYWRlci5lX21hY2hpbmUgIT0gRU1fTUlQUworICAgICAgLyogU29sYXJpcyBiaW5hcmll cyBoYXZlIGJlZW4gZm91bmQgdG8gdmlvbGF0ZSB0aGlzIHJlcXVpcmVtZW50IGFzCisJIHdlbGwu ICBOb3Qgc3VyZSBpZiB0aGlzIGlzIGEgYnVnIG9yIGFuIEFCSSByZXF1aXJlbWVudC4gICovCisg ICAgICAmJiBmaWxlZGF0YS0+ZmlsZV9oZWFkZXIuZV9pZGVudFtFSV9PU0FCSV0gIT0gRUxGT1NB QklfU09MQVJJUykKKyAgICB3YXJuIChfKCJsb2NhbCBzeW1ib2wgJWx1IGZvdW5kIGF0IGluZGV4 ID49ICVzJ3Mgc2hfaW5mbyB2YWx1ZSBvZiAldVxuIiksCisJICBzaSwgcHJpbnRhYmxlX3NlY3Rp b25fbmFtZSAoZmlsZWRhdGEsIHNlY3Rpb24pLCBzZWN0aW9uLT5zaF9pbmZvKTsKK30KIAotICAg ICAgaWYgKGR5bmFtaWNfaW5mb19EVF9NSVBTX1hIQVNIKQotCXsKLQkgIGlmIChmc2VlayAoZmls ZWRhdGEtPmhhbmRsZSwKLQkJICAgICAoYXJjaGl2ZV9maWxlX29mZnNldAotCQkgICAgICArIG9m ZnNldF9mcm9tX3ZtYSAoZmlsZWRhdGEsIChidWNrZXRzX3ZtYQotCQkJCQkJICAgICsgNCAqIChu Z251YnVja2V0cwotCQkJCQkJCSAgICsgbWF4Y2hhaW4pKSwgNCkpLAotCQkgICAgIFNFRUtfU0VU KSkKLQkgICAgewotCSAgICAgIGVycm9yIChfKCJVbmFibGUgdG8gc2VlayB0byBzdGFydCBvZiBk eW5hbWljIGluZm9ybWF0aW9uXG4iKSk7Ci0JICAgICAgZ290byBub19nbnVfaGFzaDsKLQkgICAg fQorLyogRHVtcCB0aGUgc3ltYm9sIHRhYmxlLiAgKi8KK3N0YXRpYyBiZmRfYm9vbGVhbgorcHJv Y2Vzc19zeW1ib2xfdGFibGUgKEZpbGVkYXRhICogZmlsZWRhdGEpCit7CisgIEVsZl9JbnRlcm5h bF9TaGRyICogc2VjdGlvbjsKIAotCSAgbWlwc3hsYXQgPSBnZXRfZHluYW1pY19kYXRhIChmaWxl ZGF0YSwgbWF4Y2hhaW4sIDQpOwotCSAgaWYgKG1pcHN4bGF0ID09IE5VTEwpCi0JICAgIHsKLQkg ICAgbm9fZ251X2hhc2g6Ci0JICAgICAgZnJlZSAoZ251Y2hhaW5zKTsKLQkgICAgICBnbnVjaGFp bnMgPSBOVUxMOwotCSAgICAgIGZyZWUgKGdudWJ1Y2tldHMpOwotCSAgICAgIGdudWJ1Y2tldHMg PSBOVUxMOwotCSAgICAgIG5nbnVidWNrZXRzID0gMDsKLQkgICAgICBpZiAoZG9fdXNpbmdfZHlu YW1pYykKLQkJZ290byBlcnJfb3V0OwotCSAgICB9Ci0JfQotICAgIH0KKyAgaWYgKCFkb19zeW1z ICYmICFkb19keW5fc3ltcyAmJiAhZG9faGlzdG9ncmFtKQorICAgIHJldHVybiBUUlVFOwogCiAg IGlmICgoZHluYW1pY19pbmZvW0RUX0hBU0hdIHx8IGR5bmFtaWNfaW5mb19EVF9HTlVfSEFTSCkK ICAgICAgICYmIGRvX3N5bXMKQEAgLTExOTM3LDYzICsxMjAzNSwxOSBAQCBwcm9jZXNzX3N5bWJv bF90YWJsZSAoRmlsZWRhdGEgKiBmaWxlZGF0YSkKICAgICAgICYmIGR5bmFtaWNfc3RyaW5ncyAh PSBOVUxMCiAgICAgICAmJiBkeW5hbWljX3N5bWJvbHMgIT0gTlVMTCkKICAgICB7Ci0gICAgICB1 bnNpZ25lZCBsb25nIGhuOwotCi0gICAgICBpZiAoZHluYW1pY19pbmZvW0RUX0hBU0hdKQotCXsK LQkgIGJmZF92bWEgc2k7Ci0JICBjaGFyICp2aXNpdGVkOwotCi0JICBwcmludGYgKF8oIlxuU3lt Ym9sIHRhYmxlIGZvciBpbWFnZTpcbiIpKTsKLQkgIGlmIChpc18zMmJpdF9lbGYpCi0JICAgIHBy aW50ZiAoXygiICBOdW0gQnVjOiAgICBWYWx1ZSAgU2l6ZSAgIFR5cGUgICBCaW5kIFZpcyAgICAg IE5keCBOYW1lXG4iKSk7Ci0JICBlbHNlCi0JICAgIHByaW50ZiAoXygiICBOdW0gQnVjOiAgICBW YWx1ZSAgICAgICAgICBTaXplICAgVHlwZSAgIEJpbmQgVmlzICAgICAgTmR4IE5hbWVcbiIpKTsK LQotCSAgdmlzaXRlZCA9IHhjbWFsbG9jIChuY2hhaW5zLCAxKTsKLQkgIG1lbXNldCAodmlzaXRl ZCwgMCwgbmNoYWlucyk7Ci0JICBmb3IgKGhuID0gMDsgaG4gPCBuYnVja2V0czsgaG4rKykKLQkg ICAgewotCSAgICAgIGZvciAoc2kgPSBidWNrZXRzW2huXTsgc2kgPiAwOyBzaSA9IGNoYWluc1tz aV0pCi0JCXsKLQkJICBwcmludF9keW5hbWljX3N5bWJvbCAoZmlsZWRhdGEsIHNpLCBobik7Ci0J CSAgaWYgKHNpID49IG5jaGFpbnMgfHwgdmlzaXRlZFtzaV0pCi0JCSAgICB7Ci0JCSAgICAgIGVy cm9yIChfKCJoaXN0b2dyYW0gY2hhaW4gaXMgY29ycnVwdFxuIikpOwotCQkgICAgICBicmVhazsK LQkJICAgIH0KLQkJICB2aXNpdGVkW3NpXSA9IDE7Ci0JCX0KLQkgICAgfQotCSAgZnJlZSAodmlz aXRlZCk7Ci0JfQorICAgICAgdW5zaWduZWQgbG9uZyBzaTsKIAotICAgICAgaWYgKGR5bmFtaWNf aW5mb19EVF9HTlVfSEFTSCkKLQl7Ci0JICBwcmludGYgKF8oIlxuU3ltYm9sIHRhYmxlIG9mIGAl cycgZm9yIGltYWdlOlxuIiksCi0JCSAgR05VX0hBU0hfU0VDVElPTl9OQU1FKTsKLQkgIGlmIChp c18zMmJpdF9lbGYpCi0JICAgIHByaW50ZiAoXygiICBOdW0gQnVjOiAgICBWYWx1ZSAgU2l6ZSAg IFR5cGUgICBCaW5kIFZpcyAgICAgIE5keCBOYW1lXG4iKSk7Ci0JICBlbHNlCi0JICAgIHByaW50 ZiAoXygiICBOdW0gQnVjOiAgICBWYWx1ZSAgICAgICAgICBTaXplICAgVHlwZSAgIEJpbmQgVmlz ICAgICAgTmR4IE5hbWVcbiIpKTsKLQotCSAgZm9yIChobiA9IDA7IGhuIDwgbmdudWJ1Y2tldHM7 ICsraG4pCi0JICAgIGlmIChnbnVidWNrZXRzW2huXSAhPSAwKQotCSAgICAgIHsKLQkJYmZkX3Zt YSBzaSA9IGdudWJ1Y2tldHNbaG5dOwotCQliZmRfdm1hIG9mZiA9IHNpIC0gZ251c3ltaWR4Owor ICAgICAgcHJpbnRmIChuZ2V0dGV4dCAoIlxuU3ltYm9sIHRhYmxlIGZvciBpbWFnZSBjb250YWlu cyAlbHUgZW50cnk6XG4iLAorCQkJIlxuU3ltYm9sIHRhYmxlIGZvciBpbWFnZSBjb250YWlucyAl bHUgZW50cmllczpcbiIsCisJCQludW1fZHluYW1pY19zeW1zKSwgbnVtX2R5bmFtaWNfc3ltcyk7 CisgICAgICBpZiAoaXNfMzJiaXRfZWxmKQorCXByaW50ZiAoXygiICAgTnVtOiAgICBWYWx1ZSAg U2l6ZSBUeXBlICAgIEJpbmQgICBWaXMgICAgICBOZHggTmFtZVxuIikpOworICAgICAgZWxzZQor CXByaW50ZiAoXygiICAgTnVtOiAgICBWYWx1ZSAgICAgICAgICBTaXplIFR5cGUgICAgQmluZCAg IFZpcyAgICAgIE5keCBOYW1lXG4iKSk7CiAKLQkJZG8KLQkJICB7Ci0JCSAgICBpZiAoZHluYW1p Y19pbmZvX0RUX01JUFNfWEhBU0gpCi0JCSAgICAgIHByaW50X2R5bmFtaWNfc3ltYm9sIChmaWxl ZGF0YSwgbWlwc3hsYXRbb2ZmXSwgaG4pOwotCQkgICAgZWxzZQotCQkgICAgICBwcmludF9keW5h bWljX3N5bWJvbCAoZmlsZWRhdGEsIHNpLCBobik7Ci0JCSAgICBzaSsrOwotCQkgIH0KLQkJd2hp bGUgKG9mZiA8IG5nbnVjaGFpbnMgJiYgKGdudWNoYWluc1tvZmYrK10gJiAxKSA9PSAwKTsKLQkg ICAgICB9Ci0JfQorICAgICAgZm9yIChzaSA9IDA7IHNpIDwgbnVtX2R5bmFtaWNfc3ltczsgc2kr KykKKwlwcmludF9keW5hbWljX3N5bWJvbCAoZmlsZWRhdGEsIHNpLCBkeW5hbWljX3N5bWJvbHMs IE5VTEwsCisJCQkgICAgICBkeW5hbWljX3N0cmluZ3MsIGR5bmFtaWNfc3RyaW5nc19sZW5ndGgp OwogICAgIH0KICAgZWxzZSBpZiAoKGRvX2R5bl9zeW1zIHx8IChkb19zeW1zICYmICFkb191c2lu Z19keW5hbWljKSkKIAkgICAmJiBmaWxlZGF0YS0+c2VjdGlvbl9oZWFkZXJzICE9IE5VTEwpCkBA IC0xMjAwNyw3ICsxMjA2MSw2IEBAIHByb2Nlc3Nfc3ltYm9sX3RhYmxlIChGaWxlZGF0YSAqIGZp bGVkYXRhKQogCSAgY2hhciAqIHN0cnRhYiA9IE5VTEw7CiAJICB1bnNpZ25lZCBsb25nIGludCBz dHJ0YWJfc2l6ZSA9IDA7CiAJICBFbGZfSW50ZXJuYWxfU3ltICogc3ltdGFiOwotCSAgRWxmX0lu dGVybmFsX1N5bSAqIHBzeW07CiAJICB1bnNpZ25lZCBsb25nIHNpLCBudW1fc3ltczsKIAogCSAg aWYgKChzZWN0aW9uLT5zaF90eXBlICE9IFNIVF9TWU1UQUIKQEAgLTEyMDU2LDYxICsxMjEwOSw5 IEBAIHByb2Nlc3Nfc3ltYm9sX3RhYmxlIChGaWxlZGF0YSAqIGZpbGVkYXRhKQogCSAgICAgIHN0 cnRhYl9zaXplID0gc3RydGFiICE9IE5VTEwgPyBzdHJpbmdfc2VjLT5zaF9zaXplIDogMDsKIAkg ICAgfQogCi0JICBmb3IgKHNpID0gMCwgcHN5bSA9IHN5bXRhYjsgc2kgPCBudW1fc3ltczsgc2kr KywgcHN5bSsrKQotCSAgICB7Ci0JICAgICAgY29uc3QgY2hhciAqdmVyc2lvbl9zdHJpbmc7Ci0J ICAgICAgZW51bSB2ZXJzaW9uZWRfc3ltYm9sX2luZm8gc3ltX2luZm87Ci0JICAgICAgdW5zaWdu ZWQgc2hvcnQgdm5hX290aGVyOwotCi0JICAgICAgcHJpbnRmICgiJTZsZDogIiwgc2kpOwotCSAg ICAgIHByaW50X3ZtYSAocHN5bS0+c3RfdmFsdWUsIExPTkdfSEVYKTsKLQkgICAgICBwdXRjaGFy ICgnICcpOwotCSAgICAgIHByaW50X3ZtYSAocHN5bS0+c3Rfc2l6ZSwgREVDXzUpOwotCSAgICAg IHByaW50ZiAoIiAlLTdzIiwgZ2V0X3N5bWJvbF90eXBlIChmaWxlZGF0YSwgRUxGX1NUX1RZUEUg KHBzeW0tPnN0X2luZm8pKSk7Ci0JICAgICAgcHJpbnRmICgiICUtNnMiLCBnZXRfc3ltYm9sX2Jp bmRpbmcgKGZpbGVkYXRhLCBFTEZfU1RfQklORCAocHN5bS0+c3RfaW5mbykpKTsKLQkgICAgICBp ZiAoZmlsZWRhdGEtPmZpbGVfaGVhZGVyLmVfaWRlbnRbRUlfT1NBQkldID09IEVMRk9TQUJJX1NP TEFSSVMpCi0JCXByaW50ZiAoIiAlLTdzIiwgIGdldF9zb2xhcmlzX3N5bWJvbF92aXNpYmlsaXR5 IChwc3ltLT5zdF9vdGhlcikpOwotCSAgICAgIGVsc2UKLQkJewotCQkgIHVuc2lnbmVkIGludCB2 aXMgPSBFTEZfU1RfVklTSUJJTElUWSAocHN5bS0+c3Rfb3RoZXIpOwotCi0JCSAgcHJpbnRmICgi ICUtN3MiLCBnZXRfc3ltYm9sX3Zpc2liaWxpdHkgKHZpcykpOwotCQkgIC8qIENoZWNrIHRvIHNl ZSBpZiBhbnkgb3RoZXIgYml0cyBpbiB0aGUgc3Rfb3RoZXIgZmllbGQgYXJlIHNldC4KLQkJICAg ICBOb3RlIC0gZGlzcGxheWluZyB0aGlzIGluZm9ybWF0aW9uIGRpc3J1cHRzIHRoZSBsYXlvdXQg b2YgdGhlCi0JCSAgICAgdGFibGUgYmVpbmcgZ2VuZXJhdGVkLCBidXQgZm9yIHRoZSBtb21lbnQg dGhpcyBjYXNlIGlzIHZlcnkgcmFyZS4gICovCi0JCSAgaWYgKHBzeW0tPnN0X290aGVyIF4gdmlz KQotCQkgICAgcHJpbnRmICgiIFslc10gIiwgZ2V0X3N5bWJvbF9vdGhlciAoZmlsZWRhdGEsIHBz eW0tPnN0X290aGVyIF4gdmlzKSk7Ci0JCX0KLQkgICAgICBwcmludGYgKCIgJTRzICIsIGdldF9z eW1ib2xfaW5kZXhfdHlwZSAoZmlsZWRhdGEsIHBzeW0tPnN0X3NobmR4KSk7Ci0JICAgICAgcHJp bnRfc3ltYm9sICgyNSwgcHN5bS0+c3RfbmFtZSA8IHN0cnRhYl9zaXplCi0JCQkgICAgPyBzdHJ0 YWIgKyBwc3ltLT5zdF9uYW1lIDogXygiPGNvcnJ1cHQ+IikpOwotCi0JICAgICAgdmVyc2lvbl9z dHJpbmcKLQkJPSBnZXRfc3ltYm9sX3ZlcnNpb25fc3RyaW5nIChmaWxlZGF0YSwKLQkJCQkJICAg ICBzZWN0aW9uLT5zaF90eXBlID09IFNIVF9EWU5TWU0sCi0JCQkJCSAgICAgc3RydGFiLCBzdHJ0 YWJfc2l6ZSwgc2ksCi0JCQkJCSAgICAgcHN5bSwgJnN5bV9pbmZvLCAmdm5hX290aGVyKTsKLQkg ICAgICBpZiAodmVyc2lvbl9zdHJpbmcpCi0JCXsKLQkJICBpZiAoc3ltX2luZm8gPT0gc3ltYm9s X3VuZGVmaW5lZCkKLQkJICAgIHByaW50ZiAoIkAlcyAoJWQpIiwgdmVyc2lvbl9zdHJpbmcsIHZu YV9vdGhlcik7Ci0JCSAgZWxzZQotCQkgICAgcHJpbnRmIChzeW1faW5mbyA9PSBzeW1ib2xfaGlk ZGVuID8gIkAlcyIgOiAiQEAlcyIsCi0JCQkgICAgdmVyc2lvbl9zdHJpbmcpOwotCQl9Ci0KLQkg ICAgICBwdXRjaGFyICgnXG4nKTsKLQotCSAgICAgIGlmIChFTEZfU1RfQklORCAocHN5bS0+c3Rf aW5mbykgPT0gU1RCX0xPQ0FMCi0JCSAgJiYgc2kgPj0gc2VjdGlvbi0+c2hfaW5mbwotCQkgIC8q IElyaXggNSBhbmQgNiBNSVBTIGJpbmFyaWVzIGFyZSBrbm93biB0byBpZ25vcmUgdGhpcyByZXF1 aXJlbWVudC4gICovCi0JCSAgJiYgZmlsZWRhdGEtPmZpbGVfaGVhZGVyLmVfbWFjaGluZSAhPSBF TV9NSVBTCi0JCSAgLyogU29sYXJpcyBiaW5hcmllcyBoYXZlIGJlZW4gZm91bmQgdG8gdmlvbGF0 ZSB0aGlzIHJlcXVpcmVtZW50IGFzCi0JCSAgICAgd2VsbC4gIE5vdCBzdXJlIGlmIHRoaXMgaXMg YSBidWcgb3IgYW4gQUJJIHJlcXVpcmVtZW50LiAgKi8KLQkJICAmJiBmaWxlZGF0YS0+ZmlsZV9o ZWFkZXIuZV9pZGVudFtFSV9PU0FCSV0gIT0gRUxGT1NBQklfU09MQVJJUykKLQkJd2FybiAoXygi bG9jYWwgc3ltYm9sICVsdSBmb3VuZCBhdCBpbmRleCA+PSAlcydzIHNoX2luZm8gdmFsdWUgb2Yg JXVcbiIpLAotCQkgICAgICBzaSwgcHJpbnRhYmxlX3NlY3Rpb25fbmFtZSAoZmlsZWRhdGEsIHNl Y3Rpb24pLCBzZWN0aW9uLT5zaF9pbmZvKTsKLQkgICAgfQorCSAgZm9yIChzaSA9IDA7IHNpIDwg bnVtX3N5bXM7IHNpKyspCisJICAgIHByaW50X2R5bmFtaWNfc3ltYm9sIChmaWxlZGF0YSwgc2ks IHN5bXRhYiwgc2VjdGlvbiwKKwkJCQkgIHN0cnRhYiwgc3RydGFiX3NpemUpOwogCiAJICBmcmVl IChzeW10YWIpOwogCSAgaWYgKHN0cnRhYiAhPSBmaWxlZGF0YS0+c3RyaW5nX3RhYmxlKQpkaWZm IC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWFybS9hcm10aHVtYi1saWIuc3ltIGIvbGQvdGVzdHN1 aXRlL2xkLWFybS9hcm10aHVtYi1saWIuc3ltCmluZGV4IDM3MTRlODA4NDcuLjcxMTllMzUxZmMg MTAwNjQ0Ci0tLSBhL2xkL3Rlc3RzdWl0ZS9sZC1hcm0vYXJtdGh1bWItbGliLnN5bQorKysgYi9s ZC90ZXN0c3VpdGUvbGQtYXJtL2FybXRodW1iLWxpYi5zeW0KQEAgLTEsMTUgKzEsMTYgQEAKIAot U3ltYm9sIHRhYmxlIGZvciBpbWFnZToKLSArTnVtICtCdWM6ICtWYWx1ZSArU2l6ZSArVHlwZSAr QmluZCArVmlzICtOZHggK05hbWUKLSArLi4gKy4uOiAuLi4uLi4uLiArMCArTk9UWVBFICtHTE9C QUwgK0RFRkFVTFQgKzkgX2VkYXRhCi0gKy4uICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xP QkFMICtERUZBVUxUICs5IF9fYnNzX3N0YXJ0X18KLSArLi4gKy4uOiAuLi4uLi4uLiArMCArTk9U WVBFICtHTE9CQUwgK0RFRkFVTFQgKzkgX2VuZAotICsuLiArLi46IC4uLi4uLi4uICs0ICtPQkpF Q1QgK0dMT0JBTCArREVGQVVMVCArOSBkYXRhX29iagotICsuLiArLi46IC4uLi4uLi4uICswICtO T1RZUEUgK0dMT0JBTCArREVGQVVMVCArOSBfX2Jzc19lbmRfXwotICsuLiArLi46IC4uLi4uLi4w ICsyMCArRlVOQyArR0xPQkFMICtERUZBVUxUICs2IGxpYl9mdW5jMQotICsuLiArLi46IC4uLi4u Li4uICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArOSBfX2RhdGFfc3RhcnQKLSArLi4gKy4u OiAuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzkgX19lbmRfXwotICsuLiAr Li46IC4uLi4uLi4uICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArOSBfX2Jzc19zdGFydAot ICsuLiArLi46IDAwMDAwMDAwICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArVU5EIGFwcF9m dW5jMgotICsuLiArLi46IC4uLi4uLi5bMDQ4Y10gKzIgK0ZVTkMgK0dMT0JBTCArREVGQVVMVCAr NiBsaWJfZnVuYzIKLSArLi4gKy4uOiAuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFV TFQgKzkgX2Jzc19lbmRfXworU3ltYm9sIHRhYmxlIGZvciBpbWFnZSBjb250YWlucyAxMyBlbnRy aWVzOgorICtOdW06ICtWYWx1ZSArU2l6ZSArVHlwZSArQmluZCArVmlzICtOZHggK05hbWUKKyAr Li46ICswMDAwMDAwMCArMCArTk9UWVBFICtMT0NBTCArREVGQVVMVCArVU5EIAorICsuLjogKy4u Li4uLi4uICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArOSBfYnNzX2VuZF9fCisgKy4uOiAr Li4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICs5IF9fYnNzX3N0YXJ0X18KKyAr Li46ICsuLi4uLi4uWzA0OGNdICsyICtGVU5DICtHTE9CQUwgK0RFRkFVTFQgKzYgbGliX2Z1bmMy CisgKy4uOiArLi4uLi4uLjAgKzIwICtGVU5DICtHTE9CQUwgK0RFRkFVTFQgKzYgbGliX2Z1bmMx CisgKy4uOiArMDAwMDAwMDAgKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICtVTkQgYXBwX2Z1 bmMyCisgKy4uOiArLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICs5IF9fYnNz X2VuZF9fCisgKy4uOiArLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICs5IF9f YnNzX3N0YXJ0CisgKy4uOiArLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICs5 IF9fZW5kX18KKyArLi46ICsuLi4uLi4uLiArNCArT0JKRUNUICtHTE9CQUwgK0RFRkFVTFQgKzkg ZGF0YV9vYmoKKyArLi46ICsuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzkg X2VkYXRhCisgKy4uOiArLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICs5IF9l bmQKKyArLi46ICsuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzkgX19kYXRh X3N0YXJ0CmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUvbGQtYXJtL2ZhcmNhbGwtbWl4ZWQtYXBw LnN5bSBiL2xkL3Rlc3RzdWl0ZS9sZC1hcm0vZmFyY2FsbC1taXhlZC1hcHAuc3ltCmluZGV4IDA5 MzM5N2NmYTYuLmZlYmYxZmVkYWYgMTAwNjQ0Ci0tLSBhL2xkL3Rlc3RzdWl0ZS9sZC1hcm0vZmFy Y2FsbC1taXhlZC1hcHAuc3ltCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1hcm0vZmFyY2FsbC1taXhl ZC1hcHAuc3ltCkBAIC0xLDE1ICsxLDE2IEBACiAKLVN5bWJvbCB0YWJsZSBmb3IgaW1hZ2U6Ci0g K051bSArQnVjOiArVmFsdWUgK1NpemUgK1R5cGUgK0JpbmQgK1ZpcyArTmR4ICtOYW1lCi0gKy4u ICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMSBfZWRhdGEKLSAr Li4gKy4uOiAuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9fYnNzX3N0 YXJ0X18KLSArLi4gKy4uOiAuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEy IF9lbmQKLSArLi4gKy4uOiAuLi4uLi4uLiArNCArT0JKRUNUICtHTE9CQUwgK0RFRkFVTFQgKzEy IGRhdGFfb2JqCi0gKy4uICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxU ICsxMiBfX2Jzc19lbmRfXwotICsuLiArLi46IDAqW14wXSouKiArMCArRlVOQyArR0xPQkFMICtE RUZBVUxUICtVTkQgbGliX2Z1bmMxCi0gKy4uICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xP QkFMICtERUZBVUxUICsxMSBfX2RhdGFfc3RhcnQKLSArLi4gKy4uOiAuLi4uLi4uLiArMCArTk9U WVBFICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9fZW5kX18KLSArLi4gKy4uOiAuLi4uLi4uLiArMCAr Tk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9fYnNzX3N0YXJ0Ci0gKy4uICsuLjogLi4uLi4u LjAgKzAgK0ZVTkMgK0dMT0JBTCArREVGQVVMVCArMTQgYXBwX2Z1bmMyCi0gKy4uICsuLjogMCpb XjBdKi4qICswICtGVU5DICtHTE9CQUwgK0RFRkFVTFQgK1VORCBsaWJfZnVuYzIKLSArLi4gKy4u OiAuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9ic3NfZW5kX18KK1N5 bWJvbCB0YWJsZSBmb3IgaW1hZ2UgY29udGFpbnMgMTMgZW50cmllczoKKyArTnVtOiArVmFsdWUg K1NpemUgK1R5cGUgK0JpbmQgK1ZpcyArTmR4ICtOYW1lCisgKy4uOiArMDAwMDAwMDAgKzAgK05P VFlQRSArTE9DQUwgK0RFRkFVTFQgK1VORCAKKyArLi46ICsuLi4uLi4uLiArMCArTk9UWVBFICtH TE9CQUwgK0RFRkFVTFQgKzEyIF9ic3NfZW5kX18KKyArLi46ICsuLi4uLi4uLiArMCArTk9UWVBF ICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9fYnNzX3N0YXJ0X18KKyArLi46IDAqW14wXSouKiArMCAr RlVOQyArR0xPQkFMICtERUZBVUxUICtVTkQgbGliX2Z1bmMyCisgKy4uOiAwKlteMF0qLiogKzAg K0ZVTkMgK0dMT0JBTCArREVGQVVMVCArVU5EIGxpYl9mdW5jMQorICsuLjogKy4uLi4uLi4wICsw ICtGVU5DICtHTE9CQUwgK0RFRkFVTFQgKzE0IGFwcF9mdW5jMgorICsuLjogKy4uLi4uLi4uICsw ICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArMTIgX19ic3NfZW5kX18KKyArLi46ICsuLi4uLi4u LiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9fYnNzX3N0YXJ0CisgKy4uOiArLi4u Li4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMiBfX2VuZF9fCisgKy4uOiArLi4u Li4uLi4gKzQgK09CSkVDVCArR0xPQkFMICtERUZBVUxUICsxMiBkYXRhX29iagorICsuLjogKy4u Li4uLi4uICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArMTEgX2VkYXRhCisgKy4uOiArLi4u Li4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMiBfZW5kCisgKy4uOiArLi4uLi4u Li4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMSBfX2RhdGFfc3RhcnQKZGlmZiAtLWdp dCBhL2xkL3Rlc3RzdWl0ZS9sZC1hcm0vZmFyY2FsbC1taXhlZC1hcHAyLnN5bSBiL2xkL3Rlc3Rz dWl0ZS9sZC1hcm0vZmFyY2FsbC1taXhlZC1hcHAyLnN5bQppbmRleCAxZDNiZDFkNTM3Li45N2Nj Y2YwZTM1IDEwMDY0NAotLS0gYS9sZC90ZXN0c3VpdGUvbGQtYXJtL2ZhcmNhbGwtbWl4ZWQtYXBw Mi5zeW0KKysrIGIvbGQvdGVzdHN1aXRlL2xkLWFybS9mYXJjYWxsLW1peGVkLWFwcDIuc3ltCkBA IC0xLDE1ICsxLDE2IEBACiAKLVN5bWJvbCB0YWJsZSBmb3IgaW1hZ2U6Ci0gK051bSArQnVjOiAr VmFsdWUgK1NpemUgK1R5cGUgK0JpbmQgK1ZpcyArTmR4ICtOYW1lCi0gKy4uICsuLjogLi4uLi4u Li4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMSBfZWRhdGEKLSArLi4gKy4uOiAuLi4u Li4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9fYnNzX3N0YXJ0X18KLSArLi4g Ky4uOiAuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9lbmQKLSArLi4g Ky4uOiAuLi4uLi4uLiArNCArT0JKRUNUICtHTE9CQUwgK0RFRkFVTFQgKzEyIGRhdGFfb2JqCi0g Ky4uICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMiBfX2Jzc19l bmRfXwotICsuLiArLi46IDAqW14wXSouKiArMCArRlVOQyArR0xPQkFMICtERUZBVUxUICtVTkQg bGliX2Z1bmMxCi0gKy4uICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxU ICsxMSBfX2RhdGFfc3RhcnQKLSArLi4gKy4uOiAuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwg K0RFRkFVTFQgKzEyIF9fZW5kX18KLSArLi4gKy4uOiAuLi4uLi4uLiArMCArTk9UWVBFICtHTE9C QUwgK0RFRkFVTFQgKzEyIF9fYnNzX3N0YXJ0Ci0gKy4uICsuLjogLi4uLi4uLjAgKzAgK0ZVTkMg K0dMT0JBTCArREVGQVVMVCArMTUgYXBwX2Z1bmMyCi0gKy4uICsuLjogMCpbXjBdKi4qICswICtG VU5DICtHTE9CQUwgK0RFRkFVTFQgK1VORCBsaWJfZnVuYzIKLSArLi4gKy4uOiAuLi4uLi4uLiAr MCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9ic3NfZW5kX18KK1N5bWJvbCB0YWJsZSBm b3IgaW1hZ2UgY29udGFpbnMgMTMgZW50cmllczoKKyArTnVtOiArVmFsdWUgK1NpemUgK1R5cGUg K0JpbmQgK1ZpcyArTmR4ICtOYW1lCisgKy4uOiArMDAwMDAwMDAgKzAgK05PVFlQRSArTE9DQUwg K0RFRkFVTFQgK1VORCAKKyArLi46ICsuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFV TFQgKzEyIF9ic3NfZW5kX18KKyArLi46ICsuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RF RkFVTFQgKzEyIF9fYnNzX3N0YXJ0X18KKyArLi46IDAqW14wXSouKiArMCArRlVOQyArR0xPQkFM ICtERUZBVUxUICtVTkQgbGliX2Z1bmMyCisgKy4uOiAwKlteMF0qLiogKzAgK0ZVTkMgK0dMT0JB TCArREVGQVVMVCArVU5EIGxpYl9mdW5jMQorICsuLjogKy4uLi4uLi4wICswICtGVU5DICtHTE9C QUwgK0RFRkFVTFQgKzE1IGFwcF9mdW5jMgorICsuLjogKy4uLi4uLi4uICswICtOT1RZUEUgK0dM T0JBTCArREVGQVVMVCArMTIgX19ic3NfZW5kX18KKyArLi46ICsuLi4uLi4uLiArMCArTk9UWVBF ICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9fYnNzX3N0YXJ0CisgKy4uOiArLi4uLi4uLi4gKzAgK05P VFlQRSArR0xPQkFMICtERUZBVUxUICsxMiBfX2VuZF9fCisgKy4uOiArLi4uLi4uLi4gKzQgK09C SkVDVCArR0xPQkFMICtERUZBVUxUICsxMiBkYXRhX29iagorICsuLjogKy4uLi4uLi4uICswICtO T1RZUEUgK0dMT0JBTCArREVGQVVMVCArMTEgX2VkYXRhCisgKy4uOiArLi4uLi4uLi4gKzAgK05P VFlQRSArR0xPQkFMICtERUZBVUxUICsxMiBfZW5kCisgKy4uOiArLi4uLi4uLi4gKzAgK05PVFlQ RSArR0xPQkFMICtERUZBVUxUICsxMSBfX2RhdGFfc3RhcnQKZGlmZiAtLWdpdCBhL2xkL3Rlc3Rz dWl0ZS9sZC1hcm0vZmRwaWMtbWFpbi1tLnN5bSBiL2xkL3Rlc3RzdWl0ZS9sZC1hcm0vZmRwaWMt bWFpbi1tLnN5bQppbmRleCA5ZWFmNjE3NzYwLi42ZTY1NWQ2N2MxIDEwMDY0NAotLS0gYS9sZC90 ZXN0c3VpdGUvbGQtYXJtL2ZkcGljLW1haW4tbS5zeW0KKysrIGIvbGQvdGVzdHN1aXRlL2xkLWFy bS9mZHBpYy1tYWluLW0uc3ltCkBAIC0xLDE0ICsxLDE1IEBACiAKLVN5bWJvbCB0YWJsZSBmb3Ig aW1hZ2U6Ci0gK051bSArQnVjOiArVmFsdWUgK1NpemUgK1R5cGUgK0JpbmQgK1ZpcyArTmR4ICtO YW1lCi0gKy4uICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMiBf ZWRhdGEKLSArLi4gKy4uOiAuLi4uLi4uLiArMCArRlVOQyArR0xPQkFMICtERUZBVUxUICtVTkQg bXlfc2hhcmVkX2Z1bmMyCi0gKy4uICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtE RUZBVUxUICsxMiBfX2Jzc19zdGFydF9fCi0gKy4uICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSAr R0xPQkFMICtERUZBVUxUICsxMyBfZW5kCi0gKy4uICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSAr R0xPQkFMICtERUZBVUxUICsxMyBfX2Jzc19lbmRfXwotICsuLiArLi46IC4uLi4uLi4uICswICtO T1RZUEUgK0dMT0JBTCArREVGQVVMVCArMTMgX19lbmRfXwotICsuLiArLi46IC4uLi4uLi4uICsw ICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArIDkgX19ST0ZJWFVQX0xJU1RfXwotICsuLiArLi46 IC4uLi4uLi4uICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArMTIgX19ic3Nfc3RhcnQKLSAr Li4gKy4uOiAuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKyA5IF9fUk9GSVhV UF9FTkRfXwotICsuLiArLi46IC4uLi4uLi4uICswICtGVU5DICtHTE9CQUwgK0RFRkFVTFQgK1VO RCBteV9zaGFyZWRfZnVuYzEKLSArLi4gKy4uOiAuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwg K0RFRkFVTFQgKzEzIF9ic3NfZW5kX18KK1N5bWJvbCB0YWJsZSBmb3IgaW1hZ2UgY29udGFpbnMg MTIgZW50cmllczoKKyArTnVtOiArVmFsdWUgK1NpemUgK1R5cGUgK0JpbmQgK1ZpcyArTmR4ICtO YW1lCisgKy4uOiArMDAwMDAwMDAgKzAgK05PVFlQRSArTE9DQUwgK0RFRkFVTFQgK1VORCAKKyAr Li46ICsuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEzIF9ic3NfZW5kX18K KyArLi46ICsuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9fYnNzX3N0 YXJ0X18KKyArLi46ICsuLi4uLi4uLiArMCArRlVOQyArR0xPQkFMICtERUZBVUxUICtVTkQgbXlf c2hhcmVkX2Z1bmMxCisgKy4uOiArLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxU ICsxMyBfX2Jzc19lbmRfXworICsuLjogKy4uLi4uLi4uICswICtOT1RZUEUgK0dMT0JBTCArREVG QVVMVCArOSBfX1JPRklYVVBfRU5EX18KKyArLi46ICsuLi4uLi4uLiArMCArTk9UWVBFICtHTE9C QUwgK0RFRkFVTFQgKzEyIF9fYnNzX3N0YXJ0CisgKy4uOiArLi4uLi4uLi4gKzAgK05PVFlQRSAr R0xPQkFMICtERUZBVUxUICs5IF9fUk9GSVhVUF9MSVNUX18KKyArLi46ICsuLi4uLi4uLiArMCAr Tk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEzIF9fZW5kX18KKyArLi46ICsuLi4uLi4uLiArMCAr RlVOQyArR0xPQkFMICtERUZBVUxUICtVTkQgbXlfc2hhcmVkX2Z1bmMyCisgKy4uOiArLi4uLi4u Li4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMiBfZWRhdGEKKyArLi46ICsuLi4uLi4u LiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEzIF9lbmQKZGlmZiAtLWdpdCBhL2xkL3Rl c3RzdWl0ZS9sZC1hcm0vZmRwaWMtbWFpbi5zeW0gYi9sZC90ZXN0c3VpdGUvbGQtYXJtL2ZkcGlj LW1haW4uc3ltCmluZGV4IDllYWY2MTc3NjAuLjZlNjU1ZDY3YzEgMTAwNjQ0Ci0tLSBhL2xkL3Rl c3RzdWl0ZS9sZC1hcm0vZmRwaWMtbWFpbi5zeW0KKysrIGIvbGQvdGVzdHN1aXRlL2xkLWFybS9m ZHBpYy1tYWluLnN5bQpAQCAtMSwxNCArMSwxNSBAQAogCi1TeW1ib2wgdGFibGUgZm9yIGltYWdl OgotICtOdW0gK0J1YzogK1ZhbHVlICtTaXplICtUeXBlICtCaW5kICtWaXMgK05keCArTmFtZQot ICsuLiArLi46IC4uLi4uLi4uICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArMTIgX2VkYXRh Ci0gKy4uICsuLjogLi4uLi4uLi4gKzAgK0ZVTkMgK0dMT0JBTCArREVGQVVMVCArVU5EIG15X3No YXJlZF9mdW5jMgotICsuLiArLi46IC4uLi4uLi4uICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVM VCArMTIgX19ic3Nfc3RhcnRfXwotICsuLiArLi46IC4uLi4uLi4uICswICtOT1RZUEUgK0dMT0JB TCArREVGQVVMVCArMTMgX2VuZAotICsuLiArLi46IC4uLi4uLi4uICswICtOT1RZUEUgK0dMT0JB TCArREVGQVVMVCArMTMgX19ic3NfZW5kX18KLSArLi4gKy4uOiAuLi4uLi4uLiArMCArTk9UWVBF ICtHTE9CQUwgK0RFRkFVTFQgKzEzIF9fZW5kX18KLSArLi4gKy4uOiAuLi4uLi4uLiArMCArTk9U WVBFICtHTE9CQUwgK0RFRkFVTFQgKyA5IF9fUk9GSVhVUF9MSVNUX18KLSArLi4gKy4uOiAuLi4u Li4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9fYnNzX3N0YXJ0Ci0gKy4uICsu LjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsgOSBfX1JPRklYVVBfRU5E X18KLSArLi4gKy4uOiAuLi4uLi4uLiArMCArRlVOQyArR0xPQkFMICtERUZBVUxUICtVTkQgbXlf c2hhcmVkX2Z1bmMxCi0gKy4uICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZB VUxUICsxMyBfYnNzX2VuZF9fCitTeW1ib2wgdGFibGUgZm9yIGltYWdlIGNvbnRhaW5zIDEyIGVu dHJpZXM6CisgK051bTogK1ZhbHVlICtTaXplICtUeXBlICtCaW5kICtWaXMgK05keCArTmFtZQor ICsuLjogKzAwMDAwMDAwICswICtOT1RZUEUgK0xPQ0FMICtERUZBVUxUICtVTkQgCisgKy4uOiAr Li4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMyBfYnNzX2VuZF9fCisgKy4u OiArLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMiBfX2Jzc19zdGFydF9f CisgKy4uOiArLi4uLi4uLi4gKzAgK0ZVTkMgK0dMT0JBTCArREVGQVVMVCArVU5EIG15X3NoYXJl ZF9mdW5jMQorICsuLjogKy4uLi4uLi4uICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArMTMg X19ic3NfZW5kX18KKyArLi46ICsuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQg KzkgX19ST0ZJWFVQX0VORF9fCisgKy4uOiArLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtE RUZBVUxUICsxMiBfX2Jzc19zdGFydAorICsuLjogKy4uLi4uLi4uICswICtOT1RZUEUgK0dMT0JB TCArREVGQVVMVCArOSBfX1JPRklYVVBfTElTVF9fCisgKy4uOiArLi4uLi4uLi4gKzAgK05PVFlQ RSArR0xPQkFMICtERUZBVUxUICsxMyBfX2VuZF9fCisgKy4uOiArLi4uLi4uLi4gKzAgK0ZVTkMg K0dMT0JBTCArREVGQVVMVCArVU5EIG15X3NoYXJlZF9mdW5jMgorICsuLjogKy4uLi4uLi4uICsw ICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArMTIgX2VkYXRhCisgKy4uOiArLi4uLi4uLi4gKzAg K05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMyBfZW5kCmRpZmYgLS1naXQgYS9sZC90ZXN0c3Vp dGUvbGQtYXJtL2ZkcGljLXNoYXJlZC1tLnN5bSBiL2xkL3Rlc3RzdWl0ZS9sZC1hcm0vZmRwaWMt c2hhcmVkLW0uc3ltCmluZGV4IDE0NzUzNzAyZGMuLjgwMWVhYTc3OWEgMTAwNjQ0Ci0tLSBhL2xk L3Rlc3RzdWl0ZS9sZC1hcm0vZmRwaWMtc2hhcmVkLW0uc3ltCisrKyBiL2xkL3Rlc3RzdWl0ZS9s ZC1hcm0vZmRwaWMtc2hhcmVkLW0uc3ltCkBAIC0xLDE1ICsxLDE2IEBACiAKLVN5bWJvbCB0YWJs ZSBmb3IgaW1hZ2U6Ci0gK051bSArQnVjOiArVmFsdWUgK1NpemUgK1R5cGUgK0JpbmQgK1ZpcyAr TmR4ICtOYW1lCi0gKy4uICsuLjogLi4uLi4uLi4gICAgKzAgK05PVFlQRSAgK0dMT0JBTCArREVG QVVMVCAgKzkgX2VkYXRhCi0gKy4uICsuLjogLi4uLi4uLi4gICArMTIgK0ZVTkMgICAgK0dMT0JB TCArREVGQVVMVCAgKzYgbXlfc2hhcmVkX2Z1bmMyCi0gKy4uICsuLjogLi4uLi4uLi4gICAgKzAg K05PVFlQRSAgK0dMT0JBTCArREVGQVVMVCAgKzkgX19ic3Nfc3RhcnRfXwotICsuLiArLi46IC4u Li4uLi4uICAgICswICtOT1RZUEUgICtHTE9CQUwgK0RFRkFVTFQgICs5IF9lbmQKLSArLi4gKy4u OiAuLi4uLi4uLiAgICArNiArRlVOQyAgICArR0xPQkFMICtERUZBVUxUICArNiBteV9zaGFyZWRf ZnVuYzMKLSArLi4gKy4uOiAuLi4uLi4uLiAgICArMCArTk9UWVBFICArR0xPQkFMICtERUZBVUxU ICArOSBfX2Jzc19lbmRfXwotICsuLiArLi46IC4uLi4uLi4uICAgICswICtOT1RZUEUgICtHTE9C QUwgK0RFRkFVTFQgICs5IF9fZW5kX18KLSArLi4gKy4uOiAuLi4uLi4uLiAgICArMCArTk9UWVBF ICArR0xPQkFMICtERUZBVUxUICArNyBfX1JPRklYVVBfTElTVF9fCi0gKy4uICsuLjogLi4uLi4u Li4gICAgKzAgK05PVFlQRSAgK0dMT0JBTCArREVGQVVMVCAgKzkgX19ic3Nfc3RhcnQKLSArLi4g Ky4uOiAuLi4uLi4uLiAgICArMCArTk9UWVBFICArR0xPQkFMICtERUZBVUxUICArNyBfX1JPRklY VVBfRU5EX18KLSArLi4gKy4uOiAuLi4uLi4uLiAgICArMiArRlVOQyAgICArR0xPQkFMICtERUZB VUxUICArNiBteV9zaGFyZWRfZnVuYzEKLSArLi4gKy4uOiAuLi4uLi4uLiAgICArMCArTk9UWVBF ICArR0xPQkFMICtERUZBVUxUICArOSBfYnNzX2VuZF9fCitTeW1ib2wgdGFibGUgZm9yIGltYWdl IGNvbnRhaW5zIDEzIGVudHJpZXM6CisgK051bTogK1ZhbHVlICtTaXplICtUeXBlICtCaW5kICtW aXMgK05keCArTmFtZQorICsuLjogKzAwMDAwMDAwICswICtOT1RZUEUgK0xPQ0FMICtERUZBVUxU ICtVTkQgCisgKy4uOiArLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICs5IF9i c3NfZW5kX18KKyArLi46ICsuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzkg X19ic3Nfc3RhcnRfXworICsuLjogKy4uLi4uLi4uICsyICtGVU5DICtHTE9CQUwgK0RFRkFVTFQg KzYgbXlfc2hhcmVkX2Z1bmMxCisgKy4uOiArLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtE RUZBVUxUICs5IF9fYnNzX2VuZF9fCisgKy4uOiArLi4uLi4uLi4gKzYgK0ZVTkMgK0dMT0JBTCAr REVGQVVMVCArNiBteV9zaGFyZWRfZnVuYzMKKyArLi46ICsuLi4uLi4uLiArMCArTk9UWVBFICtH TE9CQUwgK0RFRkFVTFQgKzcgX19ST0ZJWFVQX0VORF9fCisgKy4uOiArLi4uLi4uLi4gKzAgK05P VFlQRSArR0xPQkFMICtERUZBVUxUICs5IF9fYnNzX3N0YXJ0CisgKy4uOiArLi4uLi4uLi4gKzAg K05PVFlQRSArR0xPQkFMICtERUZBVUxUICs3IF9fUk9GSVhVUF9MSVNUX18KKyArLi46ICsuLi4u Li4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzkgX19lbmRfXworICsuLjogKy4uLi4u Li4uICsxMiArRlVOQyArR0xPQkFMICtERUZBVUxUICs2IG15X3NoYXJlZF9mdW5jMgorICsuLjog Ky4uLi4uLi4uICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArOSBfZWRhdGEKKyArLi46ICsu Li4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzkgX2VuZApkaWZmIC0tZ2l0IGEv bGQvdGVzdHN1aXRlL2xkLWFybS9mZHBpYy1zaGFyZWQuc3ltIGIvbGQvdGVzdHN1aXRlL2xkLWFy bS9mZHBpYy1zaGFyZWQuc3ltCmluZGV4IDI5MzhiMzZiNWYuLmUxMWZiZGQ2YjAgMTAwNjQ0Ci0t LSBhL2xkL3Rlc3RzdWl0ZS9sZC1hcm0vZmRwaWMtc2hhcmVkLnN5bQorKysgYi9sZC90ZXN0c3Vp dGUvbGQtYXJtL2ZkcGljLXNoYXJlZC5zeW0KQEAgLTEsMTUgKzEsMTYgQEAKIAotU3ltYm9sIHRh YmxlIGZvciBpbWFnZToKLSArTnVtICtCdWM6ICtWYWx1ZSArU2l6ZSArVHlwZSArQmluZCArVmlz ICtOZHggK05hbWUKLSArLi4gKy4uOiAuLi4uLi4uLiAgICArMCArTk9UWVBFICArR0xPQkFMICtE RUZBVUxUICArOSBfZWRhdGEKLSArLi4gKy4uOiAuLi4uLi4uLiAgICsyMCArRlVOQyAgICArR0xP QkFMICtERUZBVUxUICArNiBteV9zaGFyZWRfZnVuYzIKLSArLi4gKy4uOiAuLi4uLi4uLiAgICAr MCArTk9UWVBFICArR0xPQkFMICtERUZBVUxUICArOSBfX2Jzc19zdGFydF9fCi0gKy4uICsuLjog Li4uLi4uLi4gICAgKzAgK05PVFlQRSAgK0dMT0JBTCArREVGQVVMVCAgKzkgX2VuZAotICsuLiAr Li46IC4uLi4uLi4uICAgICs4ICtGVU5DICAgICtHTE9CQUwgK0RFRkFVTFQgICs2IG15X3NoYXJl ZF9mdW5jMwotICsuLiArLi46IC4uLi4uLi4uICAgICswICtOT1RZUEUgICtHTE9CQUwgK0RFRkFV TFQgICs5IF9fYnNzX2VuZF9fCi0gKy4uICsuLjogLi4uLi4uLi4gICAgKzAgK05PVFlQRSAgK0dM T0JBTCArREVGQVVMVCAgKzkgX19lbmRfXwotICsuLiArLi46IC4uLi4uLi4uICAgICswICtOT1RZ UEUgICtHTE9CQUwgK0RFRkFVTFQgICs3IF9fUk9GSVhVUF9MSVNUX18KLSArLi4gKy4uOiAuLi4u Li4uLiAgICArMCArTk9UWVBFICArR0xPQkFMICtERUZBVUxUICArOSBfX2Jzc19zdGFydAotICsu LiArLi46IC4uLi4uLi4uICAgICswICtOT1RZUEUgICtHTE9CQUwgK0RFRkFVTFQgICs3IF9fUk9G SVhVUF9FTkRfXwotICsuLiArLi46IC4uLi4uLi4uICAgICs0ICtGVU5DICAgICtHTE9CQUwgK0RF RkFVTFQgICs2IG15X3NoYXJlZF9mdW5jMQotICsuLiArLi46IC4uLi4uLi4uICAgICswICtOT1RZ UEUgICtHTE9CQUwgK0RFRkFVTFQgICs5IF9ic3NfZW5kX18KK1N5bWJvbCB0YWJsZSBmb3IgaW1h Z2UgY29udGFpbnMgMTMgZW50cmllczoKKyArTnVtOiArVmFsdWUgK1NpemUgK1R5cGUgK0JpbmQg K1ZpcyArTmR4ICtOYW1lCisgKy4uOiArMDAwMDAwMDAgKzAgK05PVFlQRSArTE9DQUwgK0RFRkFV TFQgK1VORCAKKyArLi46ICsuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzkg X2Jzc19lbmRfXworICsuLjogKy4uLi4uLi4uICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCAr OSBfX2Jzc19zdGFydF9fCisgKy4uOiArLi4uLi4uLi4gKzQgK0ZVTkMgK0dMT0JBTCArREVGQVVM VCArNiBteV9zaGFyZWRfZnVuYzEKKyArLi46ICsuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwg K0RFRkFVTFQgKzkgX19ic3NfZW5kX18KKyArLi46ICsuLi4uLi4uLiArOCArRlVOQyArR0xPQkFM ICtERUZBVUxUICs2IG15X3NoYXJlZF9mdW5jMworICsuLjogKy4uLi4uLi4uICswICtOT1RZUEUg K0dMT0JBTCArREVGQVVMVCArNyBfX1JPRklYVVBfRU5EX18KKyArLi46ICsuLi4uLi4uLiArMCAr Tk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzkgX19ic3Nfc3RhcnQKKyArLi46ICsuLi4uLi4uLiAr MCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzcgX19ST0ZJWFVQX0xJU1RfXworICsuLjogKy4u Li4uLi4uICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArOSBfX2VuZF9fCisgKy4uOiArLi4u Li4uLi4gKzIwICtGVU5DICtHTE9CQUwgK0RFRkFVTFQgKzYgbXlfc2hhcmVkX2Z1bmMyCisgKy4u OiArLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICs5IF9lZGF0YQorICsuLjog Ky4uLi4uLi4uICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArOSBfZW5kCmRpZmYgLS1naXQg YS9sZC90ZXN0c3VpdGUvbGQtYXJtL21peGVkLWFwcC5zeW0gYi9sZC90ZXN0c3VpdGUvbGQtYXJt L21peGVkLWFwcC5zeW0KaW5kZXggY2ZhMzVmNWMzMC4uYzI0OWY0ZDc3NiAxMDA2NDQKLS0tIGEv bGQvdGVzdHN1aXRlL2xkLWFybS9taXhlZC1hcHAuc3ltCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1h cm0vbWl4ZWQtYXBwLnN5bQpAQCAtMSwxNSArMSwxNiBAQAogCi1TeW1ib2wgdGFibGUgZm9yIGlt YWdlOgotICtOdW0gK0J1YzogK1ZhbHVlICtTaXplICtUeXBlICtCaW5kICtWaXMgK05keCArTmFt ZQotICsuLiArLi46IC4uLi4uLi4uICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArMTEgX2Vk YXRhCi0gKy4uICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMiBf X2Jzc19zdGFydF9fCi0gKy4uICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZB VUxUICsxMiBfZW5kCi0gKy4uICsuLjogLi4uLi4uLi4gKzQgK09CSkVDVCArR0xPQkFMICtERUZB VUxUICsxMiBkYXRhX29iagotICsuLiArLi46IC4uLi4uLi4uICswICtOT1RZUEUgK0dMT0JBTCAr REVGQVVMVCArMTIgX19ic3NfZW5kX18KLSArLi4gKy4uOiAwKlteMF0qLiogKzAgK0ZVTkMgK0dM T0JBTCArREVGQVVMVCArVU5EIGxpYl9mdW5jMQotICsuLiArLi46IC4uLi4uLi4uICswICtOT1RZ UEUgK0dMT0JBTCArREVGQVVMVCArMTEgX19kYXRhX3N0YXJ0Ci0gKy4uICsuLjogLi4uLi4uLi4g KzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMiBfX2VuZF9fCi0gKy4uICsuLjogLi4uLi4u Li4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMiBfX2Jzc19zdGFydAotICsuLiArLi46 IC4uLi4uLi4wICswICtGVU5DICtHTE9CQUwgK0RFRkFVTFQgKzggYXBwX2Z1bmMyCi0gKy4uICsu LjogMCpbXjBdKi4qICswICtGVU5DICtHTE9CQUwgK0RFRkFVTFQgK1VORCBsaWJfZnVuYzIKLSAr Li4gKy4uOiAuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9ic3NfZW5k X18KK1N5bWJvbCB0YWJsZSBmb3IgaW1hZ2UgY29udGFpbnMgMTMgZW50cmllczoKKyArTnVtOiAr VmFsdWUgK1NpemUgK1R5cGUgK0JpbmQgK1ZpcyArTmR4ICtOYW1lCisgKy4uOiArMDAwMDAwMDAg KzAgK05PVFlQRSArTE9DQUwgK0RFRkFVTFQgK1VORCAKKyArLi46ICsuLi4uLi4uLiArMCArTk9U WVBFICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9ic3NfZW5kX18KKyArLi46ICsuLi4uLi4uLiArMCAr Tk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9fYnNzX3N0YXJ0X18KKyArLi46IDAqW14wXSou KiArMCArRlVOQyArR0xPQkFMICtERUZBVUxUICtVTkQgbGliX2Z1bmMyCisgKy4uOiAwKlteMF0q LiogKzAgK0ZVTkMgK0dMT0JBTCArREVGQVVMVCArVU5EIGxpYl9mdW5jMQorICsuLjogKy4uLi4u Li4wICswICtGVU5DICtHTE9CQUwgK0RFRkFVTFQgKzggYXBwX2Z1bmMyCisgKy4uOiArLi4uLi4u Li4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMiBfX2Jzc19lbmRfXworICsuLjogKy4u Li4uLi4uICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArMTIgX19ic3Nfc3RhcnQKKyArLi46 ICsuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9fZW5kX18KKyArLi46 ICsuLi4uLi4uLiArNCArT0JKRUNUICtHTE9CQUwgK0RFRkFVTFQgKzEyIGRhdGFfb2JqCisgKy4u OiArLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMSBfZWRhdGEKKyArLi46 ICsuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEyIF9lbmQKKyArLi46ICsu Li4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzExIF9fZGF0YV9zdGFydApkaWZm IC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWFybS9taXhlZC1saWIuc3ltIGIvbGQvdGVzdHN1aXRl L2xkLWFybS9taXhlZC1saWIuc3ltCmluZGV4IGY1YjE2ZGNiMzAuLmYxNGFlZWQ1MDEgMTAwNjQ0 Ci0tLSBhL2xkL3Rlc3RzdWl0ZS9sZC1hcm0vbWl4ZWQtbGliLnN5bQorKysgYi9sZC90ZXN0c3Vp dGUvbGQtYXJtL21peGVkLWxpYi5zeW0KQEAgLTEsMTUgKzEsMTYgQEAKIAotU3ltYm9sIHRhYmxl IGZvciBpbWFnZToKLSArTnVtICtCdWM6ICtWYWx1ZSArU2l6ZSArVHlwZSArQmluZCArVmlzICtO ZHggK05hbWUKLSArLi4gKy4uOiAuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQg KzkgX2VkYXRhCi0gKy4uICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxU ICs5IF9fYnNzX3N0YXJ0X18KLSArLi4gKy4uOiAuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwg K0RFRkFVTFQgKzkgX2VuZAotICsuLiArLi46IC4uLi4uLi4uICs0ICtPQkpFQ1QgK0dMT0JBTCAr REVGQVVMVCArOSBkYXRhX29iagotICsuLiArLi46IC4uLi4uLi4uICswICtOT1RZUEUgK0dMT0JB TCArREVGQVVMVCArOSBfX2Jzc19lbmRfXwotICsuLiArLi46IC4uLi4uLi4wICsyMCArRlVOQyAr R0xPQkFMICtERUZBVUxUICs2IGxpYl9mdW5jMQotICsuLiArLi46IC4uLi4uLi4uICswICtOT1RZ UEUgK0dMT0JBTCArREVGQVVMVCArOSBfX2RhdGFfc3RhcnQKLSArLi4gKy4uOiAuLi4uLi4uLiAr MCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzkgX19lbmRfXwotICsuLiArLi46IC4uLi4uLi4u ICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArOSBfX2Jzc19zdGFydAotICsuLiArLi46IDAw MDAwMDAwICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArVU5EIGFwcF9mdW5jMgotICsuLiAr Li46IC4uLi4uLi4xICsyICtGVU5DICtHTE9CQUwgK0RFRkFVTFQgKzYgbGliX2Z1bmMyCi0gKy4u ICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICs5IF9ic3NfZW5kX18K K1N5bWJvbCB0YWJsZSBmb3IgaW1hZ2UgY29udGFpbnMgMTMgZW50cmllczoKKyArTnVtOiArVmFs dWUgK1NpemUgK1R5cGUgK0JpbmQgK1ZpcyArTmR4ICtOYW1lCisgKy4uOiArMDAwMDAwMDAgKzAg K05PVFlQRSArTE9DQUwgK0RFRkFVTFQgK1VORCAKKyArLi46ICsuLi4uLi4uLiArMCArTk9UWVBF ICtHTE9CQUwgK0RFRkFVTFQgKzkgX2Jzc19lbmRfXworICsuLjogKy4uLi4uLi4uICswICtOT1RZ UEUgK0dMT0JBTCArREVGQVVMVCArOSBfX2Jzc19zdGFydF9fCisgKy4uOiArLi4uLi4uLjEgKzIg K0ZVTkMgK0dMT0JBTCArREVGQVVMVCArNiBsaWJfZnVuYzIKKyArLi46ICsuLi4uLi4uMCArMjAg K0ZVTkMgK0dMT0JBTCArREVGQVVMVCArNiBsaWJfZnVuYzEKKyArLi46ICswMDAwMDAwMCArMCAr Tk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgK1VORCBhcHBfZnVuYzIKKyArLi46ICsuLi4uLi4uLiAr MCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzkgX19ic3NfZW5kX18KKyArLi46ICsuLi4uLi4u LiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzkgX19ic3Nfc3RhcnQKKyArLi46ICsuLi4u Li4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzkgX19lbmRfXworICsuLjogKy4uLi4u Li4uICs0ICtPQkpFQ1QgK0dMT0JBTCArREVGQVVMVCArOSBkYXRhX29iagorICsuLjogKy4uLi4u Li4uICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArOSBfZWRhdGEKKyArLi46ICsuLi4uLi4u LiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzkgX2VuZAorICsuLjogKy4uLi4uLi4uICsw ICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArOSBfX2RhdGFfc3RhcnQKZGlmZiAtLWdpdCBhL2xk L3Rlc3RzdWl0ZS9sZC1hcm0vcHJlZW1wdC1hcHAuc3ltIGIvbGQvdGVzdHN1aXRlL2xkLWFybS9w cmVlbXB0LWFwcC5zeW0KaW5kZXggZWMxZDZiZWFiYi4uMzFjMDFjYzg5NyAxMDA2NDQKLS0tIGEv bGQvdGVzdHN1aXRlL2xkLWFybS9wcmVlbXB0LWFwcC5zeW0KKysrIGIvbGQvdGVzdHN1aXRlL2xk LWFybS9wcmVlbXB0LWFwcC5zeW0KQEAgLTEsMTQgKzEsMTUgQEAKIAotU3ltYm9sIHRhYmxlIGZv ciBpbWFnZToKLSArTnVtICtCdWM6ICtWYWx1ZSArU2l6ZSArVHlwZSArQmluZCArVmlzICtOZHgg K05hbWUKLSArLi4gKy4uOiAuLi4uLi4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzkg X2VkYXRhCi0gKy4uICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsx MCBfX2Jzc19zdGFydF9fCi0gKy4uICsuLjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtE RUZBVUxUICsxMCBfZW5kCi0gKy4uICsuLjogLi4uLi4uLi4gKzQgK09CSkVDVCArR0xPQkFMICtE RUZBVUxUICsxMCBkYXRhX29iagotICsuLiArLi46IC4uLi4uLi4uICswICtOT1RZUEUgK0dMT0JB TCArREVGQVVMVCArMTAgX19ic3NfZW5kX18KLSArLi4gKy4uOiAuLi4uLi4uMSArMjAgK0ZVTkMg K0dMT0JBTCArREVGQVVMVCArNiBsaWJfZnVuYzEKLSArLi4gKy4uOiAuLi4uLi4uLiArMCArTk9U WVBFICtHTE9CQUwgK0RFRkFVTFQgKzkgX19kYXRhX3N0YXJ0Ci0gKy4uICsuLjogLi4uLi4uLi4g KzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMCBfX2VuZF9fCi0gKy4uICsuLjogLi4uLi4u Li4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMCBfX2Jzc19zdGFydAotICsuLiArLi46 IC4uLi4uLi4wICswICtGVU5DICtHTE9CQUwgK0RFRkFVTFQgKzYgYXBwX2Z1bmMyCi0gKy4uICsu LjogLi4uLi4uLi4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMCBfYnNzX2VuZF9fCitT eW1ib2wgdGFibGUgZm9yIGltYWdlIGNvbnRhaW5zIDEyIGVudHJpZXM6CisgK051bTogK1ZhbHVl ICtTaXplICtUeXBlICtCaW5kICtWaXMgK05keCArTmFtZQorICsuLjogKzAwMDAwMDAwICswICtO T1RZUEUgK0xPQ0FMICtERUZBVUxUICtVTkQgCisgKy4uOiArLi4uLi4uLi4gKzAgK05PVFlQRSAr R0xPQkFMICtERUZBVUxUICsxMCBfYnNzX2VuZF9fCisgKy4uOiArLi4uLi4uLi4gKzAgK05PVFlQ RSArR0xPQkFMICtERUZBVUxUICsxMCBfX2Jzc19zdGFydF9fCisgKy4uOiArLi4uLi4uLjEgKzIw ICtGVU5DICtHTE9CQUwgK0RFRkFVTFQgKzYgbGliX2Z1bmMxCisgKy4uOiArLi4uLi4uLjAgKzAg K0ZVTkMgK0dMT0JBTCArREVGQVVMVCArNiBhcHBfZnVuYzIKKyArLi46ICsuLi4uLi4uLiArMCAr Tk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzEwIF9fYnNzX2VuZF9fCisgKy4uOiArLi4uLi4uLi4g KzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMCBfX2Jzc19zdGFydAorICsuLjogKy4uLi4u Li4uICswICtOT1RZUEUgK0dMT0JBTCArREVGQVVMVCArMTAgX19lbmRfXworICsuLjogKy4uLi4u Li4uICs0ICtPQkpFQ1QgK0dMT0JBTCArREVGQVVMVCArMTAgZGF0YV9vYmoKKyArLi46ICsuLi4u Li4uLiArMCArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgKzkgX2VkYXRhCisgKy4uOiArLi4uLi4u Li4gKzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICsxMCBfZW5kCisgKy4uOiArLi4uLi4uLi4g KzAgK05PVFlQRSArR0xPQkFMICtERUZBVUxUICs5IF9fZGF0YV9zdGFydApkaWZmIC0tZ2l0IGEv bGQvdGVzdHN1aXRlL2xkLWVsZi9oYXNoLmQgYi9sZC90ZXN0c3VpdGUvbGQtZWxmL2hhc2guZApp bmRleCBkMjFjMWM5MjM5Li42MWQ4NGU0NGE2IDEwMDY0NAotLS0gYS9sZC90ZXN0c3VpdGUvbGQt ZWxmL2hhc2guZAorKysgYi9sZC90ZXN0c3VpdGUvbGQtZWxmL2hhc2guZApAQCAtMTAsMTEgKzEw LDExIEBACiAjLi4uCiAgKzB4WzAtOWEtel0rICtcKEdOVV9IQVNIXCkgKzB4WzAtOWEtel0rCiAj Li4uCi0gK1swLTldKyArWzAtOV0rOiArWzAtOWEtZl0rICtbMC05XSsgK05PVFlQRSArR0xPQkFM ICtERUZBVUxUICtbMS05XSBfc3RhcnQKKyArWzAtOV0rOiArWzAtOWEtZl0rICtbMC05XSsgK05P VFlQRSArR0xPQkFMICtERUZBVUxUICtbMS05XSBfc3RhcnQKICMuLi4KLSArWzAtOV0rICtbMC05 XSs6ICtbMC05YS1mXSsgK1swLTldKyArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgK1sxLTldIG1h aW4KKyArWzAtOV0rOiArWzAtOWEtZl0rICtbMC05XSsgK05PVFlQRSArR0xPQkFMICtERUZBVUxU ICtbMS05XSBtYWluCiAjLi4uCi0gK1swLTldKyArWzAtOV0rOiArWzAtOWEtZl0rICtbMC05XSsg K05PVFlQRSArR0xPQkFMICtERUZBVUxUICtbMS05XSBzdGFydAorICtbMC05XSs6ICtbMC05YS1m XSsgK1swLTldKyArTk9UWVBFICtHTE9CQUwgK0RFRkFVTFQgK1sxLTldIHN0YXJ0CiAjLi4uCi0g K1swLTldKyArWzAtOV0rOiArWzAtOWEtZl0rICtbMC05XSsgK05PVFlQRSArR0xPQkFMICtERUZB VUxUICtbMS05XSBfX3N0YXJ0CisgK1swLTldKzogK1swLTlhLWZdKyArWzAtOV0rICtOT1RZUEUg K0dMT0JBTCArREVGQVVMVCArWzEtOV0gX19zdGFydAogIy4uLgpkaWZmIC0tZ2l0IGEvbGQvdGVz dHN1aXRlL2xkLWVsZi9wcjEzMTk1LmQgYi9sZC90ZXN0c3VpdGUvbGQtZWxmL3ByMTMxOTUuZApp bmRleCA0ZTU4OTI5ZTVhLi5jMjJkZTBlNmNlIDEwMDY0NAotLS0gYS9sZC90ZXN0c3VpdGUvbGQt ZWxmL3ByMTMxOTUuZAorKysgYi9sZC90ZXN0c3VpdGUvbGQtZWxmL3ByMTMxOTUuZApAQCAtNSw1 ICs1LDUgQEAKICMgZ2VuZXJpYyBsaW5rZXIgdGFyZ2V0cyBkb24ndCBzdXBwb3J0IC0tZ2Mtc2Vj dGlvbnMsIG5vciBkbyBhIGJ1bmNoIG9mIG90aGVycwogCiAjLi4uCi0gK1swLTldKyArWzAtOV0r OiArWzAtOWEtZl0rICtbMC05XSsgK0ZVTkMgK0dMT0JBTCArREVGQVVMVCArWzEtOV0rIGZvbwor ICtbMC05XSs6ICtbMC05YS1mXSsgK1swLTldKyArRlVOQyArR0xPQkFMICtERUZBVUxUICtbMS05 XSsgZm9vQEBWRVJTXzIuMAogI3Bhc3MKZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1lbGZ2 c2IvaGlkZGVuMi5kIGIvbGQvdGVzdHN1aXRlL2xkLWVsZnZzYi9oaWRkZW4yLmQKaW5kZXggNzJh NDJkNTdiYy4uNWQyOTk3NDZmNSAxMDA2NDQKLS0tIGEvbGQvdGVzdHN1aXRlL2xkLWVsZnZzYi9o aWRkZW4yLmQKKysrIGIvbGQvdGVzdHN1aXRlL2xkLWVsZnZzYi9oaWRkZW4yLmQKQEAgLTMsNyAr Myw3IEBACiAjcmVhZGVsZjogLURzCiAjIEl0IGlzIGFsc28gb2sgdG8gcmVtb3ZlIHRoaXMgc3lt Ym9sLCBidXQgd2UgY3VycmVudGx5IG1ha2UgaXQgbG9jYWwuCiAKLVN5bWJvbCB0YWJsZSBmb3Ig aW1hZ2U6CitTeW1ib2wgdGFibGUgZm9yIGltYWdlIGNvbnRhaW5zIFswLTldKyBlbnRyaWVzOgog Iy4uLgotWyAJXSpbMC05XSsgK1swLTldKzogWzAtOWEtZkEtRl0qICswICtPQkpFQ1QgK0xPQ0FM ICtERUZBVUxUIC4qIGZvbworWyAJXSpbMC05XSs6IFswLTlhLWZBLUZdKiArMCArT0JKRUNUICtM T0NBTCArREVGQVVMVCAuKiBmb28KICNwYXNzCmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUvbGQt bWlwcy1lbGYvaGFzaDIuZCBiL2xkL3Rlc3RzdWl0ZS9sZC1taXBzLWVsZi9oYXNoMi5kCmluZGV4 IDEyMmVkYjgwZTEuLmFlYzQ4ZTEwNmMgMTAwNjQ0Ci0tLSBhL2xkL3Rlc3RzdWl0ZS9sZC1taXBz LWVsZi9oYXNoMi5kCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1taXBzLWVsZi9oYXNoMi5kCkBAIC02 LDExICs2LDExIEBACiAjLi4uCiAgKzB4WzAtOWEtel0rICtcKE1JUFNfWEhBU0hcKSArMHhbMC05 YS16XSsKICMuLi4KLSArWzAtOV0rICtbMC05XSs6ICtbMC05YS1mXSsgK1swLTldKyArRlVOQyAr R0xPQkFMICtERUZBVUxUICsoWzEtOV18UFJDKSBfc3RhcnQKKyArWzAtOV0rOiArWzAtOWEtZl0r ICtbMC05XSsgK0ZVTkMgK0dMT0JBTCArREVGQVVMVCArKFsxLTldfFBSQ1xbWzB4WzAtOWEtZl0r XF0pIF9fc3RhcnQKICMuLi4KLSArWzAtOV0rICtbMC05XSs6ICtbMC05YS1mXSsgK1swLTldKyAr RlVOQyArR0xPQkFMICtERUZBVUxUICsoWzEtOV18UFJDKSBtYWluCisgK1swLTldKzogK1swLTlh LWZdKyArWzAtOV0rICtGVU5DICtHTE9CQUwgK0RFRkFVTFQgKyhbMS05XXxQUkNcW1sweFswLTlh LWZdK1xdKSBfc3RhcnQKICMuLi4KLSArWzAtOV0rICtbMC05XSs6ICtbMC05YS1mXSsgK1swLTld KyArRlVOQyArR0xPQkFMICtERUZBVUxUICsoWzEtOV18UFJDKSBzdGFydAorICtbMC05XSs6ICtb MC05YS1mXSsgK1swLTldKyArRlVOQyArR0xPQkFMICtERUZBVUxUICsoWzEtOV18UFJDXFtbMHhb MC05YS1mXStcXSkgbWFpbgogIy4uLgotICtbMC05XSsgK1swLTldKzogK1swLTlhLWZdKyArWzAt OV0rICtGVU5DICtHTE9CQUwgK0RFRkFVTFQgKyhbMS05XXxQUkMpIF9fc3RhcnQKKyArWzAtOV0r OiArWzAtOWEtZl0rICtbMC05XSsgK0ZVTkMgK0dMT0JBTCArREVGQVVMVCArKFsxLTldfFBSQ1xb WzB4WzAtOWEtZl0rXF0pIHN0YXJ0CiAjLi4uCi0tIAoyLjI1LjIKCg== --0000000000009c901f05a2df44cd--