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 1p7jKj-0005aG-Pd for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Dec 2022 20:35:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p7jKg-0000yx-QX for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Dec 2022 20:35:26 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p7jKf-0000yn-TB for pgsql-hackers@lists.postgresql.org; Tue, 20 Dec 2022 20:35:26 +0000 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1p7jKY-0006kK-5S for pgsql-hackers@postgresql.org; Tue, 20 Dec 2022 20:35:24 +0000 Received: by mail-wr1-x42a.google.com with SMTP id a17so11774426wrt.11 for ; Tue, 20 Dec 2022 12:35:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=HJ6PR4Mu0khwoCX0274vWFD6230VMhlBJ4u+p0AfuPA=; b=bq5nzvsw3aEAU+IKmsep7/eS7ie3vx7UfvnCQto2KLakQUPsc6vNWDEpnZHw8PET4o DU6yidiMFG0BmRy0p0OSBWBIbkHY/llLFAWeBuEqyGqoPiqMdCXhVWfIQpLymRrlz7Nb J4YTyLd3eiN/fcL6XfyJdDwBxsggAkGACCvA8qMiibjmf6SSq4ts2Ywr4qnGOXrfJMOM u6x+mq/H9ygsXJZTVtXD+XKeJ81nqLN3xbQoX5S5yYx0sgwzF5F6vVT954GGQKwArtuF 2PaMMyMq0wmQ9JAD5T2gEb4tMMZUnFkaBguZXep+GwVmoMkMpmZhI88F+cMWBVH7EeMk hOdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=HJ6PR4Mu0khwoCX0274vWFD6230VMhlBJ4u+p0AfuPA=; b=4kVfqixTfr76iRG5c/xJZpePsYcoVD9ZVfEEnGmo5J71AbWM18ftZE9Jt8SWd8WKQm ctxfLigUxLUZZmyrKNZQQzbLK0je+Tq5tZXh/W5gOdacGZWDApE9ePiz1CmWruwv9oe9 RvRPPWMbegT06hbFjDqNAx+bICYyg2F19et9r8Smivcuba+lCQW0LtNFvP1g+01pzanh VbpFsUmB4Z1K0rpvNRBdQWm45D8d0tn6//SKo85ShynSkkJt0/kDxpr2JTxnLI2ykMhw zvovSZdiOmVFQ38fjmS7StrtS+VmfCkOk4G2hoT3AgfLOHD/jZv+y07+e7rOj3JPdszV SbYw== X-Gm-Message-State: ANoB5pmjz5ldxlE/VtHhUiJDjQGzdj9FX5WkH0HSLMkYPZHOxdph1Y47 2Exet3AeJaM6ipMKct5ehsU= X-Google-Smtp-Source: AA0mqf7gGLQ40dX6u3PQ3emRg4RBispNzR7xoCu5EESxaxZZStQ4RrDLqmbjNmA2z/XzhM2UjRM+sw== X-Received: by 2002:adf:d092:0:b0:242:4d1a:aa36 with SMTP id y18-20020adfd092000000b002424d1aaa36mr27885698wrh.56.1671568515318; Tue, 20 Dec 2022 12:35:15 -0800 (PST) Received: from [192.168.5.50] ([54.239.6.186]) by smtp.gmail.com with ESMTPSA id ba18-20020a0560001c1200b002421ce6a275sm13720412wrb.114.2022.12.20.12.35.13 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 20 Dec 2022 12:35:14 -0800 (PST) Content-Type: multipart/mixed; boundary="------------3lv2fSPaQI1Eg2hE4cbl1QV0" Message-ID: Date: Tue, 20 Dec 2022 21:35:13 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 Subject: Re: Minimal logical decoding on standbys Content-Language: en-US To: Robert Haas , Andres Freund Cc: Alvaro Herrera , Ibrar Ahmed , Amit Khandekar , fabriziomello@gmail.com, tushar , Rahila Syed , pgsql-hackers References: <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> <20221220175602.tva63nriepj33lau@alap3.anarazel.de> From: "Drouvot, Bertrand" 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. --------------3lv2fSPaQI1Eg2hE4cbl1QV0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, On 12/20/22 7:31 PM, Robert Haas wrote: > On Tue, Dec 20, 2022 at 1:19 PM Andres Freund wrote: >> I don't understand what the "may*" or "*Possible" really are >> about. snapshotConflictHorizon is a conflict with a certain xid - there >> commonly won't be anything to conflict with. If there's a conflict in >> the logical-decoding-on-standby case, we won't be able to apply it only >> sometimes or such. > > The way I was imagining it is that snapshotConflictHorizon tells us > whether there is a conflict with this record and then, if there is, > this new Boolean tells us whether it's relevant to logical decoding as > well. > the "may*" or "*Possible" was, most probably, because I preferred to have the uncertainty of the conflict mentioned in the name. But, somehow, I was forgetting about the relationship with snapshotConflictHorizon. So, agree with both of you that mentioning about the uncertainty of the conflict is useless. >> How about "affectsLogicalDecoding", "conflictsWithSlots" or >> "isCatalogRel" or such? > > isCatalogRel seems fine to me. For me too, please find attached v34 using it. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------3lv2fSPaQI1Eg2hE4cbl1QV0 Content-Type: text/plain; charset=UTF-8; name="v34-0006-Fixing-Walsender-corner-case-with-logical-decodi.patch" Content-Disposition: attachment; filename*0="v34-0006-Fixing-Walsender-corner-case-with-logical-decodi.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA0NmE3MjhiMzlmN2VhODVmMmRlYzYwZDcyY2I0MDAwOTQ5NTViNzg1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyMCBEZWMgMjAyMiAxOTo1NjoyMiArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM0IDYvNl0gRml4aW5nIFdhbHNlbmRlciBjb3JuZXIgY2FzZSB3aXRoIGxvZ2ljYWwg 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== --------------3lv2fSPaQI1Eg2hE4cbl1QV0 Content-Type: text/plain; charset=UTF-8; name="v34-0005-Doc-changes-describing-details-about-logical-dec.patch" Content-Disposition: attachment; filename*0="v34-0005-Doc-changes-describing-details-about-logical-dec.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAzZmRmY2YxZjZlODM2ZTg3MDkxYzIwNDdjYzMzMzM4ZWY3YWJkOGI1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyMCBEZWMgMjAyMiAxOTo1NTozOCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM0IDUvNl0gRG9jIGNoYW5nZXMgZGVzY3JpYmluZyBkZXRhaWxzIGFib3V0IGxvZ2lj 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 --------------3lv2fSPaQI1Eg2hE4cbl1QV0 Content-Type: text/plain; charset=UTF-8; name="v34-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Disposition: attachment; filename*0="v34-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSA1NDI5ZmVmZmM4MmM3Y2YxODQ4MmQ1ZTk1ZGE5MGI1Zjc0ZTFlOWMyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyMCBEZWMgMjAyMiAxOTo1NDo0NiArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM0IDQvNl0gTmV3IFRBUCB0ZXN0IGZvciBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5k 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 cnkvbWVzb24uYnVpbGQKaW5kZXggYjhjM2MxMDRhZS4uODE5MTNiZGZkNiAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3QvcmVjb3Zl cnkvbWVzb24uYnVpbGQKQEAgLTQwLDYgKzQwLDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3Qv 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 --------------3lv2fSPaQI1Eg2hE4cbl1QV0 Content-Type: text/plain; charset=UTF-8; name="v34-0003-Allow-logical-decoding-on-standby.patch" Content-Disposition: attachment; filename="v34-0003-Allow-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSAyMWVhN2M4Yzc5M2UwZTBiZmNlNzY0ODExZTc4YWE1NDA3NTNmMTZmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyMCBEZWMgMjAyMiAxOTo1MzozOSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM0IDMvNl0gQWxsb3cgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5LgoKQWxsb3cg 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== --------------3lv2fSPaQI1Eg2hE4cbl1QV0 Content-Type: text/plain; charset=UTF-8; name="v34-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Disposition: attachment; filename="v34-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSBkZDllNzcxOWQwMDhmOGM1NGFiMGY1OWMzMWI1NzZhNTg4MWUzNmU5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyMCBEZWMgMjAyMiAxOTo1Mjo0NiArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM0IDIvNl0gSGFuZGxlIGxvZ2ljYWwgc2xvdCBjb25mbGljdHMgb24gc3RhbmRieS4K 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 ZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKICAgMy45JSBkb2Mvc3JjL3NnbWwvCiAgIDUu MyUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgIDMuMSUgc3JjL2JhY2tlbmQvYWNj ZXNzLwogICAzLjklIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvCiAgNTkuMCUg c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vCiAgIDYuNyUgc3JjL2JhY2tlbmQvc3RvcmFnZS9p cGMvCiAgIDguMCUgc3JjL2JhY2tlbmQvdGNvcC8KICAgMy40JSBzcmMvYmFja2VuZC8KICAg NS42JSBzcmMvaW5jbHVkZS8KCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmlu Zy5zZ21sIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAppbmRleCAzNjNiMTgzZTVm Li4yNzIzNTQxOGE2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKQEAgLTQzMTcsNiArNDMxNywx NyBAQCBTRUxFQ1QgcGlkLCB3YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQgRlJPTSBwZ19z dGF0X2FjdGl2aXR5IFdIRVJFIHdhaXRfZXZlbnQgaQogICAgICAgIGRlYWRsb2NrcwogICAg ICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jb25mbF9hY3RpdmVfbG9naWNhbHNs b3Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBOdW1iZXIgb2YgYWN0aXZlIGxvZ2ljYWwgc2xvdHMgaW4g dGhpcyBkYXRhYmFzZSB0aGF0IGhhdmUgYmVlbgorICAgICAgIGludmFsaWRhdGVkIGJlY2F1 c2UgdGhleSBjb25mbGljdCB3aXRoIHJlY292ZXJ5IChub3RlIHRoYXQgaW5hY3RpdmUgb25l cworICAgICAgIGFyZSBhbHNvIGludmFsaWRhdGVkIGJ1dCBkbyBub3QgaW5jcmVtZW50IHRo aXMgY291bnRlcikKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8 L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3Qv Z2lzdHhsb2cuYwppbmRleCBmNDc1ODdiOGY1Li4yODUxMjZjZTUwIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9naXN0L2dpc3R4bG9nLmMKQEAgLTE5Niw2ICsxOTYsNyBAQCBnaXN0UmVkb0RlbGV0 ZVJlY29yZChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJWExvZ1JlY0dldEJsb2NrVGFn KHJlY29yZCwgMCwgJnJsb2NhdG9yLCBOVUxMLCBOVUxMKTsKIAogCQlSZXNvbHZlUmVjb3Zl cnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bGRhdGEtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9u LAorCQkJCQkJCQkJCQl4bGRhdGEtPmlzQ2F0YWxvZ1JlbCwKIAkJCQkJCQkJCQkJcmxvY2F0 b3IpOwogCX0KIApAQCAtMzk2LDYgKzM5Nyw3IEBAIGdpc3RSZWRvUGFnZVJldXNlKFhMb2dS ZWFkZXJTdGF0ZSAqcmVjb3JkKQogCSAqLwogCWlmIChJbkhvdFN0YW5kYnkpCiAJCVJlc29s dmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90RnVsbFhpZCh4bHJlYy0+c25hcHNob3RD b25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCQkgICB4bHJlYy0+aXNDYXRhbG9nUmVsLAog CQkJCQkJCQkJCQkJICAgeGxyZWMtPmxvY2F0b3IpOwogfQogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoX3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o YXNoL2hhc2hfeGxvZy5jCmluZGV4IGI0NTI2OTdhMmYuLjc1ZGQzM2U1ODEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5jCkBAIC0xMDAxLDYgKzEwMDEsNyBAQCBoYXNo X3hsb2dfdmFjdXVtX29uZV9wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCVhM b2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybG9jYXRvciwgTlVMTCwgTlVMTCk7CiAJ CVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+c25hcHNob3RD b25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCXhsZGF0YS0+aXNDYXRhbG9nUmVsLAogCQkJ CQkJCQkJCQlybG9jYXRvcik7CiAJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmlu ZGV4IDFiMzQ0ZWFjZTcuLjExMTZlYjNlM2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBh bS5jCkBAIC04NjkzLDYgKzg2OTMsNyBAQCBoZWFwX3hsb2dfcHJ1bmUoWExvZ1JlYWRlclN0 YXRlICpyZWNvcmQpCiAJICovCiAJaWYgKEluSG90U3RhbmRieSkKIAkJUmVzb2x2ZVJlY292 ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9u LAorCQkJCQkJCQkJCQl4bHJlYy0+aXNDYXRhbG9nUmVsLAogCQkJCQkJCQkJCQlybG9jYXRv cik7CiAKIAkvKgpAQCAtODg2Miw2ICs4ODYzLDcgQEAgaGVhcF94bG9nX3Zpc2libGUoWExv Z1JlYWRlclN0YXRlICpyZWNvcmQpCiAJICovCiAJaWYgKEluSG90U3RhbmRieSkKIAkJUmVz b2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPnNuYXBzaG90Q29uZmxp Y3RIb3Jpem9uLAorCQkJCQkJCQkJCQl4bHJlYy0+ZmxhZ3MgJiBWSVNJQklMSVRZTUFQX09O X0NBVEFMT0dfQUNDRVNTSUJMRV9JTl9MT0dJQ0FMX0RFQ09ESU5HLAogCQkJCQkJCQkJCQly bG9jYXRvcik7CiAKIAkvKgpAQCAtOTExNyw2ICs5MTE5LDcgQEAgaGVhcF94bG9nX2ZyZWV6 ZV9wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCVhMb2dSZWNHZXRCbG9ja1Rh ZyhyZWNvcmQsIDAsICZybG9jYXRvciwgTlVMTCwgTlVMTCk7CiAJCVJlc29sdmVSZWNvdmVy eUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwK KwkJCQkJCQkJCQkJeGxyZWMtPmlzQ2F0YWxvZ1JlbCwKIAkJCQkJCQkJCQkJcmxvY2F0b3Ip OwogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR4bG9n LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cuYwppbmRleCAzZTMxMWE5 OGE2Li5jZmVkZTkwNmEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVl L25idHhsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cuYwpA QCAtNjY5LDYgKzY2OSw3IEBAIGJ0cmVlX3hsb2dfZGVsZXRlKFhMb2dSZWFkZXJTdGF0ZSAq cmVjb3JkKQogCQlYTG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmcmxvY2F0b3IsIE5V TEwsIE5VTEwpOwogCiAJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhs cmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCQkJeGxyZWMtPmlzQ2F0 YWxvZ1JlbCwKIAkJCQkJCQkJCQkJcmxvY2F0b3IpOwogCX0KIApAQCAtMTAwNyw2ICsxMDA4 LDcgQEAgYnRyZWVfeGxvZ19yZXVzZV9wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQog CiAJaWYgKEluSG90U3RhbmRieSkKIAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25h cHNob3RGdWxsWGlkKHhscmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJ CQkJCSAgIHhscmVjLT5pc0NhdGFsb2dSZWwsCiAJCQkJCQkJCQkJCQkgICB4bHJlYy0+bG9j YXRvcik7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3Bn eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd4bG9nLmMKaW5kZXggNDRh ZGMyMDk4Zi4uMjAxNjViYzU4OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3Nw Z2lzdC9zcGd4bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd4bG9n LmMKQEAgLTg3OSw2ICs4NzksNyBAQCBzcGdSZWRvVmFjdXVtUmVkaXJlY3QoWExvZ1JlYWRl clN0YXRlICpyZWNvcmQpCiAKIAkJWExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwgJmxv Y2F0b3IsIE5VTEwsIE5VTEwpOwogCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFw c2hvdCh4bGRhdGEtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJCQl4bGRh dGEtPmlzQ2F0YWxvZ1JlbCwKIAkJCQkJCQkJCQkJbG9jYXRvcik7CiAJfQogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5kZXggOTE0NzNiMDBkOS4uZmNhNmVlNDU4NCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtNzk1OCw2ICs3OTU4LDE5IEBAIHhs b2dfcmVkbyhYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJLyogVXBkYXRlIG91ciBjb3B5 IG9mIHRoZSBwYXJhbWV0ZXJzIGluIHBnX2NvbnRyb2wgKi8KIAkJbWVtY3B5KCZ4bHJlYywg WExvZ1JlY0dldERhdGEocmVjb3JkKSwgc2l6ZW9mKHhsX3BhcmFtZXRlcl9jaGFuZ2UpKTsK IAorCQkvKgorCQkgKiBJbnZhbGlkYXRlIGxvZ2ljYWwgc2xvdHMgaWYgd2UgYXJlIGluIGhv dCBzdGFuZGJ5IGFuZCB0aGUgcHJpbWFyeSBkb2VzIG5vdAorCQkgKiBoYXZlIGEgV0FMIGxl dmVsIHN1ZmZpY2llbnQgZm9yIGxvZ2ljYWwgZGVjb2RpbmcuIE5vIG5lZWQgdG8gc2VhcmNo CisJCSAqIGZvciBwb3RlbnRpYWxseSBjb25mbGljdGluZyBsb2dpY2FsbHkgc2xvdHMgaWYg c3RhbmRieSBpcyBydW5uaW5nCisJCSAqIHdpdGggd2FsX2xldmVsIGxvd2VyIHRoYW4gbG9n aWNhbCwgYmVjYXVzZSBpbiB0aGF0IGNhc2UsIHdlIHdvdWxkCisJCSAqIGhhdmUgZWl0aGVy IGRpc2FsbG93ZWQgY3JlYXRpb24gb2YgbG9naWNhbCBzbG90cyBvciBpbnZhbGlkYXRlZCBl eGlzdGluZworCQkgKiBvbmVzLgorCQkgKi8KKwkJaWYgKEluUmVjb3ZlcnkgJiYgSW5Ib3RT dGFuZGJ5ICYmCisJCQl4bHJlYy53YWxfbGV2ZWwgPCBXQUxfTEVWRUxfTE9HSUNBTCAmJgor CQkJd2FsX2xldmVsID49IFdBTF9MRVZFTF9MT0dJQ0FMKQorCQkJSW52YWxpZGF0ZUNvbmZs aWN0aW5nTG9naWNhbFJlcGxpY2F0aW9uU2xvdHMoSW52YWxpZE9pZCxJbnZhbGlkVHJhbnNh Y3Rpb25JZCk7CisKIAkJTFdMb2NrQWNxdWlyZShDb250cm9sRmlsZUxvY2ssIExXX0VYQ0xV U0lWRSk7CiAJCUNvbnRyb2xGaWxlLT5NYXhDb25uZWN0aW9ucyA9IHhscmVjLk1heENvbm5l Y3Rpb25zOwogCQlDb250cm9sRmlsZS0+bWF4X3dvcmtlcl9wcm9jZXNzZXMgPSB4bHJlYy5t YXhfd29ya2VyX3Byb2Nlc3NlczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv c3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNx bAppbmRleCAyZDgxMDRiMDkwLi4wZTBiOGVmNDE1IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9z eXN0ZW1fdmlld3Muc3FsCkBAIC0xMDY1LDcgKzEwNjUsOCBAQCBDUkVBVEUgVklFVyBwZ19z dGF0X2RhdGFiYXNlX2NvbmZsaWN0cyBBUwogICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJf Y29uZmxpY3RfbG9jayhELm9pZCkgQVMgY29uZmxfbG9jaywKICAgICAgICAgICAgIHBnX3N0 YXRfZ2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90KEQub2lkKSBBUyBjb25mbF9zbmFwc2hvdCwK ICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2J1ZmZlcnBpbihELm9pZCkg QVMgY29uZmxfYnVmZmVycGluLAotICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxp Y3Rfc3RhcnR1cF9kZWFkbG9jayhELm9pZCkgQVMgY29uZmxfZGVhZGxvY2sKKyAgICAgICAg ICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2soRC5vaWQpIEFT IGNvbmZsX2RlYWRsb2NrLAorICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rf bG9naWNhbHNsb3QoRC5vaWQpIEFTIGNvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdAogICAgIEZS T00gcGdfZGF0YWJhc2UgRDsKIAogQ1JFQVRFIFZJRVcgcGdfc3RhdF91c2VyX2Z1bmN0aW9u cyBBUwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dp Y2FsZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1 bmNzLmMKaW5kZXggNWMyMzE3ODU3MC4uODQzMmRlMjE5YiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYworKysgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCkBAIC0yMTYsMTEgKzIx NiwxNCBAQCBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXNfZ3V0cyhGdW5jdGlvbkNhbGxJ bmZvIGZjaW5mbywgYm9vbCBjb25maXJtLCBib29sIGJpbgogCiAJCS8qCiAJCSAqIEFmdGVy IHRoZSBzYW5pdHkgY2hlY2tzIGluIENyZWF0ZURlY29kaW5nQ29udGV4dCwgbWFrZSBzdXJl IHRoZQotCQkgKiByZXN0YXJ0X2xzbiBpcyB2YWxpZC4gIEF2b2lkICJjYW5ub3QgZ2V0IGNo YW5nZXMiIHdvcmRpbmcgaW4gdGhpcworCQkgKiByZXN0YXJ0X2xzbiBpcyB2YWxpZCBvciBi b3RoIHhtaW4gYW5kIGNhdGFsb2dfeG1pbiBhcmUgdmFsaWQuCisJCSAqIEF2b2lkICJjYW5u b3QgZ2V0IGNoYW5nZXMiIHdvcmRpbmcgaW4gdGhpcwogCQkgKiBlcnJtc2cgYmVjYXVzZSB0 aGF0J2QgYmUgY29uZnVzaW5nbHkgYW1iaWd1b3VzIGFib3V0IG5vIGNoYW5nZXMKIAkJICog YmVpbmcgYXZhaWxhYmxlLgogCQkgKi8KLQkJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQoTXlS ZXBsaWNhdGlvblNsb3QtPmRhdGEucmVzdGFydF9sc24pKQorCQlpZiAoWExvZ1JlY1B0cklz SW52YWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbikKKwkJCXx8ICgh VHJhbnNhY3Rpb25JZElzVmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEueG1pbikKKwkJ CQkmJiAhVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuY2F0 YWxvZ194bWluKSkpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RF X09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKIAkJCQkJIGVycm1zZygiY2Fu IG5vIGxvbmdlciBnZXQgY2hhbmdlcyBmcm9tIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIiwK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCA4OTlhY2ZkOTEyLi42YTRlMmNkMTliIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC0xNDMyLDYgKzE0MzIsMjE1IEBAIHJlc3Rh cnQ6CiAJcmV0dXJuIGludmFsaWRhdGVkOwogfQogCisvKgorICogSGVscGVyIGZvciBJbnZh bGlkYXRlQ29uZmxpY3RpbmdMb2dpY2FsUmVwbGljYXRpb25TbG90IC0tIGFjcXVpcmVzIHRo ZSBnaXZlbiBzbG90CisgKiBhbmQgbWFyayBpdCBpbnZhbGlkLCBpZiBuZWNlc3NhcnkgYW5k IHBvc3NpYmxlLgorICoKKyAqIFJldHVybnMgd2hldGhlciBSZXBsaWNhdGlvblNsb3RDb250 cm9sTG9jayB3YXMgcmVsZWFzZWQgaW4gdGhlIGludGVyaW0gKGFuZAorICogaW4gdGhhdCBj YXNlIHdlJ3JlIG5vdCBob2xkaW5nIHRoZSBsb2NrIGF0IHJldHVybiwgb3RoZXJ3aXNlIHdl IGFyZSkuCisgKgorICogVGhpcyBpcyBpbmhlcmVudGx5IHJhY3ksIGJlY2F1c2Ugd2UgcmVs ZWFzZSB0aGUgTFdMb2NrCisgKiBmb3Igc3lzY2FsbHMsIHNvIGNhbGxlciBtdXN0IHJlc3Rh cnQgaWYgd2UgcmV0dXJuIHRydWUuCisgKi8KK3N0YXRpYyBib29sCitJbnZhbGlkYXRlUG9z c2libHlDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3QoUmVwbGljYXRpb25TbG90 ICpzLCBUcmFuc2FjdGlvbklkIHhpZCkKK3sKKwlpbnQJCWxhc3Rfc2lnbmFsZWRfcGlkID0g MDsKKwlib29sCXJlbGVhc2VkX2xvY2sgPSBmYWxzZTsKKworCWZvciAoOzspCisJeworCQlU cmFuc2FjdGlvbklkIHNsb3RfeG1pbjsKKwkJVHJhbnNhY3Rpb25JZCBzbG90X2NhdGFsb2df eG1pbjsKKwkJTmFtZURhdGEJc2xvdG5hbWU7CisJCWludAkJCWFjdGl2ZV9waWQgPSAwOwor CisJCUFzc2VydChMV0xvY2tIZWxkQnlNZUluTW9kZShSZXBsaWNhdGlvblNsb3RDb250cm9s TG9jaywgTFdfU0hBUkVEKSk7CisKKwkJaWYgKCFzLT5pbl91c2UpCisJCXsKKwkJCWlmIChy ZWxlYXNlZF9sb2NrKQorCQkJCUxXTG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJv bExvY2spOworCQkJYnJlYWs7CisJCX0KKworCQkvKgorCQkgKiBDaGVjayBpZiB0aGUgc2xv dCBuZWVkcyB0byBiZSBpbnZhbGlkYXRlZC4gSWYgaXQgbmVlZHMgdG8gYmUKKwkJICogaW52 YWxpZGF0ZWQsIGFuZCBpcyBub3QgY3VycmVudGx5IGFjcXVpcmVkLCBhY3F1aXJlIGl0IGFu ZCBtYXJrIGl0CisJCSAqIGFzIGhhdmluZyBiZWVuIGludmFsaWRhdGVkLiBXZSBkbyB0aGlz IHdpdGggdGhlIHNwaW5sb2NrIGhlbGQgdG8KKwkJICogYXZvaWQgcmFjZSBjb25kaXRpb25z IC0tIGZvciBleGFtcGxlIHRoZSB4bWluKHMpIGNvdWxkIG1vdmUgZm9yd2FyZAorCQkgKiAs IG9yIHRoZSBzbG90IGNvdWxkIGJlIGRyb3BwZWQuCisJCSAqLworCQlTcGluTG9ja0FjcXVp cmUoJnMtPm11dGV4KTsKKworCQlzbG90X3htaW4gPSBzLT5kYXRhLnhtaW47CisJCXNsb3Rf Y2F0YWxvZ194bWluID0gcy0+ZGF0YS5jYXRhbG9nX3htaW47CisKKwkJLyoKKwkJICogSWYg dGhlIHNsb3QgaXMgYWxyZWFkeSBpbnZhbGlkIG9yIGlzIG5vdCBjb25mbGljdGluZywgd2Ug ZG9uJ3QgbmVlZCB0bworCQkgKiBkbyBhbnl0aGluZy4KKwkJICovCisKKwkJLyogc2xvdCBo YXMgYmVlbiBpbnZhbGlkYXRlZCAqLworCQlpZiAoKCFUcmFuc2FjdGlvbklkSXNWYWxpZChz bG90X3htaW4pICYmICFUcmFuc2FjdGlvbklkSXNWYWxpZChzbG90X2NhdGFsb2dfeG1pbikp CisJCQl8fAorCQkvKgorCQkgKiB3ZSBhcmUgbm90IGZvcmNpbmcgZm9yIGludmFsaWRhdGlv biBiZWNhdXNlIHRoZSB4aWQgaXMgdmFsaWQKKwkJICogYW5kIHRoaXMgaXMgYSBub24gY29u ZmxpY3Rpbmcgc2xvdAorCQkgKi8KKwkJCShUcmFuc2FjdGlvbklkSXNWYWxpZCh4aWQpICYm ICEoCisJCQkJKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHNsb3RfeG1pbikgJiYgVHJhbnNhY3Rp b25JZFByZWNlZGVzT3JFcXVhbHMoc2xvdF94bWluLCB4aWQpKQorCQkJCXx8CisJCQkJKFRy YW5zYWN0aW9uSWRJc1ZhbGlkKHNsb3RfY2F0YWxvZ194bWluKSAmJiBUcmFuc2FjdGlvbklk UHJlY2VkZXNPckVxdWFscyhzbG90X2NhdGFsb2dfeG1pbiwgeGlkKSkKKwkJCQkpKQorCQkJ KQorCQl7CisJCQlTcGluTG9ja1JlbGVhc2UoJnMtPm11dGV4KTsKKwkJCWlmIChyZWxlYXNl ZF9sb2NrKQorCQkJCUxXTG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2sp OworCQkJYnJlYWs7CisJCX0KKworCQlzbG90bmFtZSA9IHMtPmRhdGEubmFtZTsKKwkJYWN0 aXZlX3BpZCA9IHMtPmFjdGl2ZV9waWQ7CisKKwkJLyoKKwkJICogSWYgdGhlIHNsb3QgY2Fu IGJlIGFjcXVpcmVkLCBkbyBzbyBhbmQgbWFyayBpdCBpbnZhbGlkYXRlZAorCQkgKiBpbW1l ZGlhdGVseS4gIE90aGVyd2lzZSB3ZSdsbCBzaWduYWwgdGhlIG93bmluZyBwcm9jZXNzLCBi ZWxvdywgYW5kCisJCSAqIHJldHJ5LgorCQkgKi8KKwkJaWYgKGFjdGl2ZV9waWQgPT0gMCkK KwkJeworCQkJTXlSZXBsaWNhdGlvblNsb3QgPSBzOworCQkJcy0+YWN0aXZlX3BpZCA9IE15 UHJvY1BpZDsKKwkJCXMtPmRhdGEueG1pbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOworCQkJ cy0+ZGF0YS5jYXRhbG9nX3htaW4gPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwkJfQorCisJ CVNwaW5Mb2NrUmVsZWFzZSgmcy0+bXV0ZXgpOworCisJCWlmIChhY3RpdmVfcGlkICE9IDAp CisJCXsKKwkJCS8qCisJCQkgKiBQcmVwYXJlIHRoZSBzbGVlcCBvbiB0aGUgc2xvdCdzIGNv bmRpdGlvbiB2YXJpYWJsZSBiZWZvcmUKKwkJCSAqIHJlbGVhc2luZyB0aGUgbG9jaywgdG8g Y2xvc2UgYSBwb3NzaWJsZSByYWNlIGNvbmRpdGlvbiBpZiB0aGUKKwkJCSAqIHNsb3QgaXMg cmVsZWFzZWQgYmVmb3JlIHRoZSBzbGVlcCBiZWxvdy4KKwkJCSAqLworCisJCQlDb25kaXRp b25WYXJpYWJsZVByZXBhcmVUb1NsZWVwKCZzLT5hY3RpdmVfY3YpOworCisJCQlMV0xvY2tS ZWxlYXNlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrKTsKKwkJCXJlbGVhc2VkX2xvY2sg PSB0cnVlOworCisJCQkvKgorCQkJICogU2lnbmFsIHRvIHRlcm1pbmF0ZSB0aGUgcHJvY2Vz cyB0aGF0IG93bnMgdGhlIHNsb3QsIGlmIHdlCisJCQkgKiBoYXZlbid0IGFscmVhZHkgc2ln bmFsbGVkIGl0LiAgKEF2b2lkYW5jZSBvZiByZXBlYXRlZAorCQkJICogc2lnbmFsbGluZyBp cyB0aGUgb25seSByZWFzb24gZm9yIHRoZXJlIHRvIGJlIGEgbG9vcCBpbiB0aGlzCisJCQkg KiByb3V0aW5lOyBvdGhlcndpc2Ugd2UgY291bGQgcmVseSBvbiBjYWxsZXIncyByZXN0YXJ0 IGxvb3AuKQorCQkJICoKKwkJCSAqIFRoZXJlIGlzIHRoZSByYWNlIGNvbmRpdGlvbiB0aGF0 IG90aGVyIHByb2Nlc3MgbWF5IG93biB0aGUgc2xvdAorCQkJICogYWZ0ZXIgaXRzIGN1cnJl bnQgb3duZXIgcHJvY2VzcyBpcyB0ZXJtaW5hdGVkIGFuZCBiZWZvcmUgdGhpcworCQkJICog cHJvY2VzcyBvd25zIGl0LiBUbyBoYW5kbGUgdGhhdCwgd2Ugc2lnbmFsIG9ubHkgaWYgdGhl IFBJRCBvZgorCQkJICogdGhlIG93bmluZyBwcm9jZXNzIGhhcyBjaGFuZ2VkIGZyb20gdGhl IHByZXZpb3VzIHRpbWUuIChUaGlzCisJCQkgKiBsb2dpYyBhc3N1bWVzIHRoYXQgdGhlIHNh bWUgUElEIGlzIG5vdCByZXVzZWQgdmVyeSBxdWlja2x5LikKKwkJCSAqLworCQkJaWYgKGxh c3Rfc2lnbmFsZWRfcGlkICE9IGFjdGl2ZV9waWQpCisJCQl7CisJCQkJZXJlcG9ydChMT0cs CisJCQkJCQkoZXJybXNnKCJ0ZXJtaW5hdGluZyBwcm9jZXNzICVkIGJlY2F1c2UgcmVwbGlj YXRpb24gc2xvdCBcIiVzXCIgY29uZmxpY3RzIHdpdGggcmVjb3ZlcnkiLAorCQkJCQkJCQlh Y3RpdmVfcGlkLCBOYW1lU3RyKHNsb3RuYW1lKSkpKTsKKworCQkJCSh2b2lkKSBTZW5kUHJv Y1NpZ25hbChhY3RpdmVfcGlkLCBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxT TE9ULCBJbnZhbGlkQmFja2VuZElkKTsKKwkJCQlsYXN0X3NpZ25hbGVkX3BpZCA9IGFjdGl2 ZV9waWQ7CisJCQl9CisKKwkJCS8qIFdhaXQgdW50aWwgdGhlIHNsb3QgaXMgcmVsZWFzZWQu ICovCisJCQlDb25kaXRpb25WYXJpYWJsZVNsZWVwKCZzLT5hY3RpdmVfY3YsCisJCQkJCQkJ CQlXQUlUX0VWRU5UX1JFUExJQ0FUSU9OX1NMT1RfRFJPUCk7CisKKwkJCS8qCisJCQkgKiBS ZS1hY3F1aXJlIGxvY2sgYW5kIHN0YXJ0IG92ZXI7IHdlIGV4cGVjdCB0byBpbnZhbGlkYXRl IHRoZQorCQkJICogc2xvdCBuZXh0IHRpbWUgKHVubGVzcyBhbm90aGVyIHByb2Nlc3MgYWNx dWlyZXMgdGhlIHNsb3QgaW4gdGhlCisJCQkgKiBtZWFudGltZSkuCisJCQkgKi8KKwkJCUxX TG9ja0FjcXVpcmUoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2ssIExXX1NIQVJFRCk7CisJ CQljb250aW51ZTsKKwkJfQorCQllbHNlCisJCXsKKwkJCS8qCisJCQkgKiBXZSBob2xkIHRo ZSBzbG90IG5vdyBhbmQgaGF2ZSBhbHJlYWR5IGludmFsaWRhdGVkIGl0OyBmbHVzaCBpdAor CQkJICogdG8gZW5zdXJlIHRoYXQgc3RhdGUgcGVyc2lzdHMuCisJCQkgKgorCQkJICogRG9u J3Qgd2FudCB0byBob2xkIFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrIGFjcm9zcyBmaWxl CisJCQkgKiBzeXN0ZW0gb3BlcmF0aW9ucywgc28gcmVsZWFzZSBpdCBub3cgYnV0IGJlIHN1 cmUgdG8gdGVsbCBjYWxsZXIKKwkJCSAqIHRvIHJlc3RhcnQgZnJvbSBzY3JhdGNoLgorCQkJ ICovCisJCQlMV0xvY2tSZWxlYXNlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrKTsKKwkJ CXJlbGVhc2VkX2xvY2sgPSB0cnVlOworCisJCQkvKiBNYWtlIHN1cmUgdGhlIGludmFsaWRh dGVkIHN0YXRlIHBlcnNpc3RzIGFjcm9zcyBzZXJ2ZXIgcmVzdGFydCAqLworCQkJUmVwbGlj YXRpb25TbG90TWFya0RpcnR5KCk7CisJCQlSZXBsaWNhdGlvblNsb3RTYXZlKCk7CisJCQlS ZXBsaWNhdGlvblNsb3RSZWxlYXNlKCk7CisJCQlwZ3N0YXRfZHJvcF9yZXBsc2xvdChzKTsK KworCQkJZXJlcG9ydChMT0csCisJCQkJCShlcnJtc2coImludmFsaWRhdGluZyBzbG90IFwi JXNcIiBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoIHJlY292ZXJ5IiwgTmFtZVN0cihzbG90 bmFtZSkpKSk7CisKKwkJCS8qIGRvbmUgd2l0aCB0aGlzIHNsb3QgZm9yIG5vdyAqLworCQkJ YnJlYWs7CisJCX0KKwl9CisKKwlBc3NlcnQoIXJlbGVhc2VkX2xvY2sgPT0gTFdMb2NrSGVs ZEJ5TWVJbk1vZGUoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2ssIExXX1NIQVJFRCkpOwor CisJcmV0dXJuIHJlbGVhc2VkX2xvY2s7Cit9CisKKy8qCisgKiBSZXNvbHZlIHJlY292ZXJ5 IGNvbmZsaWN0cyB3aXRoIGxvZ2ljYWwgc2xvdHMuCisgKgorICogV2hlbiB4aWQgaXMgdmFs aWQsIGl0IG1lYW5zIHRoYXQgd2UgYXJlIGFib3V0IHRvIHJlbW92ZSByb3dzIG9sZGVyIHRo YW4geGlkLgorICogVGhlcmVmb3JlIHdlIG5lZWQgdG8gaW52YWxpZGF0ZSBzbG90cyB0aGF0 IGRlcGVuZCBvbiBzZWVpbmcgdGhvc2Ugcm93cy4KKyAqIFdoZW4geGlkIGlzIGludmFsaWQs IGludmFsaWRhdGUgYWxsIGxvZ2ljYWwgc2xvdHMuIFRoaXMgaXMgcmVxdWlyZWQgd2hlbiB0 aGUKKyAqIG1hc3RlciB3YWxfbGV2ZWwgaXMgc2V0IGJhY2sgdG8gcmVwbGljYSwgc28gZXhp c3RpbmcgbG9naWNhbCBzbG90cyBuZWVkIHRvCisgKiBiZSBpbnZhbGlkYXRlZC4KKyAqLwor dm9pZAorSW52YWxpZGF0ZUNvbmZsaWN0aW5nTG9naWNhbFJlcGxpY2F0aW9uU2xvdHMoT2lk IGRib2lkLCBUcmFuc2FjdGlvbklkIHhpZCkKK3sKKworCUFzc2VydChtYXhfcmVwbGljYXRp b25fc2xvdHMgPj0gMCk7CisKKwlpZiAobWF4X3JlcGxpY2F0aW9uX3Nsb3RzID09IDApCisJ CXJldHVybjsKK3Jlc3RhcnQ6CisJTFdMb2NrQWNxdWlyZShSZXBsaWNhdGlvblNsb3RDb250 cm9sTG9jaywgTFdfU0hBUkVEKTsKKwlmb3IgKGludCBpID0gMDsgaSA8IG1heF9yZXBsaWNh dGlvbl9zbG90czsgaSsrKQorCXsKKwkJUmVwbGljYXRpb25TbG90ICpzID0gJlJlcGxpY2F0 aW9uU2xvdEN0bC0+cmVwbGljYXRpb25fc2xvdHNbaV07CisKKwkJaWYgKCFzLT5pbl91c2Up CisJCQljb250aW51ZTsKKworCQkvKiBXZSBhcmUgb25seSBkZWFsaW5nIHdpdGggKmxvZ2lj YWwqIHNsb3QgY29uZmxpY3RzLiAqLworCQlpZiAoIVNsb3RJc0xvZ2ljYWwocykpCisJCQlj b250aW51ZTsKKworCQkvKiBub3Qgb3VyIGRhdGFiYXNlIGFuZCB3ZSBkb24ndCB3YW50IGFs bCB0aGUgZGF0YWJhc2UsIHNraXAgKi8KKwkJaWYgKHMtPmRhdGEuZGF0YWJhc2UgIT0gZGJv aWQgJiYgVHJhbnNhY3Rpb25JZElzVmFsaWQoeGlkKSkKKwkJCWNvbnRpbnVlOworCisJCWlm IChJbnZhbGlkYXRlUG9zc2libHlDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3Qo cywgeGlkKSkKKwkJeworCQkJLyogaWYgdGhlIGxvY2sgd2FzIHJlbGVhc2VkLCB3ZSBuZWVk IHRvIHJlc3RhcnQgZnJvbSBzY3JhdGNoICovCisJCQlnb3RvIHJlc3RhcnQ7CisJCX0KKwl9 CisJTFdMb2NrUmVsZWFzZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jayk7Cit9CisKIC8q CiAgKiBGbHVzaCBhbGwgcmVwbGljYXRpb24gc2xvdHMgdG8gZGlzay4KICAqCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IGMxMWJiMzcxNmYuLjY0ZmJkNTJlMzQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC0xMjUzLDYgKzEyNTMs MTQgQEAgU3RhcnRMb2dpY2FsUmVwbGljYXRpb24oU3RhcnRSZXBsaWNhdGlvbkNtZCAqY21k KQogCiAJUmVwbGljYXRpb25TbG90QWNxdWlyZShjbWQtPnNsb3RuYW1lLCB0cnVlKTsKIAor CWlmICghVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEueG1p bikKKwkJICYmICFUcmFuc2FjdGlvbklkSXNWYWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0 YS5jYXRhbG9nX3htaW4pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCSBlcnJtc2coImNh bm5vdCByZWFkIGZyb20gbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiIsCisJCQkJ CQljbWQtPnNsb3RuYW1lKSwKKwkJCQkgZXJyZGV0YWlsKCJUaGlzIHNsb3QgaGFzIGJlZW4g aW52YWxpZGF0ZWQgYmVjYXVzZSBpdCB3YXMgY29uZmxpY3Rpbmcgd2l0aCByZWNvdmVyeS4i KSkpOworCiAJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRh dGEucmVzdGFydF9sc24pKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNP REVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdl L2lwYy9wcm9jYXJyYXkuYwppbmRleCAwMTc2ZjMwMjcwLi5kNjhiNzUyYzkxIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYworKysgYi9zcmMvYmFj a2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYwpAQCAtMzQ3Nyw2ICszNDc3LDEwIEBAIFNp Z25hbFZpcnR1YWxUcmFuc2FjdGlvbihWaXJ0dWFsVHJhbnNhY3Rpb25JZCB2eGlkLCBQcm9j U2lnbmFsUmVhc29uIHNpZ21vZGUsCiAKIAkJR0VUX1ZYSURfRlJPTV9QR1BST0MocHJvY3Z4 aWQsICpwcm9jKTsKIAorCQkvKgorCQkgKiBOb3RlOiB2eGlkLmxvY2FsVHJhbnNhY3Rpb25J ZCBjYW4gYmUgaW52YWxpZCwgd2hpY2ggbWVhbnMgdGhlCisJCSAqIHJlcXVlc3QgaXMgdG8g c2lnbmFsIHRoZSBwaWQgdGhhdCBpcyBub3QgcnVubmluZyBhIHRyYW5zYWN0aW9uLgorCQkg Ki8KIAkJaWYgKHByb2N2eGlkLmJhY2tlbmRJZCA9PSB2eGlkLmJhY2tlbmRJZCAmJgogCQkJ cHJvY3Z4aWQubG9jYWxUcmFuc2FjdGlvbklkID09IHZ4aWQubG9jYWxUcmFuc2FjdGlvbklk KQogCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFs LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMKaW5kZXggNzc2NzY1 N2YyNy4uMWIzYmY5NDNjMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMv cHJvY3NpZ25hbC5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwu YwpAQCAtNjY5LDYgKzY2OSw5IEBAIHByb2NzaWduYWxfc2lndXNyMV9oYW5kbGVyKFNJR05B TF9BUkdTKQogCWlmIChDaGVja1Byb2NTaWduYWwoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElD VF9TTkFQU0hPVCkpCiAJCVJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUFJPQ1NJR19SRUNP VkVSWV9DT05GTElDVF9TTkFQU0hPVCk7CiAKKwlpZiAoQ2hlY2tQcm9jU2lnbmFsKFBST0NT SUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QpKQorCQlSZWNvdmVyeUNvbmZsaWN0 SW50ZXJydXB0KFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QpOworCiAJ aWYgKENoZWNrUHJvY1NpZ25hbChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NUQVJUVVBf REVBRExPQ0spKQogCQlSZWNvdmVyeUNvbmZsaWN0SW50ZXJydXB0KFBST0NTSUdfUkVDT1ZF UllfQ09ORkxJQ1RfU1RBUlRVUF9ERUFETE9DSyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0 YW5kYnkuYwppbmRleCBmNDMyMjlkZmRhLi5mNzhjZjVkZTY4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFn ZS9pcGMvc3RhbmRieS5jCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAidXRpbHMvcHNf c3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZW91dC5oIgogI2luY2x1ZGUgInV0aWxz L3RpbWVzdGFtcC5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKIAogLyogVXNl ci1zZXR0YWJsZSBHVUMgcGFyYW1ldGVycyAqLwogaW50CQkJdmFjdXVtX2RlZmVyX2NsZWFu dXBfYWdlOwpAQCAtNDc1LDYgKzQ3Niw3IEBAIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0 aFZpcnR1YWxYSURzKFZpcnR1YWxUcmFuc2FjdGlvbklkICp3YWl0bGlzdCwKICAqLwogdm9p ZAogUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBz bmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCWJvb2wgaXNDYXRhbG9nUmVsLAog CQkJCQkJCQkJUmVsRmlsZUxvY2F0b3IgbG9jYXRvcikKIHsKIAlWaXJ0dWFsVHJhbnNhY3Rp b25JZCAqYmFja2VuZHM7CkBAIC00OTksNiArNTAxLDkgQEAgUmVzb2x2ZVJlY292ZXJ5Q29u ZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpv biwKIAkJCQkJCQkJCQkgICBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9ULAog CQkJCQkJCQkJCSAgIFdBSVRfRVZFTlRfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QsCiAJ CQkJCQkJCQkJICAgdHJ1ZSk7CisKKwlpZiAoaXNDYXRhbG9nUmVsKQorCQlJbnZhbGlkYXRl Q29uZmxpY3RpbmdMb2dpY2FsUmVwbGljYXRpb25TbG90cyhsb2NhdG9yLmRiT2lkLCBzbmFw c2hvdENvbmZsaWN0SG9yaXpvbik7CiB9CiAKIC8qCkBAIC01MDcsNiArNTEyLDcgQEAgUmVz b2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBzbmFwc2hv dENvbmZsaWN0SG9yaXpvbiwKICAqLwogdm9pZAogUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RX aXRoU25hcHNob3RGdWxsWGlkKEZ1bGxUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RI b3Jpem9uLAorCQkJCQkJCQkJCSAgIGJvb2wgaXNDYXRhbG9nUmVsLAogCQkJCQkJCQkJCSAg IFJlbEZpbGVMb2NhdG9yIGxvY2F0b3IpCiB7CiAJLyoKQEAgLTUyNSw3ICs1MzEsOSBAQCBS ZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdEZ1bGxYaWQoRnVsbFRyYW5zYWN0 aW9uSWQgc25hcHNob3RDb25mbGljdEhvcgogCQlUcmFuc2FjdGlvbklkIHRydW5jYXRlZDsK IAogCQl0cnVuY2F0ZWQgPSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoc25hcHNob3RDb25m bGljdEhvcml6b24pOwotCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh0 cnVuY2F0ZWQsIGxvY2F0b3IpOworCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFw c2hvdCh0cnVuY2F0ZWQsCisJCQkJCQkJCQkJCWlzQ2F0YWxvZ1JlbCwKKwkJCQkJCQkJCQkJ bG9jYXRvcik7CiAJfQogfQogCkBAIC0xNDg2LDYgKzE0OTQsOSBAQCBnZXRfcmVjb3Zlcnlf Y29uZmxpY3RfZGVzYyhQcm9jU2lnbmFsUmVhc29uIHJlYXNvbikKIAkJY2FzZSBQUk9DU0lH X1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9UOgogCQkJcmVhc29uRGVzYyA9IF8oInJlY292 ZXJ5IGNvbmZsaWN0IG9uIHNuYXBzaG90Iik7CiAJCQlicmVhazsKKwkJY2FzZSBQUk9DU0lH X1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UOgorCQkJcmVhc29uRGVzYyA9IF8oInJl Y292ZXJ5IGNvbmZsaWN0IG9uIHJlcGxpY2F0aW9uIHNsb3QiKTsKKwkJCWJyZWFrOwogCQlj YXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU1RBUlRVUF9ERUFETE9DSzoKIAkJCXJl YXNvbkRlc2MgPSBfKCJyZWNvdmVyeSBjb25mbGljdCBvbiBidWZmZXIgZGVhZGxvY2siKTsK IAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIv c3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IDAxZDI2NGI1YWIuLjA1ZGE4M2Jm NWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMv YmFja2VuZC90Y29wL3Bvc3RncmVzLmMKQEAgLTI0ODIsNiArMjQ4Miw5IEBAIGVycmRldGFp bF9yZWNvdmVyeV9jb25mbGljdCh2b2lkKQogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09O RkxJQ1RfU05BUFNIT1Q6CiAJCQllcnJkZXRhaWwoIlVzZXIgcXVlcnkgbWlnaHQgaGF2ZSBu ZWVkZWQgdG8gc2VlIHJvdyB2ZXJzaW9ucyB0aGF0IG11c3QgYmUgcmVtb3ZlZC4iKTsKIAkJ CWJyZWFrOworCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Q6 CisJCQllcnJkZXRhaWwoIlVzZXIgd2FzIHVzaW5nIHRoZSBsb2dpY2FsIHNsb3QgdGhhdCBt dXN0IGJlIGRyb3BwZWQuIik7CisJCQlicmVhazsKIAkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZ X0NPTkZMSUNUX1NUQVJUVVBfREVBRExPQ0s6CiAJCQllcnJkZXRhaWwoIlVzZXIgdHJhbnNh Y3Rpb24gY2F1c2VkIGJ1ZmZlciBkZWFkbG9jayB3aXRoIHJlY292ZXJ5LiIpOwogCQkJYnJl YWs7CkBAIC0zMDUxLDYgKzMwNTQsMjUgQEAgUmVjb3ZlcnlDb25mbGljdEludGVycnVwdChQ cm9jU2lnbmFsUmVhc29uIHJlYXNvbikKIAkJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05G TElDVF9MT0NLOgogCQkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1RBQkxFU1BB Q0U6CiAJCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1Q6CisJCQlj YXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Q6CisJCQkJLyoKKwkJ CQkgKiBGb3IgY29uZmxpY3RzIHRoYXQgcmVxdWlyZSBhIGxvZ2ljYWwgc2xvdCB0byBiZSBp bnZhbGlkYXRlZCwgdGhlCisJCQkJICogcmVxdWlyZW1lbnQgaXMgZm9yIHRoZSBzaWduYWwg cmVjZWl2ZXIgdG8gcmVsZWFzZSB0aGUgc2xvdCwKKwkJCQkgKiBzbyB0aGF0IGl0IGNvdWxk IGJlIGludmFsaWRhdGVkIGJ5IHRoZSBzaWduYWwgc2VuZGVyLiBTbyBmb3IKKwkJCQkgKiBu b3JtYWwgYmFja2VuZHMsIHRoZSB0cmFuc2FjdGlvbiBzaG91bGQgYmUgYWJvcnRlZCwganVz dAorCQkJCSAqIGxpa2UgZm9yIG90aGVyIHJlY292ZXJ5IGNvbmZsaWN0cy4gQnV0IGlmIGl0 J3Mgd2Fsc2VuZGVyIG9uCisJCQkJICogc3RhbmRieSwgdGhlbiBpdCBoYXMgdG8gYmUga2ls bGVkIHNvIGFzIHRvIHJlbGVhc2UgYW4KKwkJCQkgKiBhY3F1aXJlZCBsb2dpY2FsIHNsb3Qu CisJCQkJICovCisJCQkJaWYgKGFtX2Nhc2NhZGluZ193YWxzZW5kZXIgJiYKKwkJCQkJcmVh c29uID09IFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QgJiYKKwkJCQkJ TXlSZXBsaWNhdGlvblNsb3QgJiYgU2xvdElzTG9naWNhbChNeVJlcGxpY2F0aW9uU2xvdCkp CisJCQkJeworCQkJCQlSZWNvdmVyeUNvbmZsaWN0UGVuZGluZyA9IHRydWU7CisJCQkJCVF1 ZXJ5Q2FuY2VsUGVuZGluZyA9IHRydWU7CisJCQkJCUludGVycnVwdFBlbmRpbmcgPSB0cnVl OworCQkJCQlicmVhazsKKwkJCQl9CiAKIAkJCQkvKgogCQkJCSAqIElmIHdlIGFyZW4ndCBp biBhIHRyYW5zYWN0aW9uIGFueSBsb25nZXIgdGhlbiBpZ25vcmUuCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jCmluZGV4IDI5MDA4NmZjMjIu LjdhODkwOWQ4YjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bn c3RhdF9kYXRhYmFzZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3Rh dF9kYXRhYmFzZS5jCkBAIC0xMDksNiArMTA5LDkgQEAgcGdzdGF0X3JlcG9ydF9yZWNvdmVy eV9jb25mbGljdChpbnQgcmVhc29uKQogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJ Q1RfQlVGRkVSUElOOgogCQkJZGJlbnRyeS0+Y29uZmxpY3RfYnVmZmVycGluKys7CiAJCQli cmVhazsKKwkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UOgor CQkJZGJlbnRyeS0+Y29uZmxpY3RfbG9naWNhbHNsb3QrKzsKKwkJCWJyZWFrOwogCQljYXNl IFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU1RBUlRVUF9ERUFETE9DSzoKIAkJCWRiZW50 cnktPmNvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2srKzsKIAkJCWJyZWFrOwpAQCAtMzg3LDYg KzM5MCw3IEBAIHBnc3RhdF9kYXRhYmFzZV9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVu dHJ5X3JlZiwgYm9vbCBub3dhaXQpCiAJUEdTVEFUX0FDQ1VNX0RCQ09VTlQoY29uZmxpY3Rf dGFibGVzcGFjZSk7CiAJUEdTVEFUX0FDQ1VNX0RCQ09VTlQoY29uZmxpY3RfbG9jayk7CiAJ UEdTVEFUX0FDQ1VNX0RCQ09VTlQoY29uZmxpY3Rfc25hcHNob3QpOworCVBHU1RBVF9BQ0NV TV9EQkNPVU5UKGNvbmZsaWN0X2xvZ2ljYWxzbG90KTsKIAlQR1NUQVRfQUNDVU1fREJDT1VO VChjb25mbGljdF9idWZmZXJwaW4pOwogCVBHU1RBVF9BQ0NVTV9EQkNPVU5UKGNvbmZsaWN0 X3N0YXJ0dXBfZGVhZGxvY2spOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvcGdzdGF0ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5j CmluZGV4IDQ2Zjk4ZmQ2N2YuLjQxZWI2MjU2ZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9w Z3N0YXRmdW5jcy5jCkBAIC0xMDU1LDYgKzEwNTUsOCBAQCBQR19TVEFUX0dFVF9EQkVOVFJZ X0lOVDY0KHhhY3RfY29tbWl0KQogLyogcGdfc3RhdF9nZXRfZGJfeGFjdF9yb2xsYmFjayAq LwogUEdfU1RBVF9HRVRfREJFTlRSWV9JTlQ2NCh4YWN0X3JvbGxiYWNrKQogCisvKiBwZ19z dGF0X2dldF9kYl9jb25mbGljdF9sb2dpY2Fsc2xvdCAqLworUEdfU1RBVF9HRVRfREJFTlRS WV9JTlQ2NChjb25mbGljdF9sb2dpY2Fsc2xvdCkKIAogRGF0dW0KIHBnX3N0YXRfZ2V0X2Ri X3N0YXRfcmVzZXRfdGltZShQR19GVU5DVElPTl9BUkdTKQpAQCAtMTA4OCw2ICsxMDkwLDcg QEAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYWxsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJl c3VsdCA9IChpbnQ2NCkgKGRiZW50cnktPmNvbmZsaWN0X3RhYmxlc3BhY2UgKwogCQkJCQkJ ICBkYmVudHJ5LT5jb25mbGljdF9sb2NrICsKIAkJCQkJCSAgZGJlbnRyeS0+Y29uZmxpY3Rf c25hcHNob3QgKworCQkJCQkJICBkYmVudHJ5LT5jb25mbGljdF9sb2dpY2Fsc2xvdCArCiAJ CQkJCQkgIGRiZW50cnktPmNvbmZsaWN0X2J1ZmZlcnBpbiArCiAJCQkJCQkgIGRiZW50cnkt PmNvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2spOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dAppbmRleCA5OGQ5MGQ5MzM4Li4yMWRkNjVhNDgzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQKQEAgLTU1NDYsNiArNTU0NiwxMSBAQAogICBwcm9uYW1lID0+ICdwZ19zdGF0X2dl dF9kYl9jb25mbGljdF9zbmFwc2hvdCcsIHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcGFy YWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29p ZCcsCiAgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3QnIH0s Cit7IG9pZCA9PiAnOTkwMScsCisgIGRlc2NyID0+ICdzdGF0aXN0aWNzOiByZWNvdmVyeSBj b25mbGljdHMgaW4gZGF0YWJhc2UgY2F1c2VkIGJ5IGxvZ2ljYWwgcmVwbGljYXRpb24gc2xv dCcsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90 JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5 cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKKyAgcHJvc3JjID0+ICdwZ19z dGF0X2dldF9kYl9jb25mbGljdF9sb2dpY2Fsc2xvdCcgfSwKIHsgb2lkID0+ICczMDY4JywK ICAgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IHJlY292ZXJ5IGNvbmZsaWN0cyBpbiBkYXRhYmFz ZSBjYXVzZWQgYnkgc2hhcmVkIGJ1ZmZlciBwaW4nLAogICBwcm9uYW1lID0+ICdwZ19zdGF0 X2dldF9kYl9jb25mbGljdF9idWZmZXJwaW4nLCBwcm92b2xhdGlsZSA9PiAncycsCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCmlu ZGV4IGEzZGY4ZDI3YzMuLjdmZmNlODRkMDcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bn c3RhdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCkBAIC0yOTEsNiArMjkxLDcgQEAg dHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXREQkVudHJ5CiAJUGdTdGF0X0NvdW50ZXIgY29u ZmxpY3RfdGFibGVzcGFjZTsKIAlQZ1N0YXRfQ291bnRlciBjb25mbGljdF9sb2NrOwogCVBn U3RhdF9Db3VudGVyIGNvbmZsaWN0X3NuYXBzaG90OworCVBnU3RhdF9Db3VudGVyIGNvbmZs aWN0X2xvZ2ljYWxzbG90OwogCVBnU3RhdF9Db3VudGVyIGNvbmZsaWN0X2J1ZmZlcnBpbjsK IAlQZ1N0YXRfQ291bnRlciBjb25mbGljdF9zdGFydHVwX2RlYWRsb2NrOwogCVBnU3RhdF9D b3VudGVyIHRlbXBfZmlsZXM7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlv bi9zbG90LmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKaW5kZXggNjVmMmM3 NDIzOS4uMGVkMWQ4YWYyOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v c2xvdC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaApAQCAtMjE2LDYg KzIxNiw3IEBAIGV4dGVybiBYTG9nUmVjUHRyIFJlcGxpY2F0aW9uU2xvdHNDb21wdXRlTG9n aWNhbFJlc3RhcnRMU04odm9pZCk7CiBleHRlcm4gYm9vbCBSZXBsaWNhdGlvblNsb3RzQ291 bnREQlNsb3RzKE9pZCBkYm9pZCwgaW50ICpuc2xvdHMsIGludCAqbmFjdGl2ZSk7CiBleHRl cm4gdm9pZCBSZXBsaWNhdGlvblNsb3RzRHJvcERCU2xvdHMoT2lkIGRib2lkKTsKIGV4dGVy biBib29sIEludmFsaWRhdGVPYnNvbGV0ZVJlcGxpY2F0aW9uU2xvdHMoWExvZ1NlZ05vIG9s ZGVzdFNlZ25vKTsKK2V4dGVybiB2b2lkIEludmFsaWRhdGVDb25mbGljdGluZ0xvZ2ljYWxS ZXBsaWNhdGlvblNsb3RzKE9pZCBkYm9pZCwgVHJhbnNhY3Rpb25JZCB4aWQpOwogZXh0ZXJu IFJlcGxpY2F0aW9uU2xvdCAqU2VhcmNoTmFtZWRSZXBsaWNhdGlvblNsb3QoY29uc3QgY2hh ciAqbmFtZSwgYm9vbCBuZWVkX2xvY2spOwogZXh0ZXJuIGludAlSZXBsaWNhdGlvblNsb3RJ bmRleChSZXBsaWNhdGlvblNsb3QgKnNsb3QpOwogZXh0ZXJuIGJvb2wgUmVwbGljYXRpb25T bG90TmFtZShpbnQgaW5kZXgsIE5hbWUgbmFtZSk7CkBAIC0yMjcsNSArMjI4LDYgQEAgZXh0 ZXJuIHZvaWQgQ2hlY2tQb2ludFJlcGxpY2F0aW9uU2xvdHModm9pZCk7CiAKIGV4dGVybiB2 b2lkIENoZWNrU2xvdFJlcXVpcmVtZW50cyh2b2lkKTsKIGV4dGVybiB2b2lkIENoZWNrU2xv dFBlcm1pc3Npb25zKHZvaWQpOworZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxp Y3RXaXRoTG9naWNhbFNsb3RzKE9pZCBkYm9pZCwgVHJhbnNhY3Rpb25JZCB4aWQsIGNoYXIg KnJlYXNvbik7CiAKICNlbmRpZgkJCQkJCQkvKiBTTE9UX0ggKi8KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9w cm9jc2lnbmFsLmgKaW5kZXggZWU2MzY5MDBmMy4uNTYwOTZiZDNlMiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvc3Rv cmFnZS9wcm9jc2lnbmFsLmgKQEAgLTQxLDYgKzQxLDcgQEAgdHlwZWRlZiBlbnVtCiAJUFJP Q1NJR19SRUNPVkVSWV9DT05GTElDVF9UQUJMRVNQQUNFLAogCVBST0NTSUdfUkVDT1ZFUllf Q09ORkxJQ1RfTE9DSywKIAlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9ULAor CVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QsCiAJUFJPQ1NJR19SRUNP VkVSWV9DT05GTElDVF9CVUZGRVJQSU4sCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9T VEFSVFVQX0RFQURMT0NLLAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0 YW5kYnkuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oCmluZGV4IGU0NmM5MzRj NTYuLjdkZjY2ZDYxMzYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRi eS5oCisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oCkBAIC0zMCw4ICszMCwx MCBAQCBleHRlcm4gdm9pZCBJbml0UmVjb3ZlcnlUcmFuc2FjdGlvbkVudmlyb25tZW50KHZv aWQpOwogZXh0ZXJuIHZvaWQgU2h1dGRvd25SZWNvdmVyeVRyYW5zYWN0aW9uRW52aXJvbm1l bnQodm9pZCk7CiAKIGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNu YXBzaG90KFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b24sCisJCQkJCQkJ CQkJCQlib29sIGlzQ2F0YWxvZ1JlbCwKIAkJCQkJCQkJCQkJCVJlbEZpbGVMb2NhdG9yIGxv Y2F0b3IpOwogZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNo b3RGdWxsWGlkKEZ1bGxUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAor CQkJCQkJCQkJCQkJCSAgIGJvb2wgaXNDYXRhbG9nUmVsLAogCQkJCQkJCQkJCQkJCSAgIFJl bEZpbGVMb2NhdG9yIGxvY2F0b3IpOwogZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29u ZmxpY3RXaXRoVGFibGVzcGFjZShPaWQgdHNpZCk7CiBleHRlcm4gdm9pZCBSZXNvbHZlUmVj b3ZlcnlDb25mbGljdFdpdGhEYXRhYmFzZShPaWQgZGJpZCk7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnVsZXMub3V0CmluZGV4IGZiOWY5MzZkNDMuLjFjYzYyYzQ0N2QgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0xODY4LDcgKzE4NjgsOCBAQCBwZ19z dGF0X2RhdGFiYXNlX2NvbmZsaWN0c3wgU0VMRUNUIGQub2lkIEFTIGRhdGlkLAogICAgIHBn X3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvY2soZC5vaWQpIEFTIGNvbmZsX2xvY2ssCiAgICAg cGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3QoZC5vaWQpIEFTIGNvbmZsX3NuYXBz aG90LAogICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2J1ZmZlcnBpbihkLm9pZCkgQVMg Y29uZmxfYnVmZmVycGluLAotICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3N0YXJ0dXBf ZGVhZGxvY2soZC5vaWQpIEFTIGNvbmZsX2RlYWRsb2NrCisgICAgcGdfc3RhdF9nZXRfZGJf Y29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jayhkLm9pZCkgQVMgY29uZmxfZGVhZGxvY2ssCisg ICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9naWNhbHNsb3QoZC5vaWQpIEFTIGNvbmZs X2FjdGl2ZV9sb2dpY2Fsc2xvdAogICAgRlJPTSBwZ19kYXRhYmFzZSBkOwogcGdfc3RhdF9n c3NhcGl8IFNFTEVDVCBzLnBpZCwKICAgICBzLmdzc19hdXRoIEFTIGdzc19hdXRoZW50aWNh dGVkLAotLSAKMi4zNC4xCgo= --------------3lv2fSPaQI1Eg2hE4cbl1QV0 Content-Type: text/plain; charset=UTF-8; name="v34-0001-Add-info-in-WAL-records-in-preparation-for-logic.patch" Content-Disposition: attachment; filename*0="v34-0001-Add-info-in-WAL-records-in-preparation-for-logic.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkZjFlZDZiNzczOTA4NDA3YzJjMTY1ZWVmMTYyN2ViNTRiZTExZDEwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVHVlLCAyMCBEZWMgMjAyMiAxOTo0NjowNiArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM0IDEvNl0gQWRkIGluZm8gaW4gV0FMIHJlY29yZHMgaW4gcHJlcGFyYXRpb24gZm9y 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 bW1pdCBhZGRzIGEgbmV3IGZpZWxkCmlzQ2F0YWxvZ1JlbCBpbiBzdWNoIFdBTCByZWNvcmRz IChhbmQgYSBuZXcgYml0IHNldCBpbiB0aGUKeGxfaGVhcF92aXNpYmxlIGZsYWdzIGZpZWxk KSwgdGhhdCBpcyB0cnVlIGZvciBjYXRhbG9nIHRhYmxlcywgc28gYXMgdG8KYXJyYW5nZSBm b3IgY29uZmxpY3QgaGFuZGxpbmcuCgpBdXRob3I6IEFuZHJlcyBGcmV1bmQgKGluIGFuIG9s ZGVyIHZlcnNpb24pLCBBbWl0IEtoYW5kZWthciwgQmVydHJhbmQKRHJvdXZvdApSZXZpZXdl ZC1CeTogQmVydHJhbmQgRHJvdXZvdCwgQW5kcmVzIEZyZXVuZCwgUm9iZXJ0IEhhYXMsIEZh YnJpemlvIGRlClJveWVzIE1lbGxvCi0tLQogY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVj dGVkL2RkbC5vdXQgIHwgNjUgKysrKysrKysrKysrKysrKysrKysrKysrKwogY29udHJpYi90 ZXN0X2RlY29kaW5nL3NxbC9kZGwuc3FsICAgICAgIHwgMjMgKysrKysrKysrCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgfCAxMSArKysrKwogc3JjL2JhY2tl bmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9naXN0L2dpc3R4bG9nLmMgICAgICB8ICAxICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9o YXNoL2hhc2hpbnNlcnQuYyAgICB8ICAxICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hl YXBhbS5jICAgICAgICB8ICA1ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYyAgICAgfCAgMSArCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFw LmMgfCAgMyArLQogc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRwYWdlLmMgICAgIHwg IDIgKwogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYyAgIHwgIDEgKwog c3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jICAgICAgICAgICAgIHwgMTAgKystLQogc3Jj L2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgIHwgNTUgKysrKysrKysrKysr KysrKysrKystCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaCAgICAgICAgICAgfCAg NiArKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoX3hsb2cuaCAgICAgICAgICB8ICAzICst CiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaCAgICAgICAgfCAgOCArLS0KIHNy Yy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmggICAgICAgICAgICB8ICA2ICsrLQogc3JjL2lu Y2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaCAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUv YWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmggIHwgIDkgKystLQogc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19pbmRleC5oICAgICAgICAgIHwgIDIgKwogc3JjL2luY2x1ZGUvdXRpbHMvcmVs LmggICAgICAgICAgICAgICAgIHwgMTQgKysrKystCiAyMSBmaWxlcyBjaGFuZ2VkLCAyMDgg aW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCiAgMjguMCUgY29udHJpYi90ZXN0X2Rl Y29kaW5nL2V4cGVjdGVkLwogIDEyLjAlIGNvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvCiAg IDQuNyUgZG9jL3NyYy9zZ21sLwogICA1LjglIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwLwog ICA0LjAlIHNyYy9iYWNrZW5kL2FjY2Vzcy8KICAgMy4xJSBzcmMvYmFja2VuZC9jYXRhbG9n LwogIDE2LjMlIHNyYy9iYWNrZW5kL2NvbW1hbmRzLwogIDE5LjklIHNyYy9pbmNsdWRlL2Fj Y2Vzcy8KICAgNC43JSBzcmMvaW5jbHVkZS91dGlscy8KCmRpZmYgLS1naXQgYS9jb250cmli L3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvZGRsLm91dCBiL2NvbnRyaWIvdGVzdF9kZWNvZGlu Zy9leHBlY3RlZC9kZGwub3V0CmluZGV4IDlhMjhiNWRkYzUuLjQ4ZmI0NGM1NzUgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9kZGwub3V0CisrKyBiL2Nv bnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9kZGwub3V0CkBAIC00ODMsNiArNDgzLDcg QEAgQ1JFQVRFIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhICgKICkKIFdJVEggKHVzZXJf Y2F0YWxvZ190YWJsZSA9IHRydWUpCiA7CitDUkVBVEUgSU5ERVggcmVwbGljYXRpb25fbWV0 YWRhdGFfaWR4MSBvbiByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbik7CiBcZCsgcmVw bGljYXRpb25fbWV0YWRhdGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnJlcGxpY2F0aW9uX21ldGFkYXRhIgogICBD b2x1bW4gIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAg ICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgIHwgU3RvcmFnZSAgfCBTdGF0 cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKQEAgLTQ5MiwxMSArNDkzLDE5IEBAIFdJVEggKHVz ZXJfY2F0YWxvZ190YWJsZSA9IHRydWUpCiAgb3B0aW9ucyAgfCB0ZXh0W10gIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgICB8IAogSW5kZXhlczoKICAg ICAicmVwbGljYXRpb25fbWV0YWRhdGFfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChpZCkK KyAgICAicmVwbGljYXRpb25fbWV0YWRhdGFfaWR4MSIgYnRyZWUgKHJlbGF0aW9uKQogT3B0 aW9uczogdXNlcl9jYXRhbG9nX3RhYmxlPXRydWUKIAorU0VMRUNUIGJvb2xfYW5kKGluZGlz dXNlcmNhdGFsb2cpIGZyb20gcGdfaW5kZXggd2hlcmUgaW5kcmVsaWQgPSAncmVwbGljYXRp b25fbWV0YWRhdGEnOjpyZWdjbGFzczsKKyBib29sX2FuZCAKKy0tLS0tLS0tLS0KKyB0Ciso MSByb3cpCisKIElOU0VSVCBJTlRPIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBv cHRpb25zKQogVkFMVUVTICgnZm9vJywgQVJSQVlbJ2EnLCAnYiddKTsKIEFMVEVSIFRBQkxF IHJlcGxpY2F0aW9uX21ldGFkYXRhIFJFU0VUICh1c2VyX2NhdGFsb2dfdGFibGUpOworQ1JF QVRFIElOREVYIHJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDIgb24gcmVwbGljYXRpb25fbWV0 YWRhdGEocmVsYXRpb24pOwogXGQrIHJlcGxpY2F0aW9uX21ldGFkYXRhCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5y ZXBsaWNhdGlvbl9tZXRhZGF0YSIKICAgQ29sdW1uICB8ICBUeXBlICAgfCBDb2xsYXRpb24g fCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAg ICAgICAgICB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCkBAIC01 MDYsMTAgKzUxNSwxOSBAQCBBTFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBSRVNF VCAodXNlcl9jYXRhbG9nX3RhYmxlKTsKICBvcHRpb25zICB8IHRleHRbXSAgfCAgICAgICAg ICAgfCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICAgIHwgCiBJbmRleGVzOgogICAg ICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQor ICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgxIiBidHJlZSAocmVsYXRpb24pCisgICAg InJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDIiIGJ0cmVlIChyZWxhdGlvbikKKworU0VMRUNU IGJvb2xfb3IoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRleCB3aGVyZSBpbmRyZWxp ZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNzOworIGJvb2xfb3IgCistLS0t LS0tLS0KKyBmCisoMSByb3cpCiAKIElOU0VSVCBJTlRPIHJlcGxpY2F0aW9uX21ldGFkYXRh KHJlbGF0aW9uLCBvcHRpb25zKQogVkFMVUVTICgnYmFyJywgQVJSQVlbJ2EnLCAnYiddKTsK IEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFNFVCAodXNlcl9jYXRhbG9nX3Rh YmxlID0gdHJ1ZSk7CitDUkVBVEUgSU5ERVggcmVwbGljYXRpb25fbWV0YWRhdGFfaWR4MyBv biByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbik7CiBcZCsgcmVwbGljYXRpb25fbWV0 YWRhdGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUYWJsZSAicHVibGljLnJlcGxpY2F0aW9uX21ldGFkYXRhIgogICBDb2x1bW4gIHwgIFR5 cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgICAgICBEZWZh dWx0ICAgICAgICAgICAgICAgICAgICAgIHwgU3RvcmFnZSAgfCBTdGF0cyB0YXJnZXQgfCBE ZXNjcmlwdGlvbiAKQEAgLTUxOSwxNSArNTM3LDUyIEBAIEFMVEVSIFRBQkxFIHJlcGxpY2F0 aW9uX21ldGFkYXRhIFNFVCAodXNlcl9jYXRhbG9nX3RhYmxlID0gdHJ1ZSk7CiAgb3B0aW9u cyAgfCB0ZXh0W10gIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAg ICAgICB8IAogSW5kZXhlczoKICAgICAicmVwbGljYXRpb25fbWV0YWRhdGFfcGtleSIgUFJJ TUFSWSBLRVksIGJ0cmVlIChpZCkKKyAgICAicmVwbGljYXRpb25fbWV0YWRhdGFfaWR4MSIg YnRyZWUgKHJlbGF0aW9uKQorICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgyIiBidHJl ZSAocmVsYXRpb24pCisgICAgInJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDMiIGJ0cmVlIChy ZWxhdGlvbikKIE9wdGlvbnM6IHVzZXJfY2F0YWxvZ190YWJsZT10cnVlCiAKK1NFTEVDVCBi b29sX2FuZChpbmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBnX2luZGV4IHdoZXJlIGluZHJlbGlk ID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRhJzo6cmVnY2xhc3M7CisgYm9vbF9hbmQgCistLS0t LS0tLS0tCisgdAorKDEgcm93KQorCiBJTlNFUlQgSU5UTyByZXBsaWNhdGlvbl9tZXRhZGF0 YShyZWxhdGlvbiwgb3B0aW9ucykKIFZBTFVFUyAoJ2JsdWInLCBOVUxMKTsKKy0tIEFsc28g Y2hlY2tpbmcgdGhhdCBpbmRpc3VzZXJjYXRhbG9nIGlzIHNldCBjb3JyZWN0bHkgd2hlbiBh IHRhYmxlIGlzIGNyZWF0ZWQgd2l0aCB1c2VyX2NhdGFsb2dfdGFibGUgPSBmYWxzZQorQ1JF QVRFIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNlICgKKyAgICBpZCBzZXJpYWwg cHJpbWFyeSBrZXksCisgICAgcmVsYXRpb24gbmFtZSBOT1QgTlVMTCwKKyAgICBvcHRpb25z IHRleHRbXQorKQorV0lUSCAodXNlcl9jYXRhbG9nX3RhYmxlID0gZmFsc2UpCis7CitDUkVB VEUgSU5ERVggcmVwbGljYXRpb25fbWV0YWRhdGFfZmFsc2VfaWR4MSBvbiByZXBsaWNhdGlv bl9tZXRhZGF0YV9mYWxzZShyZWxhdGlvbik7CitcZCsgcmVwbGljYXRpb25fbWV0YWRhdGFf ZmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUYWJsZSAicHVibGljLnJlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNlIgorICBDb2x1bW4g IHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgICAg ICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3RvcmFnZSAgfCBTdGF0 cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tCisgaWQgICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCBuZXh0 dmFsKCdyZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxzZV9pZF9zZXEnOjpyZWdjbGFzcykgfCBw bGFpbiAgICB8ICAgICAgICAgICAgICB8IAorIHJlbGF0aW9uIHwgbmFtZSAgICB8ICAgICAg ICAgICB8IG5vdCBudWxsIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKKyBvcHRp b25zICB8IHRleHRbXSAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGV4dGVuZGVkIHwg ICAgICAgICAgICAgIHwgCitJbmRleGVzOgorICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9m YWxzZV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQorICAgICJyZXBsaWNhdGlvbl9t ZXRhZGF0YV9mYWxzZV9pZHgxIiBidHJlZSAocmVsYXRpb24pCitPcHRpb25zOiB1c2VyX2Nh dGFsb2dfdGFibGU9ZmFsc2UKKworU0VMRUNUIGJvb2xfb3IoaW5kaXN1c2VyY2F0YWxvZykg ZnJvbSBwZ19pbmRleCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YV9m YWxzZSc6OnJlZ2NsYXNzOworIGJvb2xfb3IgCistLS0tLS0tLS0KKyBmCisoMSByb3cpCisK IC0tIG1ha2Ugc3VyZSByZXdyaXRlcyBkb24ndCB3b3JrCiBBTFRFUiBUQUJMRSByZXBsaWNh dGlvbl9tZXRhZGF0YSBBREQgQ09MVU1OIHJld3JpdGVtZW9ybm90IGludDsKIEFMVEVSIFRB QkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIEFMVEVSIENPTFVNTiByZXdyaXRlbWVvcm5vdCBU WVBFIHRleHQ7CiBFUlJPUjogIGNhbm5vdCByZXdyaXRlIHRhYmxlICJyZXBsaWNhdGlvbl9t ZXRhZGF0YSIgdXNlZCBhcyBhIGNhdGFsb2cgdGFibGUKIEFMVEVSIFRBQkxFIHJlcGxpY2F0 aW9uX21ldGFkYXRhIFNFVCAodXNlcl9jYXRhbG9nX3RhYmxlID0gZmFsc2UpOworQ1JFQVRF IElOREVYIHJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDQgb24gcmVwbGljYXRpb25fbWV0YWRh dGEocmVsYXRpb24pOwogXGQrIHJlcGxpY2F0aW9uX21ldGFkYXRhCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5y ZXBsaWNhdGlvbl9tZXRhZGF0YSIKICAgICAgQ29sdW1uICAgICB8ICBUeXBlICAgfCBDb2xs YXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAg ICAgICAgICAgICAgICB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24g CkBAIC01MzgsOCArNTkzLDE4IEBAIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRh IFNFVCAodXNlcl9jYXRhbG9nX3RhYmxlID0gZmFsc2UpOwogIHJld3JpdGVtZW9ybm90IHwg aW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgICAg fCAKIEluZGV4ZXM6CiAgICAgInJlcGxpY2F0aW9uX21ldGFkYXRhX3BrZXkiIFBSSU1BUlkg S0VZLCBidHJlZSAoaWQpCisgICAgInJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDEiIGJ0cmVl IChyZWxhdGlvbikKKyAgICAicmVwbGljYXRpb25fbWV0YWRhdGFfaWR4MiIgYnRyZWUgKHJl bGF0aW9uKQorICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgzIiBidHJlZSAocmVsYXRp b24pCisgICAgInJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDQiIGJ0cmVlIChyZWxhdGlvbikK IE9wdGlvbnM6IHVzZXJfY2F0YWxvZ190YWJsZT1mYWxzZQogCitTRUxFQ1QgYm9vbF9vcihp bmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBnX2luZGV4IHdoZXJlIGluZHJlbGlkID0gJ3JlcGxp Y2F0aW9uX21ldGFkYXRhJzo6cmVnY2xhc3M7CisgYm9vbF9vciAKKy0tLS0tLS0tLQorIGYK KygxIHJvdykKKwogSU5TRVJUIElOVE8gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24s IG9wdGlvbnMpCiBWQUxVRVMgKCd6YXBob2QnLCBOVUxMKTsKIFNFTEVDVCBkYXRhIEZST00g cGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdyZWdyZXNzaW9uX3Nsb3QnLCBOVUxMLCBO VUxMLCAnaW5jbHVkZS14aWRzJywgJzAnLCAnc2tpcC1lbXB0eS14YWN0cycsICcxJyk7CmRp ZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL2RkbC5zcWwgYi9jb250cmli L3Rlc3RfZGVjb2Rpbmcvc3FsL2RkbC5zcWwKaW5kZXggNGY3NmJlZDcyYy4uNTFiYWFjNWM0 ZSAxMDA2NDQKLS0tIGEvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9kZGwuc3FsCisrKyBi L2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvZGRsLnNxbApAQCAtMjc2LDI5ICsyNzYsNTIg QEAgQ1JFQVRFIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhICgKICkKIFdJVEggKHVzZXJf Y2F0YWxvZ190YWJsZSA9IHRydWUpCiA7CisKK0NSRUFURSBJTkRFWCByZXBsaWNhdGlvbl9t ZXRhZGF0YV9pZHgxIG9uIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uKTsKKwogXGQr IHJlcGxpY2F0aW9uX21ldGFkYXRhCitTRUxFQ1QgYm9vbF9hbmQoaW5kaXN1c2VyY2F0YWxv ZykgZnJvbSBwZ19pbmRleCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0 YSc6OnJlZ2NsYXNzOwogCiBJTlNFUlQgSU5UTyByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxh dGlvbiwgb3B0aW9ucykKIFZBTFVFUyAoJ2ZvbycsIEFSUkFZWydhJywgJ2InXSk7CiAKIEFM VEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFJFU0VUICh1c2VyX2NhdGFsb2dfdGFi bGUpOworQ1JFQVRFIElOREVYIHJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDIgb24gcmVwbGlj YXRpb25fbWV0YWRhdGEocmVsYXRpb24pOwogXGQrIHJlcGxpY2F0aW9uX21ldGFkYXRhCitT RUxFQ1QgYm9vbF9vcihpbmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBnX2luZGV4IHdoZXJlIGlu ZHJlbGlkID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRhJzo6cmVnY2xhc3M7CiAKIElOU0VSVCBJ TlRPIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQogVkFMVUVTICgn YmFyJywgQVJSQVlbJ2EnLCAnYiddKTsKIAogQUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0 YWRhdGEgU0VUICh1c2VyX2NhdGFsb2dfdGFibGUgPSB0cnVlKTsKK0NSRUFURSBJTkRFWCBy ZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgzIG9uIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0 aW9uKTsKIFxkKyByZXBsaWNhdGlvbl9tZXRhZGF0YQorU0VMRUNUIGJvb2xfYW5kKGluZGlz dXNlcmNhdGFsb2cpIGZyb20gcGdfaW5kZXggd2hlcmUgaW5kcmVsaWQgPSAncmVwbGljYXRp b25fbWV0YWRhdGEnOjpyZWdjbGFzczsKIAogSU5TRVJUIElOVE8gcmVwbGljYXRpb25fbWV0 YWRhdGEocmVsYXRpb24sIG9wdGlvbnMpCiBWQUxVRVMgKCdibHViJywgTlVMTCk7CiAKKy0t IEFsc28gY2hlY2tpbmcgdGhhdCBpbmRpc3VzZXJjYXRhbG9nIGlzIHNldCBjb3JyZWN0bHkg d2hlbiBhIHRhYmxlIGlzIGNyZWF0ZWQgd2l0aCB1c2VyX2NhdGFsb2dfdGFibGUgPSBmYWxz ZQorQ1JFQVRFIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNlICgKKyAgICBpZCBz ZXJpYWwgcHJpbWFyeSBrZXksCisgICAgcmVsYXRpb24gbmFtZSBOT1QgTlVMTCwKKyAgICBv cHRpb25zIHRleHRbXQorKQorV0lUSCAodXNlcl9jYXRhbG9nX3RhYmxlID0gZmFsc2UpCis7 CisKK0NSRUFURSBJTkRFWCByZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxzZV9pZHgxIG9uIHJl cGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNlKHJlbGF0aW9uKTsKK1xkKyByZXBsaWNhdGlvbl9t ZXRhZGF0YV9mYWxzZQorU0VMRUNUIGJvb2xfb3IoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBw Z19pbmRleCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxzZSc6 OnJlZ2NsYXNzOworCiAtLSBtYWtlIHN1cmUgcmV3cml0ZXMgZG9uJ3Qgd29yawogQUxURVIg VEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgQUREIENPTFVNTiByZXdyaXRlbWVvcm5vdCBp bnQ7CiBBTFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBBTFRFUiBDT0xVTU4gcmV3 cml0ZW1lb3Jub3QgVFlQRSB0ZXh0OwogCiBBTFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRh ZGF0YSBTRVQgKHVzZXJfY2F0YWxvZ190YWJsZSA9IGZhbHNlKTsKK0NSRUFURSBJTkRFWCBy ZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHg0IG9uIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0 aW9uKTsKIFxkKyByZXBsaWNhdGlvbl9tZXRhZGF0YQorU0VMRUNUIGJvb2xfb3IoaW5kaXN1 c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRleCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlv bl9tZXRhZGF0YSc6OnJlZ2NsYXNzOwogCiBJTlNFUlQgSU5UTyByZXBsaWNhdGlvbl9tZXRh ZGF0YShyZWxhdGlvbiwgb3B0aW9ucykKIFZBTFVFUyAoJ3phcGhvZCcsIE5VTEwpOwpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCA5MzE2YjgxMWFjLi40NTk1MzliNzYxIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbApAQCAtNDQ0Nyw2ICs0NDQ3LDE3IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxl PiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZs CiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmluZGlzdXNlcmNhdGFsb2c8 L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgSWYgdHJ1ZSwgdGhlIGluZGV4IGlzIGxpbmtlZCB0byBhIHRhYmxl IHRoYXQgaXMgZGVjbGFyZWQgYXMgYW4gYWRkaXRpb25hbAorICAgICAgIGNhdGFsb2cgdGFi bGUgZm9yIHB1cnBvc2VzIG9mIGxvZ2ljYWwgcmVwbGljYXRpb24gKG1lYW5zIGhhcyA8bGlu ayBsaW5rZW5kPSJzcWwtY3JlYXRldGFibGUiPjxsaXRlcmFsPnVzZXJfY2F0YWxvZ190YWJs ZTwvbGl0ZXJhbD48L2xpbms+KQorICAgICAgIHNldCB0byB0cnVlLgorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgogICAgICAgIDxzdHJ1Y3RmaWVsZD5pbmRpc3JlcGxpZGVudDwvc3RydWN0ZmllbGQ+IDx0 eXBlPmJvb2w8L3R5cGU+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9u L3JlbG9wdGlvbnMuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5j CmluZGV4IDc1YjczNDQ4OTEuLjRiNDFmNWU2OGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vcmVsb3B0aW9ucy5jCkBAIC0xMjAsNyArMTIwLDcgQEAgc3RhdGljIHJlbG9wdF9i b29sIGJvb2xSZWxPcHRzW10gPQogCQkJUkVMT1BUX0tJTkRfSEVBUCwKIAkJCUFjY2Vzc0V4 Y2x1c2l2ZUxvY2sKIAkJfSwKLQkJZmFsc2UKKwkJSEVBUF9ERUZBVUxUX1VTRVJfQ0FUQUxP R19UQUJMRQogCX0sCiAJewogCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv Z2lzdC9naXN0eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYwpp bmRleCBjYjVhZmZhM2QyLi5mNDc1ODdiOGY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2lzdC9naXN0eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dp c3R4bG9nLmMKQEAgLTYwOCw2ICs2MDgsNyBAQCBnaXN0WExvZ1BhZ2VSZXVzZShSZWxhdGlv biByZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBGdWxsVHJhbnNhY3Rpb25JZCBkZWxldGVYaWQp CiAJICovCiAKIAkvKiBYTE9HIHN0dWZmICovCisJeGxyZWNfcmV1c2UuaXNDYXRhbG9nUmVs ID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpOwogCXhscmVj X3JldXNlLmxvY2F0b3IgPSByZWwtPnJkX2xvY2F0b3I7CiAJeGxyZWNfcmV1c2UuYmxvY2sg PSBibGtubzsKIAl4bHJlY19yZXVzZS5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IGRlbGV0 ZVhpZDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYwppbmRleCA5YTkyMWUz NDFlLi4wNmMyNjU5MDY4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9o YXNoaW5zZXJ0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5j CkBAIC00MzIsNiArNDMyLDcgQEAgX2hhc2hfdmFjdXVtX29uZV9wYWdlKFJlbGF0aW9uIHJl bCwgUmVsYXRpb24gaHJlbCwgQnVmZmVyIG1ldGFidWYsIEJ1ZmZlciBidWYpCiAJCQl4bF9o YXNoX3ZhY3V1bV9vbmVfcGFnZSB4bHJlYzsKIAkJCVhMb2dSZWNQdHIJcmVjcHRyOwogCisJ CQl4bHJlYy5pc0NhdGFsb2dSZWwgPSBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERl Y29kaW5nKGhyZWwpOwogCQkJeGxyZWMuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBzbmFw c2hvdENvbmZsaWN0SG9yaXpvbjsKIAkJCXhscmVjLm50dXBsZXMgPSBuZGVsZXRhYmxlOwog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmluZGV4IDQyNzU2YTllNmQuLjFiMzQ0ZWFj ZTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC02ODI3LDYgKzY4MjcsNyBA QCBoZWFwX2ZyZWV6ZV9leGVjdXRlX3ByZXBhcmVkKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1 ZmZlciwKIAkJc25hcHNob3RDb25mbGljdEhvcml6b24gPSBGcmVlemVMaW1pdDsKIAkJVHJh bnNhY3Rpb25JZFJldHJlYXQoc25hcHNob3RDb25mbGljdEhvcml6b24pOwogCisJCXhscmVj LmlzQ2F0YWxvZ1JlbCA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2Rpbmco cmVsKTsKIAkJeGxyZWMuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBzbmFwc2hvdENvbmZs aWN0SG9yaXpvbjsKIAkJeGxyZWMubnBsYW5zID0gbnBsYW5zOwogCkBAIC04MjQ0LDcgKzgy NDUsNyBAQCBib3R0b211cF9zb3J0X2FuZF9zaHJpbmsoVE1fSW5kZXhEZWxldGVPcCAqZGVs c3RhdGUpCiAgKiB1cGRhdGUgdGhlIGhlYXAgcGFnZSdzIExTTi4KICAqLwogWExvZ1JlY1B0 cgotbG9nX2hlYXBfdmlzaWJsZShSZWxGaWxlTG9jYXRvciBybG9jYXRvciwgQnVmZmVyIGhl YXBfYnVmZmVyLCBCdWZmZXIgdm1fYnVmZmVyLAorbG9nX2hlYXBfdmlzaWJsZShSZWxhdGlv biByZWwsIEJ1ZmZlciBoZWFwX2J1ZmZlciwgQnVmZmVyIHZtX2J1ZmZlciwKIAkJCQkgVHJh bnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwgdWludDggdm1mbGFncykKIHsK IAl4bF9oZWFwX3Zpc2libGUgeGxyZWM7CkBAIC04MjU2LDYgKzgyNTcsOCBAQCBsb2dfaGVh cF92aXNpYmxlKFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yLCBCdWZmZXIgaGVhcF9idWZmZXIs IEJ1ZmZlciB2bV9idWZmZXIsCiAKIAl4bHJlYy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9 IHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCXhscmVjLmZsYWdzID0gdm1mbGFnczsKKwlp ZiAoUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpKQorCQl4bHJl Yy5mbGFncyB8PSBWSVNJQklMSVRZTUFQX09OX0NBVEFMT0dfQUNDRVNTSUJMRV9JTl9MT0dJ Q0FMX0RFQ09ESU5HOwogCVhMb2dCZWdpbkluc2VydCgpOwogCVhMb2dSZWdpc3RlckRhdGEo KGNoYXIgKikgJnhscmVjLCBTaXplT2ZIZWFwVmlzaWJsZSk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggOTFjNWY1ZTllZi4uMTg0ZTUxMjNhZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTQxOCw2ICs0MTgsNyBAQCBoZWFw X3BhZ2VfcHJ1bmUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQl4bF9o ZWFwX3BydW5lIHhscmVjOwogCQkJWExvZ1JlY1B0cglyZWNwdHI7CiAKKwkJCXhscmVjLmlz Q2F0YWxvZ1JlbCA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVs YXRpb24pOwogCQkJeGxyZWMuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBwcnN0YXRlLnNu YXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCQkJeGxyZWMubnJlZGlyZWN0ZWQgPSBwcnN0YXRl Lm5yZWRpcmVjdGVkOwogCQkJeGxyZWMubmRlYWQgPSBwcnN0YXRlLm5kZWFkOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCmluZGV4IDRlZDcwMjc1ZTIuLjBi ZDczZjRkOWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxp dHltYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMK QEAgLTI4Myw4ICsyODMsNyBAQCB2aXNpYmlsaXR5bWFwX3NldChSZWxhdGlvbiByZWwsIEJs b2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFwQnVmLAogCQkJaWYgKFhMb2dSZWNQdHJJ c0ludmFsaWQocmVjcHRyKSkKIAkJCXsKIAkJCQlBc3NlcnQoIUluUmVjb3ZlcnkpOwotCQkJ CXJlY3B0ciA9IGxvZ19oZWFwX3Zpc2libGUocmVsLT5yZF9sb2NhdG9yLCBoZWFwQnVmLCB2 bUJ1ZiwKLQkJCQkJCQkJCQkgIGN1dG9mZl94aWQsIGZsYWdzKTsKKwkJCQlyZWNwdHIgPSBs b2dfaGVhcF92aXNpYmxlKHJlbCwgaGVhcEJ1Ziwgdm1CdWYsIGN1dG9mZl94aWQsIGZsYWdz KTsKIAogCQkJCS8qCiAJCQkJICogSWYgZGF0YSBjaGVja3N1bXMgYXJlIGVuYWJsZWQgKG9y IHdhbF9sb2dfaGludHM9b24pLCB3ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L25idHJlZS9uYnRwYWdlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2Uu YwppbmRleCA2NWFhNDQ4OTNjLi40MjZhNWRmNGZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2UuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL25idHBhZ2UuYwpAQCAtODM2LDYgKzgzNiw3IEBAIF9idF9sb2dfcmV1c2VfcGFnZShS ZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBGdWxsVHJhbnNhY3Rpb25JZCBzYWZl eGlkKQogCSAqLwogCiAJLyogWExPRyBzdHVmZiAqLworCXhscmVjX3JldXNlLmlzQ2F0YWxv Z1JlbCA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsKTsKIAl4 bHJlY19yZXVzZS5sb2NhdG9yID0gcmVsLT5yZF9sb2NhdG9yOwogCXhscmVjX3JldXNlLmJs b2NrID0gYmxrbm87CiAJeGxyZWNfcmV1c2Uuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBz YWZleGlkOwpAQCAtMTM1OCw2ICsxMzU5LDcgQEAgX2J0X2RlbGl0ZW1zX2RlbGV0ZShSZWxh dGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCVhMb2dSZWNQdHIJcmVjcHRyOwogCQl4bF9idHJl ZV9kZWxldGUgeGxyZWNfZGVsZXRlOwogCisJCXhscmVjX2RlbGV0ZS5pc0NhdGFsb2dSZWwg PSBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nKHJlbCk7CiAJCXhscmVj X2RlbGV0ZS5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90Q29uZmxpY3RIb3Jp em9uOwogCQl4bHJlY19kZWxldGUubmRlbGV0ZWQgPSBuZGVsZXRhYmxlOwogCQl4bHJlY19k ZWxldGUubnVwZGF0ZWQgPSBudXBkYXRhYmxlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qv c3BndmFjdXVtLmMKaW5kZXggYWQ5MGIyMTNiOS4uMmU2MmUzZmEzYiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jCkBAIC01MDMsNiArNTAzLDcgQEAgdmFjdXVt UmVkaXJlY3RBbmRQbGFjZWhvbGRlcihSZWxhdGlvbiBpbmRleCwgQnVmZmVyIGJ1ZmZlcikK IAlzcGd4bG9nVmFjdXVtUmVkaXJlY3QgeGxyZWM7CiAJR2xvYmFsVmlzU3RhdGUgKnZpc3Rl c3Q7CiAKKwl4bHJlYy5pc0NhdGFsb2dSZWwgPSBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9n aWNhbERlY29kaW5nKGluZGV4KTsKIAl4bHJlYy5uVG9QbGFjZWhvbGRlciA9IDA7CiAJeGxy ZWMuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9pbmRleC5jCmluZGV4IDYxZjFkMzkyNmEuLmY3NTQwZjQxMDEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYworKysgYi9zcmMvYmFja2VuZC9jYXRh bG9nL2luZGV4LmMKQEAgLTEyMyw3ICsxMjMsOCBAQCBzdGF0aWMgdm9pZCBVcGRhdGVJbmRl eFJlbGF0aW9uKE9pZCBpbmRleG9pZCwgT2lkIGhlYXBvaWQsCiAJCQkJCQkJCWJvb2wgaXNl eGNsdXNpb24sCiAJCQkJCQkJCWJvb2wgaW1tZWRpYXRlLAogCQkJCQkJCQlib29sIGlzdmFs aWQsCi0JCQkJCQkJCWJvb2wgaXNyZWFkeSk7CisJCQkJCQkJCWJvb2wgaXNyZWFkeSwKKwkJ CQkJCQkJYm9vbCBpc191c2VyX2NhdGFsb2cpOwogc3RhdGljIHZvaWQgaW5kZXhfdXBkYXRl X3N0YXRzKFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkgICBib29sIGhhc2luZGV4LAogCQkJCQkJ CSAgIGRvdWJsZSByZWx0dXBsZXMpOwpAQCAtNTQ1LDcgKzU0Niw4IEBAIFVwZGF0ZUluZGV4 UmVsYXRpb24oT2lkIGluZGV4b2lkLAogCQkJCQlib29sIGlzZXhjbHVzaW9uLAogCQkJCQli b29sIGltbWVkaWF0ZSwKIAkJCQkJYm9vbCBpc3ZhbGlkLAotCQkJCQlib29sIGlzcmVhZHkp CisJCQkJCWJvb2wgaXNyZWFkeSwKKwkJCQkJYm9vbCBpc191c2VyX2NhdGFsb2cpCiB7CiAJ aW50MnZlY3RvciAqaW5ka2V5OwogCW9pZHZlY3RvciAgKmluZGNvbGxhdGlvbjsKQEAgLTYy Miw2ICs2MjQsNyBAQCBVcGRhdGVJbmRleFJlbGF0aW9uKE9pZCBpbmRleG9pZCwKIAl2YWx1 ZXNbQW51bV9wZ19pbmRleF9pbmRjaGVja3htaW4gLSAxXSA9IEJvb2xHZXREYXR1bShmYWxz ZSk7CiAJdmFsdWVzW0FudW1fcGdfaW5kZXhfaW5kaXNyZWFkeSAtIDFdID0gQm9vbEdldERh dHVtKGlzcmVhZHkpOwogCXZhbHVlc1tBbnVtX3BnX2luZGV4X2luZGlzbGl2ZSAtIDFdID0g Qm9vbEdldERhdHVtKHRydWUpOworCXZhbHVlc1tBbnVtX3BnX2luZGV4X2luZGlzdXNlcmNh dGFsb2cgLSAxXSA9IEJvb2xHZXREYXR1bShpc191c2VyX2NhdGFsb2cpOwogCXZhbHVlc1tB bnVtX3BnX2luZGV4X2luZGlzcmVwbGlkZW50IC0gMV0gPSBCb29sR2V0RGF0dW0oZmFsc2Up OwogCXZhbHVlc1tBbnVtX3BnX2luZGV4X2luZGtleSAtIDFdID0gUG9pbnRlckdldERhdHVt KGluZGtleSk7CiAJdmFsdWVzW0FudW1fcGdfaW5kZXhfaW5kY29sbGF0aW9uIC0gMV0gPSBQ b2ludGVyR2V0RGF0dW0oaW5kY29sbGF0aW9uKTsKQEAgLTEwMjAsNyArMTAyMyw4IEBAIGlu ZGV4X2NyZWF0ZShSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJCQkJCQlpc3ByaW1hcnksIGlz X2V4Y2x1c2lvbiwKIAkJCQkJCShjb25zdHJfZmxhZ3MgJiBJTkRFWF9DT05TVFJfQ1JFQVRF X0RFRkVSUkFCTEUpID09IDAsCiAJCQkJCQkhY29uY3VycmVudCAmJiAhaW52YWxpZCwKLQkJ CQkJCSFjb25jdXJyZW50KTsKKwkJCQkJCSFjb25jdXJyZW50LAorCQkJCQkJUmVsYXRpb25J c1VzZWRBc0NhdGFsb2dUYWJsZShoZWFwUmVsYXRpb24pKTsKIAogCS8qCiAJICogUmVnaXN0 ZXIgcmVsY2FjaGUgaW52YWxpZGF0aW9uIG9uIHRoZSBpbmRleGVzJyBoZWFwIHJlbGF0aW9u LCB0bwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCA1NmRjOTk1NzEzLi5mZDgy MDBlNjcwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMTAzLDYgKzEwMyw3 IEBACiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy90aW1l c3RhbXAuaCIKICNpbmNsdWRlICJ1dGlscy90eXBjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxz L3JlbC5oIgogCiAvKgogICogT04gQ09NTUlUIGFjdGlvbiBsaXN0CkBAIC0xNDE0OCw2ICsx NDE0OSwxMCBAQCBBVEV4ZWNTZXRSZWxPcHRpb25zKFJlbGF0aW9uIHJlbCwgTGlzdCAqZGVm TGlzdCwgQWx0ZXJUYWJsZVR5cGUgb3BlcmF0aW9uLAogCURhdHVtCQlyZXBsX3ZhbFtOYXR0 c19wZ19jbGFzc107CiAJYm9vbAkJcmVwbF9udWxsW05hdHRzX3BnX2NsYXNzXTsKIAlib29s CQlyZXBsX3JlcGxbTmF0dHNfcGdfY2xhc3NdOworCUxpc3RDZWxsICAgKmNlbGw7CisJTGlz dAkgICAqcmVsX29wdGlvbnM7CisJYm9vbAkJY2F0YWxvZ190YWJsZV92YWwgPSBIRUFQX0RF RkFVTFRfVVNFUl9DQVRBTE9HX1RBQkxFOworCWJvb2wJCWNhdGFsb2dfdGFibGUgPSBmYWxz ZTsKIAlzdGF0aWMgY2hhciAqdmFsaWRuc3BzW10gPSBIRUFQX1JFTE9QVF9OQU1FU1BBQ0VT OwogCiAJaWYgKGRlZkxpc3QgPT0gTklMICYmIG9wZXJhdGlvbiAhPSBBVF9SZXBsYWNlUmVs T3B0aW9ucykKQEAgLTE0MjE0LDcgKzE0MjE5LDYgQEAgQVRFeGVjU2V0UmVsT3B0aW9ucyhS ZWxhdGlvbiByZWwsIExpc3QgKmRlZkxpc3QsIEFsdGVyVGFibGVUeXBlIG9wZXJhdGlvbiwK IAl7CiAJCVF1ZXJ5CSAgICp2aWV3X3F1ZXJ5ID0gZ2V0X3ZpZXdfcXVlcnkocmVsKTsKIAkJ TGlzdAkgICAqdmlld19vcHRpb25zID0gdW50cmFuc2Zvcm1SZWxPcHRpb25zKG5ld09wdGlv bnMpOwotCQlMaXN0Q2VsbCAgICpjZWxsOwogCQlib29sCQljaGVja19vcHRpb24gPSBmYWxz ZTsKIAogCQlmb3JlYWNoKGNlbGwsIHZpZXdfb3B0aW9ucykKQEAgLTE0MjQyLDYgKzE0MjQ2 LDIwIEBAIEFURXhlY1NldFJlbE9wdGlvbnMoUmVsYXRpb24gcmVsLCBMaXN0ICpkZWZMaXN0 LCBBbHRlclRhYmxlVHlwZSBvcGVyYXRpb24sCiAJCX0KIAl9CiAKKwkvKiBJZiB1c2VyX2Nh dGFsb2dfdGFibGUgaXMgcGFydCBvZiB0aGUgbmV3IG9wdGlvbnMsIHJlY29yZCBpdHMgbmV3 IHZhbHVlICovCisJcmVsX29wdGlvbnMgPSB1bnRyYW5zZm9ybVJlbE9wdGlvbnMobmV3T3B0 aW9ucyk7CisKKwlmb3JlYWNoKGNlbGwsIHJlbF9vcHRpb25zKQorCXsKKwkJRGVmRWxlbSAg ICAqZGVmZWwgPSAoRGVmRWxlbSAqKSBsZmlyc3QoY2VsbCk7CisKKwkJaWYgKHN0cmNtcChk ZWZlbC0+ZGVmbmFtZSwgInVzZXJfY2F0YWxvZ190YWJsZSIpID09IDApCisJCXsKKwkJCWNh dGFsb2dfdGFibGUgPSB0cnVlOworCQkJY2F0YWxvZ190YWJsZV92YWwgPSBkZWZHZXRCb29s ZWFuKGRlZmVsKTsKKwkJfQorCX0KKwogCS8qCiAJICogQWxsIHdlIG5lZWQgZG8gaGVyZSBp cyB1cGRhdGUgdGhlIHBnX2NsYXNzIHJvdzsgdGhlIG5ldyBvcHRpb25zIHdpbGwgYmUKIAkg KiBwcm9wYWdhdGVkIGludG8gcmVsY2FjaGVzIGR1cmluZyBwb3N0LWNvbW1pdCBjYWNoZSBp bnZhbC4KQEAgLTE0MjY4LDYgKzE0Mjg2LDQxIEBAIEFURXhlY1NldFJlbE9wdGlvbnMoUmVs YXRpb24gcmVsLCBMaXN0ICpkZWZMaXN0LCBBbHRlclRhYmxlVHlwZSBvcGVyYXRpb24sCiAK IAlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOwogCisJLyogVXBkYXRlIHRoZSBpbmRleGVzIGlm IHRoZXJlIGlzIGEgbmVlZCB0byAqLworCWlmIChjYXRhbG9nX3RhYmxlIHx8IG9wZXJhdGlv biA9PSBBVF9SZXNldFJlbE9wdGlvbnMpCisJeworCQlSZWxhdGlvbglwZ19pbmRleDsKKwkJ SGVhcFR1cGxlCXBnX2luZGV4X3R1cGxlOworCQlGb3JtX3BnX2luZGV4IHBnX2luZGV4X2Zv cm07CisJCUxpc3RDZWxsICAgKmluZGV4OworCisJCXBnX2luZGV4ID0gdGFibGVfb3BlbihJ bmRleFJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJCWZvcmVhY2goaW5kZXgs IFJlbGF0aW9uR2V0SW5kZXhMaXN0KHJlbCkpCisJCXsKKwkJCU9pZAkJCXRoaXNJbmRleE9p ZCA9IGxmaXJzdF9vaWQoaW5kZXgpOworCisJCQlwZ19pbmRleF90dXBsZSA9IFNlYXJjaFN5 c0NhY2hlQ29weTEoSU5ERVhSRUxJRCwKKwkJCQkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVt KHRoaXNJbmRleE9pZCkpOworCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHBnX2luZGV4X3R1 cGxlKSkKKwkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgaW5kZXgg JXUiLCB0aGlzSW5kZXhPaWQpOworCQkJcGdfaW5kZXhfZm9ybSA9IChGb3JtX3BnX2luZGV4 KSBHRVRTVFJVQ1QocGdfaW5kZXhfdHVwbGUpOworCisJCQkvKiBNb2RpZnkgdGhlIGluZGV4 IG9ubHkgaWYgdXNlcl9jYXRhbG9nX3RhYmxlIGRpZmZlciAqLworCQkJaWYgKGNhdGFsb2df dGFibGVfdmFsICE9IHBnX2luZGV4X2Zvcm0tPmluZGlzdXNlcmNhdGFsb2cpCisJCQl7CisJ CQkJcGdfaW5kZXhfZm9ybS0+aW5kaXN1c2VyY2F0YWxvZyA9IGNhdGFsb2dfdGFibGVfdmFs OworCQkJCUNhdGFsb2dUdXBsZVVwZGF0ZShwZ19pbmRleCwgJnBnX2luZGV4X3R1cGxlLT50 X3NlbGYsIHBnX2luZGV4X3R1cGxlKTsKKwkJCQlJbnZva2VPYmplY3RQb3N0QWx0ZXJIb29r QXJnKEluZGV4UmVsYXRpb25JZCwgdGhpc0luZGV4T2lkLCAwLAorCQkJCQkJCQkJCQkgSW52 YWxpZE9pZCwgdHJ1ZSk7CisJCQl9CisKKwkJCWhlYXBfZnJlZXR1cGxlKHBnX2luZGV4X3R1 cGxlKTsKKwkJfQorCisJCXRhYmxlX2Nsb3NlKHBnX2luZGV4LCBSb3dFeGNsdXNpdmVMb2Nr KTsKKwl9CisKIAkvKiByZXBlYXQgdGhlIHdob2xlIGV4ZXJjaXNlIGZvciB0aGUgdG9hc3Qg dGFibGUsIGlmIHRoZXJlJ3Mgb25lICovCiAJaWYgKE9pZElzVmFsaWQocmVsLT5yZF9yZWwt PnJlbHRvYXN0cmVsaWQpKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9n aXN0eGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmgKaW5kZXggMzNmMWM3 ZTMxYi4uMmQyOTNmYzhmNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3R4 bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmgKQEAgLTUxLDEzICs1 MSwxNCBAQCB0eXBlZGVmIHN0cnVjdCBnaXN0eGxvZ0RlbGV0ZQogewogCVRyYW5zYWN0aW9u SWQgc25hcHNob3RDb25mbGljdEhvcml6b247CiAJdWludDE2CQludG9kZWxldGU7CQkvKiBu dW1iZXIgb2YgZGVsZXRlZCBvZmZzZXRzICovCisJYm9vbCAgICAgICAgaXNDYXRhbG9nUmVs OwogCiAJLyoKIAkgKiBJbiBwYXlsb2FkIG9mIGJsayAwIDogdG9kZWxldGUgT2Zmc2V0TnVt YmVycwogCSAqLwogfSBnaXN0eGxvZ0RlbGV0ZTsKIAotI2RlZmluZSBTaXplT2ZHaXN0eGxv Z0RlbGV0ZQkob2Zmc2V0b2YoZ2lzdHhsb2dEZWxldGUsIG50b2RlbGV0ZSkgKyBzaXplb2Yo dWludDE2KSkKKyNkZWZpbmUgU2l6ZU9mR2lzdHhsb2dEZWxldGUJKG9mZnNldG9mKGdpc3R4 bG9nRGVsZXRlLCBpc0NhdGFsb2dSZWwpICsgc2l6ZW9mKGJvb2wpKQogCiAvKgogICogQmFj a3VwIEJsayAwOiBJZiB0aGlzIG9wZXJhdGlvbiBjb21wbGV0ZXMgYSBwYWdlIHNwbGl0LCBi eSBpbnNlcnRpbmcgYQpAQCAtMTAwLDkgKzEwMSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBnaXN0 eGxvZ1BhZ2VSZXVzZQogCVJlbEZpbGVMb2NhdG9yIGxvY2F0b3I7CiAJQmxvY2tOdW1iZXIg YmxvY2s7CiAJRnVsbFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b247CisJ Ym9vbCAgICAgICAgaXNDYXRhbG9nUmVsOwogfSBnaXN0eGxvZ1BhZ2VSZXVzZTsKIAotI2Rl ZmluZSBTaXplT2ZHaXN0eGxvZ1BhZ2VSZXVzZQkob2Zmc2V0b2YoZ2lzdHhsb2dQYWdlUmV1 c2UsIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uKSArIHNpemVvZihGdWxsVHJhbnNhY3Rpb25J ZCkpCisjZGVmaW5lIFNpemVPZkdpc3R4bG9nUGFnZVJldXNlCShvZmZzZXRvZihnaXN0eGxv Z1BhZ2VSZXVzZSwgaXNDYXRhbG9nUmVsKSArIHNpemVvZihib29sKSkKIAogZXh0ZXJuIHZv aWQgZ2lzdF9yZWRvKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKTsKIGV4dGVybiB2b2lkIGdp c3RfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5oIGIvc3JjL2luY2x1ZGUv YWNjZXNzL2hhc2hfeGxvZy5oCmluZGV4IDZkYWZiNGE1OTguLjFkZjFjNjI2ZTUgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoX3hsb2cuaAorKysgYi9zcmMvaW5jbHVk ZS9hY2Nlc3MvaGFzaF94bG9nLmgKQEAgLTI1MiwxMiArMjUyLDEzIEBAIHR5cGVkZWYgc3Ry dWN0IHhsX2hhc2hfdmFjdXVtX29uZV9wYWdlCiB7CiAJVHJhbnNhY3Rpb25JZCBzbmFwc2hv dENvbmZsaWN0SG9yaXpvbjsKIAlpbnQJCQludHVwbGVzOworCWJvb2wgICAgICAgIGlzQ2F0 YWxvZ1JlbDsKIAogCS8qIFRBUkdFVCBPRkZTRVQgTlVNQkVSUyBGT0xMT1cgQVQgVEhFIEVO RCAqLwogfSB4bF9oYXNoX3ZhY3V1bV9vbmVfcGFnZTsKIAogI2RlZmluZSBTaXplT2ZIYXNo VmFjdXVtT25lUGFnZSBcCi0JKG9mZnNldG9mKHhsX2hhc2hfdmFjdXVtX29uZV9wYWdlLCBu dHVwbGVzKSArIHNpemVvZihpbnQpKQorCShvZmZzZXRvZih4bF9oYXNoX3ZhY3V1bV9vbmVf cGFnZSwgaXNDYXRhbG9nUmVsKSArIHNpemVvZihib29sKSkKIAogZXh0ZXJuIHZvaWQgaGFz aF9yZWRvKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKTsKIGV4dGVybiB2b2lkIGhhc2hfZGVz YyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtX3hsb2cuaAppbmRleCA1Yzc3MjkwZWVjLi42OGNhY2Q1MzJhIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaAorKysgYi9zcmMvaW5jbHVk ZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaApAQCAtMjQ1LDEwICsyNDUsMTEgQEAgdHlwZWRlZiBz dHJ1Y3QgeGxfaGVhcF9wcnVuZQogCVRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhv cml6b247CiAJdWludDE2CQlucmVkaXJlY3RlZDsKIAl1aW50MTYJCW5kZWFkOworCWJvb2wg ICAgICAgIGlzQ2F0YWxvZ1JlbDsKIAkvKiBPRkZTRVQgTlVNQkVSUyBhcmUgaW4gdGhlIGJs b2NrIHJlZmVyZW5jZSAwICovCiB9IHhsX2hlYXBfcHJ1bmU7CiAKLSNkZWZpbmUgU2l6ZU9m SGVhcFBydW5lIChvZmZzZXRvZih4bF9oZWFwX3BydW5lLCBuZGVhZCkgKyBzaXplb2YodWlu dDE2KSkKKyNkZWZpbmUgU2l6ZU9mSGVhcFBydW5lIChvZmZzZXRvZih4bF9oZWFwX3BydW5l LCBpc0NhdGFsb2dSZWwpICsgc2l6ZW9mKGJvb2wpKQogCiAvKgogICogVGhlIHZhY3V1bSBw YWdlIHJlY29yZCBpcyBzaW1pbGFyIHRvIHRoZSBwcnVuZSByZWNvcmQsIGJ1dCBjYW4gb25s eSBtYXJrCkBAIC0zNDQsMTIgKzM0NSwxMyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX2Zy ZWV6ZV9wYWdlCiB7CiAJVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsK IAl1aW50MTYJCW5wbGFuczsKKwlib29sICAgICAgICBpc0NhdGFsb2dSZWw7CiAKIAkvKiBG UkVFWkUgUExBTlMgRk9MTE9XICovCiAJLyogT0ZGU0VUIE5VTUJFUiBBUlJBWSBGT0xMT1dT ICovCiB9IHhsX2hlYXBfZnJlZXplX3BhZ2U7CiAKLSNkZWZpbmUgU2l6ZU9mSGVhcEZyZWV6 ZVBhZ2UgKG9mZnNldG9mKHhsX2hlYXBfZnJlZXplX3BhZ2UsIG5wbGFucykgKyBzaXplb2Yo dWludDE2KSkKKyNkZWZpbmUgU2l6ZU9mSGVhcEZyZWV6ZVBhZ2UgKG9mZnNldG9mKHhsX2hl YXBfZnJlZXplX3BhZ2UsIGlzQ2F0YWxvZ1JlbCkgKyBzaXplb2YoYm9vbCkpCiAKIC8qCiAg KiBUaGlzIGlzIHdoYXQgd2UgbmVlZCB0byBrbm93IGFib3V0IHNldHRpbmcgYSB2aXNpYmls aXR5IG1hcCBiaXQKQEAgLTQwOCw3ICs0MTAsNyBAQCBleHRlcm4gdm9pZCBoZWFwMl9kZXNj KFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7CiBleHRlcm4gY29u c3QgY2hhciAqaGVhcDJfaWRlbnRpZnkodWludDggaW5mbyk7CiBleHRlcm4gdm9pZCBoZWFw X3hsb2dfbG9naWNhbF9yZXdyaXRlKFhMb2dSZWFkZXJTdGF0ZSAqcik7CiAKLWV4dGVybiBY TG9nUmVjUHRyIGxvZ19oZWFwX3Zpc2libGUoUmVsRmlsZUxvY2F0b3IgcmxvY2F0b3IsIEJ1 ZmZlciBoZWFwX2J1ZmZlciwKK2V4dGVybiBYTG9nUmVjUHRyIGxvZ19oZWFwX3Zpc2libGUo UmVsYXRpb24gcmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsCiAJCQkJCQkJCSAgIEJ1ZmZlciB2 bV9idWZmZXIsCiAJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhv cml6b24sCiAJCQkJCQkJCSAgIHVpbnQ4IHZtZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL25idHhsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmgK aW5kZXggM2IyZDk1OWM2OS4uZmJlYjljZmJlMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv YWNjZXNzL25idHhsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvbmJ0eGxvZy5oCkBA IC0xODgsOSArMTg4LDEwIEBAIHR5cGVkZWYgc3RydWN0IHhsX2J0cmVlX3JldXNlX3BhZ2UK IAlSZWxGaWxlTG9jYXRvciBsb2NhdG9yOwogCUJsb2NrTnVtYmVyIGJsb2NrOwogCUZ1bGxU cmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOworCWJvb2wgICAgICAgIGlz Q2F0YWxvZ1JlbDsKIH0geGxfYnRyZWVfcmV1c2VfcGFnZTsKIAotI2RlZmluZSBTaXplT2ZC dHJlZVJldXNlUGFnZQkoc2l6ZW9mKHhsX2J0cmVlX3JldXNlX3BhZ2UpKQorI2RlZmluZSBT aXplT2ZCdHJlZVJldXNlUGFnZQkob2Zmc2V0b2YoeGxfYnRyZWVfcmV1c2VfcGFnZSwgaXND YXRhbG9nUmVsKSArIHNpemVvZihib29sKSkKIAogLyoKICAqIHhsX2J0cmVlX3ZhY3V1bSBh bmQgeGxfYnRyZWVfZGVsZXRlIHJlY29yZHMgZGVzY3JpYmUgZGVsZXRpb24gb2YgaW5kZXgK QEAgLTIzNSwxMyArMjM2LDE0IEBAIHR5cGVkZWYgc3RydWN0IHhsX2J0cmVlX2RlbGV0ZQog CVRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b247CiAJdWludDE2CQluZGVs ZXRlZDsKIAl1aW50MTYJCW51cGRhdGVkOworCWJvb2wgICAgICAgIGlzQ2F0YWxvZ1JlbDsK IAogCS8qIERFTEVURUQgVEFSR0VUIE9GRlNFVCBOVU1CRVJTIEZPTExPVyAqLwogCS8qIFVQ REFURUQgVEFSR0VUIE9GRlNFVCBOVU1CRVJTIEZPTExPVyAqLwogCS8qIFVQREFURUQgVFVQ TEVTIE1FVEFEQVRBICh4bF9idHJlZV91cGRhdGUpIEFSUkFZIEZPTExPV1MgKi8KIH0geGxf YnRyZWVfZGVsZXRlOwogCi0jZGVmaW5lIFNpemVPZkJ0cmVlRGVsZXRlCShvZmZzZXRvZih4 bF9idHJlZV9kZWxldGUsIG51cGRhdGVkKSArIHNpemVvZih1aW50MTYpKQorI2RlZmluZSBT aXplT2ZCdHJlZURlbGV0ZQkob2Zmc2V0b2YoeGxfYnRyZWVfZGVsZXRlLCBpc0NhdGFsb2dS ZWwpICsgc2l6ZW9mKGJvb2wpKQogCiAvKgogICogVGhlIG9mZnNldHMgdGhhdCBhcHBlYXIg aW4geGxfYnRyZWVfdXBkYXRlIG1ldGFkYXRhIGFyZSBvZmZzZXRzIGludG8gdGhlCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL3NwZ3hsb2cuaAppbmRleCA4MjMzMmNiNjk0Li4yZWMwOTMxYTEyIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vz cy9zcGd4bG9nLmgKQEAgLTI0MCw2ICsyNDAsNyBAQCB0eXBlZGVmIHN0cnVjdCBzcGd4bG9n VmFjdXVtUmVkaXJlY3QKIAl1aW50MTYJCW5Ub1BsYWNlaG9sZGVyOyAvKiBudW1iZXIgb2Yg cmVkaXJlY3RzIHRvIG1ha2UgcGxhY2Vob2xkZXJzICovCiAJT2Zmc2V0TnVtYmVyIGZpcnN0 UGxhY2Vob2xkZXI7CS8qIGZpcnN0IHBsYWNlaG9sZGVyIHR1cGxlIHRvIHJlbW92ZSAqLwog CVRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b247CS8qIG5ld2VzdCBYSUQg b2YgcmVtb3ZlZCByZWRpcmVjdHMgKi8KKwlib29sICAgICAgICBpc0NhdGFsb2dSZWw7CiAK IAkvKiBvZmZzZXRzIG9mIHJlZGlyZWN0IHR1cGxlcyB0byBtYWtlIHBsYWNlaG9sZGVycyBm b2xsb3cgKi8KIAlPZmZzZXROdW1iZXIgb2Zmc2V0c1tGTEVYSUJMRV9BUlJBWV9NRU1CRVJd OwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgg Yi9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaAppbmRleCAyODAzZWY1 YzA3Li42MDA1ZGYzMjc4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJp bGl0eW1hcGRlZnMuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRl ZnMuaApAQCAtMTcsOSArMTcsMTAgQEAKICNkZWZpbmUgQklUU19QRVJfSEVBUEJMT0NLIDIK IAogLyogRmxhZ3MgZm9yIGJpdCBtYXAgKi8KLSNkZWZpbmUgVklTSUJJTElUWU1BUF9BTExf VklTSUJMRQkweDAxCi0jZGVmaW5lIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTgkweDAyCi0j ZGVmaW5lIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUwkweDAzCS8qIE9SIG9mIGFsbCB2YWxp ZCB2aXNpYmlsaXR5bWFwCi0JCQkJCQkJCQkJCSAqIGZsYWdzIGJpdHMgKi8KKyNkZWZpbmUg VklTSUJJTElUWU1BUF9BTExfVklTSUJMRQkJCQkJCQkJMHgwMQorI2RlZmluZSBWSVNJQklM SVRZTUFQX0FMTF9GUk9aRU4JCQkJCQkJCTB4MDIKKyNkZWZpbmUgVklTSUJJTElUWU1BUF9W QUxJRF9CSVRTCQkJCQkJCQkweDAzCS8qIE9SIG9mIGFsbCB2YWxpZCB2aXNpYmlsaXR5bWFw CisJCQkJCQkJCQkJCQkJCQkJCQkgKiBmbGFncyBiaXRzICovCisjZGVmaW5lIFZJU0lCSUxJ VFlNQVBfT05fQ0FUQUxPR19BQ0NFU1NJQkxFX0lOX0xPR0lDQUxfREVDT0RJTkcJMHgwNAog CiAjZW5kaWYJCQkJCQkJLyogVklTSUJJTElUWU1BUERFRlNfSCAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19pbmRleC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19pbmRleC5oCmluZGV4IGY4NTM4NDZlZTEuLmRkMTY0MzEzNzggMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2luZGV4LmgKQEAgLTQzLDYgKzQzLDggQEAgQ0FUQUxPRyhwZ19pbmRleCwyNjEwLElu ZGV4UmVsYXRpb25JZCkgQktJX1NDSEVNQV9NQUNSTwogCWJvb2wJCWluZGNoZWNreG1pbjsJ LyogbXVzdCB3ZSB3YWl0IGZvciB4bWluIHRvIGJlIG9sZD8gKi8KIAlib29sCQlpbmRpc3Jl YWR5OwkJLyogaXMgdGhpcyBpbmRleCByZWFkeSBmb3IgaW5zZXJ0cz8gKi8KIAlib29sCQlp bmRpc2xpdmU7CQkvKiBpcyB0aGlzIGluZGV4IGFsaXZlIGF0IGFsbD8gKi8KKwlib29sCQlp bmRpc3VzZXJjYXRhbG9nOwkvKiBpcyB0aGlzIGluZGV4IGxpbmtlZCB0byBhIHVzZXIgY2F0 YWxvZworCQkJCQkJCQkJICogcmVsYXRpb24/ICovCiAJYm9vbAkJaW5kaXNyZXBsaWRlbnQ7 IC8qIGlzIHRoaXMgaW5kZXggdGhlIGlkZW50aXR5IGZvciByZXBsaWNhdGlvbj8gKi8KIAog CS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSwgYnV0IHdlIGFsbG93IGRp cmVjdCBhY2Nlc3MgdG8gaW5ka2V5ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGls cy9yZWwuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCmluZGV4IGYzODNhMmZjYTkuLjVk NDFlZjY1MDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCisrKyBiL3Ny Yy9pbmNsdWRlL3V0aWxzL3JlbC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAic3Rv cmFnZS9zbWdyLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsY2FjaGUuaCIKICNpbmNsdWRlICJ1 dGlscy9yZWx0cmlnZ2VyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9jYXRhbG9nLmgiCiAKIAog LyoKQEAgLTM0Myw2ICszNDQsNyBAQCB0eXBlZGVmIHN0cnVjdCBTdGRSZE9wdGlvbnMKIAog I2RlZmluZSBIRUFQX01JTl9GSUxMRkFDVE9SCQkJMTAKICNkZWZpbmUgSEVBUF9ERUZBVUxU X0ZJTExGQUNUT1IJCTEwMAorI2RlZmluZSBIRUFQX0RFRkFVTFRfVVNFUl9DQVRBTE9HX1RB QkxFCQlmYWxzZQogCiAvKgogICogUmVsYXRpb25HZXRUb2FzdFR1cGxlVGFyZ2V0CkBAIC0z ODUsNiArMzg3LDE1IEBAIHR5cGVkZWYgc3RydWN0IFN0ZFJkT3B0aW9ucwogCSAgKHJlbGF0 aW9uKS0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfTUFUVklFVykgPyBcCiAJICgoU3Rk UmRPcHRpb25zICopIChyZWxhdGlvbiktPnJkX29wdGlvbnMpLT51c2VyX2NhdGFsb2dfdGFi bGUgOiBmYWxzZSkKIAorLyoKKyAqIEluZGV4SXNMaW5rZWRUb1VzZXJDYXRhbG9nVGFibGUK KyAqCQlSZXR1cm5zIHdoZXRoZXIgdGhlIHJlbGF0aW9uIHNob3VsZCBiZSB0cmVhdGVkIGFz IGFuIGluZGV4IGxpbmtlZCB0bworICoJCWEgdXNlciBjYXRhbG9nIHRhYmxlIGZyb20gdGhl IHBvdiBvZiBsb2dpY2FsIGRlY29kaW5nLgorICovCisjZGVmaW5lIEluZGV4SXNMaW5rZWRU b1VzZXJDYXRhbG9nVGFibGUocmVsYXRpb24pCVwKKwkoKHJlbGF0aW9uKS0+cmRfcmVsLT5y ZWxraW5kID09IFJFTEtJTkRfSU5ERVggJiYgXAorCSAocmVsYXRpb24pLT5yZF9pbmRleC0+ aW5kaXN1c2VyY2F0YWxvZykKKwogLyoKICAqIFJlbGF0aW9uR2V0UGFyYWxsZWxXb3JrZXJz CiAgKgkJUmV0dXJucyB0aGUgcmVsYXRpb24ncyBwYXJhbGxlbF93b3JrZXJzIHJlbG9wdGlv biBzZXR0aW5nLgpAQCAtNjgyLDcgKzY5Myw4IEBAIFJlbGF0aW9uQ2xvc2VTbWdyKFJlbGF0 aW9uIHJlbGF0aW9uKQogI2RlZmluZSBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERl Y29kaW5nKHJlbGF0aW9uKSBcCiAJKFhMb2dMb2dpY2FsSW5mb0FjdGl2ZSgpICYmIFwKIAkg UmVsYXRpb25OZWVkc1dBTChyZWxhdGlvbikgJiYgXAotCSAoSXNDYXRhbG9nUmVsYXRpb24o cmVsYXRpb24pIHx8IFJlbGF0aW9uSXNVc2VkQXNDYXRhbG9nVGFibGUocmVsYXRpb24pKSkK KwkgKElzQ2F0YWxvZ1JlbGF0aW9uKHJlbGF0aW9uKSB8fCBSZWxhdGlvbklzVXNlZEFzQ2F0 YWxvZ1RhYmxlKHJlbGF0aW9uKSB8fCBcCisJICBJbmRleElzTGlua2VkVG9Vc2VyQ2F0YWxv Z1RhYmxlKHJlbGF0aW9uKSkpCiAKIC8qCiAgKiBSZWxhdGlvbklzTG9naWNhbGx5TG9nZ2Vk Ci0tIAoyLjM0LjEKCg== --------------3lv2fSPaQI1Eg2hE4cbl1QV0--