Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1opXtw-0000zC-Vw for pgsql-hackers@arkaria.postgresql.org; Mon, 31 Oct 2022 16:44:41 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1opXsw-0005Da-3B for pgsql-hackers@arkaria.postgresql.org; Mon, 31 Oct 2022 16:43:38 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1opXsv-0005DQ-HK for pgsql-hackers@lists.postgresql.org; Mon, 31 Oct 2022 16:43:37 +0000 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1opXsq-0002hs-VC for pgsql-hackers@lists.postgresql.org; Mon, 31 Oct 2022 16:43:37 +0000 Received: by mail-wr1-x435.google.com with SMTP id l14so16822617wrw.2 for ; Mon, 31 Oct 2022 09:43:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=Z1eCSH6Xb1E2n6E8NzfKEvn2aHswoDE7Na64sIXKhDw=; b=h9Jsp1KVe8PYxmGu56x3MefG+xCbelWY7AKkaPCoEoztTLt1u/DOdB4brb5BJUPGnX +ptoMgqWmBXjJ7/h3183FREl/laBVfZbySpx65AF5N2rBnjo73ac03UrNdgBl0df0C+E jag+YYZt1FKtlgFKWcFkYuJNhCnbZAVyhMd+L4p3T0gKimvSlRuBgRdV7G901FX657Ar PdKrsy+0syc6CadJaLMmWj/zCQiQyUXcg8XBJuLZSbTnhulVPvXPBwXCl0mMnpdRU8Pm 2LC/xhjOD1r0yVvyT9ptxQYKSfi9AvXeI/f0n4HzGKW+1Ezwb/iH83BfCpxbWZ65xAJv Un0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=Z1eCSH6Xb1E2n6E8NzfKEvn2aHswoDE7Na64sIXKhDw=; b=OgzQyKHlX4wtKHdE8/gR7y0Pdi2OmDFXnN/jEGSrIPBq4vywVB5ultfn/Z1HzACqJl +c3F1BlOGUaVwrebj08jVz2msYClll+mdjkXeXZ9WEPUExV/fwh/XDXQXrPVrQL34IJv e/7/O0vp7vD9LHAJfRx1N3ySL2sExrkqVII8rmUSWXEtqmMvAvrW+3aHybVA+IgfBuBa V0/n0LZOZuNO7WIzAYHHMPQWMSmorD8Sou0C8aPIQzHgZ6wkGfKxcSiWSzG8AcF7QTN0 YRszYok05S97mnK2gOgAvfhtBZt9CvtlzcvzGasIhuY3u15MCvlxeYLSVn7Pco7alm+g UORw== X-Gm-Message-State: ACrzQf2+N3HrjPwDvbr9z+0Rw1wejJiCYKYpmzozccpINDwXd+KfVDAE 6uUxN6quPuFm6Ba4SjZIHPCyETjNWwcIqQ== X-Google-Smtp-Source: AMsMyM6zDF7EC+kz9QKCibdV15a38Jza0YrAg/RkTa1c2KBo/8kvvWN+r9PhIaQqXYBBDbEPb4Cvvg== X-Received: by 2002:adf:f0c6:0:b0:236:a471:8264 with SMTP id x6-20020adff0c6000000b00236a4718264mr8558918wro.95.1667234610344; Mon, 31 Oct 2022 09:43:30 -0700 (PDT) Received: from [192.168.27.88] ([54.239.6.184]) by smtp.gmail.com with ESMTPSA id m62-20020a1c2641000000b003cf47556f21sm7776782wmm.2.2022.10.31.09.43.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 31 Oct 2022 09:43:29 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------OZrSu4earFURq7zuDs60WiAv" Message-ID: <79b66367-0c0a-2d2e-61b1-387acb584aa3@gmail.com> Date: Mon, 31 Oct 2022 17:42:13 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 Subject: Re: Split index and table statistics into different types of stats Content-Language: en-US To: Justin Pryzby , PostgreSQL Hackers References: <20221031133131.GP16921@telsasoft.com> From: "Drouvot, Bertrand" In-Reply-To: <20221031133131.GP16921@telsasoft.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------OZrSu4earFURq7zuDs60WiAv Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, On 10/31/22 2:31 PM, Justin Pryzby wrote: > I didn't looks closely, but there's a couple places where you wrote > ";;", which looks unintentional. > > - PG_RETURN_TIMESTAMPTZ(tabentry->lastscan); > + PG_RETURN_TIMESTAMPTZ(tabentry->lastscan);; > Thanks for looking at it! oops, thanks for the keen eyes ;-) Fixed in v2 attached. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------OZrSu4earFURq7zuDs60WiAv Content-Type: text/plain; charset=UTF-8; name="v2-0001-split_tables_indexes_stats.patch" Content-Disposition: attachment; filename="v2-0001-split_tables_indexes_stats.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jCmluZGV4IGZlODBiOGIwYmEuLmExZGVm YzY4MzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYwpAQCAtNTgyLDcgKzU4 Miw3IEBAIGluZGV4X2ZldGNoX2hlYXAoSW5kZXhTY2FuRGVzYyBzY2FuLCBUdXBsZVRhYmxl U2xvdCAqc2xvdCkKIAkJCQkJCQkJCSZzY2FuLT54c19oZWFwX2NvbnRpbnVlLCAmYWxsX2Rl YWQpOwogCiAJaWYgKGZvdW5kKQotCQlwZ3N0YXRfY291bnRfaGVhcF9mZXRjaChzY2FuLT5p bmRleFJlbGF0aW9uKTsKKwkJcGdzdGF0X2NvdW50X2luZGV4X2ZldGNoKHNjYW4tPmluZGV4 UmVsYXRpb24pOwogCiAJLyoKIAkgKiBJZiB3ZSBzY2FubmVkIGEgd2hvbGUgSE9UIGNoYWlu IGFuZCBmb3VuZCBvbmx5IGRlYWQgdHVwbGVzLCB0ZWxsIGluZGV4CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5j CmluZGV4IDViNDljYzVhMDkuLjhhNzE1ZGI4MmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvaGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCkBAIC0x ODUzLDcgKzE4NTMsNyBAQCBoZWFwX2Ryb3Bfd2l0aF9jYXRhbG9nKE9pZCByZWxpZCkKIAkJ UmVsYXRpb25Ecm9wU3RvcmFnZShyZWwpOwogCiAJLyogZW5zdXJlIHRoYXQgc3RhdHMgYXJl IGRyb3BwZWQgaWYgdHJhbnNhY3Rpb24gY29tbWl0cyAqLwotCXBnc3RhdF9kcm9wX3JlbGF0 aW9uKHJlbCk7CisJcGdzdGF0X2Ryb3BfaGVhcChyZWwpOwogCiAJLyoKIAkgKiBDbG9zZSBy ZWxjYWNoZSBlbnRyeSwgYnV0ICprZWVwKiBBY2Nlc3NFeGNsdXNpdmVMb2NrIG9uIHRoZSBy ZWxhdGlvbgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCmluZGV4IDYxZjFkMzkyNmEuLjI4Yjk0ZmVmN2Yg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYworKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL2luZGV4LmMKQEAgLTE3NTIsNyArMTc1Miw3IEBAIGluZGV4X2NvbmN1 cnJlbnRseV9zd2FwKE9pZCBuZXdJbmRleElkLCBPaWQgb2xkSW5kZXhJZCwgY29uc3QgY2hh ciAqb2xkTmFtZSkKIAljaGFuZ2VEZXBlbmRlbmNpZXNPbihSZWxhdGlvblJlbGF0aW9uSWQs IG9sZEluZGV4SWQsIG5ld0luZGV4SWQpOwogCiAJLyogY29weSBvdmVyIHN0YXRpc3RpY3Mg ZnJvbSBvbGQgdG8gbmV3IGluZGV4ICovCi0JcGdzdGF0X2NvcHlfcmVsYXRpb25fc3RhdHMo bmV3Q2xhc3NSZWwsIG9sZENsYXNzUmVsKTsKKwlwZ3N0YXRfY29weV9pbmRleF9zdGF0cyhu ZXdDbGFzc1JlbCwgb2xkQ2xhc3NSZWwpOwogCiAJLyogQ29weSBkYXRhIG9mIHBnX3N0YXRp c3RpYyBmcm9tIHRoZSBvbGQgaW5kZXggdG8gdGhlIG5ldyBvbmUgKi8KIAlDb3B5U3RhdGlz dGljcyhvbGRJbmRleElkLCBuZXdJbmRleElkKTsKQEAgLTIzMjYsNyArMjMyNiw3IEBAIGlu ZGV4X2Ryb3AoT2lkIGluZGV4SWQsIGJvb2wgY29uY3VycmVudCwgYm9vbCBjb25jdXJyZW50 X2xvY2tfbW9kZSkKIAkJUmVsYXRpb25Ecm9wU3RvcmFnZSh1c2VySW5kZXhSZWxhdGlvbik7 CiAKIAkvKiBlbnN1cmUgdGhhdCBzdGF0cyBhcmUgZHJvcHBlZCBpZiB0cmFuc2FjdGlvbiBj b21taXRzICovCi0JcGdzdGF0X2Ryb3BfcmVsYXRpb24odXNlckluZGV4UmVsYXRpb24pOwor CXBnc3RhdF9kcm9wX2luZGV4KHVzZXJJbmRleFJlbGF0aW9uKTsKIAogCS8qCiAJICogQ2xv c2UgYW5kIGZsdXNoIHRoZSBpbmRleCdzIHJlbGNhY2hlIGVudHJ5LCB0byBlbnN1cmUgcmVs Y2FjaGUgZG9lc24ndApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1f dmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4 IDJkODEwNGIwOTAuLmU5MmU1MGVkZjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92 aWV3cy5zcWwKQEAgLTY1NSwxMyArNjU1LDEzIEBAIENSRUFURSBWSUVXIHBnX3N0YXRfYWxs X3RhYmxlcyBBUwogICAgICAgICAgICAgQy5vaWQgQVMgcmVsaWQsCiAgICAgICAgICAgICBO Lm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKICAgICAgICAgICAgIEMucmVsbmFtZSBBUyByZWxu YW1lLAotICAgICAgICAgICAgcGdfc3RhdF9nZXRfbnVtc2NhbnMoQy5vaWQpIEFTIHNlcV9z Y2FuLAotICAgICAgICAgICAgcGdfc3RhdF9nZXRfbGFzdHNjYW4oQy5vaWQpIEFTIGxhc3Rf c2VxX3NjYW4sCi0gICAgICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfcmV0dXJuZWQoQy5v aWQpIEFTIHNlcV90dXBfcmVhZCwKLSAgICAgICAgICAgIHN1bShwZ19zdGF0X2dldF9udW1z Y2FucyhJLmluZGV4cmVsaWQpKTo6YmlnaW50IEFTIGlkeF9zY2FuLAotICAgICAgICAgICAg bWF4KHBnX3N0YXRfZ2V0X2xhc3RzY2FuKEkuaW5kZXhyZWxpZCkpIEFTIGxhc3RfaWR4X3Nj YW4sCi0gICAgICAgICAgICBzdW0ocGdfc3RhdF9nZXRfdHVwbGVzX2ZldGNoZWQoSS5pbmRl eHJlbGlkKSk6OmJpZ2ludCArCi0gICAgICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfZmV0 Y2hlZChDLm9pZCkgQVMgaWR4X3R1cF9mZXRjaCwKKyAgICAgICAgICAgIHBnX3N0YXRfZ2V0 X2hlYXBfbnVtc2NhbnMoQy5vaWQpIEFTIHNlcV9zY2FuLAorICAgICAgICAgICAgcGdfc3Rh dF9nZXRfaGVhcF9sYXN0c2NhbihDLm9pZCkgQVMgbGFzdF9zZXFfc2NhbiwKKyAgICAgICAg ICAgIHBnX3N0YXRfZ2V0X2hlYXBfdHVwbGVzX3JldHVybmVkKEMub2lkKSBBUyBzZXFfdHVw X3JlYWQsCisgICAgICAgICAgICBzdW0ocGdfc3RhdF9nZXRfaW5kZXhfbnVtc2NhbnMoSS5p bmRleHJlbGlkKSk6OmJpZ2ludCBBUyBpZHhfc2NhbiwKKyAgICAgICAgICAgIG1heChwZ19z dGF0X2dldF9pbmRleF9sYXN0c2NhbihJLmluZGV4cmVsaWQpKSBBUyBsYXN0X2lkeF9zY2Fu LAorICAgICAgICAgICAgc3VtKHBnX3N0YXRfZ2V0X2luZGV4X3R1cGxlc19mZXRjaGVkKEku aW5kZXhyZWxpZCkpOjpiaWdpbnQgKworICAgICAgICAgICAgcGdfc3RhdF9nZXRfaGVhcF90 dXBsZXNfZmV0Y2hlZChDLm9pZCkgQVMgaWR4X3R1cF9mZXRjaCwKICAgICAgICAgICAgIHBn X3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZChDLm9pZCkgQVMgbl90dXBfaW5zLAogICAgICAg ICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3VwZGF0ZWQoQy5vaWQpIEFTIG5fdHVwX3VwZCwK ICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19kZWxldGVkKEMub2lkKSBBUyBuX3R1 cF9kZWwsCkBAIC02ODksOSArNjg5LDkgQEAgQ1JFQVRFIFZJRVcgcGdfc3RhdF94YWN0X2Fs bF90YWJsZXMgQVMKICAgICAgICAgICAgIEMub2lkIEFTIHJlbGlkLAogICAgICAgICAgICAg Ti5uc3BuYW1lIEFTIHNjaGVtYW5hbWUsCiAgICAgICAgICAgICBDLnJlbG5hbWUgQVMgcmVs bmFtZSwKLSAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3hhY3RfbnVtc2NhbnMoQy5vaWQpIEFT IHNlcV9zY2FuLAorICAgICAgICAgICAgcGdfc3RhdF9nZXRfaGVhcF94YWN0X251bXNjYW5z KEMub2lkKSBBUyBzZXFfc2NhbiwKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3hhY3RfdHVw bGVzX3JldHVybmVkKEMub2lkKSBBUyBzZXFfdHVwX3JlYWQsCi0gICAgICAgICAgICBzdW0o cGdfc3RhdF9nZXRfeGFjdF9udW1zY2FucyhJLmluZGV4cmVsaWQpKTo6YmlnaW50IEFTIGlk eF9zY2FuLAorICAgICAgICAgICAgc3VtKHBnX3N0YXRfZ2V0X2luZGV4X3hhY3RfbnVtc2Nh bnMoSS5pbmRleHJlbGlkKSk6OmJpZ2ludCBBUyBpZHhfc2NhbiwKICAgICAgICAgICAgIHN1 bShwZ19zdGF0X2dldF94YWN0X3R1cGxlc19mZXRjaGVkKEkuaW5kZXhyZWxpZCkpOjpiaWdp bnQgKwogICAgICAgICAgICAgcGdfc3RhdF9nZXRfeGFjdF90dXBsZXNfZmV0Y2hlZChDLm9p ZCkgQVMgaWR4X3R1cF9mZXRjaCwKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3hhY3RfdHVw bGVzX2luc2VydGVkKEMub2lkKSBBUyBuX3R1cF9pbnMsCkBAIC03MjksMzEgKzcyOSwzMSBA QCBDUkVBVEUgVklFVyBwZ19zdGF0aW9fYWxsX3RhYmxlcyBBUwogICAgICAgICAgICAgQy5v aWQgQVMgcmVsaWQsCiAgICAgICAgICAgICBOLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKICAg ICAgICAgICAgIEMucmVsbmFtZSBBUyByZWxuYW1lLAotICAgICAgICAgICAgcGdfc3RhdF9n ZXRfYmxvY2tzX2ZldGNoZWQoQy5vaWQpIC0KLSAgICAgICAgICAgICAgICAgICAgcGdfc3Rh dF9nZXRfYmxvY2tzX2hpdChDLm9pZCkgQVMgaGVhcF9ibGtzX3JlYWQsCi0gICAgICAgICAg ICBwZ19zdGF0X2dldF9ibG9ja3NfaGl0KEMub2lkKSBBUyBoZWFwX2Jsa3NfaGl0LAorICAg ICAgICAgICAgcGdfc3RhdF9nZXRfaGVhcF9ibG9ja3NfZmV0Y2hlZChDLm9pZCkgLQorICAg ICAgICAgICAgICAgICAgICBwZ19zdGF0X2dldF9oZWFwX2Jsb2Nrc19oaXQoQy5vaWQpIEFT IGhlYXBfYmxrc19yZWFkLAorICAgICAgICAgICAgcGdfc3RhdF9nZXRfaGVhcF9ibG9ja3Nf aGl0KEMub2lkKSBBUyBoZWFwX2Jsa3NfaGl0LAogICAgICAgICAgICAgSS5pZHhfYmxrc19y ZWFkIEFTIGlkeF9ibGtzX3JlYWQsCiAgICAgICAgICAgICBJLmlkeF9ibGtzX2hpdCBBUyBp ZHhfYmxrc19oaXQsCi0gICAgICAgICAgICBwZ19zdGF0X2dldF9ibG9ja3NfZmV0Y2hlZChU Lm9pZCkgLQotICAgICAgICAgICAgICAgICAgICBwZ19zdGF0X2dldF9ibG9ja3NfaGl0KFQu b2lkKSBBUyB0b2FzdF9ibGtzX3JlYWQsCi0gICAgICAgICAgICBwZ19zdGF0X2dldF9ibG9j a3NfaGl0KFQub2lkKSBBUyB0b2FzdF9ibGtzX2hpdCwKKyAgICAgICAgICAgIHBnX3N0YXRf Z2V0X2hlYXBfYmxvY2tzX2ZldGNoZWQoVC5vaWQpIC0KKyAgICAgICAgICAgICAgICAgICAg cGdfc3RhdF9nZXRfaGVhcF9ibG9ja3NfaGl0KFQub2lkKSBBUyB0b2FzdF9ibGtzX3JlYWQs CisgICAgICAgICAgICBwZ19zdGF0X2dldF9oZWFwX2Jsb2Nrc19oaXQoVC5vaWQpIEFTIHRv YXN0X2Jsa3NfaGl0LAogICAgICAgICAgICAgWC5pZHhfYmxrc19yZWFkIEFTIHRpZHhfYmxr c19yZWFkLAogICAgICAgICAgICAgWC5pZHhfYmxrc19oaXQgQVMgdGlkeF9ibGtzX2hpdAog ICAgIEZST00gcGdfY2xhc3MgQyBMRUZUIEpPSU4KICAgICAgICAgICAgIHBnX2NsYXNzIFQg T04gQy5yZWx0b2FzdHJlbGlkID0gVC5vaWQKICAgICAgICAgICAgIExFRlQgSk9JTiBwZ19u YW1lc3BhY2UgTiBPTiAoTi5vaWQgPSBDLnJlbG5hbWVzcGFjZSkKICAgICAgICAgICAgIExF RlQgSk9JTiBMQVRFUkFMICgKLSAgICAgICAgICAgICAgU0VMRUNUIHN1bShwZ19zdGF0X2dl dF9ibG9ja3NfZmV0Y2hlZChpbmRleHJlbGlkKSAtCi0gICAgICAgICAgICAgICAgICAgICAg ICAgcGdfc3RhdF9nZXRfYmxvY2tzX2hpdChpbmRleHJlbGlkKSk6OmJpZ2ludAorICAgICAg ICAgICAgICBTRUxFQ1Qgc3VtKHBnX3N0YXRfZ2V0X2luZGV4X2Jsb2Nrc19mZXRjaGVkKGlu ZGV4cmVsaWQpIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICBwZ19zdGF0X2dldF9pbmRl eF9ibG9ja3NfaGl0KGluZGV4cmVsaWQpKTo6YmlnaW50CiAgICAgICAgICAgICAgICAgICAg ICBBUyBpZHhfYmxrc19yZWFkLAotICAgICAgICAgICAgICAgICAgICAgc3VtKHBnX3N0YXRf Z2V0X2Jsb2Nrc19oaXQoaW5kZXhyZWxpZCkpOjpiaWdpbnQKKyAgICAgICAgICAgICAgICAg ICAgIHN1bShwZ19zdGF0X2dldF9pbmRleF9ibG9ja3NfaGl0KGluZGV4cmVsaWQpKTo6Ymln aW50CiAgICAgICAgICAgICAgICAgICAgICBBUyBpZHhfYmxrc19oaXQKICAgICAgICAgICAg ICAgRlJPTSBwZ19pbmRleCBXSEVSRSBpbmRyZWxpZCA9IEMub2lkICkgSSBPTiB0cnVlCiAg ICAgICAgICAgICBMRUZUIEpPSU4gTEFURVJBTCAoCi0gICAgICAgICAgICAgIFNFTEVDVCBz dW0ocGdfc3RhdF9nZXRfYmxvY2tzX2ZldGNoZWQoaW5kZXhyZWxpZCkgLQotICAgICAgICAg ICAgICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2Jsb2Nrc19oaXQoaW5kZXhyZWxpZCkpOjpi aWdpbnQKKyAgICAgICAgICAgICAgU0VMRUNUIHN1bShwZ19zdGF0X2dldF9pbmRleF9ibG9j a3NfZmV0Y2hlZChpbmRleHJlbGlkKSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgcGdf c3RhdF9nZXRfaW5kZXhfYmxvY2tzX2hpdChpbmRleHJlbGlkKSk6OmJpZ2ludAogICAgICAg ICAgICAgICAgICAgICAgQVMgaWR4X2Jsa3NfcmVhZCwKLSAgICAgICAgICAgICAgICAgICAg IHN1bShwZ19zdGF0X2dldF9ibG9ja3NfaGl0KGluZGV4cmVsaWQpKTo6YmlnaW50CisgICAg ICAgICAgICAgICAgICAgICBzdW0ocGdfc3RhdF9nZXRfaW5kZXhfYmxvY2tzX2hpdChpbmRl eHJlbGlkKSk6OmJpZ2ludAogICAgICAgICAgICAgICAgICAgICAgQVMgaWR4X2Jsa3NfaGl0 CiAgICAgICAgICAgICAgIEZST00gcGdfaW5kZXggV0hFUkUgaW5kcmVsaWQgPSBULm9pZCAp IFggT04gdHJ1ZQogICAgIFdIRVJFIEMucmVsa2luZCBJTiAoJ3InLCAndCcsICdtJyk7CkBA IC03NzUsMTAgKzc3NSwxMCBAQCBDUkVBVEUgVklFVyBwZ19zdGF0X2FsbF9pbmRleGVzIEFT CiAgICAgICAgICAgICBOLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKICAgICAgICAgICAgIEMu cmVsbmFtZSBBUyByZWxuYW1lLAogICAgICAgICAgICAgSS5yZWxuYW1lIEFTIGluZGV4cmVs bmFtZSwKLSAgICAgICAgICAgIHBnX3N0YXRfZ2V0X251bXNjYW5zKEkub2lkKSBBUyBpZHhf c2NhbiwKLSAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2xhc3RzY2FuKEkub2lkKSBBUyBsYXN0 X2lkeF9zY2FuLAotICAgICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKEku b2lkKSBBUyBpZHhfdHVwX3JlYWQsCi0gICAgICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNf ZmV0Y2hlZChJLm9pZCkgQVMgaWR4X3R1cF9mZXRjaAorICAgICAgICAgICAgcGdfc3RhdF9n ZXRfaW5kZXhfbnVtc2NhbnMoSS5vaWQpIEFTIGlkeF9zY2FuLAorICAgICAgICAgICAgcGdf c3RhdF9nZXRfaW5kZXhfbGFzdHNjYW4oSS5vaWQpIEFTIGxhc3RfaWR4X3NjYW4sCisgICAg ICAgICAgICBwZ19zdGF0X2dldF9pbmRleF90dXBsZXNfcmV0dXJuZWQoSS5vaWQpIEFTIGlk eF90dXBfcmVhZCwKKyAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2luZGV4X3R1cGxlc19mZXRj aGVkKEkub2lkKSBBUyBpZHhfdHVwX2ZldGNoCiAgICAgRlJPTSBwZ19jbGFzcyBDIEpPSU4K ICAgICAgICAgICAgIHBnX2luZGV4IFggT04gQy5vaWQgPSBYLmluZHJlbGlkIEpPSU4KICAg ICAgICAgICAgIHBnX2NsYXNzIEkgT04gSS5vaWQgPSBYLmluZGV4cmVsaWQKQEAgLTgwMiw5 ICs4MDIsOSBAQCBDUkVBVEUgVklFVyBwZ19zdGF0aW9fYWxsX2luZGV4ZXMgQVMKICAgICAg ICAgICAgIE4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgICAgICAgICAgQy5yZWxuYW1l IEFTIHJlbG5hbWUsCiAgICAgICAgICAgICBJLnJlbG5hbWUgQVMgaW5kZXhyZWxuYW1lLAot ICAgICAgICAgICAgcGdfc3RhdF9nZXRfYmxvY2tzX2ZldGNoZWQoSS5vaWQpIC0KLSAgICAg ICAgICAgICAgICAgICAgcGdfc3RhdF9nZXRfYmxvY2tzX2hpdChJLm9pZCkgQVMgaWR4X2Js a3NfcmVhZCwKLSAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2Jsb2Nrc19oaXQoSS5vaWQpIEFT IGlkeF9ibGtzX2hpdAorICAgICAgICAgICAgcGdfc3RhdF9nZXRfaW5kZXhfYmxvY2tzX2Zl dGNoZWQoSS5vaWQpIC0KKyAgICAgICAgICAgICAgICAgICAgcGdfc3RhdF9nZXRfaW5kZXhf YmxvY2tzX2hpdChJLm9pZCkgQVMgaWR4X2Jsa3NfcmVhZCwKKyAgICAgICAgICAgIHBnX3N0 YXRfZ2V0X2luZGV4X2Jsb2Nrc19oaXQoSS5vaWQpIEFTIGlkeF9ibGtzX2hpdAogICAgIEZS T00gcGdfY2xhc3MgQyBKT0lOCiAgICAgICAgICAgICBwZ19pbmRleCBYIE9OIEMub2lkID0g WC5pbmRyZWxpZCBKT0lOCiAgICAgICAgICAgICBwZ19jbGFzcyBJIE9OIEkub2lkID0gWC5p bmRleHJlbGlkCkBAIC04MjYsOSArODI2LDkgQEAgQ1JFQVRFIFZJRVcgcGdfc3RhdGlvX2Fs bF9zZXF1ZW5jZXMgQVMKICAgICAgICAgICAgIEMub2lkIEFTIHJlbGlkLAogICAgICAgICAg ICAgTi5uc3BuYW1lIEFTIHNjaGVtYW5hbWUsCiAgICAgICAgICAgICBDLnJlbG5hbWUgQVMg cmVsbmFtZSwKLSAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2Jsb2Nrc19mZXRjaGVkKEMub2lk KSAtCi0gICAgICAgICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2Jsb2Nrc19oaXQoQy5vaWQp IEFTIGJsa3NfcmVhZCwKLSAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2Jsb2Nrc19oaXQoQy5v aWQpIEFTIGJsa3NfaGl0CisgICAgICAgICAgICBwZ19zdGF0X2dldF9pbmRleF9ibG9ja3Nf ZmV0Y2hlZChDLm9pZCkgLQorICAgICAgICAgICAgICAgICAgICBwZ19zdGF0X2dldF9oZWFw X2Jsb2Nrc19oaXQoQy5vaWQpIEFTIGJsa3NfcmVhZCwKKyAgICAgICAgICAgIHBnX3N0YXRf Z2V0X2hlYXBfYmxvY2tzX2hpdChDLm9pZCkgQVMgYmxrc19oaXQKICAgICBGUk9NIHBnX2Ns YXNzIEMKICAgICAgICAgICAgIExFRlQgSk9JTiBwZ19uYW1lc3BhY2UgTiBPTiAoTi5vaWQg PSBDLnJlbG5hbWVzcGFjZSkKICAgICBXSEVSRSBDLnJlbGtpbmQgPSAnUyc7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYyBiL3NyYy9iYWNrZW5k L3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCmluZGV4IDczZDMwYmY2MTkuLjJlM2I5ODJhYWUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCisrKyBi L3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jCkBAIC03NzYsMTEgKzc3Niwx OSBAQCBSZWFkQnVmZmVyRXh0ZW5kZWQoUmVsYXRpb24gcmVsbiwgRm9ya051bWJlciBmb3Jr TnVtLCBCbG9ja051bWJlciBibG9ja051bSwKIAkgKiBSZWFkIHRoZSBidWZmZXIsIGFuZCB1 cGRhdGUgcGdzdGF0IGNvdW50ZXJzIHRvIHJlZmxlY3QgYSBjYWNoZSBoaXQgb3IKIAkgKiBt aXNzLgogCSAqLwotCXBnc3RhdF9jb3VudF9idWZmZXJfcmVhZChyZWxuKTsKKwlpZiAocmVs bi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfSU5ERVgpCisJCXBnc3RhdF9jb3VudF9p bmRleF9idWZmZXJfcmVhZChyZWxuKTsKKwllbHNlCisJCXBnc3RhdF9jb3VudF9oZWFwX2J1 ZmZlcl9yZWFkKHJlbG4pOwogCWJ1ZiA9IFJlYWRCdWZmZXJfY29tbW9uKFJlbGF0aW9uR2V0 U21ncihyZWxuKSwgcmVsbi0+cmRfcmVsLT5yZWxwZXJzaXN0ZW5jZSwKIAkJCQkJCQlmb3Jr TnVtLCBibG9ja051bSwgbW9kZSwgc3RyYXRlZ3ksICZoaXQpOwogCWlmIChoaXQpCi0JCXBn c3RhdF9jb3VudF9idWZmZXJfaGl0KHJlbG4pOworCXsKKwkJaWYgKHJlbG4tPnJkX3JlbC0+ cmVsa2luZCA9PSBSRUxLSU5EX0lOREVYKQorCQkJcGdzdGF0X2NvdW50X2luZGV4X2J1ZmZl cl9oaXQocmVsbik7CisJCWVsc2UKKwkJCXBnc3RhdF9jb3VudF9oZWFwX2J1ZmZlcl9oaXQo cmVsbik7CisJfQogCXJldHVybiBidWY7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkv cGdzdGF0LmMKaW5kZXggMWViZTNiYmYyOS4uOTM0OWQ3ZjAwYyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWN0aXZpdHkvcGdzdGF0LmMKQEAgLTI2OSwxOCArMjY5LDMyIEBAIHN0YXRpYyBjb25z dCBQZ1N0YXRfS2luZEluZm8gcGdzdGF0X2tpbmRfaW5mb3NbUEdTVEFUX05VTV9LSU5EU10g PSB7CiAJCS5yZXNldF90aW1lc3RhbXBfY2IgPSBwZ3N0YXRfZGF0YWJhc2VfcmVzZXRfdGlt ZXN0YW1wX2NiLAogCX0sCiAKLQlbUEdTVEFUX0tJTkRfUkVMQVRJT05dID0gewotCQkubmFt ZSA9ICJyZWxhdGlvbiIsCisJW1BHU1RBVF9LSU5EX1RBQkxFXSA9IHsKKwkJLm5hbWUgPSAi dGFibGUiLAogCiAJCS5maXhlZF9hbW91bnQgPSBmYWxzZSwKIAotCQkuc2hhcmVkX3NpemUg PSBzaXplb2YoUGdTdGF0U2hhcmVkX1JlbGF0aW9uKSwKLQkJLnNoYXJlZF9kYXRhX29mZiA9 IG9mZnNldG9mKFBnU3RhdFNoYXJlZF9SZWxhdGlvbiwgc3RhdHMpLAotCQkuc2hhcmVkX2Rh dGFfbGVuID0gc2l6ZW9mKCgoUGdTdGF0U2hhcmVkX1JlbGF0aW9uICopIDApLT5zdGF0cyks CisJCS5zaGFyZWRfc2l6ZSA9IHNpemVvZihQZ1N0YXRTaGFyZWRfVGFibGUpLAorCQkuc2hh cmVkX2RhdGFfb2ZmID0gb2Zmc2V0b2YoUGdTdGF0U2hhcmVkX1RhYmxlLCBzdGF0cyksCisJ CS5zaGFyZWRfZGF0YV9sZW4gPSBzaXplb2YoKChQZ1N0YXRTaGFyZWRfVGFibGUgKikgMCkt PnN0YXRzKSwKIAkJLnBlbmRpbmdfc2l6ZSA9IHNpemVvZihQZ1N0YXRfVGFibGVTdGF0dXMp LAogCi0JCS5mbHVzaF9wZW5kaW5nX2NiID0gcGdzdGF0X3JlbGF0aW9uX2ZsdXNoX2NiLAot CQkuZGVsZXRlX3BlbmRpbmdfY2IgPSBwZ3N0YXRfcmVsYXRpb25fZGVsZXRlX3BlbmRpbmdf Y2IsCisJCS5mbHVzaF9wZW5kaW5nX2NiID0gcGdzdGF0X3RhYmxlX2ZsdXNoX2NiLAorCQku ZGVsZXRlX3BlbmRpbmdfY2IgPSBwZ3N0YXRfdGFibGVfZGVsZXRlX3BlbmRpbmdfY2IsCisJ fSwKKworCVtQR1NUQVRfS0lORF9JTkRFWF0gPSB7CisJCS5uYW1lID0gImluZGV4IiwKKwor CQkuZml4ZWRfYW1vdW50ID0gZmFsc2UsCisKKwkJLnNoYXJlZF9zaXplID0gc2l6ZW9mKFBn U3RhdFNoYXJlZF9JbmRleCksCisJCS5zaGFyZWRfZGF0YV9vZmYgPSBvZmZzZXRvZihQZ1N0 YXRTaGFyZWRfSW5kZXgsIHN0YXRzKSwKKwkJLnNoYXJlZF9kYXRhX2xlbiA9IHNpemVvZigo KFBnU3RhdFNoYXJlZF9JbmRleCAqKSAwKS0+c3RhdHMpLAorCQkucGVuZGluZ19zaXplID0g c2l6ZW9mKFBnU3RhdF9JbmRleFN0YXR1cyksCisKKwkJLmZsdXNoX3BlbmRpbmdfY2IgPSBw Z3N0YXRfaW5kZXhfZmx1c2hfY2IsCisJCS5kZWxldGVfcGVuZGluZ19jYiA9IHBnc3RhdF9p bmRleF9kZWxldGVfcGVuZGluZ19jYiwKIAl9LAogCiAJW1BHU1RBVF9LSU5EX0ZVTkNUSU9O XSA9IHsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9y ZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9u LmMKaW5kZXggNTVhMzU1ZjU4My4uNWQzMGI0YzI0MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0aW9uLmMKQEAgLTQzLDM1ICs0MywzNSBAQCB0 eXBlZGVmIHN0cnVjdCBUd29QaGFzZVBnU3RhdFJlY29yZAogfSBUd29QaGFzZVBnU3RhdFJl Y29yZDsKIAogCi1zdGF0aWMgUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXRfcHJlcF9yZWxh dGlvbl9wZW5kaW5nKE9pZCByZWxfaWQsIGJvb2wgaXNzaGFyZWQpOwotc3RhdGljIHZvaWQg YWRkX3RhYnN0YXRfeGFjdF9sZXZlbChQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9pbmZv LCBpbnQgbmVzdF9sZXZlbCk7Ci1zdGF0aWMgdm9pZCBlbnN1cmVfdGFic3RhdF94YWN0X2xl dmVsKFBnU3RhdF9UYWJsZVN0YXR1cyAqcGdzdGF0X2luZm8pOworc3RhdGljIFBnU3RhdF9U YWJsZVN0YXR1cyAqcGdzdGF0X3ByZXBfdGFibGVfcGVuZGluZyhPaWQgcmVsX2lkLCBib29s IGlzc2hhcmVkKTsKK3N0YXRpYyBQZ1N0YXRfSW5kZXhTdGF0dXMgKnBnc3RhdF9wcmVwX2lu ZGV4X3BlbmRpbmcoT2lkIHJlbF9pZCwgYm9vbCBpc3NoYXJlZCk7CitzdGF0aWMgdm9pZCBh ZGRfdGFic3RhdF94YWN0X2xldmVsKFBnU3RhdF9UYWJsZVN0YXR1cyAqcGdzdGF0dGFiX2lu Zm8sIGludCBuZXN0X2xldmVsKTsKK3N0YXRpYyB2b2lkIGVuc3VyZV90YWJzdGF0X3hhY3Rf bGV2ZWwoUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXR0YWJfaW5mbyk7CiBzdGF0aWMgdm9p ZCBzYXZlX3RydW5jZHJvcF9jb3VudGVycyhQZ1N0YXRfVGFibGVYYWN0U3RhdHVzICp0cmFu cywgYm9vbCBpc19kcm9wKTsKIHN0YXRpYyB2b2lkIHJlc3RvcmVfdHJ1bmNkcm9wX2NvdW50 ZXJzKFBnU3RhdF9UYWJsZVhhY3RTdGF0dXMgKnRyYW5zKTsKIAotCiAvKgotICogQ29weSBz dGF0cyBiZXR3ZWVuIHJlbGF0aW9ucy4gVGhpcyBpcyB1c2VkIGZvciB0aGluZ3MgbGlrZSBS RUlOREVYCisgKiBDb3B5IHN0YXRzIGJldHdlZW4gaW5kZXhlcy4gVGhpcyBpcyB1c2VkIGZv ciB0aGluZ3MgbGlrZSBSRUlOREVYCiAgKiBDT05DVVJSRU5UTFkuCiAgKi8KIHZvaWQKLXBn c3RhdF9jb3B5X3JlbGF0aW9uX3N0YXRzKFJlbGF0aW9uIGRzdCwgUmVsYXRpb24gc3JjKQor cGdzdGF0X2NvcHlfaW5kZXhfc3RhdHMoUmVsYXRpb24gZHN0LCBSZWxhdGlvbiBzcmMpCiB7 Ci0JUGdTdGF0X1N0YXRUYWJFbnRyeSAqc3Jjc3RhdHM7Ci0JUGdTdGF0U2hhcmVkX1JlbGF0 aW9uICpkc3RzaHN0YXRzOworCVBnU3RhdF9TdGF0SW5kRW50cnkgKnNyY3N0YXRzOworCVBn U3RhdFNoYXJlZF9JbmRleCAqZHN0c2hzdGF0czsKIAlQZ1N0YXRfRW50cnlSZWYgKmRzdF9y ZWY7CiAKLQlzcmNzdGF0cyA9IHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5X2V4dChzcmMt PnJkX3JlbC0+cmVsaXNzaGFyZWQsCisJc3Jjc3RhdHMgPSBwZ3N0YXRfZmV0Y2hfc3RhdF9p bmRlbnRyeV9leHQoc3JjLT5yZF9yZWwtPnJlbGlzc2hhcmVkLAogCQkJCQkJCQkJCQkgIFJl bGF0aW9uR2V0UmVsaWQoc3JjKSk7CiAJaWYgKCFzcmNzdGF0cykKIAkJcmV0dXJuOwogCi0J ZHN0X3JlZiA9IHBnc3RhdF9nZXRfZW50cnlfcmVmX2xvY2tlZChQR1NUQVRfS0lORF9SRUxB VElPTiwKKwlkc3RfcmVmID0gcGdzdGF0X2dldF9lbnRyeV9yZWZfbG9ja2VkKFBHU1RBVF9L SU5EX0lOREVYLAogCQkJCQkJCQkJCSAgZHN0LT5yZF9yZWwtPnJlbGlzc2hhcmVkID8gSW52 YWxpZE9pZCA6IE15RGF0YWJhc2VJZCwKIAkJCQkJCQkJCQkgIFJlbGF0aW9uR2V0UmVsaWQo ZHN0KSwKIAkJCQkJCQkJCQkgIGZhbHNlKTsKIAotCWRzdHNoc3RhdHMgPSAoUGdTdGF0U2hh cmVkX1JlbGF0aW9uICopIGRzdF9yZWYtPnNoYXJlZF9zdGF0czsKKwlkc3RzaHN0YXRzID0g KFBnU3RhdFNoYXJlZF9JbmRleCAqKSBkc3RfcmVmLT5zaGFyZWRfc3RhdHM7CiAJZHN0c2hz dGF0cy0+c3RhdHMgPSAqc3Jjc3RhdHM7CiAKIAlwZ3N0YXRfdW5sb2NrX2VudHJ5KGRzdF9y ZWYpOwpAQCAtODEsOCArODEsOSBAQCBwZ3N0YXRfY29weV9yZWxhdGlvbl9zdGF0cyhSZWxh dGlvbiBkc3QsIFJlbGF0aW9uIHNyYykKICAqIEluaXRpYWxpemUgYSByZWxjYWNoZSBlbnRy eSB0byBjb3VudCBhY2Nlc3Mgc3RhdGlzdGljcy4gIENhbGxlZCB3aGVuZXZlciBhCiAgKiBy ZWxhdGlvbiBpcyBvcGVuZWQuCiAgKgotICogV2UgYXNzdW1lIHRoYXQgYSByZWxjYWNoZSBl bnRyeSdzIHBnc3RhdF9pbmZvIGZpZWxkIGlzIHplcm9lZCBieSByZWxjYWNoZS5jCi0gKiB3 aGVuIHRoZSByZWxjYWNoZSBlbnRyeSBpcyBtYWRlOyB0aGVyZWFmdGVyIGl0IGlzIGxvbmct bGl2ZWQgZGF0YS4KKyAqIFdlIGFzc3VtZSB0aGF0IGEgcmVsY2FjaGUgZW50cnkncyBwZ3N0 YXR0YWJfaW5mbyBhbmQgcGdzdGF0aW5kX2luZm8gZmllbGRzCisgKiBhcmUgemVyb2VkIGJ5 IHJlbGNhY2hlLmMgd2hlbiB0aGUgcmVsY2FjaGUgZW50cnkgaXMgbWFkZTsgdGhlcmVhZnRl ciBpdCBpcworICogbG9uZy1saXZlZCBkYXRhLgogICoKICAqIFRoaXMgZG9lcyBub3QgY3Jl YXRlIGEgcmVmZXJlbmNlIHRvIGEgc3RhdHMgZW50cnkgaW4gc2hhcmVkIG1lbW9yeSwgbm9y CiAgKiBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSBwZW5kaW5nIHN0YXRzLiBUaGF0IGhhcHBl bnMgaW4KQEAgLTk5LDE4ICsxMDAsMjAgQEAgcGdzdGF0X2luaXRfcmVsYXRpb24oUmVsYXRp b24gcmVsKQogCWlmICghUkVMS0lORF9IQVNfU1RPUkFHRShyZWxraW5kKSAmJiByZWxraW5k ICE9IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCiAJewogCQlyZWwtPnBnc3RhdF9lbmFi bGVkID0gZmFsc2U7Ci0JCXJlbC0+cGdzdGF0X2luZm8gPSBOVUxMOworCQlyZWwtPnBnc3Rh dHRhYl9pbmZvID0gTlVMTDsKKwkJcmVsLT5wZ3N0YXRpbmRfaW5mbyA9IE5VTEw7CiAJCXJl dHVybjsKIAl9CiAKIAlpZiAoIXBnc3RhdF90cmFja19jb3VudHMpCiAJewotCQlpZiAocmVs LT5wZ3N0YXRfaW5mbykKKwkJaWYgKHJlbC0+cGdzdGF0dGFiX2luZm8gIT0gTlVMTCB8fCBy ZWwtPnBnc3RhdGluZF9pbmZvICE9IE5VTEwpCiAJCQlwZ3N0YXRfdW5saW5rX3JlbGF0aW9u KHJlbCk7CiAKIAkJLyogV2UncmUgbm90IGNvdW50aW5nIGF0IGFsbCAqLwogCQlyZWwtPnBn c3RhdF9lbmFibGVkID0gZmFsc2U7Ci0JCXJlbC0+cGdzdGF0X2luZm8gPSBOVUxMOworCQly ZWwtPnBnc3RhdHRhYl9pbmZvID0gTlVMTDsKKwkJcmVsLT5wZ3N0YXRpbmRfaW5mbyA9IE5V TEw7CiAJCXJldHVybjsKIAl9CiAKQEAgLTExOCwxMCArMTIxLDEwIEBAIHBnc3RhdF9pbml0 X3JlbGF0aW9uKFJlbGF0aW9uIHJlbCkKIH0KIAogLyoKLSAqIFByZXBhcmUgZm9yIHN0YXRp c3RpY3MgZm9yIHRoaXMgcmVsYXRpb24gdG8gYmUgY29sbGVjdGVkLgorICogUHJlcGFyZSBm b3Igc3RhdGlzdGljcyBmb3IgdGhpcyB0YWJsZSB0byBiZSBjb2xsZWN0ZWQuCiAgKgogICog VGhpcyBlbnN1cmVzIHdlIGhhdmUgYSByZWZlcmVuY2UgdG8gdGhlIHN0YXRzIGVudHJ5IGJl Zm9yZSBzdGF0cyBjYW4gYmUKLSAqIGdlbmVyYXRlZC4gVGhhdCBpcyBpbXBvcnRhbnQgYmVj YXVzZSBhIHJlbGF0aW9uIGRyb3AgaW4gYW5vdGhlciBjb25uZWN0aW9uCisgKiBnZW5lcmF0 ZWQuIFRoYXQgaXMgaW1wb3J0YW50IGJlY2F1c2UgYSB0YWJsZSBkcm9wIGluIGFub3RoZXIg Y29ubmVjdGlvbgogICogY291bGQgb3RoZXJ3aXNlIGxlYWQgdG8gdGhlIHN0YXRzIGVudHJ5 IGJlaW5nIGRyb3BwZWQsIHdoaWNoIHRoZW4gbGF0ZXIKICAqIHdvdWxkIGdldCByZWNyZWF0 ZWQgd2hlbiBmbHVzaGluZyBzdGF0cy4KICAqCkBAIC0xMjksMjAgKzEzMiw0OCBAQCBwZ3N0 YXRfaW5pdF9yZWxhdGlvbihSZWxhdGlvbiByZWwpCiAgKiByZWxjYWNoZSBlbnRyaWVzIHRv IGJlIG9wZW5lZCB3aXRob3V0IGV2ZXIgZ2V0dGluZyBzdGF0cyByZXBvcnRlZC4KICAqLwog dm9pZAotcGdzdGF0X2Fzc29jX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCkKK3Bnc3RhdF9hc3Nv Y190YWJsZShSZWxhdGlvbiByZWwpCiB7CiAJQXNzZXJ0KHJlbC0+cGdzdGF0X2VuYWJsZWQp OwotCUFzc2VydChyZWwtPnBnc3RhdF9pbmZvID09IE5VTEwpOworCUFzc2VydChyZWwtPnBn c3RhdHRhYl9pbmZvID09IE5VTEwpOwogCiAJLyogRWxzZSBmaW5kIG9yIG1ha2UgdGhlIFBn U3RhdF9UYWJsZVN0YXR1cyBlbnRyeSwgYW5kIHVwZGF0ZSBsaW5rICovCi0JcmVsLT5wZ3N0 YXRfaW5mbyA9IHBnc3RhdF9wcmVwX3JlbGF0aW9uX3BlbmRpbmcoUmVsYXRpb25HZXRSZWxp ZChyZWwpLAorCXJlbC0+cGdzdGF0dGFiX2luZm8gPSBwZ3N0YXRfcHJlcF90YWJsZV9wZW5k aW5nKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwKKwkJCQkJCQkJCQkJCQlyZWwtPnJkX3JlbC0+ cmVsaXNzaGFyZWQpOworCisJLyogZG9uJ3QgYWxsb3cgbGluayBhIHN0YXRzIHRvIG11bHRp cGxlIHJlbGNhY2hlIGVudHJpZXMgKi8KKwlBc3NlcnQocmVsLT5wZ3N0YXR0YWJfaW5mby0+ cmVsYXRpb24gPT0gTlVMTCk7CisKKwkvKiBtYXJrIHRoaXMgcmVsYXRpb24gYXMgdGhlIG93 bmVyICovCisJcmVsLT5wZ3N0YXR0YWJfaW5mby0+cmVsYXRpb24gPSByZWw7Cit9CisKKy8q CisgKiBQcmVwYXJlIGZvciBzdGF0aXN0aWNzIGZvciB0aGlzIGluZGV4IHRvIGJlIGNvbGxl Y3RlZC4KKyAqCisgKiBUaGlzIGVuc3VyZXMgd2UgaGF2ZSBhIHJlZmVyZW5jZSB0byB0aGUg c3RhdHMgZW50cnkgYmVmb3JlIHN0YXRzIGNhbiBiZQorICogZ2VuZXJhdGVkLiBUaGF0IGlz IGltcG9ydGFudCBiZWNhdXNlIGFuIGluZGV4IGRyb3AgaW4gYW5vdGhlcgorICogY29ubmVj dGlvbiBjb3VsZCBvdGhlcndpc2UgbGVhZCB0byB0aGUgc3RhdHMgZW50cnkgYmVpbmcgZHJv cHBlZCwgd2hpY2ggdGhlbgorICogbGF0ZXIgd291bGQgZ2V0IHJlY3JlYXRlZCB3aGVuIGZs dXNoaW5nIHN0YXRzLgorICoKKyAqIFRoaXMgaXMgc2VwYXJhdGUgZnJvbSBwZ3N0YXRfaW5p dF9yZWxhdGlvbigpIGFzIGl0IGlzIG5vdCB1bmNvbW1vbiBmb3IKKyAqIHJlbGNhY2hlIGVu dHJpZXMgdG8gYmUgb3BlbmVkIHdpdGhvdXQgZXZlciBnZXR0aW5nIHN0YXRzIHJlcG9ydGVk LgorICovCit2b2lkCitwZ3N0YXRfYXNzb2NfaW5kZXgoUmVsYXRpb24gcmVsKQoreworCUFz c2VydChyZWwtPnBnc3RhdF9lbmFibGVkKTsKKwlBc3NlcnQocmVsLT5wZ3N0YXRpbmRfaW5m byA9PSBOVUxMKTsKKworCS8qIEVsc2UgZmluZCBvciBtYWtlIHRoZSBQZ1N0YXRfSW5kZXhT dGF0dXMgZW50cnksIGFuZCB1cGRhdGUgbGluayAqLworCXJlbC0+cGdzdGF0aW5kX2luZm8g PSBwZ3N0YXRfcHJlcF9pbmRleF9wZW5kaW5nKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwKIAkJ CQkJCQkJCQkJCQlyZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQpOwogCiAJLyogZG9uJ3QgYWxs b3cgbGluayBhIHN0YXRzIHRvIG11bHRpcGxlIHJlbGNhY2hlIGVudHJpZXMgKi8KLQlBc3Nl cnQocmVsLT5wZ3N0YXRfaW5mby0+cmVsYXRpb24gPT0gTlVMTCk7CisJQXNzZXJ0KHJlbC0+ cGdzdGF0aW5kX2luZm8tPnJlbGF0aW9uID09IE5VTEwpOwogCiAJLyogbWFyayB0aGlzIHJl bGF0aW9uIGFzIHRoZSBvd25lciAqLwotCXJlbC0+cGdzdGF0X2luZm8tPnJlbGF0aW9uID0g cmVsOworCXJlbC0+cGdzdGF0aW5kX2luZm8tPnJlbGF0aW9uID0gcmVsOwogfQogCiAvKgpA QCAtMTUyLDE0ICsxODMsMjUgQEAgcGdzdGF0X2Fzc29jX3JlbGF0aW9uKFJlbGF0aW9uIHJl bCkKIHZvaWQKIHBnc3RhdF91bmxpbmtfcmVsYXRpb24oUmVsYXRpb24gcmVsKQogewotCS8q IHJlbW92ZSB0aGUgbGluayB0byBzdGF0cyBpbmZvIGlmIGFueSAqLwotCWlmIChyZWwtPnBn c3RhdF9pbmZvID09IE5VTEwpCisKKwlpZiAocmVsLT5wZ3N0YXRpbmRfaW5mbyA9PSBOVUxM ICYmIHJlbC0+cGdzdGF0dGFiX2luZm8gPT0gTlVMTCkKIAkJcmV0dXJuOwogCi0JLyogbGlu ayBzYW5pdHkgY2hlY2sgKi8KLQlBc3NlcnQocmVsLT5wZ3N0YXRfaW5mby0+cmVsYXRpb24g PT0gcmVsKTsKLQlyZWwtPnBnc3RhdF9pbmZvLT5yZWxhdGlvbiA9IE5VTEw7Ci0JcmVsLT5w Z3N0YXRfaW5mbyA9IE5VTEw7CisJLyogbGluayBzYW5pdHkgY2hlY2sgZm9yIHRoZSB0YWJs ZSBzdGF0cyAqLworCWlmIChyZWwtPnBnc3RhdHRhYl9pbmZvKQorCXsKKwkJQXNzZXJ0KHJl bC0+cGdzdGF0dGFiX2luZm8tPnJlbGF0aW9uID09IHJlbCk7CisJCXJlbC0+cGdzdGF0dGFi X2luZm8tPnJlbGF0aW9uID0gTlVMTDsKKwkJcmVsLT5wZ3N0YXR0YWJfaW5mbyA9IE5VTEw7 CisJfQorCisJLyogbGluayBzYW5pdHkgY2hlY2sgZm9yIHRoZSBpbmRleCBzdGF0cyAqLwor CWlmIChyZWwtPnBnc3RhdGluZF9pbmZvKQorCXsKKwkJQXNzZXJ0KHJlbC0+cGdzdGF0aW5k X2luZm8tPnJlbGF0aW9uID09IHJlbCk7CisJCXJlbC0+cGdzdGF0aW5kX2luZm8tPnJlbGF0 aW9uID0gTlVMTDsKKwkJcmVsLT5wZ3N0YXRpbmRfaW5mbyA9IE5VTEw7CisJfQogfQogCiAv KgpAQCAtMTY4LDM5ICsyMTAsNTUgQEAgcGdzdGF0X3VubGlua19yZWxhdGlvbihSZWxhdGlv biByZWwpCiB2b2lkCiBwZ3N0YXRfY3JlYXRlX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCkKIHsK LQlwZ3N0YXRfY3JlYXRlX3RyYW5zYWN0aW9uYWwoUEdTVEFUX0tJTkRfUkVMQVRJT04sCi0J CQkJCQkJCXJlbC0+cmRfcmVsLT5yZWxpc3NoYXJlZCA/IEludmFsaWRPaWQgOiBNeURhdGFi YXNlSWQsCi0JCQkJCQkJCVJlbGF0aW9uR2V0UmVsaWQocmVsKSk7CisJaWYgKHJlbC0+cmRf cmVsLT5yZWxraW5kID09IFJFTEtJTkRfSU5ERVgpCisJCXBnc3RhdF9jcmVhdGVfdHJhbnNh Y3Rpb25hbChQR1NUQVRfS0lORF9JTkRFWCwKKwkJCQkJCQkJCXJlbC0+cmRfcmVsLT5yZWxp c3NoYXJlZCA/IEludmFsaWRPaWQgOiBNeURhdGFiYXNlSWQsCisJCQkJCQkJCQlSZWxhdGlv bkdldFJlbGlkKHJlbCkpOworCWVsc2UKKwkJcGdzdGF0X2NyZWF0ZV90cmFuc2FjdGlvbmFs KFBHU1RBVF9LSU5EX1RBQkxFLAorCQkJCQkJCQkJcmVsLT5yZF9yZWwtPnJlbGlzc2hhcmVk ID8gSW52YWxpZE9pZCA6IE15RGF0YWJhc2VJZCwKKwkJCQkJCQkJCVJlbGF0aW9uR2V0UmVs aWQocmVsKSk7Cit9CisKKy8qCisgKiBFbnN1cmUgdGhhdCBpbmRleCBzdGF0cyBhcmUgZHJv cHBlZCBpZiB0cmFuc2FjdGlvbiBjb21taXRzLgorICovCit2b2lkCitwZ3N0YXRfZHJvcF9p bmRleChSZWxhdGlvbiByZWwpCit7CisJcGdzdGF0X2Ryb3BfdHJhbnNhY3Rpb25hbChQR1NU QVRfS0lORF9JTkRFWCwKKwkJCQkJCQkgIHJlbC0+cmRfcmVsLT5yZWxpc3NoYXJlZCA/IElu dmFsaWRPaWQgOiBNeURhdGFiYXNlSWQsCisJCQkJCQkJICBSZWxhdGlvbkdldFJlbGlkKHJl bCkpOwogfQogCiAvKgotICogRW5zdXJlIHRoYXQgc3RhdHMgYXJlIGRyb3BwZWQgaWYgdHJh bnNhY3Rpb24gY29tbWl0cy4KKyAqIEVuc3VyZSB0aGF0IHRhYmxlIHN0YXRzIGFyZSBkcm9w cGVkIGlmIHRyYW5zYWN0aW9uIGNvbW1pdHMuCiAgKi8KIHZvaWQKLXBnc3RhdF9kcm9wX3Jl bGF0aW9uKFJlbGF0aW9uIHJlbCkKK3Bnc3RhdF9kcm9wX2hlYXAoUmVsYXRpb24gcmVsKQog ewogCWludAkJCW5lc3RfbGV2ZWwgPSBHZXRDdXJyZW50VHJhbnNhY3Rpb25OZXN0TGV2ZWwo KTsKLQlQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvOworCVBnU3RhdF9UYWJsZVN0 YXR1cyAqcGdzdGF0dGFiX2luZm87CiAKLQlwZ3N0YXRfZHJvcF90cmFuc2FjdGlvbmFsKFBH U1RBVF9LSU5EX1JFTEFUSU9OLAorCXBnc3RhdF9kcm9wX3RyYW5zYWN0aW9uYWwoUEdTVEFU X0tJTkRfVEFCTEUsCiAJCQkJCQkJICByZWwtPnJkX3JlbC0+cmVsaXNzaGFyZWQgPyBJbnZh bGlkT2lkIDogTXlEYXRhYmFzZUlkLAogCQkJCQkJCSAgUmVsYXRpb25HZXRSZWxpZChyZWwp KTsKIAotCWlmICghcGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihyZWwpKQorCWlmICgh cGdzdGF0X3Nob3VsZF9jb3VudF90YWJsZShyZWwpKQogCQlyZXR1cm47CiAKIAkvKgogCSAq IFRyYW5zYWN0aW9uYWxseSBzZXQgY291bnRlcnMgdG8gMC4gVGhhdCBlbnN1cmVzIHRoYXQg YWNjZXNzZXMgdG8KIAkgKiBwZ19zdGF0X3hhY3RfYWxsX3RhYmxlcyBpbnNpZGUgdGhlIHRy YW5zYWN0aW9uIHNob3cgMC4KIAkgKi8KLQlwZ3N0YXRfaW5mbyA9IHJlbC0+cGdzdGF0X2lu Zm87Ci0JaWYgKHBnc3RhdF9pbmZvLT50cmFucyAmJgotCQlwZ3N0YXRfaW5mby0+dHJhbnMt Pm5lc3RfbGV2ZWwgPT0gbmVzdF9sZXZlbCkKKwlwZ3N0YXR0YWJfaW5mbyA9IHJlbC0+cGdz dGF0dGFiX2luZm87CisJaWYgKHBnc3RhdHRhYl9pbmZvLT50cmFucyAmJgorCQlwZ3N0YXR0 YWJfaW5mby0+dHJhbnMtPm5lc3RfbGV2ZWwgPT0gbmVzdF9sZXZlbCkKIAl7Ci0JCXNhdmVf dHJ1bmNkcm9wX2NvdW50ZXJzKHBnc3RhdF9pbmZvLT50cmFucywgdHJ1ZSk7Ci0JCXBnc3Rh dF9pbmZvLT50cmFucy0+dHVwbGVzX2luc2VydGVkID0gMDsKLQkJcGdzdGF0X2luZm8tPnRy YW5zLT50dXBsZXNfdXBkYXRlZCA9IDA7Ci0JCXBnc3RhdF9pbmZvLT50cmFucy0+dHVwbGVz X2RlbGV0ZWQgPSAwOworCQlzYXZlX3RydW5jZHJvcF9jb3VudGVycyhwZ3N0YXR0YWJfaW5m by0+dHJhbnMsIHRydWUpOworCQlwZ3N0YXR0YWJfaW5mby0+dHJhbnMtPnR1cGxlc19pbnNl cnRlZCA9IDA7CisJCXBnc3RhdHRhYl9pbmZvLT50cmFucy0+dHVwbGVzX3VwZGF0ZWQgPSAw OworCQlwZ3N0YXR0YWJfaW5mby0+dHJhbnMtPnR1cGxlc19kZWxldGVkID0gMDsKIAl9CiB9 CiAKQEAgLTIxMiw3ICsyNzAsNyBAQCBwZ3N0YXRfcmVwb3J0X3ZhY3V1bShPaWQgdGFibGVv aWQsIGJvb2wgc2hhcmVkLAogCQkJCQkgUGdTdGF0X0NvdW50ZXIgbGl2ZXR1cGxlcywgUGdT dGF0X0NvdW50ZXIgZGVhZHR1cGxlcykKIHsKIAlQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3Jl ZjsKLQlQZ1N0YXRTaGFyZWRfUmVsYXRpb24gKnNodGFiZW50cnk7CisJUGdTdGF0U2hhcmVk X1RhYmxlICpzaHRhYmVudHJ5OwogCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5Owog CU9pZAkJCWRib2lkID0gKHNoYXJlZCA/IEludmFsaWRPaWQgOiBNeURhdGFiYXNlSWQpOwog CVRpbWVzdGFtcFR6IHRzOwpAQCAtMjI0LDEwICsyODIsMTAgQEAgcGdzdGF0X3JlcG9ydF92 YWN1dW0oT2lkIHRhYmxlb2lkLCBib29sIHNoYXJlZCwKIAl0cyA9IEdldEN1cnJlbnRUaW1l c3RhbXAoKTsKIAogCS8qIGJsb2NrIGFjcXVpcmluZyBsb2NrIGZvciB0aGUgc2FtZSByZWFz b24gYXMgcGdzdGF0X3JlcG9ydF9hdXRvdmFjKCkgKi8KLQllbnRyeV9yZWYgPSBwZ3N0YXRf Z2V0X2VudHJ5X3JlZl9sb2NrZWQoUEdTVEFUX0tJTkRfUkVMQVRJT04sCisJZW50cnlfcmVm ID0gcGdzdGF0X2dldF9lbnRyeV9yZWZfbG9ja2VkKFBHU1RBVF9LSU5EX1RBQkxFLAogCQkJ CQkJCQkJCQlkYm9pZCwgdGFibGVvaWQsIGZhbHNlKTsKIAotCXNodGFiZW50cnkgPSAoUGdT dGF0U2hhcmVkX1JlbGF0aW9uICopIGVudHJ5X3JlZi0+c2hhcmVkX3N0YXRzOworCXNodGFi ZW50cnkgPSAoUGdTdGF0U2hhcmVkX1RhYmxlICopIGVudHJ5X3JlZi0+c2hhcmVkX3N0YXRz OwogCXRhYmVudHJ5ID0gJnNodGFiZW50cnktPnN0YXRzOwogCiAJdGFiZW50cnktPm5fbGl2 ZV90dXBsZXMgPSBsaXZldHVwbGVzOwpAQCAtMjcxLDcgKzMyOSw3IEBAIHBnc3RhdF9yZXBv cnRfYW5hbHl6ZShSZWxhdGlvbiByZWwsCiAJCQkJCSAgYm9vbCByZXNldGNvdW50ZXIpCiB7 CiAJUGdTdGF0X0VudHJ5UmVmICplbnRyeV9yZWY7Ci0JUGdTdGF0U2hhcmVkX1JlbGF0aW9u ICpzaHRhYmVudHJ5OworCVBnU3RhdFNoYXJlZF9UYWJsZSAqc2h0YWJlbnRyeTsKIAlQZ1N0 YXRfU3RhdFRhYkVudHJ5ICp0YWJlbnRyeTsKIAlPaWQJCQlkYm9pZCA9IChyZWwtPnJkX3Jl bC0+cmVsaXNzaGFyZWQgPyBJbnZhbGlkT2lkIDogTXlEYXRhYmFzZUlkKTsKIApAQCAtMjkw LDMxICszNDgsMzEgQEAgcGdzdGF0X3JlcG9ydF9hbmFseXplKFJlbGF0aW9uIHJlbCwKIAkg KgogCSAqIFdhc3RlIG5vIHRpbWUgb24gcGFydGl0aW9uZWQgdGFibGVzLCB0aG91Z2guCiAJ ICovCi0JaWYgKHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24ocmVsKSAmJgorCWlmIChw Z3N0YXRfc2hvdWxkX2NvdW50X3RhYmxlKHJlbCkgJiYKIAkJcmVsLT5yZF9yZWwtPnJlbGtp bmQgIT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKIAl7CiAJCVBnU3RhdF9UYWJsZVhh Y3RTdGF0dXMgKnRyYW5zOwogCi0JCWZvciAodHJhbnMgPSByZWwtPnBnc3RhdF9pbmZvLT50 cmFuczsgdHJhbnM7IHRyYW5zID0gdHJhbnMtPnVwcGVyKQorCQlmb3IgKHRyYW5zID0gcmVs LT5wZ3N0YXR0YWJfaW5mby0+dHJhbnM7IHRyYW5zOyB0cmFucyA9IHRyYW5zLT51cHBlcikK IAkJewogCQkJbGl2ZXR1cGxlcyAtPSB0cmFucy0+dHVwbGVzX2luc2VydGVkIC0gdHJhbnMt PnR1cGxlc19kZWxldGVkOwogCQkJZGVhZHR1cGxlcyAtPSB0cmFucy0+dHVwbGVzX3VwZGF0 ZWQgKyB0cmFucy0+dHVwbGVzX2RlbGV0ZWQ7CiAJCX0KIAkJLyogY291bnQgc3R1ZmYgaW5z ZXJ0ZWQgYnkgYWxyZWFkeS1hYm9ydGVkIHN1YnhhY3RzLCB0b28gKi8KLQkJZGVhZHR1cGxl cyAtPSByZWwtPnBnc3RhdF9pbmZvLT50X2NvdW50cy50X2RlbHRhX2RlYWRfdHVwbGVzOwor CQlkZWFkdHVwbGVzIC09IHJlbC0+cGdzdGF0dGFiX2luZm8tPnRfY291bnRzLnRfZGVsdGFf ZGVhZF90dXBsZXM7CiAJCS8qIFNpbmNlIEFOQUxZWkUncyBjb3VudHMgYXJlIGVzdGltYXRl cywgd2UgY291bGQgaGF2ZSB1bmRlcmZsb3dlZCAqLwogCQlsaXZldHVwbGVzID0gTWF4KGxp dmV0dXBsZXMsIDApOwogCQlkZWFkdHVwbGVzID0gTWF4KGRlYWR0dXBsZXMsIDApOwogCX0K IAogCS8qIGJsb2NrIGFjcXVpcmluZyBsb2NrIGZvciB0aGUgc2FtZSByZWFzb24gYXMgcGdz dGF0X3JlcG9ydF9hdXRvdmFjKCkgKi8KLQllbnRyeV9yZWYgPSBwZ3N0YXRfZ2V0X2VudHJ5 X3JlZl9sb2NrZWQoUEdTVEFUX0tJTkRfUkVMQVRJT04sIGRib2lkLAorCWVudHJ5X3JlZiA9 IHBnc3RhdF9nZXRfZW50cnlfcmVmX2xvY2tlZChQR1NUQVRfS0lORF9UQUJMRSwgZGJvaWQs CiAJCQkJCQkJCQkJCVJlbGF0aW9uR2V0UmVsaWQocmVsKSwKIAkJCQkJCQkJCQkJZmFsc2Up OwogCS8qIGNhbid0IGdldCBkcm9wcGVkIHdoaWxlIGFjY2Vzc2VkICovCiAJQXNzZXJ0KGVu dHJ5X3JlZiAhPSBOVUxMICYmIGVudHJ5X3JlZi0+c2hhcmVkX3N0YXRzICE9IE5VTEwpOwog Ci0Jc2h0YWJlbnRyeSA9IChQZ1N0YXRTaGFyZWRfUmVsYXRpb24gKikgZW50cnlfcmVmLT5z aGFyZWRfc3RhdHM7CisJc2h0YWJlbnRyeSA9IChQZ1N0YXRTaGFyZWRfVGFibGUgKikgZW50 cnlfcmVmLT5zaGFyZWRfc3RhdHM7CiAJdGFiZW50cnkgPSAmc2h0YWJlbnRyeS0+c3RhdHM7 CiAKIAl0YWJlbnRyeS0+bl9saXZlX3R1cGxlcyA9IGxpdmV0dXBsZXM7CkBAIC0zNDgsMTIg KzQwNiwxMiBAQCBwZ3N0YXRfcmVwb3J0X2FuYWx5emUoUmVsYXRpb24gcmVsLAogdm9pZAog cGdzdGF0X2NvdW50X2hlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbCwgUGdTdGF0X0NvdW50ZXIg bikKIHsKLQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihyZWwpKQorCWlmIChw Z3N0YXRfc2hvdWxkX2NvdW50X3RhYmxlKHJlbCkpCiAJewotCQlQZ1N0YXRfVGFibGVTdGF0 dXMgKnBnc3RhdF9pbmZvID0gcmVsLT5wZ3N0YXRfaW5mbzsKKwkJUGdTdGF0X1RhYmxlU3Rh dHVzICpwZ3N0YXR0YWJfaW5mbyA9IHJlbC0+cGdzdGF0dGFiX2luZm87CiAKLQkJZW5zdXJl X3RhYnN0YXRfeGFjdF9sZXZlbChwZ3N0YXRfaW5mbyk7Ci0JCXBnc3RhdF9pbmZvLT50cmFu cy0+dHVwbGVzX2luc2VydGVkICs9IG47CisJCWVuc3VyZV90YWJzdGF0X3hhY3RfbGV2ZWwo cGdzdGF0dGFiX2luZm8pOworCQlwZ3N0YXR0YWJfaW5mby0+dHJhbnMtPnR1cGxlc19pbnNl cnRlZCArPSBuOwogCX0KIH0KIApAQCAtMzYzLDE2ICs0MjEsMTYgQEAgcGdzdGF0X2NvdW50 X2hlYXBfaW5zZXJ0KFJlbGF0aW9uIHJlbCwgUGdTdGF0X0NvdW50ZXIgbikKIHZvaWQKIHBn c3RhdF9jb3VudF9oZWFwX3VwZGF0ZShSZWxhdGlvbiByZWwsIGJvb2wgaG90KQogewotCWlm IChwZ3N0YXRfc2hvdWxkX2NvdW50X3JlbGF0aW9uKHJlbCkpCisJaWYgKHBnc3RhdF9zaG91 bGRfY291bnRfdGFibGUocmVsKSkKIAl7Ci0JCVBnU3RhdF9UYWJsZVN0YXR1cyAqcGdzdGF0 X2luZm8gPSByZWwtPnBnc3RhdF9pbmZvOworCQlQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3Rh dHRhYl9pbmZvID0gcmVsLT5wZ3N0YXR0YWJfaW5mbzsKIAotCQllbnN1cmVfdGFic3RhdF94 YWN0X2xldmVsKHBnc3RhdF9pbmZvKTsKLQkJcGdzdGF0X2luZm8tPnRyYW5zLT50dXBsZXNf dXBkYXRlZCsrOworCQllbnN1cmVfdGFic3RhdF94YWN0X2xldmVsKHBnc3RhdHRhYl9pbmZv KTsKKwkJcGdzdGF0dGFiX2luZm8tPnRyYW5zLT50dXBsZXNfdXBkYXRlZCsrOwogCiAJCS8q IHRfdHVwbGVzX2hvdF91cGRhdGVkIGlzIG5vbnRyYW5zYWN0aW9uYWwsIHNvIGp1c3QgYWR2 YW5jZSBpdCAqLwogCQlpZiAoaG90KQotCQkJcGdzdGF0X2luZm8tPnRfY291bnRzLnRfdHVw bGVzX2hvdF91cGRhdGVkKys7CisJCQlwZ3N0YXR0YWJfaW5mby0+dF9jb3VudHMudF90dXBs ZXNfaG90X3VwZGF0ZWQrKzsKIAl9CiB9CiAKQEAgLTM4MiwxMiArNDQwLDEyIEBAIHBnc3Rh dF9jb3VudF9oZWFwX3VwZGF0ZShSZWxhdGlvbiByZWwsIGJvb2wgaG90KQogdm9pZAogcGdz dGF0X2NvdW50X2hlYXBfZGVsZXRlKFJlbGF0aW9uIHJlbCkKIHsKLQlpZiAocGdzdGF0X3No b3VsZF9jb3VudF9yZWxhdGlvbihyZWwpKQorCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3Rh YmxlKHJlbCkpCiAJewotCQlQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvID0gcmVs LT5wZ3N0YXRfaW5mbzsKKwkJUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXR0YWJfaW5mbyA9 IHJlbC0+cGdzdGF0dGFiX2luZm87CiAKLQkJZW5zdXJlX3RhYnN0YXRfeGFjdF9sZXZlbChw Z3N0YXRfaW5mbyk7Ci0JCXBnc3RhdF9pbmZvLT50cmFucy0+dHVwbGVzX2RlbGV0ZWQrKzsK KwkJZW5zdXJlX3RhYnN0YXRfeGFjdF9sZXZlbChwZ3N0YXR0YWJfaW5mbyk7CisJCXBnc3Rh dHRhYl9pbmZvLT50cmFucy0+dHVwbGVzX2RlbGV0ZWQrKzsKIAl9CiB9CiAKQEAgLTM5Nywx NSArNDU1LDE1IEBAIHBnc3RhdF9jb3VudF9oZWFwX2RlbGV0ZShSZWxhdGlvbiByZWwpCiB2 b2lkCiBwZ3N0YXRfY291bnRfdHJ1bmNhdGUoUmVsYXRpb24gcmVsKQogewotCWlmIChwZ3N0 YXRfc2hvdWxkX2NvdW50X3JlbGF0aW9uKHJlbCkpCisJaWYgKHBnc3RhdF9zaG91bGRfY291 bnRfdGFibGUocmVsKSkKIAl7Ci0JCVBnU3RhdF9UYWJsZVN0YXR1cyAqcGdzdGF0X2luZm8g PSByZWwtPnBnc3RhdF9pbmZvOworCQlQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdHRhYl9p bmZvID0gcmVsLT5wZ3N0YXR0YWJfaW5mbzsKIAotCQllbnN1cmVfdGFic3RhdF94YWN0X2xl dmVsKHBnc3RhdF9pbmZvKTsKLQkJc2F2ZV90cnVuY2Ryb3BfY291bnRlcnMocGdzdGF0X2lu Zm8tPnRyYW5zLCBmYWxzZSk7Ci0JCXBnc3RhdF9pbmZvLT50cmFucy0+dHVwbGVzX2luc2Vy dGVkID0gMDsKLQkJcGdzdGF0X2luZm8tPnRyYW5zLT50dXBsZXNfdXBkYXRlZCA9IDA7Ci0J CXBnc3RhdF9pbmZvLT50cmFucy0+dHVwbGVzX2RlbGV0ZWQgPSAwOworCQllbnN1cmVfdGFi c3RhdF94YWN0X2xldmVsKHBnc3RhdHRhYl9pbmZvKTsKKwkJc2F2ZV90cnVuY2Ryb3BfY291 bnRlcnMocGdzdGF0dGFiX2luZm8tPnRyYW5zLCBmYWxzZSk7CisJCXBnc3RhdHRhYl9pbmZv LT50cmFucy0+dHVwbGVzX2luc2VydGVkID0gMDsKKwkJcGdzdGF0dGFiX2luZm8tPnRyYW5z LT50dXBsZXNfdXBkYXRlZCA9IDA7CisJCXBnc3RhdHRhYl9pbmZvLT50cmFucy0+dHVwbGVz X2RlbGV0ZWQgPSAwOwogCX0KIH0KIApAQCAtNDIwLDExICs0NzgsMTEgQEAgcGdzdGF0X2Nv dW50X3RydW5jYXRlKFJlbGF0aW9uIHJlbCkKIHZvaWQKIHBnc3RhdF91cGRhdGVfaGVhcF9k ZWFkX3R1cGxlcyhSZWxhdGlvbiByZWwsIGludCBkZWx0YSkKIHsKLQlpZiAocGdzdGF0X3No b3VsZF9jb3VudF9yZWxhdGlvbihyZWwpKQorCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3Rh YmxlKHJlbCkpCiAJewotCQlQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvID0gcmVs LT5wZ3N0YXRfaW5mbzsKKwkJUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXR0YWJfaW5mbyA9 IHJlbC0+cGdzdGF0dGFiX2luZm87CiAKLQkJcGdzdGF0X2luZm8tPnRfY291bnRzLnRfZGVs dGFfZGVhZF90dXBsZXMgLT0gZGVsdGE7CisJCXBnc3RhdHRhYl9pbmZvLT50X2NvdW50cy50 X2RlbHRhX2RlYWRfdHVwbGVzIC09IGRlbHRhOwogCX0KIH0KIApAQCAtNDYwLDcgKzUxOCw0 MiBAQCBwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRyeV9leHQoYm9vbCBzaGFyZWQsIE9pZCBy ZWxvaWQpCiAJT2lkCQkJZGJvaWQgPSAoc2hhcmVkID8gSW52YWxpZE9pZCA6IE15RGF0YWJh c2VJZCk7CiAKIAlyZXR1cm4gKFBnU3RhdF9TdGF0VGFiRW50cnkgKikKLQkJcGdzdGF0X2Zl dGNoX2VudHJ5KFBHU1RBVF9LSU5EX1JFTEFUSU9OLCBkYm9pZCwgcmVsb2lkKTsKKwkJcGdz dGF0X2ZldGNoX2VudHJ5KFBHU1RBVF9LSU5EX1RBQkxFLCBkYm9pZCwgcmVsb2lkKTsKK30K KworLyoKKyAqIFN1cHBvcnQgZnVuY3Rpb24gZm9yIHRoZSBTUUwtY2FsbGFibGUgcGdzdGF0 KiBmdW5jdGlvbnMuIFJldHVybnMKKyAqIHRoZSBjb2xsZWN0ZWQgc3RhdGlzdGljcyBmb3Ig b25lIGluZGV4IG9yIE5VTEwuIE5VTEwgZG9lc24ndCBtZWFuCisgKiB0aGF0IHRoZSBpbmRl eCBkb2Vzbid0IGV4aXN0LCBqdXN0IHRoYXQgdGhlcmUgYXJlIG5vIHN0YXRpc3RpY3MsIHNv IHRoZQorICogY2FsbGVyIGlzIGJldHRlciBvZmYgdG8gcmVwb3J0IFpFUk8gaW5zdGVhZC4K KyAqLworUGdTdGF0X1N0YXRJbmRFbnRyeSAqCitwZ3N0YXRfZmV0Y2hfc3RhdF9pbmRlbnRy eShPaWQgcmVsaWQpCit7CisJUGdTdGF0X1N0YXRJbmRFbnRyeSAqaW5kZW50cnk7CisKKwlp bmRlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X2luZGVudHJ5X2V4dChmYWxzZSwgcmVsaWQp OworCWlmIChpbmRlbnRyeSAhPSBOVUxMKQorCQlyZXR1cm4gaW5kZW50cnk7CisKKwkvKgor CSAqIElmIHdlIGRpZG4ndCBmaW5kIGl0LCBtYXliZSBpdCdzIGEgc2hhcmVkIGluZGV4Lgor CSAqLworCWluZGVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfaW5kZW50cnlfZXh0KHRydWUs IHJlbGlkKTsKKwlyZXR1cm4gaW5kZW50cnk7Cit9CisKKy8qCisgKiBNb3JlIGVmZmljaWVu dCB2ZXJzaW9uIG9mIHBnc3RhdF9mZXRjaF9zdGF0X2luZGVudHJ5KCksIGFsbG93aW5nIHRv IHNwZWNpZnkKKyAqIHdoZXRoZXIgdGhlIHRvLWJlLWFjY2Vzc2VkIGluZGV4IGlzIHNoYXJl ZCBvciBub3QuCisgKi8KK1BnU3RhdF9TdGF0SW5kRW50cnkgKgorcGdzdGF0X2ZldGNoX3N0 YXRfaW5kZW50cnlfZXh0KGJvb2wgc2hhcmVkLCBPaWQgcmVsb2lkKQoreworCU9pZAkJCWRi b2lkID0gKHNoYXJlZCA/IEludmFsaWRPaWQgOiBNeURhdGFiYXNlSWQpOworCisJcmV0dXJu IChQZ1N0YXRfU3RhdEluZEVudHJ5ICopCisJCXBnc3RhdF9mZXRjaF9lbnRyeShQR1NUQVRf S0lORF9JTkRFWCwgZGJvaWQsIHJlbG9pZCk7CiB9CiAKIC8qCkBAIC00NzYsOSArNTY5LDMx IEBAIGZpbmRfdGFic3RhdF9lbnRyeShPaWQgcmVsX2lkKQogewogCVBnU3RhdF9FbnRyeVJl ZiAqZW50cnlfcmVmOwogCi0JZW50cnlfcmVmID0gcGdzdGF0X2ZldGNoX3BlbmRpbmdfZW50 cnkoUEdTVEFUX0tJTkRfUkVMQVRJT04sIE15RGF0YWJhc2VJZCwgcmVsX2lkKTsKKwllbnRy eV9yZWYgPSBwZ3N0YXRfZmV0Y2hfcGVuZGluZ19lbnRyeShQR1NUQVRfS0lORF9UQUJMRSwg TXlEYXRhYmFzZUlkLCByZWxfaWQpOworCWlmICghZW50cnlfcmVmKQorCQllbnRyeV9yZWYg PSBwZ3N0YXRfZmV0Y2hfcGVuZGluZ19lbnRyeShQR1NUQVRfS0lORF9UQUJMRSwgSW52YWxp ZE9pZCwgcmVsX2lkKTsKKworCWlmIChlbnRyeV9yZWYpCisJCXJldHVybiBlbnRyeV9yZWYt PnBlbmRpbmc7CisJcmV0dXJuIE5VTEw7Cit9CisKKy8qCisgKiBmaW5kIGFueSBleGlzdGlu ZyBQZ1N0YXRfSW5kZXhTdGF0dXMgZW50cnkgZm9yIHJlbAorICoKKyAqIEZpbmQgYW55IGV4 aXN0aW5nIFBnU3RhdF9JbmRleFN0YXR1cyBlbnRyeSBmb3IgcmVsX2lkIGluIHRoZSBjdXJy ZW50CisgKiBkYXRhYmFzZS4gSWYgbm90IGZvdW5kLCB0cnkgZmluZGluZyBmcm9tIHNoYXJl ZCBpbmRleGVzLgorICoKKyAqIElmIG5vIGVudHJ5IGZvdW5kLCByZXR1cm4gTlVMTCwgZG9u J3QgY3JlYXRlIGEgbmV3IG9uZQorICovCitQZ1N0YXRfSW5kZXhTdGF0dXMgKgorZmluZF9p bmRzdGF0X2VudHJ5KE9pZCByZWxfaWQpCit7CisJUGdTdGF0X0VudHJ5UmVmICplbnRyeV9y ZWY7CisKKwllbnRyeV9yZWYgPSBwZ3N0YXRfZmV0Y2hfcGVuZGluZ19lbnRyeShQR1NUQVRf S0lORF9JTkRFWCwgTXlEYXRhYmFzZUlkLCByZWxfaWQpOwogCWlmICghZW50cnlfcmVmKQot CQllbnRyeV9yZWYgPSBwZ3N0YXRfZmV0Y2hfcGVuZGluZ19lbnRyeShQR1NUQVRfS0lORF9S RUxBVElPTiwgSW52YWxpZE9pZCwgcmVsX2lkKTsKKwkJZW50cnlfcmVmID0gcGdzdGF0X2Zl dGNoX3BlbmRpbmdfZW50cnkoUEdTVEFUX0tJTkRfSU5ERVgsIEludmFsaWRPaWQsIHJlbF9p ZCk7CiAKIAlpZiAoZW50cnlfcmVmKQogCQlyZXR1cm4gZW50cnlfcmVmLT5wZW5kaW5nOwpA QCAtNjk0LDI3ICs4MDksMjcgQEAgcGdzdGF0X3R3b3BoYXNlX3Bvc3Rjb21taXQoVHJhbnNh Y3Rpb25JZCB4aWQsIHVpbnQxNiBpbmZvLAogCQkJCQkJICAgdm9pZCAqcmVjZGF0YSwgdWlu dDMyIGxlbikKIHsKIAlUd29QaGFzZVBnU3RhdFJlY29yZCAqcmVjID0gKFR3b1BoYXNlUGdT dGF0UmVjb3JkICopIHJlY2RhdGE7Ci0JUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXRfaW5m bzsKKwlQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdHRhYl9pbmZvOwogCiAJLyogRmluZCBv ciBjcmVhdGUgYSB0YWJzdGF0IGVudHJ5IGZvciB0aGUgcmVsICovCi0JcGdzdGF0X2luZm8g PSBwZ3N0YXRfcHJlcF9yZWxhdGlvbl9wZW5kaW5nKHJlYy0+dF9pZCwgcmVjLT50X3NoYXJl ZCk7CisJcGdzdGF0dGFiX2luZm8gPSBwZ3N0YXRfcHJlcF90YWJsZV9wZW5kaW5nKHJlYy0+ dF9pZCwgcmVjLT50X3NoYXJlZCk7CiAKIAkvKiBTYW1lIG1hdGggYXMgaW4gQXRFT1hhY3Rf UGdTdGF0LCBjb21taXQgY2FzZSAqLwotCXBnc3RhdF9pbmZvLT50X2NvdW50cy50X3R1cGxl c19pbnNlcnRlZCArPSByZWMtPnR1cGxlc19pbnNlcnRlZDsKLQlwZ3N0YXRfaW5mby0+dF9j b3VudHMudF90dXBsZXNfdXBkYXRlZCArPSByZWMtPnR1cGxlc191cGRhdGVkOwotCXBnc3Rh dF9pbmZvLT50X2NvdW50cy50X3R1cGxlc19kZWxldGVkICs9IHJlYy0+dHVwbGVzX2RlbGV0 ZWQ7Ci0JcGdzdGF0X2luZm8tPnRfY291bnRzLnRfdHJ1bmNkcm9wcGVkID0gcmVjLT50X3Ry dW5jZHJvcHBlZDsKKwlwZ3N0YXR0YWJfaW5mby0+dF9jb3VudHMudF90dXBsZXNfaW5zZXJ0 ZWQgKz0gcmVjLT50dXBsZXNfaW5zZXJ0ZWQ7CisJcGdzdGF0dGFiX2luZm8tPnRfY291bnRz LnRfdHVwbGVzX3VwZGF0ZWQgKz0gcmVjLT50dXBsZXNfdXBkYXRlZDsKKwlwZ3N0YXR0YWJf aW5mby0+dF9jb3VudHMudF90dXBsZXNfZGVsZXRlZCArPSByZWMtPnR1cGxlc19kZWxldGVk OworCXBnc3RhdHRhYl9pbmZvLT50X2NvdW50cy50X3RydW5jZHJvcHBlZCA9IHJlYy0+dF90 cnVuY2Ryb3BwZWQ7CiAJaWYgKHJlYy0+dF90cnVuY2Ryb3BwZWQpCiAJewogCQkvKiBmb3Jn ZXQgbGl2ZS9kZWFkIHN0YXRzIHNlZW4gYnkgYmFja2VuZCB0aHVzIGZhciAqLwotCQlwZ3N0 YXRfaW5mby0+dF9jb3VudHMudF9kZWx0YV9saXZlX3R1cGxlcyA9IDA7Ci0JCXBnc3RhdF9p bmZvLT50X2NvdW50cy50X2RlbHRhX2RlYWRfdHVwbGVzID0gMDsKKwkJcGdzdGF0dGFiX2lu Zm8tPnRfY291bnRzLnRfZGVsdGFfbGl2ZV90dXBsZXMgPSAwOworCQlwZ3N0YXR0YWJfaW5m by0+dF9jb3VudHMudF9kZWx0YV9kZWFkX3R1cGxlcyA9IDA7CiAJfQotCXBnc3RhdF9pbmZv LT50X2NvdW50cy50X2RlbHRhX2xpdmVfdHVwbGVzICs9CisJcGdzdGF0dGFiX2luZm8tPnRf Y291bnRzLnRfZGVsdGFfbGl2ZV90dXBsZXMgKz0KIAkJcmVjLT50dXBsZXNfaW5zZXJ0ZWQg LSByZWMtPnR1cGxlc19kZWxldGVkOwotCXBnc3RhdF9pbmZvLT50X2NvdW50cy50X2RlbHRh X2RlYWRfdHVwbGVzICs9CisJcGdzdGF0dGFiX2luZm8tPnRfY291bnRzLnRfZGVsdGFfZGVh ZF90dXBsZXMgKz0KIAkJcmVjLT50dXBsZXNfdXBkYXRlZCArIHJlYy0+dHVwbGVzX2RlbGV0 ZWQ7Ci0JcGdzdGF0X2luZm8tPnRfY291bnRzLnRfY2hhbmdlZF90dXBsZXMgKz0KKwlwZ3N0 YXR0YWJfaW5mby0+dF9jb3VudHMudF9jaGFuZ2VkX3R1cGxlcyArPQogCQlyZWMtPnR1cGxl c19pbnNlcnRlZCArIHJlYy0+dHVwbGVzX3VwZGF0ZWQgKwogCQlyZWMtPnR1cGxlc19kZWxl dGVkOwogfQpAQCAtNzMwLDEwICs4NDUsMTAgQEAgcGdzdGF0X3R3b3BoYXNlX3Bvc3RhYm9y dChUcmFuc2FjdGlvbklkIHhpZCwgdWludDE2IGluZm8sCiAJCQkJCQkgIHZvaWQgKnJlY2Rh dGEsIHVpbnQzMiBsZW4pCiB7CiAJVHdvUGhhc2VQZ1N0YXRSZWNvcmQgKnJlYyA9IChUd29Q aGFzZVBnU3RhdFJlY29yZCAqKSByZWNkYXRhOwotCVBnU3RhdF9UYWJsZVN0YXR1cyAqcGdz dGF0X2luZm87CisJUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXR0YWJfaW5mbzsKIAogCS8q IEZpbmQgb3IgY3JlYXRlIGEgdGFic3RhdCBlbnRyeSBmb3IgdGhlIHJlbCAqLwotCXBnc3Rh dF9pbmZvID0gcGdzdGF0X3ByZXBfcmVsYXRpb25fcGVuZGluZyhyZWMtPnRfaWQsIHJlYy0+ dF9zaGFyZWQpOworCXBnc3RhdHRhYl9pbmZvID0gcGdzdGF0X3ByZXBfdGFibGVfcGVuZGlu ZyhyZWMtPnRfaWQsIHJlYy0+dF9zaGFyZWQpOwogCiAJLyogU2FtZSBtYXRoIGFzIGluIEF0 RU9YYWN0X1BnU3RhdCwgYWJvcnQgY2FzZSAqLwogCWlmIChyZWMtPnRfdHJ1bmNkcm9wcGVk KQpAQCAtNzQyLDEwICs4NTcsMTAgQEAgcGdzdGF0X3R3b3BoYXNlX3Bvc3RhYm9ydChUcmFu c2FjdGlvbklkIHhpZCwgdWludDE2IGluZm8sCiAJCXJlYy0+dHVwbGVzX3VwZGF0ZWQgPSBy ZWMtPnVwZGF0ZWRfcHJlX3RydW5jZHJvcDsKIAkJcmVjLT50dXBsZXNfZGVsZXRlZCA9IHJl Yy0+ZGVsZXRlZF9wcmVfdHJ1bmNkcm9wOwogCX0KLQlwZ3N0YXRfaW5mby0+dF9jb3VudHMu dF90dXBsZXNfaW5zZXJ0ZWQgKz0gcmVjLT50dXBsZXNfaW5zZXJ0ZWQ7Ci0JcGdzdGF0X2lu Zm8tPnRfY291bnRzLnRfdHVwbGVzX3VwZGF0ZWQgKz0gcmVjLT50dXBsZXNfdXBkYXRlZDsK LQlwZ3N0YXRfaW5mby0+dF9jb3VudHMudF90dXBsZXNfZGVsZXRlZCArPSByZWMtPnR1cGxl c19kZWxldGVkOwotCXBnc3RhdF9pbmZvLT50X2NvdW50cy50X2RlbHRhX2RlYWRfdHVwbGVz ICs9CisJcGdzdGF0dGFiX2luZm8tPnRfY291bnRzLnRfdHVwbGVzX2luc2VydGVkICs9IHJl Yy0+dHVwbGVzX2luc2VydGVkOworCXBnc3RhdHRhYl9pbmZvLT50X2NvdW50cy50X3R1cGxl c191cGRhdGVkICs9IHJlYy0+dHVwbGVzX3VwZGF0ZWQ7CisJcGdzdGF0dGFiX2luZm8tPnRf Y291bnRzLnRfdHVwbGVzX2RlbGV0ZWQgKz0gcmVjLT50dXBsZXNfZGVsZXRlZDsKKwlwZ3N0 YXR0YWJfaW5mby0+dF9jb3VudHMudF9kZWx0YV9kZWFkX3R1cGxlcyArPQogCQlyZWMtPnR1 cGxlc19pbnNlcnRlZCArIHJlYy0+dHVwbGVzX3VwZGF0ZWQ7CiB9CiAKQEAgLTc1OSwyMiAr ODc0LDIxIEBAIHBnc3RhdF90d29waGFzZV9wb3N0YWJvcnQoVHJhbnNhY3Rpb25JZCB4aWQs IHVpbnQxNiBpbmZvLAogICogZW50cnkgd2hlbiBzdWNjZXNzZnVsbHkgZmx1c2hpbmcuCiAg Ki8KIGJvb2wKLXBnc3RhdF9yZWxhdGlvbl9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVu dHJ5X3JlZiwgYm9vbCBub3dhaXQpCitwZ3N0YXRfdGFibGVfZmx1c2hfY2IoUGdTdGF0X0Vu dHJ5UmVmICplbnRyeV9yZWYsIGJvb2wgbm93YWl0KQogewogCXN0YXRpYyBjb25zdCBQZ1N0 YXRfVGFibGVDb3VudHMgYWxsX3plcm9lczsKIAlPaWQJCQlkYm9pZDsKIAlQZ1N0YXRfVGFi bGVTdGF0dXMgKmxzdGF0czsgLyogcGVuZGluZyBzdGF0cyBlbnRyeSAgKi8KLQlQZ1N0YXRT aGFyZWRfUmVsYXRpb24gKnNodGFic3RhdHM7CisJUGdTdGF0U2hhcmVkX1RhYmxlICpzaHRh YnN0YXRzOwogCVBnU3RhdF9TdGF0VGFiRW50cnkgKnRhYmVudHJ5OwkvKiB0YWJsZSBlbnRy eSBvZiBzaGFyZWQgc3RhdHMgKi8KIAlQZ1N0YXRfU3RhdERCRW50cnkgKmRiZW50cnk7CS8q IHBlbmRpbmcgZGF0YWJhc2UgZW50cnkgKi8KIAogCWRib2lkID0gZW50cnlfcmVmLT5zaGFy ZWRfZW50cnktPmtleS5kYm9pZDsKIAlsc3RhdHMgPSAoUGdTdGF0X1RhYmxlU3RhdHVzICop IGVudHJ5X3JlZi0+cGVuZGluZzsKLQlzaHRhYnN0YXRzID0gKFBnU3RhdFNoYXJlZF9SZWxh dGlvbiAqKSBlbnRyeV9yZWYtPnNoYXJlZF9zdGF0czsKKwlzaHRhYnN0YXRzID0gKFBnU3Rh dFNoYXJlZF9UYWJsZSAqKSBlbnRyeV9yZWYtPnNoYXJlZF9zdGF0czsKIAogCS8qCi0JICog SWdub3JlIGVudHJpZXMgdGhhdCBkaWRuJ3QgYWNjdW11bGF0ZSBhbnkgYWN0dWFsIGNvdW50 cywgc3VjaCBhcwotCSAqIGluZGV4ZXMgdGhhdCB3ZXJlIG9wZW5lZCBieSB0aGUgcGxhbm5l ciBidXQgbm90IHVzZWQuCisJICogSWdub3JlIGVudHJpZXMgdGhhdCBkaWRuJ3QgYWNjdW11 bGF0ZSBhbnkgYWN0dWFsIGNvdW50cy4KIAkgKi8KIAlpZiAobWVtY21wKCZsc3RhdHMtPnRf Y291bnRzLCAmYWxsX3plcm9lcywKIAkJCSAgIHNpemVvZihQZ1N0YXRfVGFibGVDb3VudHMp KSA9PSAwKQpAQCAtNzkyLDYgKzkwNiw3IEBAIHBnc3RhdF9yZWxhdGlvbl9mbHVzaF9jYihQ Z1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpCiAJaWYgKGxzdGF0cy0+ dF9jb3VudHMudF9udW1zY2FucykKIAl7CiAJCVRpbWVzdGFtcFR6IHQgPSBHZXRDdXJyZW50 VHJhbnNhY3Rpb25TdG9wVGltZXN0YW1wKCk7CisKIAkJaWYgKHQgPiB0YWJlbnRyeS0+bGFz dHNjYW4pCiAJCQl0YWJlbnRyeS0+bGFzdHNjYW4gPSB0OwogCX0KQEAgLTgzOSw4ICs5NTQs NzQgQEAgcGdzdGF0X3JlbGF0aW9uX2ZsdXNoX2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlf cmVmLCBib29sIG5vd2FpdCkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAorLyoKKyAqIEZsdXNoIG91 dCBwZW5kaW5nIHN0YXRzIGZvciB0aGUgZW50cnkKKyAqCisgKiBJZiBub3dhaXQgaXMgdHJ1 ZSwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIGZhbHNlIGlmIGxvY2sgY291bGQgbm90CisgKiBp bW1lZGlhdGVseSBhY3F1aXJlZCwgb3RoZXJ3aXNlIHRydWUgaXMgcmV0dXJuZWQuCisgKgor ICogU29tZSBvZiB0aGUgc3RhdHMgYXJlIGNvcGllZCB0byB0aGUgY29ycmVzcG9uZGluZyBw ZW5kaW5nIGRhdGFiYXNlIHN0YXRzCisgKiBlbnRyeSB3aGVuIHN1Y2Nlc3NmdWxseSBmbHVz aGluZy4KKyAqLworYm9vbAorcGdzdGF0X2luZGV4X2ZsdXNoX2NiKFBnU3RhdF9FbnRyeVJl ZiAqZW50cnlfcmVmLCBib29sIG5vd2FpdCkKK3sKKwlzdGF0aWMgY29uc3QgUGdTdGF0X0lu ZGV4Q291bnRzIGFsbF96ZXJvZXM7CisJT2lkCQkJZGJvaWQ7CisKKwlQZ1N0YXRfSW5kZXhT dGF0dXMgKmxzdGF0czsgLyogcGVuZGluZyBzdGF0cyBlbnRyeSAgKi8KKwlQZ1N0YXRTaGFy ZWRfSW5kZXggKnNocmVsY29tc3RhdHM7CisJUGdTdGF0X1N0YXRJbmRFbnRyeSAqaW5kZW50 cnk7CS8qIGluZGV4IGVudHJ5IG9mIHNoYXJlZCBzdGF0cyAqLworCVBnU3RhdF9TdGF0REJF bnRyeSAqZGJlbnRyeTsJLyogcGVuZGluZyBkYXRhYmFzZSBlbnRyeSAqLworCisJZGJvaWQg PSBlbnRyeV9yZWYtPnNoYXJlZF9lbnRyeS0+a2V5LmRib2lkOworCWxzdGF0cyA9IChQZ1N0 YXRfSW5kZXhTdGF0dXMgKikgZW50cnlfcmVmLT5wZW5kaW5nOworCXNocmVsY29tc3RhdHMg PSAoUGdTdGF0U2hhcmVkX0luZGV4ICopIGVudHJ5X3JlZi0+c2hhcmVkX3N0YXRzOworCisJ LyoKKwkgKiBJZ25vcmUgZW50cmllcyB0aGF0IGRpZG4ndCBhY2N1bXVsYXRlIGFueSBhY3R1 YWwgY291bnRzLCBzdWNoIGFzCisJICogaW5kZXhlcyB0aGF0IHdlcmUgb3BlbmVkIGJ5IHRo ZSBwbGFubmVyIGJ1dCBub3QgdXNlZC4KKwkgKi8KKwlpZiAobWVtY21wKCZsc3RhdHMtPmlf Y291bnRzLCAmYWxsX3plcm9lcywKKwkJCSAgIHNpemVvZihQZ1N0YXRfSW5kZXhDb3VudHMp KSA9PSAwKQorCXsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJaWYgKCFwZ3N0YXRfbG9ja19l bnRyeShlbnRyeV9yZWYsIG5vd2FpdCkpCisJCXJldHVybiBmYWxzZTsKKworCS8qIGFkZCB0 aGUgdmFsdWVzIHRvIHRoZSBzaGFyZWQgZW50cnkuICovCisJaW5kZW50cnkgPSAmc2hyZWxj b21zdGF0cy0+c3RhdHM7CisKKwlpbmRlbnRyeS0+bnVtc2NhbnMgKz0gbHN0YXRzLT5pX2Nv dW50cy5pX251bXNjYW5zOworCisJaWYgKGxzdGF0cy0+aV9jb3VudHMuaV9udW1zY2FucykK Kwl7CisJCVRpbWVzdGFtcFR6IHQgPSBHZXRDdXJyZW50VHJhbnNhY3Rpb25TdG9wVGltZXN0 YW1wKCk7CisKKwkJaWYgKHQgPiBpbmRlbnRyeS0+bGFzdHNjYW4pCisJCQlpbmRlbnRyeS0+ bGFzdHNjYW4gPSB0OworCX0KKwlpbmRlbnRyeS0+dHVwbGVzX3JldHVybmVkICs9IGxzdGF0 cy0+aV9jb3VudHMuaV90dXBsZXNfcmV0dXJuZWQ7CisJaW5kZW50cnktPnR1cGxlc19mZXRj aGVkICs9IGxzdGF0cy0+aV9jb3VudHMuaV90dXBsZXNfZmV0Y2hlZDsKKwlpbmRlbnRyeS0+ YmxvY2tzX2ZldGNoZWQgKz0gbHN0YXRzLT5pX2NvdW50cy5pX2Jsb2Nrc19mZXRjaGVkOwor CWluZGVudHJ5LT5ibG9ja3NfaGl0ICs9IGxzdGF0cy0+aV9jb3VudHMuaV9ibG9ja3NfaGl0 OworCisJcGdzdGF0X3VubG9ja19lbnRyeShlbnRyeV9yZWYpOworCisJLyogVGhlIGVudHJ5 IHdhcyBzdWNjZXNzZnVsbHkgZmx1c2hlZCwgYWRkIHRoZSBzYW1lIHRvIGRhdGFiYXNlIHN0 YXRzICovCisJZGJlbnRyeSA9IHBnc3RhdF9wcmVwX2RhdGFiYXNlX3BlbmRpbmcoZGJvaWQp OworCWRiZW50cnktPm5fdHVwbGVzX3JldHVybmVkICs9IGxzdGF0cy0+aV9jb3VudHMuaV90 dXBsZXNfcmV0dXJuZWQ7CisJZGJlbnRyeS0+bl90dXBsZXNfZmV0Y2hlZCArPSBsc3RhdHMt PmlfY291bnRzLmlfdHVwbGVzX2ZldGNoZWQ7CisJZGJlbnRyeS0+bl9ibG9ja3NfZmV0Y2hl ZCArPSBsc3RhdHMtPmlfY291bnRzLmlfYmxvY2tzX2ZldGNoZWQ7CisJZGJlbnRyeS0+bl9i bG9ja3NfaGl0ICs9IGxzdGF0cy0+aV9jb3VudHMuaV9ibG9ja3NfaGl0OworCisJcmV0dXJu IHRydWU7Cit9CisKIHZvaWQKLXBnc3RhdF9yZWxhdGlvbl9kZWxldGVfcGVuZGluZ19jYihQ Z1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZikKK3Bnc3RhdF90YWJsZV9kZWxldGVfcGVuZGlu Z19jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZikKIHsKIAlQZ1N0YXRfVGFibGVTdGF0 dXMgKnBlbmRpbmcgPSAoUGdTdGF0X1RhYmxlU3RhdHVzICopIGVudHJ5X3JlZi0+cGVuZGlu ZzsKIApAQCAtODQ4LDE3ICsxMDI5LDI2IEBAIHBnc3RhdF9yZWxhdGlvbl9kZWxldGVfcGVu ZGluZ19jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZikKIAkJcGdzdGF0X3VubGlua19y ZWxhdGlvbihwZW5kaW5nLT5yZWxhdGlvbik7CiB9CiAKK3ZvaWQKK3Bnc3RhdF9pbmRleF9k ZWxldGVfcGVuZGluZ19jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZikKK3sKKwlQZ1N0 YXRfSW5kZXhTdGF0dXMgKnBlbmRpbmcgPSAoUGdTdGF0X0luZGV4U3RhdHVzICopIGVudHJ5 X3JlZi0+cGVuZGluZzsKKworCWlmIChwZW5kaW5nLT5yZWxhdGlvbikKKwkJcGdzdGF0X3Vu bGlua19yZWxhdGlvbihwZW5kaW5nLT5yZWxhdGlvbik7Cit9CisKIC8qCiAgKiBGaW5kIG9y IGNyZWF0ZSBhIFBnU3RhdF9UYWJsZVN0YXR1cyBlbnRyeSBmb3IgcmVsLiBOZXcgZW50cnkg aXMgY3JlYXRlZCBhbmQKICAqIGluaXRpYWxpemVkIGlmIG5vdCBleGlzdHMuCiAgKi8KIHN0 YXRpYyBQZ1N0YXRfVGFibGVTdGF0dXMgKgotcGdzdGF0X3ByZXBfcmVsYXRpb25fcGVuZGlu ZyhPaWQgcmVsX2lkLCBib29sIGlzc2hhcmVkKQorcGdzdGF0X3ByZXBfdGFibGVfcGVuZGlu ZyhPaWQgcmVsX2lkLCBib29sIGlzc2hhcmVkKQogewogCVBnU3RhdF9FbnRyeVJlZiAqZW50 cnlfcmVmOwogCVBnU3RhdF9UYWJsZVN0YXR1cyAqcGVuZGluZzsKIAotCWVudHJ5X3JlZiA9 IHBnc3RhdF9wcmVwX3BlbmRpbmdfZW50cnkoUEdTVEFUX0tJTkRfUkVMQVRJT04sCisJZW50 cnlfcmVmID0gcGdzdGF0X3ByZXBfcGVuZGluZ19lbnRyeShQR1NUQVRfS0lORF9UQUJMRSwK IAkJCQkJCQkJCQkgIGlzc2hhcmVkID8gSW52YWxpZE9pZCA6IE15RGF0YWJhc2VJZCwKIAkJ CQkJCQkJCQkgIHJlbF9pZCwgTlVMTCk7CiAJcGVuZGluZyA9IGVudHJ5X3JlZi0+cGVuZGlu ZzsKQEAgLTg2OCwxMSArMTA1OCwzMSBAQCBwZ3N0YXRfcHJlcF9yZWxhdGlvbl9wZW5kaW5n KE9pZCByZWxfaWQsIGJvb2wgaXNzaGFyZWQpCiAJcmV0dXJuIHBlbmRpbmc7CiB9CiAKKy8q CisgKiBGaW5kIG9yIGNyZWF0ZSBhIFBnU3RhdF9JbmRleFN0YXR1cyBlbnRyeSBmb3IgcmVs LiBOZXcgZW50cnkgaXMgY3JlYXRlZCBhbmQKKyAqIGluaXRpYWxpemVkIGlmIG5vdCBleGlz dHMuCisgKi8KK3N0YXRpYyBQZ1N0YXRfSW5kZXhTdGF0dXMgKgorcGdzdGF0X3ByZXBfaW5k ZXhfcGVuZGluZyhPaWQgcmVsX2lkLCBib29sIGlzc2hhcmVkKQoreworCVBnU3RhdF9FbnRy eVJlZiAqZW50cnlfcmVmOworCVBnU3RhdF9JbmRleFN0YXR1cyAqcGVuZGluZzsKKworCWVu dHJ5X3JlZiA9IHBnc3RhdF9wcmVwX3BlbmRpbmdfZW50cnkoUEdTVEFUX0tJTkRfSU5ERVgs CisJCQkJCQkJCQkJICBpc3NoYXJlZCA/IEludmFsaWRPaWQgOiBNeURhdGFiYXNlSWQsCisJ CQkJCQkJCQkJICByZWxfaWQsIE5VTEwpOworCXBlbmRpbmcgPSBlbnRyeV9yZWYtPnBlbmRp bmc7CisJcGVuZGluZy0+cl9pZCA9IHJlbF9pZDsKKwlwZW5kaW5nLT5yX3NoYXJlZCA9IGlz c2hhcmVkOworCisJcmV0dXJuIHBlbmRpbmc7Cit9CisKIC8qCiAgKiBhZGQgYSBuZXcgKHN1 Yil0cmFuc2FjdGlvbiBzdGF0ZSByZWNvcmQKICAqLwogc3RhdGljIHZvaWQKLWFkZF90YWJz dGF0X3hhY3RfbGV2ZWwoUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXRfaW5mbywgaW50IG5l c3RfbGV2ZWwpCithZGRfdGFic3RhdF94YWN0X2xldmVsKFBnU3RhdF9UYWJsZVN0YXR1cyAq cGdzdGF0dGFiX2luZm8sIGludCBuZXN0X2xldmVsKQogewogCVBnU3RhdF9TdWJYYWN0U3Rh dHVzICp4YWN0X3N0YXRlOwogCVBnU3RhdF9UYWJsZVhhY3RTdGF0dXMgKnRyYW5zOwpAQCAt ODg4LDI0ICsxMDk4LDI0IEBAIGFkZF90YWJzdGF0X3hhY3RfbGV2ZWwoUGdTdGF0X1RhYmxl U3RhdHVzICpwZ3N0YXRfaW5mbywgaW50IG5lc3RfbGV2ZWwpCiAJCU1lbW9yeUNvbnRleHRB bGxvY1plcm8oVG9wVHJhbnNhY3Rpb25Db250ZXh0LAogCQkJCQkJCSAgIHNpemVvZihQZ1N0 YXRfVGFibGVYYWN0U3RhdHVzKSk7CiAJdHJhbnMtPm5lc3RfbGV2ZWwgPSBuZXN0X2xldmVs OwotCXRyYW5zLT51cHBlciA9IHBnc3RhdF9pbmZvLT50cmFuczsKLQl0cmFucy0+cGFyZW50 ID0gcGdzdGF0X2luZm87CisJdHJhbnMtPnVwcGVyID0gcGdzdGF0dGFiX2luZm8tPnRyYW5z OworCXRyYW5zLT5wYXJlbnQgPSBwZ3N0YXR0YWJfaW5mbzsKIAl0cmFucy0+bmV4dCA9IHhh Y3Rfc3RhdGUtPmZpcnN0OwogCXhhY3Rfc3RhdGUtPmZpcnN0ID0gdHJhbnM7Ci0JcGdzdGF0 X2luZm8tPnRyYW5zID0gdHJhbnM7CisJcGdzdGF0dGFiX2luZm8tPnRyYW5zID0gdHJhbnM7 CiB9CiAKIC8qCiAgKiBBZGQgYSBuZXcgKHN1Yil0cmFuc2FjdGlvbiByZWNvcmQgaWYgbmVl ZGVkLgogICovCiBzdGF0aWMgdm9pZAotZW5zdXJlX3RhYnN0YXRfeGFjdF9sZXZlbChQZ1N0 YXRfVGFibGVTdGF0dXMgKnBnc3RhdF9pbmZvKQorZW5zdXJlX3RhYnN0YXRfeGFjdF9sZXZl bChQZ1N0YXRfVGFibGVTdGF0dXMgKnBnc3RhdHRhYl9pbmZvKQogewogCWludAkJCW5lc3Rf bGV2ZWwgPSBHZXRDdXJyZW50VHJhbnNhY3Rpb25OZXN0TGV2ZWwoKTsKIAotCWlmIChwZ3N0 YXRfaW5mby0+dHJhbnMgPT0gTlVMTCB8fAotCQlwZ3N0YXRfaW5mby0+dHJhbnMtPm5lc3Rf bGV2ZWwgIT0gbmVzdF9sZXZlbCkKLQkJYWRkX3RhYnN0YXRfeGFjdF9sZXZlbChwZ3N0YXRf aW5mbywgbmVzdF9sZXZlbCk7CisJaWYgKHBnc3RhdHRhYl9pbmZvLT50cmFucyA9PSBOVUxM IHx8CisJCXBnc3RhdHRhYl9pbmZvLT50cmFucy0+bmVzdF9sZXZlbCAhPSBuZXN0X2xldmVs KQorCQlhZGRfdGFic3RhdF94YWN0X2xldmVsKHBnc3RhdHRhYl9pbmZvLCBuZXN0X2xldmVs KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRm dW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKaW5kZXggOTZi ZmZjMGYyYS4uOTU4NzYxNDYwYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3Bnc3RhdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNz LmMKQEAgLTM3LDIzICszNywzNyBAQAogI2RlZmluZSBIQVNfUEdTVEFUX1BFUk1JU1NJT05T KHJvbGUpCSAoaGFzX3ByaXZzX29mX3JvbGUoR2V0VXNlcklkKCksIFJPTEVfUEdfUkVBRF9B TExfU1RBVFMpIHx8IGhhc19wcml2c19vZl9yb2xlKEdldFVzZXJJZCgpLCByb2xlKSkKIAog RGF0dW0KLXBnX3N0YXRfZ2V0X251bXNjYW5zKFBHX0ZVTkNUSU9OX0FSR1MpCitwZ19zdGF0 X2dldF9pbmRleF9udW1zY2FucyhQR19GVU5DVElPTl9BUkdTKQogewogCU9pZAkJCXJlbGlk ID0gUEdfR0VUQVJHX09JRCgwKTsKIAlpbnQ2NAkJcmVzdWx0OwotCVBnU3RhdF9TdGF0VGFi RW50cnkgKnRhYmVudHJ5OworCVBnU3RhdF9TdGF0SW5kRW50cnkgKmluZGVudHJ5OwogCi0J aWYgKCh0YWJlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X3RhYmVudHJ5KHJlbGlkKSkgPT0g TlVMTCkKKwlpZiAoKGluZGVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfaW5kZW50cnkocmVs aWQpKSA9PSBOVUxMKQogCQlyZXN1bHQgPSAwOwogCWVsc2UKLQkJcmVzdWx0ID0gKGludDY0 KSAodGFiZW50cnktPm51bXNjYW5zKTsKKwkJcmVzdWx0ID0gKGludDY0KSAoaW5kZW50cnkt Pm51bXNjYW5zKTsKIAogCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQogCitEYXR1bQor cGdfc3RhdF9nZXRfaGVhcF9udW1zY2FucyhQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJ CXJlbGlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlpbnQ2NAkJcmVzdWx0OworCVBnU3RhdF9T dGF0VGFiRW50cnkgKnJlbGVudHJ5OworCisJaWYgKChyZWxlbnRyeSA9IHBnc3RhdF9mZXRj aF9zdGF0X3RhYmVudHJ5KHJlbGlkKSkgPT0gTlVMTCkKKwkJcmVzdWx0ID0gMDsKKwllbHNl CisJCXJlc3VsdCA9IChpbnQ2NCkgKHJlbGVudHJ5LT5udW1zY2Fucyk7CisKKwlQR19SRVRV Uk5fSU5UNjQocmVzdWx0KTsKK30KIAogRGF0dW0KLXBnX3N0YXRfZ2V0X2xhc3RzY2FuKFBH X0ZVTkNUSU9OX0FSR1MpCitwZ19zdGF0X2dldF9oZWFwX2xhc3RzY2FuKFBHX0ZVTkNUSU9O X0FSR1MpCiB7CiAJT2lkCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOwogCVBnU3RhdF9T dGF0VGFiRW50cnkgKnRhYmVudHJ5OwpAQCAtNjQsOSArNzgsMjAgQEAgcGdfc3RhdF9nZXRf bGFzdHNjYW4oUEdfRlVOQ1RJT05fQVJHUykKIAkJUEdfUkVUVVJOX1RJTUVTVEFNUFRaKHRh YmVudHJ5LT5sYXN0c2Nhbik7CiB9CiAKK0RhdHVtCitwZ19zdGF0X2dldF9pbmRleF9sYXN0 c2NhbihQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCXJlbGlkID0gUEdfR0VUQVJHX09J RCgwKTsKKwlQZ1N0YXRfU3RhdEluZEVudHJ5ICppbmRlbnRyeTsKKworCWlmICgoaW5kZW50 cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF9pbmRlbnRyeShyZWxpZCkpID09IE5VTEwpCisJCVBH X1JFVFVSTl9OVUxMKCk7CisJZWxzZQorCQlQR19SRVRVUk5fVElNRVNUQU1QVFooaW5kZW50 cnktPmxhc3RzY2FuKTsKK30KIAogRGF0dW0KLXBnX3N0YXRfZ2V0X3R1cGxlc19yZXR1cm5l ZChQR19GVU5DVElPTl9BUkdTKQorcGdfc3RhdF9nZXRfaGVhcF90dXBsZXNfcmV0dXJuZWQo UEdfRlVOQ1RJT05fQVJHUykKIHsKIAlPaWQJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7 CiAJaW50NjQJCXJlc3VsdDsKQEAgLTc5LDEwICsxMDQsMjMgQEAgcGdfc3RhdF9nZXRfdHVw bGVzX3JldHVybmVkKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlQR19SRVRVUk5fSU5UNjQocmVz dWx0KTsKIH0KK0RhdHVtCitwZ19zdGF0X2dldF9pbmRleF90dXBsZXNfcmV0dXJuZWQoUEdf RlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJ aW50NjQJCXJlc3VsdDsKKwlQZ1N0YXRfU3RhdEluZEVudHJ5ICppbmRlbnRyeTsKKworCWlm ICgoaW5kZW50cnkgPSBwZ3N0YXRfZmV0Y2hfc3RhdF9pbmRlbnRyeShyZWxpZCkpID09IE5V TEwpCisJCXJlc3VsdCA9IDA7CisJZWxzZQorCQlyZXN1bHQgPSAoaW50NjQpIChpbmRlbnRy eS0+dHVwbGVzX3JldHVybmVkKTsKIAorCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOworfQog CiBEYXR1bQotcGdfc3RhdF9nZXRfdHVwbGVzX2ZldGNoZWQoUEdfRlVOQ1RJT05fQVJHUykK K3BnX3N0YXRfZ2V0X2hlYXBfdHVwbGVzX2ZldGNoZWQoUEdfRlVOQ1RJT05fQVJHUykKIHsK IAlPaWQJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CiAJaW50NjQJCXJlc3VsdDsKQEAg LTk2LDYgKzEzNCwyMSBAQCBwZ19zdGF0X2dldF90dXBsZXNfZmV0Y2hlZChQR19GVU5DVElP Tl9BUkdTKQogCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQogCitEYXR1bQorcGdfc3Rh dF9nZXRfaW5kZXhfdHVwbGVzX2ZldGNoZWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJ CQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJaW50NjQJCXJlc3VsdDsKKwlQZ1N0YXRf U3RhdEluZEVudHJ5ICppbmRlbnRyeTsKKworCWlmICgoaW5kZW50cnkgPSBwZ3N0YXRfZmV0 Y2hfc3RhdF9pbmRlbnRyeShyZWxpZCkpID09IE5VTEwpCisJCXJlc3VsdCA9IDA7CisJZWxz ZQorCQlyZXN1bHQgPSAoaW50NjQpIChpbmRlbnRyeS0+dHVwbGVzX2ZldGNoZWQpOworCisJ UEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7Cit9CisKIAogRGF0dW0KIHBnX3N0YXRfZ2V0X3R1 cGxlc19pbnNlcnRlZChQR19GVU5DVElPTl9BUkdTKQpAQCAtMjI2LDcgKzI3OSw3IEBAIHBn X3N0YXRfZ2V0X2luc19zaW5jZV92YWN1dW0oUEdfRlVOQ1RJT05fQVJHUykKIAogCiBEYXR1 bQotcGdfc3RhdF9nZXRfYmxvY2tzX2ZldGNoZWQoUEdfRlVOQ1RJT05fQVJHUykKK3BnX3N0 YXRfZ2V0X2hlYXBfYmxvY2tzX2ZldGNoZWQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlPaWQJ CQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CiAJaW50NjQJCXJlc3VsdDsKQEAgLTI0MCw5 ICsyOTMsMjMgQEAgcGdfc3RhdF9nZXRfYmxvY2tzX2ZldGNoZWQoUEdfRlVOQ1RJT05fQVJH UykKIAlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKIH0KIAorRGF0dW0KK3BnX3N0YXRfZ2V0 X2luZGV4X2Jsb2Nrc19mZXRjaGVkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJcmVs aWQgPSBQR19HRVRBUkdfT0lEKDApOworCWludDY0CQlyZXN1bHQ7CisJUGdTdGF0X1N0YXRJ bmRFbnRyeSAqaW5kZW50cnk7CisKKwlpZiAoKGluZGVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0 YXRfaW5kZW50cnkocmVsaWQpKSA9PSBOVUxMKQorCQlyZXN1bHQgPSAwOworCWVsc2UKKwkJ cmVzdWx0ID0gKGludDY0KSAoaW5kZW50cnktPmJsb2Nrc19mZXRjaGVkKTsKKworCVBHX1JF VFVSTl9JTlQ2NChyZXN1bHQpOworfQogCiBEYXR1bQotcGdfc3RhdF9nZXRfYmxvY2tzX2hp dChQR19GVU5DVElPTl9BUkdTKQorcGdfc3RhdF9nZXRfaGVhcF9ibG9ja3NfaGl0KFBHX0ZV TkNUSU9OX0FSR1MpCiB7CiAJT2lkCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOwogCWlu dDY0CQlyZXN1bHQ7CkBAIC0yNTYsNiArMzIzLDIxIEBAIHBnX3N0YXRfZ2V0X2Jsb2Nrc19o aXQoUEdfRlVOQ1RJT05fQVJHUykKIAlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKIH0KIAor RGF0dW0KK3BnX3N0YXRfZ2V0X2luZGV4X2Jsb2Nrc19oaXQoUEdfRlVOQ1RJT05fQVJHUykK K3sKKwlPaWQJCQlyZWxpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJaW50NjQJCXJlc3VsdDsK KwlQZ1N0YXRfU3RhdEluZEVudHJ5ICppbmRlbnRyeTsKKworCWlmICgoaW5kZW50cnkgPSBw Z3N0YXRfZmV0Y2hfc3RhdF9pbmRlbnRyeShyZWxpZCkpID09IE5VTEwpCisJCXJlc3VsdCA9 IDA7CisJZWxzZQorCQlyZXN1bHQgPSAoaW50NjQpIChpbmRlbnRyeS0+YmxvY2tzX2hpdCk7 CisKKwlQR19SRVRVUk5fSU5UNjQocmVzdWx0KTsKK30KKwogRGF0dW0KIHBnX3N0YXRfZ2V0 X2xhc3RfdmFjdXVtX3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIHsKQEAgLTE4MzcsNyArMTkx OSw3IEBAIHBnX3N0YXRfZ2V0X3NscnUoUEdfRlVOQ1RJT05fQVJHUykKIH0KIAogRGF0dW0K LXBnX3N0YXRfZ2V0X3hhY3RfbnVtc2NhbnMoUEdfRlVOQ1RJT05fQVJHUykKK3BnX3N0YXRf Z2V0X2hlYXBfeGFjdF9udW1zY2FucyhQR19GVU5DVElPTl9BUkdTKQogewogCU9pZAkJCXJl bGlkID0gUEdfR0VUQVJHX09JRCgwKTsKIAlpbnQ2NAkJcmVzdWx0OwpAQCAtMTg1MSwxNyAr MTkzMywzMiBAQCBwZ19zdGF0X2dldF94YWN0X251bXNjYW5zKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9CiAKK0RhdHVtCitwZ19zdGF0X2dldF9p bmRleF94YWN0X251bXNjYW5zKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJcmVsaWQg PSBQR19HRVRBUkdfT0lEKDApOworCWludDY0CQlyZXN1bHQ7CisJUGdTdGF0X0luZGV4U3Rh dHVzICppbmRlbnRyeTsKKworCWlmICgoaW5kZW50cnkgPSBmaW5kX2luZHN0YXRfZW50cnko cmVsaWQpKSA9PSBOVUxMKQorCQlyZXN1bHQgPSAwOworCWVsc2UKKwkJcmVzdWx0ID0gKGlu dDY0KSAoaW5kZW50cnktPmlfY291bnRzLmlfbnVtc2NhbnMpOworCisJUEdfUkVUVVJOX0lO VDY0KHJlc3VsdCk7Cit9CisKIERhdHVtCiBwZ19zdGF0X2dldF94YWN0X3R1cGxlc19yZXR1 cm5lZChQR19GVU5DVElPTl9BUkdTKQogewogCU9pZAkJCXJlbGlkID0gUEdfR0VUQVJHX09J RCgwKTsKIAlpbnQ2NAkJcmVzdWx0OwotCVBnU3RhdF9UYWJsZVN0YXR1cyAqdGFiZW50cnk7 CisJUGdTdGF0X0luZGV4U3RhdHVzICppbmRlbnRyeTsKIAotCWlmICgodGFiZW50cnkgPSBm aW5kX3RhYnN0YXRfZW50cnkocmVsaWQpKSA9PSBOVUxMKQorCWlmICgoaW5kZW50cnkgPSBm aW5kX2luZHN0YXRfZW50cnkocmVsaWQpKSA9PSBOVUxMKQogCQlyZXN1bHQgPSAwOwogCWVs c2UKLQkJcmVzdWx0ID0gKGludDY0KSAodGFiZW50cnktPnRfY291bnRzLnRfdHVwbGVzX3Jl dHVybmVkKTsKKwkJcmVzdWx0ID0gKGludDY0KSAoaW5kZW50cnktPmlfY291bnRzLmlfdHVw bGVzX3JldHVybmVkKTsKIAogCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQpAQCAtMTg3 MSwxMiArMTk2OCwxMiBAQCBwZ19zdGF0X2dldF94YWN0X3R1cGxlc19mZXRjaGVkKFBHX0ZV TkNUSU9OX0FSR1MpCiB7CiAJT2lkCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOwogCWlu dDY0CQlyZXN1bHQ7Ci0JUGdTdGF0X1RhYmxlU3RhdHVzICp0YWJlbnRyeTsKKwlQZ1N0YXRf SW5kZXhTdGF0dXMgKmluZGVudHJ5OwogCi0JaWYgKCh0YWJlbnRyeSA9IGZpbmRfdGFic3Rh dF9lbnRyeShyZWxpZCkpID09IE5VTEwpCisJaWYgKChpbmRlbnRyeSA9IGZpbmRfaW5kc3Rh dF9lbnRyeShyZWxpZCkpID09IE5VTEwpCiAJCXJlc3VsdCA9IDA7CiAJZWxzZQotCQlyZXN1 bHQgPSAoaW50NjQpICh0YWJlbnRyeS0+dF9jb3VudHMudF90dXBsZXNfZmV0Y2hlZCk7CisJ CXJlc3VsdCA9IChpbnQ2NCkgKGluZGVudHJ5LT5pX2NvdW50cy5pX3R1cGxlc19mZXRjaGVk KTsKIAogCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQpAQCAtMTk2NCwxMiArMjA2MSwx MiBAQCBwZ19zdGF0X2dldF94YWN0X2Jsb2Nrc19mZXRjaGVkKFBHX0ZVTkNUSU9OX0FSR1Mp CiB7CiAJT2lkCQkJcmVsaWQgPSBQR19HRVRBUkdfT0lEKDApOwogCWludDY0CQlyZXN1bHQ7 Ci0JUGdTdGF0X1RhYmxlU3RhdHVzICp0YWJlbnRyeTsKKwlQZ1N0YXRfSW5kZXhTdGF0dXMg KmluZGVudHJ5OwogCi0JaWYgKCh0YWJlbnRyeSA9IGZpbmRfdGFic3RhdF9lbnRyeShyZWxp ZCkpID09IE5VTEwpCisJaWYgKChpbmRlbnRyeSA9IGZpbmRfaW5kc3RhdF9lbnRyeShyZWxp ZCkpID09IE5VTEwpCiAJCXJlc3VsdCA9IDA7CiAJZWxzZQotCQlyZXN1bHQgPSAoaW50NjQp ICh0YWJlbnRyeS0+dF9jb3VudHMudF9ibG9ja3NfZmV0Y2hlZCk7CisJCXJlc3VsdCA9IChp bnQ2NCkgKGluZGVudHJ5LT5pX2NvdW50cy5pX2Jsb2Nrc19mZXRjaGVkKTsKIAogCVBHX1JF VFVSTl9JTlQ2NChyZXN1bHQpOwogfQpAQCAtMTk3OSwxMiArMjA3NiwxMiBAQCBwZ19zdGF0 X2dldF94YWN0X2Jsb2Nrc19oaXQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlPaWQJCQlyZWxp ZCA9IFBHX0dFVEFSR19PSUQoMCk7CiAJaW50NjQJCXJlc3VsdDsKLQlQZ1N0YXRfVGFibGVT dGF0dXMgKnRhYmVudHJ5OworCVBnU3RhdF9JbmRleFN0YXR1cyAqaW5kZW50cnk7CiAKLQlp ZiAoKHRhYmVudHJ5ID0gZmluZF90YWJzdGF0X2VudHJ5KHJlbGlkKSkgPT0gTlVMTCkKKwlp ZiAoKGluZGVudHJ5ID0gZmluZF9pbmRzdGF0X2VudHJ5KHJlbGlkKSkgPT0gTlVMTCkKIAkJ cmVzdWx0ID0gMDsKIAllbHNlCi0JCXJlc3VsdCA9IChpbnQ2NCkgKHRhYmVudHJ5LT50X2Nv dW50cy50X2Jsb2Nrc19oaXQpOworCQlyZXN1bHQgPSAoaW50NjQpIChpbmRlbnRyeS0+aV9j b3VudHMuaV9ibG9ja3NfaGl0KTsKIAogCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQpA QCAtMjEwMyw3ICsyMjAwLDggQEAgcGdfc3RhdF9yZXNldF9zaW5nbGVfdGFibGVfY291bnRl cnMoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlPaWQJCQl0YWJvaWQgPSBQR19HRVRBUkdfT0lE KDApOwogCi0JcGdzdGF0X3Jlc2V0KFBHU1RBVF9LSU5EX1JFTEFUSU9OLCBNeURhdGFiYXNl SWQsIHRhYm9pZCk7CisJcGdzdGF0X3Jlc2V0KFBHU1RBVF9LSU5EX1RBQkxFLCBNeURhdGFi YXNlSWQsIHRhYm9pZCk7CisJcGdzdGF0X3Jlc2V0KFBHU1RBVF9LSU5EX0lOREVYLCBNeURh dGFiYXNlSWQsIHRhYm9pZCk7CiAKIAlQR19SRVRVUk5fVk9JRCgpOwogfQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2NhY2hlL3JlbGNhY2hlLmMKaW5kZXggYmQ2Y2Q0ZTQ3Yi4uMmQyNGFiYzNkZiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCkBAIC0yNzIwLDggKzI3MjAsOSBAQCBS ZWxhdGlvbkNsZWFyUmVsYXRpb24oUmVsYXRpb24gcmVsYXRpb24sIGJvb2wgcmVidWlsZCkK IAkJCVNXQVBGSUVMRChSb3dTZWN1cml0eURlc2MgKiwgcmRfcnNkZXNjKTsKIAkJLyogdG9h c3QgT0lEIG92ZXJyaWRlIG11c3QgYmUgcHJlc2VydmVkICovCiAJCVNXQVBGSUVMRChPaWQs IHJkX3RvYXN0b2lkKTsKLQkJLyogcGdzdGF0X2luZm8gLyBlbmFibGVkIG11c3QgYmUgcHJl c2VydmVkICovCi0JCVNXQVBGSUVMRChzdHJ1Y3QgUGdTdGF0X1RhYmxlU3RhdHVzICosIHBn c3RhdF9pbmZvKTsKKwkJLyogcGdzdGF0dGFiX2luZm8gLyBwZ3N0YXRpbmRfaW5mbyAvIGVu YWJsZWQgbXVzdCBiZSBwcmVzZXJ2ZWQgKi8KKwkJU1dBUEZJRUxEKHN0cnVjdCBQZ1N0YXRf VGFibGVTdGF0dXMgKiwgcGdzdGF0dGFiX2luZm8pOworCQlTV0FQRklFTEQoc3RydWN0IFBn U3RhdF9JbmRleFN0YXR1cyAqLCBwZ3N0YXRpbmRfaW5mbyk7CiAJCVNXQVBGSUVMRChib29s LCBwZ3N0YXRfZW5hYmxlZCk7CiAJCS8qIHByZXNlcnZlIG9sZCBwYXJ0aXRpb24ga2V5IGlm IHdlIGhhdmUgb25lICovCiAJCWlmIChrZWVwX3BhcnRrZXkpCkBAIC02MzE0LDcgKzYzMTUs OCBAQCBsb2FkX3JlbGNhY2hlX2luaXRfZmlsZShib29sIHNoYXJlZCkKIAkJcmVsLT5yZF9m aXJzdFJlbGZpbGVsb2NhdG9yU3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKIAkJ cmVsLT5yZF9kcm9wcGVkU3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKIAkJcmVs LT5yZF9hbWNhY2hlID0gTlVMTDsKLQkJcmVsLT5wZ3N0YXRfaW5mbyA9IE5VTEw7CisJCXJl bC0+cGdzdGF0dGFiX2luZm8gPSBOVUxMOworCQlyZWwtPnBnc3RhdGluZF9pbmZvID0gTlVM TDsKIAogCQkvKgogCQkgKiBSZWNvbXB1dGUgbG9jayBhbmQgcGh5c2ljYWwgYWRkcmVzc2lu ZyBpbmZvLiAgVGhpcyBpcyBuZWVkZWQgaW4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0Cmlu ZGV4IDIwZjVhYTU2ZWEuLjc3MzNlYmZjYjkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dApAQCAtNTI0OCwyMiArNTI0OCwzOCBAQAogICBwcm9hcmduYW1lcyA9PiAne21jdl9saXN0 LGluZGV4LHZhbHVlcyxudWxscyxmcmVxdWVuY3ksYmFzZV9mcmVxdWVuY3l9JywKICAgcHJv c3JjID0+ICdwZ19zdGF0c19leHRfbWN2bGlzdF9pdGVtcycgfSwKIAoteyBvaWQgPT4gJzE5 MjgnLCBkZXNjciA9PiAnc3RhdGlzdGljczogbnVtYmVyIG9mIHNjYW5zIGRvbmUgZm9yIHRh YmxlL2luZGV4JywKLSAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfbnVtc2NhbnMnLCBwcm92 b2xhdGlsZSA9PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywKK3sgb2lkID0+ICcxOTI4Jywg ZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IG51bWJlciBvZiBzY2FucyBkb25lIGZvciB0YWJsZScs CisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2hlYXBfbnVtc2NhbnMnLCBwcm92b2xhdGls ZSA9PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywKICAgcHJvcmV0dHlwZSA9PiAnaW50OCcs IHByb2FyZ3R5cGVzID0+ICdvaWQnLAotICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X251bXNj YW5zJyB9LAoteyBvaWQgPT4gJzk5NzYnLCBkZXNjciA9PiAnc3RhdGlzdGljczogdGltZSBv ZiB0aGUgbGFzdCBzY2FuIGZvciB0YWJsZS9pbmRleCcsCi0gIHByb25hbWUgPT4gJ3BnX3N0 YXRfZ2V0X2xhc3RzY2FuJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAn cicsCisgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfaGVhcF9udW1zY2FucycgfSwKK3sgb2lk ID0+ICc4Mjk2JywgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IG51bWJlciBvZiBzY2FucyBkb25l IGZvciBpbmRleCcsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2luZGV4X251bXNjYW5z JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCisgIHByb3JldHR5 cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKKyAgcHJvc3JjID0+ICdwZ19z dGF0X2dldF9pbmRleF9udW1zY2FucycgfSwKK3sgb2lkID0+ICc5OTc2JywgZGVzY3IgPT4g J3N0YXRpc3RpY3M6IHRpbWUgb2YgdGhlIGxhc3Qgc2NhbiBmb3IgdGFibGUnLAorICBwcm9u YW1lID0+ICdwZ19zdGF0X2dldF9oZWFwX2xhc3RzY2FuJywgcHJvdm9sYXRpbGUgPT4gJ3Mn LCBwcm9wYXJhbGxlbCA9PiAncicsCisgIHByb3JldHR5cGUgPT4gJ3RpbWVzdGFtcHR6Jywg cHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfaGVhcF9s YXN0c2NhbicgfSwKK3sgb2lkID0+ICc4NjI2JywgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IHRp bWUgb2YgdGhlIGxhc3Qgc2NhbiBmb3IgaW5kZXgnLAorICBwcm9uYW1lID0+ICdwZ19zdGF0 X2dldF9pbmRleF9sYXN0c2NhbicsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwg PT4gJ3InLAogICBwcm9yZXR0eXBlID0+ICd0aW1lc3RhbXB0eicsIHByb2FyZ3R5cGVzID0+ ICdvaWQnLAotICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X2xhc3RzY2FuJyB9LAorICBwcm9z cmMgPT4gJ3BnX3N0YXRfZ2V0X2luZGV4X2xhc3RzY2FuJyB9LAogeyBvaWQgPT4gJzE5Mjkn LCBkZXNjciA9PiAnc3RhdGlzdGljczogbnVtYmVyIG9mIHR1cGxlcyByZWFkIGJ5IHNlcXNj YW4nLAotICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF90dXBsZXNfcmV0dXJuZWQnLCBwcm92 b2xhdGlsZSA9PiAncycsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2hlYXBfdHVwbGVz X3JldHVybmVkJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAogICBwcm9wYXJhbGxlbCA9PiAncics IHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKLSAgcHJvc3Jj ID0+ICdwZ19zdGF0X2dldF90dXBsZXNfcmV0dXJuZWQnIH0sCisgIHByb3NyYyA9PiAncGdf c3RhdF9nZXRfaGVhcF90dXBsZXNfcmV0dXJuZWQnIH0sCit7IG9pZCA9PiAnOTYwMycsIGRl c2NyID0+ICdzdGF0aXN0aWNzOiBudW1iZXIgb2YgdHVwbGVzIHJlYWQgYnkgc2Vxc2Nhbics CisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2luZGV4X3R1cGxlc19yZXR1cm5lZCcsIHBy b3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb3NyYyA9PiAncGdfc3RhdF9n ZXRfaW5kZXhfdHVwbGVzX3JldHVybmVkJyB9LAogeyBvaWQgPT4gJzE5MzAnLCBkZXNjciA9 PiAnc3RhdGlzdGljczogbnVtYmVyIG9mIHR1cGxlcyBmZXRjaGVkIGJ5IGlkeHNjYW4nLAot ICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF90dXBsZXNfZmV0Y2hlZCcsIHByb3ZvbGF0aWxl ID0+ICdzJywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfaGVhcF90dXBsZXNfZmV0Y2hl ZCcsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0 eXBlID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb3NyYyA9PiAncGdf c3RhdF9nZXRfaGVhcF90dXBsZXNfZmV0Y2hlZCcgfSwKK3sgb2lkID0+ICc4NTI2JywgZGVz Y3IgPT4gJ3N0YXRpc3RpY3M6IG51bWJlciBvZiB0dXBsZXMgZmV0Y2hlZCBieSBpZHhzY2Fu JywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfaW5kZXhfdHVwbGVzX2ZldGNoZWQnLCBw cm92b2xhdGlsZSA9PiAncycsCiAgIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9 PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAotICBwcm9zcmMgPT4gJ3BnX3N0YXRf Z2V0X3R1cGxlc19mZXRjaGVkJyB9LAorICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X2luZGV4 X3R1cGxlc19mZXRjaGVkJyB9LAogeyBvaWQgPT4gJzE5MzEnLCBkZXNjciA9PiAnc3RhdGlz dGljczogbnVtYmVyIG9mIHR1cGxlcyBpbnNlcnRlZCcsCiAgIHByb25hbWUgPT4gJ3BnX3N0 YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCcsIHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcGFy YWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29p ZCcsCkBAIC01Mjk5LDEzICs1MzE1LDIxIEBACiAgIHByb3BhcmFsbGVsID0+ICdyJywgcHJv cmV0dHlwZSA9PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAogICBwcm9zcmMgPT4g J3BnX3N0YXRfZ2V0X2luc19zaW5jZV92YWN1dW0nIH0sCiB7IG9pZCA9PiAnMTkzNCcsIGRl c2NyID0+ICdzdGF0aXN0aWNzOiBudW1iZXIgb2YgYmxvY2tzIGZldGNoZWQnLAotICBwcm9u YW1lID0+ICdwZ19zdGF0X2dldF9ibG9ja3NfZmV0Y2hlZCcsIHByb3ZvbGF0aWxlID0+ICdz JywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfaGVhcF9ibG9ja3NfZmV0Y2hlZCcsIHBy b3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCi0gIHByb3NyYyA9PiAncGdfc3RhdF9n ZXRfYmxvY2tzX2ZldGNoZWQnIH0sCisgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfaGVhcF9i bG9ja3NfZmV0Y2hlZCcgfSwKK3sgb2lkID0+ICc5NDMyJywgZGVzY3IgPT4gJ3N0YXRpc3Rp Y3M6IG51bWJlciBvZiBibG9ja3MgZmV0Y2hlZCcsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRf Z2V0X2luZGV4X2Jsb2Nrc19mZXRjaGVkJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9w YXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAn b2lkJywKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF9pbmRleF9ibG9ja3NfZmV0Y2hlZCcg fSwKIHsgb2lkID0+ICcxOTM1JywgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IG51bWJlciBvZiBi bG9ja3MgZm91bmQgaW4gY2FjaGUnLAotICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9ibG9j a3NfaGl0JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCisgIHBy b25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2hlYXBfYmxvY2tzX2hpdCcsIHByb3ZvbGF0aWxlID0+ ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLAorICBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJv YXJndHlwZXMgPT4gJ29pZCcsCisgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfaGVhcF9ibG9j a3NfaGl0JyB9LAoreyBvaWQgPT4gJzgzNTQnLCBkZXNjciA9PiAnc3RhdGlzdGljczogbnVt YmVyIG9mIGJsb2NrcyBmb3VuZCBpbiBjYWNoZScsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRf Z2V0X2luZGV4X2Jsb2Nrc19oaXQnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3BhcmFsbGVs ID0+ICdyJywKICAgcHJvcmV0dHlwZSA9PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQn LAotICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X2Jsb2Nrc19oaXQnIH0sCisgIHByb3NyYyA9 PiAncGdfc3RhdF9nZXRfaW5kZXhfYmxvY2tzX2hpdCcgfSwKIHsgb2lkID0+ICcyNzgxJywg ZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IGxhc3QgbWFudWFsIHZhY3V1bSB0aW1lIGZvciBhIHRh YmxlJywKICAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfbGFzdF92YWN1dW1fdGltZScsIHBy b3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ ICd0aW1lc3RhbXB0eicsIHByb2FyZ3R5cGVzID0+ICdvaWQnLApAQCAtNTY5MywxMCArNTcx NywxNSBAQAogICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X2Z1bmN0aW9uX3NlbGZfdGltZScg fSwKIAogeyBvaWQgPT4gJzMwMzcnLAotICBkZXNjciA9PiAnc3RhdGlzdGljczogbnVtYmVy IG9mIHNjYW5zIGRvbmUgZm9yIHRhYmxlL2luZGV4IGluIGN1cnJlbnQgdHJhbnNhY3Rpb24n LAotICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF94YWN0X251bXNjYW5zJywgcHJvdm9sYXRp bGUgPT4gJ3YnLAorICBkZXNjciA9PiAnc3RhdGlzdGljczogbnVtYmVyIG9mIHNjYW5zIGRv bmUgZm9yIHRhYmxlIGluIGN1cnJlbnQgdHJhbnNhY3Rpb24nLAorICBwcm9uYW1lID0+ICdw Z19zdGF0X2dldF9oZWFwX3hhY3RfbnVtc2NhbnMnLCBwcm92b2xhdGlsZSA9PiAndicsCisg IHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAnaW50OCcsIHByb2FyZ3R5cGVz ID0+ICdvaWQnLAorICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X2hlYXBfeGFjdF9udW1zY2Fu cycgfSwKK3sgb2lkID0+ICc4ODkyJywKKyAgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IG51bWJl ciBvZiBzY2FucyBkb25lIGZvciBpbmRleCBpbiBjdXJyZW50IHRyYW5zYWN0aW9uJywKKyAg cHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfaW5kZXhfeGFjdF9udW1zY2FucycsIHByb3ZvbGF0 aWxlID0+ICd2JywKICAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdpbnQ4 JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCi0gIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfeGFj dF9udW1zY2FucycgfSwKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF9pbmRleF94YWN0X251 bXNjYW5zJyB9LAogeyBvaWQgPT4gJzMwMzgnLAogICBkZXNjciA9PiAnc3RhdGlzdGljczog bnVtYmVyIG9mIHR1cGxlcyByZWFkIGJ5IHNlcXNjYW4gaW4gY3VycmVudCB0cmFuc2FjdGlv bicsCiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3hhY3RfdHVwbGVzX3JldHVybmVkJywg cHJvdm9sYXRpbGUgPT4gJ3YnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdzdGF0Lmgg Yi9zcmMvaW5jbHVkZS9wZ3N0YXQuaAppbmRleCA5ZTJjZTZmMDExLi42NWIxYWZlOTcxIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaAorKysgYi9zcmMvaW5jbHVkZS9wZ3N0 YXQuaApAQCAtMzksNyArMzksOCBAQCB0eXBlZGVmIGVudW0gUGdTdGF0X0tpbmQKIAogCS8q IHN0YXRzIGZvciB2YXJpYWJsZS1udW1iZXJlZCBvYmplY3RzICovCiAJUEdTVEFUX0tJTkRf REFUQUJBU0UsCQkvKiBkYXRhYmFzZS13aWRlIHN0YXRpc3RpY3MgKi8KLQlQR1NUQVRfS0lO RF9SRUxBVElPTiwJCS8qIHBlci10YWJsZSBzdGF0aXN0aWNzICovCisJUEdTVEFUX0tJTkRf VEFCTEUsCQkJLyogcGVyLXRhYmxlIHN0YXRpc3RpY3MgKi8KKwlQR1NUQVRfS0lORF9JTkRF WCwJCQkvKiBwZXItaW5kZXggc3RhdGlzdGljcyAqLwogCVBHU1RBVF9LSU5EX0ZVTkNUSU9O LAkJLyogcGVyLWZ1bmN0aW9uIHN0YXRpc3RpY3MgKi8KIAlQR1NUQVRfS0lORF9SRVBMU0xP VCwJCS8qIHBlci1zbG90IHN0YXRpc3RpY3MgKi8KIAlQR1NUQVRfS0lORF9TVUJTQ1JJUFRJ T04sCS8qIHBlci1zdWJzY3JpcHRpb24gc3RhdGlzdGljcyAqLwpAQCAtMTQ1LDYgKzE0Niwy OCBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfQmFja2VuZFN1YkVudHJ5CiAJUGdTdGF0X0Nv dW50ZXIgc3luY19lcnJvcl9jb3VudDsKIH0gUGdTdGF0X0JhY2tlbmRTdWJFbnRyeTsKIAor LyogLS0tLS0tLS0tLQorICogUGdTdGF0X0luZGV4Q291bnRzCQkJVGhlIGFjdHVhbCBwZXIt aW5kZXggY291bnRzIGtlcHQgYnkgYSBiYWNrZW5kCisgKgorICogVGhpcyBzdHJ1Y3Qgc2hv dWxkIGNvbnRhaW4gb25seSBhY3R1YWwgZXZlbnQgY291bnRlcnMsIGJlY2F1c2Ugd2UgbWVt Y21wCisgKiBpdCBhZ2FpbnN0IHplcm9lcyB0byBkZXRlY3Qgd2hldGhlciB0aGVyZSBhcmUg YW55IHN0YXRzIHVwZGF0ZXMgdG8gYXBwbHkuCisgKiBJdCBpcyBhIGNvbXBvbmVudCBvZiBQ Z1N0YXRfSW5kZXhTdGF0dXMgKHdpdGhpbi1iYWNrZW5kIHN0YXRlKS4KKyAqCisgKiB0dXBs ZXNfcmV0dXJuZWQgaXMgdGhlIG51bWJlciBvZiBpbmRleCBlbnRyaWVzIHJldHVybmVkIGJ5 CisgKiB0aGUgaW5kZXggQU0sIHdoaWxlIHR1cGxlc19mZXRjaGVkIGlzIHRoZSBudW1iZXIg b2YgdHVwbGVzIHN1Y2Nlc3NmdWxseQorICogZmV0Y2hlZCBieSBoZWFwX2ZldGNoIHVuZGVy IHRoZSBjb250cm9sIG9mIHNpbXBsZSBpbmRleHNjYW5zIGZvciB0aGlzIGluZGV4LgorICog LS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfSW5kZXhDb3VudHMKK3sK KwlQZ1N0YXRfQ291bnRlciBpX251bXNjYW5zOworCisJUGdTdGF0X0NvdW50ZXIgaV90dXBs ZXNfcmV0dXJuZWQ7CisJUGdTdGF0X0NvdW50ZXIgaV90dXBsZXNfZmV0Y2hlZDsKKwlQZ1N0 YXRfQ291bnRlciBpX2Jsb2Nrc19mZXRjaGVkOworCVBnU3RhdF9Db3VudGVyIGlfYmxvY2tz X2hpdDsKK30gUGdTdGF0X0luZGV4Q291bnRzOworCiAvKiAtLS0tLS0tLS0tCiAgKiBQZ1N0 YXRfVGFibGVDb3VudHMJCQlUaGUgYWN0dWFsIHBlci10YWJsZSBjb3VudHMga2VwdCBieSBh IGJhY2tlbmQKICAqCkBAIC0xNTIsMTIgKzE3NSw5IEBAIHR5cGVkZWYgc3RydWN0IFBnU3Rh dF9CYWNrZW5kU3ViRW50cnkKICAqIGl0IGFnYWluc3QgemVyb2VzIHRvIGRldGVjdCB3aGV0 aGVyIHRoZXJlIGFyZSBhbnkgc3RhdHMgdXBkYXRlcyB0byBhcHBseS4KICAqIEl0IGlzIGEg Y29tcG9uZW50IG9mIFBnU3RhdF9UYWJsZVN0YXR1cyAod2l0aGluLWJhY2tlbmQgc3RhdGUp LgogICoKLSAqIE5vdGU6IGZvciBhIHRhYmxlLCB0dXBsZXNfcmV0dXJuZWQgaXMgdGhlIG51 bWJlciBvZiB0dXBsZXMgc3VjY2Vzc2Z1bGx5CisgKiBOb3RlOiB0dXBsZXNfcmV0dXJuZWQg aXMgdGhlIG51bWJlciBvZiB0dXBsZXMgc3VjY2Vzc2Z1bGx5CiAgKiBmZXRjaGVkIGJ5IGhl YXBfZ2V0bmV4dCwgd2hpbGUgdHVwbGVzX2ZldGNoZWQgaXMgdGhlIG51bWJlciBvZiB0dXBs ZXMKICAqIHN1Y2Nlc3NmdWxseSBmZXRjaGVkIGJ5IGhlYXBfZmV0Y2ggdW5kZXIgdGhlIGNv bnRyb2wgb2YgYml0bWFwIGluZGV4c2NhbnMuCi0gKiBGb3IgYW4gaW5kZXgsIHR1cGxlc19y ZXR1cm5lZCBpcyB0aGUgbnVtYmVyIG9mIGluZGV4IGVudHJpZXMgcmV0dXJuZWQgYnkKLSAq IHRoZSBpbmRleCBBTSwgd2hpbGUgdHVwbGVzX2ZldGNoZWQgaXMgdGhlIG51bWJlciBvZiB0 dXBsZXMgc3VjY2Vzc2Z1bGx5Ci0gKiBmZXRjaGVkIGJ5IGhlYXBfZmV0Y2ggdW5kZXIgdGhl IGNvbnRyb2wgb2Ygc2ltcGxlIGluZGV4c2NhbnMgZm9yIHRoaXMgaW5kZXguCiAgKgogICog dHVwbGVzX2luc2VydGVkL3VwZGF0ZWQvZGVsZXRlZC9ob3RfdXBkYXRlZCBjb3VudCBhdHRl bXB0ZWQgYWN0aW9ucywKICAqIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgdHJhbnNhY3Rp b24gY29tbWl0dGVkLiAgZGVsdGFfbGl2ZV90dXBsZXMsCkBAIC0yMTAsNiArMjMwLDIyIEBA IHR5cGVkZWYgc3RydWN0IFBnU3RhdF9UYWJsZVN0YXR1cwogCVJlbGF0aW9uCXJlbGF0aW9u OwkJLyogcmVsIHRoYXQgaXMgdXNpbmcgdGhpcyBlbnRyeSAqLwogfSBQZ1N0YXRfVGFibGVT dGF0dXM7CiAKKy8qIC0tLS0tLS0tLS0KKyAqIFBnU3RhdF9JbmRleFN0YXR1cwkJCVBlci1p bmRleCBzdGF0dXMgd2l0aGluIGEgYmFja2VuZAorICoKKyAqIE1hbnkgb2YgdGhlIGV2ZW50 IGNvdW50ZXJzIGFyZSBub250cmFuc2FjdGlvbmFsLCBpZSwgd2UgY291bnQgZXZlbnRzCisg KiBpbiBjb21taXR0ZWQgYW5kIGFib3J0ZWQgdHJhbnNhY3Rpb25zIGFsaWtlLiAgRm9yIHRo ZXNlLCB3ZSBqdXN0IGNvdW50CisgKiBkaXJlY3RseSBpbiB0aGUgUGdTdGF0X0luZGV4U3Rh dHVzLgorICogLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfSW5kZXhT dGF0dXMKK3sKKwlPaWQJCQlyX2lkOwkJCS8qIHJlbGF0aW9uJ3MgT0lEICovCisJYm9vbAkJ cl9zaGFyZWQ7CQkvKiBpcyBpdCBhIHNoYXJlZCBjYXRhbG9nPyAqLworCVBnU3RhdF9JbmRl eENvdW50cyBpX2NvdW50czsJLyogZXZlbnQgY291bnRzIHRvIGJlIHNlbnQgKi8KKwlSZWxh dGlvbglyZWxhdGlvbjsJCS8qIHJlbCB0aGF0IGlzIHVzaW5nIHRoaXMgZW50cnkgKi8KK30g UGdTdGF0X0luZGV4U3RhdHVzOworCiAvKiAtLS0tLS0tLS0tCiAgKiBQZ1N0YXRfVGFibGVY YWN0U3RhdHVzCQlQZXItdGFibGUsIHBlci1zdWJ0cmFuc2FjdGlvbiBzdGF0dXMKICAqIC0t LS0tLS0tLS0KQEAgLTM4Miw2ICs0MTgsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0 YXRUYWJFbnRyeQogCVBnU3RhdF9Db3VudGVyIGF1dG92YWNfYW5hbHl6ZV9jb3VudDsKIH0g UGdTdGF0X1N0YXRUYWJFbnRyeTsKIAordHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXRJbmRF bnRyeQoreworCVBnU3RhdF9Db3VudGVyIG51bXNjYW5zOworCVRpbWVzdGFtcFR6IGxhc3Rz Y2FuOworCisJUGdTdGF0X0NvdW50ZXIgdHVwbGVzX3JldHVybmVkOworCVBnU3RhdF9Db3Vu dGVyIHR1cGxlc19mZXRjaGVkOworCVBnU3RhdF9Db3VudGVyIGJsb2Nrc19mZXRjaGVkOwor CVBnU3RhdF9Db3VudGVyIGJsb2Nrc19oaXQ7Cit9IFBnU3RhdF9TdGF0SW5kRW50cnk7CisK IHR5cGVkZWYgc3RydWN0IFBnU3RhdF9XYWxTdGF0cwogewogCVBnU3RhdF9Db3VudGVyIHdh bF9yZWNvcmRzOwpAQCAtNDk4LDExICs1NDUsMTUgQEAgZXh0ZXJuIFBnU3RhdF9CYWNrZW5k RnVuY3Rpb25FbnRyeSAqZmluZF9mdW5jc3RhdF9lbnRyeShPaWQgZnVuY19pZCk7CiAgKi8K IAogZXh0ZXJuIHZvaWQgcGdzdGF0X2NyZWF0ZV9yZWxhdGlvbihSZWxhdGlvbiByZWwpOwot ZXh0ZXJuIHZvaWQgcGdzdGF0X2Ryb3BfcmVsYXRpb24oUmVsYXRpb24gcmVsKTsKLWV4dGVy biB2b2lkIHBnc3RhdF9jb3B5X3JlbGF0aW9uX3N0YXRzKFJlbGF0aW9uIGRzdCwgUmVsYXRp b24gc3JjKTsKK2V4dGVybiB2b2lkIHBnc3RhdF9jcmVhdGVfdGFibGUoUmVsYXRpb24gcmVs KTsKK2V4dGVybiB2b2lkIHBnc3RhdF9kcm9wX2hlYXAoUmVsYXRpb24gcmVsKTsKK2V4dGVy biB2b2lkIHBnc3RhdF9kcm9wX2luZGV4KFJlbGF0aW9uIHJlbCk7CitleHRlcm4gdm9pZCBw Z3N0YXRfY29weV9pbmRleF9zdGF0cyhSZWxhdGlvbiBkc3QsIFJlbGF0aW9uIHNyYyk7CiAK IGV4dGVybiB2b2lkIHBnc3RhdF9pbml0X3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7CiBleHRl cm4gdm9pZCBwZ3N0YXRfYXNzb2NfcmVsYXRpb24oUmVsYXRpb24gcmVsKTsKK2V4dGVybiB2 b2lkIHBnc3RhdF9hc3NvY190YWJsZShSZWxhdGlvbiByZWwpOworZXh0ZXJuIHZvaWQgcGdz dGF0X2Fzc29jX2luZGV4KFJlbGF0aW9uIHJlbCk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfdW5s aW5rX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7CiAKIGV4dGVybiB2b2lkIHBnc3RhdF9yZXBv cnRfdmFjdXVtKE9pZCB0YWJsZW9pZCwgYm9vbCBzaGFyZWQsCkBAIC01MTMsNTEgKzU2NCw2 OSBAQCBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X2FuYWx5emUoUmVsYXRpb24gcmVsLAog CiAvKgogICogSWYgc3RhdHMgYXJlIGVuYWJsZWQsIGJ1dCBwZW5kaW5nIGRhdGEgaGFzbid0 IGJlZW4gcHJlcGFyZWQgeWV0LCBjYWxsCi0gKiBwZ3N0YXRfYXNzb2NfcmVsYXRpb24oKSB0 byBkbyBzby4gU2VlIGl0cyBjb21tZW50IGZvciB3aHkgdGhpcyBpcyBkb25lCi0gKiBzZXBh cmF0ZWx5IGZyb20gcGdzdGF0X2luaXRfcmVsYXRpb24oKS4KKyAqIHBnc3RhdF9hc3NvY190 YWJsZSgpIC8gcGdzdGF0X2Fzc29jX2luZGV4KCkgdG8gZG8gc28uCisgKiBTZWUgdGhlaXIg Y29tbWVudCBmb3Igd2h5IHRoaXMgaXMgZG9uZSBzZXBhcmF0ZWx5IGZyb20gcGdzdGF0X2lu aXRfcmVsYXRpb24oKS4KICAqLwotI2RlZmluZSBwZ3N0YXRfc2hvdWxkX2NvdW50X3JlbGF0 aW9uKHJlbCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0JKGxpa2VseSgocmVsKS0+ cGdzdGF0X2luZm8gIT0gTlVMTCkgPyB0cnVlIDogICAgICAgICAgICAgICAgICAgIFwKLQkg KChyZWwpLT5wZ3N0YXRfZW5hYmxlZCA/IHBnc3RhdF9hc3NvY19yZWxhdGlvbihyZWwpLCB0 cnVlIDogZmFsc2UpKQorI2RlZmluZSBwZ3N0YXRfc2hvdWxkX2NvdW50X3RhYmxlKHJlbCkg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJKGxpa2VseSgocmVsKS0+cGdzdGF0dGFi X2luZm8gIT0gTlVMTCkgPyB0cnVlIDogICAgICAgICAgICAgICAgICAgIFwKKwkgKChyZWwp LT5wZ3N0YXRfZW5hYmxlZCA/IHBnc3RhdF9hc3NvY190YWJsZShyZWwpLCB0cnVlIDogZmFs c2UpKQorCisjZGVmaW5lIHBnc3RhdF9zaG91bGRfY291bnRfaW5kZXgocmVsKSAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKwkobGlrZWx5KChyZWwpLT5wZ3N0YXRpbmRfaW5mbyAh PSBOVUxMKSA/IHRydWUgOiAgICAgICAgICAgICAgICAgICAgXAorCSAoKHJlbCktPnBnc3Rh dF9lbmFibGVkID8gcGdzdGF0X2Fzc29jX2luZGV4KHJlbCksIHRydWUgOiBmYWxzZSkpCiAK IC8qIG5vbnRyYW5zYWN0aW9uYWwgZXZlbnQgY291bnRzIGFyZSBzaW1wbGUgZW5vdWdoIHRv IGlubGluZSAqLwogCiAjZGVmaW5lIHBnc3RhdF9jb3VudF9oZWFwX3NjYW4ocmVsKQkJCQkJ CQkJCVwKIAlkbyB7CQkJCQkJCQkJCQkJCQkJXAotCQlpZiAocGdzdGF0X3Nob3VsZF9jb3Vu dF9yZWxhdGlvbihyZWwpKQkJCQkJCVwKLQkJCShyZWwpLT5wZ3N0YXRfaW5mby0+dF9jb3Vu dHMudF9udW1zY2FucysrOwkJCQlcCisJCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3RhYmxl KHJlbCkpCQkJCQkJXAorCQkJKHJlbCktPnBnc3RhdHRhYl9pbmZvLT50X2NvdW50cy50X251 bXNjYW5zKys7CQkJCVwKIAl9IHdoaWxlICgwKQogI2RlZmluZSBwZ3N0YXRfY291bnRfaGVh cF9nZXRuZXh0KHJlbCkJCQkJCQkJCVwKIAlkbyB7CQkJCQkJCQkJCQkJCQkJXAotCQlpZiAo cGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihyZWwpKQkJCQkJCVwKLQkJCShyZWwpLT5w Z3N0YXRfaW5mby0+dF9jb3VudHMudF90dXBsZXNfcmV0dXJuZWQrKzsJCVwKKwkJaWYgKHBn c3RhdF9zaG91bGRfY291bnRfdGFibGUocmVsKSkJCQkJCQlcCisJCQkocmVsKS0+cGdzdGF0 dGFiX2luZm8tPnRfY291bnRzLnRfdHVwbGVzX3JldHVybmVkKys7CQlcCiAJfSB3aGlsZSAo MCkKICNkZWZpbmUgcGdzdGF0X2NvdW50X2hlYXBfZmV0Y2gocmVsKQkJCQkJCQkJXAogCWRv IHsJCQkJCQkJCQkJCQkJCQlcCi0JCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3JlbGF0aW9u KHJlbCkpCQkJCQkJXAotCQkJKHJlbCktPnBnc3RhdF9pbmZvLT50X2NvdW50cy50X3R1cGxl c19mZXRjaGVkKys7CQlcCisJCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3RhYmxlKHJlbCkp CQkJCQkJXAorCQkJKHJlbCktPnBnc3RhdHRhYl9pbmZvLT50X2NvdW50cy50X3R1cGxlc19m ZXRjaGVkKys7CQlcCisJfSB3aGlsZSAoMCkKKyNkZWZpbmUgcGdzdGF0X2NvdW50X2luZGV4 X2ZldGNoKHJlbCkJCQkJCQkJCVwKKwlkbyB7CQkJCQkJCQkJCQkJCQkJXAorCQlpZiAocGdz dGF0X3Nob3VsZF9jb3VudF9pbmRleChyZWwpKQkJCQkJCVwKKwkJCShyZWwpLT5wZ3N0YXRp bmRfaW5mby0+aV9jb3VudHMuaV90dXBsZXNfZmV0Y2hlZCsrOwkJXAogCX0gd2hpbGUgKDAp CiAjZGVmaW5lIHBnc3RhdF9jb3VudF9pbmRleF9zY2FuKHJlbCkJCQkJCQkJCVwKIAlkbyB7 CQkJCQkJCQkJCQkJCQkJXAotCQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF9yZWxhdGlvbihy ZWwpKQkJCQkJCVwKLQkJCShyZWwpLT5wZ3N0YXRfaW5mby0+dF9jb3VudHMudF9udW1zY2Fu cysrOwkJCQlcCisJCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X2luZGV4KHJlbCkpCQkJCQkJ XAorCQkJKHJlbCktPnBnc3RhdGluZF9pbmZvLT5pX2NvdW50cy5pX251bXNjYW5zKys7CQkJ XAogCX0gd2hpbGUgKDApCiAjZGVmaW5lIHBnc3RhdF9jb3VudF9pbmRleF90dXBsZXMocmVs LCBuKQkJCQkJCQlcCiAJZG8gewkJCQkJCQkJCQkJCQkJCVwKLQkJaWYgKHBnc3RhdF9zaG91 bGRfY291bnRfcmVsYXRpb24ocmVsKSkJCQkJCQlcCi0JCQkocmVsKS0+cGdzdGF0X2luZm8t PnRfY291bnRzLnRfdHVwbGVzX3JldHVybmVkICs9IChuKTsJXAorCQlpZiAocGdzdGF0X3No b3VsZF9jb3VudF9pbmRleChyZWwpKQkJCQkJCVwKKwkJCShyZWwpLT5wZ3N0YXRpbmRfaW5m by0+aV9jb3VudHMuaV90dXBsZXNfcmV0dXJuZWQgKz0gKG4pOwlcCiAJfSB3aGlsZSAoMCkK LSNkZWZpbmUgcGdzdGF0X2NvdW50X2J1ZmZlcl9yZWFkKHJlbCkJCQkJCQkJCVwKKyNkZWZp bmUgcGdzdGF0X2NvdW50X2hlYXBfYnVmZmVyX3JlYWQocmVsKQkJCQkJCQkJXAogCWRvIHsJ CQkJCQkJCQkJCQkJCQlcCi0JCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3JlbGF0aW9uKHJl bCkpCQkJCQkJXAotCQkJKHJlbCktPnBnc3RhdF9pbmZvLT50X2NvdW50cy50X2Jsb2Nrc19m ZXRjaGVkKys7CQlcCisJCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3RhYmxlKHJlbCkpCVwK KwkJCShyZWwpLT5wZ3N0YXR0YWJfaW5mby0+dF9jb3VudHMudF9ibG9ja3NfZmV0Y2hlZCsr OwkJXAogCX0gd2hpbGUgKDApCi0jZGVmaW5lIHBnc3RhdF9jb3VudF9idWZmZXJfaGl0KHJl bCkJCQkJCQkJCVwKKyNkZWZpbmUgcGdzdGF0X2NvdW50X2luZGV4X2J1ZmZlcl9yZWFkKHJl bCkJCQkJCQkJCVwKIAlkbyB7CQkJCQkJCQkJCQkJCQkJXAotCQlpZiAocGdzdGF0X3Nob3Vs ZF9jb3VudF9yZWxhdGlvbihyZWwpKQkJCQkJCVwKLQkJCShyZWwpLT5wZ3N0YXRfaW5mby0+ dF9jb3VudHMudF9ibG9ja3NfaGl0Kys7CQkJXAorCQlpZiAocGdzdGF0X3Nob3VsZF9jb3Vu dF9pbmRleChyZWwpKQlcCisJCQkocmVsKS0+cGdzdGF0aW5kX2luZm8tPmlfY291bnRzLmlf YmxvY2tzX2ZldGNoZWQrKzsJCVwKKwl9IHdoaWxlICgwKQorI2RlZmluZSBwZ3N0YXRfY291 bnRfaGVhcF9idWZmZXJfaGl0KHJlbCkJCQkJCQkJCVwKKwlkbyB7CQkJCQkJCQkJCQkJCQkJ XAorCQlpZiAocGdzdGF0X3Nob3VsZF9jb3VudF90YWJsZShyZWwpKQlcCisJCQkocmVsKS0+ cGdzdGF0dGFiX2luZm8tPnRfY291bnRzLnRfYmxvY2tzX2hpdCsrOyBcCisJfSB3aGlsZSAo MCkKKyNkZWZpbmUgcGdzdGF0X2NvdW50X2luZGV4X2J1ZmZlcl9oaXQocmVsKQkJCQkJCQkJ XAorCWRvIHsJCQkJCQkJCQkJCQkJCQlcCisJCWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X2lu ZGV4KHJlbCkpCVwKKwkJCShyZWwpLT5wZ3N0YXRpbmRfaW5mby0+aV9jb3VudHMuaV9ibG9j a3NfaGl0Kys7IFwKIAl9IHdoaWxlICgwKQotCiBleHRlcm4gdm9pZCBwZ3N0YXRfY291bnRf aGVhcF9pbnNlcnQoUmVsYXRpb24gcmVsLCBQZ1N0YXRfQ291bnRlciBuKTsKIGV4dGVybiB2 b2lkIHBnc3RhdF9jb3VudF9oZWFwX3VwZGF0ZShSZWxhdGlvbiByZWwsIGJvb2wgaG90KTsK IGV4dGVybiB2b2lkIHBnc3RhdF9jb3VudF9oZWFwX2RlbGV0ZShSZWxhdGlvbiByZWwpOwpA QCAtNTczLDYgKzY0MiwxMCBAQCBleHRlcm4gUGdTdGF0X1N0YXRUYWJFbnRyeSAqcGdzdGF0 X2ZldGNoX3N0YXRfdGFiZW50cnkoT2lkIHJlbGlkKTsKIGV4dGVybiBQZ1N0YXRfU3RhdFRh YkVudHJ5ICpwZ3N0YXRfZmV0Y2hfc3RhdF90YWJlbnRyeV9leHQoYm9vbCBzaGFyZWQsCiAJ CQkJCQkJCQkJCQkJCSAgIE9pZCByZWxvaWQpOwogZXh0ZXJuIFBnU3RhdF9UYWJsZVN0YXR1 cyAqZmluZF90YWJzdGF0X2VudHJ5KE9pZCByZWxfaWQpOworZXh0ZXJuIFBnU3RhdF9JbmRl eFN0YXR1cyAqZmluZF9pbmRzdGF0X2VudHJ5KE9pZCByZWxfaWQpOworZXh0ZXJuIFBnU3Rh dF9TdGF0SW5kRW50cnkgKnBnc3RhdF9mZXRjaF9zdGF0X2luZGVudHJ5KE9pZCByZWxpZCk7 CitleHRlcm4gUGdTdGF0X1N0YXRJbmRFbnRyeSAqcGdzdGF0X2ZldGNoX3N0YXRfaW5kZW50 cnlfZXh0KGJvb2wgc2hhcmVkLAorCQkJCQkJCQkJCQkJCQkgICBPaWQgcmVsaWQpOwogCiAK IC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfaW50ZXJuYWwuaCBi L3NyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oCmluZGV4IGM4Njk1MzNiMjgu LmI3NDY0YjVhNWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9pbnRl cm5hbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oCkBAIC0z NjAsMTEgKzM2MCwxNyBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRTaGFyZWRfRGF0YWJhc2UK IAlQZ1N0YXRfU3RhdERCRW50cnkgc3RhdHM7CiB9IFBnU3RhdFNoYXJlZF9EYXRhYmFzZTsK IAotdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0U2hhcmVkX1JlbGF0aW9uCit0eXBlZGVmIHN0cnVj dCBQZ1N0YXRTaGFyZWRfVGFibGUKIHsKIAlQZ1N0YXRTaGFyZWRfQ29tbW9uIGhlYWRlcjsK IAlQZ1N0YXRfU3RhdFRhYkVudHJ5IHN0YXRzOwotfSBQZ1N0YXRTaGFyZWRfUmVsYXRpb247 Cit9IFBnU3RhdFNoYXJlZF9UYWJsZTsKKwordHlwZWRlZiBzdHJ1Y3QgUGdTdGF0U2hhcmVk X0luZGV4Cit7CisJUGdTdGF0U2hhcmVkX0NvbW1vbiBoZWFkZXI7CisJUGdTdGF0X1N0YXRJ bmRFbnRyeSBzdGF0czsKK30gUGdTdGF0U2hhcmVkX0luZGV4OwogCiB0eXBlZGVmIHN0cnVj dCBQZ1N0YXRTaGFyZWRfRnVuY3Rpb24KIHsKQEAgLTU1OSw4ICs1NjUsMTAgQEAgZXh0ZXJu IHZvaWQgQXRFT1N1YlhhY3RfUGdTdGF0X1JlbGF0aW9ucyhQZ1N0YXRfU3ViWGFjdFN0YXR1 cyAqeGFjdF9zdGF0ZSwgYm9vbAogZXh0ZXJuIHZvaWQgQXRQcmVwYXJlX1BnU3RhdF9SZWxh dGlvbnMoUGdTdGF0X1N1YlhhY3RTdGF0dXMgKnhhY3Rfc3RhdGUpOwogZXh0ZXJuIHZvaWQg UG9zdFByZXBhcmVfUGdTdGF0X1JlbGF0aW9ucyhQZ1N0YXRfU3ViWGFjdFN0YXR1cyAqeGFj dF9zdGF0ZSk7CiAKLWV4dGVybiBib29sIHBnc3RhdF9yZWxhdGlvbl9mbHVzaF9jYihQZ1N0 YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpOwotZXh0ZXJuIHZvaWQgcGdz dGF0X3JlbGF0aW9uX2RlbGV0ZV9wZW5kaW5nX2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlf cmVmKTsKK2V4dGVybiBib29sIHBnc3RhdF90YWJsZV9mbHVzaF9jYihQZ1N0YXRfRW50cnlS ZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpOworZXh0ZXJuIGJvb2wgcGdzdGF0X2luZGV4 X2ZsdXNoX2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmLCBib29sIG5vd2FpdCk7Citl eHRlcm4gdm9pZCBwZ3N0YXRfdGFibGVfZGVsZXRlX3BlbmRpbmdfY2IoUGdTdGF0X0VudHJ5 UmVmICplbnRyeV9yZWYpOworZXh0ZXJuIHZvaWQgcGdzdGF0X2luZGV4X2RlbGV0ZV9wZW5k aW5nX2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmKTsKIAogCiAvKgpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmggYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaApp bmRleCBmMzgzYTJmY2E5Li43OTY0MjNmM2UzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91 dGlscy9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaApAQCAtMjQ4LDcgKzI0 OCwxMCBAQCB0eXBlZGVmIHN0cnVjdCBSZWxhdGlvbkRhdGEKIAogCWJvb2wJCXBnc3RhdF9l bmFibGVkOyAvKiBzaG91bGQgcmVsYXRpb24gc3RhdHMgYmUgY291bnRlZCAqLwogCS8qIHVz ZSAic3RydWN0IiBoZXJlIHRvIGF2b2lkIG5lZWRpbmcgdG8gaW5jbHVkZSBwZ3N0YXQuaDog Ki8KLQlzdHJ1Y3QgUGdTdGF0X1RhYmxlU3RhdHVzICpwZ3N0YXRfaW5mbzsgLyogc3RhdGlz dGljcyBjb2xsZWN0aW9uIGFyZWEgKi8KKwkvKiB0YWJsZSdzIHN0YXRpc3RpY3MgY29sbGVj dGlvbiBhcmVhICovCisJc3RydWN0IFBnU3RhdF9UYWJsZVN0YXR1cyAqcGdzdGF0dGFiX2lu Zm87CisJLyogSW5kZXgncyBzdGF0aXN0aWNzIGNvbGxlY3Rpb24gYXJlYSAqLworCXN0cnVj dCBQZ1N0YXRfSW5kZXhTdGF0dXMgKnBnc3RhdGluZF9pbmZvOwogfSBSZWxhdGlvbkRhdGE7 CiAKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3N0YXRzLm91 dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zdGF0cy5vdXQKaW5kZXggNjFiNWE3 MTBlYy4uNmZmMmNmYmQ5NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVj dGVkL3N0YXRzLm91dAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc3RhdHMu b3V0CkBAIC0yMTY2LDggKzIxNjYsOCBAQCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2gKIAog c3RlcCBzMV90YWJsZV9zdGF0czogCiAgICAgU0VMRUNUCi0gICAgICAgIHBnX3N0YXRfZ2V0 X251bXNjYW5zKHRzby5vaWQpIEFTIHNlcV9zY2FuLAotICAgICAgICBwZ19zdGF0X2dldF90 dXBsZXNfcmV0dXJuZWQodHNvLm9pZCkgQVMgc2VxX3R1cF9yZWFkLAorICAgICAgICBwZ19z dGF0X2dldF9oZWFwX251bXNjYW5zKHRzby5vaWQpIEFTIHNlcV9zY2FuLAorICAgICAgICBw Z19zdGF0X2dldF9oZWFwX3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVwX3Jl YWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCh0c28ub2lkKSBBUyBu X3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc191cGRhdGVkKHRzby5vaWQp IEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2RlbGV0ZWQodHNv Lm9pZCkgQVMgbl90dXBfZGVsLApAQCAtMjIxMCw4ICsyMjEwLDggQEAgc3RlcCBzMl90YWJs ZV91cGRhdGVfazE6IFVQREFURSB0ZXN0X3N0YXRfdGFiIFNFVCB2YWx1ZSA9IHZhbHVlICsg MSBXSEVSRSBrZXkgPQogc3RlcCBzMV90YWJsZV9kcm9wOiBEUk9QIFRBQkxFIHRlc3Rfc3Rh dF90YWI7CiBzdGVwIHMxX3RhYmxlX3N0YXRzOiAKICAgICBTRUxFQ1QKLSAgICAgICAgcGdf c3RhdF9nZXRfbnVtc2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCi0gICAgICAgIHBnX3N0 YXRfZ2V0X3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCisgICAg ICAgIHBnX3N0YXRfZ2V0X2hlYXBfbnVtc2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisg ICAgICAgIHBnX3N0YXRfZ2V0X2hlYXBfdHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNl cV90dXBfcmVhZCwKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2luc2VydGVkKHRzby5v aWQpIEFTIG5fdHVwX2lucywKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3VwZGF0ZWQo dHNvLm9pZCkgQVMgbl90dXBfdXBkLAogICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfZGVs ZXRlZCh0c28ub2lkKSBBUyBuX3R1cF9kZWwsCkBAIC0yMjM2LDggKzIyMzYsOCBAQCBwZ19z dGF0X2ZvcmNlX25leHRfZmx1c2gKIHN0ZXAgczFfdHJhY2tfY291bnRzX29mZjogU0VUIHRy YWNrX2NvdW50cyA9IG9mZjsKIHN0ZXAgczFfdGFibGVfc3RhdHM6IAogICAgIFNFTEVDVAot ICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fucyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKLSAg ICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBf cmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRfaGVhcF9udW1zY2Fucyh0c28ub2lkKSBBUyBz ZXFfc2NhbiwKKyAgICAgICAgcGdfc3RhdF9nZXRfaGVhcF90dXBsZXNfcmV0dXJuZWQodHNv Lm9pZCkgQVMgc2VxX3R1cF9yZWFkLAogICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfaW5z ZXJ0ZWQodHNvLm9pZCkgQVMgbl90dXBfaW5zLAogICAgICAgICBwZ19zdGF0X2dldF90dXBs ZXNfdXBkYXRlZCh0c28ub2lkKSBBUyBuX3R1cF91cGQsCiAgICAgICAgIHBnX3N0YXRfZ2V0 X3R1cGxlc19kZWxldGVkKHRzby5vaWQpIEFTIG5fdHVwX2RlbCwKQEAgLTIyNzUsOCArMjI3 NSw4IEBAIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaAogCiBzdGVwIHMxX3RhYmxlX3N0YXRz OiAKICAgICBTRUxFQ1QKLSAgICAgICAgcGdfc3RhdF9nZXRfbnVtc2NhbnModHNvLm9pZCkg QVMgc2VxX3NjYW4sCi0gICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19yZXR1cm5lZCh0c28u b2lkKSBBUyBzZXFfdHVwX3JlYWQsCisgICAgICAgIHBnX3N0YXRfZ2V0X2hlYXBfbnVtc2Nh bnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAgIHBnX3N0YXRfZ2V0X2hlYXBfdHVw bGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBfcmVhZCwKICAgICAgICAgcGdfc3Rh dF9nZXRfdHVwbGVzX2luc2VydGVkKHRzby5vaWQpIEFTIG5fdHVwX2lucywKICAgICAgICAg cGdfc3RhdF9nZXRfdHVwbGVzX3VwZGF0ZWQodHNvLm9pZCkgQVMgbl90dXBfdXBkLAogICAg ICAgICBwZ19zdGF0X2dldF90dXBsZXNfZGVsZXRlZCh0c28ub2lkKSBBUyBuX3R1cF9kZWws CkBAIC0yMzE0LDggKzIzMTQsOCBAQCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2gKIHN0ZXAg czFfdHJhY2tfY291bnRzX29mZjogU0VUIHRyYWNrX2NvdW50cyA9IG9mZjsKIHN0ZXAgczFf dGFibGVfc3RhdHM6IAogICAgIFNFTEVDVAotICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fu cyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKLSAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3Jl dHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBfcmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRf aGVhcF9udW1zY2Fucyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKKyAgICAgICAgcGdfc3RhdF9n ZXRfaGVhcF90dXBsZXNfcmV0dXJuZWQodHNvLm9pZCkgQVMgc2VxX3R1cF9yZWFkLAogICAg ICAgICBwZ19zdGF0X2dldF90dXBsZXNfaW5zZXJ0ZWQodHNvLm9pZCkgQVMgbl90dXBfaW5z LAogICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfdXBkYXRlZCh0c28ub2lkKSBBUyBuX3R1 cF91cGQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19kZWxldGVkKHRzby5vaWQpIEFT IG5fdHVwX2RlbCwKQEAgLTIzNjksOCArMjM2OSw4IEBAIHBnX3N0YXRfZm9yY2VfbmV4dF9m bHVzaAogCiBzdGVwIHMxX3RhYmxlX3N0YXRzOiAKICAgICBTRUxFQ1QKLSAgICAgICAgcGdf c3RhdF9nZXRfbnVtc2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCi0gICAgICAgIHBnX3N0 YXRfZ2V0X3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCisgICAg ICAgIHBnX3N0YXRfZ2V0X2hlYXBfbnVtc2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisg ICAgICAgIHBnX3N0YXRfZ2V0X2hlYXBfdHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNl cV90dXBfcmVhZCwKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2luc2VydGVkKHRzby5v aWQpIEFTIG5fdHVwX2lucywKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3VwZGF0ZWQo dHNvLm9pZCkgQVMgbl90dXBfdXBkLAogICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfZGVs ZXRlZCh0c28ub2lkKSBBUyBuX3R1cF9kZWwsCkBAIC0yNDAxLDggKzI0MDEsOCBAQCBwZ19z dGF0X2ZvcmNlX25leHRfZmx1c2gKIAogc3RlcCBzMV90YWJsZV9zdGF0czogCiAgICAgU0VM RUNUCi0gICAgICAgIHBnX3N0YXRfZ2V0X251bXNjYW5zKHRzby5vaWQpIEFTIHNlcV9zY2Fu LAotICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfcmV0dXJuZWQodHNvLm9pZCkgQVMgc2Vx X3R1cF9yZWFkLAorICAgICAgICBwZ19zdGF0X2dldF9oZWFwX251bXNjYW5zKHRzby5vaWQp IEFTIHNlcV9zY2FuLAorICAgICAgICBwZ19zdGF0X2dldF9oZWFwX3R1cGxlc19yZXR1cm5l ZCh0c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxl c19pbnNlcnRlZCh0c28ub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRfZ2V0 X3R1cGxlc191cGRhdGVkKHRzby5vaWQpIEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdfc3Rh dF9nZXRfdHVwbGVzX2RlbGV0ZWQodHNvLm9pZCkgQVMgbl90dXBfZGVsLApAQCAtMjQ2Myw4 ICsyNDYzLDggQEAgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoCiAKIHN0ZXAgczFfdGFibGVf c3RhdHM6IAogICAgIFNFTEVDVAotICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fucyh0c28u b2lkKSBBUyBzZXFfc2NhbiwKLSAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVk KHRzby5vaWQpIEFTIHNlcV90dXBfcmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRfaGVhcF9u dW1zY2Fucyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKKyAgICAgICAgcGdfc3RhdF9nZXRfaGVh cF90dXBsZXNfcmV0dXJuZWQodHNvLm9pZCkgQVMgc2VxX3R1cF9yZWFkLAogICAgICAgICBw Z19zdGF0X2dldF90dXBsZXNfaW5zZXJ0ZWQodHNvLm9pZCkgQVMgbl90dXBfaW5zLAogICAg ICAgICBwZ19zdGF0X2dldF90dXBsZXNfdXBkYXRlZCh0c28ub2lkKSBBUyBuX3R1cF91cGQs CiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19kZWxldGVkKHRzby5vaWQpIEFTIG5fdHVw X2RlbCwKQEAgLTI0OTUsOCArMjQ5NSw4IEBAIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaAog CiBzdGVwIHMxX3RhYmxlX3N0YXRzOiAKICAgICBTRUxFQ1QKLSAgICAgICAgcGdfc3RhdF9n ZXRfbnVtc2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCi0gICAgICAgIHBnX3N0YXRfZ2V0 X3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCisgICAgICAgIHBn X3N0YXRfZ2V0X2hlYXBfbnVtc2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAg IHBnX3N0YXRfZ2V0X2hlYXBfdHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBf cmVhZCwKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2luc2VydGVkKHRzby5vaWQpIEFT IG5fdHVwX2lucywKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3VwZGF0ZWQodHNvLm9p ZCkgQVMgbl90dXBfdXBkLAogICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfZGVsZXRlZCh0 c28ub2lkKSBBUyBuX3R1cF9kZWwsCkBAIC0yNTU4LDggKzI1NTgsOCBAQCBwZ19zdGF0X2Zv cmNlX25leHRfZmx1c2gKIAogc3RlcCBzMV90YWJsZV9zdGF0czogCiAgICAgU0VMRUNUCi0g ICAgICAgIHBnX3N0YXRfZ2V0X251bXNjYW5zKHRzby5vaWQpIEFTIHNlcV9zY2FuLAotICAg ICAgICBwZ19zdGF0X2dldF90dXBsZXNfcmV0dXJuZWQodHNvLm9pZCkgQVMgc2VxX3R1cF9y ZWFkLAorICAgICAgICBwZ19zdGF0X2dldF9oZWFwX251bXNjYW5zKHRzby5vaWQpIEFTIHNl cV9zY2FuLAorICAgICAgICBwZ19zdGF0X2dldF9oZWFwX3R1cGxlc19yZXR1cm5lZCh0c28u b2lkKSBBUyBzZXFfdHVwX3JlYWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19pbnNl cnRlZCh0c28ub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxl c191cGRhdGVkKHRzby5vaWQpIEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdfc3RhdF9nZXRf dHVwbGVzX2RlbGV0ZWQodHNvLm9pZCkgQVMgbl90dXBfZGVsLApAQCAtMjYyNyw4ICsyNjI3 LDggQEAgcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoCiAKIHN0ZXAgczFfdGFibGVfc3RhdHM6 IAogICAgIFNFTEVDVAotICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fucyh0c28ub2lkKSBB UyBzZXFfc2NhbiwKLSAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKHRzby5v aWQpIEFTIHNlcV90dXBfcmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRfaGVhcF9udW1zY2Fu cyh0c28ub2lkKSBBUyBzZXFfc2NhbiwKKyAgICAgICAgcGdfc3RhdF9nZXRfaGVhcF90dXBs ZXNfcmV0dXJuZWQodHNvLm9pZCkgQVMgc2VxX3R1cF9yZWFkLAogICAgICAgICBwZ19zdGF0 X2dldF90dXBsZXNfaW5zZXJ0ZWQodHNvLm9pZCkgQVMgbl90dXBfaW5zLAogICAgICAgICBw Z19zdGF0X2dldF90dXBsZXNfdXBkYXRlZCh0c28ub2lkKSBBUyBuX3R1cF91cGQsCiAgICAg ICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19kZWxldGVkKHRzby5vaWQpIEFTIG5fdHVwX2RlbCwK QEAgLTI2ODgsOCArMjY4OCw4IEBAIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaAogCiBzdGVw IHMxX3RhYmxlX3N0YXRzOiAKICAgICBTRUxFQ1QKLSAgICAgICAgcGdfc3RhdF9nZXRfbnVt c2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCi0gICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxl c19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCisgICAgICAgIHBnX3N0YXRf Z2V0X2hlYXBfbnVtc2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAgIHBnX3N0 YXRfZ2V0X2hlYXBfdHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBfcmVhZCwK ICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2luc2VydGVkKHRzby5vaWQpIEFTIG5fdHVw X2lucywKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3VwZGF0ZWQodHNvLm9pZCkgQVMg bl90dXBfdXBkLAogICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfZGVsZXRlZCh0c28ub2lk KSBBUyBuX3R1cF9kZWwsCkBAIC0yNzU1LDggKzI3NTUsOCBAQCBwZ19zdGF0X2ZvcmNlX25l eHRfZmx1c2gKIAogc3RlcCBzMV90YWJsZV9zdGF0czogCiAgICAgU0VMRUNUCi0gICAgICAg IHBnX3N0YXRfZ2V0X251bXNjYW5zKHRzby5vaWQpIEFTIHNlcV9zY2FuLAotICAgICAgICBw Z19zdGF0X2dldF90dXBsZXNfcmV0dXJuZWQodHNvLm9pZCkgQVMgc2VxX3R1cF9yZWFkLAor ICAgICAgICBwZ19zdGF0X2dldF9oZWFwX251bXNjYW5zKHRzby5vaWQpIEFTIHNlcV9zY2Fu LAorICAgICAgICBwZ19zdGF0X2dldF9oZWFwX3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBB UyBzZXFfdHVwX3JlYWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCh0 c28ub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc191cGRh dGVkKHRzby5vaWQpIEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVz X2RlbGV0ZWQodHNvLm9pZCkgQVMgbl90dXBfZGVsLApAQCAtMjc5NSw4ICsyNzk1LDggQEAg cGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoCiAKIHN0ZXAgczFfdGFibGVfc3RhdHM6IAogICAg IFNFTEVDVAotICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fucyh0c28ub2lkKSBBUyBzZXFf c2NhbiwKLSAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFT IHNlcV90dXBfcmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRfaGVhcF9udW1zY2Fucyh0c28u b2lkKSBBUyBzZXFfc2NhbiwKKyAgICAgICAgcGdfc3RhdF9nZXRfaGVhcF90dXBsZXNfcmV0 dXJuZWQodHNvLm9pZCkgQVMgc2VxX3R1cF9yZWFkLAogICAgICAgICBwZ19zdGF0X2dldF90 dXBsZXNfaW5zZXJ0ZWQodHNvLm9pZCkgQVMgbl90dXBfaW5zLAogICAgICAgICBwZ19zdGF0 X2dldF90dXBsZXNfdXBkYXRlZCh0c28ub2lkKSBBUyBuX3R1cF91cGQsCiAgICAgICAgIHBn X3N0YXRfZ2V0X3R1cGxlc19kZWxldGVkKHRzby5vaWQpIEFTIG5fdHVwX2RlbCwKQEAgLTI4 NDEsOCArMjg0MSw4IEBAIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaAogCiBzdGVwIHMxX3Rh YmxlX3N0YXRzOiAKICAgICBTRUxFQ1QKLSAgICAgICAgcGdfc3RhdF9nZXRfbnVtc2NhbnMo dHNvLm9pZCkgQVMgc2VxX3NjYW4sCi0gICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19yZXR1 cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCisgICAgICAgIHBnX3N0YXRfZ2V0X2hl YXBfbnVtc2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAgIHBnX3N0YXRfZ2V0 X2hlYXBfdHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBfcmVhZCwKICAgICAg ICAgcGdfc3RhdF9nZXRfdHVwbGVzX2luc2VydGVkKHRzby5vaWQpIEFTIG5fdHVwX2lucywK ICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3VwZGF0ZWQodHNvLm9pZCkgQVMgbl90dXBf dXBkLAogICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfZGVsZXRlZCh0c28ub2lkKSBBUyBu X3R1cF9kZWwsCkBAIC0yODgxLDggKzI4ODEsOCBAQCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1 c2gKIAogc3RlcCBzMV90YWJsZV9zdGF0czogCiAgICAgU0VMRUNUCi0gICAgICAgIHBnX3N0 YXRfZ2V0X251bXNjYW5zKHRzby5vaWQpIEFTIHNlcV9zY2FuLAotICAgICAgICBwZ19zdGF0 X2dldF90dXBsZXNfcmV0dXJuZWQodHNvLm9pZCkgQVMgc2VxX3R1cF9yZWFkLAorICAgICAg ICBwZ19zdGF0X2dldF9oZWFwX251bXNjYW5zKHRzby5vaWQpIEFTIHNlcV9zY2FuLAorICAg ICAgICBwZ19zdGF0X2dldF9oZWFwX3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFf dHVwX3JlYWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCh0c28ub2lk KSBBUyBuX3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc191cGRhdGVkKHRz by5vaWQpIEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2RlbGV0 ZWQodHNvLm9pZCkgQVMgbl90dXBfZGVsLApAQCAtMjkyNyw4ICsyOTI3LDggQEAgcGdfc3Rh dF9mb3JjZV9uZXh0X2ZsdXNoCiAKIHN0ZXAgczFfdGFibGVfc3RhdHM6IAogICAgIFNFTEVD VAotICAgICAgICBwZ19zdGF0X2dldF9udW1zY2Fucyh0c28ub2lkKSBBUyBzZXFfc2NhbiwK LSAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90 dXBfcmVhZCwKKyAgICAgICAgcGdfc3RhdF9nZXRfaGVhcF9udW1zY2Fucyh0c28ub2lkKSBB UyBzZXFfc2NhbiwKKyAgICAgICAgcGdfc3RhdF9nZXRfaGVhcF90dXBsZXNfcmV0dXJuZWQo dHNvLm9pZCkgQVMgc2VxX3R1cF9yZWFkLAogICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNf aW5zZXJ0ZWQodHNvLm9pZCkgQVMgbl90dXBfaW5zLAogICAgICAgICBwZ19zdGF0X2dldF90 dXBsZXNfdXBkYXRlZCh0c28ub2lkKSBBUyBuX3R1cF91cGQsCiAgICAgICAgIHBnX3N0YXRf Z2V0X3R1cGxlc19kZWxldGVkKHRzby5vaWQpIEFTIG5fdHVwX2RlbCwKQEAgLTI5NjgsOCAr Mjk2OCw4IEBAIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaAogCiBzdGVwIHMxX3RhYmxlX3N0 YXRzOiAKICAgICBTRUxFQ1QKLSAgICAgICAgcGdfc3RhdF9nZXRfbnVtc2NhbnModHNvLm9p ZCkgQVMgc2VxX3NjYW4sCi0gICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19yZXR1cm5lZCh0 c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCisgICAgICAgIHBnX3N0YXRfZ2V0X2hlYXBfbnVt c2NhbnModHNvLm9pZCkgQVMgc2VxX3NjYW4sCisgICAgICAgIHBnX3N0YXRfZ2V0X2hlYXBf dHVwbGVzX3JldHVybmVkKHRzby5vaWQpIEFTIHNlcV90dXBfcmVhZCwKICAgICAgICAgcGdf c3RhdF9nZXRfdHVwbGVzX2luc2VydGVkKHRzby5vaWQpIEFTIG5fdHVwX2lucywKICAgICAg ICAgcGdfc3RhdF9nZXRfdHVwbGVzX3VwZGF0ZWQodHNvLm9pZCkgQVMgbl90dXBfdXBkLAog ICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfZGVsZXRlZCh0c28ub2lkKSBBUyBuX3R1cF9k ZWwsCkBAIC0zMDE1LDggKzMwMTUsOCBAQCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2gKIAog c3RlcCBzMV90YWJsZV9zdGF0czogCiAgICAgU0VMRUNUCi0gICAgICAgIHBnX3N0YXRfZ2V0 X251bXNjYW5zKHRzby5vaWQpIEFTIHNlcV9zY2FuLAotICAgICAgICBwZ19zdGF0X2dldF90 dXBsZXNfcmV0dXJuZWQodHNvLm9pZCkgQVMgc2VxX3R1cF9yZWFkLAorICAgICAgICBwZ19z dGF0X2dldF9oZWFwX251bXNjYW5zKHRzby5vaWQpIEFTIHNlcV9zY2FuLAorICAgICAgICBw Z19zdGF0X2dldF9oZWFwX3R1cGxlc19yZXR1cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVwX3Jl YWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19pbnNlcnRlZCh0c28ub2lkKSBBUyBu X3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1cGxlc191cGRhdGVkKHRzby5vaWQp IEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdfc3RhdF9nZXRfdHVwbGVzX2RlbGV0ZWQodHNv Lm9pZCkgQVMgbl90dXBfZGVsLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3Nw ZWNzL3N0YXRzLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc3RhdHMuc3BlYwpp bmRleCA1YjkyMmQ3ODhjLi4wY2EyNTM5M2U0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29s YXRpb24vc3BlY3Mvc3RhdHMuc3BlYworKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mv c3RhdHMuc3BlYwpAQCAtOTMsOCArOTMsOCBAQCBzdGVwIHMxX3RhYmxlX2Ryb3AgeyBEUk9Q IFRBQkxFIHRlc3Rfc3RhdF90YWI7IH0KIAogc3RlcCBzMV90YWJsZV9zdGF0cyB7CiAgICAg U0VMRUNUCi0gICAgICAgIHBnX3N0YXRfZ2V0X251bXNjYW5zKHRzby5vaWQpIEFTIHNlcV9z Y2FuLAotICAgICAgICBwZ19zdGF0X2dldF90dXBsZXNfcmV0dXJuZWQodHNvLm9pZCkgQVMg c2VxX3R1cF9yZWFkLAorICAgICAgICBwZ19zdGF0X2dldF9oZWFwX251bXNjYW5zKHRzby5v aWQpIEFTIHNlcV9zY2FuLAorICAgICAgICBwZ19zdGF0X2dldF9oZWFwX3R1cGxlc19yZXR1 cm5lZCh0c28ub2lkKSBBUyBzZXFfdHVwX3JlYWQsCiAgICAgICAgIHBnX3N0YXRfZ2V0X3R1 cGxlc19pbnNlcnRlZCh0c28ub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAgICAgIHBnX3N0YXRf Z2V0X3R1cGxlc191cGRhdGVkKHRzby5vaWQpIEFTIG5fdHVwX3VwZCwKICAgICAgICAgcGdf c3RhdF9nZXRfdHVwbGVzX2RlbGV0ZWQodHNvLm9pZCkgQVMgbl90dXBfZGVsLApkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMjlfc3RhdHNfcmVzdGFydC5wbCBiL3NyYy90 ZXN0L3JlY292ZXJ5L3QvMDI5X3N0YXRzX3Jlc3RhcnQucGwKaW5kZXggMWJmN2I1NjhjYy4u YzI1NjM0ZDMzZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMjlfc3RhdHNf cmVzdGFydC5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAyOV9zdGF0c19yZXN0YXJ0 LnBsCkBAIC00Myw4ICs0Myw4IEBAIG15ICRzZWN0ID0gImluaXRpYWwiOwogaXMoaGF2ZV9z dGF0cygnZGF0YWJhc2UnLCAkZGJvaWQsIDApLCAndCcsICIkc2VjdDogZGIgc3RhdHMgZG8g ZXhpc3QiKTsKIGlzKGhhdmVfc3RhdHMoJ2Z1bmN0aW9uJywgJGRib2lkLCAkZnVuY29pZCks CiAJJ3QnLCAiJHNlY3Q6IGZ1bmN0aW9uIHN0YXRzIGRvIGV4aXN0Iik7Ci1pcyhoYXZlX3N0 YXRzKCdyZWxhdGlvbicsICRkYm9pZCwgJHRhYmxlb2lkKSwKLQkndCcsICIkc2VjdDogcmVs YXRpb24gc3RhdHMgZG8gZXhpc3QiKTsKK2lzKGhhdmVfc3RhdHMoJ3RhYmxlJywgJGRib2lk LCAkdGFibGVvaWQpLAorCSd0JywgIiRzZWN0OiB0YWJsZSBzdGF0cyBkbyBleGlzdCIpOwog CiAjIHJlZ3VsYXIgc2h1dGRvd24KICRub2RlLT5zdG9wKCk7CkBAIC02Nyw4ICs2Nyw4IEBA ICRzZWN0ID0gImNvcHkiOwogaXMoaGF2ZV9zdGF0cygnZGF0YWJhc2UnLCAkZGJvaWQsIDAp LCAndCcsICIkc2VjdDogZGIgc3RhdHMgZG8gZXhpc3QiKTsKIGlzKGhhdmVfc3RhdHMoJ2Z1 bmN0aW9uJywgJGRib2lkLCAkZnVuY29pZCksCiAJJ3QnLCAiJHNlY3Q6IGZ1bmN0aW9uIHN0 YXRzIGRvIGV4aXN0Iik7Ci1pcyhoYXZlX3N0YXRzKCdyZWxhdGlvbicsICRkYm9pZCwgJHRh Ymxlb2lkKSwKLQkndCcsICIkc2VjdDogcmVsYXRpb24gc3RhdHMgZG8gZXhpc3QiKTsKK2lz KGhhdmVfc3RhdHMoJ3RhYmxlJywgJGRib2lkLCAkdGFibGVvaWQpLAorCSd0JywgIiRzZWN0 OiB0YWJsZSBzdGF0cyBkbyBleGlzdCIpOwogCiAkbm9kZS0+c3RvcCgnaW1tZWRpYXRlJyk7 CiAKQEAgLTg0LDggKzg0LDggQEAgJHNlY3QgPSAicG9zdCBpbW1lZGlhdGUiOwogaXMoaGF2 ZV9zdGF0cygnZGF0YWJhc2UnLCAkZGJvaWQsIDApLCAnZicsICIkc2VjdDogZGIgc3RhdHMg ZG8gbm90IGV4aXN0Iik7CiBpcyhoYXZlX3N0YXRzKCdmdW5jdGlvbicsICRkYm9pZCwgJGZ1 bmNvaWQpLAogCSdmJywgIiRzZWN0OiBmdW5jdGlvbiBzdGF0cyBkbyBleGlzdCIpOwotaXMo aGF2ZV9zdGF0cygncmVsYXRpb24nLCAkZGJvaWQsICR0YWJsZW9pZCksCi0JJ2YnLCAiJHNl Y3Q6IHJlbGF0aW9uIHN0YXRzIGRvIG5vdCBleGlzdCIpOworaXMoaGF2ZV9zdGF0cygndGFi bGUnLCAkZGJvaWQsICR0YWJsZW9pZCksCisJJ2YnLCAiJHNlY3Q6IHRhYmxlIHN0YXRzIGRv IG5vdCBleGlzdCIpOwogCiAjIGdldCByaWQgb2YgYmFja3VwIHN0YXRzZmlsZQogdW5saW5r ICRzdGF0c2ZpbGUgb3IgZGllICJjYW5ub3QgdW5saW5rICRzdGF0c2ZpbGUgJCEiOwpAQCAt OTgsOCArOTgsOCBAQCAkc2VjdCA9ICJwb3N0IGltbWVkaWF0ZSwgbmV3IjsKIGlzKGhhdmVf c3RhdHMoJ2RhdGFiYXNlJywgJGRib2lkLCAwKSwgJ3QnLCAiJHNlY3Q6IGRiIHN0YXRzIGRv IGV4aXN0Iik7CiBpcyhoYXZlX3N0YXRzKCdmdW5jdGlvbicsICRkYm9pZCwgJGZ1bmNvaWQp LAogCSd0JywgIiRzZWN0OiBmdW5jdGlvbiBzdGF0cyBkbyBleGlzdCIpOwotaXMoaGF2ZV9z dGF0cygncmVsYXRpb24nLCAkZGJvaWQsICR0YWJsZW9pZCksCi0JJ3QnLCAiJHNlY3Q6IHJl bGF0aW9uIHN0YXRzIGRvIGV4aXN0Iik7CitpcyhoYXZlX3N0YXRzKCd0YWJsZScsICRkYm9p ZCwgJHRhYmxlb2lkKSwKKwkndCcsICIkc2VjdDogdGFibGUgc3RhdHMgZG8gZXhpc3QiKTsK IAogIyByZWd1bGFyIHNodXRkb3duCiAkbm9kZS0+c3RvcCgpOwpAQCAtMTE3LDggKzExNyw3 IEBAICRzZWN0ID0gImludmFsaWRfb3ZlcndyaXRlIjsKIGlzKGhhdmVfc3RhdHMoJ2RhdGFi YXNlJywgJGRib2lkLCAwKSwgJ2YnLCAiJHNlY3Q6IGRiIHN0YXRzIGRvIG5vdCBleGlzdCIp OwogaXMoaGF2ZV9zdGF0cygnZnVuY3Rpb24nLCAkZGJvaWQsICRmdW5jb2lkKSwKIAknZics ICIkc2VjdDogZnVuY3Rpb24gc3RhdHMgZG8gbm90IGV4aXN0Iik7Ci1pcyhoYXZlX3N0YXRz KCdyZWxhdGlvbicsICRkYm9pZCwgJHRhYmxlb2lkKSwKLQknZicsICIkc2VjdDogcmVsYXRp b24gc3RhdHMgZG8gbm90IGV4aXN0Iik7CitpcyhoYXZlX3N0YXRzKCd0YWJsZScsICRkYm9p ZCwgJHRhYmxlb2lkKSwgJ2YnLCAiJHNlY3Q6IHRhYmxlIGRvIG5vdCBleGlzdCIpOwogCiAK ICMjIGNoZWNrIGludmFsaWQgc3RhdHMgZmlsZSBzdGFydGluZyB3aXRoIHZhbGlkIGNvbnRl bnRzLCBidXQgZm9sbG93ZWQgYnkKQEAgLTEzMyw4ICsxMzIsOCBAQCAkc2VjdCA9ICJpbnZh bGlkX2FwcGVuZCI7CiBpcyhoYXZlX3N0YXRzKCdkYXRhYmFzZScsICRkYm9pZCwgMCksICdm JywgIiRzZWN0OiBkYiBzdGF0cyBkbyBub3QgZXhpc3QiKTsKIGlzKGhhdmVfc3RhdHMoJ2Z1 bmN0aW9uJywgJGRib2lkLCAkZnVuY29pZCksCiAJJ2YnLCAiJHNlY3Q6IGZ1bmN0aW9uIHN0 YXRzIGRvIG5vdCBleGlzdCIpOwotaXMoaGF2ZV9zdGF0cygncmVsYXRpb24nLCAkZGJvaWQs ICR0YWJsZW9pZCksCi0JJ2YnLCAiJHNlY3Q6IHJlbGF0aW9uIHN0YXRzIGRvIG5vdCBleGlz dCIpOworaXMoaGF2ZV9zdGF0cygndGFibGUnLCAkZGJvaWQsICR0YWJsZW9pZCksCisJJ2Yn LCAiJHNlY3Q6IHRhYmxlIHN0YXRzIGRvIG5vdCBleGlzdCIpOwogCiAKICMjIGNoZWNrcyBy ZWxhdGVkIHRvIHN0YXRzIHBlcnNpc3RlbmN5IGFyb3VuZCByZXN0YXJ0cyBhbmQgcmVzZXRz CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAzMF9zdGF0c19jbGVhbnVwX3Jl cGxpY2EucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAzMF9zdGF0c19jbGVhbnVwX3JlcGxp Y2EucGwKaW5kZXggY2M5MmRkYmI1Mi4uMWU3OGIxM2NmOSAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVjb3ZlcnkvdC8wMzBfc3RhdHNfY2xlYW51cF9yZXBsaWNhLnBsCisrKyBiL3NyYy90 ZXN0L3JlY292ZXJ5L3QvMDMwX3N0YXRzX2NsZWFudXBfcmVwbGljYS5wbApAQCAtMTg1LDcg KzE4NSw3IEBAIHN1YiB0ZXN0X3N0YW5kYnlfZnVuY190YWJfc3RhdHNfc3RhdHVzCiAJbXkg JXN0YXRzOwogCiAJJHN0YXRze3JlbH0gPSAkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJGNv bm5lY3RfZGIsCi0JCSJTRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdyZWxhdGlvbicsICRk Ym9pZCwgJHRhYmxlb2lkKSIpOworCQkiU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygndGFi bGUnLCAkZGJvaWQsICR0YWJsZW9pZCkiKTsKIAkkc3RhdHN7ZnVuY30gPSAkbm9kZV9zdGFu ZGJ5LT5zYWZlX3BzcWwoJGNvbm5lY3RfZGIsCiAJCSJTRUxFQ1QgcGdfc3RhdF9oYXZlX3N0 YXRzKCdmdW5jdGlvbicsICRkYm9pZCwgJGZ1bmNvaWQpIik7CiAKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggNjI0ZDBlNWFhZS4uNTMxMTY0ZTAzMCAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE3NjQsMTAgKzE3NjQsMTAgQEAg cGdfc3RhdF9hbGxfaW5kZXhlc3wgU0VMRUNUIGMub2lkIEFTIHJlbGlkLAogICAgIG4ubnNw bmFtZSBBUyBzY2hlbWFuYW1lLAogICAgIGMucmVsbmFtZSwKICAgICBpLnJlbG5hbWUgQVMg aW5kZXhyZWxuYW1lLAotICAgIHBnX3N0YXRfZ2V0X251bXNjYW5zKGkub2lkKSBBUyBpZHhf c2NhbiwKLSAgICBwZ19zdGF0X2dldF9sYXN0c2NhbihpLm9pZCkgQVMgbGFzdF9pZHhfc2Nh biwKLSAgICBwZ19zdGF0X2dldF90dXBsZXNfcmV0dXJuZWQoaS5vaWQpIEFTIGlkeF90dXBf cmVhZCwKLSAgICBwZ19zdGF0X2dldF90dXBsZXNfZmV0Y2hlZChpLm9pZCkgQVMgaWR4X3R1 cF9mZXRjaAorICAgIHBnX3N0YXRfZ2V0X2luZGV4X251bXNjYW5zKGkub2lkKSBBUyBpZHhf c2NhbiwKKyAgICBwZ19zdGF0X2dldF9pbmRleF9sYXN0c2NhbihpLm9pZCkgQVMgbGFzdF9p ZHhfc2NhbiwKKyAgICBwZ19zdGF0X2dldF9pbmRleF90dXBsZXNfcmV0dXJuZWQoaS5vaWQp IEFTIGlkeF90dXBfcmVhZCwKKyAgICBwZ19zdGF0X2dldF9pbmRleF90dXBsZXNfZmV0Y2hl ZChpLm9pZCkgQVMgaWR4X3R1cF9mZXRjaAogICAgRlJPTSAoKChwZ19jbGFzcyBjCiAgICAg IEpPSU4gcGdfaW5kZXggeCBPTiAoKGMub2lkID0geC5pbmRyZWxpZCkpKQogICAgICBKT0lO IHBnX2NsYXNzIGkgT04gKChpLm9pZCA9IHguaW5kZXhyZWxpZCkpKQpAQCAtMTc3NiwxMiAr MTc3NiwxMiBAQCBwZ19zdGF0X2FsbF9pbmRleGVzfCBTRUxFQ1QgYy5vaWQgQVMgcmVsaWQs CiBwZ19zdGF0X2FsbF90YWJsZXN8IFNFTEVDVCBjLm9pZCBBUyByZWxpZCwKICAgICBuLm5z cG5hbWUgQVMgc2NoZW1hbmFtZSwKICAgICBjLnJlbG5hbWUsCi0gICAgcGdfc3RhdF9nZXRf bnVtc2NhbnMoYy5vaWQpIEFTIHNlcV9zY2FuLAotICAgIHBnX3N0YXRfZ2V0X2xhc3RzY2Fu KGMub2lkKSBBUyBsYXN0X3NlcV9zY2FuLAotICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19yZXR1 cm5lZChjLm9pZCkgQVMgc2VxX3R1cF9yZWFkLAotICAgIChzdW0ocGdfc3RhdF9nZXRfbnVt c2NhbnMoaS5pbmRleHJlbGlkKSkpOjpiaWdpbnQgQVMgaWR4X3NjYW4sCi0gICAgbWF4KHBn X3N0YXRfZ2V0X2xhc3RzY2FuKGkuaW5kZXhyZWxpZCkpIEFTIGxhc3RfaWR4X3NjYW4sCi0g ICAgKChzdW0ocGdfc3RhdF9nZXRfdHVwbGVzX2ZldGNoZWQoaS5pbmRleHJlbGlkKSkpOjpi aWdpbnQgKyBwZ19zdGF0X2dldF90dXBsZXNfZmV0Y2hlZChjLm9pZCkpIEFTIGlkeF90dXBf ZmV0Y2gsCisgICAgcGdfc3RhdF9nZXRfaGVhcF9udW1zY2FucyhjLm9pZCkgQVMgc2VxX3Nj YW4sCisgICAgcGdfc3RhdF9nZXRfaGVhcF9sYXN0c2NhbihjLm9pZCkgQVMgbGFzdF9zZXFf c2NhbiwKKyAgICBwZ19zdGF0X2dldF9oZWFwX3R1cGxlc19yZXR1cm5lZChjLm9pZCkgQVMg c2VxX3R1cF9yZWFkLAorICAgIChzdW0ocGdfc3RhdF9nZXRfaW5kZXhfbnVtc2NhbnMoaS5p bmRleHJlbGlkKSkpOjpiaWdpbnQgQVMgaWR4X3NjYW4sCisgICAgbWF4KHBnX3N0YXRfZ2V0 X2luZGV4X2xhc3RzY2FuKGkuaW5kZXhyZWxpZCkpIEFTIGxhc3RfaWR4X3NjYW4sCisgICAg KChzdW0ocGdfc3RhdF9nZXRfaW5kZXhfdHVwbGVzX2ZldGNoZWQoaS5pbmRleHJlbGlkKSkp OjpiaWdpbnQgKyBwZ19zdGF0X2dldF9oZWFwX3R1cGxlc19mZXRjaGVkKGMub2lkKSkgQVMg aWR4X3R1cF9mZXRjaCwKICAgICBwZ19zdGF0X2dldF90dXBsZXNfaW5zZXJ0ZWQoYy5vaWQp IEFTIG5fdHVwX2lucywKICAgICBwZ19zdGF0X2dldF90dXBsZXNfdXBkYXRlZChjLm9pZCkg QVMgbl90dXBfdXBkLAogICAgIHBnX3N0YXRfZ2V0X3R1cGxlc19kZWxldGVkKGMub2lkKSBB UyBuX3R1cF9kZWwsCkBAIC0yMjIxLDkgKzIyMjEsOSBAQCBwZ19zdGF0X3dhbF9yZWNlaXZl cnwgU0VMRUNUIHMucGlkLAogcGdfc3RhdF94YWN0X2FsbF90YWJsZXN8IFNFTEVDVCBjLm9p ZCBBUyByZWxpZCwKICAgICBuLm5zcG5hbWUgQVMgc2NoZW1hbmFtZSwKICAgICBjLnJlbG5h bWUsCi0gICAgcGdfc3RhdF9nZXRfeGFjdF9udW1zY2FucyhjLm9pZCkgQVMgc2VxX3NjYW4s CisgICAgcGdfc3RhdF9nZXRfaGVhcF94YWN0X251bXNjYW5zKGMub2lkKSBBUyBzZXFfc2Nh biwKICAgICBwZ19zdGF0X2dldF94YWN0X3R1cGxlc19yZXR1cm5lZChjLm9pZCkgQVMgc2Vx X3R1cF9yZWFkLAotICAgIChzdW0ocGdfc3RhdF9nZXRfeGFjdF9udW1zY2FucyhpLmluZGV4 cmVsaWQpKSk6OmJpZ2ludCBBUyBpZHhfc2NhbiwKKyAgICAoc3VtKHBnX3N0YXRfZ2V0X2lu ZGV4X3hhY3RfbnVtc2NhbnMoaS5pbmRleHJlbGlkKSkpOjpiaWdpbnQgQVMgaWR4X3NjYW4s CiAgICAgKChzdW0ocGdfc3RhdF9nZXRfeGFjdF90dXBsZXNfZmV0Y2hlZChpLmluZGV4cmVs aWQpKSk6OmJpZ2ludCArIHBnX3N0YXRfZ2V0X3hhY3RfdHVwbGVzX2ZldGNoZWQoYy5vaWQp KSBBUyBpZHhfdHVwX2ZldGNoLAogICAgIHBnX3N0YXRfZ2V0X3hhY3RfdHVwbGVzX2luc2Vy dGVkKGMub2lkKSBBUyBuX3R1cF9pbnMsCiAgICAgcGdfc3RhdF9nZXRfeGFjdF90dXBsZXNf dXBkYXRlZChjLm9pZCkgQVMgbl90dXBfdXBkLApAQCAtMjI3NCw4ICsyMjc0LDggQEAgcGdf c3RhdGlvX2FsbF9pbmRleGVzfCBTRUxFQ1QgYy5vaWQgQVMgcmVsaWQsCiAgICAgbi5uc3Bu YW1lIEFTIHNjaGVtYW5hbWUsCiAgICAgYy5yZWxuYW1lLAogICAgIGkucmVsbmFtZSBBUyBp bmRleHJlbG5hbWUsCi0gICAgKHBnX3N0YXRfZ2V0X2Jsb2Nrc19mZXRjaGVkKGkub2lkKSAt IHBnX3N0YXRfZ2V0X2Jsb2Nrc19oaXQoaS5vaWQpKSBBUyBpZHhfYmxrc19yZWFkLAotICAg IHBnX3N0YXRfZ2V0X2Jsb2Nrc19oaXQoaS5vaWQpIEFTIGlkeF9ibGtzX2hpdAorICAgIChw Z19zdGF0X2dldF9pbmRleF9ibG9ja3NfZmV0Y2hlZChpLm9pZCkgLSBwZ19zdGF0X2dldF9p bmRleF9ibG9ja3NfaGl0KGkub2lkKSkgQVMgaWR4X2Jsa3NfcmVhZCwKKyAgICBwZ19zdGF0 X2dldF9pbmRleF9ibG9ja3NfaGl0KGkub2lkKSBBUyBpZHhfYmxrc19oaXQKICAgIEZST00g KCgocGdfY2xhc3MgYwogICAgICBKT0lOIHBnX2luZGV4IHggT04gKChjLm9pZCA9IHguaW5k cmVsaWQpKSkKICAgICAgSk9JTiBwZ19jbGFzcyBpIE9OICgoaS5vaWQgPSB4LmluZGV4cmVs aWQpKSkKQEAgLTIyODQsMzEgKzIyODQsMzEgQEAgcGdfc3RhdGlvX2FsbF9pbmRleGVzfCBT RUxFQ1QgYy5vaWQgQVMgcmVsaWQsCiBwZ19zdGF0aW9fYWxsX3NlcXVlbmNlc3wgU0VMRUNU IGMub2lkIEFTIHJlbGlkLAogICAgIG4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgIGMu cmVsbmFtZSwKLSAgICAocGdfc3RhdF9nZXRfYmxvY2tzX2ZldGNoZWQoYy5vaWQpIC0gcGdf c3RhdF9nZXRfYmxvY2tzX2hpdChjLm9pZCkpIEFTIGJsa3NfcmVhZCwKLSAgICBwZ19zdGF0 X2dldF9ibG9ja3NfaGl0KGMub2lkKSBBUyBibGtzX2hpdAorICAgIChwZ19zdGF0X2dldF9p bmRleF9ibG9ja3NfZmV0Y2hlZChjLm9pZCkgLSBwZ19zdGF0X2dldF9oZWFwX2Jsb2Nrc19o aXQoYy5vaWQpKSBBUyBibGtzX3JlYWQsCisgICAgcGdfc3RhdF9nZXRfaGVhcF9ibG9ja3Nf aGl0KGMub2lkKSBBUyBibGtzX2hpdAogICAgRlJPTSAocGdfY2xhc3MgYwogICAgICBMRUZU IEpPSU4gcGdfbmFtZXNwYWNlIG4gT04gKChuLm9pZCA9IGMucmVsbmFtZXNwYWNlKSkpCiAg IFdIRVJFIChjLnJlbGtpbmQgPSAnUyc6OiJjaGFyIik7CiBwZ19zdGF0aW9fYWxsX3RhYmxl c3wgU0VMRUNUIGMub2lkIEFTIHJlbGlkLAogICAgIG4ubnNwbmFtZSBBUyBzY2hlbWFuYW1l LAogICAgIGMucmVsbmFtZSwKLSAgICAocGdfc3RhdF9nZXRfYmxvY2tzX2ZldGNoZWQoYy5v aWQpIC0gcGdfc3RhdF9nZXRfYmxvY2tzX2hpdChjLm9pZCkpIEFTIGhlYXBfYmxrc19yZWFk LAotICAgIHBnX3N0YXRfZ2V0X2Jsb2Nrc19oaXQoYy5vaWQpIEFTIGhlYXBfYmxrc19oaXQs CisgICAgKHBnX3N0YXRfZ2V0X2hlYXBfYmxvY2tzX2ZldGNoZWQoYy5vaWQpIC0gcGdfc3Rh dF9nZXRfaGVhcF9ibG9ja3NfaGl0KGMub2lkKSkgQVMgaGVhcF9ibGtzX3JlYWQsCisgICAg cGdfc3RhdF9nZXRfaGVhcF9ibG9ja3NfaGl0KGMub2lkKSBBUyBoZWFwX2Jsa3NfaGl0LAog ICAgIGkuaWR4X2Jsa3NfcmVhZCwKICAgICBpLmlkeF9ibGtzX2hpdCwKLSAgICAocGdfc3Rh dF9nZXRfYmxvY2tzX2ZldGNoZWQodC5vaWQpIC0gcGdfc3RhdF9nZXRfYmxvY2tzX2hpdCh0 Lm9pZCkpIEFTIHRvYXN0X2Jsa3NfcmVhZCwKLSAgICBwZ19zdGF0X2dldF9ibG9ja3NfaGl0 KHQub2lkKSBBUyB0b2FzdF9ibGtzX2hpdCwKKyAgICAocGdfc3RhdF9nZXRfaGVhcF9ibG9j a3NfZmV0Y2hlZCh0Lm9pZCkgLSBwZ19zdGF0X2dldF9oZWFwX2Jsb2Nrc19oaXQodC5vaWQp KSBBUyB0b2FzdF9ibGtzX3JlYWQsCisgICAgcGdfc3RhdF9nZXRfaGVhcF9ibG9ja3NfaGl0 KHQub2lkKSBBUyB0b2FzdF9ibGtzX2hpdCwKICAgICB4LmlkeF9ibGtzX3JlYWQgQVMgdGlk eF9ibGtzX3JlYWQsCiAgICAgeC5pZHhfYmxrc19oaXQgQVMgdGlkeF9ibGtzX2hpdAogICAg RlJPTSAoKCgocGdfY2xhc3MgYwogICAgICBMRUZUIEpPSU4gcGdfY2xhc3MgdCBPTiAoKGMu cmVsdG9hc3RyZWxpZCA9IHQub2lkKSkpCiAgICAgIExFRlQgSk9JTiBwZ19uYW1lc3BhY2Ug biBPTiAoKG4ub2lkID0gYy5yZWxuYW1lc3BhY2UpKSkKLSAgICAgTEVGVCBKT0lOIExBVEVS QUwgKCBTRUxFQ1QgKHN1bSgocGdfc3RhdF9nZXRfYmxvY2tzX2ZldGNoZWQocGdfaW5kZXgu aW5kZXhyZWxpZCkgLSBwZ19zdGF0X2dldF9ibG9ja3NfaGl0KHBnX2luZGV4LmluZGV4cmVs aWQpKSkpOjpiaWdpbnQgQVMgaWR4X2Jsa3NfcmVhZCwKLSAgICAgICAgICAgIChzdW0ocGdf c3RhdF9nZXRfYmxvY2tzX2hpdChwZ19pbmRleC5pbmRleHJlbGlkKSkpOjpiaWdpbnQgQVMg aWR4X2Jsa3NfaGl0CisgICAgIExFRlQgSk9JTiBMQVRFUkFMICggU0VMRUNUIChzdW0oKHBn X3N0YXRfZ2V0X2luZGV4X2Jsb2Nrc19mZXRjaGVkKHBnX2luZGV4LmluZGV4cmVsaWQpIC0g cGdfc3RhdF9nZXRfaW5kZXhfYmxvY2tzX2hpdChwZ19pbmRleC5pbmRleHJlbGlkKSkpKTo6 YmlnaW50IEFTIGlkeF9ibGtzX3JlYWQsCisgICAgICAgICAgICAoc3VtKHBnX3N0YXRfZ2V0 X2luZGV4X2Jsb2Nrc19oaXQocGdfaW5kZXguaW5kZXhyZWxpZCkpKTo6YmlnaW50IEFTIGlk eF9ibGtzX2hpdAogICAgICAgICAgICBGUk9NIHBnX2luZGV4CiAgICAgICAgICAgV0hFUkUg KHBnX2luZGV4LmluZHJlbGlkID0gYy5vaWQpKSBpIE9OICh0cnVlKSkKLSAgICAgTEVGVCBK T0lOIExBVEVSQUwgKCBTRUxFQ1QgKHN1bSgocGdfc3RhdF9nZXRfYmxvY2tzX2ZldGNoZWQo cGdfaW5kZXguaW5kZXhyZWxpZCkgLSBwZ19zdGF0X2dldF9ibG9ja3NfaGl0KHBnX2luZGV4 LmluZGV4cmVsaWQpKSkpOjpiaWdpbnQgQVMgaWR4X2Jsa3NfcmVhZCwKLSAgICAgICAgICAg IChzdW0ocGdfc3RhdF9nZXRfYmxvY2tzX2hpdChwZ19pbmRleC5pbmRleHJlbGlkKSkpOjpi aWdpbnQgQVMgaWR4X2Jsa3NfaGl0CisgICAgIExFRlQgSk9JTiBMQVRFUkFMICggU0VMRUNU IChzdW0oKHBnX3N0YXRfZ2V0X2luZGV4X2Jsb2Nrc19mZXRjaGVkKHBnX2luZGV4LmluZGV4 cmVsaWQpIC0gcGdfc3RhdF9nZXRfaW5kZXhfYmxvY2tzX2hpdChwZ19pbmRleC5pbmRleHJl bGlkKSkpKTo6YmlnaW50IEFTIGlkeF9ibGtzX3JlYWQsCisgICAgICAgICAgICAoc3VtKHBn X3N0YXRfZ2V0X2luZGV4X2Jsb2Nrc19oaXQocGdfaW5kZXguaW5kZXhyZWxpZCkpKTo6Ymln aW50IEFTIGlkeF9ibGtzX2hpdAogICAgICAgICAgICBGUk9NIHBnX2luZGV4CiAgICAgICAg ICAgV0hFUkUgKHBnX2luZGV4LmluZHJlbGlkID0gdC5vaWQpKSB4IE9OICh0cnVlKSkKICAg V0hFUkUgKGMucmVsa2luZCA9IEFOWSAoQVJSQVlbJ3InOjoiY2hhciIsICd0Jzo6ImNoYXIi LCAnbSc6OiJjaGFyIl0pKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc3RhdHMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0cy5vdXQKaW5k ZXggMjU3YTZhOWRhOS4uNDQ5ZDcwZjRjNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zdGF0cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z dGF0cy5vdXQKQEAgLTE1MSw2ICsxNTEsMTE3IEBAIEZST00gcHJldnN0YXRzIEFTIHByOwog CiBDT01NSVQ7CiAtLS0tCistLSBCYXNpYyB0ZXN0cyBmb3IgdG9hc3QKKy0tLQorQ1JFQVRF IFRBQkxFIHN0YXRzX3RvYXN0KHN0dWZmIHRleHQpOworQUxURVIgVEFCTEUgc3RhdHNfdG9h c3QgQUxURVIgQ09MVU1OIHN0dWZmIFNFVCBTVE9SQUdFIEVYVEVSTkFMOworSU5TRVJUIElO VE8gc3RhdHNfdG9hc3QgVkFMVUVTIChyZXBlYXQoJ2EnLDEwMDAwMDApKTsKK1NFTEVDVCBj b3VudCgqKSBGUk9NIHN0YXRzX3RvYXN0IFdIRVJFIHN0dWZmIGxpa2UgJyVhJSc7CisgY291 bnQgCistLS0tLS0tCisgICAgIDEKKygxIHJvdykKKworLS0gZW5zdXJlIHBlbmRpbmcgc3Rh dHMgYXJlIGZsdXNoZWQKK1NFTEVDVCBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKKyBw Z19zdGF0X2ZvcmNlX25leHRfZmx1c2ggCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IAorKDEgcm93KQorCitzZWxlY3QgdG9hc3RfYmxrc19yZWFkID4gMCBhcyB0b2FzdF9ibGtz X3JlYWQsIHRvYXN0X2Jsa3NfaGl0ID4gMCBhcyB0b2FzdF9ibGtzX2hpdCwKKyAgICAgICB0 aWR4X2Jsa3NfcmVhZCA+IDAgYXMgdGlkeF9ibGtzX3JlYWQsIHRpZHhfYmxrc19oaXQgPiAw IGFzIHRpZHhfYmxrc19oaXQsCisgICAgICAgdG9hc3RfYmxrc19oaXQgPj0gdG9hc3RfYmxr c19yZWFkLAorICAgICAgIHRpZHhfYmxrc19oaXQgPj0gdGlkeF9ibGtzX3JlYWQKKyAgIGZy b20gcGdfc3RhdGlvX2FsbF90YWJsZXMKKyB3aGVyZSByZWxuYW1lID0gJ3N0YXRzX3RvYXN0 JzsKKyB0b2FzdF9ibGtzX3JlYWQgfCB0b2FzdF9ibGtzX2hpdCB8IHRpZHhfYmxrc19yZWFk IHwgdGlkeF9ibGtzX2hpdCB8ID9jb2x1bW4/IHwgP2NvbHVtbj8gCistLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHQgICAgICAgICAgICAgICB8IHQgICAgICAgICAg ICAgIHwgdCAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdCAgICAgICAgfCB0Ciso MSByb3cpCisKKy0tLS0KKy0tIEJhc2ljIHRlc3RzIGZvciBwYXJ0aXRpb24KKy0tLQorQ1JF QVRFIFRBQkxFIHN0YXRzX3BhcnRpdGlvbiAoCisgICAgaWQxICAgICAgICAgaW50IG5vdCBu dWxsLAorICAgIGlkMiAgICAgICAgIGludCBub3QgbnVsbAorKSBQQVJUSVRJT04gQlkgUkFO R0UgKGlkMik7CitDUkVBVEUgVEFCTEUgc3RhdHNfcGFydGl0aW9uXzUgUEFSVElUSU9OIE9G IHN0YXRzX3BhcnRpdGlvbgorICAgIEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8gKDUpOworQ1JF QVRFIFRBQkxFIHN0YXRzX3BhcnRpdGlvbl8yMDAwMCBQQVJUSVRJT04gT0Ygc3RhdHNfcGFy dGl0aW9uCisgICAgRk9SIFZBTFVFUyBGUk9NICg1KSBUTyAoMjAwMDEpOworQ1JFQVRFIElO REVYIE9OIHN0YXRzX3BhcnRpdGlvbiAoaWQyKTsKK2luc2VydCBpbnRvIHN0YXRzX3BhcnRp dGlvbiBzZWxlY3QgYSxhIGZyb20gZ2VuZXJhdGVfc2VyaWVzKDAsMjAwMDApIGE7CitTRVQg ZW5hYmxlX3NlcXNjYW4gVE8gb2ZmOworU0VUIGVuYWJsZV9iaXRtYXBzY2FuIFRPIG9mZjsK K3NlbGVjdCAqIGZyb20gc3RhdHNfcGFydGl0aW9uIHdoZXJlIGlkMiA9IDIwMDA7CisgaWQx ICB8IGlkMiAgCistLS0tLS0rLS0tLS0tCisgMjAwMCB8IDIwMDAKKygxIHJvdykKKworc2Vs ZWN0ICogZnJvbSBzdGF0c19wYXJ0aXRpb24gd2hlcmUgaWQyID0gMjsKKyBpZDEgfCBpZDIg CistLS0tLSstLS0tLQorICAgMiB8ICAgMgorKDEgcm93KQorCistLSBlbnN1cmUgcGVuZGlu ZyBzdGF0cyBhcmUgZmx1c2hlZAorU0VMRUNUIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCgp OworIHBnX3N0YXRfZm9yY2VfbmV4dF9mbHVzaCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgCisoMSByb3cpCisKK3NlbGVjdCByZWxuYW1lLCBpbmRleHJlbG5hbWUsIGlkeF9z Y2FuID4gMCBhcyBpZHhfc2NhbiwgaWR4X3R1cF9yZWFkID4gMCBhcyBpZHhfdHVwX3JlYWQs CisgICAgICAgaWR4X3R1cF9mZXRjaCA+IDAgYXMgaWR4X3R1cF9mZXRjaAorICAgZnJvbSBw Z19zdGF0X2FsbF9pbmRleGVzCisgd2hlcmUgcmVsbmFtZSBsaWtlICclc3RhdHNfcGFydGl0 aW9uJScKKyBvcmRlciBieSByZWxuYW1lIENPTExBVEUgIkMiOworICAgICAgICByZWxuYW1l ICAgICAgICB8ICAgICAgICAgaW5kZXhyZWxuYW1lICAgICAgICAgIHwgaWR4X3NjYW4gfCBp ZHhfdHVwX3JlYWQgfCBpZHhfdHVwX2ZldGNoIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLQorIHN0YXRzX3BhcnRpdGlvbl8yMDAwMCB8IHN0YXRzX3Bh cnRpdGlvbl8yMDAwMF9pZDJfaWR4IHwgdCAgICAgICAgfCB0ICAgICAgICAgICAgfCB0Cisg c3RhdHNfcGFydGl0aW9uXzUgICAgIHwgc3RhdHNfcGFydGl0aW9uXzVfaWQyX2lkeCAgICAg fCB0ICAgICAgICB8IHQgICAgICAgICAgICB8IHQKKygyIHJvd3MpCisKK3NlbGVjdCByZWxu YW1lLCBpbmRleHJlbG5hbWUsIGlkeF9ibGtzX3JlYWQgPiAwIGFzIGlkeF9ibGtzX3JlYWQs CisgICAgICAgaWR4X2Jsa3NfaGl0ID4gMCBhcyBpZHhfYmxrc19oaXQKKyAgIGZyb20gcGdf c3RhdGlvX2FsbF9pbmRleGVzCisgd2hlcmUgcmVsbmFtZSBsaWtlICclc3RhdHNfcGFydGl0 aW9uJScKKyBvcmRlciBieSByZWxuYW1lIENPTExBVEUgIkMiOworICAgICAgICByZWxuYW1l ICAgICAgICB8ICAgICAgICAgaW5kZXhyZWxuYW1lICAgICAgICAgIHwgaWR4X2Jsa3NfcmVh ZCB8IGlkeF9ibGtzX2hpdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisg c3RhdHNfcGFydGl0aW9uXzIwMDAwIHwgc3RhdHNfcGFydGl0aW9uXzIwMDAwX2lkMl9pZHgg fCB0ICAgICAgICAgICAgIHwgdAorIHN0YXRzX3BhcnRpdGlvbl81ICAgICB8IHN0YXRzX3Bh cnRpdGlvbl81X2lkMl9pZHggICAgIHwgdCAgICAgICAgICAgICB8IHQKKygyIHJvd3MpCisK K3NlbGVjdCByZWxuYW1lLHNlcV9zY2FuID4gMCBhcyBzZXFfc2Nhbiwgc2VxX3R1cF9yZWFk ID4gMCBhcyBzZXFfdHVwX3JlYWQsCisgICAgICAgaWR4X3NjYW4gPiAwIGFzIGlkeF9zY2Fu LCBpZHhfdHVwX2ZldGNoID4gMCBhcyBpZHhfdHVwX2ZldGNoCisgICBmcm9tIHBnX3N0YXRf YWxsX3RhYmxlcworICB3aGVyZSByZWxuYW1lIGxpa2UgJyVzdGF0c19wYXJ0aXRpb24lJwor ICBvcmRlciBieSByZWxuYW1lIENPTExBVEUgIkMiOworICAgICAgICByZWxuYW1lICAgICAg ICB8IHNlcV9zY2FuIHwgc2VxX3R1cF9yZWFkIHwgaWR4X3NjYW4gfCBpZHhfdHVwX2ZldGNo IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorIHN0YXRzX3BhcnRpdGlvbiAgICAgICB8IGYg ICAgICAgIHwgZiAgICAgICAgICAgIHwgZiAgICAgICAgfCBmCisgc3RhdHNfcGFydGl0aW9u XzIwMDAwIHwgdCAgICAgICAgfCBmICAgICAgICAgICAgfCB0ICAgICAgICB8IHQKKyBzdGF0 c19wYXJ0aXRpb25fNSAgICAgfCB0ICAgICAgICB8IGYgICAgICAgICAgICB8IHQgICAgICAg IHwgdAorKDMgcm93cykKKworc2VsZWN0IHJlbG5hbWUsIGhlYXBfYmxrc19yZWFkID4gMCBh cyBoZWFwX2Jsa3NfcmVhZCwgaGVhcF9ibGtzX2hpdCA+IDAgYXMgaGVhcF9ibGtzX2hpdCwK KyAgICAgICBpZHhfYmxrc19yZWFkID4gMCBhcyBpZHhfYmxrc19yZWFkLCBpZHhfYmxrc19o aXQgPiAwIGFzIGlkeF9ibGtzX2hpdAorICAgZnJvbSBwZ19zdGF0aW9fYWxsX3RhYmxlcwor IHdoZXJlIHJlbG5hbWUgbGlrZSAnJXN0YXRzX3BhcnRpdGlvbiUnCisgb3JkZXIgYnkgcmVs bmFtZSBDT0xMQVRFICJDIjsKKyAgICAgICAgcmVsbmFtZSAgICAgICAgfCBoZWFwX2Jsa3Nf cmVhZCB8IGhlYXBfYmxrc19oaXQgfCBpZHhfYmxrc19yZWFkIHwgaWR4X2Jsa3NfaGl0IAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgc3RhdHNfcGFydGl0aW9uXzIw MDAwIHwgdCAgICAgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICB8 IHQKKyBzdGF0c19wYXJ0aXRpb25fNSAgICAgfCB0ICAgICAgICAgICAgICB8IHQgICAgICAg ICAgICAgfCB0ICAgICAgICAgICAgIHwgdAorKDIgcm93cykKKworU0VUIGVuYWJsZV9zZXFz Y2FuIFRPIG9uOworU0VUIGVuYWJsZV9iaXRtYXBzY2FuIFRPIG9uOworLS0tLQogLS0gQmFz aWMgdGVzdHMgZm9yIHRyYWNrX2Z1bmN0aW9ucwogLS0tCiBDUkVBVEUgRlVOQ1RJT04gc3Rh dHNfdGVzdF9mdW5jMSgpIFJFVFVSTlMgVk9JRCBMQU5HVUFHRSBwbHBnc3FsIEFTICQkQkVH SU4gRU5EOyQkOwpAQCAtMTAxNSwyMSArMTEyNiwyMSBAQCBzZWxlY3QgYSBmcm9tIHN0YXRz X3Rlc3RfdGFiMSB3aGVyZSBhID0gMzsKICAzCiAoMSByb3cpCiAKLVNFTEVDVCBwZ19zdGF0 X2hhdmVfc3RhdHMoJ3JlbGF0aW9uJywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7 CitTRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdpbmRleCcsIDpkYm9pZCwgOnN0YXRzX3Rl c3RfaWR4MV9vaWQpOwogIHBnX3N0YXRfaGF2ZV9zdGF0cyAKIC0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgdAogKDEgcm93KQogCiAtLSBwZ19zdGF0X2hhdmVfc3RhdHMgcmV0dXJucyBmYWxz ZSBmb3IgZHJvcHBlZCBpbmRleCB3aXRoIHN0YXRzCi1TRUxFQ1QgcGdfc3RhdF9oYXZlX3N0 YXRzKCdyZWxhdGlvbicsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOworU0VMRUNU IHBnX3N0YXRfaGF2ZV9zdGF0cygnaW5kZXgnLCA6ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFf b2lkKTsKICBwZ19zdGF0X2hhdmVfc3RhdHMgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogIHQK ICgxIHJvdykKIAogRFJPUCBpbmRleCBzdGF0c190ZXN0X2lkeDE7Ci1TRUxFQ1QgcGdfc3Rh dF9oYXZlX3N0YXRzKCdyZWxhdGlvbicsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQp OworU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygnaW5kZXgnLCA6ZGJvaWQsIDpzdGF0c190 ZXN0X2lkeDFfb2lkKTsKICBwZ19zdGF0X2hhdmVfc3RhdHMgCiAtLS0tLS0tLS0tLS0tLS0t LS0tLQogIGYKQEAgLTEwNDUsMTQgKzExNTYsMTQgQEAgc2VsZWN0IGEgZnJvbSBzdGF0c190 ZXN0X3RhYjEgd2hlcmUgYSA9IDM7CiAgMwogKDEgcm93KQogCi1TRUxFQ1QgcGdfc3RhdF9o YXZlX3N0YXRzKCdyZWxhdGlvbicsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOwor U0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygnaW5kZXgnLCA6ZGJvaWQsIDpzdGF0c190ZXN0 X2lkeDFfb2lkKTsKICBwZ19zdGF0X2hhdmVfc3RhdHMgCiAtLS0tLS0tLS0tLS0tLS0tLS0t LQogIHQKICgxIHJvdykKIAogUk9MTEJBQ0s7Ci1TRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRz KCdyZWxhdGlvbicsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOworU0VMRUNUIHBn X3N0YXRfaGF2ZV9zdGF0cygnaW5kZXgnLCA6ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFfb2lk KTsKICBwZ19zdGF0X2hhdmVfc3RhdHMgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYKQEAg LTEwNjcsNyArMTE3OCw3IEBAIHNlbGVjdCBhIGZyb20gc3RhdHNfdGVzdF90YWIxIHdoZXJl IGEgPSAzOwogIDMKICgxIHJvdykKIAotU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygncmVs YXRpb24nLCA6ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFfb2lkKTsKK1NFTEVDVCBwZ19zdGF0 X2hhdmVfc3RhdHMoJ2luZGV4JywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7CiAg cGdfc3RhdF9oYXZlX3N0YXRzIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0KICB0CkBAIC0xMDc1 LDcgKzExODYsNyBAQCBTRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdyZWxhdGlvbicsIDpk Ym9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOwogCiBSRUlOREVYIGluZGV4IENPTkNVUlJF TlRMWSBzdGF0c190ZXN0X2lkeDE7CiAtLSBmYWxzZSBmb3IgcHJldmlvdXMgb2lkCi1TRUxF Q1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdyZWxhdGlvbicsIDpkYm9pZCwgOnN0YXRzX3Rlc3Rf aWR4MV9vaWQpOworU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygnaW5kZXgnLCA6ZGJvaWQs IDpzdGF0c190ZXN0X2lkeDFfb2lkKTsKICBwZ19zdGF0X2hhdmVfc3RhdHMgCiAtLS0tLS0t LS0tLS0tLS0tLS0tLQogIGYKQEAgLTEwODMsNyArMTE5NCw3IEBAIFNFTEVDVCBwZ19zdGF0 X2hhdmVfc3RhdHMoJ3JlbGF0aW9uJywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7 CiAKIC0tIHRydWUgZm9yIG5ldyBvaWQKIFNFTEVDVCAnc3RhdHNfdGVzdF9pZHgxJzo6cmVn Y2xhc3M6Om9pZCBBUyBzdGF0c190ZXN0X2lkeDFfb2lkIFxnc2V0Ci1TRUxFQ1QgcGdfc3Rh dF9oYXZlX3N0YXRzKCdyZWxhdGlvbicsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQp OworU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygnaW5kZXgnLCA6ZGJvaWQsIDpzdGF0c190 ZXN0X2lkeDFfb2lkKTsKICBwZ19zdGF0X2hhdmVfc3RhdHMgCiAtLS0tLS0tLS0tLS0tLS0t LS0tLQogIHQKQEAgLTEwOTEsNyArMTIwMiw3IEBAIFNFTEVDVCBwZ19zdGF0X2hhdmVfc3Rh dHMoJ3JlbGF0aW9uJywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7CiAKIC0tIHBn X3N0YXRfaGF2ZV9zdGF0cyByZXR1cm5zIHRydWUgZm9yIGEgcm9sbGVkIGJhY2sgZHJvcCBp bmRleCB3aXRoIHN0YXRzCiBCRUdJTjsKLVNFTEVDVCBwZ19zdGF0X2hhdmVfc3RhdHMoJ3Jl bGF0aW9uJywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7CitTRUxFQ1QgcGdfc3Rh dF9oYXZlX3N0YXRzKCdpbmRleCcsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOwog IHBnX3N0YXRfaGF2ZV9zdGF0cyAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgdApAQCAtMTA5 OSw3ICsxMjEwLDcgQEAgU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygncmVsYXRpb24nLCA6 ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFfb2lkKTsKIAogRFJPUCBpbmRleCBzdGF0c190ZXN0 X2lkeDE7CiBST0xMQkFDSzsKLVNFTEVDVCBwZ19zdGF0X2hhdmVfc3RhdHMoJ3JlbGF0aW9u JywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7CitTRUxFQ1QgcGdfc3RhdF9oYXZl X3N0YXRzKCdpbmRleCcsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOwogIHBnX3N0 YXRfaGF2ZV9zdGF0cyAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgdApkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c3RhdHMuc3FsCmluZGV4IGY2MjcwZjdiYWQuLmM3ZmVlNzFkNmYgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0YXRzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zdGF0cy5zcWwKQEAgLTEyNiw2ICsxMjYsNzcgQEAgRlJPTSBwcmV2c3RhdHMgQVMgcHI7 CiAKIENPTU1JVDsKIAorLS0tLQorLS0gQmFzaWMgdGVzdHMgZm9yIHRvYXN0CistLS0KK0NS RUFURSBUQUJMRSBzdGF0c190b2FzdChzdHVmZiB0ZXh0KTsKK0FMVEVSIFRBQkxFIHN0YXRz X3RvYXN0IEFMVEVSIENPTFVNTiBzdHVmZiBTRVQgU1RPUkFHRSBFWFRFUk5BTDsKK0lOU0VS VCBJTlRPIHN0YXRzX3RvYXN0IFZBTFVFUyAocmVwZWF0KCdhJywxMDAwMDAwKSk7CitTRUxF Q1QgY291bnQoKikgRlJPTSBzdGF0c190b2FzdCBXSEVSRSBzdHVmZiBsaWtlICclYSUnOwor CistLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAorU0VMRUNUIHBnX3N0YXRf Zm9yY2VfbmV4dF9mbHVzaCgpOworCitzZWxlY3QgdG9hc3RfYmxrc19yZWFkID4gMCBhcyB0 b2FzdF9ibGtzX3JlYWQsIHRvYXN0X2Jsa3NfaGl0ID4gMCBhcyB0b2FzdF9ibGtzX2hpdCwK KyAgICAgICB0aWR4X2Jsa3NfcmVhZCA+IDAgYXMgdGlkeF9ibGtzX3JlYWQsIHRpZHhfYmxr c19oaXQgPiAwIGFzIHRpZHhfYmxrc19oaXQsCisgICAgICAgdG9hc3RfYmxrc19oaXQgPj0g dG9hc3RfYmxrc19yZWFkLAorICAgICAgIHRpZHhfYmxrc19oaXQgPj0gdGlkeF9ibGtzX3Jl YWQKKyAgIGZyb20gcGdfc3RhdGlvX2FsbF90YWJsZXMKKyB3aGVyZSByZWxuYW1lID0gJ3N0 YXRzX3RvYXN0JzsKKworLS0tLQorLS0gQmFzaWMgdGVzdHMgZm9yIHBhcnRpdGlvbgorLS0t CitDUkVBVEUgVEFCTEUgc3RhdHNfcGFydGl0aW9uICgKKyAgICBpZDEgICAgICAgICBpbnQg bm90IG51bGwsCisgICAgaWQyICAgICAgICAgaW50IG5vdCBudWxsCispIFBBUlRJVElPTiBC WSBSQU5HRSAoaWQyKTsKKworQ1JFQVRFIFRBQkxFIHN0YXRzX3BhcnRpdGlvbl81IFBBUlRJ VElPTiBPRiBzdGF0c19wYXJ0aXRpb24KKyAgICBGT1IgVkFMVUVTIEZST00gKDApIFRPICg1 KTsKKworQ1JFQVRFIFRBQkxFIHN0YXRzX3BhcnRpdGlvbl8yMDAwMCBQQVJUSVRJT04gT0Yg c3RhdHNfcGFydGl0aW9uCisgICAgRk9SIFZBTFVFUyBGUk9NICg1KSBUTyAoMjAwMDEpOwor CitDUkVBVEUgSU5ERVggT04gc3RhdHNfcGFydGl0aW9uIChpZDIpOworCitpbnNlcnQgaW50 byBzdGF0c19wYXJ0aXRpb24gc2VsZWN0IGEsYSBmcm9tIGdlbmVyYXRlX3NlcmllcygwLDIw MDAwKSBhOworCitTRVQgZW5hYmxlX3NlcXNjYW4gVE8gb2ZmOworU0VUIGVuYWJsZV9iaXRt YXBzY2FuIFRPIG9mZjsKKworc2VsZWN0ICogZnJvbSBzdGF0c19wYXJ0aXRpb24gd2hlcmUg aWQyID0gMjAwMDsKK3NlbGVjdCAqIGZyb20gc3RhdHNfcGFydGl0aW9uIHdoZXJlIGlkMiA9 IDI7CistLSBlbnN1cmUgcGVuZGluZyBzdGF0cyBhcmUgZmx1c2hlZAorU0VMRUNUIHBnX3N0 YXRfZm9yY2VfbmV4dF9mbHVzaCgpOworCitzZWxlY3QgcmVsbmFtZSwgaW5kZXhyZWxuYW1l LCBpZHhfc2NhbiA+IDAgYXMgaWR4X3NjYW4sIGlkeF90dXBfcmVhZCA+IDAgYXMgaWR4X3R1 cF9yZWFkLAorICAgICAgIGlkeF90dXBfZmV0Y2ggPiAwIGFzIGlkeF90dXBfZmV0Y2gKKyAg IGZyb20gcGdfc3RhdF9hbGxfaW5kZXhlcworIHdoZXJlIHJlbG5hbWUgbGlrZSAnJXN0YXRz X3BhcnRpdGlvbiUnCisgb3JkZXIgYnkgcmVsbmFtZSBDT0xMQVRFICJDIjsKKworc2VsZWN0 IHJlbG5hbWUsIGluZGV4cmVsbmFtZSwgaWR4X2Jsa3NfcmVhZCA+IDAgYXMgaWR4X2Jsa3Nf cmVhZCwKKyAgICAgICBpZHhfYmxrc19oaXQgPiAwIGFzIGlkeF9ibGtzX2hpdAorICAgZnJv bSBwZ19zdGF0aW9fYWxsX2luZGV4ZXMKKyB3aGVyZSByZWxuYW1lIGxpa2UgJyVzdGF0c19w YXJ0aXRpb24lJworIG9yZGVyIGJ5IHJlbG5hbWUgQ09MTEFURSAiQyI7CisKK3NlbGVjdCBy ZWxuYW1lLHNlcV9zY2FuID4gMCBhcyBzZXFfc2Nhbiwgc2VxX3R1cF9yZWFkID4gMCBhcyBz ZXFfdHVwX3JlYWQsCisgICAgICAgaWR4X3NjYW4gPiAwIGFzIGlkeF9zY2FuLCBpZHhfdHVw X2ZldGNoID4gMCBhcyBpZHhfdHVwX2ZldGNoCisgICBmcm9tIHBnX3N0YXRfYWxsX3RhYmxl cworICB3aGVyZSByZWxuYW1lIGxpa2UgJyVzdGF0c19wYXJ0aXRpb24lJworICBvcmRlciBi eSByZWxuYW1lIENPTExBVEUgIkMiOworCitzZWxlY3QgcmVsbmFtZSwgaGVhcF9ibGtzX3Jl YWQgPiAwIGFzIGhlYXBfYmxrc19yZWFkLCBoZWFwX2Jsa3NfaGl0ID4gMCBhcyBoZWFwX2Js a3NfaGl0LAorICAgICAgIGlkeF9ibGtzX3JlYWQgPiAwIGFzIGlkeF9ibGtzX3JlYWQsIGlk eF9ibGtzX2hpdCA+IDAgYXMgaWR4X2Jsa3NfaGl0CisgICBmcm9tIHBnX3N0YXRpb19hbGxf dGFibGVzCisgd2hlcmUgcmVsbmFtZSBsaWtlICclc3RhdHNfcGFydGl0aW9uJScKKyBvcmRl ciBieSByZWxuYW1lIENPTExBVEUgIkMiOworCitTRVQgZW5hYmxlX3NlcXNjYW4gVE8gb247 CitTRVQgZW5hYmxlX2JpdG1hcHNjYW4gVE8gb247CisKIC0tLS0KIC0tIEJhc2ljIHRlc3Rz IGZvciB0cmFja19mdW5jdGlvbnMKIC0tLQpAQCAtNDkyLDQwICs1NjMsNDAgQEAgQ1JFQVRF IGluZGV4IHN0YXRzX3Rlc3RfaWR4MSBvbiBzdGF0c190ZXN0X3RhYjEoYSk7CiBTRUxFQ1Qg J3N0YXRzX3Rlc3RfaWR4MSc6OnJlZ2NsYXNzOjpvaWQgQVMgc3RhdHNfdGVzdF9pZHgxX29p ZCBcZ3NldAogU0VUIGVuYWJsZV9zZXFzY2FuIFRPIG9mZjsKIHNlbGVjdCBhIGZyb20gc3Rh dHNfdGVzdF90YWIxIHdoZXJlIGEgPSAzOwotU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygn cmVsYXRpb24nLCA6ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFfb2lkKTsKK1NFTEVDVCBwZ19z dGF0X2hhdmVfc3RhdHMoJ2luZGV4JywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7 CiAKIC0tIHBnX3N0YXRfaGF2ZV9zdGF0cyByZXR1cm5zIGZhbHNlIGZvciBkcm9wcGVkIGlu ZGV4IHdpdGggc3RhdHMKLVNFTEVDVCBwZ19zdGF0X2hhdmVfc3RhdHMoJ3JlbGF0aW9uJywg OmRib2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7CitTRUxFQ1QgcGdfc3RhdF9oYXZlX3N0 YXRzKCdpbmRleCcsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOwogRFJPUCBpbmRl eCBzdGF0c190ZXN0X2lkeDE7Ci1TRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdyZWxhdGlv bicsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOworU0VMRUNUIHBnX3N0YXRfaGF2 ZV9zdGF0cygnaW5kZXgnLCA6ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFfb2lkKTsKIAogLS0g cGdfc3RhdF9oYXZlX3N0YXRzIHJldHVybnMgZmFsc2UgZm9yIHJvbGxlZCBiYWNrIGluZGV4 IGNyZWF0aW9uCiBCRUdJTjsKIENSRUFURSBpbmRleCBzdGF0c190ZXN0X2lkeDEgb24gc3Rh dHNfdGVzdF90YWIxKGEpOwogU0VMRUNUICdzdGF0c190ZXN0X2lkeDEnOjpyZWdjbGFzczo6 b2lkIEFTIHN0YXRzX3Rlc3RfaWR4MV9vaWQgXGdzZXQKIHNlbGVjdCBhIGZyb20gc3RhdHNf dGVzdF90YWIxIHdoZXJlIGEgPSAzOwotU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygncmVs YXRpb24nLCA6ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFfb2lkKTsKK1NFTEVDVCBwZ19zdGF0 X2hhdmVfc3RhdHMoJ2luZGV4JywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7CiBS T0xMQkFDSzsKLVNFTEVDVCBwZ19zdGF0X2hhdmVfc3RhdHMoJ3JlbGF0aW9uJywgOmRib2lk LCA6c3RhdHNfdGVzdF9pZHgxX29pZCk7CitTRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdp bmRleCcsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOwogCiAtLSBwZ19zdGF0X2hh dmVfc3RhdHMgcmV0dXJucyB0cnVlIGZvciByZWluZGV4IENPTkNVUlJFTlRMWQogQ1JFQVRF IGluZGV4IHN0YXRzX3Rlc3RfaWR4MSBvbiBzdGF0c190ZXN0X3RhYjEoYSk7CiBTRUxFQ1Qg J3N0YXRzX3Rlc3RfaWR4MSc6OnJlZ2NsYXNzOjpvaWQgQVMgc3RhdHNfdGVzdF9pZHgxX29p ZCBcZ3NldAogc2VsZWN0IGEgZnJvbSBzdGF0c190ZXN0X3RhYjEgd2hlcmUgYSA9IDM7Ci1T RUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdyZWxhdGlvbicsIDpkYm9pZCwgOnN0YXRzX3Rl c3RfaWR4MV9vaWQpOworU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygnaW5kZXgnLCA6ZGJv aWQsIDpzdGF0c190ZXN0X2lkeDFfb2lkKTsKIFJFSU5ERVggaW5kZXggQ09OQ1VSUkVOVExZ IHN0YXRzX3Rlc3RfaWR4MTsKIC0tIGZhbHNlIGZvciBwcmV2aW91cyBvaWQKLVNFTEVDVCBw Z19zdGF0X2hhdmVfc3RhdHMoJ3JlbGF0aW9uJywgOmRib2lkLCA6c3RhdHNfdGVzdF9pZHgx X29pZCk7CitTRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdpbmRleCcsIDpkYm9pZCwgOnN0 YXRzX3Rlc3RfaWR4MV9vaWQpOwogLS0gdHJ1ZSBmb3IgbmV3IG9pZAogU0VMRUNUICdzdGF0 c190ZXN0X2lkeDEnOjpyZWdjbGFzczo6b2lkIEFTIHN0YXRzX3Rlc3RfaWR4MV9vaWQgXGdz ZXQKLVNFTEVDVCBwZ19zdGF0X2hhdmVfc3RhdHMoJ3JlbGF0aW9uJywgOmRib2lkLCA6c3Rh dHNfdGVzdF9pZHgxX29pZCk7CitTRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdpbmRleCcs IDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOwogCiAtLSBwZ19zdGF0X2hhdmVfc3Rh dHMgcmV0dXJucyB0cnVlIGZvciBhIHJvbGxlZCBiYWNrIGRyb3AgaW5kZXggd2l0aCBzdGF0 cwogQkVHSU47Ci1TRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdyZWxhdGlvbicsIDpkYm9p ZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOworU0VMRUNUIHBnX3N0YXRfaGF2ZV9zdGF0cygn aW5kZXgnLCA6ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFfb2lkKTsKIERST1AgaW5kZXggc3Rh dHNfdGVzdF9pZHgxOwogUk9MTEJBQ0s7Ci1TRUxFQ1QgcGdfc3RhdF9oYXZlX3N0YXRzKCdy ZWxhdGlvbicsIDpkYm9pZCwgOnN0YXRzX3Rlc3RfaWR4MV9vaWQpOworU0VMRUNUIHBnX3N0 YXRfaGF2ZV9zdGF0cygnaW5kZXgnLCA6ZGJvaWQsIDpzdGF0c190ZXN0X2lkeDFfb2lkKTsK IAogLS0gcHV0IGVuYWJsZV9zZXFzY2FuIGJhY2sgdG8gb24KIFNFVCBlbmFibGVfc2Vxc2Nh biBUTyBvbjsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggMmYwMmNjOGY0Mi4u Mzg4MDZkNWRlZSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTIwMDksMTAg KzIwMDksMTEgQEAgUGdTdGF0U2hhcmVkX0NvbW1vbgogUGdTdGF0U2hhcmVkX0RhdGFiYXNl CiBQZ1N0YXRTaGFyZWRfRnVuY3Rpb24KIFBnU3RhdFNoYXJlZF9IYXNoRW50cnkKLVBnU3Rh dFNoYXJlZF9SZWxhdGlvbgorUGdTdGF0U2hhcmVkX0luZGV4CiBQZ1N0YXRTaGFyZWRfUmVw bFNsb3QKIFBnU3RhdFNoYXJlZF9TTFJVCiBQZ1N0YXRTaGFyZWRfU3Vic2NyaXB0aW9uCitQ Z1N0YXRTaGFyZWRfVGFibGUKIFBnU3RhdFNoYXJlZF9XYWwKIFBnU3RhdF9BcmNoaXZlclN0 YXRzCiBQZ1N0YXRfQmFja2VuZEZ1bmN0aW9uRW50cnkK --------------OZrSu4earFURq7zuDs60WiAv--