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 1p7ZJR-0004cX-6C for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Dec 2022 09:53:29 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p7ZJP-0005VM-Oh for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Dec 2022 09:53:27 +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 1p7ZJP-0005VD-7b for pgsql-hackers@lists.postgresql.org; Tue, 20 Dec 2022 09:53:27 +0000 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1p7ZJH-0008LA-BI for pgsql-hackers@postgresql.org; Tue, 20 Dec 2022 09:53:26 +0000 Received: by mail-wr1-x431.google.com with SMTP id bx10so11244076wrb.0 for ; Tue, 20 Dec 2022 01:53:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=p+5MT5UK8pLBFQ/4rlgua+d2BjovQTeZ8AiKyIZ0+bM=; b=c4j2IbKBJm3dM+W0HO0HNkis2F/sQ+2ZcZinHQTMpDorIaJt2dPMll6bXozFa3e/AG 1GZXSy/+0YLbD9k9afUOcEPHSEl4x07T9WAzURcuGZOFEQlLc9d8ZoWsDKvr80O2RvQj FElpHxlyKe5DJRujhOBN5ktMZoTXHcE7gjdyXtb1stJTOS/HQs3APPm9Ssmd9ii4GmwF QqLTbWI+m4i2DE2D8yX6UMTnQWrHAyYF0OaptDJLglwPA/pqa68DVX43k1CrQUZuq/Hx iAuGl0v9n0ErGCKAGB4ymmofKqmEleocRkYGfmq77Fw4MmjdOSwGvXbkPLz24YBWueK1 OcIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=p+5MT5UK8pLBFQ/4rlgua+d2BjovQTeZ8AiKyIZ0+bM=; b=kwPH6eiECVrQSfNtu+jIgu6fRboMTosvWWc03LAAa+peM1a1AVxwVdVY4ezEfMYvFh 1irzygRNwlVFSSRgTuYKANRwQoCjVUSJ/f8WXb4L0Sor6CLWwuMqdIFCNOJK6M9T6jZb Jsv1l3DontHMKoQfeF/1J2vgJqr5vHa6Fwwq7XQircArg+9PGcfzElm84ledtrGW4NRA Pb5AET1LyVveN2k/KAQCYe4m3x6fKIsMuFdICVuZ/2mH5SwmVhljFdsFNzLez9GNcTc9 vWd/CECNiXtdU31LN4HLYU5NFXY03u1Q47eylxgpoSnt+hY5OhoGD4EcJTcIWH/d43xC d+dQ== X-Gm-Message-State: AFqh2koahndLYdlFj0KA7XEySLJrnd40KS7Tm4O0Lfrkpv2iPd72NvMg kpwEv4Ev+CurAoslrEmlgkw= X-Google-Smtp-Source: AMrXdXss/0r14q2jhnxOZFw43QByTR/GXKFSGHWwjb+XbYbxLoYPurWwIcIYzJpNrDeCGxFZ/5HGtA== X-Received: by 2002:a05:6000:784:b0:242:1277:925b with SMTP id bu4-20020a056000078400b002421277925bmr1037327wrb.59.1671529996558; Tue, 20 Dec 2022 01:53:16 -0800 (PST) Received: from [192.168.5.50] ([54.239.6.186]) by smtp.gmail.com with ESMTPSA id c10-20020a5d4cca000000b0024278304ef6sm12205788wrt.13.2022.12.20.01.53.14 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 20 Dec 2022 01:53:15 -0800 (PST) Content-Type: multipart/mixed; boundary="------------3T3Kqsei9cUCGxvjVj1HQucN" Message-ID: <117b962f-27d3-7ee9-bb2f-80a7e967c196@gmail.com> Date: Tue, 20 Dec 2022 10:51:59 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 Subject: Re: Minimal logical decoding on standbys Content-Language: en-US From: "Drouvot, Bertrand" To: Robert Haas Cc: Andres Freund , Alvaro Herrera , Ibrar Ahmed , Amit Khandekar , fabriziomello@gmail.com, tushar , Rahila Syed , pgsql-hackers References: <09c26df0-c5f9-eae0-5a6a-10fb00b0522e@gmail.com> <9f0a021e-40e1-0ae6-8086-a4457c99749e@gmail.com> <0ae83e69-bda0-0eb8-ef4a-d169292e3f66@gmail.com> <47f5faf0-6a6d-602a-5d5b-9449ca74c6ad@gmail.com> <60a6476d-f799-39ff-7cd6-98b2665a2c0b@gmail.com> <20221216135158.qdzftmbli6kwjzle@alap3.anarazel.de> <8df4d682-0948-179c-f134-1cc5edd73560@gmail.com> In-Reply-To: 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. --------------3T3Kqsei9cUCGxvjVj1HQucN Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, On 12/16/22 6:24 PM, Drouvot, Bertrand wrote: > Hi, > > On 12/16/22 5:38 PM, Robert Haas wrote: >> On Fri, Dec 16, 2022 at 10:08 AM Drouvot, Bertrand >> wrote: >>>> After 1489b1ce728 the name mayConflictInLogicalDecoding seems odd. Seems >>>> it should be a riff on snapshotConflictHorizon? >>> >>> Gotcha, what about logicalSnapshotConflictThreat? >> >> logicalConflictPossible? checkDecodingConflict? >> >> I think we should try to keep this to three words if we can. There's >> not likely to be enough value in a fourth word to make up for the >> downside of being more verbose. >> > > > Yeah agree, I'd vote for logicalConflictPossible then. > Please find attached v33 using logicalConflictPossible as the new field name instead of mayConflictInLogicalDecoding. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------3T3Kqsei9cUCGxvjVj1HQucN Content-Type: text/plain; charset=UTF-8; name="v33-0006-Fixing-Walsender-corner-case-with-logical-decodi.patch" Content-Disposition: attachment; filename*0="v33-0006-Fixing-Walsender-corner-case-with-logical-decodi.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2ODg5MGQ3YTBlZGNkOTk3YzBkYWFiNmUzNzVhNzc5NjU2MzY3Nzk3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyMCBEZWMgMjAyMiAwODozODo1NiArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMzIDYvNl0gRml4aW5nIFdhbHNlbmRlciBjb3JuZXIgY2FzZSB3aXRoIGxvZ2ljYWwg ZGVjb2Rpbmcgb24KIHN0YW5kYnkuCgpUaGUgcHJvYmxlbSBpcyB0aGF0IFdhbFNuZFdhaXRG b3JXYWwoKSB3YWl0cyBmb3IgdGhlICpyZXBsYXkqIExTTiB0bwppbmNyZWFzZSwgYnV0IGdl dHMgd29rZW4gdXAgYnkgd2FscmVjZWl2ZXIgd2hlbiBuZXcgV0FMIGhhcyBiZWVuCmZsdXNo ZWQuIFdoaWNoIG1lYW5zIHRoYXQgdHlwaWNhbGx5IHdhbHNlbmRlcnMgd2lsbCBnZXQgd29r ZW4gdXAgYXQgdGhlCnNhbWUgdGltZSB0aGF0IHRoZSBzdGFydHVwIHByb2Nlc3Mgd2lsbCBi ZSAtIHdoaWNoIG1lYW5zIHRoYXQgYnkgdGhlCnRpbWUgdGhlIGxvZ2ljYWwgd2Fsc2VuZGVy IGNoZWNrcyBHZXRYTG9nUmVwbGF5UmVjUHRyKCkgaXQncyB1bmxpa2VseQp0aGF0IHRoZSBz dGFydHVwIHByb2Nlc3MgYWxyZWFkeSByZXBsYXllZCB0aGUgcmVjb3JkIGFuZCB1cGRhdGVk ClhMb2dDdGwtPmxhc3RSZXBsYXllZEVuZFJlY1B0ci4KCkludHJvZHVjaW5nIGEgbmV3IGNv bmRpdGlvbiB2YXJpYWJsZSB0byBmaXggdGhpcyBjb3JuZXIgY2FzZS4KLS0tCiBzcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYyB8IDI4ICsrKysrKysrKysrKysr KysrKysrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICB8IDMx ICsrKysrKysrKysrKysrKysrLS0tLS0tCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93 YWl0X2V2ZW50LmMgICB8ICAzICsrKwogc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dyZWNvdmVy eS5oICAgICAgICAgfCAgMyArKysKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRl ci5oICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvd2FpdF9ldmVudC5oICAgICAg ICAgICAgfCAgMSArCiA2IGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDggZGVs ZXRpb25zKC0pCiAgNDEuMiUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgNDguNSUg c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vCiAgIDMuNiUgc3JjL2JhY2tlbmQvdXRpbHMvYWN0 aXZpdHkvCiAgIDMuNCUgc3JjL2luY2x1ZGUvYWNjZXNzLwoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKaW5kZXggZDVhODFmOWQ4My4uYWM4YjE2OWFi NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5 LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKQEAg LTM1OCw2ICszNTgsOSBAQCB0eXBlZGVmIHN0cnVjdCBYTG9nUmVjb3ZlcnlDdGxEYXRhCiAJ UmVjb3ZlcnlQYXVzZVN0YXRlIHJlY292ZXJ5UGF1c2VTdGF0ZTsKIAlDb25kaXRpb25WYXJp YWJsZSByZWNvdmVyeU5vdFBhdXNlZENWOwogCisJLyogUmVwbGF5IHN0YXRlIChzZWUgZ2V0 UmVwbGF5ZWRDVigpIGZvciBtb3JlIGV4cGxhbmF0aW9uKSAqLworCUNvbmRpdGlvblZhcmlh YmxlIHJlcGxheWVkQ1Y7CisKIAlzbG9ja190CQlpbmZvX2xjazsJCS8qIGxvY2tzIHNoYXJl ZCB2YXJpYWJsZXMgc2hvd24gYWJvdmUgKi8KIH0gWExvZ1JlY292ZXJ5Q3RsRGF0YTsKIApA QCAtNDY3LDYgKzQ3MCw3IEBAIFhMb2dSZWNvdmVyeVNobWVtSW5pdCh2b2lkKQogCVNwaW5M b2NrSW5pdCgmWExvZ1JlY292ZXJ5Q3RsLT5pbmZvX2xjayk7CiAJSW5pdFNoYXJlZExhdGNo KCZYTG9nUmVjb3ZlcnlDdGwtPnJlY292ZXJ5V2FrZXVwTGF0Y2gpOwogCUNvbmRpdGlvblZh cmlhYmxlSW5pdCgmWExvZ1JlY292ZXJ5Q3RsLT5yZWNvdmVyeU5vdFBhdXNlZENWKTsKKwlD b25kaXRpb25WYXJpYWJsZUluaXQoJlhMb2dSZWNvdmVyeUN0bC0+cmVwbGF5ZWRDVik7CiB9 CiAKIC8qCkBAIC0xOTE2LDYgKzE5MjAsMTEgQEAgQXBwbHlXYWxSZWNvcmQoWExvZ1JlYWRl clN0YXRlICp4bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQgKnJl cGwKIAlYTG9nUmVjb3ZlcnlDdGwtPmxhc3RSZXBsYXllZFRMSSA9ICpyZXBsYXlUTEk7CiAJ U3BpbkxvY2tSZWxlYXNlKCZYTG9nUmVjb3ZlcnlDdGwtPmluZm9fbGNrKTsKIAorCS8qCisJ ICogd2FrZSB1cCB3YWxzZW5kZXIocykgdXNlZCBieSBsb2dpY2FsIGRlY29kaW5nIG9uIHN0 YW5kYnkuCisJICovCisJQ29uZGl0aW9uVmFyaWFibGVCcm9hZGNhc3QoJlhMb2dSZWNvdmVy eUN0bC0+cmVwbGF5ZWRDVik7CisKIAkvKgogCSAqIElmIHJtX3JlZG8gY2FsbGVkIFhMb2dS ZXF1ZXN0V2FsUmVjZWl2ZXJSZXBseSwgdGhlbiB3ZSB3YWtlIHVwIHRoZQogCSAqIHJlY2Vp dmVyIHNvIHRoYXQgaXQgbm90aWNlcyB0aGUgdXBkYXRlZCBsYXN0UmVwbGF5ZWRFbmRSZWNQ dHIgYW5kIHNlbmRzCkBAIC00OTE2LDMgKzQ5MjUsMjIgQEAgYXNzaWduX3JlY292ZXJ5X3Rh cmdldF94aWQoY29uc3QgY2hhciAqbmV3dmFsLCB2b2lkICpleHRyYSkKIAllbHNlCiAJCXJl Y292ZXJ5VGFyZ2V0ID0gUkVDT1ZFUllfVEFSR0VUX1VOU0VUOwogfQorCisvKgorICogUmV0 dXJuIHRoZSBDb25kaXRpb25WYXJpYWJsZSBpbmRpY2F0aW5nIHRoYXQgYSByZXBsYXkgaGFz IGJlZW4gZG9uZS4KKyAqCisgKiBUaGlzIGlzIG5lZWRlZCBmb3IgbG9naWNhbCBkZWNvZGlu ZyBvbiBzdGFuZGJ5LiBJbmRlZWQgdGhlICJwcm9ibGVtIiBpcyB0aGF0CisgKiBXYWxTbmRX YWl0Rm9yV2FsKCkgd2FpdHMgZm9yIHRoZSAqcmVwbGF5KiBMU04gdG8gaW5jcmVhc2UsIGJ1 dCBnZXRzIHdva2VuIHVwCisgKiBieSB3YWxyZWNlaXZlciB3aGVuIG5ldyBXQUwgaGFzIGJl ZW4gZmx1c2hlZC4gV2hpY2ggbWVhbnMgdGhhdCB0eXBpY2FsbHkKKyAqIHdhbHNlbmRlcnMg d2lsbCBnZXQgd29rZW4gdXAgYXQgdGhlIHNhbWUgdGltZSB0aGF0IHRoZSBzdGFydHVwIHBy b2Nlc3MKKyAqIHdpbGwgYmUgLSB3aGljaCBtZWFucyB0aGF0IGJ5IHRoZSB0aW1lIHRoZSBs b2dpY2FsIHdhbHNlbmRlciBjaGVja3MKKyAqIEdldFhMb2dSZXBsYXlSZWNQdHIoKSBpdCdz IHVubGlrZWx5IHRoYXQgdGhlIHN0YXJ0dXAgcHJvY2VzcyBhbHJlYWR5IHJlcGxheWVkCisg KiB0aGUgcmVjb3JkIGFuZCB1cGRhdGVkIFhMb2dDdGwtPmxhc3RSZXBsYXllZEVuZFJlY1B0 ci4KKyAqCisgKiBUaGUgQ29uZGl0aW9uVmFyaWFibGUgWExvZ1JlY292ZXJ5Q3RsLT5yZXBs YXllZENWIHNvbHZlcyB0aGlzIGNvcm5lciBjYXNlLgorICovCitDb25kaXRpb25WYXJpYWJs ZSAqCitnZXRSZXBsYXllZENWKHZvaWQpCit7CisJcmV0dXJuICZYTG9nUmVjb3ZlcnlDdGwt PnJlcGxheWVkQ1Y7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93 YWxzZW5kZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4 IDk2NjJlMzE2YzkuLjhjOGRiZTgxMmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3dhbHNlbmRlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNl bmRlci5jCkBAIC0xNTQ4LDYgKzE1NDgsNyBAQCBXYWxTbmRXYWl0Rm9yV2FsKFhMb2dSZWNQ dHIgbG9jKQogewogCWludAkJCXdha2VFdmVudHM7CiAJc3RhdGljIFhMb2dSZWNQdHIgUmVj ZW50Rmx1c2hQdHIgPSBJbnZhbGlkWExvZ1JlY1B0cjsKKwlDb25kaXRpb25WYXJpYWJsZSAq cmVwbGF5ZWRDViA9IGdldFJlcGxheWVkQ1YoKTsKIAogCS8qCiAJICogRmFzdCBwYXRoIHRv IGF2b2lkIGFjcXVpcmluZyB0aGUgc3BpbmxvY2sgaW4gY2FzZSB3ZSBhbHJlYWR5IGtub3cg d2UKQEAgLTE1NjYsNyArMTU2Nyw2IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBs b2MpCiAKIAlmb3IgKDs7KQogCXsKLQkJbG9uZwkJc2xlZXB0aW1lOwogCiAJCS8qIENsZWFy IGFueSBhbHJlYWR5LXBlbmRpbmcgd2FrZXVwcyAqLwogCQlSZXNldExhdGNoKE15TGF0Y2gp OwpAQCAtMTY1MCwyMCArMTY1MCwzNSBAQCBXYWxTbmRXYWl0Rm9yV2FsKFhMb2dSZWNQdHIg bG9jKQogCQlXYWxTbmRLZWVwYWxpdmVJZk5lY2Vzc2FyeSgpOwogCiAJCS8qCi0JCSAqIFNs ZWVwIHVudGlsIHNvbWV0aGluZyBoYXBwZW5zIG9yIHdlIHRpbWUgb3V0LiAgQWxzbyB3YWl0 IGZvciB0aGUKLQkJICogc29ja2V0IGJlY29taW5nIHdyaXRhYmxlLCBpZiB0aGVyZSdzIHN0 aWxsIHBlbmRpbmcgb3V0cHV0LgorCQkgKiBXaGVuIG5vdCBpbiByZWNvdmVyeSwgc2xlZXAg dW50aWwgc29tZXRoaW5nIGhhcHBlbnMgb3Igd2UgdGltZSBvdXQuCisJCSAqIEFsc28gd2Fp dCBmb3IgdGhlIHNvY2tldCBiZWNvbWluZyB3cml0YWJsZSwgaWYgdGhlcmUncyBzdGlsbCBw ZW5kaW5nIG91dHB1dC4KIAkJICogT3RoZXJ3aXNlIHdlIG1pZ2h0IHNpdCBvbiBzZW5kYWJs ZSBvdXRwdXQgZGF0YSB3aGlsZSB3YWl0aW5nIGZvcgogCQkgKiBuZXcgV0FMIHRvIGJlIGdl bmVyYXRlZC4gIChCdXQgaWYgd2UgaGF2ZSBub3RoaW5nIHRvIHNlbmQsIHdlIGRvbid0CiAJ CSAqIHdhbnQgdG8gd2FrZSBvbiBzb2NrZXQtd3JpdGFibGUuKQogCQkgKi8KLQkJc2xlZXB0 aW1lID0gV2FsU25kQ29tcHV0ZVNsZWVwdGltZShHZXRDdXJyZW50VGltZXN0YW1wKCkpOwor CQlpZiAoIVJlY292ZXJ5SW5Qcm9ncmVzcygpKQorCQl7CisJCQlsb25nCQlzbGVlcHRpbWU7 CisJCQlzbGVlcHRpbWUgPSBXYWxTbmRDb21wdXRlU2xlZXB0aW1lKEdldEN1cnJlbnRUaW1l c3RhbXAoKSk7CiAKLQkJd2FrZUV2ZW50cyA9IFdMX1NPQ0tFVF9SRUFEQUJMRTsKKwkJCXdh a2VFdmVudHMgPSBXTF9TT0NLRVRfUkVBREFCTEU7CiAKLQkJaWYgKHBxX2lzX3NlbmRfcGVu ZGluZygpKQotCQkJd2FrZUV2ZW50cyB8PSBXTF9TT0NLRVRfV1JJVEVBQkxFOworCQkJaWYg KHBxX2lzX3NlbmRfcGVuZGluZygpKQorCQkJCXdha2VFdmVudHMgfD0gV0xfU09DS0VUX1dS SVRFQUJMRTsKIAotCQlXYWxTbmRXYWl0KHdha2VFdmVudHMsIHNsZWVwdGltZSwgV0FJVF9F VkVOVF9XQUxfU0VOREVSX1dBSVRfV0FMKTsKKwkJCVdhbFNuZFdhaXQod2FrZUV2ZW50cywg c2xlZXB0aW1lICogMTAsIFdBSVRfRVZFTlRfV0FMX1NFTkRFUl9XQUlUX1dBTCk7CisJCX0K KwkJZWxzZQorCQkvKgorCQkgKiBXZSBhcmUgaW4gdGhlIGxvZ2ljYWwgZGVjb2Rpbmcgb24g c3RhbmRieSBjYXNlLgorCQkgKiBXZSBhcmUgd2FpdGluZyBmb3IgdGhlIHN0YXJ0dXAgcHJv Y2VzcyB0byByZXBsYXkgd2FsIHJlY29yZChzKSB1c2luZworCQkgKiBhIHRpbWVvdXQgaW4g Y2FzZSB3ZSBhcmUgcmVxdWVzdGVkIHRvIHN0b3AuCisJCSAqLworCQl7CisJCQlDb25kaXRp b25WYXJpYWJsZVByZXBhcmVUb1NsZWVwKHJlcGxheWVkQ1YpOworCQkJQ29uZGl0aW9uVmFy aWFibGVUaW1lZFNsZWVwKHJlcGxheWVkQ1YsIDEwMDAsCisJCQkJCQkJCQkJV0FJVF9FVkVO VF9XQUxfU0VOREVSX1dBSVRfUkVQTEFZKTsKKwkJfQogCX0KIAogCS8qIHJlYWN0aXZhdGUg bGF0Y2ggc28gV2FsU25kTG9vcCBrbm93cyB0byBjb250aW51ZSAqLwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudC5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudC5jCmluZGV4IGIyYWJkNzVkZGIuLjNmNjA1OTgw NWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnQu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50LmMKQEAgLTQ1 Nyw2ICs0NTcsOSBAQCBwZ3N0YXRfZ2V0X3dhaXRfaXBjKFdhaXRFdmVudElQQyB3KQogCQlj YXNlIFdBSVRfRVZFTlRfV0FMX1JFQ0VJVkVSX1dBSVRfU1RBUlQ6CiAJCQlldmVudF9uYW1l ID0gIldhbFJlY2VpdmVyV2FpdFN0YXJ0IjsKIAkJCWJyZWFrOworCQljYXNlIFdBSVRfRVZF TlRfV0FMX1NFTkRFUl9XQUlUX1JFUExBWToKKwkJCWV2ZW50X25hbWUgPSAiV2FsUmVjZWl2 ZXJXYWl0UmVwbGF5IjsKKwkJCWJyZWFrOwogCQljYXNlIFdBSVRfRVZFTlRfWEFDVF9HUk9V UF9VUERBVEU6CiAJCQlldmVudF9uYW1lID0gIlhhY3RHcm91cFVwZGF0ZSI7CiAJCQlicmVh azsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9ncmVjb3ZlcnkuaCBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy94bG9ncmVjb3ZlcnkuaAppbmRleCBmMzM5ODQyNWQ4Li4wYWZk NTdlY2FjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ3JlY292ZXJ5LmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dyZWNvdmVyeS5oCkBAIC0xNSw2ICsxNSw3 IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb250cm9sLmgiCiAjaW5jbHVkZSAibGliL3N0 cmluZ2luZm8uaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKKyNpbmNsdWRlICJz dG9yYWdlL2NvbmRpdGlvbl92YXJpYWJsZS5oIgogCiAvKgogICogUmVjb3ZlcnkgdGFyZ2V0 IHR5cGUuCkBAIC0xNTUsNCArMTU2LDYgQEAgZXh0ZXJuIHZvaWQgUmVjb3ZlcnlSZXF1aXJl c0ludFBhcmFtZXRlcihjb25zdCBjaGFyICpwYXJhbV9uYW1lLCBpbnQgY3VyclZhbHVlLAog CiBleHRlcm4gdm9pZCB4bG9nX291dGRlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJT dGF0ZSAqcmVjb3JkKTsKIAorZXh0ZXJuIENvbmRpdGlvblZhcmlhYmxlICpnZXRSZXBsYXll ZENWKHZvaWQpOworCiAjZW5kaWYJCQkJCQkJLyogWExPR1JFQ09WRVJZX0ggKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oIGIvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKaW5kZXggODMzNmE2ZTcxOS4uNTUwZWYzMTA3 ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKKysr IGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKQEAgLTEzLDYgKzEzLDcg QEAKICNkZWZpbmUgX1dBTFNFTkRFUl9ICiAKICNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNs dWRlICJzdG9yYWdlL2NvbmRpdGlvbl92YXJpYWJsZS5oIgogCiAvKgogICogV2hhdCB0byBk byB3aXRoIGEgc25hcHNob3QgaW4gY3JlYXRlIHJlcGxpY2F0aW9uIHNsb3QgY29tbWFuZC4K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3dhaXRfZXZlbnQuaCBiL3NyYy9pbmNs dWRlL3V0aWxzL3dhaXRfZXZlbnQuaAppbmRleCAwYjIxMDBiZTRhLi4zMGMyY2YzNWFlIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy93YWl0X2V2ZW50LmgKKysrIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvd2FpdF9ldmVudC5oCkBAIC0xMjgsNiArMTI4LDcgQEAgdHlwZWRlZiBl bnVtCiAJV0FJVF9FVkVOVF9TWU5DX1JFUCwKIAlXQUlUX0VWRU5UX1dBTF9SRUNFSVZFUl9F WElULAogCVdBSVRfRVZFTlRfV0FMX1JFQ0VJVkVSX1dBSVRfU1RBUlQsCisJV0FJVF9FVkVO VF9XQUxfU0VOREVSX1dBSVRfUkVQTEFZLAogCVdBSVRfRVZFTlRfWEFDVF9HUk9VUF9VUERB VEUKIH0gV2FpdEV2ZW50SVBDOwogCi0tIAoyLjM0LjEKCg== --------------3T3Kqsei9cUCGxvjVj1HQucN Content-Type: text/plain; charset=UTF-8; name="v33-0005-Doc-changes-describing-details-about-logical-dec.patch" Content-Disposition: attachment; filename*0="v33-0005-Doc-changes-describing-details-about-logical-dec.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA4NzcxNjJjNzJiOTZiYzU3ZTMyNTNlOWQxMTU2Y2NjNjNmM2Y2MDViIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyMCBEZWMgMjAyMiAwODozODoxMCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMzIDUvNl0gRG9jIGNoYW5nZXMgZGVzY3JpYmluZyBkZXRhaWxzIGFib3V0IGxvZ2lj YWwKIGRlY29kaW5nLgoKQXV0aG9yOiBBbmRyZXMgRnJldW5kIChpbiBhbiBvbGRlciB2ZXJz aW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2b3QKUmV2aWV3ZWQtQnk6IEJl cnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVydCBIYWFzLCBGYWJyaXppbyBk ZSBSb3llcyBNZWxsbwotLS0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbCB8 IDIxICsrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlv bnMoKykKIDEwMC4wJSBkb2Mvc3JjL3NnbWwvCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2xvZ2ljYWxkZWNvZGluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5z Z21sCmluZGV4IDM4ZWU2OWRjY2MuLjlhY2YxNjAzN2EgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbGRl Y29kaW5nLnNnbWwKQEAgLTMxNiw2ICszMTYsMjcgQEAgcG9zdGdyZXM9IyBzZWxlY3QgKiBm cm9tIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygncmVncmVzc2lvbl9zbG90JywgTlVM TCwgTlUKICAgICAgbWF5IGNvbnN1bWUgY2hhbmdlcyBmcm9tIGEgc2xvdCBhdCBhbnkgZ2l2 ZW4gdGltZS4KICAgICA8L3BhcmE+CiAKKyAgICA8cGFyYT4KKyAgICAgQSBsb2dpY2FsIHJl cGxpY2F0aW9uIHNsb3QgY2FuIGFsc28gYmUgY3JlYXRlZCBvbiBhIGhvdCBzdGFuZGJ5LiBU byBwcmV2ZW50CisgICAgIDxjb21tYW5kPlZBQ1VVTTwvY29tbWFuZD4gZnJvbSByZW1vdmlu ZyByZXF1aXJlZCByb3dzIGZyb20gdGhlIHN5c3RlbQorICAgICBjYXRhbG9ncywgPHZhcm5h bWU+aG90X3N0YW5kYnlfZmVlZGJhY2s8L3Zhcm5hbWU+IHNob3VsZCBiZSBzZXQgb24gdGhl CisgICAgIHN0YW5kYnkuIEluIHNwaXRlIG9mIHRoYXQsIGlmIGFueSByZXF1aXJlZCByb3dz IGdldCByZW1vdmVkLCB0aGUgc2xvdCBnZXRzCisgICAgIGludmFsaWRhdGVkLiBJdCdzIGhp Z2hseSByZWNvbW1lbmRlZCB0byB1c2UgYSBwaHlzaWNhbCBzbG90IGJldHdlZW4gdGhlIHBy aW1hcnkKKyAgICAgYW5kIHRoZSBzdGFuZGJ5LiBPdGhlcndpc2UsIGhvdF9zdGFuZGJ5X2Zl ZWRiYWNrIHdpbGwgd29yaywgYnV0IG9ubHkgd2hpbGUgdGhlCisgICAgIGNvbm5lY3Rpb24g aXMgYWxpdmUgKGZvciBleGFtcGxlIGEgbm9kZSByZXN0YXJ0IHdvdWxkIGJyZWFrIGl0KS4g RXhpc3RpbmcKKyAgICAgbG9naWNhbCBzbG90cyBvbiBzdGFuZGJ5IGFsc28gZ2V0IGludmFs aWRhdGVkIGlmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIHJlZHVjZWQgdG8KKyAgICAgbGVz cyB0aGFuICdsb2dpY2FsJy4KKyAgICA8L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICAgRm9y IGEgbG9naWNhbCBzbG90IHRvIGJlIGNyZWF0ZWQsIGl0IGJ1aWxkcyBhIGhpc3RvcmljIHNu YXBzaG90LCBmb3Igd2hpY2gKKyAgICAgaW5mb3JtYXRpb24gb2YgYWxsIHRoZSBjdXJyZW50 bHkgcnVubmluZyB0cmFuc2FjdGlvbnMgaXMgZXNzZW50aWFsLiBPbgorICAgICBwcmltYXJ5 LCB0aGlzIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSwgYnV0IG9uIHN0YW5kYnksIHRoaXMg aW5mb3JtYXRpb24KKyAgICAgaGFzIHRvIGJlIG9idGFpbmVkIGZyb20gcHJpbWFyeS4gU28s IHNsb3QgY3JlYXRpb24gbWF5IHdhaXQgZm9yIHNvbWUKKyAgICAgYWN0aXZpdHkgdG8gaGFw cGVuIG9uIHRoZSBwcmltYXJ5LiBJZiB0aGUgcHJpbWFyeSBpcyBpZGxlLCBjcmVhdGluZyBh CisgICAgIGxvZ2ljYWwgc2xvdCBvbiBzdGFuZGJ5IG1heSB0YWtlIGEgbm90aWNlYWJsZSB0 aW1lLgorICAgIDwvcGFyYT4KKwogICAgIDxjYXV0aW9uPgogICAgICA8cGFyYT4KICAgICAg IFJlcGxpY2F0aW9uIHNsb3RzIHBlcnNpc3QgYWNyb3NzIGNyYXNoZXMgYW5kIGtub3cgbm90 aGluZyBhYm91dCB0aGUgc3RhdGUKLS0gCjIuMzQuMQoK --------------3T3Kqsei9cUCGxvjVj1HQucN Content-Type: text/plain; charset=UTF-8; name="v33-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Disposition: attachment; filename*0="v33-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSA5YTNhYjJiYzMzZGZlZWE2MTViMzM4ZWExM2VjOWM5MjY5NzE1NzRkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyMCBEZWMgMjAyMiAwODozNzozMSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMzIDQvNl0gTmV3IFRBUCB0ZXN0IGZvciBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5k YnkuCgpBdXRob3I6IENyYWlnIFJpbmdlciAoaW4gYW4gb2xkZXIgdmVyc2lvbiksIEFtaXQg S2hhbmRla2FyLCBCZXJ0cmFuZCBEcm91dm90ClJldmlld2VkLUJ5OiBCZXJ0cmFuZCBEcm91 dm90LCBBbmRyZXMgRnJldW5kLCBSb2JlcnQgSGFhcywgRmFicml6aW8gZGUgUm95ZXMgTWVs bG8KLS0tCiBzcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtICAgICAg fCAgMzcgKysKIHNyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkICAgICAgICAgICAgICAg ICB8ICAgMSArCiAuLi4vdC8wMzRfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsICAgICAg ICAgfCA0NzkgKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDUxNyBpbnNl cnRpb25zKCspCiAgIDYuMCUgc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3QvCiAgOTMu NyUgc3JjL3Rlc3QvcmVjb3ZlcnkvdC8KCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9wZXJsL1Bv c3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtIGIvc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rl c3QvQ2x1c3Rlci5wbQppbmRleCA3NDExMTg4ZGM4Li4xNzFkYzg1Mzg4IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtCisrKyBiL3NyYy90 ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0NsdXN0ZXIucG0KQEAgLTMwMzcsNiArMzAzNyw0 MyBAQCAkU0lHe1RFUk19ID0gJFNJR3tJTlR9ID0gc3ViIHsKIAogPXBvZAogCis9aXRlbSAk bm9kZS0+Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5KHNlbGYsIG1hc3Rlciwgc2xv dF9uYW1lLCBkYm5hbWUpCisKK0NyZWF0ZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3Qgb24g Z2l2ZW4gc3RhbmRieQorCis9Y3V0CisKK3N1YiBjcmVhdGVfbG9naWNhbF9zbG90X29uX3N0 YW5kYnkKK3sKKwlteSAoJHNlbGYsICRtYXN0ZXIsICRzbG90X25hbWUsICRkYm5hbWUpID0g QF87CisJbXkgKCRzdGRvdXQsICRzdGRlcnIpOworCisJbXkgJGhhbmRsZTsKKworCSRoYW5k bGUgPSBJUEM6OlJ1bjo6c3RhcnQoWydwZ19yZWN2bG9naWNhbCcsICctZCcsICRzZWxmLT5j b25uc3RyKCRkYm5hbWUpLCAnLVAnLCAndGVzdF9kZWNvZGluZycsICctUycsICRzbG90X25h bWUsICctLWNyZWF0ZS1zbG90J10sICc+JywgXCRzdGRvdXQsICcyPicsIFwkc3RkZXJyKTsK KworCSMgT25jZSBzbG90IHJlc3RhcnRfbHNuIGlzIGNyZWF0ZWQsIHRoZSBzdGFuZGJ5IGxv b2tzIGZvciB4bF9ydW5uaW5nX3hhY3RzCisJIyBXQUwgcmVjb3JkIGZyb20gdGhlIHJlc3Rh cnRfbHNuIG9ud2FyZHMuIFNvIGZpcnN0bHksIHdhaXQgdW50aWwgdGhlIHNsb3QKKwkjIHJl c3RhcnRfbHNuIGlzIGV2YWx1YXRlZC4KKworCSRzZWxmLT5wb2xsX3F1ZXJ5X3VudGlsKAor CQkncG9zdGdyZXMnLCBxcVsKKwkJU0VMRUNUIHJlc3RhcnRfbHNuIElTIE5PVCBOVUxMCisJ CUZST00gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUg PSAnJHNsb3RfbmFtZScKKwldKSBvciBkaWUgInRpbWVkIG91dCB3YWl0aW5nIGZvciBsb2dp Y2FsIHNsb3QgdG8gY2FsY3VsYXRlIGl0cyByZXN0YXJ0X2xzbiI7CisKKwkjIE5vdyBhcnJh bmdlIGZvciB0aGUgeGxfcnVubmluZ194YWN0cyByZWNvcmQgZm9yIHdoaWNoIHBnX3JlY3Zs b2dpY2FsCisJIyBpcyB3YWl0aW5nLgorCSRtYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAnQ0hFQ0tQT0lOVCcpOworCisJJGhhbmRsZS0+ZmluaXNoKCk7CisKKwlpcygkc2VsZi0+ c2xvdCgkc2xvdF9uYW1lKS0+eydzbG90X3R5cGUnfSwgJ2xvZ2ljYWwnLCAkc2xvdF9uYW1l IC4gJyBvbiBzdGFuZGJ5IGNyZWF0ZWQnKQorCQlvciBkaWUgImNvdWxkIG5vdCBjcmVhdGUg c2xvdCIgLiAkc2xvdF9uYW1lOworfQorCis9cG9kCisKID1iYWNrCiAKID1jdXQKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvcmVjb3Zl cnkvbWVzb24uYnVpbGQKaW5kZXggYjBlMzk4MzYzZi4uZDY4ZWU5YjY2MyAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3QvcmVjb3Zl cnkvbWVzb24uYnVpbGQKQEAgLTM4LDYgKzM4LDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3Qv MDMxX3JlY292ZXJ5X2NvbmZsaWN0LnBsJywKICAgICAgICd0LzAzMl9yZWxmaWxlbm9kZV9y ZXVzZS5wbCcsCiAgICAgICAndC8wMzNfcmVwbGF5X3RzcF9kcm9wcy5wbCcsCisgICAgICAn dC8wMzRfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsJywKICAgICBdLAogICB9LAogfQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzRfc3RhbmRieV9sb2dpY2FsX2Rl Y29kaW5nLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzRfc3RhbmRieV9sb2dpY2FsX2Rl Y29kaW5nLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjQyNTg4 NDRjOGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNF9zdGFu ZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwKQEAgLTAsMCArMSw0NzkgQEAKKyMgbG9naWNhbCBk ZWNvZGluZyBvbiBzdGFuZGJ5IDogdGVzdCBsb2dpY2FsIGRlY29kaW5nLAorIyByZWNvdmVy eSBjb25mbGljdCBhbmQgc3RhbmRieSBwcm9tb3Rpb24uCisKK3VzZSBzdHJpY3Q7Cit1c2Ug d2FybmluZ3M7CisKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFRlc3Q6 Ok1vcmUgdGVzdHMgPT4gNDI7CisKK215ICgkc3RkaW4sICRzdGRvdXQsICRzdGRlcnIsICRy ZXQsICRoYW5kbGUsICRzbG90KTsKKworbXkgJG5vZGVfcHJpbWFyeSA9IFBvc3RncmVTUUw6 OlRlc3Q6OkNsdXN0ZXItPm5ldygncHJpbWFyeScpOworbXkgJG5vZGVfc3RhbmRieSA9IFBv c3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3RhbmRieScpOworCisjIE5hbWUgZm9y IHRoZSBwaHlzaWNhbCBzbG90IG9uIHByaW1hcnkKK215ICRwcmltYXJ5X3Nsb3RuYW1lID0g J3ByaW1hcnlfcGh5c2ljYWwnOworCisjIGZpbmQgJHBhdCBpbiBsb2dmaWxlIG9mICRub2Rl IGFmdGVyICRvZmYtdGggYnl0ZQorc3ViIGZpbmRfaW5fbG9nCit7CisJbXkgKCRub2RlLCAk cGF0LCAkb2ZmKSA9IEBfOworCisJJG9mZiA9IDAgdW5sZXNzIGRlZmluZWQgJG9mZjsKKwlt eSAkbG9nID0gUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnNsdXJwX2ZpbGUoJG5vZGUtPmxv Z2ZpbGUpOworCXJldHVybiAwIGlmIChsZW5ndGgoJGxvZykgPD0gJG9mZik7CisKKwkkbG9n ID0gc3Vic3RyKCRsb2csICRvZmYpOworCisJcmV0dXJuICRsb2cgPX4gbS8kcGF0LzsKK30K KworIyBGZXRjaCB4bWluIGNvbHVtbnMgZnJvbSBzbG90J3MgcGdfcmVwbGljYXRpb25fc2xv dHMgcm93LCBhZnRlciB3YWl0aW5nIGZvcgorIyBnaXZlbiBib29sZWFuIGNvbmRpdGlvbiB0 byBiZSB0cnVlIHRvIGVuc3VyZSB3ZSd2ZSByZWFjaGVkIGEgcXVpZXNjZW50IHN0YXRlLgor c3ViIHdhaXRfZm9yX3htaW5zCit7CisJbXkgKCRub2RlLCAkc2xvdG5hbWUsICRjaGVja19l eHByKSA9IEBfOworCisJJG5vZGUtPnBvbGxfcXVlcnlfdW50aWwoCisJCSdwb3N0Z3Jlcycs IHFxWworCQlTRUxFQ1QgJGNoZWNrX2V4cHIKKwkJRlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxp Y2F0aW9uX3Nsb3RzCisJCVdIRVJFIHNsb3RfbmFtZSA9ICckc2xvdG5hbWUnOworCV0pIG9y IGRpZSAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHNsb3QgeG1pbnMgdG8gYWR2YW5jZSI7Cit9 CisKKyMgQ3JlYXRlIHRoZSByZXF1aXJlZCBsb2dpY2FsIHNsb3RzIG9uIHN0YW5kYnkuCitz dWIgY3JlYXRlX2xvZ2ljYWxfc2xvdHMKK3sKKwkkbm9kZV9zdGFuZGJ5LT5jcmVhdGVfbG9n aWNhbF9zbG90X29uX3N0YW5kYnkoJG5vZGVfcHJpbWFyeSwgJ2luYWN0aXZlc2xvdCcsICd0 ZXN0ZGInKTsKKwkkbm9kZV9zdGFuZGJ5LT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5k YnkoJG5vZGVfcHJpbWFyeSwgJ2FjdGl2ZXNsb3QnLCAndGVzdGRiJyk7Cit9CisKKyMgQWNx dWlyZSBvbmUgb2YgdGhlIHN0YW5kYnkgbG9naWNhbCBzbG90cyBjcmVhdGVkIGJ5IGNyZWF0 ZV9sb2dpY2FsX3Nsb3RzKCkuCisjIEluIGNhc2Ugd2FpdCBpcyB0cnVlIHdlIGFyZSB3YWl0 aW5nIGZvciBhbiBhY3RpdmUgcGlkIG9uIHRoZSAnYWN0aXZlc2xvdCcgc2xvdC4KKyMgSWYg d2FpdCBpcyBub3QgdHJ1ZSBpdCBtZWFucyB3ZSBhcmUgdGVzdGluZyBhIGtub3duIGZhaWx1 cmUgc2NlbmFyaW8uCitzdWIgbWFrZV9zbG90X2FjdGl2ZQoreworCW15ICR3YWl0ID0gc2hp ZnQ7CisJbXkgJHNsb3RfdXNlcl9oYW5kbGU7CisKKwlwcmludCAic3RhcnRpbmcgcGdfcmVj dmxvZ2ljYWxcbiI7CisJJHNsb3RfdXNlcl9oYW5kbGUgPSBJUEM6OlJ1bjo6c3RhcnQoWydw Z19yZWN2bG9naWNhbCcsICctZCcsICRub2RlX3N0YW5kYnktPmNvbm5zdHIoJ3Rlc3RkYicp LCAnLVMnLCAnYWN0aXZlc2xvdCcsICctZicsICctJywgJy0tbm8tbG9vcCcsICctLXN0YXJ0 J10sICc+JywgXCRzdGRvdXQsICcyPicsIFwkc3RkZXJyKTsKKworCWlmICgkd2FpdCkKKwkj IG1ha2Ugc3VyZSBhY3RpdmVzbG90IGlzIGluIHVzZQorCXsKKwkJJG5vZGVfc3RhbmRieS0+ cG9sbF9xdWVyeV91bnRpbCgndGVzdGRiJywKKwkJCSJTRUxFQ1QgRVhJU1RTIChTRUxFQ1Qg MSBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdhY3RpdmVz bG90JyBBTkQgYWN0aXZlX3BpZCBJUyBOT1QgTlVMTCkiCisJCSkgb3IgZGllICJzbG90IG5l dmVyIGJlY2FtZSBhY3RpdmUiOworCX0KKworCXJldHVybiAkc2xvdF91c2VyX2hhbmRsZTsK K30KKworIyBDaGVjayBwZ19yZWN2bG9naWNhbCBzdGRlcnIKK3N1YiBjaGVja19wZ19yZWN2 bG9naWNhbF9zdGRlcnIKK3sKKwlteSAoJHNsb3RfdXNlcl9oYW5kbGUsICRjaGVja19zdGRl cnIpID0gQF87CisJbXkgJHJldHVybjsKKworCSMgb3VyIGNsaWVudCBzaG91bGQndmUgdGVy bWluYXRlZCBpbiByZXNwb25zZSB0byB0aGUgd2Fsc2VuZGVyIGVycm9yCisJJHNsb3RfdXNl cl9oYW5kbGUtPmZpbmlzaDsKKwkkcmV0dXJuID0gJD87CisJY21wX29rKCRyZXR1cm4sICIh PSIsIDAsICJwZ19yZWN2bG9naWNhbCBleGl0ZWQgbm9uLXplcm8iKTsKKwlpZiAoJHJldHVy bikgeworCQlsaWtlKCRzdGRlcnIsIHFyLyRjaGVja19zdGRlcnIvLCAnc2xvdCBoYXMgYmVl biBpbnZhbGlkYXRlZCcpOworCX0KKworCXJldHVybiAwOworfQorCisjIENoZWNrIGlmIGFs bCB0aGUgc2xvdHMgb24gc3RhbmRieSBhcmUgZHJvcHBlZC4gVGhlc2UgaW5jbHVkZSB0aGUg J2FjdGl2ZXNsb3QnCisjIHRoYXQgd2FzIGFjcXVpcmVkIGJ5IG1ha2Vfc2xvdF9hY3RpdmUo KSwgYW5kIHRoZSBub24tYWN0aXZlICdpbmFjdGl2ZXNsb3QnLgorc3ViIGNoZWNrX3Nsb3Rz X2Ryb3BwZWQKK3sKKwlteSAoJHNsb3RfdXNlcl9oYW5kbGUpID0gQF87CisKKwlpcygkbm9k ZV9zdGFuZGJ5LT5zbG90KCdpbmFjdGl2ZXNsb3QnKS0+eydzbG90X3R5cGUnfSwgJycsICdp bmFjdGl2ZXNsb3Qgb24gc3RhbmRieSBkcm9wcGVkJyk7CisJaXMoJG5vZGVfc3RhbmRieS0+ c2xvdCgnYWN0aXZlc2xvdCcpLT57J3Nsb3RfdHlwZSd9LCAnJywgJ2FjdGl2ZXNsb3Qgb24g c3RhbmRieSBkcm9wcGVkJyk7CisKKwljaGVja19wZ19yZWN2bG9naWNhbF9zdGRlcnIoJHNs b3RfdXNlcl9oYW5kbGUsICJjb25mbGljdCB3aXRoIHJlY292ZXJ5Iik7Cit9CisKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIyBJbml0aWFsaXplIHByaW1hcnkgbm9kZQorIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisKKyRub2RlX3ByaW1hcnktPmluaXQoYWxsb3dzX3N0cmVh bWluZyA9PiAxLCBoYXNfYXJjaGl2aW5nID0+IDEpOworJG5vZGVfcHJpbWFyeS0+YXBwZW5k X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsIHF7Cit3YWxfbGV2ZWwgPSAnbG9naWNhbCcKK21h eF9yZXBsaWNhdGlvbl9zbG90cyA9IDQKK21heF93YWxfc2VuZGVycyA9IDQKK2xvZ19taW5f bWVzc2FnZXMgPSAnZGVidWcyJworbG9nX2Vycm9yX3ZlcmJvc2l0eSA9IHZlcmJvc2UKK30p OworJG5vZGVfcHJpbWFyeS0+ZHVtcF9pbmZvOworJG5vZGVfcHJpbWFyeS0+c3RhcnQ7CisK KyRub2RlX3ByaW1hcnktPnBzcWwoJ3Bvc3RncmVzJywgcVtDUkVBVEUgREFUQUJBU0UgdGVz dGRiXSk7CisKKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbU0VMRUNU ICogRlJPTSBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgnJHByaW1hcnlf c2xvdG5hbWUnKTtdKTsKK215ICRiYWNrdXBfbmFtZSA9ICdiMSc7Ciskbm9kZV9wcmltYXJ5 LT5iYWNrdXAoJGJhY2t1cF9uYW1lKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMg SW5pdGlhbGl6ZSBzdGFuZGJ5IG5vZGUKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyRu b2RlX3N0YW5kYnktPmluaXRfZnJvbV9iYWNrdXAoCisJJG5vZGVfcHJpbWFyeSwgJGJhY2t1 cF9uYW1lLAorCWhhc19zdHJlYW1pbmcgPT4gMSwKKwloYXNfcmVzdG9yaW5nID0+IDEpOwor JG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCisJcXFbcHJp bWFyeV9zbG90X25hbWUgPSAnJHByaW1hcnlfc2xvdG5hbWUnXSk7Ciskbm9kZV9zdGFuZGJ5 LT5zdGFydDsKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRi eSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKSk7CisKKworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCB0 aGF0IGxvZ2ljYWwgZGVjb2Rpbmcgb24gdGhlIHN0YW5kYnkKKyMgYmVoYXZlcyBjb3JyZWN0 bHkuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCitjcmVhdGVfbG9naWNhbF9zbG90cygpOworCiskbm9kZV9wcmltYXJ5LT5zYWZlX3Bz cWwoJ3Rlc3RkYicsIHFxW0NSRUFURSBUQUJMRSBkZWNvZGluZ190ZXN0KHggaW50ZWdlciwg eSB0ZXh0KTtdKTsKKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbSU5T RVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkpIFNFTEVDVCBzLCBzOjp0ZXh0IEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsMTApIHM7XSk7CisKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2Nh dGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1 c2gnKSk7CisKK215ICRyZXN1bHQgPSAkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Rlc3Rk YicsCisJcXFbU0VMRUNUIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnYWN0aXZlc2xv dCcsIE5VTEwsIE5VTEwpO10pOworCisjIHRlc3QgaWYgYmFzaWMgZGVjb2Rpbmcgd29ya3MK K2lzKHNjYWxhcihteSBAZm9vYmFyID0gc3BsaXQgL14vbSwgJHJlc3VsdCksCisJMTQsICdE ZWNvZGluZyBwcm9kdWNlZCAxNCByb3dzJyk7CisKKyMgSW5zZXJ0IHNvbWUgcm93cyBhbmQg dmVyaWZ5IHRoYXQgd2UgZ2V0IHRoZSBzYW1lIHJlc3VsdHMgZnJvbSBwZ19yZWN2bG9naWNh bAorIyBhbmQgdGhlIFNRTCBpbnRlcmZhY2UuCiskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwo J3Rlc3RkYicsCisJcXFbSU5TRVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkpIFNFTEVDVCBz LCBzOjp0ZXh0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsNCkgcztdCispOworCitteSAkZXhw ZWN0ZWQgPSBxe0JFR0lOCit0YWJsZSBwdWJsaWMuZGVjb2RpbmdfdGVzdDogSU5TRVJUOiB4 W2ludGVnZXJdOjEgeVt0ZXh0XTonMScKK3RhYmxlIHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJ TlNFUlQ6IHhbaW50ZWdlcl06MiB5W3RleHRdOicyJwordGFibGUgcHVibGljLmRlY29kaW5n X3Rlc3Q6IElOU0VSVDogeFtpbnRlZ2VyXTozIHlbdGV4dF06JzMnCit0YWJsZSBwdWJsaWMu ZGVjb2RpbmdfdGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjQgeVt0ZXh0XTonNCcKK0NPTU1J VH07CisKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwg J3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKSk7CisKK215ICRzdGRvdXRf c3FsID0gJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCd0ZXN0ZGInLAorCXFxW1NFTEVDVCBk YXRhIEZST00gcGdfbG9naWNhbF9zbG90X3BlZWtfY2hhbmdlcygnYWN0aXZlc2xvdCcsIE5V TEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdza2lwLWVtcHR5LXhhY3RzJywgJzEn KTtdCispOworCitpcygkc3Rkb3V0X3NxbCwgJGV4cGVjdGVkLCAnZ290IGV4cGVjdGVkIG91 dHB1dCBmcm9tIFNRTCBkZWNvZGluZyBzZXNzaW9uJyk7CisKK215ICRlbmRwb3MgPSAkbm9k ZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsCisJIlNFTEVDVCBsc24gRlJPTSBwZ19s b2dpY2FsX3Nsb3RfcGVla19jaGFuZ2VzKCdhY3RpdmVzbG90JywgTlVMTCwgTlVMTCkgT1JE RVIgQlkgbHNuIERFU0MgTElNSVQgMTsiCispOworcHJpbnQgIndhaXRpbmcgdG8gcmVwbGF5 ICRlbmRwb3NcbiI7CisKKyMgSW5zZXJ0IHNvbWUgcm93cyBhZnRlciAkZW5kcG9zLCB3aGlj aCB3ZSB3b24ndCByZWFkLgorJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCd0ZXN0ZGInLAor CXFxW0lOU0VSVCBJTlRPIGRlY29kaW5nX3Rlc3QoeCx5KSBTRUxFQ1Qgcywgczo6dGV4dCBG Uk9NIGdlbmVyYXRlX3Nlcmllcyg1LDUwKSBzO10KKyk7CisKKyRub2RlX3ByaW1hcnktPndh aXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnkt PmxzbignZmx1c2gnKSk7CisKK215ICRzdGRvdXRfcmVjdiA9ICRub2RlX3N0YW5kYnktPnBn X3JlY3Zsb2dpY2FsX3VwdG8oCisgICAgJ3Rlc3RkYicsICdhY3RpdmVzbG90JywgJGVuZHBv cywgMTgwLAorICAgICdpbmNsdWRlLXhpZHMnICAgICA9PiAnMCcsCisgICAgJ3NraXAtZW1w dHkteGFjdHMnID0+ICcxJyk7CitjaG9tcCgkc3Rkb3V0X3JlY3YpOworaXMoJHN0ZG91dF9y ZWN2LCAkZXhwZWN0ZWQsCisgICAgJ2dvdCBzYW1lIGV4cGVjdGVkIG91dHB1dCBmcm9tIHBn X3JlY3Zsb2dpY2FsIGRlY29kaW5nIHNlc3Npb24nKTsKKworJG5vZGVfc3RhbmRieS0+cG9s bF9xdWVyeV91bnRpbCgndGVzdGRiJywKKwkiU0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEgRlJP TSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnYWN0aXZlc2xvdCcg QU5EIGFjdGl2ZV9waWQgSVMgTlVMTCkiCispIG9yIGRpZSAic2xvdCBuZXZlciBiZWNhbWUg aW5hY3RpdmUiOworCiskc3Rkb3V0X3JlY3YgPSAkbm9kZV9zdGFuZGJ5LT5wZ19yZWN2bG9n aWNhbF91cHRvKAorICAgICd0ZXN0ZGInLCAnYWN0aXZlc2xvdCcsICRlbmRwb3MsIDE4MCwK KyAgICAnaW5jbHVkZS14aWRzJyAgICAgPT4gJzAnLAorICAgICdza2lwLWVtcHR5LXhhY3Rz JyA9PiAnMScpOworY2hvbXAoJHN0ZG91dF9yZWN2KTsKK2lzKCRzdGRvdXRfcmVjdiwgJycs ICdwZ19yZWN2bG9naWNhbCBhY2tub3dsZWRnZWQgY2hhbmdlcycpOworCiskbm9kZV9wcmlt YXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0NSRUFURSBEQVRBQkFTRSBvdGhlcmRiJyk7 CisKK2lzKCAkbm9kZV9wcmltYXJ5LT5wc3FsKAorICAgICAgICAnb3RoZXJkYicsCisgICAg ICAgICJTRUxFQ1QgbHNuIEZST00gcGdfbG9naWNhbF9zbG90X3BlZWtfY2hhbmdlcygnYWN0 aXZlc2xvdCcsIE5VTEwsIE5VTEwpIE9SREVSIEJZIGxzbiBERVNDIExJTUlUIDE7IgorICAg ICksCisgICAgMywKKyAgICAncmVwbGF5aW5nIGxvZ2ljYWwgc2xvdCBmcm9tIGFub3RoZXIg ZGF0YWJhc2UgZmFpbHMnKTsKKworIyBkcm9wIHRoZSBsb2dpY2FsIHNsb3RzCiskbm9kZV9z dGFuZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25f c2xvdCgnaW5hY3RpdmVzbG90JyldKTsKKyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVz JywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdhY3RpdmVzbG90JyldKTsK KworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyMgUmVjb3ZlcnkgY29uZmxpY3Q6IEludmFsaWRhdGUgY29uZmxpY3Rpbmcgc2xvdHMsIGlu Y2x1ZGluZyBpbi11c2Ugc2xvdHMKKyMgU2NlbmFyaW8gMTogaG90X3N0YW5kYnlfZmVlZGJh Y2sgb2ZmIGFuZCB2YWN1dW0gRlVMTAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworIyBP bmUgd2F5IHRvIHJlcHJvZHVjZSByZWNvdmVyeSBjb25mbGljdCBpcyB0byBydW4gVkFDVVVN IEZVTEwgd2l0aAorIyBob3Rfc3RhbmRieV9mZWVkYmFjayB0dXJuZWQgb2ZmIG9uIHRoZSBz dGFuZGJ5LgorJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZics cVsKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb2ZmCitdKTsKKyRub2RlX3N0YW5kYnktPnJl c3RhcnQ7CisjIGVuc3VyZSB3YWxyZWNlaXZlciBmZWVkYmFjayBvZmYgYnkgd2FpdGluZyBm b3IgZXhwZWN0ZWQgeG1pbiBhbmQKKyMgY2F0YWxvZ194bWluIG9uIHByaW1hcnkuIEJvdGgg c2hvdWxkIGJlIE5VTEwgc2luY2UgaHNfZmVlZGJhY2sgaXMgb2ZmCit3YWl0X2Zvcl94bWlu cygkbm9kZV9wcmltYXJ5LCAkcHJpbWFyeV9zbG90bmFtZSwKKwkJCSAgICJ4bWluIElTIE5V TEwgQU5EIGNhdGFsb2dfeG1pbiBJUyBOVUxMIik7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3Rf YWN0aXZlKDEpOworCisjIFRoaXMgc2hvdWxkIHRyaWdnZXIgdGhlIGNvbmZsaWN0Ciskbm9k ZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsICdWQUNVVU0gRlVMTCcpOworCiskbm9k ZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAk bm9kZV9wcmltYXJ5LT5sc24oJ2ZsdXNoJykpOworCisjIG1lc3NhZ2Ugc2hvdWxkIGJlIGlz c3VlZAorb2soIGZpbmRfaW5fbG9nKAorICAgJG5vZGVfc3RhbmRieSwKKyAgImludmFsaWRh dGluZyBzbG90IFwiaW5hY3RpdmVzbG90XCIgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aCBy ZWNvdmVyeSIpLAorICAnaW5hY3RpdmVzbG90IHNsb3QgaW52YWxpZGF0aW9uIGlzIGxvZ2dl ZCB3aXRoIHZhY3V1bSBGVUxMJyk7CisKK29rKCBmaW5kX2luX2xvZygKKyAgICRub2RlX3N0 YW5kYnksCisgICJpbnZhbGlkYXRpbmcgc2xvdCBcImFjdGl2ZXNsb3RcIiBiZWNhdXNlIGl0 IGNvbmZsaWN0cyB3aXRoIHJlY292ZXJ5IiksCisgICdhY3RpdmVzbG90IHNsb3QgaW52YWxp ZGF0aW9uIGlzIGxvZ2dlZCB3aXRoIHZhY3V1bSBGVUxMJyk7CisKKyMgVmVyaWZ5IHRoYXQg cGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHMuY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90IGhh cyBiZWVuIHVwZGF0ZWQKK29rKCAkbm9kZV9zdGFuZGJ5LT5wb2xsX3F1ZXJ5X3VudGlsKAor CSdwb3N0Z3JlcycsCisJInNlbGVjdCAoY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90ID0gMSkg ZnJvbSBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cyB3aGVyZSBkYXRuYW1lID0gJ3Rlc3Rk YiciLCAndCcpLAorCSdjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgdXBkYXRlZCcpIG9yIGRp ZSAiVGltZWQgb3V0IHdhaXRpbmcgY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90IHRvIGJlIHVw ZGF0ZWQiOworCiskaGFuZGxlID0gbWFrZV9zbG90X2FjdGl2ZSgwKTsKKyMgV2UgYXJlIG5v dCBhYmxlIHRvIHJlYWQgZnJvbSB0aGUgc2xvdCBhcyBpdCBoYXMgYmVlbiBpbnZhbGlkYXRl ZAorY2hlY2tfcGdfcmVjdmxvZ2ljYWxfc3RkZXJyKCRoYW5kbGUsICJjYW5ub3QgcmVhZCBm cm9tIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBcImFjdGl2ZXNsb3RcIiIpOworCisjIFR1 cm4gaG90X3N0YW5kYnlfZmVlZGJhY2sgYmFjayBvbgorJG5vZGVfc3RhbmRieS0+YXBwZW5k X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb24K K10pOworJG5vZGVfc3RhbmRieS0+cmVzdGFydDsKKworIyBlbnN1cmUgd2FscmVjZWl2ZXIg ZmVlZGJhY2sgc2VudCBieSB3YWl0aW5nIGZvciBleHBlY3RlZCB4bWluIGFuZAorIyBjYXRh bG9nX3htaW4gb24gcHJpbWFyeS4gV2l0aCBob3Rfc3RhbmRieV9mZWVkYmFjayBvbiwgeG1p biBzaG91bGQgYWR2YW5jZSwKKyMgYnV0IGNhdGFsb2dfeG1pbiBzaG91bGQgc3RpbGwgcmVt YWluIE5VTEwgc2luY2UgdGhlcmUgaXMgbm8gbG9naWNhbCBzbG90Lgord2FpdF9mb3JfeG1p bnMoJG5vZGVfcHJpbWFyeSwgJHByaW1hcnlfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJUyBO T1QgTlVMTCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwiKTsKKworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgUmVjb3ZlcnkgY29uZmxp Y3Q6IEludmFsaWRhdGUgY29uZmxpY3Rpbmcgc2xvdHMsIGluY2x1ZGluZyBpbi11c2Ugc2xv dHMKKyMgU2NlbmFyaW8gMjogY29uZmxpY3QgZHVlIHRvIHJvdyByZW1vdmFsIHdpdGggaG90 X3N0YW5kYnlfZmVlZGJhY2sgb2ZmLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBnZXQgdGhlIHBvc2l0aW9uIHRvIHNlYXJjaCBm cm9tIGluIHRoZSBzdGFuZGJ5IGxvZ2ZpbGUKK215ICRsb2dzdGFydCA9IC1zICRub2RlX3N0 YW5kYnktPmxvZ2ZpbGU7CisKKyMgZHJvcCB0aGUgbG9naWNhbCBzbG90cworJG5vZGVfc3Rh bmRieS0+cHNxbCgncG9zdGdyZXMnLCBxW1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Ns b3QoJ2luYWN0aXZlc2xvdCcpXSk7Ciskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3Jlcycs IHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnYWN0aXZlc2xvdCcpXSk7CisK K2NyZWF0ZV9sb2dpY2FsX3Nsb3RzKCk7CisKKyMgT25lIHdheSB0byBwcm9kdWNlIHJlY292 ZXJ5IGNvbmZsaWN0IGlzIHRvIGNyZWF0ZS9kcm9wIGEgcmVsYXRpb24gYW5kIGxhdW5jaCBh IHZhY3V1bQorIyB3aXRoIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIHR1cm5lZCBvZmYgb24gdGhl IHN0YW5kYnkuCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25m JyxxWworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvZmYKK10pOworJG5vZGVfc3RhbmRieS0+ cmVzdGFydDsKKyMgZW5zdXJlIHdhbHJlY2VpdmVyIGZlZWRiYWNrIG9mZiBieSB3YWl0aW5n IGZvciBleHBlY3RlZCB4bWluIGFuZAorIyBjYXRhbG9nX3htaW4gb24gcHJpbWFyeS4gQm90 aCBzaG91bGQgYmUgTlVMTCBzaW5jZSBoc19mZWVkYmFjayBpcyBvZmYKK3dhaXRfZm9yX3ht aW5zKCRub2RlX3ByaW1hcnksICRwcmltYXJ5X3Nsb3RuYW1lLAorCQkJICAgInhtaW4gSVMg TlVMTCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwiKTsKKworJGhhbmRsZSA9IG1ha2Vfc2xv dF9hY3RpdmUoMSk7CisKKyMgVGhpcyBzaG91bGQgdHJpZ2dlciB0aGUgY29uZmxpY3QKKyRu b2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbQ1JFQVRFIFRBQkxFIGNvbmZs aWN0X3Rlc3QoeCBpbnRlZ2VyLCB5IHRleHQpO10pOworJG5vZGVfcHJpbWFyeS0+c2FmZV9w c3FsKCd0ZXN0ZGInLCBxcVtEUk9QIFRBQkxFIGNvbmZsaWN0X3Rlc3Q7XSk7Ciskbm9kZV9w cmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsICdWQUNVVU0nKTsKKworJG5vZGVfcHJpbWFy eS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJp bWFyeS0+bHNuKCdmbHVzaCcpKTsKKworIyBtZXNzYWdlIHNob3VsZCBiZSBpc3N1ZWQKK29r KCBmaW5kX2luX2xvZygKKyAgICRub2RlX3N0YW5kYnksCisgICJpbnZhbGlkYXRpbmcgc2xv dCBcImluYWN0aXZlc2xvdFwiIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGggcmVjb3Zlcnki LCAkbG9nc3RhcnQpLAorICAnaW5hY3RpdmVzbG90IHNsb3QgaW52YWxpZGF0aW9uIGlzIGxv Z2dlZCBkdWUgdG8gcm93IHJlbW92YWwnKTsKKworb2soIGZpbmRfaW5fbG9nKAorICAgJG5v ZGVfc3RhbmRieSwKKyAgImludmFsaWRhdGluZyBzbG90IFwiYWN0aXZlc2xvdFwiIGJlY2F1 c2UgaXQgY29uZmxpY3RzIHdpdGggcmVjb3ZlcnkiLCAkbG9nc3RhcnQpLAorICAnYWN0aXZl c2xvdCBzbG90IGludmFsaWRhdGlvbiBpcyBsb2dnZWQgZHVlIHRvIHJvdyByZW1vdmFsJyk7 CisKKyMgVmVyaWZ5IHRoYXQgcGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHMuY29uZmxfYWN0 aXZlX2xvZ2ljYWxzbG90IGhhcyBiZWVuIHVwZGF0ZWQKKyMgd2Ugbm93IGV4cGVjdCAyIGNv bmZsaWN0cyByZXBvcnRlZCBhcyB0aGUgY291bnRlciBwZXJzaXN0IGFjcm9zcyByZXN0YXJ0 cworb2soICRub2RlX3N0YW5kYnktPnBvbGxfcXVlcnlfdW50aWwoCisJJ3Bvc3RncmVzJywK Kwkic2VsZWN0IChjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgPSAyKSBmcm9tIHBnX3N0YXRf ZGF0YWJhc2VfY29uZmxpY3RzIHdoZXJlIGRhdG5hbWUgPSAndGVzdGRiJyIsICd0JyksCisJ J2NvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdCB1cGRhdGVkJykgb3IgZGllICJUaW1lZCBvdXQg d2FpdGluZyBjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgdG8gYmUgdXBkYXRlZCI7CisKKyRo YW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKDApOworIyBXZSBhcmUgbm90IGFibGUgdG8gcmVh ZCBmcm9tIHRoZSBzbG90IGFzIGl0IGhhcyBiZWVuIGludmFsaWRhdGVkCitjaGVja19wZ19y ZWN2bG9naWNhbF9zdGRlcnIoJGhhbmRsZSwgImNhbm5vdCByZWFkIGZyb20gbG9naWNhbCBy ZXBsaWNhdGlvbiBzbG90IFwiYWN0aXZlc2xvdFwiIik7CisKKyMgVHVybiBob3Rfc3RhbmRi eV9mZWVkYmFjayBiYWNrIG9uCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdy ZXNxbC5jb25mJyxxWworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbgorXSk7Ciskbm9kZV9z dGFuZGJ5LT5yZXN0YXJ0OworCisjIGVuc3VyZSB3YWxyZWNlaXZlciBmZWVkYmFjayBzZW50 IGJ5IHdhaXRpbmcgZm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBvbiBw cmltYXJ5LiBXaXRoIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIG9uLCB4bWluIHNob3VsZCBhZHZh bmNlLAorIyBidXQgY2F0YWxvZ194bWluIHNob3VsZCBzdGlsbCByZW1haW4gTlVMTCBzaW5j ZSB0aGVyZSBpcyBubyBsb2dpY2FsIHNsb3QuCit3YWl0X2Zvcl94bWlucygkbm9kZV9wcmlt YXJ5LCAkcHJpbWFyeV9zbG90bmFtZSwKKwkJCSAgICJ4bWluIElTIE5PVCBOVUxMIEFORCBj YXRhbG9nX3htaW4gSVMgTlVMTCIpOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBSZWNvdmVyeSBjb25mbGljdDogSW52YWxpZGF0 ZSBjb25mbGljdGluZyBzbG90cywgaW5jbHVkaW5nIGluLXVzZSBzbG90cworIyBTY2VuYXJp byAzOiBpbmNvcnJlY3Qgd2FsX2xldmVsIG9uIHByaW1hcnkuCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIGdldCB0aGUgcG9zaXRp b24gdG8gc2VhcmNoIGZyb20gaW4gdGhlIHN0YW5kYnkgbG9nZmlsZQorJGxvZ3N0YXJ0ID0g LXMgJG5vZGVfc3RhbmRieS0+bG9nZmlsZTsKKworIyBkcm9wIHRoZSBsb2dpY2FsIHNsb3Rz Ciskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVw bGljYXRpb25fc2xvdCgnaW5hY3RpdmVzbG90JyldKTsKKyRub2RlX3N0YW5kYnktPnBzcWwo J3Bvc3RncmVzJywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdhY3RpdmVz bG90JyldKTsKKworY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworJGhhbmRsZSA9IG1ha2Vf c2xvdF9hY3RpdmUoMSk7CisKKyMgTWFrZSBwcmltYXJ5IHdhbF9sZXZlbCByZXBsaWNhLiBU aGlzIHdpbGwgdHJpZ2dlciBzbG90IGNvbmZsaWN0LgorJG5vZGVfcHJpbWFyeS0+YXBwZW5k X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK3dhbF9sZXZlbCA9ICdyZXBsaWNhJworXSk7 Ciskbm9kZV9wcmltYXJ5LT5yZXN0YXJ0OworCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9j YXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5LT5sc24oJ2Zs dXNoJykpOworCisjIG1lc3NhZ2Ugc2hvdWxkIGJlIGlzc3VlZAorb2soIGZpbmRfaW5fbG9n KAorICAgJG5vZGVfc3RhbmRieSwKKyAgImludmFsaWRhdGluZyBzbG90IFwiaW5hY3RpdmVz bG90XCIgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aCByZWNvdmVyeSIsICRsb2dzdGFydCks CisgICdpbmFjdGl2ZXNsb3Qgc2xvdCBpbnZhbGlkYXRpb24gaXMgbG9nZ2VkIGR1ZSB0byB3 YWxfbGV2ZWwnKTsKKworb2soIGZpbmRfaW5fbG9nKAorICAgJG5vZGVfc3RhbmRieSwKKyAg ImludmFsaWRhdGluZyBzbG90IFwiYWN0aXZlc2xvdFwiIGJlY2F1c2UgaXQgY29uZmxpY3Rz IHdpdGggcmVjb3ZlcnkiLCAkbG9nc3RhcnQpLAorICAnYWN0aXZlc2xvdCBzbG90IGludmFs aWRhdGlvbiBpcyBsb2dnZWQgZHVlIHRvIHdhbF9sZXZlbCcpOworCisjIFZlcmlmeSB0aGF0 IHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3RzLmNvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdCBo YXMgYmVlbiB1cGRhdGVkCisjIHdlIG5vdyBleHBlY3QgMyBjb25mbGljdHMgcmVwb3J0ZWQg YXMgdGhlIGNvdW50ZXIgcGVyc2lzdCBhY3Jvc3MgcmVzdGFydHMKK29rKCAkbm9kZV9zdGFu ZGJ5LT5wb2xsX3F1ZXJ5X3VudGlsKAorCSdwb3N0Z3JlcycsCisJInNlbGVjdCAoY29uZmxf YWN0aXZlX2xvZ2ljYWxzbG90ID0gMykgZnJvbSBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0 cyB3aGVyZSBkYXRuYW1lID0gJ3Rlc3RkYiciLCAndCcpLAorCSdjb25mbF9hY3RpdmVfbG9n aWNhbHNsb3QgdXBkYXRlZCcpIG9yIGRpZSAiVGltZWQgb3V0IHdhaXRpbmcgY29uZmxfYWN0 aXZlX2xvZ2ljYWxzbG90IHRvIGJlIHVwZGF0ZWQiOworCiskaGFuZGxlID0gbWFrZV9zbG90 X2FjdGl2ZSgwKTsKKyMgV2UgYXJlIG5vdCBhYmxlIHRvIHJlYWQgZnJvbSB0aGUgc2xvdCBh cyBpdCByZXF1aXJlcyB3YWxfbGV2ZWwgYXQgbGVhc3QgbG9naWNhbCBvbiBtYXN0ZXIKK2No ZWNrX3BnX3JlY3Zsb2dpY2FsX3N0ZGVycigkaGFuZGxlLCAibG9naWNhbCBkZWNvZGluZyBv biBzdGFuZGJ5IHJlcXVpcmVzIHdhbF9sZXZlbCB0byBiZSBhdCBsZWFzdCBsb2dpY2FsIG9u IG1hc3RlciIpOworCisjIFJlc3RvcmUgcHJpbWFyeSB3YWxfbGV2ZWwKKyRub2RlX3ByaW1h cnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLHFbCit3YWxfbGV2ZWwgPSAnbG9n aWNhbCcKK10pOworJG5vZGVfcHJpbWFyeS0+cmVzdGFydDsKKyRub2RlX3ByaW1hcnktPndh aXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnkt PmxzbignZmx1c2gnKSk7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKDApOworIyBh cyB0aGUgc2xvdCBoYXMgYmVlbiBpbnZhbGlkYXRlZCB3ZSBzaG91bGQgbm90IGJlIGFibGUg dG8gcmVhZAorY2hlY2tfcGdfcmVjdmxvZ2ljYWxfc3RkZXJyKCRoYW5kbGUsICJjYW5ub3Qg cmVhZCBmcm9tIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBcImFjdGl2ZXNsb3RcIiIpOwor CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IyBEUk9QIERBVEFCQVNFIHNob3VsZCBkcm9wcyBpdCdzIHNsb3RzLCBpbmNsdWRpbmcgYWN0 aXZlIHNsb3RzLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKworJG5vZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMnLCBxW1NFTEVDVCBw Z19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2luYWN0aXZlc2xvdCcpXSk7Ciskbm9kZV9zdGFu ZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xv dCgnYWN0aXZlc2xvdCcpXSk7CitjcmVhdGVfbG9naWNhbF9zbG90cygpOworJGhhbmRsZSA9 IG1ha2Vfc2xvdF9hY3RpdmUoMSk7CisjIENyZWF0ZSBhIHNsb3Qgb24gYSBkYXRhYmFzZSB0 aGF0IHdvdWxkIG5vdCBiZSBkcm9wcGVkLiBUaGlzIHNsb3Qgc2hvdWxkIG5vdAorIyBnZXQg ZHJvcHBlZC4KKyRub2RlX3N0YW5kYnktPmNyZWF0ZV9sb2dpY2FsX3Nsb3Rfb25fc3RhbmRi eSgkbm9kZV9wcmltYXJ5LCAnb3RoZXJzbG90JywgJ3Bvc3RncmVzJyk7CisKKyMgZHJvcGRi IG9uIHRoZSBwcmltYXJ5IHRvIHZlcmlmeSBzbG90cyBhcmUgZHJvcHBlZCBvbiBzdGFuZGJ5 Ciskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcVtEUk9QIERBVEFCQVNF IHRlc3RkYl0pOworCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0 YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5LT5sc24oJ2ZsdXNoJykpOworCitpcygk bm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxW1NFTEVDVCBFWElTVFMo U0VMRUNUIDEgRlJPTSBwZ19kYXRhYmFzZSBXSEVSRSBkYXRuYW1lID0gJ3Rlc3RkYicpXSks ICdmJywKKwknZGF0YWJhc2UgZHJvcHBlZCBvbiBzdGFuZGJ5Jyk7CisKK2NoZWNrX3Nsb3Rz X2Ryb3BwZWQoJGhhbmRsZSk7CisKK2lzKCRub2RlX3N0YW5kYnktPnNsb3QoJ290aGVyc2xv dCcpLT57J3Nsb3RfdHlwZSd9LCAnbG9naWNhbCcsCisJJ290aGVyc2xvdCBvbiBzdGFuZGJ5 IG5vdCBkcm9wcGVkJyk7CisKKyMgQ2xlYW51cCA6IG1hbnVhbGx5IGRyb3AgdGhlIHNsb3Qg dGhhdCB3YXMgbm90IGRyb3BwZWQuCiskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3Jlcycs IHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnb3RoZXJzbG90JyldKTsKKwor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMg VGVzdCBzdGFuZGJ5IHByb21vdGlvbiBhbmQgbG9naWNhbCBkZWNvZGluZyBiZWhhdmlvcgor IyBhZnRlciB0aGUgc3RhbmRieSBnZXRzIHByb21vdGVkLgorIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworJG5vZGVfcHJpbWFyeS0+cHNx bCgncG9zdGdyZXMnLCBxW0NSRUFURSBEQVRBQkFTRSB0ZXN0ZGJdKTsKKyRub2RlX3ByaW1h cnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbQ1JFQVRFIFRBQkxFIGRlY29kaW5nX3Rlc3Qo eCBpbnRlZ2VyLCB5IHRleHQpO10pOworCisjIGNyZWF0ZSB0aGUgbG9naWNhbCBzbG90cwor Y3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworIyBJbnNlcnQgc29tZSByb3dzIGJlZm9yZSB0 aGUgcHJvbW90aW9uCiskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsCisJcXFb SU5TRVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkpIFNFTEVDVCBzLCBzOjp0ZXh0IEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsNCkgcztdCispOworCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zv cl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5LT5sc24o J2ZsdXNoJykpOworCisjIHByb21vdGUKKyRub2RlX3N0YW5kYnktPnByb21vdGU7CisKKyMg aW5zZXJ0IHNvbWUgcm93cyBvbiBwcm9tb3RlZCBzdGFuZGJ5Ciskbm9kZV9zdGFuZGJ5LT5z YWZlX3BzcWwoJ3Rlc3RkYicsCisJcXFbSU5TRVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkp IFNFTEVDVCBzLCBzOjp0ZXh0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDUsNykgcztdCispOwor CisKKyRleHBlY3RlZCA9IHF7QkVHSU4KK3RhYmxlIHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJ TlNFUlQ6IHhbaW50ZWdlcl06MSB5W3RleHRdOicxJwordGFibGUgcHVibGljLmRlY29kaW5n X3Rlc3Q6IElOU0VSVDogeFtpbnRlZ2VyXToyIHlbdGV4dF06JzInCit0YWJsZSBwdWJsaWMu ZGVjb2RpbmdfdGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjMgeVt0ZXh0XTonMycKK3RhYmxl IHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06NCB5W3RleHRdOic0 JworQ09NTUlUCitCRUdJTgordGFibGUgcHVibGljLmRlY29kaW5nX3Rlc3Q6IElOU0VSVDog eFtpbnRlZ2VyXTo1IHlbdGV4dF06JzUnCit0YWJsZSBwdWJsaWMuZGVjb2RpbmdfdGVzdDog SU5TRVJUOiB4W2ludGVnZXJdOjYgeVt0ZXh0XTonNicKK3RhYmxlIHB1YmxpYy5kZWNvZGlu Z190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06NyB5W3RleHRdOic3JworQ09NTUlUfTsKKwor IyBjaGVjayB0aGF0IHdlIGFyZSBkZWNvZGluZyBwcmUgYW5kIHBvc3QgcHJvbW90aW9uIGlu c2VydGVkIHJvd3MKKyRzdGRvdXRfc3FsID0gJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCd0 ZXN0ZGInLAorCXFxW1NFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9zbG90X3BlZWtfY2hh bmdlcygnYWN0aXZlc2xvdCcsIE5VTEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdz a2lwLWVtcHR5LXhhY3RzJywgJzEnKTtdCispOworCitpcygkc3Rkb3V0X3NxbCwgJGV4cGVj dGVkLCAnZ290IGV4cGVjdGVkIG91dHB1dCBmcm9tIFNRTCBkZWNvZGluZyBzZXNzaW9uIG9u IHByb21vdGVkIHN0YW5kYnknKTsKLS0gCjIuMzQuMQoK --------------3T3Kqsei9cUCGxvjVj1HQucN Content-Type: text/plain; charset=UTF-8; name="v33-0003-Allow-logical-decoding-on-standby.patch" Content-Disposition: attachment; filename="v33-0003-Allow-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSBlNDgyNjQwZDI4YTk0NjBkMjRmNzIyY2NmYWFiZjYxNzFlMjRjOWY4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyMCBEZWMgMjAyMiAwODozNjozMiArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMzIDMvNl0gQWxsb3cgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5LgoKQWxsb3cg YSBsb2dpY2FsIHNsb3QgdG8gYmUgY3JlYXRlZCBvbiBzdGFuZGJ5LiBSZXN0cmljdCBpdHMg dXNhZ2UKb3IgaXRzIGNyZWF0aW9uIGlmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIGxlc3Mg dGhhbiBsb2dpY2FsLgpEdXJpbmcgc2xvdCBjcmVhdGlvbiwgaXQncyByZXN0YXJ0X2xzbiBp cyBzZXQgdG8gdGhlIGxhc3QgcmVwbGF5ZWQKTFNOLiBFZmZlY3RpdmVseSwgYSBsb2dpY2Fs IHNsb3QgY3JlYXRpb24gb24gc3RhbmRieSB3YWl0cyBmb3IgYW4KeGxfcnVubmluZ194YWN0 IHJlY29yZCB0byBhcnJpdmUgZnJvbSBwcmltYXJ5LiBDb25mbGljdGluZyBzbG90cwp3b3Vs ZCBiZSBoYW5kbGVkIGluIG5leHQgY29tbWl0cy4KCkF1dGhvcjogQW5kcmVzIEZyZXVuZCAo aW4gYW4gb2xkZXIgdmVyc2lvbiksIEFtaXQgS2hhbmRla2FyLCBCZXJ0cmFuZCBEcm91dm90 ClJldmlld2VkLUJ5OiBCZXJ0cmFuZCBEcm91dm90LCBBbmRyZXMgRnJldW5kLCBSb2JlcnQg SGFhcywgRmFicml6aW8gZGUgUm95ZXMgTWVsbG8KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9nLmMgICAgICAgICB8IDExICsrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvZGVjb2RlLmMgIHwgMjIgKysrKysrLQogc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9sb2dpY2FsLmMgfCAzNyArKysrKysrLS0tLS0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Nsb3QuYyAgICAgICAgICAgIHwgNzMgKysrKysrKysrKysrKysrLS0t LS0tLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jICAgICAgIHwgMjcg KysrKystLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oICAgICAgICAgICAgICAgICB8 ICAxICsKIDYgZmlsZXMgY2hhbmdlZCwgMTE4IGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9u cygtKQogICA0LjUlIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtLwogIDM2LjYlIHNyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvCiAgNTcuOSUgc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IGZjYTZlZTQ1ODQu LmY5Y2M4NDJhNmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hs b2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAgLTQ0NjIs NiArNDQ2MiwxNyBAQCBMb2NhbFByb2Nlc3NDb250cm9sRmlsZShib29sIHJlc2V0KQogCVJl YWRDb250cm9sRmlsZSgpOwogfQogCisvKgorICogR2V0IHRoZSB3YWxfbGV2ZWwgZnJvbSB0 aGUgY29udHJvbCBmaWxlLiBGb3IgYSBzdGFuZGJ5LCB0aGlzIHZhbHVlIHNob3VsZCBiZQor ICogY29uc2lkZXJlZCBhcyBpdHMgYWN0aXZlIHdhbF9sZXZlbCwgYmVjYXVzZSBpdCBtYXkg YmUgZGlmZmVyZW50IGZyb20gd2hhdAorICogd2FzIG9yaWdpbmFsbHkgY29uZmlndXJlZCBv biBzdGFuZGJ5LgorICovCitXYWxMZXZlbAorR2V0QWN0aXZlV2FsTGV2ZWxPblN0YW5kYnko dm9pZCkKK3sKKwlyZXR1cm4gQ29udHJvbEZpbGUtPndhbF9sZXZlbDsKK30KKwogLyoKICAq IEluaXRpYWxpemF0aW9uIG9mIHNoYXJlZCBtZW1vcnkgZm9yIFhMT0cKICAqLwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKaW5kZXggMmNjMGFjOWViMC4u YzIxMDcyMWFiMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9kZWNvZGUuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29k ZS5jCkBAIC0xNTIsMTEgKzE1MiwzMSBAQCB4bG9nX2RlY29kZShMb2dpY2FsRGVjb2RpbmdD b250ZXh0ICpjdHgsIFhMb2dSZWNvcmRCdWZmZXIgKmJ1ZikKIAkJCSAqIGNhbiByZXN0YXJ0 IGZyb20gdGhlcmUuCiAJCQkgKi8KIAkJCWJyZWFrOworCQljYXNlIFhMT0dfUEFSQU1FVEVS X0NIQU5HRToKKwkJeworCQkJeGxfcGFyYW1ldGVyX2NoYW5nZSAqeGxyZWMgPQorCQkJCSh4 bF9wYXJhbWV0ZXJfY2hhbmdlICopIFhMb2dSZWNHZXREYXRhKGJ1Zi0+cmVjb3JkKTsKKwor CQkJLyoKKwkJCSAqIElmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIHJlZHVjZWQgdG8gbGVz cyB0aGFuIGxvZ2ljYWwsIHRoZW4gd2UKKwkJCSAqIHdhbnQgdG8gcHJldmVudCBleGlzdGlu ZyBsb2dpY2FsIHNsb3RzIGZyb20gYmVpbmcgdXNlZC4KKwkJCSAqIEV4aXN0aW5nIGxvZ2lj YWwgc2xvdHMgb24gc3RhbmRieSBnZXQgaW52YWxpZGF0ZWQgd2hlbiB0aGlzIFdBTAorCQkJ ICogcmVjb3JkIGlzIHJlcGxheWVkOyBhbmQgZnVydGhlciwgc2xvdCBjcmVhdGlvbiBmYWls cyB3aGVuIHRoZQorCQkJICogd2FsIGxldmVsIGlzIG5vdCBzdWZmaWNpZW50OyBidXQgYWxs IHRoZXNlIG9wZXJhdGlvbnMgYXJlIG5vdAorCQkJICogc3luY2hyb25pemVkLCBzbyBhIGxv Z2ljYWwgc2xvdCBtYXkgY3JlZXAgaW4gd2hpbGUgdGhlIHdhbF9sZXZlbAorCQkJICogaXMg YmVpbmcgcmVkdWNlZC4gSGVuY2UgdGhpcyBleHRyYSBjaGVjay4KKwkJCSAqLworCQkJaWYg KHhscmVjLT53YWxfbGV2ZWwgPCBXQUxfTEVWRUxfTE9HSUNBTCkKKwkJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lU RV9TVEFURSksCisJCQkJCQkgZXJybXNnKCJsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkg cmVxdWlyZXMgIgorCQkJCQkJCQkid2FsX2xldmVsIHRvIGJlIGF0IGxlYXN0IGxvZ2ljYWwg b24gbWFzdGVyIikpKTsKKwkJCWJyZWFrOworCQl9CiAJCWNhc2UgWExPR19OT09QOgogCQlj YXNlIFhMT0dfTkVYVE9JRDoKIAkJY2FzZSBYTE9HX1NXSVRDSDoKIAkJY2FzZSBYTE9HX0JB Q0tVUF9FTkQ6Ci0JCWNhc2UgWExPR19QQVJBTUVURVJfQ0hBTkdFOgogCQljYXNlIFhMT0df UkVTVE9SRV9QT0lOVDoKIAkJY2FzZSBYTE9HX0ZQV19DSEFOR0U6CiAJCWNhc2UgWExPR19G UElfRk9SX0hJTlQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL2xvZ2ljYWwuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNh bC5jCmluZGV4IDYyNWE3ZjQyNzMuLmE5NTY3ZjJkOGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCisrKyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCkBAIC0xMTksMjMgKzExOSwyMiBAQCBDaGVj a0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cyh2b2lkKQogCQkJCShlcnJjb2RlKEVSUkNP REVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCSBlcnJtc2coImxv Z2ljYWwgZGVjb2RpbmcgcmVxdWlyZXMgYSBkYXRhYmFzZSBjb25uZWN0aW9uIikpKTsKIAot CS8qIC0tLS0KLQkgKiBUT0RPOiBXZSBnb3QgdG8gY2hhbmdlIHRoYXQgc29tZWRheSBzb29u Li4uCi0JICoKLQkgKiBUaGVyZSdzIGJhc2ljYWxseSB0aHJlZSB0aGluZ3MgbWlzc2luZyB0 byBhbGxvdyB0aGlzOgotCSAqIDEpIFdlIG5lZWQgdG8gYmUgYWJsZSB0byBjb3JyZWN0bHkg YW5kIHF1aWNrbHkgaWRlbnRpZnkgdGhlIHRpbWVsaW5lIGEKLQkgKgkgIExTTiBiZWxvbmdz IHRvCi0JICogMikgV2UgbmVlZCB0byBmb3JjZSBob3Rfc3RhbmRieV9mZWVkYmFjayB0byBi ZSBlbmFibGVkIGF0IGFsbCB0aW1lcyBzbwotCSAqCSAgdGhlIHByaW1hcnkgY2Fubm90IHJl bW92ZSByb3dzIHdlIG5lZWQuCi0JICogMykgc3VwcG9ydCBkcm9wcGluZyByZXBsaWNhdGlv biBzbG90cyByZWZlcnJpbmcgdG8gYSBkYXRhYmFzZSwgaW4KLQkgKgkgIGRiYXNlX3JlZG8u IFRoZXJlIGNhbid0IGJlIGFueSBhY3RpdmUgb25lcyBkdWUgdG8gSFMgcmVjb3ZlcnkKLQkg KgkgIGNvbmZsaWN0cywgc28gdGhhdCBzaG91bGQgYmUgcmVsYXRpdmVseSBlYXN5LgotCSAq IC0tLS0KLQkgKi8KIAlpZiAoUmVjb3ZlcnlJblByb2dyZXNzKCkpCi0JCWVyZXBvcnQoRVJS T1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJ CSBlcnJtc2coImxvZ2ljYWwgZGVjb2RpbmcgY2Fubm90IGJlIHVzZWQgd2hpbGUgaW4gcmVj b3ZlcnkiKSkpOworCXsKKwkJLyoKKwkJICogVGhpcyBjaGVjayBtYXkgaGF2ZSByYWNlIGNv bmRpdGlvbnMsIGJ1dCB3aGVuZXZlcgorCQkgKiBYTE9HX1BBUkFNRVRFUl9DSEFOR0UgaW5k aWNhdGVzIHRoYXQgd2FsX2xldmVsIGhhcyBjaGFuZ2VkLCB3ZQorCQkgKiB2ZXJpZnkgdGhh dCB0aGVyZSBhcmUgbm8gZXhpc3RpbmcgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cy4gQW5k IHRvCisJCSAqIGF2b2lkIHJhY2VzIGFyb3VuZCBjcmVhdGluZyBhIG5ldyBzbG90LAorCQkg KiBDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cygpIGlzIGNhbGxlZCBvbmNlIGJl Zm9yZSBjcmVhdGluZworCQkgKiB0aGUgc2xvdCwgYW5kIG9uY2Ugd2hlbiBsb2dpY2FsIGRl Y29kaW5nIGlzIGluaXRpYWxseSBzdGFydGluZyB1cC4KKwkJICovCisJCWlmIChHZXRBY3Rp dmVXYWxMZXZlbE9uU3RhbmRieSgpIDwgV0FMX0xFVkVMX0xPR0lDQUwpCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlT SVRFX1NUQVRFKSwKKwkJCQkJIGVycm1zZygibG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5 IHJlcXVpcmVzICIKKwkJCQkJCQkid2FsX2xldmVsIHRvIGJlIGF0IGxlYXN0IGxvZ2ljYWwg b24gbWFzdGVyIikpKTsKKwl9CiB9CiAKIC8qCkBAIC0zMzEsNiArMzMwLDEyIEBAIENyZWF0 ZUluaXREZWNvZGluZ0NvbnRleHQoY29uc3QgY2hhciAqcGx1Z2luLAogCUxvZ2ljYWxEZWNv ZGluZ0NvbnRleHQgKmN0eDsKIAlNZW1vcnlDb250ZXh0IG9sZF9jb250ZXh0OwogCisJLyoK KwkgKiBPbiBzdGFuZGJ5LCB0aGlzIGNoZWNrIGlzIGFsc28gcmVxdWlyZWQgd2hpbGUgY3Jl YXRpbmcgdGhlIHNsb3QuIENoZWNrCisJICogdGhlIGNvbW1lbnRzIGluIHRoaXMgZnVuY3Rp b24uCisJICovCisJQ2hlY2tMb2dpY2FsRGVjb2RpbmdSZXF1aXJlbWVudHMoKTsKKwogCS8q IHNob3J0ZXIgbGluZXMuLi4gKi8KIAlzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCA2YTRlMmNkMTliLi5mNTU0ZGFjNmZkIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAic3Rv cmFnZS9wcm9jLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jYXJyYXkuaCIKICNpbmNsdWRl ICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgImFjY2Vzcy94bG9ncmVjb3ZlcnkuaCIK IAogLyoKICAqIFJlcGxpY2F0aW9uIHNsb3Qgb24tZGlzayBkYXRhIHN0cnVjdHVyZS4KQEAg LTExNzUsMzcgKzExNzYsNDYgQEAgUmVwbGljYXRpb25TbG90UmVzZXJ2ZVdhbCh2b2lkKQog CQkvKgogCQkgKiBGb3IgbG9naWNhbCBzbG90cyBsb2cgYSBzdGFuZGJ5IHNuYXBzaG90IGFu ZCBzdGFydCBsb2dpY2FsIGRlY29kaW5nCiAJCSAqIGF0IGV4YWN0bHkgdGhhdCBwb3NpdGlv bi4gVGhhdCBhbGxvd3MgdGhlIHNsb3QgdG8gc3RhcnQgdXAgbW9yZQotCQkgKiBxdWlja2x5 LgorCQkgKiBxdWlja2x5LiBCdXQgb24gYSBzdGFuZGJ5IHdlIGNhbm5vdCBkbyBXQUwgd3Jp dGVzLCBzbyBqdXN0IHVzZSB0aGUKKwkJICogcmVwbGF5IHBvaW50ZXI7IGVmZmVjdGl2ZWx5 LCBhbiBhdHRlbXB0IHRvIGNyZWF0ZSBhIGxvZ2ljYWwgc2xvdCBvbgorCQkgKiBzdGFuZGJ5 IHdpbGwgY2F1c2UgaXQgdG8gd2FpdCBmb3IgYW4geGxfcnVubmluZ194YWN0IHJlY29yZCB0 byBiZQorCQkgKiBsb2dnZWQgaW5kZXBlbmRlbnRseSBvbiB0aGUgcHJpbWFyeSwgc28gdGhh dCBhIHNuYXBzaG90IGNhbiBiZSBidWlsdAorCQkgKiB1c2luZyB0aGUgcmVjb3JkLgogCQkg KgotCQkgKiBUaGF0J3Mgbm90IG5lZWRlZCAob3IgaW5kZWVkIGhlbHBmdWwpIGZvciBwaHlz aWNhbCBzbG90cyBhcyB0aGV5J2xsCi0JCSAqIHN0YXJ0IHJlcGxheSBhdCB0aGUgbGFzdCBs b2dnZWQgY2hlY2twb2ludCBhbnl3YXkuIEluc3RlYWQgcmV0dXJuCi0JCSAqIHRoZSBsb2Nh dGlvbiBvZiB0aGUgbGFzdCByZWRvIExTTi4gV2hpbGUgdGhhdCBzbGlnaHRseSBpbmNyZWFz ZXMKLQkJICogdGhlIGNoYW5jZSB0aGF0IHdlIGhhdmUgdG8gcmV0cnksIGl0J3Mgd2hlcmUg YSBiYXNlIGJhY2t1cCBoYXMgdG8KLQkJICogc3RhcnQgcmVwbGF5IGF0LgorCQkgKiBOb25l IG9mIHRoaXMgaXMgbmVlZGVkIChvciBpbmRlZWQgaGVscGZ1bCkgZm9yIHBoeXNpY2FsIHNs b3RzIGFzCisJCSAqIHRoZXknbGwgc3RhcnQgcmVwbGF5IGF0IHRoZSBsYXN0IGxvZ2dlZCBj aGVja3BvaW50IGFueXdheS4gSW5zdGVhZAorCQkgKiByZXR1cm4gdGhlIGxvY2F0aW9uIG9m IHRoZSBsYXN0IHJlZG8gTFNOLiBXaGlsZSB0aGF0IHNsaWdodGx5CisJCSAqIGluY3JlYXNl cyB0aGUgY2hhbmNlIHRoYXQgd2UgaGF2ZSB0byByZXRyeSwgaXQncyB3aGVyZSBhIGJhc2Ug YmFja3VwCisJCSAqIGhhcyB0byBzdGFydCByZXBsYXkgYXQuCiAJCSAqLwotCQlpZiAoIVJl Y292ZXJ5SW5Qcm9ncmVzcygpICYmIFNsb3RJc0xvZ2ljYWwoc2xvdCkpCisJCWlmIChTbG90 SXNQaHlzaWNhbChzbG90KSkKKwkJCXJlc3RhcnRfbHNuID0gR2V0UmVkb1JlY1B0cigpOwor CQllbHNlIGlmIChSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKIAkJewotCQkJWExvZ1JlY1B0cglm bHVzaHB0cjsKLQotCQkJLyogc3RhcnQgYXQgY3VycmVudCBpbnNlcnQgcG9zaXRpb24gKi8K LQkJCXJlc3RhcnRfbHNuID0gR2V0WExvZ0luc2VydFJlY1B0cigpOwotCQkJU3BpbkxvY2tB Y3F1aXJlKCZzbG90LT5tdXRleCk7Ci0JCQlzbG90LT5kYXRhLnJlc3RhcnRfbHNuID0gcmVz dGFydF9sc247Ci0JCQlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKLQotCQkJLyog bWFrZSBzdXJlIHdlIGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIHN0YXJ0ICovCi0JCQlm bHVzaHB0ciA9IExvZ1N0YW5kYnlTbmFwc2hvdCgpOwotCi0JCQkvKiBhbmQgbWFrZSBzdXJl IGl0J3MgZnN5bmNlZCB0byBkaXNrICovCi0JCQlYTG9nRmx1c2goZmx1c2hwdHIpOworCQkJ cmVzdGFydF9sc24gPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwpOworCQkJLyoKKwkJCSAq IFJlcGxheSBwb2ludGVyIG1heSBwb2ludCBvbmUgcGFzdCB0aGUgZW5kIG9mIHRoZSByZWNv cmQuIElmIHRoYXQKKwkJCSAqIGlzIGEgWExPRyBwYWdlIGJvdW5kYXJ5LCBpdCB3aWxsIG5v dCBiZSBhIHZhbGlkIExTTiBmb3IgdGhlCisJCQkgKiBzdGFydCBvZiBhIHJlY29yZCwgc28g YnVtcCBpdCB1cCBwYXN0IHRoZSBwYWdlIGhlYWRlci4KKwkJCSAqLworCQkJaWYgKCFYUmVj T2ZmSXNWYWxpZChyZXN0YXJ0X2xzbikpCisJCQl7CisJCQkJaWYgKHJlc3RhcnRfbHNuICUg WExPR19CTENLU1ogIT0gMCkKKwkJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgcmVwbGF5IHBv aW50ZXIiKTsKKworCQkJCS8qIEZvciB0aGUgZmlyc3QgcGFnZSBvZiBhIHNlZ21lbnQgZmls ZSwgaXQncyBhIGxvbmcgaGVhZGVyICovCisJCQkJaWYgKFhMb2dTZWdtZW50T2Zmc2V0KHJl c3RhcnRfbHNuLCB3YWxfc2VnbWVudF9zaXplKSA9PSAwKQorCQkJCQlyZXN0YXJ0X2xzbiAr PSBTaXplT2ZYTG9nTG9uZ1BIRDsKKwkJCQllbHNlCisJCQkJCXJlc3RhcnRfbHNuICs9IFNp emVPZlhMb2dTaG9ydFBIRDsKKwkJCX0KIAkJfQogCQllbHNlCi0JCXsKLQkJCXJlc3RhcnRf bHNuID0gR2V0UmVkb1JlY1B0cigpOwotCQkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRl eCk7Ci0JCQlzbG90LT5kYXRhLnJlc3RhcnRfbHNuID0gcmVzdGFydF9sc247Ci0JCQlTcGlu TG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKLQkJfQorCQkJcmVzdGFydF9sc24gPSBHZXRY TG9nSW5zZXJ0UmVjUHRyKCk7CisKKwkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7 CisJCXNsb3QtPmRhdGEucmVzdGFydF9sc24gPSByZXN0YXJ0X2xzbjsKKwkJU3BpbkxvY2tS ZWxlYXNlKCZzbG90LT5tdXRleCk7CiAKIAkJLyogcHJldmVudCBXQUwgcmVtb3ZhbCBhcyBm YXN0IGFzIHBvc3NpYmxlICovCiAJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRM U04oKTsKQEAgLTEyMjEsNiArMTIzMSwxNyBAQCBSZXBsaWNhdGlvblNsb3RSZXNlcnZlV2Fs KHZvaWQpCiAJCWlmIChYTG9nR2V0TGFzdFJlbW92ZWRTZWdubygpIDwgc2Vnbm8pCiAJCQli cmVhazsKIAl9CisKKwlpZiAoIVJlY292ZXJ5SW5Qcm9ncmVzcygpICYmIFNsb3RJc0xvZ2lj YWwoc2xvdCkpCisJeworCQlYTG9nUmVjUHRyCWZsdXNocHRyOworCisJCS8qIG1ha2Ugc3Vy ZSB3ZSBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBzdGFydCAqLworCQlmbHVzaHB0ciA9 IExvZ1N0YW5kYnlTbmFwc2hvdCgpOworCisJCS8qIGFuZCBtYWtlIHN1cmUgaXQncyBmc3lu Y2VkIHRvIGRpc2sgKi8KKwkJWExvZ0ZsdXNoKGZsdXNocHRyKTsKKwl9CiB9CiAKIC8qCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IDY0ZmJkNTJlMzQuLjk2NjJl MzE2YzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5j CisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC05MDYsMTQg KzkwNiwxOCBAQCBsb2dpY2FsX3JlYWRfeGxvZ19wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqc3Rh dGUsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwgaW50IHJlcQogCWludAkJCWNvdW50Owog CVdBTFJlYWRFcnJvciBlcnJpbmZvOwogCVhMb2dTZWdObwlzZWdubzsKLQlUaW1lTGluZUlE CWN1cnJUTEkgPSBHZXRXQUxJbnNlcnRpb25UaW1lTGluZSgpOworCVRpbWVMaW5lSUQJY3Vy clRMSTsKIAogCS8qCi0JICogU2luY2UgbG9naWNhbCBkZWNvZGluZyBpcyBvbmx5IHBlcm1p dHRlZCBvbiBhIHByaW1hcnkgc2VydmVyLCB3ZSBrbm93Ci0JICogdGhhdCB0aGUgY3VycmVu dCB0aW1lbGluZSBJRCBjYW4ndCBiZSBjaGFuZ2luZyBhbnkgbW9yZS4gSWYgd2UgZGlkIHRo aXMKLQkgKiBvbiBhIHN0YW5kYnksIHdlJ2QgaGF2ZSB0byB3b3JyeSBhYm91dCB0aGUgdmFs dWVzIHdlIGNvbXB1dGUgaGVyZQotCSAqIGJlY29taW5nIGludmFsaWQgZHVlIHRvIGEgcHJv bW90aW9uIG9yIHRpbWVsaW5lIGNoYW5nZS4KKwkgKiBTaW5jZSBsb2dpY2FsIGRlY29kaW5n IGlzIGFsc28gcGVybWl0dGVkIG9uIGEgc3RhbmRieSBzZXJ2ZXIsIHdlIG5lZWQKKwkgKiB0 byBjaGVjayBpZiB0aGUgc2VydmVyIGlzIGluIHJlY292ZXJ5IHRvIGRlY2lkZSBob3cgdG8g Z2V0IHRoZSBjdXJyZW50CisJICogdGltZWxpbmUgSUQgKHNvIHRoYXQgaXQgYWxzbyBjb3Zl ciB0aGUgcHJvbW90aW9uIG9yIHRpbWVsaW5lIGNoYW5nZSBjYXNlcykuCiAJICovCisJaWYg KCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKKwkJY3VyclRMSSA9IEdldFdBTEluc2VydGlvblRp bWVMaW5lKCk7CisJZWxzZQorCQlHZXRYTG9nUmVwbGF5UmVjUHRyKCZjdXJyVExJKTsKKwog CVhMb2dSZWFkRGV0ZXJtaW5lVGltZWxpbmUoc3RhdGUsIHRhcmdldFBhZ2VQdHIsIHJlcUxl biwgY3VyclRMSSk7CiAJc2VuZFRpbWVMaW5lSXNIaXN0b3JpYyA9IChzdGF0ZS0+Y3VyclRM SSAhPSBjdXJyVExJKTsKIAlzZW5kVGltZUxpbmUgPSBzdGF0ZS0+Y3VyclRMSTsKQEAgLTMw NzQsMTAgKzMwNzgsMTIgQEAgWExvZ1NlbmRMb2dpY2FsKHZvaWQpCiAJICogSWYgZmlyc3Qg dGltZSB0aHJvdWdoIGluIHRoaXMgc2Vzc2lvbiwgaW5pdGlhbGl6ZSBmbHVzaFB0ci4gIE90 aGVyd2lzZSwKIAkgKiB3ZSBvbmx5IG5lZWQgdG8gdXBkYXRlIGZsdXNoUHRyIGlmIEVuZFJl Y1B0ciBpcyBwYXN0IGl0LgogCSAqLwotCWlmIChmbHVzaFB0ciA9PSBJbnZhbGlkWExvZ1Jl Y1B0cikKLQkJZmx1c2hQdHIgPSBHZXRGbHVzaFJlY1B0cihOVUxMKTsKLQllbHNlIGlmIChs b2dpY2FsX2RlY29kaW5nX2N0eC0+cmVhZGVyLT5FbmRSZWNQdHIgPj0gZmx1c2hQdHIpCi0J CWZsdXNoUHRyID0gR2V0Rmx1c2hSZWNQdHIoTlVMTCk7CisJaWYgKGZsdXNoUHRyID09IElu dmFsaWRYTG9nUmVjUHRyIHx8CisJCWxvZ2ljYWxfZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVu ZFJlY1B0ciA+PSBmbHVzaFB0cikKKwl7CisJCWZsdXNoUHRyID0gKGFtX2Nhc2NhZGluZ193 YWxzZW5kZXIgPworCQkJCQlHZXRTdGFuZGJ5Rmx1c2hSZWNQdHIoTlVMTCkgOiBHZXRGbHVz aFJlY1B0cihOVUxMKSk7CisJfQogCiAJLyogSWYgRW5kUmVjUHRyIGlzIHN0aWxsIHBhc3Qg b3VyIGZsdXNoUHRyLCBpdCBtZWFucyB3ZSBjYXVnaHQgdXAuICovCiAJaWYgKGxvZ2ljYWxf ZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVuZFJlY1B0ciA+PSBmbHVzaFB0cikKQEAgLTMxNjgs NyArMzE3NCw4IEBAIEdldFN0YW5kYnlGbHVzaFJlY1B0cihUaW1lTGluZUlEICp0bGkpCiAJ cmVjZWl2ZVB0ciA9IEdldFdhbFJjdkZsdXNoUmVjUHRyKE5VTEwsICZyZWNlaXZlVExJKTsK IAlyZXBsYXlQdHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKCZyZXBsYXlUTEkpOwogCi0JKnRs aSA9IHJlcGxheVRMSTsKKwlpZiAodGxpKQorCQkqdGxpID0gcmVwbGF5VExJOwogCiAJcmVz dWx0ID0gcmVwbGF5UHRyOwogCWlmIChyZWNlaXZlVExJID09IHJlcGxheVRMSSAmJiByZWNl aXZlUHRyID4gcmVwbGF5UHRyKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hs b2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKaW5kZXggMWZiZDQ4ZmJkYS4uMDI3 ZTE1NWU4ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaAorKysgYi9z cmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCkBAIC0yMzAsNiArMjMwLDcgQEAgZXh0ZXJuIHZv aWQgWExPR1NobWVtSW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIEJvb3RTdHJhcFhMT0codm9p ZCk7CiBleHRlcm4gdm9pZCBJbml0aWFsaXplV2FsQ29uc2lzdGVuY3lDaGVja2luZyh2b2lk KTsKIGV4dGVybiB2b2lkIExvY2FsUHJvY2Vzc0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpOwor ZXh0ZXJuIFdhbExldmVsIEdldEFjdGl2ZVdhbExldmVsT25TdGFuZGJ5KHZvaWQpOwogZXh0 ZXJuIHZvaWQgU3RhcnR1cFhMT0codm9pZCk7CiBleHRlcm4gdm9pZCBTaHV0ZG93blhMT0co aW50IGNvZGUsIERhdHVtIGFyZyk7CiBleHRlcm4gdm9pZCBDcmVhdGVDaGVja1BvaW50KGlu dCBmbGFncyk7Ci0tIAoyLjM0LjEKCg== --------------3T3Kqsei9cUCGxvjVj1HQucN Content-Type: text/plain; charset=UTF-8; name="v33-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Disposition: attachment; filename="v33-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSA4MzdkZTcwMmVmMjVkZjVkOWMwZTE4NWE4ZjFiODY0NGExMTRiMmJiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyMCBEZWMgMjAyMiAwODozNTozOSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMzIDIvNl0gSGFuZGxlIGxvZ2ljYWwgc2xvdCBjb25mbGljdHMgb24gc3RhbmRieS4K CkR1cmluZyBXQUwgcmVwbGF5IG9uIHN0YW5kYnksIHdoZW4gc2xvdCBjb25mbGljdCBpcyBp ZGVudGlmaWVkLAppbnZhbGlkYXRlIHN1Y2ggc2xvdHMuIEFsc28gZG8gdGhlIHNhbWUgdGhp bmcgaWYgd2FsX2xldmVsIG9uIG1hc3RlcgppcyByZWR1Y2VkIHRvIGJlbG93IGxvZ2ljYWwg YW5kIHRoZXJlIGFyZSBleGlzdGluZyBsb2dpY2FsIHNsb3RzCm9uIHN0YW5kYnkuIEludHJv ZHVjZSBhIG5ldyBQcm9jU2lnbmFsUmVhc29uIHZhbHVlIGZvciBzbG90CmNvbmZsaWN0IHJl Y292ZXJ5LiBBcnJhbmdlIGZvciBhIG5ldyBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cyBm aWVsZDoKY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90LgoKQXV0aG9yOiBBbmRyZXMgRnJldW5k IChpbiBhbiBvbGRlciB2ZXJzaW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2 b3QKUmV2aWV3ZWQtQnk6IEJlcnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVy dCBIYWFzLCBGYWJyaXppbyBkZSBSb3llcyBNZWxsbwotLS0KIGRvYy9zcmMvc2dtbC9tb25p dG9yaW5nLnNnbWwgICAgICAgICAgICAgICAgICB8ICAxMSArCiBzcmMvYmFja2VuZC9hY2Nl c3MvZ2lzdC9naXN0eGxvZy5jICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvYWNj ZXNzL2hhc2gvaGFzaF94bG9nLmMgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idHhsb2cuYyAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQv YWNjZXNzL3NwZ2lzdC9zcGd4bG9nLmMgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgICAgICAgICAgICB8ICAxMyArKwogc3JjL2JhY2tl bmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAgIHwgICAzICstCiAuLi4vcmVw bGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYyAgICAgICAgfCAgIDcgKy0KIHNyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyAgICAgICAgICAgICAgICB8IDIwOSArKysrKysr KysrKysrKysrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jICAgICAg ICAgICB8ICAgOCArCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyAgICAg ICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jICAg ICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAgICAg ICAgICAgICB8ICAxMyArLQogc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAg ICAgICAgICAgIHwgIDIyICsrCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRf ZGF0YWJhc2UuYyAgfCAgIDQgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNz LmMgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQg ICAgICAgICAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9wZ3N0YXQuaCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5o ICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25h bC5oICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnku aCAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y dWxlcy5vdXQgICAgICAgICAgIHwgICAzICstCiAyMyBmaWxlcyBjaGFuZ2VkLCAzMTggaW5z ZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKICAgMy44JSBkb2Mvc3JjL3NnbWwvCiAgIDUu MiUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgIDMuOCUgc3JjL2JhY2tlbmQvYWNj ZXNzLwogICAzLjklIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvCiAgNTguMiUg c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vCiAgIDcuMCUgc3JjL2JhY2tlbmQvc3RvcmFnZS9p cGMvCiAgIDcuOSUgc3JjL2JhY2tlbmQvdGNvcC8KICAgMy4zJSBzcmMvYmFja2VuZC8KICAg NS43JSBzcmMvaW5jbHVkZS8KCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmlu Zy5zZ21sIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAppbmRleCAzNjNiMTgzZTVm Li4yNzIzNTQxOGE2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKQEAgLTQzMTcsNiArNDMxNywx NyBAQCBTRUxFQ1QgcGlkLCB3YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQgRlJPTSBwZ19z dGF0X2FjdGl2aXR5IFdIRVJFIHdhaXRfZXZlbnQgaQogICAgICAgIGRlYWRsb2NrcwogICAg ICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jb25mbF9hY3RpdmVfbG9naWNhbHNs b3Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBOdW1iZXIgb2YgYWN0aXZlIGxvZ2ljYWwgc2xvdHMgaW4g dGhpcyBkYXRhYmFzZSB0aGF0IGhhdmUgYmVlbgorICAgICAgIGludmFsaWRhdGVkIGJlY2F1 c2UgdGhleSBjb25mbGljdCB3aXRoIHJlY292ZXJ5IChub3RlIHRoYXQgaW5hY3RpdmUgb25l cworICAgICAgIGFyZSBhbHNvIGludmFsaWRhdGVkIGJ1dCBkbyBub3QgaW5jcmVtZW50IHRo aXMgY291bnRlcikKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8 L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3Qv Z2lzdHhsb2cuYwppbmRleCA2ZTI2MGY5YWJhLi4yMzU3NzZjNWQzIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9naXN0L2dpc3R4bG9nLmMKQEAgLTE5Niw2ICsxOTYsNyBAQCBnaXN0UmVkb0RlbGV0 ZVJlY29yZChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJWExvZ1JlY0dldEJsb2NrVGFn KHJlY29yZCwgMCwgJnJsb2NhdG9yLCBOVUxMLCBOVUxMKTsKIAogCQlSZXNvbHZlUmVjb3Zl cnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bGRhdGEtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9u LAorCQkJCQkJCQkJCQl4bGRhdGEtPmxvZ2ljYWxDb25mbGljdFBvc3NpYmxlLAogCQkJCQkJ CQkJCQlybG9jYXRvcik7CiAJfQogCkBAIC0zOTYsNiArMzk3LDcgQEAgZ2lzdFJlZG9QYWdl UmV1c2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJICovCiAJaWYgKEluSG90U3RhbmRi eSkKIAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3RGdWxsWGlkKHhscmVj LT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCQkJCSAgIHhscmVjLT5sb2dp Y2FsQ29uZmxpY3RQb3NzaWJsZSwKIAkJCQkJCQkJCQkJCSAgIHhscmVjLT5sb2NhdG9yKTsK IH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoX3hsb2cuYwppbmRleCBiNDUyNjk3YTJm Li5mM2RkNWFlMDgyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNo X3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoX3hsb2cuYwpAQCAt MTAwMSw2ICsxMDAxLDcgQEAgaGFzaF94bG9nX3ZhY3V1bV9vbmVfcGFnZShYTG9nUmVhZGVy U3RhdGUgKnJlY29yZCkKIAogCQlYTG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmcmxv Y2F0b3IsIE5VTEwsIE5VTEwpOwogCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFw c2hvdCh4bGRhdGEtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJCQl4bGRh dGEtPmxvZ2ljYWxDb25mbGljdFBvc3NpYmxlLAogCQkJCQkJCQkJCQlybG9jYXRvcik7CiAJ fQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmluZGV4IDM4M2ZkNzY5MTguLmJhNzJi NTdlY2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC04Njk0LDYgKzg2OTQs NyBAQCBoZWFwX3hsb2dfcHJ1bmUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJICovCiAJ aWYgKEluSG90U3RhbmRieSkKIAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNo b3QoeGxyZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJCQl4bHJlYy0+ bG9naWNhbENvbmZsaWN0UG9zc2libGUsCiAJCQkJCQkJCQkJCXJsb2NhdG9yKTsKIAogCS8q CkBAIC04ODYzLDYgKzg4NjQsNyBAQCBoZWFwX3hsb2dfdmlzaWJsZShYTG9nUmVhZGVyU3Rh dGUgKnJlY29yZCkKIAkgKi8KIAlpZiAoSW5Ib3RTdGFuZGJ5KQogCQlSZXNvbHZlUmVjb3Zl cnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+c25hcHNob3RDb25mbGljdEhvcml6b24s CisJCQkJCQkJCQkJCXhscmVjLT5mbGFncyAmIFZJU0lCSUxJVFlNQVBfT05fQ0FUQUxPR19B Q0NFU1NJQkxFX0lOX0xPR0lDQUxfREVDT0RJTkcsCiAJCQkJCQkJCQkJCXJsb2NhdG9yKTsK IAogCS8qCkBAIC05MTE4LDYgKzkxMjAsNyBAQCBoZWFwX3hsb2dfZnJlZXplX3BhZ2UoWExv Z1JlYWRlclN0YXRlICpyZWNvcmQpCiAKIAkJWExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwg MCwgJnJsb2NhdG9yLCBOVUxMLCBOVUxMKTsKIAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RX aXRoU25hcHNob3QoeGxyZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJ CQl4bHJlYy0+bG9naWNhbENvbmZsaWN0UG9zc2libGUsCiAJCQkJCQkJCQkJCXJsb2NhdG9y KTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0eGxv Zy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR4bG9nLmMKaW5kZXggM2UzMTFh OThhNi4uZmY0Y2Q5ZjVlOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJl ZS9uYnR4bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR4bG9nLmMK QEAgLTY2OSw2ICs2NjksNyBAQCBidHJlZV94bG9nX2RlbGV0ZShYTG9nUmVhZGVyU3RhdGUg KnJlY29yZCkKIAkJWExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwgJnJsb2NhdG9yLCBO VUxMLCBOVUxMKTsKIAogCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4 bHJlYy0+c25hcHNob3RDb25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCXhscmVjLT5sb2dp Y2FsQ29uZmxpY3RQb3NzaWJsZSwKIAkJCQkJCQkJCQkJcmxvY2F0b3IpOwogCX0KIApAQCAt MTAwNyw2ICsxMDA4LDcgQEAgYnRyZWVfeGxvZ19yZXVzZV9wYWdlKFhMb2dSZWFkZXJTdGF0 ZSAqcmVjb3JkKQogCiAJaWYgKEluSG90U3RhbmRieSkKIAkJUmVzb2x2ZVJlY292ZXJ5Q29u ZmxpY3RXaXRoU25hcHNob3RGdWxsWGlkKHhscmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpv biwKKwkJCQkJCQkJCQkJCSAgIHhscmVjLT5sb2dpY2FsQ29uZmxpY3RQb3NzaWJsZSwKIAkJ CQkJCQkJCQkJCSAgIHhscmVjLT5sb2NhdG9yKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd4bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3Bn aXN0L3NwZ3hsb2cuYwppbmRleCA0NGFkYzIwOThmLi5hYzRlYzM5NGViIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYwpAQCAtODc5LDYgKzg3OSw3IEBAIHNwZ1JlZG9W YWN1dW1SZWRpcmVjdChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAogCQlYTG9nUmVjR2V0 QmxvY2tUYWcocmVjb3JkLCAwLCAmbG9jYXRvciwgTlVMTCwgTlVMTCk7CiAJCVJlc29sdmVS ZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+c25hcHNob3RDb25mbGljdEhv cml6b24sCisJCQkJCQkJCQkJCXhsZGF0YS0+bG9naWNhbENvbmZsaWN0UG9zc2libGUsCiAJ CQkJCQkJCQkJCWxvY2F0b3IpOwogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5j CmluZGV4IDkxNDczYjAwZDkuLmZjYTZlZTQ1ODQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS94bG9nLmMKQEAgLTc5NTgsNiArNzk1OCwxOSBAQCB4bG9nX3JlZG8oWExvZ1JlYWRlclN0 YXRlICpyZWNvcmQpCiAJCS8qIFVwZGF0ZSBvdXIgY29weSBvZiB0aGUgcGFyYW1ldGVycyBp biBwZ19jb250cm9sICovCiAJCW1lbWNweSgmeGxyZWMsIFhMb2dSZWNHZXREYXRhKHJlY29y ZCksIHNpemVvZih4bF9wYXJhbWV0ZXJfY2hhbmdlKSk7CiAKKwkJLyoKKwkJICogSW52YWxp ZGF0ZSBsb2dpY2FsIHNsb3RzIGlmIHdlIGFyZSBpbiBob3Qgc3RhbmRieSBhbmQgdGhlIHBy aW1hcnkgZG9lcyBub3QKKwkJICogaGF2ZSBhIFdBTCBsZXZlbCBzdWZmaWNpZW50IGZvciBs b2dpY2FsIGRlY29kaW5nLiBObyBuZWVkIHRvIHNlYXJjaAorCQkgKiBmb3IgcG90ZW50aWFs bHkgY29uZmxpY3RpbmcgbG9naWNhbGx5IHNsb3RzIGlmIHN0YW5kYnkgaXMgcnVubmluZwor CQkgKiB3aXRoIHdhbF9sZXZlbCBsb3dlciB0aGFuIGxvZ2ljYWwsIGJlY2F1c2UgaW4gdGhh dCBjYXNlLCB3ZSB3b3VsZAorCQkgKiBoYXZlIGVpdGhlciBkaXNhbGxvd2VkIGNyZWF0aW9u IG9mIGxvZ2ljYWwgc2xvdHMgb3IgaW52YWxpZGF0ZWQgZXhpc3RpbmcKKwkJICogb25lcy4K KwkJICovCisJCWlmIChJblJlY292ZXJ5ICYmIEluSG90U3RhbmRieSAmJgorCQkJeGxyZWMu d2FsX2xldmVsIDwgV0FMX0xFVkVMX0xPR0lDQUwgJiYKKwkJCXdhbF9sZXZlbCA+PSBXQUxf TEVWRUxfTE9HSUNBTCkKKwkJCUludmFsaWRhdGVDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNh dGlvblNsb3RzKEludmFsaWRPaWQsSW52YWxpZFRyYW5zYWN0aW9uSWQpOworCiAJCUxXTG9j a0FjcXVpcmUoQ29udHJvbEZpbGVMb2NrLCBMV19FWENMVVNJVkUpOwogCQlDb250cm9sRmls ZS0+TWF4Q29ubmVjdGlvbnMgPSB4bHJlYy5NYXhDb25uZWN0aW9uczsKIAkJQ29udHJvbEZp bGUtPm1heF93b3JrZXJfcHJvY2Vzc2VzID0geGxyZWMubWF4X3dvcmtlcl9wcm9jZXNzZXM7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9z cmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKaW5kZXggMmQ4MTA0YjA5MC4u MGUwYjhlZjQxNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmll d3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAt MTA2NSw3ICsxMDY1LDggQEAgQ1JFQVRFIFZJRVcgcGdfc3RhdF9kYXRhYmFzZV9jb25mbGlj dHMgQVMKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvY2soRC5vaWQp IEFTIGNvbmZsX2xvY2ssCiAgICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9z bmFwc2hvdChELm9pZCkgQVMgY29uZmxfc25hcHNob3QsCiAgICAgICAgICAgICBwZ19zdGF0 X2dldF9kYl9jb25mbGljdF9idWZmZXJwaW4oRC5vaWQpIEFTIGNvbmZsX2J1ZmZlcnBpbiwK LSAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2so RC5vaWQpIEFTIGNvbmZsX2RlYWRsb2NrCisgICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9j b25mbGljdF9zdGFydHVwX2RlYWRsb2NrKEQub2lkKSBBUyBjb25mbF9kZWFkbG9jaywKKyAg ICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90KEQub2lkKSBB UyBjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QKICAgICBGUk9NIHBnX2RhdGFiYXNlIEQ7CiAK IENSRUFURSBWSUVXIHBnX3N0YXRfdXNlcl9mdW5jdGlvbnMgQVMKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCmluZGV4IDVjMjMxNzg1 NzAuLjg0MzJkZTIxOWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvbG9naWNhbGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC9sb2dpY2FsZnVuY3MuYwpAQCAtMjE2LDExICsyMTYsMTQgQEAgcGdfbG9naWNhbF9z bG90X2dldF9jaGFuZ2VzX2d1dHMoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wgY29u ZmlybSwgYm9vbCBiaW4KIAogCQkvKgogCQkgKiBBZnRlciB0aGUgc2FuaXR5IGNoZWNrcyBp biBDcmVhdGVEZWNvZGluZ0NvbnRleHQsIG1ha2Ugc3VyZSB0aGUKLQkJICogcmVzdGFydF9s c24gaXMgdmFsaWQuICBBdm9pZCAiY2Fubm90IGdldCBjaGFuZ2VzIiB3b3JkaW5nIGluIHRo aXMKKwkJICogcmVzdGFydF9sc24gaXMgdmFsaWQgb3IgYm90aCB4bWluIGFuZCBjYXRhbG9n X3htaW4gYXJlIHZhbGlkLgorCQkgKiBBdm9pZCAiY2Fubm90IGdldCBjaGFuZ2VzIiB3b3Jk aW5nIGluIHRoaXMKIAkJICogZXJybXNnIGJlY2F1c2UgdGhhdCdkIGJlIGNvbmZ1c2luZ2x5 IGFtYmlndW91cyBhYm91dCBubyBjaGFuZ2VzCiAJCSAqIGJlaW5nIGF2YWlsYWJsZS4KIAkJ ICovCi0JCWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKE15UmVwbGljYXRpb25TbG90LT5kYXRh LnJlc3RhcnRfbHNuKSkKKwkJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQoTXlSZXBsaWNhdGlv blNsb3QtPmRhdGEucmVzdGFydF9sc24pCisJCQl8fCAoIVRyYW5zYWN0aW9uSWRJc1ZhbGlk KE15UmVwbGljYXRpb25TbG90LT5kYXRhLnhtaW4pCisJCQkJJiYgIVRyYW5zYWN0aW9uSWRJ c1ZhbGlkKE15UmVwbGljYXRpb25TbG90LT5kYXRhLmNhdGFsb2dfeG1pbikpKQogCQkJZXJl cG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJF UVVJU0lURV9TVEFURSksCiAJCQkJCSBlcnJtc2coImNhbiBubyBsb25nZXIgZ2V0IGNoYW5n ZXMgZnJvbSByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiIsCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90 LmMKaW5kZXggODk5YWNmZDkxMi4uNmE0ZTJjZDE5YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vc2xvdC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Ns b3QuYwpAQCAtMTQzMiw2ICsxNDMyLDIxNSBAQCByZXN0YXJ0OgogCXJldHVybiBpbnZhbGlk YXRlZDsKIH0KIAorLyoKKyAqIEhlbHBlciBmb3IgSW52YWxpZGF0ZUNvbmZsaWN0aW5nTG9n aWNhbFJlcGxpY2F0aW9uU2xvdCAtLSBhY3F1aXJlcyB0aGUgZ2l2ZW4gc2xvdAorICogYW5k IG1hcmsgaXQgaW52YWxpZCwgaWYgbmVjZXNzYXJ5IGFuZCBwb3NzaWJsZS4KKyAqCisgKiBS ZXR1cm5zIHdoZXRoZXIgUmVwbGljYXRpb25TbG90Q29udHJvbExvY2sgd2FzIHJlbGVhc2Vk IGluIHRoZSBpbnRlcmltIChhbmQKKyAqIGluIHRoYXQgY2FzZSB3ZSdyZSBub3QgaG9sZGlu ZyB0aGUgbG9jayBhdCByZXR1cm4sIG90aGVyd2lzZSB3ZSBhcmUpLgorICoKKyAqIFRoaXMg aXMgaW5oZXJlbnRseSByYWN5LCBiZWNhdXNlIHdlIHJlbGVhc2UgdGhlIExXTG9jaworICog Zm9yIHN5c2NhbGxzLCBzbyBjYWxsZXIgbXVzdCByZXN0YXJ0IGlmIHdlIHJldHVybiB0cnVl LgorICovCitzdGF0aWMgYm9vbAorSW52YWxpZGF0ZVBvc3NpYmx5Q29uZmxpY3RpbmdMb2dp Y2FsUmVwbGljYXRpb25TbG90KFJlcGxpY2F0aW9uU2xvdCAqcywgVHJhbnNhY3Rpb25JZCB4 aWQpCit7CisJaW50CQlsYXN0X3NpZ25hbGVkX3BpZCA9IDA7CisJYm9vbAlyZWxlYXNlZF9s b2NrID0gZmFsc2U7CisKKwlmb3IgKDs7KQorCXsKKwkJVHJhbnNhY3Rpb25JZCBzbG90X3ht aW47CisJCVRyYW5zYWN0aW9uSWQgc2xvdF9jYXRhbG9nX3htaW47CisJCU5hbWVEYXRhCXNs b3RuYW1lOworCQlpbnQJCQlhY3RpdmVfcGlkID0gMDsKKworCQlBc3NlcnQoTFdMb2NrSGVs ZEJ5TWVJbk1vZGUoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2ssIExXX1NIQVJFRCkpOwor CisJCWlmICghcy0+aW5fdXNlKQorCQl7CisJCQlpZiAocmVsZWFzZWRfbG9jaykKKwkJCQlM V0xvY2tSZWxlYXNlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrKTsKKwkJCWJyZWFrOwor CQl9CisKKwkJLyoKKwkJICogQ2hlY2sgaWYgdGhlIHNsb3QgbmVlZHMgdG8gYmUgaW52YWxp ZGF0ZWQuIElmIGl0IG5lZWRzIHRvIGJlCisJCSAqIGludmFsaWRhdGVkLCBhbmQgaXMgbm90 IGN1cnJlbnRseSBhY3F1aXJlZCwgYWNxdWlyZSBpdCBhbmQgbWFyayBpdAorCQkgKiBhcyBo YXZpbmcgYmVlbiBpbnZhbGlkYXRlZC4gV2UgZG8gdGhpcyB3aXRoIHRoZSBzcGlubG9jayBo ZWxkIHRvCisJCSAqIGF2b2lkIHJhY2UgY29uZGl0aW9ucyAtLSBmb3IgZXhhbXBsZSB0aGUg eG1pbihzKSBjb3VsZCBtb3ZlIGZvcndhcmQKKwkJICogLCBvciB0aGUgc2xvdCBjb3VsZCBi ZSBkcm9wcGVkLgorCQkgKi8KKwkJU3BpbkxvY2tBY3F1aXJlKCZzLT5tdXRleCk7CisKKwkJ c2xvdF94bWluID0gcy0+ZGF0YS54bWluOworCQlzbG90X2NhdGFsb2dfeG1pbiA9IHMtPmRh dGEuY2F0YWxvZ194bWluOworCisJCS8qCisJCSAqIElmIHRoZSBzbG90IGlzIGFscmVhZHkg aW52YWxpZCBvciBpcyBub3QgY29uZmxpY3RpbmcsIHdlIGRvbid0IG5lZWQgdG8KKwkJICog ZG8gYW55dGhpbmcuCisJCSAqLworCisJCS8qIHNsb3QgaGFzIGJlZW4gaW52YWxpZGF0ZWQg Ki8KKwkJaWYgKCghVHJhbnNhY3Rpb25JZElzVmFsaWQoc2xvdF94bWluKSAmJiAhVHJhbnNh Y3Rpb25JZElzVmFsaWQoc2xvdF9jYXRhbG9nX3htaW4pKQorCQkJfHwKKwkJLyoKKwkJICog d2UgYXJlIG5vdCBmb3JjaW5nIGZvciBpbnZhbGlkYXRpb24gYmVjYXVzZSB0aGUgeGlkIGlz IHZhbGlkCisJCSAqIGFuZCB0aGlzIGlzIGEgbm9uIGNvbmZsaWN0aW5nIHNsb3QKKwkJICov CisJCQkoVHJhbnNhY3Rpb25JZElzVmFsaWQoeGlkKSAmJiAhKAorCQkJCShUcmFuc2FjdGlv bklkSXNWYWxpZChzbG90X3htaW4pICYmIFRyYW5zYWN0aW9uSWRQcmVjZWRlc09yRXF1YWxz KHNsb3RfeG1pbiwgeGlkKSkKKwkJCQl8fAorCQkJCShUcmFuc2FjdGlvbklkSXNWYWxpZChz bG90X2NhdGFsb2dfeG1pbikgJiYgVHJhbnNhY3Rpb25JZFByZWNlZGVzT3JFcXVhbHMoc2xv dF9jYXRhbG9nX3htaW4sIHhpZCkpCisJCQkJKSkKKwkJCSkKKwkJeworCQkJU3BpbkxvY2tS ZWxlYXNlKCZzLT5tdXRleCk7CisJCQlpZiAocmVsZWFzZWRfbG9jaykKKwkJCQlMV0xvY2tS ZWxlYXNlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrKTsKKwkJCWJyZWFrOworCQl9CisK KwkJc2xvdG5hbWUgPSBzLT5kYXRhLm5hbWU7CisJCWFjdGl2ZV9waWQgPSBzLT5hY3RpdmVf cGlkOworCisJCS8qCisJCSAqIElmIHRoZSBzbG90IGNhbiBiZSBhY3F1aXJlZCwgZG8gc28g YW5kIG1hcmsgaXQgaW52YWxpZGF0ZWQKKwkJICogaW1tZWRpYXRlbHkuICBPdGhlcndpc2Ug d2UnbGwgc2lnbmFsIHRoZSBvd25pbmcgcHJvY2VzcywgYmVsb3csIGFuZAorCQkgKiByZXRy eS4KKwkJICovCisJCWlmIChhY3RpdmVfcGlkID09IDApCisJCXsKKwkJCU15UmVwbGljYXRp b25TbG90ID0gczsKKwkJCXMtPmFjdGl2ZV9waWQgPSBNeVByb2NQaWQ7CisJCQlzLT5kYXRh LnhtaW4gPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwkJCXMtPmRhdGEuY2F0YWxvZ194bWlu ID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJCX0KKworCQlTcGluTG9ja1JlbGVhc2UoJnMt Pm11dGV4KTsKKworCQlpZiAoYWN0aXZlX3BpZCAhPSAwKQorCQl7CisJCQkvKgorCQkJICog UHJlcGFyZSB0aGUgc2xlZXAgb24gdGhlIHNsb3QncyBjb25kaXRpb24gdmFyaWFibGUgYmVm b3JlCisJCQkgKiByZWxlYXNpbmcgdGhlIGxvY2ssIHRvIGNsb3NlIGEgcG9zc2libGUgcmFj ZSBjb25kaXRpb24gaWYgdGhlCisJCQkgKiBzbG90IGlzIHJlbGVhc2VkIGJlZm9yZSB0aGUg c2xlZXAgYmVsb3cuCisJCQkgKi8KKworCQkJQ29uZGl0aW9uVmFyaWFibGVQcmVwYXJlVG9T bGVlcCgmcy0+YWN0aXZlX2N2KTsKKworCQkJTFdMb2NrUmVsZWFzZShSZXBsaWNhdGlvblNs b3RDb250cm9sTG9jayk7CisJCQlyZWxlYXNlZF9sb2NrID0gdHJ1ZTsKKworCQkJLyoKKwkJ CSAqIFNpZ25hbCB0byB0ZXJtaW5hdGUgdGhlIHByb2Nlc3MgdGhhdCBvd25zIHRoZSBzbG90 LCBpZiB3ZQorCQkJICogaGF2ZW4ndCBhbHJlYWR5IHNpZ25hbGxlZCBpdC4gIChBdm9pZGFu Y2Ugb2YgcmVwZWF0ZWQKKwkJCSAqIHNpZ25hbGxpbmcgaXMgdGhlIG9ubHkgcmVhc29uIGZv ciB0aGVyZSB0byBiZSBhIGxvb3AgaW4gdGhpcworCQkJICogcm91dGluZTsgb3RoZXJ3aXNl IHdlIGNvdWxkIHJlbHkgb24gY2FsbGVyJ3MgcmVzdGFydCBsb29wLikKKwkJCSAqCisJCQkg KiBUaGVyZSBpcyB0aGUgcmFjZSBjb25kaXRpb24gdGhhdCBvdGhlciBwcm9jZXNzIG1heSBv d24gdGhlIHNsb3QKKwkJCSAqIGFmdGVyIGl0cyBjdXJyZW50IG93bmVyIHByb2Nlc3MgaXMg dGVybWluYXRlZCBhbmQgYmVmb3JlIHRoaXMKKwkJCSAqIHByb2Nlc3Mgb3ducyBpdC4gVG8g aGFuZGxlIHRoYXQsIHdlIHNpZ25hbCBvbmx5IGlmIHRoZSBQSUQgb2YKKwkJCSAqIHRoZSBv d25pbmcgcHJvY2VzcyBoYXMgY2hhbmdlZCBmcm9tIHRoZSBwcmV2aW91cyB0aW1lLiAoVGhp cworCQkJICogbG9naWMgYXNzdW1lcyB0aGF0IHRoZSBzYW1lIFBJRCBpcyBub3QgcmV1c2Vk IHZlcnkgcXVpY2tseS4pCisJCQkgKi8KKwkJCWlmIChsYXN0X3NpZ25hbGVkX3BpZCAhPSBh Y3RpdmVfcGlkKQorCQkJeworCQkJCWVyZXBvcnQoTE9HLAorCQkJCQkJKGVycm1zZygidGVy bWluYXRpbmcgcHJvY2VzcyAlZCBiZWNhdXNlIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGNv bmZsaWN0cyB3aXRoIHJlY292ZXJ5IiwKKwkJCQkJCQkJYWN0aXZlX3BpZCwgTmFtZVN0cihz bG90bmFtZSkpKSk7CisKKwkJCQkodm9pZCkgU2VuZFByb2NTaWduYWwoYWN0aXZlX3BpZCwg UFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCwgSW52YWxpZEJhY2tlbmRJ ZCk7CisJCQkJbGFzdF9zaWduYWxlZF9waWQgPSBhY3RpdmVfcGlkOworCQkJfQorCisJCQkv KiBXYWl0IHVudGlsIHRoZSBzbG90IGlzIHJlbGVhc2VkLiAqLworCQkJQ29uZGl0aW9uVmFy aWFibGVTbGVlcCgmcy0+YWN0aXZlX2N2LAorCQkJCQkJCQkJV0FJVF9FVkVOVF9SRVBMSUNB VElPTl9TTE9UX0RST1ApOworCisJCQkvKgorCQkJICogUmUtYWNxdWlyZSBsb2NrIGFuZCBz dGFydCBvdmVyOyB3ZSBleHBlY3QgdG8gaW52YWxpZGF0ZSB0aGUKKwkJCSAqIHNsb3QgbmV4 dCB0aW1lICh1bmxlc3MgYW5vdGhlciBwcm9jZXNzIGFjcXVpcmVzIHRoZSBzbG90IGluIHRo ZQorCQkJICogbWVhbnRpbWUpLgorCQkJICovCisJCQlMV0xvY2tBY3F1aXJlKFJlcGxpY2F0 aW9uU2xvdENvbnRyb2xMb2NrLCBMV19TSEFSRUQpOworCQkJY29udGludWU7CisJCX0KKwkJ ZWxzZQorCQl7CisJCQkvKgorCQkJICogV2UgaG9sZCB0aGUgc2xvdCBub3cgYW5kIGhhdmUg YWxyZWFkeSBpbnZhbGlkYXRlZCBpdDsgZmx1c2ggaXQKKwkJCSAqIHRvIGVuc3VyZSB0aGF0 IHN0YXRlIHBlcnNpc3RzLgorCQkJICoKKwkJCSAqIERvbid0IHdhbnQgdG8gaG9sZCBSZXBs aWNhdGlvblNsb3RDb250cm9sTG9jayBhY3Jvc3MgZmlsZQorCQkJICogc3lzdGVtIG9wZXJh dGlvbnMsIHNvIHJlbGVhc2UgaXQgbm93IGJ1dCBiZSBzdXJlIHRvIHRlbGwgY2FsbGVyCisJ CQkgKiB0byByZXN0YXJ0IGZyb20gc2NyYXRjaC4KKwkJCSAqLworCQkJTFdMb2NrUmVsZWFz ZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jayk7CisJCQlyZWxlYXNlZF9sb2NrID0gdHJ1 ZTsKKworCQkJLyogTWFrZSBzdXJlIHRoZSBpbnZhbGlkYXRlZCBzdGF0ZSBwZXJzaXN0cyBh Y3Jvc3Mgc2VydmVyIHJlc3RhcnQgKi8KKwkJCVJlcGxpY2F0aW9uU2xvdE1hcmtEaXJ0eSgp OworCQkJUmVwbGljYXRpb25TbG90U2F2ZSgpOworCQkJUmVwbGljYXRpb25TbG90UmVsZWFz ZSgpOworCQkJcGdzdGF0X2Ryb3BfcmVwbHNsb3Qocyk7CisKKwkJCWVyZXBvcnQoTE9HLAor CQkJCQkoZXJybXNnKCJpbnZhbGlkYXRpbmcgc2xvdCBcIiVzXCIgYmVjYXVzZSBpdCBjb25m bGljdHMgd2l0aCByZWNvdmVyeSIsIE5hbWVTdHIoc2xvdG5hbWUpKSkpOworCisJCQkvKiBk b25lIHdpdGggdGhpcyBzbG90IGZvciBub3cgKi8KKwkJCWJyZWFrOworCQl9CisJfQorCisJ QXNzZXJ0KCFyZWxlYXNlZF9sb2NrID09IExXTG9ja0hlbGRCeU1lSW5Nb2RlKFJlcGxpY2F0 aW9uU2xvdENvbnRyb2xMb2NrLCBMV19TSEFSRUQpKTsKKworCXJldHVybiByZWxlYXNlZF9s b2NrOworfQorCisvKgorICogUmVzb2x2ZSByZWNvdmVyeSBjb25mbGljdHMgd2l0aCBsb2dp Y2FsIHNsb3RzLgorICoKKyAqIFdoZW4geGlkIGlzIHZhbGlkLCBpdCBtZWFucyB0aGF0IHdl IGFyZSBhYm91dCB0byByZW1vdmUgcm93cyBvbGRlciB0aGFuIHhpZC4KKyAqIFRoZXJlZm9y ZSB3ZSBuZWVkIHRvIGludmFsaWRhdGUgc2xvdHMgdGhhdCBkZXBlbmQgb24gc2VlaW5nIHRo b3NlIHJvd3MuCisgKiBXaGVuIHhpZCBpcyBpbnZhbGlkLCBpbnZhbGlkYXRlIGFsbCBsb2dp Y2FsIHNsb3RzLiBUaGlzIGlzIHJlcXVpcmVkIHdoZW4gdGhlCisgKiBtYXN0ZXIgd2FsX2xl dmVsIGlzIHNldCBiYWNrIHRvIHJlcGxpY2EsIHNvIGV4aXN0aW5nIGxvZ2ljYWwgc2xvdHMg bmVlZCB0bworICogYmUgaW52YWxpZGF0ZWQuCisgKi8KK3ZvaWQKK0ludmFsaWRhdGVDb25m bGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3RzKE9pZCBkYm9pZCwgVHJhbnNhY3Rpb25J ZCB4aWQpCit7CisKKwlBc3NlcnQobWF4X3JlcGxpY2F0aW9uX3Nsb3RzID49IDApOworCisJ aWYgKG1heF9yZXBsaWNhdGlvbl9zbG90cyA9PSAwKQorCQlyZXR1cm47CityZXN0YXJ0Ogor CUxXTG9ja0FjcXVpcmUoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2ssIExXX1NIQVJFRCk7 CisJZm9yIChpbnQgaSA9IDA7IGkgPCBtYXhfcmVwbGljYXRpb25fc2xvdHM7IGkrKykKKwl7 CisJCVJlcGxpY2F0aW9uU2xvdCAqcyA9ICZSZXBsaWNhdGlvblNsb3RDdGwtPnJlcGxpY2F0 aW9uX3Nsb3RzW2ldOworCisJCWlmICghcy0+aW5fdXNlKQorCQkJY29udGludWU7CisKKwkJ LyogV2UgYXJlIG9ubHkgZGVhbGluZyB3aXRoICpsb2dpY2FsKiBzbG90IGNvbmZsaWN0cy4g Ki8KKwkJaWYgKCFTbG90SXNMb2dpY2FsKHMpKQorCQkJY29udGludWU7CisKKwkJLyogbm90 IG91ciBkYXRhYmFzZSBhbmQgd2UgZG9uJ3Qgd2FudCBhbGwgdGhlIGRhdGFiYXNlLCBza2lw ICovCisJCWlmIChzLT5kYXRhLmRhdGFiYXNlICE9IGRib2lkICYmIFRyYW5zYWN0aW9uSWRJ c1ZhbGlkKHhpZCkpCisJCQljb250aW51ZTsKKworCQlpZiAoSW52YWxpZGF0ZVBvc3NpYmx5 Q29uZmxpY3RpbmdMb2dpY2FsUmVwbGljYXRpb25TbG90KHMsIHhpZCkpCisJCXsKKwkJCS8q IGlmIHRoZSBsb2NrIHdhcyByZWxlYXNlZCwgd2UgbmVlZCB0byByZXN0YXJ0IGZyb20gc2Ny YXRjaCAqLworCQkJZ290byByZXN0YXJ0OworCQl9CisJfQorCUxXTG9ja1JlbGVhc2UoUmVw bGljYXRpb25TbG90Q29udHJvbExvY2spOworfQorCiAvKgogICogRmx1c2ggYWxsIHJlcGxp Y2F0aW9uIHNsb3RzIHRvIGRpc2suCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vd2Fsc2VuZGVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5k ZXIuYwppbmRleCBjMTFiYjM3MTZmLi42NGZiZDUyZTM0IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi93YWxzZW5kZXIuYwpAQCAtMTI1Myw2ICsxMjUzLDE0IEBAIFN0YXJ0TG9naWNhbFJl cGxpY2F0aW9uKFN0YXJ0UmVwbGljYXRpb25DbWQgKmNtZCkKIAogCVJlcGxpY2F0aW9uU2xv dEFjcXVpcmUoY21kLT5zbG90bmFtZSwgdHJ1ZSk7CiAKKwlpZiAoIVRyYW5zYWN0aW9uSWRJ c1ZhbGlkKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnhtaW4pCisJCSAmJiAhVHJhbnNhY3Rp b25JZElzVmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuY2F0YWxvZ194bWluKSkKKwkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJF UkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgcmVhZCBmcm9tIGxvZ2lj YWwgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIiLAorCQkJCQkJY21kLT5zbG90bmFtZSksCisJ CQkJIGVycmRldGFpbCgiVGhpcyBzbG90IGhhcyBiZWVuIGludmFsaWRhdGVkIGJlY2F1c2Ug aXQgd2FzIGNvbmZsaWN0aW5nIHdpdGggcmVjb3ZlcnkuIikpKTsKKwogCWlmIChYTG9nUmVj UHRySXNJbnZhbGlkKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnJlc3RhcnRfbHNuKSkKIAkJ ZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJF UkVRVUlTSVRFX1NUQVRFKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBj L3Byb2NhcnJheS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKaW5k ZXggMDE3NmYzMDI3MC4uZDY4Yjc1MmM5MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvcHJvY2FycmF5LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJv Y2FycmF5LmMKQEAgLTM0NzcsNiArMzQ3NywxMCBAQCBTaWduYWxWaXJ0dWFsVHJhbnNhY3Rp b24oVmlydHVhbFRyYW5zYWN0aW9uSWQgdnhpZCwgUHJvY1NpZ25hbFJlYXNvbiBzaWdtb2Rl LAogCiAJCUdFVF9WWElEX0ZST01fUEdQUk9DKHByb2N2eGlkLCAqcHJvYyk7CiAKKwkJLyoK KwkJICogTm90ZTogdnhpZC5sb2NhbFRyYW5zYWN0aW9uSWQgY2FuIGJlIGludmFsaWQsIHdo aWNoIG1lYW5zIHRoZQorCQkgKiByZXF1ZXN0IGlzIHRvIHNpZ25hbCB0aGUgcGlkIHRoYXQg aXMgbm90IHJ1bm5pbmcgYSB0cmFuc2FjdGlvbi4KKwkJICovCiAJCWlmIChwcm9jdnhpZC5i YWNrZW5kSWQgPT0gdnhpZC5iYWNrZW5kSWQgJiYKIAkJCXByb2N2eGlkLmxvY2FsVHJhbnNh Y3Rpb25JZCA9PSB2eGlkLmxvY2FsVHJhbnNhY3Rpb25JZCkKIAkJewpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jIGIvc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvcHJvY3NpZ25hbC5jCmluZGV4IDc3Njc2NTdmMjcuLjFiM2JmOTQzYzEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYworKysgYi9z cmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMKQEAgLTY2OSw2ICs2NjksOSBA QCBwcm9jc2lnbmFsX3NpZ3VzcjFfaGFuZGxlcihTSUdOQUxfQVJHUykKIAlpZiAoQ2hlY2tQ cm9jU2lnbmFsKFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QpKQogCQlSZWNv dmVyeUNvbmZsaWN0SW50ZXJydXB0KFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNI T1QpOwogCisJaWYgKENoZWNrUHJvY1NpZ25hbChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNU X0xPR0lDQUxTTE9UKSkKKwkJUmVjb3ZlcnlDb25mbGljdEludGVycnVwdChQUk9DU0lHX1JF Q09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UKTsKKwogCWlmIChDaGVja1Byb2NTaWduYWwo UFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TVEFSVFVQX0RFQURMT0NLKSkKIAkJUmVjb3Zl cnlDb25mbGljdEludGVycnVwdChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NUQVJUVVBf REVBRExPQ0spOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFu ZGJ5LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKaW5kZXggZjQzMjI5 ZGZkYS4uMWFmZDExOWUwMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMv c3RhbmRieS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYwpAQCAt MzUsNiArMzUsNyBAQAogI2luY2x1ZGUgInV0aWxzL3BzX3N0YXR1cy5oIgogI2luY2x1ZGUg InV0aWxzL3RpbWVvdXQuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKKyNpbmNs dWRlICJyZXBsaWNhdGlvbi9zbG90LmgiCiAKIC8qIFVzZXItc2V0dGFibGUgR1VDIHBhcmFt ZXRlcnMgKi8KIGludAkJCXZhY3V1bV9kZWZlcl9jbGVhbnVwX2FnZTsKQEAgLTQ3NSw2ICs0 NzYsNyBAQCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhWaXJ0dWFsWElEcyhWaXJ0dWFs VHJhbnNhY3Rpb25JZCAqd2FpdGxpc3QsCiAgKi8KIHZvaWQKIFJlc29sdmVSZWNvdmVyeUNv bmZsaWN0V2l0aFNuYXBzaG90KFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6 b24sCisJCQkJCQkJCQlib29sIGxvZ2ljYWxDb25mbGljdFBvc3NpYmxlLAogCQkJCQkJCQkJ UmVsRmlsZUxvY2F0b3IgbG9jYXRvcikKIHsKIAlWaXJ0dWFsVHJhbnNhY3Rpb25JZCAqYmFj a2VuZHM7CkBAIC00OTksNiArNTAxLDkgQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRo U25hcHNob3QoVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKIAkJCQkJ CQkJCQkgICBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9ULAogCQkJCQkJCQkJ CSAgIFdBSVRfRVZFTlRfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QsCiAJCQkJCQkJCQkJ ICAgdHJ1ZSk7CisKKwlpZiAobG9naWNhbENvbmZsaWN0UG9zc2libGUpCisJCUludmFsaWRh dGVDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3RzKGxvY2F0b3IuZGJPaWQsIHNu YXBzaG90Q29uZmxpY3RIb3Jpem9uKTsKIH0KIAogLyoKQEAgLTUwNyw2ICs1MTIsNyBAQCBS ZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdChUcmFuc2FjdGlvbklkIHNuYXBz aG90Q29uZmxpY3RIb3Jpem9uLAogICovCiB2b2lkCiBSZXNvbHZlUmVjb3ZlcnlDb25mbGlj dFdpdGhTbmFwc2hvdEZ1bGxYaWQoRnVsbFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGlj dEhvcml6b24sCisJCQkJCQkJCQkJICAgYm9vbCBsb2dpY2FsQ29uZmxpY3RQb3NzaWJsZSwK IAkJCQkJCQkJCQkgICBSZWxGaWxlTG9jYXRvciBsb2NhdG9yKQogewogCS8qCkBAIC01MjUs NyArNTMxLDkgQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3RGdWxsWGlk KEZ1bGxUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3IKIAkJVHJhbnNhY3Rpb25J ZCB0cnVuY2F0ZWQ7CiAKIAkJdHJ1bmNhdGVkID0gWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklk KHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uKTsKLQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RX aXRoU25hcHNob3QodHJ1bmNhdGVkLCBsb2NhdG9yKTsKKwkJUmVzb2x2ZVJlY292ZXJ5Q29u ZmxpY3RXaXRoU25hcHNob3QodHJ1bmNhdGVkLAorCQkJCQkJCQkJCQlsb2dpY2FsQ29uZmxp Y3RQb3NzaWJsZSwKKwkJCQkJCQkJCQkJbG9jYXRvcik7CiAJfQogfQogCkBAIC0xNDg2LDYg KzE0OTQsOSBAQCBnZXRfcmVjb3ZlcnlfY29uZmxpY3RfZGVzYyhQcm9jU2lnbmFsUmVhc29u IHJlYXNvbikKIAkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9UOgog CQkJcmVhc29uRGVzYyA9IF8oInJlY292ZXJ5IGNvbmZsaWN0IG9uIHNuYXBzaG90Iik7CiAJ CQlicmVhazsKKwkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9U OgorCQkJcmVhc29uRGVzYyA9IF8oInJlY292ZXJ5IGNvbmZsaWN0IG9uIHJlcGxpY2F0aW9u IHNsb3QiKTsKKwkJCWJyZWFrOwogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1Rf U1RBUlRVUF9ERUFETE9DSzoKIAkJCXJlYXNvbkRlc2MgPSBfKCJyZWNvdmVyeSBjb25mbGlj dCBvbiBidWZmZXIgZGVhZGxvY2siKTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCmlu ZGV4IDAxZDI2NGI1YWIuLjA1ZGE4M2JmNWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rj b3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKQEAgLTI0 ODIsNiArMjQ4Miw5IEBAIGVycmRldGFpbF9yZWNvdmVyeV9jb25mbGljdCh2b2lkKQogCQlj YXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1Q6CiAJCQllcnJkZXRhaWwo IlVzZXIgcXVlcnkgbWlnaHQgaGF2ZSBuZWVkZWQgdG8gc2VlIHJvdyB2ZXJzaW9ucyB0aGF0 IG11c3QgYmUgcmVtb3ZlZC4iKTsKIAkJCWJyZWFrOworCQljYXNlIFBST0NTSUdfUkVDT1ZF UllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Q6CisJCQllcnJkZXRhaWwoIlVzZXIgd2FzIHVzaW5n IHRoZSBsb2dpY2FsIHNsb3QgdGhhdCBtdXN0IGJlIGRyb3BwZWQuIik7CisJCQlicmVhazsK IAkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NUQVJUVVBfREVBRExPQ0s6CiAJ CQllcnJkZXRhaWwoIlVzZXIgdHJhbnNhY3Rpb24gY2F1c2VkIGJ1ZmZlciBkZWFkbG9jayB3 aXRoIHJlY292ZXJ5LiIpOwogCQkJYnJlYWs7CkBAIC0zMDUxLDYgKzMwNTQsMjUgQEAgUmVj b3ZlcnlDb25mbGljdEludGVycnVwdChQcm9jU2lnbmFsUmVhc29uIHJlYXNvbikKIAkJCWNh c2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0NLOgogCQkJY2FzZSBQUk9DU0lHX1JF Q09WRVJZX0NPTkZMSUNUX1RBQkxFU1BBQ0U6CiAJCQljYXNlIFBST0NTSUdfUkVDT1ZFUllf Q09ORkxJQ1RfU05BUFNIT1Q6CisJCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1Rf TE9HSUNBTFNMT1Q6CisJCQkJLyoKKwkJCQkgKiBGb3IgY29uZmxpY3RzIHRoYXQgcmVxdWly ZSBhIGxvZ2ljYWwgc2xvdCB0byBiZSBpbnZhbGlkYXRlZCwgdGhlCisJCQkJICogcmVxdWly ZW1lbnQgaXMgZm9yIHRoZSBzaWduYWwgcmVjZWl2ZXIgdG8gcmVsZWFzZSB0aGUgc2xvdCwK KwkJCQkgKiBzbyB0aGF0IGl0IGNvdWxkIGJlIGludmFsaWRhdGVkIGJ5IHRoZSBzaWduYWwg c2VuZGVyLiBTbyBmb3IKKwkJCQkgKiBub3JtYWwgYmFja2VuZHMsIHRoZSB0cmFuc2FjdGlv biBzaG91bGQgYmUgYWJvcnRlZCwganVzdAorCQkJCSAqIGxpa2UgZm9yIG90aGVyIHJlY292 ZXJ5IGNvbmZsaWN0cy4gQnV0IGlmIGl0J3Mgd2Fsc2VuZGVyIG9uCisJCQkJICogc3RhbmRi eSwgdGhlbiBpdCBoYXMgdG8gYmUga2lsbGVkIHNvIGFzIHRvIHJlbGVhc2UgYW4KKwkJCQkg KiBhY3F1aXJlZCBsb2dpY2FsIHNsb3QuCisJCQkJICovCisJCQkJaWYgKGFtX2Nhc2NhZGlu Z193YWxzZW5kZXIgJiYKKwkJCQkJcmVhc29uID09IFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJ Q1RfTE9HSUNBTFNMT1QgJiYKKwkJCQkJTXlSZXBsaWNhdGlvblNsb3QgJiYgU2xvdElzTG9n aWNhbChNeVJlcGxpY2F0aW9uU2xvdCkpCisJCQkJeworCQkJCQlSZWNvdmVyeUNvbmZsaWN0 UGVuZGluZyA9IHRydWU7CisJCQkJCVF1ZXJ5Q2FuY2VsUGVuZGluZyA9IHRydWU7CisJCQkJ CUludGVycnVwdFBlbmRpbmcgPSB0cnVlOworCQkJCQlicmVhazsKKwkJCQl9CiAKIAkJCQkv KgogCQkJCSAqIElmIHdlIGFyZW4ndCBpbiBhIHRyYW5zYWN0aW9uIGFueSBsb25nZXIgdGhl biBpZ25vcmUuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0 YXRfZGF0YWJhc2UuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRh YmFzZS5jCmluZGV4IDI5MDA4NmZjMjIuLjdhODkwOWQ4YjkgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jCkBAIC0xMDksNiArMTA5LDkg QEAgcGdzdGF0X3JlcG9ydF9yZWNvdmVyeV9jb25mbGljdChpbnQgcmVhc29uKQogCQljYXNl IFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfQlVGRkVSUElOOgogCQkJZGJlbnRyeS0+Y29u ZmxpY3RfYnVmZmVycGluKys7CiAJCQlicmVhazsKKwkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZ X0NPTkZMSUNUX0xPR0lDQUxTTE9UOgorCQkJZGJlbnRyeS0+Y29uZmxpY3RfbG9naWNhbHNs b3QrKzsKKwkJCWJyZWFrOwogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU1RB UlRVUF9ERUFETE9DSzoKIAkJCWRiZW50cnktPmNvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2sr KzsKIAkJCWJyZWFrOwpAQCAtMzg3LDYgKzM5MCw3IEBAIHBnc3RhdF9kYXRhYmFzZV9mbHVz aF9jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwgYm9vbCBub3dhaXQpCiAJUEdTVEFU X0FDQ1VNX0RCQ09VTlQoY29uZmxpY3RfdGFibGVzcGFjZSk7CiAJUEdTVEFUX0FDQ1VNX0RC Q09VTlQoY29uZmxpY3RfbG9jayk7CiAJUEdTVEFUX0FDQ1VNX0RCQ09VTlQoY29uZmxpY3Rf c25hcHNob3QpOworCVBHU1RBVF9BQ0NVTV9EQkNPVU5UKGNvbmZsaWN0X2xvZ2ljYWxzbG90 KTsKIAlQR1NUQVRfQUNDVU1fREJDT1VOVChjb25mbGljdF9idWZmZXJwaW4pOwogCVBHU1RB VF9BQ0NVTV9EQkNPVU5UKGNvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2spOwogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCmluZGV4IDQ2Zjk4ZmQ2N2YuLjQxZWI2MjU2ZWEg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0xMDU1LDYgKzEwNTUs OCBAQCBQR19TVEFUX0dFVF9EQkVOVFJZX0lOVDY0KHhhY3RfY29tbWl0KQogLyogcGdfc3Rh dF9nZXRfZGJfeGFjdF9yb2xsYmFjayAqLwogUEdfU1RBVF9HRVRfREJFTlRSWV9JTlQ2NCh4 YWN0X3JvbGxiYWNrKQogCisvKiBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9sb2dpY2Fsc2xv dCAqLworUEdfU1RBVF9HRVRfREJFTlRSWV9JTlQ2NChjb25mbGljdF9sb2dpY2Fsc2xvdCkK IAogRGF0dW0KIHBnX3N0YXRfZ2V0X2RiX3N0YXRfcmVzZXRfdGltZShQR19GVU5DVElPTl9B UkdTKQpAQCAtMTA4OCw2ICsxMDkwLDcgQEAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYWxs KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJlc3VsdCA9IChpbnQ2NCkgKGRiZW50cnktPmNvbmZs aWN0X3RhYmxlc3BhY2UgKwogCQkJCQkJICBkYmVudHJ5LT5jb25mbGljdF9sb2NrICsKIAkJ CQkJCSAgZGJlbnRyeS0+Y29uZmxpY3Rfc25hcHNob3QgKworCQkJCQkJICBkYmVudHJ5LT5j b25mbGljdF9sb2dpY2Fsc2xvdCArCiAJCQkJCQkgIGRiZW50cnktPmNvbmZsaWN0X2J1ZmZl cnBpbiArCiAJCQkJCQkgIGRiZW50cnktPmNvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2spOwog CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA5OGQ5MGQ5MzM4Li4yMWRkNjVhNDgz IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTU1NDYsNiArNTU0NiwxMSBAQAog ICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zbmFwc2hvdCcsIHByb3Zv bGF0aWxlID0+ICdzJywKICAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdp bnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCiAgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRf ZGJfY29uZmxpY3Rfc25hcHNob3QnIH0sCit7IG9pZCA9PiAnOTkwMScsCisgIGRlc2NyID0+ ICdzdGF0aXN0aWNzOiByZWNvdmVyeSBjb25mbGljdHMgaW4gZGF0YWJhc2UgY2F1c2VkIGJ5 IGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCcsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0 X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9w YXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAn b2lkJywKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF9kYl9jb25mbGljdF9sb2dpY2Fsc2xv dCcgfSwKIHsgb2lkID0+ICczMDY4JywKICAgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IHJlY292 ZXJ5IGNvbmZsaWN0cyBpbiBkYXRhYmFzZSBjYXVzZWQgYnkgc2hhcmVkIGJ1ZmZlciBwaW4n LAogICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9kYl9jb25mbGljdF9idWZmZXJwaW4nLCBw cm92b2xhdGlsZSA9PiAncycsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaCBi L3NyYy9pbmNsdWRlL3Bnc3RhdC5oCmluZGV4IGEzZGY4ZDI3YzMuLjdmZmNlODRkMDcgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Bnc3Rh dC5oCkBAIC0yOTEsNiArMjkxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXREQkVu dHJ5CiAJUGdTdGF0X0NvdW50ZXIgY29uZmxpY3RfdGFibGVzcGFjZTsKIAlQZ1N0YXRfQ291 bnRlciBjb25mbGljdF9sb2NrOwogCVBnU3RhdF9Db3VudGVyIGNvbmZsaWN0X3NuYXBzaG90 OworCVBnU3RhdF9Db3VudGVyIGNvbmZsaWN0X2xvZ2ljYWxzbG90OwogCVBnU3RhdF9Db3Vu dGVyIGNvbmZsaWN0X2J1ZmZlcnBpbjsKIAlQZ1N0YXRfQ291bnRlciBjb25mbGljdF9zdGFy dHVwX2RlYWRsb2NrOwogCVBnU3RhdF9Db3VudGVyIHRlbXBfZmlsZXM7CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmggYi9zcmMvaW5jbHVkZS9yZXBsaWNh dGlvbi9zbG90LmgKaW5kZXggNjVmMmM3NDIzOS4uMGVkMWQ4YWYyOCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL3Nsb3QuaApAQCAtMjE2LDYgKzIxNiw3IEBAIGV4dGVybiBYTG9nUmVjUHRyIFJl cGxpY2F0aW9uU2xvdHNDb21wdXRlTG9naWNhbFJlc3RhcnRMU04odm9pZCk7CiBleHRlcm4g Ym9vbCBSZXBsaWNhdGlvblNsb3RzQ291bnREQlNsb3RzKE9pZCBkYm9pZCwgaW50ICpuc2xv dHMsIGludCAqbmFjdGl2ZSk7CiBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RzRHJvcERC U2xvdHMoT2lkIGRib2lkKTsKIGV4dGVybiBib29sIEludmFsaWRhdGVPYnNvbGV0ZVJlcGxp Y2F0aW9uU2xvdHMoWExvZ1NlZ05vIG9sZGVzdFNlZ25vKTsKK2V4dGVybiB2b2lkIEludmFs aWRhdGVDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3RzKE9pZCBkYm9pZCwgVHJh bnNhY3Rpb25JZCB4aWQpOwogZXh0ZXJuIFJlcGxpY2F0aW9uU2xvdCAqU2VhcmNoTmFtZWRS ZXBsaWNhdGlvblNsb3QoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBuZWVkX2xvY2spOwogZXh0 ZXJuIGludAlSZXBsaWNhdGlvblNsb3RJbmRleChSZXBsaWNhdGlvblNsb3QgKnNsb3QpOwog ZXh0ZXJuIGJvb2wgUmVwbGljYXRpb25TbG90TmFtZShpbnQgaW5kZXgsIE5hbWUgbmFtZSk7 CkBAIC0yMjcsNSArMjI4LDYgQEAgZXh0ZXJuIHZvaWQgQ2hlY2tQb2ludFJlcGxpY2F0aW9u U2xvdHModm9pZCk7CiAKIGV4dGVybiB2b2lkIENoZWNrU2xvdFJlcXVpcmVtZW50cyh2b2lk KTsKIGV4dGVybiB2b2lkIENoZWNrU2xvdFBlcm1pc3Npb25zKHZvaWQpOworZXh0ZXJuIHZv aWQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoTG9naWNhbFNsb3RzKE9pZCBkYm9pZCwg VHJhbnNhY3Rpb25JZCB4aWQsIGNoYXIgKnJlYXNvbik7CiAKICNlbmRpZgkJCQkJCQkvKiBT TE9UX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5o IGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgKaW5kZXggZWU2MzY5MDBmMy4u NTYwOTZiZDNlMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFs LmgKKysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgKQEAgLTQxLDYgKzQx LDcgQEAgdHlwZWRlZiBlbnVtCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9UQUJMRVNQ QUNFLAogCVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9DSywKIAlQUk9DU0lHX1JFQ09W RVJZX0NPTkZMSUNUX1NOQVBTSE9ULAorCVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9H SUNBTFNMT1QsCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9CVUZGRVJQSU4sCiAJUFJP Q1NJR19SRUNPVkVSWV9DT05GTElDVF9TVEFSVFVQX0RFQURMT0NLLAogCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnkuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uv c3RhbmRieS5oCmluZGV4IGU0NmM5MzRjNTYuLjJmNjJmZTVmYzggMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oCisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uv c3RhbmRieS5oCkBAIC0zMCw4ICszMCwxMCBAQCBleHRlcm4gdm9pZCBJbml0UmVjb3ZlcnlU cmFuc2FjdGlvbkVudmlyb25tZW50KHZvaWQpOwogZXh0ZXJuIHZvaWQgU2h1dGRvd25SZWNv dmVyeVRyYW5zYWN0aW9uRW52aXJvbm1lbnQodm9pZCk7CiAKIGV4dGVybiB2b2lkIFJlc29s dmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KFRyYW5zYWN0aW9uSWQgc25hcHNob3RD b25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCQlib29sIGxvZ2ljYWxDb25mbGljdFBvc3Np YmxlLAogCQkJCQkJCQkJCQkJUmVsRmlsZUxvY2F0b3IgbG9jYXRvcik7CiBleHRlcm4gdm9p ZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdEZ1bGxYaWQoRnVsbFRyYW5z YWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCQkJICAgYm9v bCBsb2dpY2FsQ29uZmxpY3RQb3NzaWJsZSwKIAkJCQkJCQkJCQkJCQkgICBSZWxGaWxlTG9j YXRvciBsb2NhdG9yKTsKIGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0 aFRhYmxlc3BhY2UoT2lkIHRzaWQpOwogZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29u ZmxpY3RXaXRoRGF0YWJhc2UoT2lkIGRiaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1 bGVzLm91dAppbmRleCBmYjlmOTM2ZDQzLi4xY2M2MmM0NDdkIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMTg2OCw3ICsxODY4LDggQEAgcGdfc3RhdF9kYXRh YmFzZV9jb25mbGljdHN8IFNFTEVDVCBkLm9pZCBBUyBkYXRpZCwKICAgICBwZ19zdGF0X2dl dF9kYl9jb25mbGljdF9sb2NrKGQub2lkKSBBUyBjb25mbF9sb2NrLAogICAgIHBnX3N0YXRf Z2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90KGQub2lkKSBBUyBjb25mbF9zbmFwc2hvdCwKICAg ICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9idWZmZXJwaW4oZC5vaWQpIEFTIGNvbmZsX2J1 ZmZlcnBpbiwKLSAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zdGFydHVwX2RlYWRsb2Nr KGQub2lkKSBBUyBjb25mbF9kZWFkbG9jaworICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0 X3N0YXJ0dXBfZGVhZGxvY2soZC5vaWQpIEFTIGNvbmZsX2RlYWRsb2NrLAorICAgIHBnX3N0 YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90KGQub2lkKSBBUyBjb25mbF9hY3RpdmVf bG9naWNhbHNsb3QKICAgIEZST00gcGdfZGF0YWJhc2UgZDsKIHBnX3N0YXRfZ3NzYXBpfCBT RUxFQ1Qgcy5waWQsCiAgICAgcy5nc3NfYXV0aCBBUyBnc3NfYXV0aGVudGljYXRlZCwKLS0g CjIuMzQuMQoK --------------3T3Kqsei9cUCGxvjVj1HQucN Content-Type: text/plain; charset=UTF-8; name="v33-0001-Add-info-in-WAL-records-in-preparation-for-logic.patch" Content-Disposition: attachment; filename*0="v33-0001-Add-info-in-WAL-records-in-preparation-for-logic.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkMGRmYWY2ZTkzZjQ3NzFkODQ5MDczYWJjYWI1ZTY1YWFjMGJlOTIxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyMCBEZWMgMjAyMiAwODozMjowNCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMzIDEvNl0gQWRkIGluZm8gaW4gV0FMIHJlY29yZHMgaW4gcHJlcGFyYXRpb24gZm9y IGxvZ2ljYWwKIHNsb3QgY29uZmxpY3QgaGFuZGxpbmcuCk1JTUUtVmVyc2lvbjogMS4wCkNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0CgpPdmVyYWxsIGRlc2lnbjoKCjEuIFdlIHdhbnQgdG8gZW5hYmxl IGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieXMsIGJ1dCByZXBsYXkgb2YgV0FMCmZyb20g dGhlIHByaW1hcnkgbWlnaHQgcmVtb3ZlIGRhdGEgdGhhdCBpcyBuZWVkZWQgYnkgbG9naWNh bCBkZWNvZGluZywKY2F1c2luZyByZXBsaWNhdGlvbiBjb25mbGljdHMgbXVjaCBhcyBob3Qg c3RhbmRieSBkb2VzLgoKMi4gT3VyIGNob3NlbiBzdHJhdGVneSBmb3IgZGVhbGluZyB3aXRo IHRoaXMgdHlwZSBvZiByZXBsaWNhdGlvbiBzbG90CmlzIHRvIGludmFsaWRhdGUgbG9naWNh bCBzbG90cyBmb3Igd2hpY2ggbmVlZGVkIGRhdGEgaGFzIGJlZW4gcmVtb3ZlZC4KCjMuIFRv IGRvIHRoaXMgd2UgbmVlZCB0aGUgbGF0ZXN0UmVtb3ZlZFhpZCBmb3IgZWFjaCBjaGFuZ2Us IGp1c3QgYXMgd2UKZG8gZm9yIHBoeXNpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cywgYnV0 IHdlIGFsc28gbmVlZCB0byBrbm93CndoZXRoZXIgYW55IHBhcnRpY3VsYXIgY2hhbmdlIHdh cyB0byBkYXRhIHRoYXQgbG9naWNhbCByZXBsaWNhdGlvbgptaWdodCBhY2Nlc3MuCgo0LiBX ZSBjYW4ndCByZWx5IG9uIHRoZSBzdGFuZGJ5J3MgcmVsY2FjaGUgZW50cmllcyBmb3IgdGhp cyBwdXJwb3NlIGluCmFueSB3YXksIGJlY2F1c2UgdGhlIFdBTCByZWNvcmQgdGhhdCBjYXVz ZXMgdGhlIHByb2JsZW0gbWlnaHQgYmUKcmVwbGF5ZWQgYmVmb3JlIHRoZSBzdGFuZGJ5IGV2 ZW4gcmVhY2hlcyBjb25zaXN0ZW5jeS4KCjUuIFRoZXJlZm9yZSBldmVyeSBXQUwgcmVjb3Jk IHRoYXQgcG90ZW50aWFsbHkgcmVtb3ZlcyBkYXRhIGZyb20gdGhlCmluZGV4IG9yIGhlYXAg bXVzdCBjYXJyeSBhIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCBpdCBpcyBvbmUK dGhhdCBtaWdodCBiZSBhY2Nlc3NlZCBkdXJpbmcgbG9naWNhbCBkZWNvZGluZy4KCldoeSBk byB3ZSBuZWVkIHRoaXMgZm9yIGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieT8KCkZpcnN0 LCBsZXQncyBmb3JnZXQgYWJvdXQgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5IGFuZCBy ZWNhbGwgdGhhdApvbiBhIHByaW1hcnkgZGF0YWJhc2UsIGFueSBjYXRhbG9nIHJvd3MgdGhh dCBtYXkgYmUgbmVlZGVkIGJ5IGEgbG9naWNhbApkZWNvZGluZyByZXBsaWNhdGlvbiBzbG90 IGFyZSBub3QgcmVtb3ZlZC4KClRoaXMgaXMgZG9uZSB0aGFua3MgdG8gdGhlIGNhdGFsb2df eG1pbiBhc3NvY2lhdGVkIHdpdGggdGhlIGxvZ2ljYWwKcmVwbGljYXRpb24gc2xvdC4KCkJ1 dCwgd2l0aCBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnksIGluIHRoZSBmb2xsb3dpbmcg Y2FzZXM6CgotIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIGlzIG9mZgotIGhvdF9zdGFuZGJ5X2Zl ZWRiYWNrIGlzIG9uIGJ1dCB0aGVyZSBpcyBubyBhIHBoeXNpY2FsIHNsb3QgYmV0d2Vlbgog IHRoZSBwcmltYXJ5IGFuZCB0aGUgc3RhbmRieS4gVGhlbiwgaG90X3N0YW5kYnlfZmVlZGJh Y2sgd2lsbCB3b3JrLAogIGJ1dCBvbmx5IHdoaWxlIHRoZSBjb25uZWN0aW9uIGlzIGFsaXZl IChmb3IgZXhhbXBsZSBhIG5vZGUgcmVzdGFydAogIHdvdWxkIGJyZWFrIGl0KQoKVGhlbiwg dGhlIHByaW1hcnkgbWF5IGRlbGV0ZSBzeXN0ZW0gY2F0YWxvZyByb3dzIHRoYXQgY291bGQg YmUgbmVlZGVkCmJ5IHRoZSBsb2dpY2FsIGRlY29kaW5nIG9uIHRoZSBzdGFuZGJ5IChhcyBp dCBkb2VzIG5vdCBrbm93IGFib3V0IHRoZQpjYXRhbG9nX3htaW4gb24gdGhlIHN0YW5kYnkp LgoKU28sIGl04oCZcyBtYW5kYXRvcnkgdG8gaWRlbnRpZnkgdGhvc2Ugcm93cyBhbmQgaW52 YWxpZGF0ZSB0aGUgc2xvdHMKdGhhdCBtYXkgbmVlZCB0aGVtIGlmIGFueS4gSWRlbnRpZnlp bmcgdGhvc2Ugcm93cyBpcyB0aGUgcHVycG9zZSBvZgp0aGlzIGNvbW1pdC4KCkltcGxlbWVu dGF0aW9uOgoKV2hlbiBhIFdBTCByZXBsYXkgb24gc3RhbmRieSBpbmRpY2F0ZXMgdGhhdCBh IGNhdGFsb2cgdGFibGUgdHVwbGUgaXMKdG8gYmUgZGVsZXRlZCBieSBhbiB4aWQgdGhhdCBp cyBncmVhdGVyIHRoYW4gYSBsb2dpY2FsIHNsb3QncwpjYXRhbG9nX3htaW4sIHRoZW4gdGhh dCBtZWFucyB0aGUgc2xvdCdzIGNhdGFsb2dfeG1pbiBjb25mbGljdHMgd2l0aAp0aGUgeGlk LCBhbmQgd2UgbmVlZCB0byBoYW5kbGUgdGhlIGNvbmZsaWN0LiBXaGlsZSBzdWJzZXF1ZW50 IGNvbW1pdHMKd2lsbCBkbyB0aGUgYWN0dWFsIGNvbmZsaWN0IGhhbmRsaW5nLCB0aGlzIGNv bW1pdCBhZGRzIGEgbmV3IGZpZWxkCmxvZ2ljYWxDb25mbGljdFBvc3NpYmxlICBpbiBzdWNo IFdBTCByZWNvcmRzIChhbmQgYSBuZXcgYml0IHNldCBpbiB0aGUKeGxfaGVhcF92aXNpYmxl IGZsYWdzIGZpZWxkKSwgdGhhdCBpcyB0cnVlIGZvciBjYXRhbG9nIHRhYmxlcywgc28gYXMg dG8KYXJyYW5nZSBmb3IgY29uZmxpY3QgaGFuZGxpbmcuCgpBdXRob3I6IEFuZHJlcyBGcmV1 bmQgKGluIGFuIG9sZGVyIHZlcnNpb24pLCBBbWl0IEtoYW5kZWthciwgQmVydHJhbmQKRHJv dXZvdApSZXZpZXdlZC1CeTogQmVydHJhbmQgRHJvdXZvdCwgQW5kcmVzIEZyZXVuZCwgUm9i ZXJ0IEhhYXMsIEZhYnJpemlvIGRlClJveWVzIE1lbGxvCi0tLQogY29udHJpYi90ZXN0X2Rl Y29kaW5nL2V4cGVjdGVkL2RkbC5vdXQgIHwgNjUgKysrKysrKysrKysrKysrKysrKysrKysr KwogY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9kZGwuc3FsICAgICAgIHwgMjMgKysrKysr KysrCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgfCAxMSArKysr Kwogc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMgIHwgIDIgKy0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMgICAgICB8ICAyICsKIHNyYy9iYWNr ZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYyAgICB8ICAyICsKIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgICB8ICA2ICsrLQogc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvcHJ1bmVoZWFwLmMgICAgIHwgIDIgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmlzaWJpbGl0eW1hcC5jIHwgIDMgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 cGFnZS5jICAgICB8ICA0ICsrCiBzcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1 bS5jICAgfCAgMiArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMgICAgICAgICAgICAg fCAxMCArKy0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgfCA1 NSArKysrKysrKysrKysrKysrKysrKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5o ICAgICAgICAgICB8ICA2ICsrLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5oICAg ICAgICAgIHwgIDMgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oICAgICAg ICB8ICA4ICstLQogc3JjL2luY2x1ZGUvYWNjZXNzL25idHhsb2cuaCAgICAgICAgICAgIHwg IDYgKystCiBzcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxvZy5oICAgICAgICAgICAgfCAgMSAr CiBzcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCAgfCAgOSArKy0tCiBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2luZGV4LmggICAgICAgICAgfCAgMiArCiBzcmMvaW5j bHVkZS91dGlscy9yZWwuaCAgICAgICAgICAgICAgICAgfCAxNCArKysrKy0KIDIxIGZpbGVz IGNoYW5nZWQsIDIxNSBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKICAyNy4zJSBj b250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvCiAgMTEuNyUgY29udHJpYi90ZXN0X2Rl Y29kaW5nL3NxbC8KICAgNC41JSBkb2Mvc3JjL3NnbWwvCiAgIDYuMCUgc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvCiAgIDQuNiUgc3JjL2JhY2tlbmQvYWNjZXNzLwogICAzLjAlIHNyYy9i YWNrZW5kL2NhdGFsb2cvCiAgMTUuOSUgc3JjL2JhY2tlbmQvY29tbWFuZHMvCiAgMjEuMCUg c3JjL2luY2x1ZGUvYWNjZXNzLwogICA0LjYlIHNyYy9pbmNsdWRlL3V0aWxzLwoKZGlmZiAt LWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9kZGwub3V0IGIvY29udHJp Yi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL2RkbC5vdXQKaW5kZXggOWEyOGI1ZGRjNS4uNDhm YjQ0YzU3NSAxMDA2NDQKLS0tIGEvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL2Rk bC5vdXQKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL2RkbC5vdXQKQEAg LTQ4Myw2ICs0ODMsNyBAQCBDUkVBVEUgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgKAog KQogV0lUSCAodXNlcl9jYXRhbG9nX3RhYmxlID0gdHJ1ZSkKIDsKK0NSRUFURSBJTkRFWCBy ZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgxIG9uIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0 aW9uKTsKIFxkKyByZXBsaWNhdGlvbl9tZXRhZGF0YQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucmVwbGljYXRpb25f bWV0YWRhdGEiCiAgIENvbHVtbiAgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUg fCAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgfCBT dG9yYWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIApAQCAtNDkyLDExICs0OTMs MTkgQEAgV0lUSCAodXNlcl9jYXRhbG9nX3RhYmxlID0gdHJ1ZSkKICBvcHRpb25zICB8IHRl eHRbXSAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICAgIHwg CiBJbmRleGVzOgogICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9wa2V5IiBQUklNQVJZIEtF WSwgYnRyZWUgKGlkKQorICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgxIiBidHJlZSAo cmVsYXRpb24pCiBPcHRpb25zOiB1c2VyX2NhdGFsb2dfdGFibGU9dHJ1ZQogCitTRUxFQ1Qg Ym9vbF9hbmQoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRleCB3aGVyZSBpbmRyZWxp ZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNzOworIGJvb2xfYW5kIAorLS0t LS0tLS0tLQorIHQKKygxIHJvdykKKwogSU5TRVJUIElOVE8gcmVwbGljYXRpb25fbWV0YWRh dGEocmVsYXRpb24sIG9wdGlvbnMpCiBWQUxVRVMgKCdmb28nLCBBUlJBWVsnYScsICdiJ10p OwogQUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgUkVTRVQgKHVzZXJfY2F0YWxv Z190YWJsZSk7CitDUkVBVEUgSU5ERVggcmVwbGljYXRpb25fbWV0YWRhdGFfaWR4MiBvbiBy ZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbik7CiBcZCsgcmVwbGljYXRpb25fbWV0YWRh dGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU YWJsZSAicHVibGljLnJlcGxpY2F0aW9uX21ldGFkYXRhIgogICBDb2x1bW4gIHwgIFR5cGUg ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0 ICAgICAgICAgICAgICAgICAgICAgIHwgU3RvcmFnZSAgfCBTdGF0cyB0YXJnZXQgfCBEZXNj cmlwdGlvbiAKQEAgLTUwNiwxMCArNTE1LDE5IEBAIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9u X21ldGFkYXRhIFJFU0VUICh1c2VyX2NhdGFsb2dfdGFibGUpOwogIG9wdGlvbnMgIHwgdGV4 dFtdICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAgICAgfCAK IEluZGV4ZXM6CiAgICAgInJlcGxpY2F0aW9uX21ldGFkYXRhX3BrZXkiIFBSSU1BUlkgS0VZ LCBidHJlZSAoaWQpCisgICAgInJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDEiIGJ0cmVlIChy ZWxhdGlvbikKKyAgICAicmVwbGljYXRpb25fbWV0YWRhdGFfaWR4MiIgYnRyZWUgKHJlbGF0 aW9uKQorCitTRUxFQ1QgYm9vbF9vcihpbmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBnX2luZGV4 IHdoZXJlIGluZHJlbGlkID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRhJzo6cmVnY2xhc3M7Cisg Ym9vbF9vciAKKy0tLS0tLS0tLQorIGYKKygxIHJvdykKIAogSU5TRVJUIElOVE8gcmVwbGlj YXRpb25fbWV0YWRhdGEocmVsYXRpb24sIG9wdGlvbnMpCiBWQUxVRVMgKCdiYXInLCBBUlJB WVsnYScsICdiJ10pOwogQUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgU0VUICh1 c2VyX2NhdGFsb2dfdGFibGUgPSB0cnVlKTsKK0NSRUFURSBJTkRFWCByZXBsaWNhdGlvbl9t ZXRhZGF0YV9pZHgzIG9uIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uKTsKIFxkKyBy ZXBsaWNhdGlvbl9tZXRhZGF0YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucmVwbGljYXRpb25fbWV0YWRhdGEiCiAg IENvbHVtbiAgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAg ICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgfCBTdG9yYWdlICB8IFN0 YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIApAQCAtNTE5LDE1ICs1MzcsNTIgQEAgQUxURVIg VEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgU0VUICh1c2VyX2NhdGFsb2dfdGFibGUgPSB0 cnVlKTsKICBvcHRpb25zICB8IHRleHRbXSAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGV4dGVu ZGVkIHwgICAgICAgICAgICAgIHwgCiBJbmRleGVzOgogICAgICJyZXBsaWNhdGlvbl9tZXRh ZGF0YV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQorICAgICJyZXBsaWNhdGlvbl9t ZXRhZGF0YV9pZHgxIiBidHJlZSAocmVsYXRpb24pCisgICAgInJlcGxpY2F0aW9uX21ldGFk YXRhX2lkeDIiIGJ0cmVlIChyZWxhdGlvbikKKyAgICAicmVwbGljYXRpb25fbWV0YWRhdGFf aWR4MyIgYnRyZWUgKHJlbGF0aW9uKQogT3B0aW9uczogdXNlcl9jYXRhbG9nX3RhYmxlPXRy dWUKIAorU0VMRUNUIGJvb2xfYW5kKGluZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdfaW5kZXgg d2hlcmUgaW5kcmVsaWQgPSAncmVwbGljYXRpb25fbWV0YWRhdGEnOjpyZWdjbGFzczsKKyBi b29sX2FuZCAKKy0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKIElOU0VSVCBJTlRPIHJlcGxp Y2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQogVkFMVUVTICgnYmx1YicsIE5V TEwpOworLS0gQWxzbyBjaGVja2luZyB0aGF0IGluZGlzdXNlcmNhdGFsb2cgaXMgc2V0IGNv cnJlY3RseSB3aGVuIGEgdGFibGUgaXMgY3JlYXRlZCB3aXRoIHVzZXJfY2F0YWxvZ190YWJs ZSA9IGZhbHNlCitDUkVBVEUgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGFfZmFsc2UgKAor ICAgIGlkIHNlcmlhbCBwcmltYXJ5IGtleSwKKyAgICByZWxhdGlvbiBuYW1lIE5PVCBOVUxM LAorICAgIG9wdGlvbnMgdGV4dFtdCispCitXSVRIICh1c2VyX2NhdGFsb2dfdGFibGUgPSBm YWxzZSkKKzsKK0NSRUFURSBJTkRFWCByZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxzZV9pZHgx IG9uIHJlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNlKHJlbGF0aW9uKTsKK1xkKyByZXBsaWNh dGlvbl9tZXRhZGF0YV9mYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucmVwbGljYXRpb25fbWV0YWRhdGFfZmFs c2UiCisgIENvbHVtbiAgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAg ICAgICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgICAgfCBT dG9yYWdlICB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0KKyBpZCAgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBu b3QgbnVsbCB8IG5leHR2YWwoJ3JlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNlX2lkX3NlcSc6 OnJlZ2NsYXNzKSB8IHBsYWluICAgIHwgICAgICAgICAgICAgIHwgCisgcmVsYXRpb24gfCBu YW1lICAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAg ICAgICB8IAorIG9wdGlvbnMgIHwgdGV4dFtdICB8ICAgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgZXh0ZW5kZWQgfCAgICAgICAgICAgICAgfCAKK0luZGV4ZXM6CisgICAgInJlcGxpY2F0 aW9uX21ldGFkYXRhX2ZhbHNlX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoaWQpCisgICAg InJlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNlX2lkeDEiIGJ0cmVlIChyZWxhdGlvbikKK09w dGlvbnM6IHVzZXJfY2F0YWxvZ190YWJsZT1mYWxzZQorCitTRUxFQ1QgYm9vbF9vcihpbmRp c3VzZXJjYXRhbG9nKSBmcm9tIHBnX2luZGV4IHdoZXJlIGluZHJlbGlkID0gJ3JlcGxpY2F0 aW9uX21ldGFkYXRhX2ZhbHNlJzo6cmVnY2xhc3M7CisgYm9vbF9vciAKKy0tLS0tLS0tLQor IGYKKygxIHJvdykKKwogLS0gbWFrZSBzdXJlIHJld3JpdGVzIGRvbid0IHdvcmsKIEFMVEVS IFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIEFERCBDT0xVTU4gcmV3cml0ZW1lb3Jub3Qg aW50OwogQUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgQUxURVIgQ09MVU1OIHJl d3JpdGVtZW9ybm90IFRZUEUgdGV4dDsKIEVSUk9SOiAgY2Fubm90IHJld3JpdGUgdGFibGUg InJlcGxpY2F0aW9uX21ldGFkYXRhIiB1c2VkIGFzIGEgY2F0YWxvZyB0YWJsZQogQUxURVIg VEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgU0VUICh1c2VyX2NhdGFsb2dfdGFibGUgPSBm YWxzZSk7CitDUkVBVEUgSU5ERVggcmVwbGljYXRpb25fbWV0YWRhdGFfaWR4NCBvbiByZXBs aWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbik7CiBcZCsgcmVwbGljYXRpb25fbWV0YWRhdGEK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU YWJsZSAicHVibGljLnJlcGxpY2F0aW9uX21ldGFkYXRhIgogICAgICBDb2x1bW4gICAgIHwg IFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgICAgICBE ZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgIHwgU3RvcmFnZSAgfCBTdGF0cyB0YXJnZXQg fCBEZXNjcmlwdGlvbiAKQEAgLTUzOCw4ICs1OTMsMTggQEAgQUxURVIgVEFCTEUgcmVwbGlj YXRpb25fbWV0YWRhdGEgU0VUICh1c2VyX2NhdGFsb2dfdGFibGUgPSBmYWxzZSk7CiAgcmV3 cml0ZW1lb3Jub3QgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAgICB8 ICAgICAgICAgICAgICB8IAogSW5kZXhlczoKICAgICAicmVwbGljYXRpb25fbWV0YWRhdGFf cGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChpZCkKKyAgICAicmVwbGljYXRpb25fbWV0YWRh dGFfaWR4MSIgYnRyZWUgKHJlbGF0aW9uKQorICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9p ZHgyIiBidHJlZSAocmVsYXRpb24pCisgICAgInJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDMi IGJ0cmVlIChyZWxhdGlvbikKKyAgICAicmVwbGljYXRpb25fbWV0YWRhdGFfaWR4NCIgYnRy ZWUgKHJlbGF0aW9uKQogT3B0aW9uczogdXNlcl9jYXRhbG9nX3RhYmxlPWZhbHNlCiAKK1NF TEVDVCBib29sX29yKGluZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdfaW5kZXggd2hlcmUgaW5k cmVsaWQgPSAncmVwbGljYXRpb25fbWV0YWRhdGEnOjpyZWdjbGFzczsKKyBib29sX29yIAor LS0tLS0tLS0tCisgZgorKDEgcm93KQorCiBJTlNFUlQgSU5UTyByZXBsaWNhdGlvbl9tZXRh ZGF0YShyZWxhdGlvbiwgb3B0aW9ucykKIFZBTFVFUyAoJ3phcGhvZCcsIE5VTEwpOwogU0VM RUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ3JlZ3Jlc3Npb25f c2xvdCcsIE5VTEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdza2lwLWVtcHR5LXhh Y3RzJywgJzEnKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvZGRs LnNxbCBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvZGRsLnNxbAppbmRleCA0Zjc2YmVk NzJjLi41MWJhYWM1YzRlIDEwMDY0NAotLS0gYS9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3Fs L2RkbC5zcWwKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9kZGwuc3FsCkBAIC0y NzYsMjkgKzI3Niw1MiBAQCBDUkVBVEUgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgKAog KQogV0lUSCAodXNlcl9jYXRhbG9nX3RhYmxlID0gdHJ1ZSkKIDsKKworQ1JFQVRFIElOREVY IHJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDEgb24gcmVwbGljYXRpb25fbWV0YWRhdGEocmVs YXRpb24pOworCiBcZCsgcmVwbGljYXRpb25fbWV0YWRhdGEKK1NFTEVDVCBib29sX2FuZChp bmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBnX2luZGV4IHdoZXJlIGluZHJlbGlkID0gJ3JlcGxp Y2F0aW9uX21ldGFkYXRhJzo6cmVnY2xhc3M7CiAKIElOU0VSVCBJTlRPIHJlcGxpY2F0aW9u X21ldGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQogVkFMVUVTICgnZm9vJywgQVJSQVlbJ2En LCAnYiddKTsKIAogQUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgUkVTRVQgKHVz ZXJfY2F0YWxvZ190YWJsZSk7CitDUkVBVEUgSU5ERVggcmVwbGljYXRpb25fbWV0YWRhdGFf aWR4MiBvbiByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbik7CiBcZCsgcmVwbGljYXRp b25fbWV0YWRhdGEKK1NFTEVDVCBib29sX29yKGluZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdf aW5kZXggd2hlcmUgaW5kcmVsaWQgPSAncmVwbGljYXRpb25fbWV0YWRhdGEnOjpyZWdjbGFz czsKIAogSU5TRVJUIElOVE8gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24sIG9wdGlv bnMpCiBWQUxVRVMgKCdiYXInLCBBUlJBWVsnYScsICdiJ10pOwogCiBBTFRFUiBUQUJMRSBy ZXBsaWNhdGlvbl9tZXRhZGF0YSBTRVQgKHVzZXJfY2F0YWxvZ190YWJsZSA9IHRydWUpOwor Q1JFQVRFIElOREVYIHJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDMgb24gcmVwbGljYXRpb25f bWV0YWRhdGEocmVsYXRpb24pOwogXGQrIHJlcGxpY2F0aW9uX21ldGFkYXRhCitTRUxFQ1Qg Ym9vbF9hbmQoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRleCB3aGVyZSBpbmRyZWxp ZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNzOwogCiBJTlNFUlQgSU5UTyBy ZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbiwgb3B0aW9ucykKIFZBTFVFUyAoJ2JsdWIn LCBOVUxMKTsKIAorLS0gQWxzbyBjaGVja2luZyB0aGF0IGluZGlzdXNlcmNhdGFsb2cgaXMg c2V0IGNvcnJlY3RseSB3aGVuIGEgdGFibGUgaXMgY3JlYXRlZCB3aXRoIHVzZXJfY2F0YWxv Z190YWJsZSA9IGZhbHNlCitDUkVBVEUgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGFfZmFs c2UgKAorICAgIGlkIHNlcmlhbCBwcmltYXJ5IGtleSwKKyAgICByZWxhdGlvbiBuYW1lIE5P VCBOVUxMLAorICAgIG9wdGlvbnMgdGV4dFtdCispCitXSVRIICh1c2VyX2NhdGFsb2dfdGFi bGUgPSBmYWxzZSkKKzsKKworQ1JFQVRFIElOREVYIHJlcGxpY2F0aW9uX21ldGFkYXRhX2Zh bHNlX2lkeDEgb24gcmVwbGljYXRpb25fbWV0YWRhdGFfZmFsc2UocmVsYXRpb24pOworXGQr IHJlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNlCitTRUxFQ1QgYm9vbF9vcihpbmRpc3VzZXJj YXRhbG9nKSBmcm9tIHBnX2luZGV4IHdoZXJlIGluZHJlbGlkID0gJ3JlcGxpY2F0aW9uX21l dGFkYXRhX2ZhbHNlJzo6cmVnY2xhc3M7CisKIC0tIG1ha2Ugc3VyZSByZXdyaXRlcyBkb24n dCB3b3JrCiBBTFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBBREQgQ09MVU1OIHJl d3JpdGVtZW9ybm90IGludDsKIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIEFM VEVSIENPTFVNTiByZXdyaXRlbWVvcm5vdCBUWVBFIHRleHQ7CiAKIEFMVEVSIFRBQkxFIHJl cGxpY2F0aW9uX21ldGFkYXRhIFNFVCAodXNlcl9jYXRhbG9nX3RhYmxlID0gZmFsc2UpOwor Q1JFQVRFIElOREVYIHJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDQgb24gcmVwbGljYXRpb25f bWV0YWRhdGEocmVsYXRpb24pOwogXGQrIHJlcGxpY2F0aW9uX21ldGFkYXRhCitTRUxFQ1Qg Ym9vbF9vcihpbmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBnX2luZGV4IHdoZXJlIGluZHJlbGlk ID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRhJzo6cmVnY2xhc3M7CiAKIElOU0VSVCBJTlRPIHJl cGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQogVkFMVUVTICgnemFwaG9k JywgTlVMTCk7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDkzMTZiODExYWMuLjQ1OTUzOWI3NjEg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9jYXRhbG9ncy5zZ21sCkBAIC00NDQ3LDYgKzQ0NDcsMTcgQEAgU0NSQU0tU0hBLTI1 NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8 cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+aW5k aXN1c2VyY2F0YWxvZzwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiB0cnVlLCB0aGUgaW5kZXggaXMgbGlu a2VkIHRvIGEgdGFibGUgdGhhdCBpcyBkZWNsYXJlZCBhcyBhbiBhZGRpdGlvbmFsCisgICAg ICAgY2F0YWxvZyB0YWJsZSBmb3IgcHVycG9zZXMgb2YgbG9naWNhbCByZXBsaWNhdGlvbiAo bWVhbnMgaGFzIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGV0YWJsZSI+PGxpdGVyYWw+dXNl cl9jYXRhbG9nX3RhYmxlPC9saXRlcmFsPjwvbGluaz4pCisgICAgICAgc2V0IHRvIHRydWUu CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPmluZGlzcmVwbGlkZW50PC9z dHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1v bi9yZWxvcHRpb25zLmMKaW5kZXggNzViNzM0NDg5MS4uNGI0MWY1ZTY4ZCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMKQEAgLTEyMCw3ICsxMjAsNyBAQCBz dGF0aWMgcmVsb3B0X2Jvb2wgYm9vbFJlbE9wdHNbXSA9CiAJCQlSRUxPUFRfS0lORF9IRUFQ LAogCQkJQWNjZXNzRXhjbHVzaXZlTG9jawogCQl9LAotCQlmYWxzZQorCQlIRUFQX0RFRkFV TFRfVVNFUl9DQVRBTE9HX1RBQkxFCiAJfSwKIAl7CiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lz dC9naXN0eGxvZy5jCmluZGV4IGNiNWFmZmEzZDIuLjZlMjYwZjlhYmEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2dpc3QvZ2lzdHhsb2cuYwpAQCAtNjA4LDYgKzYwOCw4IEBAIGdpc3RYTG9nUGFn ZVJldXNlKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEZ1bGxUcmFuc2FjdGlv bklkIGRlbGV0ZVhpZCkKIAkgKi8KIAogCS8qIFhMT0cgc3R1ZmYgKi8KKwl4bHJlY19yZXVz ZS5sb2dpY2FsQ29uZmxpY3RQb3NzaWJsZSA9CisJCVJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5M b2dpY2FsRGVjb2RpbmcocmVsKTsKIAl4bHJlY19yZXVzZS5sb2NhdG9yID0gcmVsLT5yZF9s b2NhdG9yOwogCXhscmVjX3JldXNlLmJsb2NrID0gYmxrbm87CiAJeGxyZWNfcmV1c2Uuc25h cHNob3RDb25mbGljdEhvcml6b24gPSBkZWxldGVYaWQ7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFz aC9oYXNoaW5zZXJ0LmMKaW5kZXggOWE5MjFlMzQxZS4uMThlYjA1MjI4MCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYwpAQCAtNDMyLDYgKzQzMiw4IEBAIF9oYXNo X3ZhY3V1bV9vbmVfcGFnZShSZWxhdGlvbiByZWwsIFJlbGF0aW9uIGhyZWwsIEJ1ZmZlciBt ZXRhYnVmLCBCdWZmZXIgYnVmKQogCQkJeGxfaGFzaF92YWN1dW1fb25lX3BhZ2UgeGxyZWM7 CiAJCQlYTG9nUmVjUHRyCXJlY3B0cjsKIAorCQkJeGxyZWMubG9naWNhbENvbmZsaWN0UG9z c2libGUgPQorCQkJCVJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcoaHJl bCk7CiAJCQl4bHJlYy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90Q29uZmxp Y3RIb3Jpem9uOwogCQkJeGxyZWMubnR1cGxlcyA9IG5kZWxldGFibGU7CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggNDI3NTZhOWU2ZC4uMzgzZmQ3NjkxOCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTY4MjcsNiArNjgyNyw4IEBAIGhlYXBfZnJl ZXplX2V4ZWN1dGVfcHJlcGFyZWQoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmZmVyLAogCQlz bmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IEZyZWV6ZUxpbWl0OwogCQlUcmFuc2FjdGlvbklk UmV0cmVhdChzbmFwc2hvdENvbmZsaWN0SG9yaXpvbik7CiAKKwkJeGxyZWMubG9naWNhbENv bmZsaWN0UG9zc2libGUgPQorCQkJUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNv ZGluZyhyZWwpOwogCQl4bHJlYy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90 Q29uZmxpY3RIb3Jpem9uOwogCQl4bHJlYy5ucGxhbnMgPSBucGxhbnM7CiAKQEAgLTgyNDQs NyArODI0Niw3IEBAIGJvdHRvbXVwX3NvcnRfYW5kX3NocmluayhUTV9JbmRleERlbGV0ZU9w ICpkZWxzdGF0ZSkKICAqIHVwZGF0ZSB0aGUgaGVhcCBwYWdlJ3MgTFNOLgogICovCiBYTG9n UmVjUHRyCi1sb2dfaGVhcF92aXNpYmxlKFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yLCBCdWZm ZXIgaGVhcF9idWZmZXIsIEJ1ZmZlciB2bV9idWZmZXIsCitsb2dfaGVhcF92aXNpYmxlKFJl bGF0aW9uIHJlbCwgQnVmZmVyIGhlYXBfYnVmZmVyLCBCdWZmZXIgdm1fYnVmZmVyLAogCQkJ CSBUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLCB1aW50OCB2bWZsYWdz KQogewogCXhsX2hlYXBfdmlzaWJsZSB4bHJlYzsKQEAgLTgyNTYsNiArODI1OCw4IEBAIGxv Z19oZWFwX3Zpc2libGUoUmVsRmlsZUxvY2F0b3IgcmxvY2F0b3IsIEJ1ZmZlciBoZWFwX2J1 ZmZlciwgQnVmZmVyIHZtX2J1ZmZlciwKIAogCXhscmVjLnNuYXBzaG90Q29uZmxpY3RIb3Jp em9uID0gc25hcHNob3RDb25mbGljdEhvcml6b247CiAJeGxyZWMuZmxhZ3MgPSB2bWZsYWdz OworCWlmIChSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nKHJlbCkpCisJ CXhscmVjLmZsYWdzIHw9IFZJU0lCSUxJVFlNQVBfT05fQ0FUQUxPR19BQ0NFU1NJQkxFX0lO X0xPR0lDQUxfREVDT0RJTkc7CiAJWExvZ0JlZ2luSW5zZXJ0KCk7CiAJWExvZ1JlZ2lzdGVy RGF0YSgoY2hhciAqKSAmeGxyZWMsIFNpemVPZkhlYXBWaXNpYmxlKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCA5MWM1ZjVlOWVmLi5iMmZjNGQ3MGZmIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtNDE4LDYgKzQxOCw4IEBA IGhlYXBfcGFnZV9wcnVuZShSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJ CXhsX2hlYXBfcHJ1bmUgeGxyZWM7CiAJCQlYTG9nUmVjUHRyCXJlY3B0cjsKIAorCQkJeGxy ZWMubG9naWNhbENvbmZsaWN0UG9zc2libGUgPQorCQkJCVJlbGF0aW9uSXNBY2Nlc3NpYmxl SW5Mb2dpY2FsRGVjb2RpbmcocmVsYXRpb24pOwogCQkJeGxyZWMuc25hcHNob3RDb25mbGlj dEhvcml6b24gPSBwcnN0YXRlLnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCQkJeGxyZWMu bnJlZGlyZWN0ZWQgPSBwcnN0YXRlLm5yZWRpcmVjdGVkOwogCQkJeGxyZWMubmRlYWQgPSBw cnN0YXRlLm5kZWFkOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlz aWJpbGl0eW1hcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5j CmluZGV4IDRlZDcwMjc1ZTIuLjBiZDczZjRkOWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92aXNpYmlsaXR5bWFwLmMKQEAgLTI4Myw4ICsyODMsNyBAQCB2aXNpYmlsaXR5bWFw X3NldChSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFwQnVm LAogCQkJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQocmVjcHRyKSkKIAkJCXsKIAkJCQlBc3Nl cnQoIUluUmVjb3ZlcnkpOwotCQkJCXJlY3B0ciA9IGxvZ19oZWFwX3Zpc2libGUocmVsLT5y ZF9sb2NhdG9yLCBoZWFwQnVmLCB2bUJ1ZiwKLQkJCQkJCQkJCQkgIGN1dG9mZl94aWQsIGZs YWdzKTsKKwkJCQlyZWNwdHIgPSBsb2dfaGVhcF92aXNpYmxlKHJlbCwgaGVhcEJ1Ziwgdm1C dWYsIGN1dG9mZl94aWQsIGZsYWdzKTsKIAogCQkJCS8qCiAJCQkJICogSWYgZGF0YSBjaGVj a3N1bXMgYXJlIGVuYWJsZWQgKG9yIHdhbF9sb2dfaGludHM9b24pLCB3ZQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRwYWdlLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idHBhZ2UuYwppbmRleCA2NWFhNDQ4OTNjLi5jYmVmYTZjZDg4IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2UuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2UuYwpAQCAtODM2LDYgKzgzNiw4IEBA IF9idF9sb2dfcmV1c2VfcGFnZShSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBG dWxsVHJhbnNhY3Rpb25JZCBzYWZleGlkKQogCSAqLwogCiAJLyogWExPRyBzdHVmZiAqLwor CXhscmVjX3JldXNlLmxvZ2ljYWxDb25mbGljdFBvc3NpYmxlID0KKwkJUmVsYXRpb25Jc0Fj Y2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpOwogCXhscmVjX3JldXNlLmxvY2F0b3Ig PSByZWwtPnJkX2xvY2F0b3I7CiAJeGxyZWNfcmV1c2UuYmxvY2sgPSBibGtubzsKIAl4bHJl Y19yZXVzZS5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNhZmV4aWQ7CkBAIC0xMzU4LDYg KzEzNjAsOCBAQCBfYnRfZGVsaXRlbXNfZGVsZXRlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1 ZiwKIAkJWExvZ1JlY1B0cglyZWNwdHI7CiAJCXhsX2J0cmVlX2RlbGV0ZSB4bHJlY19kZWxl dGU7CiAKKwkJeGxyZWNfZGVsZXRlLmxvZ2ljYWxDb25mbGljdFBvc3NpYmxlID0KKwkJCVJl bGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsKTsKIAkJeGxyZWNfZGVs ZXRlLnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uID0gc25hcHNob3RDb25mbGljdEhvcml6b247 CiAJCXhscmVjX2RlbGV0ZS5uZGVsZXRlZCA9IG5kZWxldGFibGU7CiAJCXhscmVjX2RlbGV0 ZS5udXBkYXRlZCA9IG51cGRhdGFibGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2 YWN1dW0uYwppbmRleCBhZDkwYjIxM2I5Li4xMjc0N2FlZTA5IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMKQEAgLTUwMyw2ICs1MDMsOCBAQCB2YWN1dW1SZWRp cmVjdEFuZFBsYWNlaG9sZGVyKFJlbGF0aW9uIGluZGV4LCBCdWZmZXIgYnVmZmVyKQogCXNw Z3hsb2dWYWN1dW1SZWRpcmVjdCB4bHJlYzsKIAlHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdDsK IAorCXhscmVjLmxvZ2ljYWxDb25mbGljdFBvc3NpYmxlID0KKwkJUmVsYXRpb25Jc0FjY2Vz c2libGVJbkxvZ2ljYWxEZWNvZGluZyhpbmRleCk7CiAJeGxyZWMublRvUGxhY2Vob2xkZXIg PSAwOwogCXhscmVjLnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uID0gSW52YWxpZFRyYW5zYWN0 aW9uSWQ7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYwppbmRleCA2MWYxZDM5MjZhLi5mNzU0MGY0MTAx IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9pbmRleC5jCkBAIC0xMjMsNyArMTIzLDggQEAgc3RhdGljIHZvaWQg VXBkYXRlSW5kZXhSZWxhdGlvbihPaWQgaW5kZXhvaWQsIE9pZCBoZWFwb2lkLAogCQkJCQkJ CQlib29sIGlzZXhjbHVzaW9uLAogCQkJCQkJCQlib29sIGltbWVkaWF0ZSwKIAkJCQkJCQkJ Ym9vbCBpc3ZhbGlkLAotCQkJCQkJCQlib29sIGlzcmVhZHkpOworCQkJCQkJCQlib29sIGlz cmVhZHksCisJCQkJCQkJCWJvb2wgaXNfdXNlcl9jYXRhbG9nKTsKIHN0YXRpYyB2b2lkIGlu ZGV4X3VwZGF0ZV9zdGF0cyhSZWxhdGlvbiByZWwsCiAJCQkJCQkJICAgYm9vbCBoYXNpbmRl eCwKIAkJCQkJCQkgICBkb3VibGUgcmVsdHVwbGVzKTsKQEAgLTU0NSw3ICs1NDYsOCBAQCBV cGRhdGVJbmRleFJlbGF0aW9uKE9pZCBpbmRleG9pZCwKIAkJCQkJYm9vbCBpc2V4Y2x1c2lv biwKIAkJCQkJYm9vbCBpbW1lZGlhdGUsCiAJCQkJCWJvb2wgaXN2YWxpZCwKLQkJCQkJYm9v bCBpc3JlYWR5KQorCQkJCQlib29sIGlzcmVhZHksCisJCQkJCWJvb2wgaXNfdXNlcl9jYXRh bG9nKQogewogCWludDJ2ZWN0b3IgKmluZGtleTsKIAlvaWR2ZWN0b3IgICppbmRjb2xsYXRp b247CkBAIC02MjIsNiArNjI0LDcgQEAgVXBkYXRlSW5kZXhSZWxhdGlvbihPaWQgaW5kZXhv aWQsCiAJdmFsdWVzW0FudW1fcGdfaW5kZXhfaW5kY2hlY2t4bWluIC0gMV0gPSBCb29sR2V0 RGF0dW0oZmFsc2UpOwogCXZhbHVlc1tBbnVtX3BnX2luZGV4X2luZGlzcmVhZHkgLSAxXSA9 IEJvb2xHZXREYXR1bShpc3JlYWR5KTsKIAl2YWx1ZXNbQW51bV9wZ19pbmRleF9pbmRpc2xp dmUgLSAxXSA9IEJvb2xHZXREYXR1bSh0cnVlKTsKKwl2YWx1ZXNbQW51bV9wZ19pbmRleF9p bmRpc3VzZXJjYXRhbG9nIC0gMV0gPSBCb29sR2V0RGF0dW0oaXNfdXNlcl9jYXRhbG9nKTsK IAl2YWx1ZXNbQW51bV9wZ19pbmRleF9pbmRpc3JlcGxpZGVudCAtIDFdID0gQm9vbEdldERh dHVtKGZhbHNlKTsKIAl2YWx1ZXNbQW51bV9wZ19pbmRleF9pbmRrZXkgLSAxXSA9IFBvaW50 ZXJHZXREYXR1bShpbmRrZXkpOwogCXZhbHVlc1tBbnVtX3BnX2luZGV4X2luZGNvbGxhdGlv biAtIDFdID0gUG9pbnRlckdldERhdHVtKGluZGNvbGxhdGlvbik7CkBAIC0xMDIwLDcgKzEw MjMsOCBAQCBpbmRleF9jcmVhdGUoUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQkJCQkJaXNw cmltYXJ5LCBpc19leGNsdXNpb24sCiAJCQkJCQkoY29uc3RyX2ZsYWdzICYgSU5ERVhfQ09O U1RSX0NSRUFURV9ERUZFUlJBQkxFKSA9PSAwLAogCQkJCQkJIWNvbmN1cnJlbnQgJiYgIWlu dmFsaWQsCi0JCQkJCQkhY29uY3VycmVudCk7CisJCQkJCQkhY29uY3VycmVudCwKKwkJCQkJ CVJlbGF0aW9uSXNVc2VkQXNDYXRhbG9nVGFibGUoaGVhcFJlbGF0aW9uKSk7CiAKIAkvKgog CSAqIFJlZ2lzdGVyIHJlbGNhY2hlIGludmFsaWRhdGlvbiBvbiB0aGUgaW5kZXhlcycgaGVh cCByZWxhdGlvbiwgdG8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggNTZkYzk5 NTcxMy4uZmQ4MjAwZTY3MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTEw Myw2ICsxMDMsNyBAQAogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAjaW5jbHVkZSAi dXRpbHMvdGltZXN0YW1wLmgiCiAjaW5jbHVkZSAidXRpbHMvdHlwY2FjaGUuaCIKKyNpbmNs dWRlICJ1dGlscy9yZWwuaCIKIAogLyoKICAqIE9OIENPTU1JVCBhY3Rpb24gbGlzdApAQCAt MTQxNDgsNiArMTQxNDksMTAgQEAgQVRFeGVjU2V0UmVsT3B0aW9ucyhSZWxhdGlvbiByZWws IExpc3QgKmRlZkxpc3QsIEFsdGVyVGFibGVUeXBlIG9wZXJhdGlvbiwKIAlEYXR1bQkJcmVw bF92YWxbTmF0dHNfcGdfY2xhc3NdOwogCWJvb2wJCXJlcGxfbnVsbFtOYXR0c19wZ19jbGFz c107CiAJYm9vbAkJcmVwbF9yZXBsW05hdHRzX3BnX2NsYXNzXTsKKwlMaXN0Q2VsbCAgICpj ZWxsOworCUxpc3QJICAgKnJlbF9vcHRpb25zOworCWJvb2wJCWNhdGFsb2dfdGFibGVfdmFs ID0gSEVBUF9ERUZBVUxUX1VTRVJfQ0FUQUxPR19UQUJMRTsKKwlib29sCQljYXRhbG9nX3Rh YmxlID0gZmFsc2U7CiAJc3RhdGljIGNoYXIgKnZhbGlkbnNwc1tdID0gSEVBUF9SRUxPUFRf TkFNRVNQQUNFUzsKIAogCWlmIChkZWZMaXN0ID09IE5JTCAmJiBvcGVyYXRpb24gIT0gQVRf UmVwbGFjZVJlbE9wdGlvbnMpCkBAIC0xNDIxNCw3ICsxNDIxOSw2IEBAIEFURXhlY1NldFJl bE9wdGlvbnMoUmVsYXRpb24gcmVsLCBMaXN0ICpkZWZMaXN0LCBBbHRlclRhYmxlVHlwZSBv cGVyYXRpb24sCiAJewogCQlRdWVyeQkgICAqdmlld19xdWVyeSA9IGdldF92aWV3X3F1ZXJ5 KHJlbCk7CiAJCUxpc3QJICAgKnZpZXdfb3B0aW9ucyA9IHVudHJhbnNmb3JtUmVsT3B0aW9u cyhuZXdPcHRpb25zKTsKLQkJTGlzdENlbGwgICAqY2VsbDsKIAkJYm9vbAkJY2hlY2tfb3B0 aW9uID0gZmFsc2U7CiAKIAkJZm9yZWFjaChjZWxsLCB2aWV3X29wdGlvbnMpCkBAIC0xNDI0 Miw2ICsxNDI0NiwyMCBAQCBBVEV4ZWNTZXRSZWxPcHRpb25zKFJlbGF0aW9uIHJlbCwgTGlz dCAqZGVmTGlzdCwgQWx0ZXJUYWJsZVR5cGUgb3BlcmF0aW9uLAogCQl9CiAJfQogCisJLyog SWYgdXNlcl9jYXRhbG9nX3RhYmxlIGlzIHBhcnQgb2YgdGhlIG5ldyBvcHRpb25zLCByZWNv cmQgaXRzIG5ldyB2YWx1ZSAqLworCXJlbF9vcHRpb25zID0gdW50cmFuc2Zvcm1SZWxPcHRp b25zKG5ld09wdGlvbnMpOworCisJZm9yZWFjaChjZWxsLCByZWxfb3B0aW9ucykKKwl7CisJ CURlZkVsZW0gICAgKmRlZmVsID0gKERlZkVsZW0gKikgbGZpcnN0KGNlbGwpOworCisJCWlm IChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJ1c2VyX2NhdGFsb2dfdGFibGUiKSA9PSAwKQor CQl7CisJCQljYXRhbG9nX3RhYmxlID0gdHJ1ZTsKKwkJCWNhdGFsb2dfdGFibGVfdmFsID0g ZGVmR2V0Qm9vbGVhbihkZWZlbCk7CisJCX0KKwl9CisKIAkvKgogCSAqIEFsbCB3ZSBuZWVk IGRvIGhlcmUgaXMgdXBkYXRlIHRoZSBwZ19jbGFzcyByb3c7IHRoZSBuZXcgb3B0aW9ucyB3 aWxsIGJlCiAJICogcHJvcGFnYXRlZCBpbnRvIHJlbGNhY2hlcyBkdXJpbmcgcG9zdC1jb21t aXQgY2FjaGUgaW52YWwuCkBAIC0xNDI2OCw2ICsxNDI4Niw0MSBAQCBBVEV4ZWNTZXRSZWxP cHRpb25zKFJlbGF0aW9uIHJlbCwgTGlzdCAqZGVmTGlzdCwgQWx0ZXJUYWJsZVR5cGUgb3Bl cmF0aW9uLAogCiAJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKIAorCS8qIFVwZGF0ZSB0aGUg aW5kZXhlcyBpZiB0aGVyZSBpcyBhIG5lZWQgdG8gKi8KKwlpZiAoY2F0YWxvZ190YWJsZSB8 fCBvcGVyYXRpb24gPT0gQVRfUmVzZXRSZWxPcHRpb25zKQorCXsKKwkJUmVsYXRpb24JcGdf aW5kZXg7CisJCUhlYXBUdXBsZQlwZ19pbmRleF90dXBsZTsKKwkJRm9ybV9wZ19pbmRleCBw Z19pbmRleF9mb3JtOworCQlMaXN0Q2VsbCAgICppbmRleDsKKworCQlwZ19pbmRleCA9IHRh YmxlX29wZW4oSW5kZXhSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCQlmb3Jl YWNoKGluZGV4LCBSZWxhdGlvbkdldEluZGV4TGlzdChyZWwpKQorCQl7CisJCQlPaWQJCQl0 aGlzSW5kZXhPaWQgPSBsZmlyc3Rfb2lkKGluZGV4KTsKKworCQkJcGdfaW5kZXhfdHVwbGUg PSBTZWFyY2hTeXNDYWNoZUNvcHkxKElOREVYUkVMSUQsCisJCQkJCQkJCQkJCQkgT2JqZWN0 SWRHZXREYXR1bSh0aGlzSW5kZXhPaWQpKTsKKwkJCWlmICghSGVhcFR1cGxlSXNWYWxpZChw Z19pbmRleF90dXBsZSkpCisJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQg Zm9yIGluZGV4ICV1IiwgdGhpc0luZGV4T2lkKTsKKwkJCXBnX2luZGV4X2Zvcm0gPSAoRm9y bV9wZ19pbmRleCkgR0VUU1RSVUNUKHBnX2luZGV4X3R1cGxlKTsKKworCQkJLyogTW9kaWZ5 IHRoZSBpbmRleCBvbmx5IGlmIHVzZXJfY2F0YWxvZ190YWJsZSBkaWZmZXIgKi8KKwkJCWlm IChjYXRhbG9nX3RhYmxlX3ZhbCAhPSBwZ19pbmRleF9mb3JtLT5pbmRpc3VzZXJjYXRhbG9n KQorCQkJeworCQkJCXBnX2luZGV4X2Zvcm0tPmluZGlzdXNlcmNhdGFsb2cgPSBjYXRhbG9n X3RhYmxlX3ZhbDsKKwkJCQlDYXRhbG9nVHVwbGVVcGRhdGUocGdfaW5kZXgsICZwZ19pbmRl eF90dXBsZS0+dF9zZWxmLCBwZ19pbmRleF90dXBsZSk7CisJCQkJSW52b2tlT2JqZWN0UG9z dEFsdGVySG9va0FyZyhJbmRleFJlbGF0aW9uSWQsIHRoaXNJbmRleE9pZCwgMCwKKwkJCQkJ CQkJCQkJIEludmFsaWRPaWQsIHRydWUpOworCQkJfQorCisJCQloZWFwX2ZyZWV0dXBsZShw Z19pbmRleF90dXBsZSk7CisJCX0KKworCQl0YWJsZV9jbG9zZShwZ19pbmRleCwgUm93RXhj bHVzaXZlTG9jayk7CisJfQorCiAJLyogcmVwZWF0IHRoZSB3aG9sZSBleGVyY2lzZSBmb3Ig dGhlIHRvYXN0IHRhYmxlLCBpZiB0aGVyZSdzIG9uZSAqLwogCWlmIChPaWRJc1ZhbGlkKHJl bC0+cmRfcmVsLT5yZWx0b2FzdHJlbGlkKSkKIAl7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvZ2lzdHhsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5oCmlu ZGV4IDMzZjFjN2UzMWIuLmQ5NTRjMGE5ZGEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9naXN0eGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5oCkBA IC01MSwxMyArNTEsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2lzdHhsb2dEZWxldGUKIHsKIAlU cmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCXVpbnQxNgkJbnRvZGVs ZXRlOwkJLyogbnVtYmVyIG9mIGRlbGV0ZWQgb2Zmc2V0cyAqLworCWJvb2wgICAgICAgIGxv Z2ljYWxDb25mbGljdFBvc3NpYmxlOwogCiAJLyoKIAkgKiBJbiBwYXlsb2FkIG9mIGJsayAw IDogdG9kZWxldGUgT2Zmc2V0TnVtYmVycwogCSAqLwogfSBnaXN0eGxvZ0RlbGV0ZTsKIAot I2RlZmluZSBTaXplT2ZHaXN0eGxvZ0RlbGV0ZQkob2Zmc2V0b2YoZ2lzdHhsb2dEZWxldGUs IG50b2RlbGV0ZSkgKyBzaXplb2YodWludDE2KSkKKyNkZWZpbmUgU2l6ZU9mR2lzdHhsb2dE ZWxldGUJKG9mZnNldG9mKGdpc3R4bG9nRGVsZXRlLCBsb2dpY2FsQ29uZmxpY3RQb3NzaWJs ZSkgKyBzaXplb2YoYm9vbCkpCiAKIC8qCiAgKiBCYWNrdXAgQmxrIDA6IElmIHRoaXMgb3Bl cmF0aW9uIGNvbXBsZXRlcyBhIHBhZ2Ugc3BsaXQsIGJ5IGluc2VydGluZyBhCkBAIC0xMDAs OSArMTAxLDEwIEBAIHR5cGVkZWYgc3RydWN0IGdpc3R4bG9nUGFnZVJldXNlCiAJUmVsRmls ZUxvY2F0b3IgbG9jYXRvcjsKIAlCbG9ja051bWJlciBibG9jazsKIAlGdWxsVHJhbnNhY3Rp b25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsKKwlib29sICAgICAgICBsb2dpY2FsQ29u ZmxpY3RQb3NzaWJsZTsKIH0gZ2lzdHhsb2dQYWdlUmV1c2U7CiAKLSNkZWZpbmUgU2l6ZU9m R2lzdHhsb2dQYWdlUmV1c2UJKG9mZnNldG9mKGdpc3R4bG9nUGFnZVJldXNlLCBzbmFwc2hv dENvbmZsaWN0SG9yaXpvbikgKyBzaXplb2YoRnVsbFRyYW5zYWN0aW9uSWQpKQorI2RlZmlu ZSBTaXplT2ZHaXN0eGxvZ1BhZ2VSZXVzZQkob2Zmc2V0b2YoZ2lzdHhsb2dQYWdlUmV1c2Us IGxvZ2ljYWxDb25mbGljdFBvc3NpYmxlKSArIHNpemVvZihib29sKSkKIAogZXh0ZXJuIHZv aWQgZ2lzdF9yZWRvKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKTsKIGV4dGVybiB2b2lkIGdp c3RfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5oIGIvc3JjL2luY2x1ZGUv YWNjZXNzL2hhc2hfeGxvZy5oCmluZGV4IDZkYWZiNGE1OTguLmMxN2Q5OTdiOTkgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoX3hsb2cuaAorKysgYi9zcmMvaW5jbHVk ZS9hY2Nlc3MvaGFzaF94bG9nLmgKQEAgLTI1MiwxMiArMjUyLDEzIEBAIHR5cGVkZWYgc3Ry dWN0IHhsX2hhc2hfdmFjdXVtX29uZV9wYWdlCiB7CiAJVHJhbnNhY3Rpb25JZCBzbmFwc2hv dENvbmZsaWN0SG9yaXpvbjsKIAlpbnQJCQludHVwbGVzOworCWJvb2wgICAgICAgIGxvZ2lj YWxDb25mbGljdFBvc3NpYmxlOwogCiAJLyogVEFSR0VUIE9GRlNFVCBOVU1CRVJTIEZPTExP VyBBVCBUSEUgRU5EICovCiB9IHhsX2hhc2hfdmFjdXVtX29uZV9wYWdlOwogCiAjZGVmaW5l IFNpemVPZkhhc2hWYWN1dW1PbmVQYWdlIFwKLQkob2Zmc2V0b2YoeGxfaGFzaF92YWN1dW1f b25lX3BhZ2UsIG50dXBsZXMpICsgc2l6ZW9mKGludCkpCisJKG9mZnNldG9mKHhsX2hhc2hf dmFjdXVtX29uZV9wYWdlLCBsb2dpY2FsQ29uZmxpY3RQb3NzaWJsZSkgKyBzaXplb2YoYm9v bCkpCiAKIGV4dGVybiB2b2lkIGhhc2hfcmVkbyhYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7 CiBleHRlcm4gdm9pZCBoYXNoX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0 ZSAqcmVjb3JkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxv Zy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKaW5kZXggNWM3NzI5MGVl Yy4uNzY5OTFkOWQ4ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94 bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKQEAgLTI0NSwx MCArMjQ1LDExIEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfcHJ1bmUKIAlUcmFuc2FjdGlv bklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCXVpbnQxNgkJbnJlZGlyZWN0ZWQ7CiAJ dWludDE2CQluZGVhZDsKKwlib29sICAgICAgICBsb2dpY2FsQ29uZmxpY3RQb3NzaWJsZTsK IAkvKiBPRkZTRVQgTlVNQkVSUyBhcmUgaW4gdGhlIGJsb2NrIHJlZmVyZW5jZSAwICovCiB9 IHhsX2hlYXBfcHJ1bmU7CiAKLSNkZWZpbmUgU2l6ZU9mSGVhcFBydW5lIChvZmZzZXRvZih4 bF9oZWFwX3BydW5lLCBuZGVhZCkgKyBzaXplb2YodWludDE2KSkKKyNkZWZpbmUgU2l6ZU9m SGVhcFBydW5lIChvZmZzZXRvZih4bF9oZWFwX3BydW5lLCBsb2dpY2FsQ29uZmxpY3RQb3Nz aWJsZSkgKyBzaXplb2YoYm9vbCkpCiAKIC8qCiAgKiBUaGUgdmFjdXVtIHBhZ2UgcmVjb3Jk IGlzIHNpbWlsYXIgdG8gdGhlIHBydW5lIHJlY29yZCwgYnV0IGNhbiBvbmx5IG1hcmsKQEAg LTM0NCwxMiArMzQ1LDEzIEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfZnJlZXplX3BhZ2UK IHsKIAlUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCXVpbnQxNgkJ bnBsYW5zOworCWJvb2wgICAgICAgIGxvZ2ljYWxDb25mbGljdFBvc3NpYmxlOwogCiAJLyog RlJFRVpFIFBMQU5TIEZPTExPVyAqLwogCS8qIE9GRlNFVCBOVU1CRVIgQVJSQVkgRk9MTE9X UyAqLwogfSB4bF9oZWFwX2ZyZWV6ZV9wYWdlOwogCi0jZGVmaW5lIFNpemVPZkhlYXBGcmVl emVQYWdlIChvZmZzZXRvZih4bF9oZWFwX2ZyZWV6ZV9wYWdlLCBucGxhbnMpICsgc2l6ZW9m KHVpbnQxNikpCisjZGVmaW5lIFNpemVPZkhlYXBGcmVlemVQYWdlIChvZmZzZXRvZih4bF9o ZWFwX2ZyZWV6ZV9wYWdlLCBsb2dpY2FsQ29uZmxpY3RQb3NzaWJsZSkgKyBzaXplb2YoYm9v bCkpCiAKIC8qCiAgKiBUaGlzIGlzIHdoYXQgd2UgbmVlZCB0byBrbm93IGFib3V0IHNldHRp bmcgYSB2aXNpYmlsaXR5IG1hcCBiaXQKQEAgLTQwOCw3ICs0MTAsNyBAQCBleHRlcm4gdm9p ZCBoZWFwMl9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7 CiBleHRlcm4gY29uc3QgY2hhciAqaGVhcDJfaWRlbnRpZnkodWludDggaW5mbyk7CiBleHRl cm4gdm9pZCBoZWFwX3hsb2dfbG9naWNhbF9yZXdyaXRlKFhMb2dSZWFkZXJTdGF0ZSAqcik7 CiAKLWV4dGVybiBYTG9nUmVjUHRyIGxvZ19oZWFwX3Zpc2libGUoUmVsRmlsZUxvY2F0b3Ig cmxvY2F0b3IsIEJ1ZmZlciBoZWFwX2J1ZmZlciwKK2V4dGVybiBYTG9nUmVjUHRyIGxvZ19o ZWFwX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsCiAJCQkJCQkJ CSAgIEJ1ZmZlciB2bV9idWZmZXIsCiAJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgc25hcHNo b3RDb25mbGljdEhvcml6b24sCiAJCQkJCQkJCSAgIHVpbnQ4IHZtZmxhZ3MpOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL25idHhsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vz cy9uYnR4bG9nLmgKaW5kZXggM2IyZDk1OWM2OS4uYzY5ZTA1Mzg2OSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvYWNjZXNzL25idHhsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mv bmJ0eGxvZy5oCkBAIC0xODgsOSArMTg4LDEwIEBAIHR5cGVkZWYgc3RydWN0IHhsX2J0cmVl X3JldXNlX3BhZ2UKIAlSZWxGaWxlTG9jYXRvciBsb2NhdG9yOwogCUJsb2NrTnVtYmVyIGJs b2NrOwogCUZ1bGxUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOworCWJv b2wgICAgICAgIGxvZ2ljYWxDb25mbGljdFBvc3NpYmxlOwogfSB4bF9idHJlZV9yZXVzZV9w YWdlOwogCi0jZGVmaW5lIFNpemVPZkJ0cmVlUmV1c2VQYWdlCShzaXplb2YoeGxfYnRyZWVf cmV1c2VfcGFnZSkpCisjZGVmaW5lIFNpemVPZkJ0cmVlUmV1c2VQYWdlCShvZmZzZXRvZih4 bF9idHJlZV9yZXVzZV9wYWdlLCBsb2dpY2FsQ29uZmxpY3RQb3NzaWJsZSkgKyBzaXplb2Yo Ym9vbCkpCiAKIC8qCiAgKiB4bF9idHJlZV92YWN1dW0gYW5kIHhsX2J0cmVlX2RlbGV0ZSBy ZWNvcmRzIGRlc2NyaWJlIGRlbGV0aW9uIG9mIGluZGV4CkBAIC0yMzUsMTMgKzIzNiwxNCBA QCB0eXBlZGVmIHN0cnVjdCB4bF9idHJlZV9kZWxldGUKIAlUcmFuc2FjdGlvbklkIHNuYXBz aG90Q29uZmxpY3RIb3Jpem9uOwogCXVpbnQxNgkJbmRlbGV0ZWQ7CiAJdWludDE2CQludXBk YXRlZDsKKwlib29sICAgICAgICBsb2dpY2FsQ29uZmxpY3RQb3NzaWJsZTsKIAogCS8qIERF TEVURUQgVEFSR0VUIE9GRlNFVCBOVU1CRVJTIEZPTExPVyAqLwogCS8qIFVQREFURUQgVEFS R0VUIE9GRlNFVCBOVU1CRVJTIEZPTExPVyAqLwogCS8qIFVQREFURUQgVFVQTEVTIE1FVEFE QVRBICh4bF9idHJlZV91cGRhdGUpIEFSUkFZIEZPTExPV1MgKi8KIH0geGxfYnRyZWVfZGVs ZXRlOwogCi0jZGVmaW5lIFNpemVPZkJ0cmVlRGVsZXRlCShvZmZzZXRvZih4bF9idHJlZV9k ZWxldGUsIG51cGRhdGVkKSArIHNpemVvZih1aW50MTYpKQorI2RlZmluZSBTaXplT2ZCdHJl ZURlbGV0ZQkob2Zmc2V0b2YoeGxfYnRyZWVfZGVsZXRlLCBsb2dpY2FsQ29uZmxpY3RQb3Nz aWJsZSkgKyBzaXplb2YoYm9vbCkpCiAKIC8qCiAgKiBUaGUgb2Zmc2V0cyB0aGF0IGFwcGVh ciBpbiB4bF9idHJlZV91cGRhdGUgbWV0YWRhdGEgYXJlIG9mZnNldHMgaW50byB0aGUKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9zcGd4bG9nLmggYi9zcmMvaW5jbHVkZS9h Y2Nlc3Mvc3BneGxvZy5oCmluZGV4IDgyMzMyY2I2OTQuLjFkOTJhZjZiMmQgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9zcGd4bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL3NwZ3hsb2cuaApAQCAtMjQwLDYgKzI0MCw3IEBAIHR5cGVkZWYgc3RydWN0IHNwZ3hs b2dWYWN1dW1SZWRpcmVjdAogCXVpbnQxNgkJblRvUGxhY2Vob2xkZXI7IC8qIG51bWJlciBv ZiByZWRpcmVjdHMgdG8gbWFrZSBwbGFjZWhvbGRlcnMgKi8KIAlPZmZzZXROdW1iZXIgZmly c3RQbGFjZWhvbGRlcjsJLyogZmlyc3QgcGxhY2Vob2xkZXIgdHVwbGUgdG8gcmVtb3ZlICov CiAJVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsJLyogbmV3ZXN0IFhJ RCBvZiByZW1vdmVkIHJlZGlyZWN0cyAqLworCWJvb2wgICAgICAgIGxvZ2ljYWxDb25mbGlj dFBvc3NpYmxlOwogCiAJLyogb2Zmc2V0cyBvZiByZWRpcmVjdCB0dXBsZXMgdG8gbWFrZSBw bGFjZWhvbGRlcnMgZm9sbG93ICovCiAJT2Zmc2V0TnVtYmVyIG9mZnNldHNbRkxFWElCTEVf QVJSQVlfTUVNQkVSXTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmls aXR5bWFwZGVmcy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgK aW5kZXggMjgwM2VmNWMwNy4uNjAwNWRmMzI3OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv YWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3Zp c2liaWxpdHltYXBkZWZzLmgKQEAgLTE3LDkgKzE3LDEwIEBACiAjZGVmaW5lIEJJVFNfUEVS X0hFQVBCTE9DSyAyCiAKIC8qIEZsYWdzIGZvciBiaXQgbWFwICovCi0jZGVmaW5lIFZJU0lC SUxJVFlNQVBfQUxMX1ZJU0lCTEUJMHgwMQotI2RlZmluZSBWSVNJQklMSVRZTUFQX0FMTF9G Uk9aRU4JMHgwMgotI2RlZmluZSBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMJMHgwMwkvKiBP UiBvZiBhbGwgdmFsaWQgdmlzaWJpbGl0eW1hcAotCQkJCQkJCQkJCQkgKiBmbGFncyBiaXRz ICovCisjZGVmaW5lIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUJCQkJCQkJCTB4MDEKKyNk ZWZpbmUgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOCQkJCQkJCQkweDAyCisjZGVmaW5lIFZJ U0lCSUxJVFlNQVBfVkFMSURfQklUUwkJCQkJCQkJMHgwMwkvKiBPUiBvZiBhbGwgdmFsaWQg dmlzaWJpbGl0eW1hcAorCQkJCQkJCQkJCQkJCQkJCQkJICogZmxhZ3MgYml0cyAqLworI2Rl ZmluZSBWSVNJQklMSVRZTUFQX09OX0NBVEFMT0dfQUNDRVNTSUJMRV9JTl9MT0dJQ0FMX0RF Q09ESU5HCTB4MDQKIAogI2VuZGlmCQkJCQkJCS8qIFZJU0lCSUxJVFlNQVBERUZTX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfaW5kZXguaAppbmRleCBmODUzODQ2ZWUxLi5kZDE2NDMxMzc4IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2luZGV4LmgKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19pbmRleC5oCkBAIC00Myw2ICs0Myw4IEBAIENBVEFMT0cocGdf aW5kZXgsMjYxMCxJbmRleFJlbGF0aW9uSWQpIEJLSV9TQ0hFTUFfTUFDUk8KIAlib29sCQlp bmRjaGVja3htaW47CS8qIG11c3Qgd2Ugd2FpdCBmb3IgeG1pbiB0byBiZSBvbGQ/ICovCiAJ Ym9vbAkJaW5kaXNyZWFkeTsJCS8qIGlzIHRoaXMgaW5kZXggcmVhZHkgZm9yIGluc2VydHM/ ICovCiAJYm9vbAkJaW5kaXNsaXZlOwkJLyogaXMgdGhpcyBpbmRleCBhbGl2ZSBhdCBhbGw/ ICovCisJYm9vbAkJaW5kaXN1c2VyY2F0YWxvZzsJLyogaXMgdGhpcyBpbmRleCBsaW5rZWQg dG8gYSB1c2VyIGNhdGFsb2cKKwkJCQkJCQkJCSAqIHJlbGF0aW9uPyAqLwogCWJvb2wJCWlu ZGlzcmVwbGlkZW50OyAvKiBpcyB0aGlzIGluZGV4IHRoZSBpZGVudGl0eSBmb3IgcmVwbGlj YXRpb24/ICovCiAKIAkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUsIGJ1 dCB3ZSBhbGxvdyBkaXJlY3QgYWNjZXNzIHRvIGluZGtleSAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvdXRpbHMvcmVsLmggYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaAppbmRleCBm MzgzYTJmY2E5Li41ZDQxZWY2NTA1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9y ZWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaApAQCAtMjcsNiArMjcsNyBAQAog I2luY2x1ZGUgInN0b3JhZ2Uvc21nci5oIgogI2luY2x1ZGUgInV0aWxzL3JlbGNhY2hlLmgi CiAjaW5jbHVkZSAidXRpbHMvcmVsdHJpZ2dlci5oIgorI2luY2x1ZGUgImNhdGFsb2cvY2F0 YWxvZy5oIgogCiAKIC8qCkBAIC0zNDMsNiArMzQ0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU3Rk UmRPcHRpb25zCiAKICNkZWZpbmUgSEVBUF9NSU5fRklMTEZBQ1RPUgkJCTEwCiAjZGVmaW5l IEhFQVBfREVGQVVMVF9GSUxMRkFDVE9SCQkxMDAKKyNkZWZpbmUgSEVBUF9ERUZBVUxUX1VT RVJfQ0FUQUxPR19UQUJMRQkJZmFsc2UKIAogLyoKICAqIFJlbGF0aW9uR2V0VG9hc3RUdXBs ZVRhcmdldApAQCAtMzg1LDYgKzM4NywxNSBAQCB0eXBlZGVmIHN0cnVjdCBTdGRSZE9wdGlv bnMKIAkgIChyZWxhdGlvbiktPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX01BVFZJRVcp ID8gXAogCSAoKFN0ZFJkT3B0aW9ucyAqKSAocmVsYXRpb24pLT5yZF9vcHRpb25zKS0+dXNl cl9jYXRhbG9nX3RhYmxlIDogZmFsc2UpCiAKKy8qCisgKiBJbmRleElzTGlua2VkVG9Vc2Vy Q2F0YWxvZ1RhYmxlCisgKgkJUmV0dXJucyB3aGV0aGVyIHRoZSByZWxhdGlvbiBzaG91bGQg YmUgdHJlYXRlZCBhcyBhbiBpbmRleCBsaW5rZWQgdG8KKyAqCQlhIHVzZXIgY2F0YWxvZyB0 YWJsZSBmcm9tIHRoZSBwb3Ygb2YgbG9naWNhbCBkZWNvZGluZy4KKyAqLworI2RlZmluZSBJ bmRleElzTGlua2VkVG9Vc2VyQ2F0YWxvZ1RhYmxlKHJlbGF0aW9uKQlcCisJKChyZWxhdGlv biktPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0lOREVYICYmIFwKKwkgKHJlbGF0aW9u KS0+cmRfaW5kZXgtPmluZGlzdXNlcmNhdGFsb2cpCisKIC8qCiAgKiBSZWxhdGlvbkdldFBh cmFsbGVsV29ya2VycwogICoJCVJldHVybnMgdGhlIHJlbGF0aW9uJ3MgcGFyYWxsZWxfd29y a2VycyByZWxvcHRpb24gc2V0dGluZy4KQEAgLTY4Miw3ICs2OTMsOCBAQCBSZWxhdGlvbkNs b3NlU21ncihSZWxhdGlvbiByZWxhdGlvbikKICNkZWZpbmUgUmVsYXRpb25Jc0FjY2Vzc2li bGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxhdGlvbikgXAogCShYTG9nTG9naWNhbEluZm9BY3Rp dmUoKSAmJiBcCiAJIFJlbGF0aW9uTmVlZHNXQUwocmVsYXRpb24pICYmIFwKLQkgKElzQ2F0 YWxvZ1JlbGF0aW9uKHJlbGF0aW9uKSB8fCBSZWxhdGlvbklzVXNlZEFzQ2F0YWxvZ1RhYmxl KHJlbGF0aW9uKSkpCisJIChJc0NhdGFsb2dSZWxhdGlvbihyZWxhdGlvbikgfHwgUmVsYXRp b25Jc1VzZWRBc0NhdGFsb2dUYWJsZShyZWxhdGlvbikgfHwgXAorCSAgSW5kZXhJc0xpbmtl ZFRvVXNlckNhdGFsb2dUYWJsZShyZWxhdGlvbikpKQogCiAvKgogICogUmVsYXRpb25Jc0xv Z2ljYWxseUxvZ2dlZAotLSAKMi4zNC4xCgo= --------------3T3Kqsei9cUCGxvjVj1HQucN--