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 1pFwEd-0005lr-CV for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Jan 2023 11:59:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pFwEa-00082n-S2 for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Jan 2023 11:59:04 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pFwEa-00082d-8z for pgsql-hackers@lists.postgresql.org; Thu, 12 Jan 2023 11:59:04 +0000 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pFwEU-0002uQ-Gr for pgsql-hackers@postgresql.org; Thu, 12 Jan 2023 11:59:03 +0000 Received: by mail-wm1-x335.google.com with SMTP id i17-20020a05600c355100b003d99434b1cfso14852864wmq.1 for ; Thu, 12 Jan 2023 03:58:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=DDNv1PHmy1ylM79W6g3c0RpeEZYusVADtk4/wIGqDXQ=; b=KnQRy/VcUboyoZwZCaa5rTSoYcZavknPF3LWsgOGYgCQc242YVnviNTOWmJRpx/M52 yKYNyY7Wj0UlF0g2xqcLlIMgGItqQ+seTZX2odmrycpcVoXKeppUKKJvxHIB8Lute24E tcyoLCM2E1b3kDLJ7lQDPPTwZoy495p2wwjyXrwvgPo3cJQ0BkXTGbs5Mxy63onh+SsQ 6PJoY0DvWp6BG8jA6OqOC0ipr6OEJcmNBxjTImq7WQEG19wUNq/iLTmooD8VXveS2Znt laUvx5fR5VAHsxY/XdaSykDnzkgoJoUr1VbcjSbGxINv4Ke4/+nLAuv7R0aG4FT3wBed KRhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=DDNv1PHmy1ylM79W6g3c0RpeEZYusVADtk4/wIGqDXQ=; b=1qTXefCMfSOKRuJa/HK8Tsrb7jG3oPiBRY7guIzyaqVACblbPlWgu7ZpGXhunNXtID AlMYSs0IQZ6SMdxzQfN0dmdDB3htUX808kbi0RGOk3pXBM0+3xRmDgvEyVLppHZWaERA GklhTJAQyetQJ48xry4jLVavvLSS1QD7iHSV/GsK3y9tdPSLc26Y3gJENGU+AA2+69QV IchoeU544BJOQd+4IukUxvsN7TngiPRHjeqwu7qmmKPdVATxZqvMs5gALHCUEhH/qj56 RRLb/wGyJKFizQCAuL19nn1tppym3BTrpg+fxEQvSHRYgSqX/GDREegScMjU2yAolc9X VZiA== X-Gm-Message-State: AFqh2kroaT4rV+r58Ri6y0lvUYPsD0xxIeCjgEV3KbVgnLKmOHsfU1gY vbWWmljEMMOA6T9Orq3Y2II= X-Google-Smtp-Source: AMrXdXvycM6a/a2E748Go2hHjL9rXaW6imo47DECnMj2r33frrC9SdD+x6J2x0f52Zz7DW6115riow== X-Received: by 2002:a05:600c:601b:b0:3d3:56ce:5693 with SMTP id az27-20020a05600c601b00b003d356ce5693mr54159719wmb.17.1673524736879; Thu, 12 Jan 2023 03:58:56 -0800 (PST) Received: from [192.168.11.45] ([54.239.6.188]) by smtp.gmail.com with ESMTPSA id o19-20020a05600c511300b003d9862ec435sm10665252wms.20.2023.01.12.03.58.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 12 Jan 2023 03:58:55 -0800 (PST) Content-Type: multipart/mixed; boundary="------------gGsseGl4mHPyFRtqNH8mGIzV" Message-ID: <2d62f212-fce6-d639-b9eb-2a5bc4bec3b4@gmail.com> Date: Thu, 12 Jan 2023 12:57:39 +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.1 Subject: Re: Minimal logical decoding on standbys Content-Language: en-US From: "Drouvot, Bertrand" To: Andres Freund , Robert Haas , Thomas Munro Cc: Alvaro Herrera , Ibrar Ahmed , Amit Khandekar , fabriziomello@gmail.com, tushar , Rahila Syed , pgsql-hackers References: <20221214173552.sshklqvwezeo52h3@alap3.anarazel.de> <1f2ad9fd-53ff-74cc-a602-72d45423bcab@gmail.com> <05c0c4f3-82eb-bc6d-c876-5a265c05927b@gmail.com> <20230106034036.2m4qnn7ep7b5ipet@awork3.anarazel.de> <805540ba-b132-30f2-563d-cf9acc527008@gmail.com> In-Reply-To: <805540ba-b132-30f2-563d-cf9acc527008@gmail.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------gGsseGl4mHPyFRtqNH8mGIzV Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, On 1/11/23 7:04 PM, Drouvot, Bertrand wrote: > Hi, > > Please find V38 attached, I'll look at the other comments you've done in [1] on 0004 and 0006. > > Please find attached V39, tiny rebase due to 50767705ed. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------gGsseGl4mHPyFRtqNH8mGIzV Content-Type: text/plain; charset=UTF-8; name="v39-0006-Fixing-Walsender-corner-case-with-logical-decodi.patch" Content-Disposition: attachment; filename*0="v39-0006-Fixing-Walsender-corner-case-with-logical-decodi.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxNGQ3NjMxNmQ4MzE2MTY2NDFiZDMzMjA5NTc2NjBhNzNiYThlZWIxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCAxMiBKYW4gMjAyMyAxMToxNDozMSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM5IDYvNl0gRml4aW5nIFdhbHNlbmRlciBjb3JuZXIgY2FzZSB3aXRoIGxvZ2ljYWwg ZGVjb2Rpbmcgb24KIHN0YW5kYnkuCgpUaGUgcHJvYmxlbSBpcyB0aGF0IFdhbFNuZFdhaXRG b3JXYWwoKSB3YWl0cyBmb3IgdGhlICpyZXBsYXkqIExTTiB0bwppbmNyZWFzZSwgYnV0IGdl dHMgd29rZW4gdXAgYnkgd2FscmVjZWl2ZXIgd2hlbiBuZXcgV0FMIGhhcyBiZWVuCmZsdXNo ZWQuIFdoaWNoIG1lYW5zIHRoYXQgdHlwaWNhbGx5IHdhbHNlbmRlcnMgd2lsbCBnZXQgd29r ZW4gdXAgYXQgdGhlCnNhbWUgdGltZSB0aGF0IHRoZSBzdGFydHVwIHByb2Nlc3Mgd2lsbCBi ZSAtIHdoaWNoIG1lYW5zIHRoYXQgYnkgdGhlCnRpbWUgdGhlIGxvZ2ljYWwgd2Fsc2VuZGVy IGNoZWNrcyBHZXRYTG9nUmVwbGF5UmVjUHRyKCkgaXQncyB1bmxpa2VseQp0aGF0IHRoZSBz dGFydHVwIHByb2Nlc3MgYWxyZWFkeSByZXBsYXllZCB0aGUgcmVjb3JkIGFuZCB1cGRhdGVk ClhMb2dDdGwtPmxhc3RSZXBsYXllZEVuZFJlY1B0ci4KCkludHJvZHVjaW5nIGEgbmV3IGNv bmRpdGlvbiB2YXJpYWJsZSB0byBmaXggdGhpcyBjb3JuZXIgY2FzZS4KLS0tCiBzcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYyB8IDI4ICsrKysrKysrKysrKysr KysrKysrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICB8IDMx ICsrKysrKysrKysrKysrKysrLS0tLS0tCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93 YWl0X2V2ZW50LmMgICB8ICAzICsrKwogc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dyZWNvdmVy eS5oICAgICAgICAgfCAgMyArKysKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRl ci5oICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvd2FpdF9ldmVudC5oICAgICAg ICAgICAgfCAgMSArCiA2IGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDggZGVs ZXRpb25zKC0pCiAgNDEuMiUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgNDguNSUg c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vCiAgIDMuNiUgc3JjL2JhY2tlbmQvdXRpbHMvYWN0 aXZpdHkvCiAgIDMuNCUgc3JjL2luY2x1ZGUvYWNjZXNzLwoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKaW5kZXggNWU2NTc4NTMwNi4uNTdmYTZkNjhk MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5 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 IGZkNjZiMjA5YjYuLjYzZTgyNGExMmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp 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 dXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudC5jCmluZGV4IDZlNDU5OTI3OGMuLjM4Yzc0N2I3 ODYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnQu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50LmMKQEAgLTQ2 Myw2ICs0NjMsOSBAQCBwZ3N0YXRfZ2V0X3dhaXRfaXBjKFdhaXRFdmVudElQQyB3KQogCQlj YXNlIFdBSVRfRVZFTlRfV0FMX1JFQ0VJVkVSX1dBSVRfU1RBUlQ6CiAJCQlldmVudF9uYW1l ID0gIldhbFJlY2VpdmVyV2FpdFN0YXJ0IjsKIAkJCWJyZWFrOworCQljYXNlIFdBSVRfRVZF TlRfV0FMX1NFTkRFUl9XQUlUX1JFUExBWToKKwkJCWV2ZW50X25hbWUgPSAiV2FsUmVjZWl2 ZXJXYWl0UmVwbGF5IjsKKwkJCWJyZWFrOwogCQljYXNlIFdBSVRfRVZFTlRfWEFDVF9HUk9V UF9VUERBVEU6CiAJCQlldmVudF9uYW1lID0gIlhhY3RHcm91cFVwZGF0ZSI7CiAJCQlicmVh azsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9ncmVjb3ZlcnkuaCBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy94bG9ncmVjb3ZlcnkuaAppbmRleCA0N2MyOTM1MGY1Li5iNjVj MmNmMWYwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ3JlY292ZXJ5LmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dyZWNvdmVyeS5oCkBAIC0xNSw2ICsxNSw3 IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb250cm9sLmgiCiAjaW5jbHVkZSAibGliL3N0 cmluZ2luZm8uaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKKyNpbmNsdWRlICJz dG9yYWdlL2NvbmRpdGlvbl92YXJpYWJsZS5oIgogCiAvKgogICogUmVjb3ZlcnkgdGFyZ2V0 IHR5cGUuCkBAIC0xNTUsNCArMTU2LDYgQEAgZXh0ZXJuIHZvaWQgUmVjb3ZlcnlSZXF1aXJl c0ludFBhcmFtZXRlcihjb25zdCBjaGFyICpwYXJhbV9uYW1lLCBpbnQgY3VyclZhbHVlLAog CiBleHRlcm4gdm9pZCB4bG9nX291dGRlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJT dGF0ZSAqcmVjb3JkKTsKIAorZXh0ZXJuIENvbmRpdGlvblZhcmlhYmxlICpnZXRSZXBsYXll ZENWKHZvaWQpOworCiAjZW5kaWYJCQkJCQkJLyogWExPR1JFQ09WRVJZX0ggKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oIGIvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKaW5kZXggNTJiYjNlMmFhZS4uMmZkNzQ1ZmU3 MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKKysr IGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKQEAgLTEzLDYgKzEzLDcg QEAKICNkZWZpbmUgX1dBTFNFTkRFUl9ICiAKICNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNs dWRlICJzdG9yYWdlL2NvbmRpdGlvbl92YXJpYWJsZS5oIgogCiAvKgogICogV2hhdCB0byBk byB3aXRoIGEgc25hcHNob3QgaW4gY3JlYXRlIHJlcGxpY2F0aW9uIHNsb3QgY29tbWFuZC4K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3dhaXRfZXZlbnQuaCBiL3NyYy9pbmNs dWRlL3V0aWxzL3dhaXRfZXZlbnQuaAppbmRleCA2Y2FjZDZlZGFmLi4wNGEzN2ZlZWU0IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy93YWl0X2V2ZW50LmgKKysrIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvd2FpdF9ldmVudC5oCkBAIC0xMzAsNiArMTMwLDcgQEAgdHlwZWRlZiBl bnVtCiAJV0FJVF9FVkVOVF9TWU5DX1JFUCwKIAlXQUlUX0VWRU5UX1dBTF9SRUNFSVZFUl9F WElULAogCVdBSVRfRVZFTlRfV0FMX1JFQ0VJVkVSX1dBSVRfU1RBUlQsCisJV0FJVF9FVkVO VF9XQUxfU0VOREVSX1dBSVRfUkVQTEFZLAogCVdBSVRfRVZFTlRfWEFDVF9HUk9VUF9VUERB VEUKIH0gV2FpdEV2ZW50SVBDOwogCi0tIAoyLjM0LjEKCg== --------------gGsseGl4mHPyFRtqNH8mGIzV Content-Type: text/plain; charset=UTF-8; name="v39-0005-Doc-changes-describing-details-about-logical-dec.patch" Content-Disposition: attachment; filename*0="v39-0005-Doc-changes-describing-details-about-logical-dec.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBjNWY0ZTliNWUwM2E1M2M1ODRjMGI3MzVkODM2YjQwMTU3ZGQ3NjkwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCAxMiBKYW4gMjAyMyAxMToxMzo0NCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM5IDUvNl0gRG9jIGNoYW5nZXMgZGVzY3JpYmluZyBkZXRhaWxzIGFib3V0IGxvZ2lj YWwKIGRlY29kaW5nLgoKQXV0aG9yOiBBbmRyZXMgRnJldW5kIChpbiBhbiBvbGRlciB2ZXJz aW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2b3QKUmV2aWV3ZWQtQnk6IEJl cnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVydCBIYWFzLCBGYWJyaXppbyBk ZSBSb3llcyBNZWxsbwotLS0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbCB8 IDIxICsrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlv bnMoKykKIDEwMC4wJSBkb2Mvc3JjL3NnbWwvCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2xvZ2ljYWxkZWNvZGluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5z Z21sCmluZGV4IDRjZjg2M2E3NmYuLjAzODc1NThkNzUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv 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 --------------gGsseGl4mHPyFRtqNH8mGIzV Content-Type: text/plain; charset=UTF-8; name="v39-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Disposition: attachment; filename*0="v39-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSAyNjM1MWU4MjNiMTQ1MGM3YjEzZTczYTBkNjg1ZWM1NmE2MmY2YTJmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCAxMiBKYW4gMjAyMyAxMToxMjo1OSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM5IDQvNl0gTmV3IFRBUCB0ZXN0IGZvciBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5k YnkuCgpBdXRob3I6IENyYWlnIFJpbmdlciAoaW4gYW4gb2xkZXIgdmVyc2lvbiksIEFtaXQg S2hhbmRla2FyLCBCZXJ0cmFuZCBEcm91dm90ClJldmlld2VkLUJ5OiBCZXJ0cmFuZCBEcm91 dm90LCBBbmRyZXMgRnJldW5kLCBSb2JlcnQgSGFhcywgRmFicml6aW8gZGUgUm95ZXMgTWVs bG8KLS0tCiBzcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtICAgICAg fCAgMzcgKysKIHNyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkICAgICAgICAgICAgICAg ICB8ICAgMSArCiAuLi4vdC8wMzRfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsICAgICAg ICAgfCA0NzkgKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDUxNyBpbnNl cnRpb25zKCspCiAgIDYuMCUgc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3QvCiAgOTMu NyUgc3JjL3Rlc3QvcmVjb3ZlcnkvdC8KCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9wZXJsL1Bv c3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtIGIvc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rl c3QvQ2x1c3Rlci5wbQppbmRleCAwNDkyMWNhM2EzLi42ZjNjOWE2OTEwIDEwMDY0NAotLS0g 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 cnkvbWVzb24uYnVpbGQKaW5kZXggZWRhYWExYTNjZS4uNTJiMjgxNmM3YSAxMDA2NDQKLS0t 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 --------------gGsseGl4mHPyFRtqNH8mGIzV Content-Type: text/plain; charset=UTF-8; name="v39-0003-Allow-logical-decoding-on-standby.patch" Content-Disposition: attachment; filename="v39-0003-Allow-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSA0ODk1MGQ2NzUxYjg3M2JlZDU3NDY3ZDE4NmE4ZDNkMmQ3ODZlMjI5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCAxMiBKYW4gMjAyMyAxMToxMjowOSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM5IDMvNl0gQWxsb3cgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5LgoKQWxsb3cg YSBsb2dpY2FsIHNsb3QgdG8gYmUgY3JlYXRlZCBvbiBzdGFuZGJ5LiBSZXN0cmljdCBpdHMg dXNhZ2UKb3IgaXRzIGNyZWF0aW9uIGlmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIGxlc3Mg dGhhbiBsb2dpY2FsLgpEdXJpbmcgc2xvdCBjcmVhdGlvbiwgaXQncyByZXN0YXJ0X2xzbiBp cyBzZXQgdG8gdGhlIGxhc3QgcmVwbGF5ZWQKTFNOLiBFZmZlY3RpdmVseSwgYSBsb2dpY2Fs IHNsb3QgY3JlYXRpb24gb24gc3RhbmRieSB3YWl0cyBmb3IgYW4KeGxfcnVubmluZ194YWN0 IHJlY29yZCB0byBhcnJpdmUgZnJvbSBwcmltYXJ5LgoKQXV0aG9yOiBBbmRyZXMgRnJldW5k IChpbiBhbiBvbGRlciB2ZXJzaW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2 b3QKUmV2aWV3ZWQtQnk6IEJlcnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVy dCBIYWFzLCBGYWJyaXppbyBkZSBSb3llcyBNZWxsbwotLS0KIHNyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3hsb2cuYyAgICAgICAgIHwgMTEgKysrKysKIHNyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMgIHwgMjIgKysrKysrKystCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyB8IDM3ICsrKysrKysrLS0tLS0tLQogc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jICAgICAgICAgICAgfCA1NyArKysrKysrKysr KystLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgICAg ICAgfCAyOSArKysrKysrKy0tLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmggICAgICAg ICAgICAgICAgIHwgIDEgKwogNiBmaWxlcyBjaGFuZ2VkLCAxMDMgaW5zZXJ0aW9ucygrKSwg NTQgZGVsZXRpb25zKC0pCiAgIDUuMCUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAg NDAuMCUgc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC8KICA1NC4wJSBzcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi8KCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5kZXgg ODYyNTk0MjUxNi4uZWRiZWFkMjk3MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cu YwpAQCAtNDQ2Miw2ICs0NDYyLDE3IEBAIExvY2FsUHJvY2Vzc0NvbnRyb2xGaWxlKGJvb2wg cmVzZXQpCiAJUmVhZENvbnRyb2xGaWxlKCk7CiB9CiAKKy8qCisgKiBHZXQgdGhlIHdhbF9s ZXZlbCBmcm9tIHRoZSBjb250cm9sIGZpbGUuIEZvciBhIHN0YW5kYnksIHRoaXMgdmFsdWUg c2hvdWxkIGJlCisgKiBjb25zaWRlcmVkIGFzIGl0cyBhY3RpdmUgd2FsX2xldmVsLCBiZWNh dXNlIGl0IG1heSBiZSBkaWZmZXJlbnQgZnJvbSB3aGF0CisgKiB3YXMgb3JpZ2luYWxseSBj b25maWd1cmVkIG9uIHN0YW5kYnkuCisgKi8KK1dhbExldmVsCitHZXRBY3RpdmVXYWxMZXZl bE9uU3RhbmRieSh2b2lkKQoreworCXJldHVybiBDb250cm9sRmlsZS0+d2FsX2xldmVsOwor fQorCiAvKgogICogSW5pdGlhbGl6YXRpb24gb2Ygc2hhcmVkIG1lbW9yeSBmb3IgWExPRwog ICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29k ZS5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYwppbmRleCBh NTNlMjNjNjc5Li5jMWU0M2RkMmIzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL2RlY29kZS5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvZGVjb2RlLmMKQEAgLTE1MiwxMSArMTUyLDMxIEBAIHhsb2dfZGVjb2RlKExvZ2lj YWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgWExvZ1JlY29yZEJ1ZmZlciAqYnVmKQogCQkJICog Y2FuIHJlc3RhcnQgZnJvbSB0aGVyZS4KIAkJCSAqLwogCQkJYnJlYWs7CisJCWNhc2UgWExP R19QQVJBTUVURVJfQ0hBTkdFOgorCQl7CisJCQl4bF9wYXJhbWV0ZXJfY2hhbmdlICp4bHJl YyA9CisJCQkJKHhsX3BhcmFtZXRlcl9jaGFuZ2UgKikgWExvZ1JlY0dldERhdGEoYnVmLT5y ZWNvcmQpOworCisJCQkvKgorCQkJICogSWYgd2FsX2xldmVsIG9uIHByaW1hcnkgaXMgcmVk dWNlZCB0byBsZXNzIHRoYW4gbG9naWNhbCwgdGhlbiB3ZQorCQkJICogd2FudCB0byBwcmV2 ZW50IGV4aXN0aW5nIGxvZ2ljYWwgc2xvdHMgZnJvbSBiZWluZyB1c2VkLgorCQkJICogRXhp c3RpbmcgbG9naWNhbCBzbG90cyBvbiBzdGFuZGJ5IGdldCBpbnZhbGlkYXRlZCB3aGVuIHRo aXMgV0FMCisJCQkgKiByZWNvcmQgaXMgcmVwbGF5ZWQ7IGFuZCBmdXJ0aGVyLCBzbG90IGNy ZWF0aW9uIGZhaWxzIHdoZW4gdGhlCisJCQkgKiB3YWwgbGV2ZWwgaXMgbm90IHN1ZmZpY2ll bnQ7IGJ1dCBhbGwgdGhlc2Ugb3BlcmF0aW9ucyBhcmUgbm90CisJCQkgKiBzeW5jaHJvbml6 ZWQsIHNvIGEgbG9naWNhbCBzbG90IG1heSBjcmVlcCBpbiB3aGlsZSB0aGUgd2FsX2xldmVs CisJCQkgKiBpcyBiZWluZyByZWR1Y2VkLiBIZW5jZSB0aGlzIGV4dHJhIGNoZWNrLgorCQkJ ICovCisJCQlpZiAoeGxyZWMtPndhbF9sZXZlbCA8IFdBTF9MRVZFTF9MT0dJQ0FMKQorCQkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5f UFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJCSBlcnJtc2coImxvZ2ljYWwgZGVjb2Rpbmcg b24gc3RhbmRieSByZXF1aXJlcyAiCisJCQkJCQkJCSJ3YWxfbGV2ZWwgdG8gYmUgYXQgbGVh c3QgbG9naWNhbCBvbiBtYXN0ZXIiKSkpOworCQkJYnJlYWs7CisJCX0KIAkJY2FzZSBYTE9H X05PT1A6CiAJCWNhc2UgWExPR19ORVhUT0lEOgogCQljYXNlIFhMT0dfU1dJVENIOgogCQlj YXNlIFhMT0dfQkFDS1VQX0VORDoKLQkJY2FzZSBYTE9HX1BBUkFNRVRFUl9DSEFOR0U6CiAJ CWNhc2UgWExPR19SRVNUT1JFX1BPSU5UOgogCQljYXNlIFhMT0dfRlBXX0NIQU5HRToKIAkJ Y2FzZSBYTE9HX0ZQSV9GT1JfSElOVDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC9sb2dpY2FsLmMKaW5kZXggMWE1OGRkNzY0OS4uOTNhNGZjZjE1YSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKKysrIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKQEAgLTExOSwyMyArMTE5 LDIyIEBAIENoZWNrTG9naWNhbERlY29kaW5nUmVxdWlyZW1lbnRzKHZvaWQpCiAJCQkJKGVy cmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCiAJCQkJ IGVycm1zZygibG9naWNhbCBkZWNvZGluZyByZXF1aXJlcyBhIGRhdGFiYXNlIGNvbm5lY3Rp b24iKSkpOwogCi0JLyogLS0tLQotCSAqIFRPRE86IFdlIGdvdCB0byBjaGFuZ2UgdGhhdCBz b21lZGF5IHNvb24uLi4KLQkgKgotCSAqIFRoZXJlJ3MgYmFzaWNhbGx5IHRocmVlIHRoaW5n cyBtaXNzaW5nIHRvIGFsbG93IHRoaXM6Ci0JICogMSkgV2UgbmVlZCB0byBiZSBhYmxlIHRv IGNvcnJlY3RseSBhbmQgcXVpY2tseSBpZGVudGlmeSB0aGUgdGltZWxpbmUgYQotCSAqCSAg TFNOIGJlbG9uZ3MgdG8KLQkgKiAyKSBXZSBuZWVkIHRvIGZvcmNlIGhvdF9zdGFuZGJ5X2Zl ZWRiYWNrIHRvIGJlIGVuYWJsZWQgYXQgYWxsIHRpbWVzIHNvCi0JICoJICB0aGUgcHJpbWFy eSBjYW5ub3QgcmVtb3ZlIHJvd3Mgd2UgbmVlZC4KLQkgKiAzKSBzdXBwb3J0IGRyb3BwaW5n IHJlcGxpY2F0aW9uIHNsb3RzIHJlZmVycmluZyB0byBhIGRhdGFiYXNlLCBpbgotCSAqCSAg ZGJhc2VfcmVkby4gVGhlcmUgY2FuJ3QgYmUgYW55IGFjdGl2ZSBvbmVzIGR1ZSB0byBIUyBy ZWNvdmVyeQotCSAqCSAgY29uZmxpY3RzLCBzbyB0aGF0IHNob3VsZCBiZSByZWxhdGl2ZWx5 IGVhc3kuCi0JICogLS0tLQotCSAqLwogCWlmIChSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKLQkJ ZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBP UlRFRCksCi0JCQkJIGVycm1zZygibG9naWNhbCBkZWNvZGluZyBjYW5ub3QgYmUgdXNlZCB3 aGlsZSBpbiByZWNvdmVyeSIpKSk7CisJeworCQkvKgorCQkgKiBUaGlzIGNoZWNrIG1heSBo YXZlIHJhY2UgY29uZGl0aW9ucywgYnV0IHdoZW5ldmVyCisJCSAqIFhMT0dfUEFSQU1FVEVS X0NIQU5HRSBpbmRpY2F0ZXMgdGhhdCB3YWxfbGV2ZWwgaGFzIGNoYW5nZWQsIHdlCisJCSAq IHZlcmlmeSB0aGF0IHRoZXJlIGFyZSBubyBleGlzdGluZyBsb2dpY2FsIHJlcGxpY2F0aW9u IHNsb3RzLiBBbmQgdG8KKwkJICogYXZvaWQgcmFjZXMgYXJvdW5kIGNyZWF0aW5nIGEgbmV3 IHNsb3QsCisJCSAqIENoZWNrTG9naWNhbERlY29kaW5nUmVxdWlyZW1lbnRzKCkgaXMgY2Fs bGVkIG9uY2UgYmVmb3JlIGNyZWF0aW5nCisJCSAqIHRoZSBzbG90LCBhbmQgb25jZSB3aGVu IGxvZ2ljYWwgZGVjb2RpbmcgaXMgaW5pdGlhbGx5IHN0YXJ0aW5nIHVwLgorCQkgKi8KKwkJ aWYgKEdldEFjdGl2ZVdhbExldmVsT25TdGFuZGJ5KCkgPCBXQUxfTEVWRUxfTE9HSUNBTCkK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9J Tl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCQkgZXJybXNnKCJsb2dpY2FsIGRlY29kaW5n IG9uIHN0YW5kYnkgcmVxdWlyZXMgIgorCQkJCQkJCSJ3YWxfbGV2ZWwgdG8gYmUgYXQgbGVh c3QgbG9naWNhbCBvbiBtYXN0ZXIiKSkpOworCX0KIH0KIAogLyoKQEAgLTMzMSw2ICszMzAs MTIgQEAgQ3JlYXRlSW5pdERlY29kaW5nQ29udGV4dChjb25zdCBjaGFyICpwbHVnaW4sCiAJ TG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4OwogCU1lbW9yeUNvbnRleHQgb2xkX2NvbnRl eHQ7CiAKKwkvKgorCSAqIE9uIHN0YW5kYnksIHRoaXMgY2hlY2sgaXMgYWxzbyByZXF1aXJl ZCB3aGlsZSBjcmVhdGluZyB0aGUgc2xvdC4gQ2hlY2sKKwkgKiB0aGUgY29tbWVudHMgaW4g dGhpcyBmdW5jdGlvbi4KKwkgKi8KKwlDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50 cygpOworCiAJLyogc2hvcnRlciBsaW5lcy4uLiAqLwogCXNsb3QgPSBNeVJlcGxpY2F0aW9u U2xvdDsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCmluZGV4IGYyMjU3MmJlMzAuLjFmN2E2 ODZjYjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYworKysg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTUxLDYgKzUxLDcgQEAKICNp bmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2NhcnJheS5o IgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAiYWNjZXNzL3hsb2dy ZWNvdmVyeS5oIgogCiAvKgogICogUmVwbGljYXRpb24gc2xvdCBvbi1kaXNrIGRhdGEgc3Ry dWN0dXJlLgpAQCAtMTE3NSwzNyArMTE3NiwyOCBAQCBSZXBsaWNhdGlvblNsb3RSZXNlcnZl V2FsKHZvaWQpCiAJCS8qCiAJCSAqIEZvciBsb2dpY2FsIHNsb3RzIGxvZyBhIHN0YW5kYnkg c25hcHNob3QgYW5kIHN0YXJ0IGxvZ2ljYWwgZGVjb2RpbmcKIAkJICogYXQgZXhhY3RseSB0 aGF0IHBvc2l0aW9uLiBUaGF0IGFsbG93cyB0aGUgc2xvdCB0byBzdGFydCB1cCBtb3JlCi0J CSAqIHF1aWNrbHkuCisJCSAqIHF1aWNrbHkuIEJ1dCBvbiBhIHN0YW5kYnkgd2UgY2Fubm90 IGRvIFdBTCB3cml0ZXMsIHNvIGp1c3QgdXNlIHRoZQorCQkgKiByZXBsYXkgcG9pbnRlcjsg ZWZmZWN0aXZlbHksIGFuIGF0dGVtcHQgdG8gY3JlYXRlIGEgbG9naWNhbCBzbG90IG9uCisJ CSAqIHN0YW5kYnkgd2lsbCBjYXVzZSBpdCB0byB3YWl0IGZvciBhbiB4bF9ydW5uaW5nX3hh Y3QgcmVjb3JkIHRvIGJlCisJCSAqIGxvZ2dlZCBpbmRlcGVuZGVudGx5IG9uIHRoZSBwcmlt YXJ5LCBzbyB0aGF0IGEgc25hcHNob3QgY2FuIGJlIGJ1aWx0CisJCSAqIHVzaW5nIHRoZSBy ZWNvcmQuCiAJCSAqCi0JCSAqIFRoYXQncyBub3QgbmVlZGVkIChvciBpbmRlZWQgaGVscGZ1 bCkgZm9yIHBoeXNpY2FsIHNsb3RzIGFzIHRoZXknbGwKLQkJICogc3RhcnQgcmVwbGF5IGF0 IHRoZSBsYXN0IGxvZ2dlZCBjaGVja3BvaW50IGFueXdheS4gSW5zdGVhZCByZXR1cm4KLQkJ ICogdGhlIGxvY2F0aW9uIG9mIHRoZSBsYXN0IHJlZG8gTFNOLiBXaGlsZSB0aGF0IHNsaWdo dGx5IGluY3JlYXNlcwotCQkgKiB0aGUgY2hhbmNlIHRoYXQgd2UgaGF2ZSB0byByZXRyeSwg aXQncyB3aGVyZSBhIGJhc2UgYmFja3VwIGhhcyB0bwotCQkgKiBzdGFydCByZXBsYXkgYXQu CisJCSAqIE5vbmUgb2YgdGhpcyBpcyBuZWVkZWQgKG9yIGluZGVlZCBoZWxwZnVsKSBmb3Ig cGh5c2ljYWwgc2xvdHMgYXMKKwkJICogdGhleSdsbCBzdGFydCByZXBsYXkgYXQgdGhlIGxh c3QgbG9nZ2VkIGNoZWNrcG9pbnQgYW55d2F5LiBJbnN0ZWFkCisJCSAqIHJldHVybiB0aGUg bG9jYXRpb24gb2YgdGhlIGxhc3QgcmVkbyBMU04uIFdoaWxlIHRoYXQgc2xpZ2h0bHkKKwkJ ICogaW5jcmVhc2VzIHRoZSBjaGFuY2UgdGhhdCB3ZSBoYXZlIHRvIHJldHJ5LCBpdCdzIHdo ZXJlIGEgYmFzZSBiYWNrdXAKKwkJICogaGFzIHRvIHN0YXJ0IHJlcGxheSBhdC4KIAkJICov Ci0JCWlmICghUmVjb3ZlcnlJblByb2dyZXNzKCkgJiYgU2xvdElzTG9naWNhbChzbG90KSkK LQkJewotCQkJWExvZ1JlY1B0cglmbHVzaHB0cjsKLQotCQkJLyogc3RhcnQgYXQgY3VycmVu dCBpbnNlcnQgcG9zaXRpb24gKi8KKwkJaWYgKFNsb3RJc1BoeXNpY2FsKHNsb3QpKQorCQkJ cmVzdGFydF9sc24gPSBHZXRSZWRvUmVjUHRyKCk7CisJCWVsc2UgaWYgKFJlY292ZXJ5SW5Q cm9ncmVzcygpKQorCQkJcmVzdGFydF9sc24gPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwp OworCQllbHNlCiAJCQlyZXN0YXJ0X2xzbiA9IEdldFhMb2dJbnNlcnRSZWNQdHIoKTsKLQkJ CVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOwotCQkJc2xvdC0+ZGF0YS5yZXN0YXJ0 X2xzbiA9IHJlc3RhcnRfbHNuOwotCQkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7 Ci0KLQkJCS8qIG1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBzdGFy dCAqLwotCQkJZmx1c2hwdHIgPSBMb2dTdGFuZGJ5U25hcHNob3QoKTsKIAotCQkJLyogYW5k IG1ha2Ugc3VyZSBpdCdzIGZzeW5jZWQgdG8gZGlzayAqLwotCQkJWExvZ0ZsdXNoKGZsdXNo cHRyKTsKLQkJfQotCQllbHNlCi0JCXsKLQkJCXJlc3RhcnRfbHNuID0gR2V0UmVkb1JlY1B0 cigpOwotCQkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7Ci0JCQlzbG90LT5kYXRh LnJlc3RhcnRfbHNuID0gcmVzdGFydF9sc247Ci0JCQlTcGluTG9ja1JlbGVhc2UoJnNsb3Qt Pm11dGV4KTsKLQkJfQorCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4KTsKKwkJc2xv dC0+ZGF0YS5yZXN0YXJ0X2xzbiA9IHJlc3RhcnRfbHNuOworCQlTcGluTG9ja1JlbGVhc2Uo JnNsb3QtPm11dGV4KTsKIAogCQkvKiBwcmV2ZW50IFdBTCByZW1vdmFsIGFzIGZhc3QgYXMg cG9zc2libGUgKi8KIAkJUmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJlZExTTigpOwpA QCAtMTIyMSw2ICsxMjEzLDE3IEBAIFJlcGxpY2F0aW9uU2xvdFJlc2VydmVXYWwodm9pZCkK IAkJaWYgKFhMb2dHZXRMYXN0UmVtb3ZlZFNlZ25vKCkgPCBzZWdubykKIAkJCWJyZWFrOwog CX0KKworCWlmICghUmVjb3ZlcnlJblByb2dyZXNzKCkgJiYgU2xvdElzTG9naWNhbChzbG90 KSkKKwl7CisJCVhMb2dSZWNQdHIJZmx1c2hwdHI7CisKKwkJLyogbWFrZSBzdXJlIHdlIGhh dmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIHN0YXJ0ICovCisJCWZsdXNocHRyID0gTG9nU3Rh bmRieVNuYXBzaG90KCk7CisKKwkJLyogYW5kIG1ha2Ugc3VyZSBpdCdzIGZzeW5jZWQgdG8g ZGlzayAqLworCQlYTG9nRmx1c2goZmx1c2hwdHIpOworCX0KIH0KIAogLyoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5kZXggODdhYjQ2NzQ0Ni4uZmQ2NmIyMDliNiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKKysrIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKQEAgLTkwNiwxNCArOTA2LDE4 IEBAIGxvZ2ljYWxfcmVhZF94bG9nX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpzdGF0ZSwgWExv Z1JlY1B0ciB0YXJnZXRQYWdlUHRyLCBpbnQgcmVxCiAJaW50CQkJY291bnQ7CiAJV0FMUmVh ZEVycm9yIGVycmluZm87CiAJWExvZ1NlZ05vCXNlZ25vOwotCVRpbWVMaW5lSUQJY3VyclRM SSA9IEdldFdBTEluc2VydGlvblRpbWVMaW5lKCk7CisJVGltZUxpbmVJRAljdXJyVExJOwog CiAJLyoKLQkgKiBTaW5jZSBsb2dpY2FsIGRlY29kaW5nIGlzIG9ubHkgcGVybWl0dGVkIG9u IGEgcHJpbWFyeSBzZXJ2ZXIsIHdlIGtub3cKLQkgKiB0aGF0IHRoZSBjdXJyZW50IHRpbWVs aW5lIElEIGNhbid0IGJlIGNoYW5naW5nIGFueSBtb3JlLiBJZiB3ZSBkaWQgdGhpcwotCSAq IG9uIGEgc3RhbmRieSwgd2UnZCBoYXZlIHRvIHdvcnJ5IGFib3V0IHRoZSB2YWx1ZXMgd2Ug Y29tcHV0ZSBoZXJlCi0JICogYmVjb21pbmcgaW52YWxpZCBkdWUgdG8gYSBwcm9tb3Rpb24g b3IgdGltZWxpbmUgY2hhbmdlLgorCSAqIFNpbmNlIGxvZ2ljYWwgZGVjb2RpbmcgaXMgYWxz byBwZXJtaXR0ZWQgb24gYSBzdGFuZGJ5IHNlcnZlciwgd2UgbmVlZAorCSAqIHRvIGNoZWNr IGlmIHRoZSBzZXJ2ZXIgaXMgaW4gcmVjb3ZlcnkgdG8gZGVjaWRlIGhvdyB0byBnZXQgdGhl IGN1cnJlbnQKKwkgKiB0aW1lbGluZSBJRCAoc28gdGhhdCBpdCBhbHNvIGNvdmVyIHRoZSBw cm9tb3Rpb24gb3IgdGltZWxpbmUgY2hhbmdlIGNhc2VzKS4KIAkgKi8KKwlpZiAoYW1fY2Fz Y2FkaW5nX3dhbHNlbmRlcikKKwkJR2V0WExvZ1JlcGxheVJlY1B0cigmY3VyclRMSSk7CisJ ZWxzZQorCQljdXJyVExJID0gR2V0V0FMSW5zZXJ0aW9uVGltZUxpbmUoKTsKKwogCVhMb2dS ZWFkRGV0ZXJtaW5lVGltZWxpbmUoc3RhdGUsIHRhcmdldFBhZ2VQdHIsIHJlcUxlbiwgY3Vy clRMSSk7CiAJc2VuZFRpbWVMaW5lSXNIaXN0b3JpYyA9IChzdGF0ZS0+Y3VyclRMSSAhPSBj dXJyVExJKTsKIAlzZW5kVGltZUxpbmUgPSBzdGF0ZS0+Y3VyclRMSTsKQEAgLTMwNzQsMTAg KzMwNzgsMTQgQEAgWExvZ1NlbmRMb2dpY2FsKHZvaWQpCiAJICogSWYgZmlyc3QgdGltZSB0 aHJvdWdoIGluIHRoaXMgc2Vzc2lvbiwgaW5pdGlhbGl6ZSBmbHVzaFB0ci4gIE90aGVyd2lz ZSwKIAkgKiB3ZSBvbmx5IG5lZWQgdG8gdXBkYXRlIGZsdXNoUHRyIGlmIEVuZFJlY1B0ciBp cyBwYXN0IGl0LgogCSAqLwotCWlmIChmbHVzaFB0ciA9PSBJbnZhbGlkWExvZ1JlY1B0cikK LQkJZmx1c2hQdHIgPSBHZXRGbHVzaFJlY1B0cihOVUxMKTsKLQllbHNlIGlmIChsb2dpY2Fs X2RlY29kaW5nX2N0eC0+cmVhZGVyLT5FbmRSZWNQdHIgPj0gZmx1c2hQdHIpCi0JCWZsdXNo UHRyID0gR2V0Rmx1c2hSZWNQdHIoTlVMTCk7CisJaWYgKGZsdXNoUHRyID09IEludmFsaWRY TG9nUmVjUHRyIHx8CisJCWxvZ2ljYWxfZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVuZFJlY1B0 ciA+PSBmbHVzaFB0cikKKwl7CisJCWlmIChhbV9jYXNjYWRpbmdfd2Fsc2VuZGVyKQorCQkJ Zmx1c2hQdHIgPSBHZXRTdGFuZGJ5Rmx1c2hSZWNQdHIoTlVMTCk7CisJCWVsc2UKKwkJCWZs dXNoUHRyID0gR2V0Rmx1c2hSZWNQdHIoTlVMTCk7CisJfQogCiAJLyogSWYgRW5kUmVjUHRy IGlzIHN0aWxsIHBhc3Qgb3VyIGZsdXNoUHRyLCBpdCBtZWFucyB3ZSBjYXVnaHQgdXAuICov CiAJaWYgKGxvZ2ljYWxfZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVuZFJlY1B0ciA+PSBmbHVz aFB0cikKQEAgLTMxNjgsNyArMzE3Niw4IEBAIEdldFN0YW5kYnlGbHVzaFJlY1B0cihUaW1l TGluZUlEICp0bGkpCiAJcmVjZWl2ZVB0ciA9IEdldFdhbFJjdkZsdXNoUmVjUHRyKE5VTEws ICZyZWNlaXZlVExJKTsKIAlyZXBsYXlQdHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKCZyZXBs YXlUTEkpOwogCi0JKnRsaSA9IHJlcGxheVRMSTsKKwlpZiAodGxpKQorCQkqdGxpID0gcmVw bGF5VExJOwogCiAJcmVzdWx0ID0gcmVwbGF5UHRyOwogCWlmIChyZWNlaXZlVExJID09IHJl cGxheVRMSSAmJiByZWNlaXZlUHRyID4gcmVwbGF5UHRyKQpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL3hsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKaW5kZXgg Y2ZlNTQwOTczOC4uNDhjYTg1MjM4MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNz L3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCkBAIC0yMzAsNiArMjMw LDcgQEAgZXh0ZXJuIHZvaWQgWExPR1NobWVtSW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIEJv b3RTdHJhcFhMT0codm9pZCk7CiBleHRlcm4gdm9pZCBJbml0aWFsaXplV2FsQ29uc2lzdGVu Y3lDaGVja2luZyh2b2lkKTsKIGV4dGVybiB2b2lkIExvY2FsUHJvY2Vzc0NvbnRyb2xGaWxl KGJvb2wgcmVzZXQpOworZXh0ZXJuIFdhbExldmVsIEdldEFjdGl2ZVdhbExldmVsT25TdGFu ZGJ5KHZvaWQpOwogZXh0ZXJuIHZvaWQgU3RhcnR1cFhMT0codm9pZCk7CiBleHRlcm4gdm9p ZCBTaHV0ZG93blhMT0coaW50IGNvZGUsIERhdHVtIGFyZyk7CiBleHRlcm4gdm9pZCBDcmVh dGVDaGVja1BvaW50KGludCBmbGFncyk7Ci0tIAoyLjM0LjEKCg== --------------gGsseGl4mHPyFRtqNH8mGIzV Content-Type: text/plain; charset=UTF-8; name="v39-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Disposition: attachment; filename="v39-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSA2YWUyMzI5OGUyYWVjMTYxNjM4MmY4N2U5ODQ2NzIyYzYyNDZiNmQ3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCAxMiBKYW4gMjAyMyAxMToxMToyOSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM5IDIvNl0gSGFuZGxlIGxvZ2ljYWwgc2xvdCBjb25mbGljdHMgb24gc3RhbmRieS4K CkR1cmluZyBXQUwgcmVwbGF5IG9uIHN0YW5kYnksIHdoZW4gc2xvdCBjb25mbGljdCBpcyBp ZGVudGlmaWVkLAppbnZhbGlkYXRlIHN1Y2ggc2xvdHMuIEFsc28gZG8gdGhlIHNhbWUgdGhp bmcgaWYgd2FsX2xldmVsIG9uIG1hc3RlcgppcyByZWR1Y2VkIHRvIGJlbG93IGxvZ2ljYWwg YW5kIHRoZXJlIGFyZSBleGlzdGluZyBsb2dpY2FsIHNsb3RzCm9uIHN0YW5kYnkuIEludHJv ZHVjZSBhIG5ldyBQcm9jU2lnbmFsUmVhc29uIHZhbHVlIGZvciBzbG90CmNvbmZsaWN0IHJl Y292ZXJ5LiBBcnJhbmdlIGZvciBhIG5ldyBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cyBm aWVsZDoKY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90LgoKQXV0aG9yOiBBbmRyZXMgRnJldW5k IChpbiBhbiBvbGRlciB2ZXJzaW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2 b3QKUmV2aWV3ZWQtQnk6IEJlcnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVy dCBIYWFzLCBGYWJyaXppbyBkZSBSb3llcyBNZWxsbwotLS0KIGRvYy9zcmMvc2dtbC9tb25p dG9yaW5nLnNnbWwgICAgICAgICAgICAgICAgICB8ICAxMSArCiBzcmMvYmFja2VuZC9hY2Nl c3MvZ2lzdC9naXN0eGxvZy5jICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvYWNj ZXNzL2hhc2gvaGFzaF94bG9nLmMgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idHhsb2cuYyAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQv YWNjZXNzL3NwZ2lzdC9zcGd4bG9nLmMgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgICAgICAgICAgICB8ICAyNCArKy0KIHNyYy9iYWNr ZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICAgICB8ICAgMyArLQogLi4uL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMgICAgICAgIHwgIDEzICstCiBzcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgICAgICAgICAgICAgICAgfCAxOTEgKysrKysr KysrKysrKy0tLS0tCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAg ICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jICAg ICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAgICAg ICAgICAgICB8ICAxMyArLQogc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAg ICAgICAgICAgIHwgIDI0ICsrKwogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0 X2RhdGFiYXNlLmMgIHwgICA0ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5j cy5jICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 ICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUvcGdzdGF0LmggICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3Qu aCAgICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2ln bmFsLmggICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRi eS5oICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dCAgICAgICAgICAgfCAgIDMgKy0KIDIyIGZpbGVzIGNoYW5nZWQsIDI2OCBp bnNlcnRpb25zKCspLCA1NSBkZWxldGlvbnMoLSkKICAgMy40JSBkb2Mvc3JjL3NnbWwvCiAg IDguNSUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgIDUuMyUgc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC8KICA1Ni43JSBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi8K ICAgNS4yJSBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy8KICAgNy4zJSBzcmMvYmFja2VuZC90 Y29wLwogICA1LjUlIHNyYy9iYWNrZW5kLwogICAzLjUlIHNyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uLwogICAzLjQlIHNyYy9pbmNsdWRlLwoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9t b25pdG9yaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCmluZGV4IDM1 OGQyZmY5MGYuLmFhYmY3NDQ3OGQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9tb25pdG9y aW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbApAQCAtNDMzOSw2 ICs0MzM5LDE3IEBAIFNFTEVDVCBwaWQsIHdhaXRfZXZlbnRfdHlwZSwgd2FpdF9ldmVudCBG Uk9NIHBnX3N0YXRfYWN0aXZpdHkgV0hFUkUgd2FpdF9ldmVudCBpCiAgICAgICAgZGVhZGxv Y2tzCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNvbmZsX2FjdGl2ZV9s b2dpY2Fsc2xvdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE51bWJlciBvZiBhY3RpdmUgbG9naWNhbCBz bG90cyBpbiB0aGlzIGRhdGFiYXNlIHRoYXQgaGF2ZSBiZWVuCisgICAgICAgaW52YWxpZGF0 ZWQgYmVjYXVzZSB0aGV5IGNvbmZsaWN0IHdpdGggcmVjb3ZlcnkgKG5vdGUgdGhhdCBpbmFj dGl2ZSBvbmVzCisgICAgICAgYXJlIGFsc28gaW52YWxpZGF0ZWQgYnV0IGRvIG5vdCBpbmNy ZW1lbnQgdGhpcyBjb3VudGVyKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvZ2lzdC9naXN0eGxvZy5jCmluZGV4IDU5ZTMxZmNjMTIuLjBjYzlhNzg1OGEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYwpAQCAtMTk3LDYgKzE5Nyw3IEBAIGdpc3RS ZWRvRGVsZXRlUmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlYTG9nUmVjR2V0 QmxvY2tUYWcocmVjb3JkLCAwLCAmcmxvY2F0b3IsIE5VTEwsIE5VTEwpOwogCiAJCVJlc29s dmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+c25hcHNob3RDb25mbGlj dEhvcml6b24sCisJCQkJCQkJCQkJCXhsZGF0YS0+aXNDYXRhbG9nUmVsLAogCQkJCQkJCQkJ CQlybG9jYXRvcik7CiAJfQogCkBAIC0zOTAsNiArMzkxLDcgQEAgZ2lzdFJlZG9QYWdlUmV1 c2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJICovCiAJaWYgKEluSG90U3RhbmRieSkK IAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3RGdWxsWGlkKHhscmVjLT5z bmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCQkJCSAgIHhscmVjLT5pc0NhdGFs b2dSZWwsCiAJCQkJCQkJCQkJCQkgICB4bHJlYy0+bG9jYXRvcik7CiB9CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hhc2gvaGFzaF94bG9nLmMKaW5kZXggMDhjZWI5MTI4OC4uYjg1NjMwNDc0NiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMKQEAgLTEwMDMsNiArMTAwMyw3 IEBAIGhhc2hfeGxvZ192YWN1dW1fb25lX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQp CiAKIAkJWExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwgJnJsb2NhdG9yLCBOVUxMLCBO VUxMKTsKIAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxkYXRhLT5z bmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCQkJeGxkYXRhLT5pc0NhdGFsb2dS ZWwsCiAJCQkJCQkJCQkJCXJsb2NhdG9yKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVh cGFtLmMKaW5kZXggMGUzN2JhZDIxMy4uYjIwNGRmZTEzMCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtLmMKQEAgLTg4OTAsNiArODg5MCw3IEBAIGhlYXBfeGxvZ19wcnVuZShYTG9n UmVhZGVyU3RhdGUgKnJlY29yZCkKIAkgKi8KIAlpZiAoSW5Ib3RTdGFuZGJ5KQogCQlSZXNv bHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+c25hcHNob3RDb25mbGlj dEhvcml6b24sCisJCQkJCQkJCQkJCXhscmVjLT5pc0NhdGFsb2dSZWwsCiAJCQkJCQkJCQkJ CXJsb2NhdG9yKTsKIAogCS8qCkBAIC05MDU5LDYgKzkwNjAsNyBAQCBoZWFwX3hsb2dfdmlz aWJsZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkgKi8KIAlpZiAoSW5Ib3RTdGFuZGJ5 KQogCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+c25hcHNo b3RDb25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCXhscmVjLT5mbGFncyAmIFZJU0lCSUxJ VFlNQVBfSVNfQ0FUQUxPR19SRUwsCiAJCQkJCQkJCQkJCXJsb2NhdG9yKTsKIAogCS8qCkBA IC05MTc2LDYgKzkxNzgsNyBAQCBoZWFwX3hsb2dfZnJlZXplX3BhZ2UoWExvZ1JlYWRlclN0 YXRlICpyZWNvcmQpCiAKIAkJWExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwgJnJsb2Nh dG9yLCBOVUxMLCBOVUxMKTsKIAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNo b3QoeGxyZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJCQl4bHJlYy0+ aXNDYXRhbG9nUmVsLAogCQkJCQkJCQkJCQlybG9jYXRvcik7CiAJfQogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cuYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0eGxvZy5jCmluZGV4IDQxNGNhNGY2ZGUuLmM4N2U0NmVkNjYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0eGxvZy5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0eGxvZy5jCkBAIC02NjksNiArNjY5LDcgQEAg YnRyZWVfeGxvZ19kZWxldGUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCVhMb2dSZWNH ZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybG9jYXRvciwgTlVMTCwgTlVMTCk7CiAKIAkJUmVz b2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPnNuYXBzaG90Q29uZmxp Y3RIb3Jpem9uLAorCQkJCQkJCQkJCQl4bHJlYy0+aXNDYXRhbG9nUmVsLAogCQkJCQkJCQkJ CQlybG9jYXRvcik7CiAJfQogCkBAIC0xMDA3LDYgKzEwMDgsNyBAQCBidHJlZV94bG9nX3Jl dXNlX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAKIAlpZiAoSW5Ib3RTdGFuZGJ5 KQogCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdEZ1bGxYaWQoeGxyZWMt PnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJCQkJICAgeGxyZWMtPmlzQ2F0 YWxvZ1JlbCwKIAkJCQkJCQkJCQkJCSAgIHhscmVjLT5sb2NhdG9yKTsKIH0KIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd4bG9nLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYwppbmRleCBiMDcxYjU5YzhhLi40NTlhYzkyOWJh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYwpAQCAtODc5LDYgKzg3OSw3 IEBAIHNwZ1JlZG9WYWN1dW1SZWRpcmVjdChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAog CQlYTG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmbG9jYXRvciwgTlVMTCwgTlVMTCk7 CiAJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+c25hcHNo b3RDb25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCXhsZGF0YS0+aXNDYXRhbG9nUmVsLAog CQkJCQkJCQkJCQlsb2NhdG9yKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cu YwppbmRleCAwMDcwZDU2YjBiLi44NjI1OTQyNTE2IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0veGxvZy5jCkBAIC02NDQyLDYgKzY0NDIsNyBAQCBDcmVhdGVDaGVja1BvaW50KGludCBm bGFncykKIAlWaXJ0dWFsVHJhbnNhY3Rpb25JZCAqdnhpZHM7CiAJaW50CQkJbnZ4aWRzOwog CWludAkJCW9sZFhMb2dBbGxvd2VkID0gMDsKKwlib29sCQlpbnZhbGlkYXRlZCA9IGZhbHNl OwogCiAJLyoKIAkgKiBBbiBlbmQtb2YtcmVjb3ZlcnkgY2hlY2twb2ludCBpcyByZWFsbHkg YSBzaHV0ZG93biBjaGVja3BvaW50LCBqdXN0CkBAIC02ODAyLDcgKzY4MDMsOCBAQCBDcmVh dGVDaGVja1BvaW50KGludCBmbGFncykKIAkgKi8KIAlYTEJ5dGVUb1NlZyhSZWRvUmVjUHRy LCBfbG9nU2VnTm8sIHdhbF9zZWdtZW50X3NpemUpOwogCUtlZXBMb2dTZWcocmVjcHRyLCAm X2xvZ1NlZ05vKTsKLQlpZiAoSW52YWxpZGF0ZU9ic29sZXRlUmVwbGljYXRpb25TbG90cyhf bG9nU2VnTm8pKQorCUludmFsaWRhdGVPYnNvbGV0ZU9yQ29uZmxpY3RpbmdMb2dpY2FsUmVw bGljYXRpb25TbG90cyhfbG9nU2VnTm8sICZpbnZhbGlkYXRlZCwgSW52YWxpZE9pZCwgTlVM TCk7CisJaWYgKGludmFsaWRhdGVkKQogCXsKIAkJLyoKIAkJICogU29tZSBzbG90cyBoYXZl IGJlZW4gaW52YWxpZGF0ZWQ7IHJlY2FsY3VsYXRlIHRoZSBvbGQtc2VnbWVudApAQCAtNzA4 MSw2ICs3MDgzLDcgQEAgQ3JlYXRlUmVzdGFydFBvaW50KGludCBmbGFncykKIAlYTG9nUmVj UHRyCWVuZHB0cjsKIAlYTG9nU2VnTm8JX2xvZ1NlZ05vOwogCVRpbWVzdGFtcFR6IHh0aW1l OworCWJvb2wJCWludmFsaWRhdGVkID0gZmFsc2U7CiAKIAkvKiBDb25jdXJyZW50IGNoZWNr cG9pbnQvcmVzdGFydHBvaW50IGNhbm5vdCBoYXBwZW4gKi8KIAlBc3NlcnQoIUlzVW5kZXJQ b3N0bWFzdGVyIHx8IE15QmFja2VuZFR5cGUgPT0gQl9DSEVDS1BPSU5URVIpOwpAQCAtNzI0 Niw3ICs3MjQ5LDggQEAgQ3JlYXRlUmVzdGFydFBvaW50KGludCBmbGFncykKIAlyZXBsYXlQ dHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKCZyZXBsYXlUTEkpOwogCWVuZHB0ciA9IChyZWNl aXZlUHRyIDwgcmVwbGF5UHRyKSA/IHJlcGxheVB0ciA6IHJlY2VpdmVQdHI7CiAJS2VlcExv Z1NlZyhlbmRwdHIsICZfbG9nU2VnTm8pOwotCWlmIChJbnZhbGlkYXRlT2Jzb2xldGVSZXBs aWNhdGlvblNsb3RzKF9sb2dTZWdObykpCisJSW52YWxpZGF0ZU9ic29sZXRlT3JDb25mbGlj dGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3RzKF9sb2dTZWdObywgJmludmFsaWRhdGVkLCBJ bnZhbGlkT2lkLCBOVUxMKTsKKwlpZiAoaW52YWxpZGF0ZWQpCiAJewogCQkvKgogCQkgKiBT b21lIHNsb3RzIGhhdmUgYmVlbiBpbnZhbGlkYXRlZDsgcmVjYWxjdWxhdGUgdGhlIG9sZC1z ZWdtZW50CkBAIC03OTU4LDYgKzc5NjIsMjIgQEAgeGxvZ19yZWRvKFhMb2dSZWFkZXJTdGF0 ZSAqcmVjb3JkKQogCQkvKiBVcGRhdGUgb3VyIGNvcHkgb2YgdGhlIHBhcmFtZXRlcnMgaW4g cGdfY29udHJvbCAqLwogCQltZW1jcHkoJnhscmVjLCBYTG9nUmVjR2V0RGF0YShyZWNvcmQp LCBzaXplb2YoeGxfcGFyYW1ldGVyX2NoYW5nZSkpOwogCisJCS8qCisJCSAqIEludmFsaWRh dGUgbG9naWNhbCBzbG90cyBpZiB3ZSBhcmUgaW4gaG90IHN0YW5kYnkgYW5kIHRoZSBwcmlt YXJ5IGRvZXMgbm90CisJCSAqIGhhdmUgYSBXQUwgbGV2ZWwgc3VmZmljaWVudCBmb3IgbG9n aWNhbCBkZWNvZGluZy4gTm8gbmVlZCB0byBzZWFyY2gKKwkJICogZm9yIHBvdGVudGlhbGx5 IGNvbmZsaWN0aW5nIGxvZ2ljYWxseSBzbG90cyBpZiBzdGFuZGJ5IGlzIHJ1bm5pbmcKKwkJ ICogd2l0aCB3YWxfbGV2ZWwgbG93ZXIgdGhhbiBsb2dpY2FsLCBiZWNhdXNlIGluIHRoYXQg Y2FzZSwgd2Ugd291bGQKKwkJICogaGF2ZSBlaXRoZXIgZGlzYWxsb3dlZCBjcmVhdGlvbiBv ZiBsb2dpY2FsIHNsb3RzIG9yIGludmFsaWRhdGVkIGV4aXN0aW5nCisJCSAqIG9uZXMuCisJ CSAqLworCQlpZiAoSW5SZWNvdmVyeSAmJiBJbkhvdFN0YW5kYnkgJiYKKwkJCXhscmVjLndh bF9sZXZlbCA8IFdBTF9MRVZFTF9MT0dJQ0FMICYmCisJCQl3YWxfbGV2ZWwgPj0gV0FMX0xF VkVMX0xPR0lDQUwpCisJCXsKKwkJCVRyYW5zYWN0aW9uSWQgQ29uZmxpY3RIb3Jpem9uID0g SW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJCQlJbnZhbGlkYXRlT2Jzb2xldGVPckNvbmZsaWN0 aW5nTG9naWNhbFJlcGxpY2F0aW9uU2xvdHMoSW52YWxpZFhMb2dSZWNQdHIsIE5VTEwsIElu dmFsaWRPaWQsICZDb25mbGljdEhvcml6b24pOworCQl9CisKIAkJTFdMb2NrQWNxdWlyZShD b250cm9sRmlsZUxvY2ssIExXX0VYQ0xVU0lWRSk7CiAJCUNvbnRyb2xGaWxlLT5NYXhDb25u ZWN0aW9ucyA9IHhscmVjLk1heENvbm5lY3Rpb25zOwogCQlDb250cm9sRmlsZS0+bWF4X3dv cmtlcl9wcm9jZXNzZXMgPSB4bHJlYy5tYXhfd29ya2VyX3Byb2Nlc3NlczsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCA0NDdjOWI5NzBmLi42MDgwYzE3YWM0 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0xMDY1LDcgKzEw NjUsOCBAQCBDUkVBVEUgVklFVyBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cyBBUwogICAg ICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9jayhELm9pZCkgQVMgY29uZmxf bG9jaywKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90KEQu b2lkKSBBUyBjb25mbF9zbmFwc2hvdCwKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2Nv bmZsaWN0X2J1ZmZlcnBpbihELm9pZCkgQVMgY29uZmxfYnVmZmVycGluLAotICAgICAgICAg ICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jayhELm9pZCkgQVMg Y29uZmxfZGVhZGxvY2sKKyAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3N0 YXJ0dXBfZGVhZGxvY2soRC5vaWQpIEFTIGNvbmZsX2RlYWRsb2NrLAorICAgICAgICAgICAg cGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9naWNhbHNsb3QoRC5vaWQpIEFTIGNvbmZsX2Fj dGl2ZV9sb2dpY2Fsc2xvdAogICAgIEZST00gcGdfZGF0YWJhc2UgRDsKIAogQ1JFQVRFIFZJ RVcgcGdfc3RhdF91c2VyX2Z1bmN0aW9ucyBBUwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMKaW5kZXggZmExYjY0MWEyYi4uMDcwZmQz NzhlOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dp Y2FsZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2lj YWxmdW5jcy5jCkBAIC0yMTYsOSArMjE2LDkgQEAgcGdfbG9naWNhbF9zbG90X2dldF9jaGFu Z2VzX2d1dHMoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wgY29uZmlybSwgYm9vbCBi aW4KIAogCQkvKgogCQkgKiBBZnRlciB0aGUgc2FuaXR5IGNoZWNrcyBpbiBDcmVhdGVEZWNv ZGluZ0NvbnRleHQsIG1ha2Ugc3VyZSB0aGUKLQkJICogcmVzdGFydF9sc24gaXMgdmFsaWQu ICBBdm9pZCAiY2Fubm90IGdldCBjaGFuZ2VzIiB3b3JkaW5nIGluIHRoaXMKLQkJICogZXJy bXNnIGJlY2F1c2UgdGhhdCdkIGJlIGNvbmZ1c2luZ2x5IGFtYmlndW91cyBhYm91dCBubyBj aGFuZ2VzCi0JCSAqIGJlaW5nIGF2YWlsYWJsZS4KKwkJICogcmVzdGFydF9sc24gaXMgdmFs aWQgb3IgYm90aCB4bWluIGFuZCBjYXRhbG9nX3htaW4gYXJlIHZhbGlkLiBBdm9pZAorCQkg KiAiY2Fubm90IGdldCBjaGFuZ2VzIiB3b3JkaW5nIGluIHRoaXMgZXJybXNnIGJlY2F1c2Ug dGhhdCdkIGJlCisJCSAqIGNvbmZ1c2luZ2x5IGFtYmlndW91cyBhYm91dCBubyBjaGFuZ2Vz IGJlaW5nIGF2YWlsYWJsZS4KIAkJICovCiAJCWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKE15 UmVwbGljYXRpb25TbG90LT5kYXRhLnJlc3RhcnRfbHNuKSkKIAkJCWVyZXBvcnQoRVJST1Is CkBAIC0yMjcsNiArMjI3LDEzIEBAIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlc19ndXRz KEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBib29sIGNvbmZpcm0sIGJvb2wgYmluCiAJCQkJ CQkJTmFtZVN0cigqbmFtZSkpLAogCQkJCQkgZXJyZGV0YWlsKCJUaGlzIHNsb3QgaGFzIG5l dmVyIHByZXZpb3VzbHkgcmVzZXJ2ZWQgV0FMLCBvciBpdCBoYXMgYmVlbiBpbnZhbGlkYXRl ZC4iKSkpOwogCisJCWlmIChMb2dpY2FsUmVwbGljYXRpb25TbG90SXNJbnZhbGlkKE15UmVw bGljYXRpb25TbG90KSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNP REVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCQkgZXJybXNnKCJj YW5ub3QgcmVhZCBmcm9tIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIiLAorCQkJ CQkJCU5hbWVTdHIoKm5hbWUpKSwKKwkJCQkJIGVycmRldGFpbCgiVGhpcyBzbG90IGhhcyBi ZWVuIGludmFsaWRhdGVkIGJlY2F1c2UgaXQgd2FzIGNvbmZsaWN0aW5nIHdpdGggcmVjb3Zl cnkuIikpKTsKKwogCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CiAKIAkJ LyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCBmMjg2OTE4ZjY5Li5mMjI1NzJiZTMw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC0xMjI0LDIwICsxMjI0LDIxIEBAIFJl cGxpY2F0aW9uU2xvdFJlc2VydmVXYWwodm9pZCkKIH0KIAogLyoKLSAqIEhlbHBlciBmb3Ig SW52YWxpZGF0ZU9ic29sZXRlUmVwbGljYXRpb25TbG90cyAtLSBhY3F1aXJlcyB0aGUgZ2l2 ZW4gc2xvdAotICogYW5kIG1hcmsgaXQgaW52YWxpZCwgaWYgbmVjZXNzYXJ5IGFuZCBwb3Nz aWJsZS4KKyAqIEhlbHBlciBmb3IgSW52YWxpZGF0ZU9ic29sZXRlT3JDb25mbGljdGluZ0xv Z2ljYWxSZXBsaWNhdGlvblNsb3RzCisgKgorICogQWNxdWlyZXMgdGhlIGdpdmVuIHNsb3Qg YW5kIG1hcmsgaXQgaW52YWxpZCwgaWYgbmVjZXNzYXJ5IGFuZCBwb3NzaWJsZS4KICAqCiAg KiBSZXR1cm5zIHdoZXRoZXIgUmVwbGljYXRpb25TbG90Q29udHJvbExvY2sgd2FzIHJlbGVh c2VkIGluIHRoZSBpbnRlcmltIChhbmQKICAqIGluIHRoYXQgY2FzZSB3ZSdyZSBub3QgaG9s ZGluZyB0aGUgbG9jayBhdCByZXR1cm4sIG90aGVyd2lzZSB3ZSBhcmUpLgogICoKLSAqIFNl dHMgKmludmFsaWRhdGVkIHRydWUgaWYgdGhlIHNsb3Qgd2FzIGludmFsaWRhdGVkLiAoVW50 b3VjaGVkIG90aGVyd2lzZS4pCisgKiBTZXRzICppbnZhbGlkYXRlZCB0cnVlIGlmIGFuIG9i c29sZXRlIHNsb3Qgd2FzIGludmFsaWRhdGVkLiAoVW50b3VjaGVkIG90aGVyd2lzZS4pCiAg KgogICogVGhpcyBpcyBpbmhlcmVudGx5IHJhY3ksIGJlY2F1c2Ugd2UgcmVsZWFzZSB0aGUg TFdMb2NrCiAgKiBmb3Igc3lzY2FsbHMsIHNvIGNhbGxlciBtdXN0IHJlc3RhcnQgaWYgd2Ug cmV0dXJuIHRydWUuCiAgKi8KIHN0YXRpYyBib29sCi1JbnZhbGlkYXRlUG9zc2libHlPYnNv bGV0ZVNsb3QoUmVwbGljYXRpb25TbG90ICpzLCBYTG9nUmVjUHRyIG9sZGVzdExTTiwKLQkJ CQkJCQkgICBib29sICppbnZhbGlkYXRlZCkKK0ludmFsaWRhdGVQb3NzaWJseU9ic29sZXRl T3JDb25mbGljdGluZ0xvZ2ljYWxTbG90KFJlcGxpY2F0aW9uU2xvdCAqcywgWExvZ1JlY1B0 ciBvbGRlc3RMU04sCisJCQkJCQkJCQkJCQkgICBib29sICppbnZhbGlkYXRlZCwgVHJhbnNh Y3Rpb25JZCAqeGlkKQogewogCWludAkJCWxhc3Rfc2lnbmFsZWRfcGlkID0gMDsKIAlib29s CQlyZWxlYXNlZF9sb2NrID0gZmFsc2U7CkBAIC0xMjQ1LDYgKzEyNDYsOSBAQCBJbnZhbGlk YXRlUG9zc2libHlPYnNvbGV0ZVNsb3QoUmVwbGljYXRpb25TbG90ICpzLCBYTG9nUmVjUHRy IG9sZGVzdExTTiwKIAlmb3IgKDs7KQogCXsKIAkJWExvZ1JlY1B0cglyZXN0YXJ0X2xzbjsK KwkJVHJhbnNhY3Rpb25JZCBzbG90X3htaW47CisJCVRyYW5zYWN0aW9uSWQgc2xvdF9jYXRh bG9nX3htaW47CisKIAkJTmFtZURhdGEJc2xvdG5hbWU7CiAJCWludAkJCWFjdGl2ZV9waWQg PSAwOwogCkBAIC0xMjYxLDE4ICsxMjY1LDMzIEBAIEludmFsaWRhdGVQb3NzaWJseU9ic29s ZXRlU2xvdChSZXBsaWNhdGlvblNsb3QgKnMsIFhMb2dSZWNQdHIgb2xkZXN0TFNOLAogCQkg KiBDaGVjayBpZiB0aGUgc2xvdCBuZWVkcyB0byBiZSBpbnZhbGlkYXRlZC4gSWYgaXQgbmVl ZHMgdG8gYmUKIAkJICogaW52YWxpZGF0ZWQsIGFuZCBpcyBub3QgY3VycmVudGx5IGFjcXVp cmVkLCBhY3F1aXJlIGl0IGFuZCBtYXJrIGl0CiAJCSAqIGFzIGhhdmluZyBiZWVuIGludmFs aWRhdGVkLiAgV2UgZG8gdGhpcyB3aXRoIHRoZSBzcGlubG9jayBoZWxkIHRvCi0JCSAqIGF2 b2lkIHJhY2UgY29uZGl0aW9ucyAtLSBmb3IgZXhhbXBsZSB0aGUgcmVzdGFydF9sc24gY291 bGQgbW92ZQotCQkgKiBmb3J3YXJkLCBvciB0aGUgc2xvdCBjb3VsZCBiZSBkcm9wcGVkLgor CQkgKiBhdm9pZCByYWNlIGNvbmRpdGlvbnMgLS0gZm9yIGV4YW1wbGUgdGhlIHJlc3RhcnRf bHNuIChvciB0aGUKKwkJICogeG1pbihzKSBjb3VsZCkgbW92ZSBmb3J3YXJkIG9yIHRoZSBz bG90IGNvdWxkIGJlIGRyb3BwZWQuCiAJCSAqLwogCQlTcGluTG9ja0FjcXVpcmUoJnMtPm11 dGV4KTsKIAogCQlyZXN0YXJ0X2xzbiA9IHMtPmRhdGEucmVzdGFydF9sc247CisJCXNsb3Rf eG1pbiA9IHMtPmRhdGEueG1pbjsKKwkJc2xvdF9jYXRhbG9nX3htaW4gPSBzLT5kYXRhLmNh dGFsb2dfeG1pbjsKKworCQkvKiBzbG90IGhhcyBiZWVuIGludmFsaWRhdGVkIChsb2dpY2Fs IGRlY29kaW5nIGNvbmZsaWN0IGNhc2UpICovCisJCWlmICgoeGlkICYmCisJCQkgKChMb2dp Y2FsUmVwbGljYXRpb25TbG90SXNJbnZhbGlkKHMpKQorCQkJICB8fAogCiAJCS8qCi0JCSAq IElmIHRoZSBzbG90IGlzIGFscmVhZHkgaW52YWxpZCBvciBpcyBmcmVzaCBlbm91Z2gsIHdl IGRvbid0IG5lZWQgdG8KLQkJICogZG8gYW55dGhpbmcuCisJCSAqIFdlIGFyZSBub3QgZm9y Y2luZyBmb3IgaW52YWxpZGF0aW9uIGJlY2F1c2UgdGhlIHhpZCBpcyB2YWxpZCBhbmQKKwkJ ICogdGhpcyBpcyBhIG5vbiBjb25mbGljdGluZyBzbG90LgogCQkgKi8KLQkJaWYgKFhMb2dS ZWNQdHJJc0ludmFsaWQocmVzdGFydF9sc24pIHx8IHJlc3RhcnRfbHNuID49IG9sZGVzdExT TikKKwkJCSAgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKCp4aWQpICYmICEoCisJCQkJCQkJCQkJ CSAgIChUcmFuc2FjdGlvbklkSXNWYWxpZChzbG90X3htaW4pICYmIFRyYW5zYWN0aW9uSWRQ cmVjZWRlc09yRXF1YWxzKHNsb3RfeG1pbiwgKnhpZCkpCisJCQkJCQkJCQkJCSAgIHx8CisJ CQkJCQkJCQkJCSAgIChUcmFuc2FjdGlvbklkSXNWYWxpZChzbG90X2NhdGFsb2dfeG1pbikg JiYgVHJhbnNhY3Rpb25JZFByZWNlZGVzT3JFcXVhbHMoc2xvdF9jYXRhbG9nX3htaW4sICp4 aWQpKQorCQkJCQkJCQkJCQkgICApKQorCQkJICApKQorCQkJfHwKKwkJLyogc2xvdCBoYXMg YmVlbiBpbnZhbGlkYXRlZCAob2Jzb2xldGUgTFNOIGNhc2UpICovCisJCQkoIXhpZCAmJiAo WExvZ1JlY1B0cklzSW52YWxpZChyZXN0YXJ0X2xzbikgfHwgcmVzdGFydF9sc24gPj0gb2xk ZXN0TFNOKSkpCiAJCXsKIAkJCVNwaW5Mb2NrUmVsZWFzZSgmcy0+bXV0ZXgpOwogCQkJaWYg KHJlbGVhc2VkX2xvY2spCkBAIC0xMjkyLDExICsxMzExLDE4IEBAIEludmFsaWRhdGVQb3Nz aWJseU9ic29sZXRlU2xvdChSZXBsaWNhdGlvblNsb3QgKnMsIFhMb2dSZWNQdHIgb2xkZXN0 TFNOLAogCQl7CiAJCQlNeVJlcGxpY2F0aW9uU2xvdCA9IHM7CiAJCQlzLT5hY3RpdmVfcGlk ID0gTXlQcm9jUGlkOwotCQkJcy0+ZGF0YS5pbnZhbGlkYXRlZF9hdCA9IHJlc3RhcnRfbHNu OwotCQkJcy0+ZGF0YS5yZXN0YXJ0X2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOwotCi0JCQkv KiBMZXQgY2FsbGVyIGtub3cgKi8KLQkJCSppbnZhbGlkYXRlZCA9IHRydWU7CisJCQlpZiAo eGlkKQorCQkJeworCQkJCXMtPmRhdGEueG1pbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOwor CQkJCXMtPmRhdGEuY2F0YWxvZ194bWluID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJCQl9 CisJCQllbHNlCisJCQl7CisJCQkJcy0+ZGF0YS5pbnZhbGlkYXRlZF9hdCA9IHJlc3RhcnRf bHNuOworCQkJCXMtPmRhdGEucmVzdGFydF9sc24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKKwkJ CQkvKiBMZXQgY2FsbGVyIGtub3cgKi8KKwkJCQkqaW52YWxpZGF0ZWQgPSB0cnVlOworCQkJ fQogCQl9CiAKIAkJU3BpbkxvY2tSZWxlYXNlKCZzLT5tdXRleCk7CkBAIC0xMzI3LDE1ICsx MzUzLDM5IEBAIEludmFsaWRhdGVQb3NzaWJseU9ic29sZXRlU2xvdChSZXBsaWNhdGlvblNs b3QgKnMsIFhMb2dSZWNQdHIgb2xkZXN0TFNOLAogCQkJICovCiAJCQlpZiAobGFzdF9zaWdu YWxlZF9waWQgIT0gYWN0aXZlX3BpZCkKIAkJCXsKLQkJCQllcmVwb3J0KExPRywKLQkJCQkJ CWVycm1zZygidGVybWluYXRpbmcgcHJvY2VzcyAlZCB0byByZWxlYXNlIHJlcGxpY2F0aW9u IHNsb3QgXCIlc1wiIiwKLQkJCQkJCQkgICBhY3RpdmVfcGlkLCBOYW1lU3RyKHNsb3RuYW1l KSksCi0JCQkJCQllcnJkZXRhaWwoIlRoZSBzbG90J3MgcmVzdGFydF9sc24gJVgvJVggZXhj ZWVkcyB0aGUgbGltaXQgYnkgJWxsdSBieXRlcy4iLAotCQkJCQkJCQkgIExTTl9GT1JNQVRf QVJHUyhyZXN0YXJ0X2xzbiksCi0JCQkJCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZykgKG9s ZGVzdExTTiAtIHJlc3RhcnRfbHNuKSksCi0JCQkJCQllcnJoaW50KCJZb3UgbWlnaHQgbmVl ZCB0byBpbmNyZWFzZSBtYXhfc2xvdF93YWxfa2VlcF9zaXplLiIpKTsKKwkJCQlpZiAoeGlk KQorCQkJCXsKKwkJCQkJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKCp4aWQpKQorCQkJCQl7 CisJCQkJCQllcmVwb3J0KExPRywKKwkJCQkJCQkJZXJybXNnKCJ0ZXJtaW5hdGluZyBwcm9j ZXNzICVkIGJlY2F1c2UgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgY29uZmxpY3RzIHdpdGgg cmVjb3ZlcnkiLAorCQkJCQkJCQkJICAgYWN0aXZlX3BpZCwgTmFtZVN0cihzbG90bmFtZSkp LAorCQkJCQkJCQllcnJkZXRhaWwoIlRoZSBzbG90IGNvbmZsaWN0ZWQgd2l0aCB4aWQgaG9y aXpvbiAldS4iLAorCQkJCQkJCQkJCSAgKnhpZCkpOworCQkJCQl9CisJCQkJCWVsc2UKKwkJ CQkJeworCQkJCQkJZXJlcG9ydChMT0csCisJCQkJCQkJCWVycm1zZygidGVybWluYXRpbmcg cHJvY2VzcyAlZCBiZWNhdXNlIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGNvbmZsaWN0cyB3 aXRoIHJlY292ZXJ5IiwKKwkJCQkJCQkJCSAgIGFjdGl2ZV9waWQsIE5hbWVTdHIoc2xvdG5h bWUpKSwKKwkJCQkJCQkJZXJyZGV0YWlsKCJMb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkg cmVxdWlyZXMgd2FsX2xldmVsIHRvIGJlIGF0IGxlYXN0IGxvZ2ljYWwgb24gbWFzdGVyIikp OworCQkJCQl9CisKKwkJCQkJKHZvaWQpIFNlbmRQcm9jU2lnbmFsKGFjdGl2ZV9waWQsIFBS T0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QsIEludmFsaWRCYWNrZW5kSWQp OworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQllcmVwb3J0KExPRywKKwkJCQkJCQll cnJtc2coInRlcm1pbmF0aW5nIHByb2Nlc3MgJWQgdG8gcmVsZWFzZSByZXBsaWNhdGlvbiBz bG90IFwiJXNcIiIsCisJCQkJCQkJCSAgIGFjdGl2ZV9waWQsIE5hbWVTdHIoc2xvdG5hbWUp KSwKKwkJCQkJCQllcnJkZXRhaWwoIlRoZSBzbG90J3MgcmVzdGFydF9sc24gJVgvJVggZXhj ZWVkcyB0aGUgbGltaXQgYnkgJWxsdSBieXRlcy4iLAorCQkJCQkJCQkJICBMU05fRk9STUFU X0FSR1MocmVzdGFydF9sc24pLAorCQkJCQkJCQkJICAodW5zaWduZWQgbG9uZyBsb25nKSAo b2xkZXN0TFNOIC0gcmVzdGFydF9sc24pKSwKKwkJCQkJCQllcnJoaW50KCJZb3UgbWlnaHQg bmVlZCB0byBpbmNyZWFzZSBtYXhfc2xvdF93YWxfa2VlcF9zaXplLiIpKTsKKworCQkJCQko dm9pZCkga2lsbChhY3RpdmVfcGlkLCBTSUdURVJNKTsKKwkJCQl9CiAKLQkJCQkodm9pZCkg a2lsbChhY3RpdmVfcGlkLCBTSUdURVJNKTsKIAkJCQlsYXN0X3NpZ25hbGVkX3BpZCA9IGFj dGl2ZV9waWQ7CiAJCQl9CiAKQEAgLTEzNjksMTMgKzE0MTksMzMgQEAgSW52YWxpZGF0ZVBv c3NpYmx5T2Jzb2xldGVTbG90KFJlcGxpY2F0aW9uU2xvdCAqcywgWExvZ1JlY1B0ciBvbGRl c3RMU04sCiAJCQlSZXBsaWNhdGlvblNsb3RTYXZlKCk7CiAJCQlSZXBsaWNhdGlvblNsb3RS ZWxlYXNlKCk7CiAKLQkJCWVyZXBvcnQoTE9HLAotCQkJCQllcnJtc2coImludmFsaWRhdGlu ZyBvYnNvbGV0ZSByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiIsCi0JCQkJCQkgICBOYW1lU3Ry KHNsb3RuYW1lKSksCi0JCQkJCWVycmRldGFpbCgiVGhlIHNsb3QncyByZXN0YXJ0X2xzbiAl WC8lWCBleGNlZWRzIHRoZSBsaW1pdCBieSAlbGx1IGJ5dGVzLiIsCi0JCQkJCQkJICBMU05f Rk9STUFUX0FSR1MocmVzdGFydF9sc24pLAotCQkJCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9u ZykgKG9sZGVzdExTTiAtIHJlc3RhcnRfbHNuKSksCi0JCQkJCWVycmhpbnQoIllvdSBtaWdo dCBuZWVkIHRvIGluY3JlYXNlIG1heF9zbG90X3dhbF9rZWVwX3NpemUuIikpOworCQkJaWYg KHhpZCkKKwkJCXsKKwkJCQlwZ3N0YXRfZHJvcF9yZXBsc2xvdChzKTsKKworCQkJCWlmIChU cmFuc2FjdGlvbklkSXNWYWxpZCgqeGlkKSkKKwkJCQl7CisJCQkJCWVyZXBvcnQoTE9HLAor CQkJCQkJCWVycm1zZygiaW52YWxpZGF0aW5nIHNsb3QgXCIlc1wiIGJlY2F1c2UgaXQgY29u ZmxpY3RzIHdpdGggcmVjb3ZlcnkiLCBOYW1lU3RyKHNsb3RuYW1lKSksCisJCQkJCQkJZXJy ZGV0YWlsKCJUaGUgc2xvdCBjb25mbGljdGVkIHdpdGggeGlkIGhvcml6b24gJXUuIiwgKnhp ZCkpOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQllcmVwb3J0KExPRywKKwkJCQkJ CQllcnJtc2coImludmFsaWRhdGluZyBzbG90IFwiJXNcIiBiZWNhdXNlIGl0IGNvbmZsaWN0 cyB3aXRoIHJlY292ZXJ5IiwgTmFtZVN0cihzbG90bmFtZSkpLAorCQkJCQkJCWVycmRldGFp bCgiTG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5IHJlcXVpcmVzIHdhbF9sZXZlbCB0byBi ZSBhdCBsZWFzdCBsb2dpY2FsIG9uIG1hc3RlciIpKTsKKwkJCQl9CisJCQl9CisJCQllbHNl CisJCQl7CisJCQkJZXJlcG9ydChMT0csCisJCQkJCQllcnJtc2coImludmFsaWRhdGluZyBv YnNvbGV0ZSByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiIsCisJCQkJCQkJICAgTmFtZVN0cihz bG90bmFtZSkpLAorCQkJCQkJZXJyZGV0YWlsKCJUaGUgc2xvdCdzIHJlc3RhcnRfbHNuICVY LyVYIGV4Y2VlZHMgdGhlIGxpbWl0IGJ5ICVsbHUgYnl0ZXMuIiwKKwkJCQkJCQkJICBMU05f Rk9STUFUX0FSR1MocmVzdGFydF9sc24pLAorCQkJCQkJCQkgICh1bnNpZ25lZCBsb25nIGxv bmcpIChvbGRlc3RMU04gLSByZXN0YXJ0X2xzbikpLAorCQkJCQkJZXJyaGludCgiWW91IG1p Z2h0IG5lZWQgdG8gaW5jcmVhc2UgbWF4X3Nsb3Rfd2FsX2tlZXBfc2l6ZS4iKSk7CisJCQl9 CiAKIAkJCS8qIGRvbmUgd2l0aCB0aGlzIHNsb3QgZm9yIG5vdyAqLwogCQkJYnJlYWs7CkBA IC0xMzg4LDIwICsxNDU4LDM4IEBAIEludmFsaWRhdGVQb3NzaWJseU9ic29sZXRlU2xvdChS ZXBsaWNhdGlvblNsb3QgKnMsIFhMb2dSZWNQdHIgb2xkZXN0TFNOLAogfQogCiAvKgotICog TWFyayBhbnkgc2xvdCB0aGF0IHBvaW50cyB0byBhbiBMU04gb2xkZXIgdGhhbiB0aGUgZ2l2 ZW4gc2VnbWVudAotICogYXMgaW52YWxpZDsgaXQgcmVxdWlyZXMgV0FMIHRoYXQncyBhYm91 dCB0byBiZSByZW1vdmVkLgorICogSW52YWxpZGF0ZSBPYnNvbGV0ZSBzbG90cyBvciByZXNv bHZlIHJlY292ZXJ5IGNvbmZsaWN0cyB3aXRoIGxvZ2ljYWwgc2xvdHMuCiAgKgotICogUmV0 dXJucyB0cnVlIHdoZW4gYW55IHNsb3QgaGF2ZSBnb3QgaW52YWxpZGF0ZWQuCisgKiBPYnNv bGV0ZSBjYXNlIChha2EgeGlkIGlzIE5VTEwpOgogICoKLSAqIE5CIC0gdGhpcyBydW5zIGFz IHBhcnQgb2YgY2hlY2twb2ludCwgc28gYXZvaWQgcmFpc2luZyBlcnJvcnMgaWYgcG9zc2li bGUuCisgKgkgTWFyayBhbnkgc2xvdCB0aGF0IHBvaW50cyB0byBhbiBMU04gb2xkZXIgdGhh biB0aGUgZ2l2ZW4gc2VnbWVudAorICoJIGFzIGludmFsaWQ7IGl0IHJlcXVpcmVzIFdBTCB0 aGF0J3MgYWJvdXQgdG8gYmUgcmVtb3ZlZC4KKyAqCSBiZWVuaW52YWxpZGF0ZWQgaXMgc2V0 IHRvIHRydWUgd2hlbiBhbnkgc2xvdCBoYXZlIGdvdCBpbnZhbGlkYXRlZC4KKyAqCisgKiAg TG9naWNhbCByZXBsaWNhdGlvbiBzbG90IGNhc2U6CisgKgorICoJIFdoZW4geGlkIGlzIHZh bGlkLCBpdCBtZWFucyB0aGF0IHdlIGFyZSBhYm91dCB0byByZW1vdmUgcm93cyBvbGRlciB0 aGFuIHhpZC4KKyAqCSBUaGVyZWZvcmUgd2UgbmVlZCB0byBpbnZhbGlkYXRlIHNsb3RzIHRo YXQgZGVwZW5kIG9uIHNlZWluZyB0aG9zZSByb3dzLgorICoJIFdoZW4geGlkIGlzIGludmFs aWQsIGludmFsaWRhdGUgYWxsIGxvZ2ljYWwgc2xvdHMuIFRoaXMgaXMgcmVxdWlyZWQgd2hl biB0aGUKKyAqCSBtYXN0ZXIgd2FsX2xldmVsIGlzIHNldCBiYWNrIHRvIHJlcGxpY2EsIHNv IGV4aXN0aW5nIGxvZ2ljYWwgc2xvdHMgbmVlZCB0bworICoJIGJlIGludmFsaWRhdGVkLgog ICovCi1ib29sCi1JbnZhbGlkYXRlT2Jzb2xldGVSZXBsaWNhdGlvblNsb3RzKFhMb2dTZWdO byBvbGRlc3RTZWdubykKK3ZvaWQKK0ludmFsaWRhdGVPYnNvbGV0ZU9yQ29uZmxpY3RpbmdM b2dpY2FsUmVwbGljYXRpb25TbG90cyhYTG9nU2VnTm8gb2xkZXN0U2Vnbm8sIGJvb2wgKmJl ZW5pbnZhbGlkYXRlZCwgT2lkIGRib2lkLCBUcmFuc2FjdGlvbklkICp4aWQpCiB7Ci0JWExv Z1JlY1B0cglvbGRlc3RMU047Ci0JYm9vbAkJaW52YWxpZGF0ZWQgPSBmYWxzZTsKIAotCVhM b2dTZWdOb09mZnNldFRvUmVjUHRyKG9sZGVzdFNlZ25vLCAwLCB3YWxfc2VnbWVudF9zaXpl LCBvbGRlc3RMU04pOworCVhMb2dSZWNQdHIJb2xkZXN0TFNOID0gSW52YWxpZFhMb2dSZWNQ dHI7CisKKwlBc3NlcnQobWF4X3JlcGxpY2F0aW9uX3Nsb3RzID49IDApOworCisJaWYgKG1h eF9yZXBsaWNhdGlvbl9zbG90cyA9PSAwKQorCQlyZXR1cm47CisKKwlpZiAoIXhpZCkKKwl7 CisJCSpiZWVuaW52YWxpZGF0ZWQgPSBmYWxzZTsKKwkJWExvZ1NlZ05vT2Zmc2V0VG9SZWNQ dHIob2xkZXN0U2Vnbm8sIDAsIHdhbF9zZWdtZW50X3NpemUsIG9sZGVzdExTTik7CisJfQog CiByZXN0YXJ0OgogCUxXTG9ja0FjcXVpcmUoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2ss IExXX1NIQVJFRCk7CkBAIC0xNDEyLDI0ICsxNTAwLDM1IEBAIHJlc3RhcnQ6CiAJCWlmICgh cy0+aW5fdXNlKQogCQkJY29udGludWU7CiAKLQkJaWYgKEludmFsaWRhdGVQb3NzaWJseU9i c29sZXRlU2xvdChzLCBvbGRlc3RMU04sICZpbnZhbGlkYXRlZCkpCisJCWlmICh4aWQpCiAJ CXsKLQkJCS8qIGlmIHRoZSBsb2NrIHdhcyByZWxlYXNlZCwgc3RhcnQgZnJvbSBzY3JhdGNo ICovCi0JCQlnb3RvIHJlc3RhcnQ7CisJCQkvKiB3ZSBhcmUgb25seSBkZWFsaW5nIHdpdGgg KmxvZ2ljYWwqIHNsb3QgY29uZmxpY3RzICovCisJCQlpZiAoIVNsb3RJc0xvZ2ljYWwocykp CisJCQkJY29udGludWU7CisKKwkJCS8qCisJCQkgKiBub3QgdGhlIGRhdGFiYXNlIG9mIGlu dGVyZXN0IGFuZCB3ZSBkb24ndCB3YW50IGFsbCB0aGUKKwkJCSAqIGRhdGFiYXNlLCBza2lw CisJCQkgKi8KKwkJCWlmIChzLT5kYXRhLmRhdGFiYXNlICE9IGRib2lkICYmIFRyYW5zYWN0 aW9uSWRJc1ZhbGlkKCp4aWQpKQorCQkJCWNvbnRpbnVlOwogCQl9CisKKwkJaWYgKEludmFs aWRhdGVQb3NzaWJseU9ic29sZXRlT3JDb25mbGljdGluZ0xvZ2ljYWxTbG90KHMsIG9sZGVz dExTTiwgYmVlbmludmFsaWRhdGVkLCB4aWQpKQorCQkJZ290byByZXN0YXJ0OwogCX0KKwog CUxXTG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2spOwogCiAJLyoKLQkg KiBJZiBhbnkgc2xvdHMgaGF2ZSBiZWVuIGludmFsaWRhdGVkLCByZWNhbGN1bGF0ZSB0aGUg cmVzb3VyY2UgbGltaXRzLgorCSAqIElmIGFueSBvYnNvbGV0ZSBzbG90cyBoYXZlIGJlZW4g aW52YWxpZGF0ZWQsIHJlY2FsY3VsYXRlIHRoZSByZXNvdXJjZQorCSAqIGxpbWl0cy4KIAkg Ki8KLQlpZiAoaW52YWxpZGF0ZWQpCisJaWYgKCF4aWQgJiYgKmJlZW5pbnZhbGlkYXRlZCkK IAl7CiAJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRYbWluKGZhbHNlKTsKIAkJ UmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJlZExTTigpOwogCX0KLQotCXJldHVybiBp bnZhbGlkYXRlZDsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3dhbHNlbmRlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMK aW5kZXggMDE1YWUyOTk1ZC4uODdhYjQ2NzQ0NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v d2Fsc2VuZGVyLmMKQEAgLTEyNTMsNiArMTI1MywxNCBAQCBTdGFydExvZ2ljYWxSZXBsaWNh dGlvbihTdGFydFJlcGxpY2F0aW9uQ21kICpjbWQpCiAKIAlSZXBsaWNhdGlvblNsb3RBY3F1 aXJlKGNtZC0+c2xvdG5hbWUsIHRydWUpOwogCisJaWYgKCFUcmFuc2FjdGlvbklkSXNWYWxp ZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS54bWluKQorCQkgJiYgIVRyYW5zYWN0aW9uSWRJ c1ZhbGlkKE15UmVwbGljYXRpb25TbG90LT5kYXRhLmNhdGFsb2dfeG1pbikpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJ U0lURV9TVEFURSksCisJCQkJIGVycm1zZygiY2Fubm90IHJlYWQgZnJvbSBsb2dpY2FsIHJl cGxpY2F0aW9uIHNsb3QgXCIlc1wiIiwKKwkJCQkJCWNtZC0+c2xvdG5hbWUpLAorCQkJCSBl cnJkZXRhaWwoIlRoaXMgc2xvdCBoYXMgYmVlbiBpbnZhbGlkYXRlZCBiZWNhdXNlIGl0IHdh cyBjb25mbGljdGluZyB3aXRoIHJlY292ZXJ5LiIpKSk7CisKIAlpZiAoWExvZ1JlY1B0cklz SW52YWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbikpCiAJCWVyZXBv cnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJ U0lURV9TVEFURSksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9j c2lnbmFsLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMKaW5kZXgg Mzk1YjJjZjY5MC4uYzg1Y2I1Y2MxOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFn ZS9pcGMvcHJvY3NpZ25hbC5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2Nz aWduYWwuYwpAQCAtNjczLDYgKzY3Myw5IEBAIHByb2NzaWduYWxfc2lndXNyMV9oYW5kbGVy KFNJR05BTF9BUkdTKQogCWlmIChDaGVja1Byb2NTaWduYWwoUFJPQ1NJR19SRUNPVkVSWV9D T05GTElDVF9TTkFQU0hPVCkpCiAJCVJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUFJPQ1NJ R19SRUNPVkVSWV9DT05GTElDVF9TTkFQU0hPVCk7CiAKKwlpZiAoQ2hlY2tQcm9jU2lnbmFs KFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QpKQorCQlSZWNvdmVyeUNv bmZsaWN0SW50ZXJydXB0KFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Qp OworCiAJaWYgKENoZWNrUHJvY1NpZ25hbChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NU QVJUVVBfREVBRExPQ0spKQogCQlSZWNvdmVyeUNvbmZsaWN0SW50ZXJydXB0KFBST0NTSUdf UkVDT1ZFUllfQ09ORkxJQ1RfU1RBUlRVUF9ERUFETE9DSyk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv aXBjL3N0YW5kYnkuYwppbmRleCA5NGNjODYwZjVmLi5kYWJhNzY2OTQ3IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKKysrIGIvc3JjL2JhY2tlbmQv c3RvcmFnZS9pcGMvc3RhbmRieS5jCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAidXRp bHMvcHNfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZW91dC5oIgogI2luY2x1ZGUg InV0aWxzL3RpbWVzdGFtcC5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKIAog LyogVXNlci1zZXR0YWJsZSBHVUMgcGFyYW1ldGVycyAqLwogaW50CQkJdmFjdXVtX2RlZmVy X2NsZWFudXBfYWdlOwpAQCAtNDc1LDYgKzQ3Niw3IEBAIFJlc29sdmVSZWNvdmVyeUNvbmZs aWN0V2l0aFZpcnR1YWxYSURzKFZpcnR1YWxUcmFuc2FjdGlvbklkICp3YWl0bGlzdCwKICAq Lwogdm9pZAogUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rp b25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCWJvb2wgaXNDYXRhbG9n UmVsLAogCQkJCQkJCQkJUmVsRmlsZUxvY2F0b3IgbG9jYXRvcikKIHsKIAlWaXJ0dWFsVHJh bnNhY3Rpb25JZCAqYmFja2VuZHM7CkBAIC01MDAsNiArNTAyLDkgQEAgUmVzb2x2ZVJlY292 ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0 SG9yaXpvbiwKIAkJCQkJCQkJCQkgICBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBT SE9ULAogCQkJCQkJCQkJCSAgIFdBSVRfRVZFTlRfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNI T1QsCiAJCQkJCQkJCQkJICAgdHJ1ZSk7CisKKwlpZiAod2FsX2xldmVsID49IFdBTF9MRVZF TF9MT0dJQ0FMICYmIGlzQ2F0YWxvZ1JlbCkKKwkJSW52YWxpZGF0ZU9ic29sZXRlT3JDb25m bGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3RzKEludmFsaWRYTG9nUmVjUHRyLCBOVUxM LCBsb2NhdG9yLmRiT2lkLCAmc25hcHNob3RDb25mbGljdEhvcml6b24pOwogfQogCiAvKgpA QCAtNTA4LDYgKzUxMyw3IEBAIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90 KFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b24sCiAgKi8KIHZvaWQKIFJl c29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90RnVsbFhpZChGdWxsVHJhbnNhY3Rp b25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCQkgICBib29sIGlzQ2F0 YWxvZ1JlbCwKIAkJCQkJCQkJCQkgICBSZWxGaWxlTG9jYXRvciBsb2NhdG9yKQogewogCS8q CkBAIC01MjYsNyArNTMyLDkgQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNo b3RGdWxsWGlkKEZ1bGxUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3IKIAkJVHJh bnNhY3Rpb25JZCB0cnVuY2F0ZWQ7CiAKIAkJdHJ1bmNhdGVkID0gWGlkRnJvbUZ1bGxUcmFu c2FjdGlvbklkKHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uKTsKLQkJUmVzb2x2ZVJlY292ZXJ5 Q29uZmxpY3RXaXRoU25hcHNob3QodHJ1bmNhdGVkLCBsb2NhdG9yKTsKKwkJUmVzb2x2ZVJl Y292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QodHJ1bmNhdGVkLAorCQkJCQkJCQkJCQlpc0Nh dGFsb2dSZWwsCisJCQkJCQkJCQkJCWxvY2F0b3IpOwogCX0KIH0KIApAQCAtMTQ4Nyw2ICsx NDk1LDkgQEAgZ2V0X3JlY292ZXJ5X2NvbmZsaWN0X2Rlc2MoUHJvY1NpZ25hbFJlYXNvbiBy ZWFzb24pCiAJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TTkFQU0hPVDoKIAkJ CXJlYXNvbkRlc2MgPSBfKCJyZWNvdmVyeSBjb25mbGljdCBvbiBzbmFwc2hvdCIpOwogCQkJ YnJlYWs7CisJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVDoK KwkJCXJlYXNvbkRlc2MgPSBfKCJyZWNvdmVyeSBjb25mbGljdCBvbiByZXBsaWNhdGlvbiBz bG90Iik7CisJCQlicmVhazsKIAkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NU QVJUVVBfREVBRExPQ0s6CiAJCQlyZWFzb25EZXNjID0gXygicmVjb3ZlcnkgY29uZmxpY3Qg b24gYnVmZmVyIGRlYWRsb2NrIik7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRl eCA0NzBiNzM0ZTllLi4wMDQxODk2NjIwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29w L3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCkBAIC0yNDgx LDYgKzI0ODEsOSBAQCBlcnJkZXRhaWxfcmVjb3ZlcnlfY29uZmxpY3Qodm9pZCkKIAkJY2Fz ZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9UOgogCQkJZXJyZGV0YWlsKCJV c2VyIHF1ZXJ5IG1pZ2h0IGhhdmUgbmVlZGVkIHRvIHNlZSByb3cgdmVyc2lvbnMgdGhhdCBt dXN0IGJlIHJlbW92ZWQuIik7CiAJCQlicmVhazsKKwkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZ X0NPTkZMSUNUX0xPR0lDQUxTTE9UOgorCQkJZXJyZGV0YWlsKCJVc2VyIHdhcyB1c2luZyB0 aGUgbG9naWNhbCBzbG90IHRoYXQgbXVzdCBiZSBkcm9wcGVkLiIpOworCQkJYnJlYWs7CiAJ CWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TVEFSVFVQX0RFQURMT0NLOgogCQkJ ZXJyZGV0YWlsKCJVc2VyIHRyYW5zYWN0aW9uIGNhdXNlZCBidWZmZXIgZGVhZGxvY2sgd2l0 aCByZWNvdmVyeS4iKTsKIAkJCWJyZWFrOwpAQCAtMzA1MCw2ICszMDUzLDI3IEBAIFJlY292 ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUHJvY1NpZ25hbFJlYXNvbiByZWFzb24pCiAJCQljYXNl IFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9DSzoKIAkJCWNhc2UgUFJPQ1NJR19SRUNP VkVSWV9DT05GTElDVF9UQUJMRVNQQUNFOgogCQkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NP TkZMSUNUX1NOQVBTSE9UOgorCQkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xP R0lDQUxTTE9UOgorCisJCQkJLyoKKwkJCQkgKiBGb3IgY29uZmxpY3RzIHRoYXQgcmVxdWly ZSBhIGxvZ2ljYWwgc2xvdCB0byBiZQorCQkJCSAqIGludmFsaWRhdGVkLCB0aGUgcmVxdWly ZW1lbnQgaXMgZm9yIHRoZSBzaWduYWwgcmVjZWl2ZXIgdG8KKwkJCQkgKiByZWxlYXNlIHRo ZSBzbG90LCBzbyB0aGF0IGl0IGNvdWxkIGJlIGludmFsaWRhdGVkIGJ5IHRoZQorCQkJCSAq IHNpZ25hbCBzZW5kZXIuIFNvIGZvciBub3JtYWwgYmFja2VuZHMsIHRoZSB0cmFuc2FjdGlv bgorCQkJCSAqIHNob3VsZCBiZSBhYm9ydGVkLCBqdXN0IGxpa2UgZm9yIG90aGVyIHJlY292 ZXJ5IGNvbmZsaWN0cy4KKwkJCQkgKiBCdXQgaWYgaXQncyB3YWxzZW5kZXIgb24gc3RhbmRi eSwgd2UgZG9uJ3Qgd2FudCB0byBnbworCQkJCSAqIHRocm91Z2ggdGhlIGZvbGxvd2luZyBJ c1RyYW5zYWN0aW9uT3JUcmFuc2FjdGlvbkJsb2NrKCkKKwkJCQkgKiBjaGVjaywgc28gYnJl YWsgaGVyZS4KKwkJCQkgKi8KKwkJCQlpZiAoYW1fY2FzY2FkaW5nX3dhbHNlbmRlciAmJgor CQkJCQlyZWFzb24gPT0gUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCAm JgorCQkJCQlNeVJlcGxpY2F0aW9uU2xvdCAmJiBTbG90SXNMb2dpY2FsKE15UmVwbGljYXRp b25TbG90KSkKKwkJCQl7CisJCQkJCVJlY292ZXJ5Q29uZmxpY3RQZW5kaW5nID0gdHJ1ZTsK KwkJCQkJUXVlcnlDYW5jZWxQZW5kaW5nID0gdHJ1ZTsKKwkJCQkJSW50ZXJydXB0UGVuZGlu ZyA9IHRydWU7CisJCQkJCWJyZWFrOworCQkJCX0KIAogCQkJCS8qCiAJCQkJICogSWYgd2Ug YXJlbid0IGluIGEgdHJhbnNhY3Rpb24gYW55IGxvbmdlciB0aGVuIGlnbm9yZS4KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2RhdGFiYXNlLmMKaW5kZXggNmU2 NTBjZWFhZC4uNzE0OWYyMmY3MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0 aXZpdHkvcGdzdGF0X2RhdGFiYXNlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvcGdzdGF0X2RhdGFiYXNlLmMKQEAgLTEwOSw2ICsxMDksOSBAQCBwZ3N0YXRfcmVwb3J0 X3JlY292ZXJ5X2NvbmZsaWN0KGludCByZWFzb24pCiAJCWNhc2UgUFJPQ1NJR19SRUNPVkVS WV9DT05GTElDVF9CVUZGRVJQSU46CiAJCQlkYmVudHJ5LT5jb25mbGljdF9idWZmZXJwaW4r KzsKIAkJCWJyZWFrOworCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNB TFNMT1Q6CisJCQlkYmVudHJ5LT5jb25mbGljdF9sb2dpY2Fsc2xvdCsrOworCQkJYnJlYWs7 CiAJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TVEFSVFVQX0RFQURMT0NLOgog CQkJZGJlbnRyeS0+Y29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jaysrOwogCQkJYnJlYWs7CkBA IC0zODcsNiArMzkwLDcgQEAgcGdzdGF0X2RhdGFiYXNlX2ZsdXNoX2NiKFBnU3RhdF9FbnRy eVJlZiAqZW50cnlfcmVmLCBib29sIG5vd2FpdCkKIAlQR1NUQVRfQUNDVU1fREJDT1VOVChj b25mbGljdF90YWJsZXNwYWNlKTsKIAlQR1NUQVRfQUNDVU1fREJDT1VOVChjb25mbGljdF9s b2NrKTsKIAlQR1NUQVRfQUNDVU1fREJDT1VOVChjb25mbGljdF9zbmFwc2hvdCk7CisJUEdT VEFUX0FDQ1VNX0RCQ09VTlQoY29uZmxpY3RfbG9naWNhbHNsb3QpOwogCVBHU1RBVF9BQ0NV TV9EQkNPVU5UKGNvbmZsaWN0X2J1ZmZlcnBpbik7CiAJUEdTVEFUX0FDQ1VNX0RCQ09VTlQo Y29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jayk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3Rh dGZ1bmNzLmMKaW5kZXggNmNkZGQ3NGFhNy4uM2NlNjlhNGJiYyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3Bnc3RhdGZ1bmNzLmMKQEAgLTEwNTUsNiArMTA1NSw4IEBAIFBHX1NUQVRfR0VU X0RCRU5UUllfSU5UNjQoeGFjdF9jb21taXQpCiAvKiBwZ19zdGF0X2dldF9kYl94YWN0X3Jv bGxiYWNrICovCiBQR19TVEFUX0dFVF9EQkVOVFJZX0lOVDY0KHhhY3Rfcm9sbGJhY2spCiAK Ky8qIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90ICovCitQR19TVEFUX0dF VF9EQkVOVFJZX0lOVDY0KGNvbmZsaWN0X2xvZ2ljYWxzbG90KQogCiBEYXR1bQogcGdfc3Rh dF9nZXRfZGJfc3RhdF9yZXNldF90aW1lKFBHX0ZVTkNUSU9OX0FSR1MpCkBAIC0xMDg4LDYg KzEwOTAsNyBAQCBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9hbGwoUEdfRlVOQ1RJT05fQVJH UykKIAkJcmVzdWx0ID0gKGludDY0KSAoZGJlbnRyeS0+Y29uZmxpY3RfdGFibGVzcGFjZSAr CiAJCQkJCQkgIGRiZW50cnktPmNvbmZsaWN0X2xvY2sgKwogCQkJCQkJICBkYmVudHJ5LT5j b25mbGljdF9zbmFwc2hvdCArCisJCQkJCQkgIGRiZW50cnktPmNvbmZsaWN0X2xvZ2ljYWxz bG90ICsKIAkJCQkJCSAgZGJlbnRyeS0+Y29uZmxpY3RfYnVmZmVycGluICsKIAkJCQkJCSAg ZGJlbnRyeS0+Y29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jayk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CmluZGV4IDM4MTBkZTdiMjIuLjAxZjRmZmVmOWEgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdApAQCAtNTU1MCw2ICs1NTUwLDExIEBACiAgIHByb25hbWUgPT4gJ3Bn X3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAog ICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBl cyA9PiAnb2lkJywKICAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zbmFw c2hvdCcgfSwKK3sgb2lkID0+ICc5OTAxJywKKyAgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IHJl Y292ZXJ5IGNvbmZsaWN0cyBpbiBkYXRhYmFzZSBjYXVzZWQgYnkgbG9naWNhbCByZXBsaWNh dGlvbiBzbG90JywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9n aWNhbHNsb3QnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3BhcmFsbGVsID0+ICdyJywg cHJvcmV0dHlwZSA9PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9zcmMg PT4gJ3BnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90JyB9LAogeyBvaWQgPT4g JzMwNjgnLAogICBkZXNjciA9PiAnc3RhdGlzdGljczogcmVjb3ZlcnkgY29uZmxpY3RzIGlu IGRhdGFiYXNlIGNhdXNlZCBieSBzaGFyZWQgYnVmZmVyIHBpbicsCiAgIHByb25hbWUgPT4g J3BnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2J1ZmZlcnBpbicsIHByb3ZvbGF0aWxlID0+ICdz JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oIGIvc3JjL2luY2x1ZGUvcGdz dGF0LmgKaW5kZXggZDNlOTY1ZDc0NC4uNjRkYzRlOTllZCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvcGdzdGF0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKQEAgLTI5MSw2ICsy OTEsNyBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfU3RhdERCRW50cnkKIAlQZ1N0YXRfQ291 bnRlciBjb25mbGljdF90YWJsZXNwYWNlOwogCVBnU3RhdF9Db3VudGVyIGNvbmZsaWN0X2xv Y2s7CiAJUGdTdGF0X0NvdW50ZXIgY29uZmxpY3Rfc25hcHNob3Q7CisJUGdTdGF0X0NvdW50 ZXIgY29uZmxpY3RfbG9naWNhbHNsb3Q7CiAJUGdTdGF0X0NvdW50ZXIgY29uZmxpY3RfYnVm ZmVycGluOwogCVBnU3RhdF9Db3VudGVyIGNvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2s7CiAJ UGdTdGF0X0NvdW50ZXIgdGVtcF9maWxlczsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3Nsb3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaAppbmRl eCA4ODcyYzgwY2RmLi5kMzkyYjVlZWM1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi9zbG90LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCkBA IC0xNyw2ICsxNyw4IEBACiAjaW5jbHVkZSAic3RvcmFnZS9zcGluLmgiCiAjaW5jbHVkZSAi cmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaCIKIAorI2RlZmluZSBMb2dpY2FsUmVwbGljYXRp b25TbG90SXNJbnZhbGlkKHMpICghVHJhbnNhY3Rpb25JZElzVmFsaWQocy0+ZGF0YS54bWlu KSAmJiBcCisJCQkJCQkJCQkJCSAhVHJhbnNhY3Rpb25JZElzVmFsaWQocy0+ZGF0YS5jYXRh bG9nX3htaW4pKQogLyoKICAqIEJlaGF2aW91ciBvZiByZXBsaWNhdGlvbiBzbG90cywgdXBv biByZWxlYXNlIG9yIGNyYXNoLgogICoKQEAgLTIxNSw3ICsyMTcsNyBAQCBleHRlcm4gdm9p ZCBSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVpcmVkTFNOKHZvaWQpOwogZXh0ZXJuIFhM b2dSZWNQdHIgUmVwbGljYXRpb25TbG90c0NvbXB1dGVMb2dpY2FsUmVzdGFydExTTih2b2lk KTsKIGV4dGVybiBib29sIFJlcGxpY2F0aW9uU2xvdHNDb3VudERCU2xvdHMoT2lkIGRib2lk LCBpbnQgKm5zbG90cywgaW50ICpuYWN0aXZlKTsKIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9u U2xvdHNEcm9wREJTbG90cyhPaWQgZGJvaWQpOwotZXh0ZXJuIGJvb2wgSW52YWxpZGF0ZU9i c29sZXRlUmVwbGljYXRpb25TbG90cyhYTG9nU2VnTm8gb2xkZXN0U2Vnbm8pOworZXh0ZXJu IHZvaWQgSW52YWxpZGF0ZU9ic29sZXRlT3JDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlv blNsb3RzKFhMb2dTZWdObyBvbGRlc3RTZWdubywgYm9vbCAqYmVlbmludmFsaWRhdGVkLCBP aWQgZGJvaWQsIFRyYW5zYWN0aW9uSWQgKnhpZCk7CiBleHRlcm4gUmVwbGljYXRpb25TbG90 ICpTZWFyY2hOYW1lZFJlcGxpY2F0aW9uU2xvdChjb25zdCBjaGFyICpuYW1lLCBib29sIG5l ZWRfbG9jayk7CiBleHRlcm4gaW50CVJlcGxpY2F0aW9uU2xvdEluZGV4KFJlcGxpY2F0aW9u U2xvdCAqc2xvdCk7CiBleHRlcm4gYm9vbCBSZXBsaWNhdGlvblNsb3ROYW1lKGludCBpbmRl eCwgTmFtZSBuYW1lKTsKQEAgLTIyNyw1ICsyMjksNiBAQCBleHRlcm4gdm9pZCBDaGVja1Bv aW50UmVwbGljYXRpb25TbG90cyh2b2lkKTsKIAogZXh0ZXJuIHZvaWQgQ2hlY2tTbG90UmVx dWlyZW1lbnRzKHZvaWQpOwogZXh0ZXJuIHZvaWQgQ2hlY2tTbG90UGVybWlzc2lvbnModm9p ZCk7CitleHRlcm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhMb2dpY2FsU2xv dHMoT2lkIGRib2lkLCBUcmFuc2FjdGlvbklkIHhpZCwgY2hhciAqcmVhc29uKTsKIAogI2Vu ZGlmCQkJCQkJCS8qIFNMT1RfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3RvcmFn ZS9wcm9jc2lnbmFsLmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaAppbmRl eCA5MDVhZjIyMzFiLi4yZjUyMTAwYjAwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9y YWdlL3Byb2NzaWduYWwuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwu aApAQCAtNDIsNiArNDIsNyBAQCB0eXBlZGVmIGVudW0KIAlQUk9DU0lHX1JFQ09WRVJZX0NP TkZMSUNUX1RBQkxFU1BBQ0UsCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0NLLAog CVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QsCisJUFJPQ1NJR19SRUNPVkVS WV9DT05GTElDVF9MT0dJQ0FMU0xPVCwKIAlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0JV RkZFUlBJTiwKIAlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NUQVJUVVBfREVBRExPQ0ss CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oIGIvc3JjL2lu Y2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmgKaW5kZXggMmVmZmRlYTEyNi4uNDFmNGRjMzcyZSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmgKKysrIGIvc3JjL2lu Y2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmgKQEAgLTMwLDggKzMwLDEwIEBAIGV4dGVybiB2b2lk IEluaXRSZWNvdmVyeVRyYW5zYWN0aW9uRW52aXJvbm1lbnQodm9pZCk7CiBleHRlcm4gdm9p ZCBTaHV0ZG93blJlY292ZXJ5VHJhbnNhY3Rpb25FbnZpcm9ubWVudCh2b2lkKTsKIAogZXh0 ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rp b25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCQkJCWJvb2wgaXNDYXRh bG9nUmVsLAogCQkJCQkJCQkJCQkJUmVsRmlsZUxvY2F0b3IgbG9jYXRvcik7CiBleHRlcm4g dm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdEZ1bGxYaWQoRnVsbFRy YW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCQkJICAg Ym9vbCBpc0NhdGFsb2dSZWwsCiAJCQkJCQkJCQkJCQkJICAgUmVsRmlsZUxvY2F0b3IgbG9j YXRvcik7CiBleHRlcm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhUYWJsZXNw YWNlKE9pZCB0c2lkKTsKIGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0 aERhdGFiYXNlKE9pZCBkYmlkKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQK aW5kZXggZmI5ZjkzNmQ0My4uMWNjNjJjNDQ3ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ydWxlcy5vdXQKQEAgLTE4NjgsNyArMTg2OCw4IEBAIHBnX3N0YXRfZGF0YWJhc2VfY29u ZmxpY3RzfCBTRUxFQ1QgZC5vaWQgQVMgZGF0aWQsCiAgICAgcGdfc3RhdF9nZXRfZGJfY29u ZmxpY3RfbG9jayhkLm9pZCkgQVMgY29uZmxfbG9jaywKICAgICBwZ19zdGF0X2dldF9kYl9j b25mbGljdF9zbmFwc2hvdChkLm9pZCkgQVMgY29uZmxfc25hcHNob3QsCiAgICAgcGdfc3Rh dF9nZXRfZGJfY29uZmxpY3RfYnVmZmVycGluKGQub2lkKSBBUyBjb25mbF9idWZmZXJwaW4s Ci0gICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jayhkLm9pZCkg QVMgY29uZmxfZGVhZGxvY2sKKyAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zdGFydHVw X2RlYWRsb2NrKGQub2lkKSBBUyBjb25mbF9kZWFkbG9jaywKKyAgICBwZ19zdGF0X2dldF9k Yl9jb25mbGljdF9sb2dpY2Fsc2xvdChkLm9pZCkgQVMgY29uZmxfYWN0aXZlX2xvZ2ljYWxz bG90CiAgICBGUk9NIHBnX2RhdGFiYXNlIGQ7CiBwZ19zdGF0X2dzc2FwaXwgU0VMRUNUIHMu cGlkLAogICAgIHMuZ3NzX2F1dGggQVMgZ3NzX2F1dGhlbnRpY2F0ZWQsCi0tIAoyLjM0LjEK Cg== --------------gGsseGl4mHPyFRtqNH8mGIzV Content-Type: text/plain; charset=UTF-8; name="v39-0001-Add-info-in-WAL-records-in-preparation-for-logic.patch" Content-Disposition: attachment; filename*0="v39-0001-Add-info-in-WAL-records-in-preparation-for-logic.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmMDgzYTliZGYwOTFmMjA5MmRkMmFmZjg5ZmExYzViNDE1YWI3ZDczIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCAxMiBKYW4gMjAyMyAxMTowOToyNCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM5IDEvNl0gQWRkIGluZm8gaW4gV0FMIHJlY29yZHMgaW4gcHJlcGFyYXRpb24gZm9y IGxvZ2ljYWwKIHNsb3QgY29uZmxpY3QgaGFuZGxpbmcuCk1JTUUtVmVyc2lvbjogMS4wCkNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0CgpPdmVyYWxsIGRlc2lnbjoKCjEuIFdlIHdhbnQgdG8gZW5hYmxl IGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieXMsIGJ1dCByZXBsYXkgb2YgV0FMCmZyb20g dGhlIHByaW1hcnkgbWlnaHQgcmVtb3ZlIGRhdGEgdGhhdCBpcyBuZWVkZWQgYnkgbG9naWNh bCBkZWNvZGluZywKY2F1c2luZyByZXBsaWNhdGlvbiBjb25mbGljdHMgbXVjaCBhcyBob3Qg c3RhbmRieSBkb2VzLgoKMi4gT3VyIGNob3NlbiBzdHJhdGVneSBmb3IgZGVhbGluZyB3aXRo IHRoaXMgdHlwZSBvZiByZXBsaWNhdGlvbiBzbG90CmlzIHRvIGludmFsaWRhdGUgbG9naWNh bCBzbG90cyBmb3Igd2hpY2ggbmVlZGVkIGRhdGEgaGFzIGJlZW4gcmVtb3ZlZC4KCjMuIFRv IGRvIHRoaXMgd2UgbmVlZCB0aGUgbGF0ZXN0UmVtb3ZlZFhpZCBmb3IgZWFjaCBjaGFuZ2Us IGp1c3QgYXMgd2UKZG8gZm9yIHBoeXNpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cywgYnV0 IHdlIGFsc28gbmVlZCB0byBrbm93CndoZXRoZXIgYW55IHBhcnRpY3VsYXIgY2hhbmdlIHdh cyB0byBkYXRhIHRoYXQgbG9naWNhbCByZXBsaWNhdGlvbgptaWdodCBhY2Nlc3MuCgo0LiBX ZSBjYW4ndCByZWx5IG9uIHRoZSBzdGFuZGJ5J3MgcmVsY2FjaGUgZW50cmllcyBmb3IgdGhp cyBwdXJwb3NlIGluCmFueSB3YXksIGJlY2F1c2UgdGhlIHN0YXJ0dXAgcHJvY2VzcyBjYW4n dCBhY2Nlc3MgY2F0YWxvZyBjb250ZW50cy4KCjUuIFRoZXJlZm9yZSBldmVyeSBXQUwgcmVj b3JkIHRoYXQgcG90ZW50aWFsbHkgcmVtb3ZlcyBkYXRhIGZyb20gdGhlCmluZGV4IG9yIGhl YXAgbXVzdCBjYXJyeSBhIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCBpdCBpcyBv bmUKdGhhdCBtaWdodCBiZSBhY2Nlc3NlZCBkdXJpbmcgbG9naWNhbCBkZWNvZGluZy4KCldo eSBkbyB3ZSBuZWVkIHRoaXMgZm9yIGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieT8KCkZp cnN0LCBsZXQncyBmb3JnZXQgYWJvdXQgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5IGFu ZCByZWNhbGwgdGhhdApvbiBhIHByaW1hcnkgZGF0YWJhc2UsIGFueSBjYXRhbG9nIHJvd3Mg dGhhdCBtYXkgYmUgbmVlZGVkIGJ5IGEgbG9naWNhbApkZWNvZGluZyByZXBsaWNhdGlvbiBz bG90IGFyZSBub3QgcmVtb3ZlZC4KClRoaXMgaXMgZG9uZSB0aGFua3MgdG8gdGhlIGNhdGFs b2dfeG1pbiBhc3NvY2lhdGVkIHdpdGggdGhlIGxvZ2ljYWwKcmVwbGljYXRpb24gc2xvdC4K CkJ1dCwgd2l0aCBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnksIGluIHRoZSBmb2xsb3dp bmcgY2FzZXM6CgotIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIGlzIG9mZgotIGhvdF9zdGFuZGJ5 X2ZlZWRiYWNrIGlzIG9uIGJ1dCB0aGVyZSBpcyBubyBhIHBoeXNpY2FsIHNsb3QgYmV0d2Vl bgogIHRoZSBwcmltYXJ5IGFuZCB0aGUgc3RhbmRieS4gVGhlbiwgaG90X3N0YW5kYnlfZmVl ZGJhY2sgd2lsbCB3b3JrLAogIGJ1dCBvbmx5IHdoaWxlIHRoZSBjb25uZWN0aW9uIGlzIGFs aXZlIChmb3IgZXhhbXBsZSBhIG5vZGUgcmVzdGFydAogIHdvdWxkIGJyZWFrIGl0KQoKVGhl biwgdGhlIHByaW1hcnkgbWF5IGRlbGV0ZSBzeXN0ZW0gY2F0YWxvZyByb3dzIHRoYXQgY291 bGQgYmUgbmVlZGVkCmJ5IHRoZSBsb2dpY2FsIGRlY29kaW5nIG9uIHRoZSBzdGFuZGJ5IChh cyBpdCBkb2VzIG5vdCBrbm93IGFib3V0IHRoZQpjYXRhbG9nX3htaW4gb24gdGhlIHN0YW5k YnkpLgoKU28sIGl04oCZcyBtYW5kYXRvcnkgdG8gaWRlbnRpZnkgdGhvc2Ugcm93cyBhbmQg aW52YWxpZGF0ZSB0aGUgc2xvdHMKdGhhdCBtYXkgbmVlZCB0aGVtIGlmIGFueS4gSWRlbnRp ZnlpbmcgdGhvc2Ugcm93cyBpcyB0aGUgcHVycG9zZSBvZgp0aGlzIGNvbW1pdC4KCkltcGxl bWVudGF0aW9uOgoKV2hlbiBhIFdBTCByZXBsYXkgb24gc3RhbmRieSBpbmRpY2F0ZXMgdGhh dCBhIGNhdGFsb2cgdGFibGUgdHVwbGUgaXMKdG8gYmUgZGVsZXRlZCBieSBhbiB4aWQgdGhh dCBpcyBncmVhdGVyIHRoYW4gYSBsb2dpY2FsIHNsb3QncwpjYXRhbG9nX3htaW4sIHRoZW4g dGhhdCBtZWFucyB0aGUgc2xvdCdzIGNhdGFsb2dfeG1pbiBjb25mbGljdHMgd2l0aAp0aGUg eGlkLCBhbmQgd2UgbmVlZCB0byBoYW5kbGUgdGhlIGNvbmZsaWN0LiBXaGlsZSBzdWJzZXF1 ZW50IGNvbW1pdHMKd2lsbCBkbyB0aGUgYWN0dWFsIGNvbmZsaWN0IGhhbmRsaW5nLCB0aGlz IGNvbW1pdCBhZGRzIGEgbmV3IGZpZWxkCmlzQ2F0YWxvZ1JlbCBpbiBzdWNoIFdBTCByZWNv cmRzIChhbmQgYSBuZXcgYml0IHNldCBpbiB0aGUKeGxfaGVhcF92aXNpYmxlIGZsYWdzIGZp ZWxkKSwgdGhhdCBpcyB0cnVlIGZvciBjYXRhbG9nIHRhYmxlcywgc28gYXMgdG8KYXJyYW5n ZSBmb3IgY29uZmxpY3QgaGFuZGxpbmcuCgpEdWUgdG8gdGhpcyBuZXcgZmllbGQgYmVpbmcg YWRkZWQsIHhsX2hhc2hfdmFjdXVtX29uZV9wYWdlIGFuZApnaXN0eGxvZ0RlbGV0ZSBkbyBu b3cgY29udGFpbiB0aGUgb2Zmc2V0cyB0byBiZSBkZWxldGVkIGFzIGEKRkxFWElCTEVfQVJS QVlfTUVNQkVSLiBUaGlzIGlzIG5lZWRlZCB0byBlbnN1cmUgY29ycmVjdCBhbGlnbmVtZW50 LgpJdCdzIG5vdCBuZWVkZWQgb24gdGhlIG90aGVycyBzdHJ1Y3Qgd2hlcmUgaXNDYXRhbG9n UmVsIGhhcwpiZWVuIGFkZGVkLgoKVG8gaW50cm9kdWNlIHRoZSBuZXcgaXNDYXRhbG9nUmVs IGZpZWxkIGZvciBpbmRleGVzLCBpbmRpc3VzZXJjYXRhbG9nIGhhcwpiZWVuIGFkZGVkIHRv IHBnX2luZGV4LiBJdCBhbGxvd3MgdXMgdG8gY2hlY2sgaWYgdGhlcmUgaXMgYSByaXNrIG9m IGNvbmZsaWN0Cm9uIGluZGV4ZXMgKHdpdGhvdXQgaGF2aW5nIHRvIHRhYmxlX29wZW4oKSB0 aGUgbGlua2VkIHRhYmxlIGFuZCBzbyBwcmV2ZW50CmFueSByaXNrIG9mIGRlYWRsb2NrIG9u IGl0LikKCkF1dGhvcjogQW5kcmVzIEZyZXVuZCAoaW4gYW4gb2xkZXIgdmVyc2lvbiksIEFt aXQgS2hhbmRla2FyLCBCZXJ0cmFuZApEcm91dm90ClJldmlld2VkLUJ5OiBCZXJ0cmFuZCBE cm91dm90LCBBbmRyZXMgRnJldW5kLCBSb2JlcnQgSGFhcywgRmFicml6aW8gZGUKUm95ZXMg TWVsbG8KLS0tCiBjb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvZGRsLm91dCAgfCA2 NSArKysrKysrKysrKysrKysrKysrKysrKysrCiBjb250cmliL3Rlc3RfZGVjb2Rpbmcvc3Fs L2RkbC5zcWwgICAgICAgfCAyMyArKysrKysrKysKIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sICAgICAgICAgICAgICB8IDExICsrKysrCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9u L3JlbG9wdGlvbnMuYyAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhs b2cuYyAgICAgIHwgMTEgKystLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxv Zy5jICAgICB8IDEyICsrLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0 LmMgICAgfCAgMSArCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgICAg fCAgNSArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgICAgIHwgIDEg Kwogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIHwgIDMgKy0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jICAgICB8ICAyICsKIHNyYy9iYWNr ZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMgICB8ICAxICsKIHNyYy9iYWNrZW5kL2Nh dGFsb2cvaW5kZXguYyAgICAgICAgICAgICB8IDEwICsrLS0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jICAgICAgICB8IDU1ICsrKysrKysrKysrKysrKysrKysrLQogc3Jj L2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmggICAgICAgICAgIHwgMTEgKysrLS0KIHNyYy9p bmNsdWRlL2FjY2Vzcy9oYXNoX3hsb2cuaCAgICAgICAgICB8ICA4ICstLQogc3JjL2luY2x1 ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmggICAgICAgIHwgIDggKy0tCiBzcmMvaW5jbHVkZS9h Y2Nlc3MvbmJ0eGxvZy5oICAgICAgICAgICAgfCAgNiArKy0KIHNyYy9pbmNsdWRlL2FjY2Vz cy9zcGd4bG9nLmggICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL2FjY2Vzcy92aXNp YmlsaXR5bWFwZGVmcy5oICB8ICA5ICsrLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5k ZXguaCAgICAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL3V0aWxzL3JlbC5oICAgICAgICAg ICAgICAgICB8IDE0ICsrKysrLQogMjIgZmlsZXMgY2hhbmdlZCwgMjE3IGluc2VydGlvbnMo KyksIDQ0IGRlbGV0aW9ucygtKQogIDI1LjclIGNvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBl Y3RlZC8KICAxMS4wJSBjb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsLwogICA0LjMlIGRvYy9z cmMvc2dtbC8KICAgMy43JSBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC8KICAgMy43JSBzcmMv YmFja2VuZC9hY2Nlc3MvaGFzaC8KICAgNS4xJSBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC8K ICAxNC45JSBzcmMvYmFja2VuZC9jb21tYW5kcy8KICAgNS4yJSBzcmMvYmFja2VuZC8KICAy MC42JSBzcmMvaW5jbHVkZS9hY2Nlc3MvCiAgIDQuMyUgc3JjL2luY2x1ZGUvdXRpbHMvCgpk aWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL2RkbC5vdXQgYi9j b250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvZGRsLm91dAppbmRleCA5YTI4YjVkZGM1 Li40OGZiNDRjNTc1IDEwMDY0NAotLS0gYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0 ZWQvZGRsLm91dAorKysgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvZGRsLm91 dApAQCAtNDgzLDYgKzQ4Myw3IEBAIENSRUFURSBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0 YSAoCiApCiBXSVRIICh1c2VyX2NhdGFsb2dfdGFibGUgPSB0cnVlKQogOworQ1JFQVRFIElO REVYIHJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDEgb24gcmVwbGljYXRpb25fbWV0YWRhdGEo cmVsYXRpb24pOwogXGQrIHJlcGxpY2F0aW9uX21ldGFkYXRhCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5yZXBsaWNh dGlvbl9tZXRhZGF0YSIKICAgQ29sdW1uICB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8ICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAg ICB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCkBAIC00OTIsMTEg KzQ5MywxOSBAQCBXSVRIICh1c2VyX2NhdGFsb2dfdGFibGUgPSB0cnVlKQogIG9wdGlvbnMg IHwgdGV4dFtdICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZXh0ZW5kZWQgfCAgICAgICAgICAg ICAgfCAKIEluZGV4ZXM6CiAgICAgInJlcGxpY2F0aW9uX21ldGFkYXRhX3BrZXkiIFBSSU1B UlkgS0VZLCBidHJlZSAoaWQpCisgICAgInJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDEiIGJ0 cmVlIChyZWxhdGlvbikKIE9wdGlvbnM6IHVzZXJfY2F0YWxvZ190YWJsZT10cnVlCiAKK1NF TEVDVCBib29sX2FuZChpbmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBnX2luZGV4IHdoZXJlIGlu ZHJlbGlkID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRhJzo6cmVnY2xhc3M7CisgYm9vbF9hbmQg CistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCiBJTlNFUlQgSU5UTyByZXBsaWNhdGlvbl9t ZXRhZGF0YShyZWxhdGlvbiwgb3B0aW9ucykKIFZBTFVFUyAoJ2ZvbycsIEFSUkFZWydhJywg J2InXSk7CiBBTFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBSRVNFVCAodXNlcl9j YXRhbG9nX3RhYmxlKTsKK0NSRUFURSBJTkRFWCByZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgy IG9uIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uKTsKIFxkKyByZXBsaWNhdGlvbl9t ZXRhZGF0YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRhYmxlICJwdWJsaWMucmVwbGljYXRpb25fbWV0YWRhdGEiCiAgIENvbHVtbiAgfCAg VHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgICAgICAgIERl ZmF1bHQgICAgICAgICAgICAgICAgICAgICAgfCBTdG9yYWdlICB8IFN0YXRzIHRhcmdldCB8 IERlc2NyaXB0aW9uIApAQCAtNTA2LDEwICs1MTUsMTkgQEAgQUxURVIgVEFCTEUgcmVwbGlj YXRpb25fbWV0YWRhdGEgUkVTRVQgKHVzZXJfY2F0YWxvZ190YWJsZSk7CiAgb3B0aW9ucyAg fCB0ZXh0W10gIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAg ICB8IAogSW5kZXhlczoKICAgICAicmVwbGljYXRpb25fbWV0YWRhdGFfcGtleSIgUFJJTUFS WSBLRVksIGJ0cmVlIChpZCkKKyAgICAicmVwbGljYXRpb25fbWV0YWRhdGFfaWR4MSIgYnRy ZWUgKHJlbGF0aW9uKQorICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgyIiBidHJlZSAo cmVsYXRpb24pCisKK1NFTEVDVCBib29sX29yKGluZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdf aW5kZXggd2hlcmUgaW5kcmVsaWQgPSAncmVwbGljYXRpb25fbWV0YWRhdGEnOjpyZWdjbGFz czsKKyBib29sX29yIAorLS0tLS0tLS0tCisgZgorKDEgcm93KQogCiBJTlNFUlQgSU5UTyBy ZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbiwgb3B0aW9ucykKIFZBTFVFUyAoJ2Jhcics IEFSUkFZWydhJywgJ2InXSk7CiBBTFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBT RVQgKHVzZXJfY2F0YWxvZ190YWJsZSA9IHRydWUpOworQ1JFQVRFIElOREVYIHJlcGxpY2F0 aW9uX21ldGFkYXRhX2lkeDMgb24gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24pOwog XGQrIHJlcGxpY2F0aW9uX21ldGFkYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5yZXBsaWNhdGlvbl9tZXRhZGF0 YSIKICAgQ29sdW1uICB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAg ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICB8IFN0b3JhZ2Ug IHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCkBAIC01MTksMTUgKzUzNyw1MiBAQCBB TFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBTRVQgKHVzZXJfY2F0YWxvZ190YWJs ZSA9IHRydWUpOwogIG9wdGlvbnMgIHwgdGV4dFtdICB8ICAgICAgICAgICB8ICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ZXh0ZW5kZWQgfCAgICAgICAgICAgICAgfCAKIEluZGV4ZXM6CiAgICAgInJlcGxpY2F0aW9u X21ldGFkYXRhX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoaWQpCisgICAgInJlcGxpY2F0 aW9uX21ldGFkYXRhX2lkeDEiIGJ0cmVlIChyZWxhdGlvbikKKyAgICAicmVwbGljYXRpb25f bWV0YWRhdGFfaWR4MiIgYnRyZWUgKHJlbGF0aW9uKQorICAgICJyZXBsaWNhdGlvbl9tZXRh ZGF0YV9pZHgzIiBidHJlZSAocmVsYXRpb24pCiBPcHRpb25zOiB1c2VyX2NhdGFsb2dfdGFi bGU9dHJ1ZQogCitTRUxFQ1QgYm9vbF9hbmQoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19p bmRleCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNz OworIGJvb2xfYW5kIAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKwogSU5TRVJUIElOVE8g cmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24sIG9wdGlvbnMpCiBWQUxVRVMgKCdibHVi JywgTlVMTCk7CistLSBBbHNvIGNoZWNraW5nIHRoYXQgaW5kaXN1c2VyY2F0YWxvZyBpcyBz ZXQgY29ycmVjdGx5IHdoZW4gYSB0YWJsZSBpcyBjcmVhdGVkIHdpdGggdXNlcl9jYXRhbG9n X3RhYmxlID0gZmFsc2UKK0NSRUFURSBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxz ZSAoCisgICAgaWQgc2VyaWFsIHByaW1hcnkga2V5LAorICAgIHJlbGF0aW9uIG5hbWUgTk9U IE5VTEwsCisgICAgb3B0aW9ucyB0ZXh0W10KKykKK1dJVEggKHVzZXJfY2F0YWxvZ190YWJs ZSA9IGZhbHNlKQorOworQ1JFQVRFIElOREVYIHJlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNl X2lkeDEgb24gcmVwbGljYXRpb25fbWV0YWRhdGFfZmFsc2UocmVsYXRpb24pOworXGQrIHJl cGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5yZXBsaWNhdGlvbl9tZXRhZGF0 YV9mYWxzZSIKKyAgQ29sdW1uICB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 ICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAg ICB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIGlkICAgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8IG5vdCBudWxsIHwgbmV4dHZhbCgncmVwbGljYXRpb25fbWV0YWRhdGFfZmFsc2VfaWRf c2VxJzo6cmVnY2xhc3MpIHwgcGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKKyByZWxhdGlv biB8IG5hbWUgICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBsYWluICAgIHwgICAg ICAgICAgICAgIHwgCisgb3B0aW9ucyAgfCB0ZXh0W10gIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgICB8IAorSW5kZXhlczoKKyAgICAicmVw bGljYXRpb25fbWV0YWRhdGFfZmFsc2VfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChpZCkK KyAgICAicmVwbGljYXRpb25fbWV0YWRhdGFfZmFsc2VfaWR4MSIgYnRyZWUgKHJlbGF0aW9u KQorT3B0aW9uczogdXNlcl9jYXRhbG9nX3RhYmxlPWZhbHNlCisKK1NFTEVDVCBib29sX29y KGluZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdfaW5kZXggd2hlcmUgaW5kcmVsaWQgPSAncmVw bGljYXRpb25fbWV0YWRhdGFfZmFsc2UnOjpyZWdjbGFzczsKKyBib29sX29yIAorLS0tLS0t LS0tCisgZgorKDEgcm93KQorCiAtLSBtYWtlIHN1cmUgcmV3cml0ZXMgZG9uJ3Qgd29yawog QUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgQUREIENPTFVNTiByZXdyaXRlbWVv cm5vdCBpbnQ7CiBBTFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBBTFRFUiBDT0xV TU4gcmV3cml0ZW1lb3Jub3QgVFlQRSB0ZXh0OwogRVJST1I6ICBjYW5ub3QgcmV3cml0ZSB0 YWJsZSAicmVwbGljYXRpb25fbWV0YWRhdGEiIHVzZWQgYXMgYSBjYXRhbG9nIHRhYmxlCiBB TFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBTRVQgKHVzZXJfY2F0YWxvZ190YWJs ZSA9IGZhbHNlKTsKK0NSRUFURSBJTkRFWCByZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHg0IG9u IHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uKTsKIFxkKyByZXBsaWNhdGlvbl9tZXRh ZGF0YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRhYmxlICJwdWJsaWMucmVwbGljYXRpb25fbWV0YWRhdGEiCiAgICAgIENvbHVtbiAg ICAgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgICAg ICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgfCBTdG9yYWdlICB8IFN0YXRzIHRh cmdldCB8IERlc2NyaXB0aW9uIApAQCAtNTM4LDggKzU5MywxOCBAQCBBTFRFUiBUQUJMRSBy ZXBsaWNhdGlvbl9tZXRhZGF0YSBTRVQgKHVzZXJfY2F0YWxvZ190YWJsZSA9IGZhbHNlKTsK ICByZXdyaXRlbWVvcm5vdCB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBsYWlu ICAgIHwgICAgICAgICAgICAgIHwgCiBJbmRleGVzOgogICAgICJyZXBsaWNhdGlvbl9tZXRh ZGF0YV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQorICAgICJyZXBsaWNhdGlvbl9t ZXRhZGF0YV9pZHgxIiBidHJlZSAocmVsYXRpb24pCisgICAgInJlcGxpY2F0aW9uX21ldGFk YXRhX2lkeDIiIGJ0cmVlIChyZWxhdGlvbikKKyAgICAicmVwbGljYXRpb25fbWV0YWRhdGFf aWR4MyIgYnRyZWUgKHJlbGF0aW9uKQorICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHg0 IiBidHJlZSAocmVsYXRpb24pCiBPcHRpb25zOiB1c2VyX2NhdGFsb2dfdGFibGU9ZmFsc2UK IAorU0VMRUNUIGJvb2xfb3IoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRleCB3aGVy ZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNzOworIGJvb2xf b3IgCistLS0tLS0tLS0KKyBmCisoMSByb3cpCisKIElOU0VSVCBJTlRPIHJlcGxpY2F0aW9u X21ldGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQogVkFMVUVTICgnemFwaG9kJywgTlVMTCk7 CiBTRUxFQ1QgZGF0YSBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygncmVncmVz c2lvbl9zbG90JywgTlVMTCwgTlVMTCwgJ2luY2x1ZGUteGlkcycsICcwJywgJ3NraXAtZW1w dHkteGFjdHMnLCAnMScpOwpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL3Nx bC9kZGwuc3FsIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9kZGwuc3FsCmluZGV4IDRm NzZiZWQ3MmMuLjUxYmFhYzVjNGUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGlu Zy9zcWwvZGRsLnNxbAorKysgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL2RkbC5zcWwK QEAgLTI3NiwyOSArMjc2LDUyIEBAIENSRUFURSBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0 YSAoCiApCiBXSVRIICh1c2VyX2NhdGFsb2dfdGFibGUgPSB0cnVlKQogOworCitDUkVBVEUg SU5ERVggcmVwbGljYXRpb25fbWV0YWRhdGFfaWR4MSBvbiByZXBsaWNhdGlvbl9tZXRhZGF0 YShyZWxhdGlvbik7CisKIFxkKyByZXBsaWNhdGlvbl9tZXRhZGF0YQorU0VMRUNUIGJvb2xf YW5kKGluZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdfaW5kZXggd2hlcmUgaW5kcmVsaWQgPSAn cmVwbGljYXRpb25fbWV0YWRhdGEnOjpyZWdjbGFzczsKIAogSU5TRVJUIElOVE8gcmVwbGlj YXRpb25fbWV0YWRhdGEocmVsYXRpb24sIG9wdGlvbnMpCiBWQUxVRVMgKCdmb28nLCBBUlJB WVsnYScsICdiJ10pOwogCiBBTFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBSRVNF VCAodXNlcl9jYXRhbG9nX3RhYmxlKTsKK0NSRUFURSBJTkRFWCByZXBsaWNhdGlvbl9tZXRh ZGF0YV9pZHgyIG9uIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uKTsKIFxkKyByZXBs aWNhdGlvbl9tZXRhZGF0YQorU0VMRUNUIGJvb2xfb3IoaW5kaXN1c2VyY2F0YWxvZykgZnJv bSBwZ19pbmRleCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJl Z2NsYXNzOwogCiBJTlNFUlQgSU5UTyByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbiwg b3B0aW9ucykKIFZBTFVFUyAoJ2JhcicsIEFSUkFZWydhJywgJ2InXSk7CiAKIEFMVEVSIFRB QkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFNFVCAodXNlcl9jYXRhbG9nX3RhYmxlID0gdHJ1 ZSk7CitDUkVBVEUgSU5ERVggcmVwbGljYXRpb25fbWV0YWRhdGFfaWR4MyBvbiByZXBsaWNh dGlvbl9tZXRhZGF0YShyZWxhdGlvbik7CiBcZCsgcmVwbGljYXRpb25fbWV0YWRhdGEKK1NF TEVDVCBib29sX2FuZChpbmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBnX2luZGV4IHdoZXJlIGlu ZHJlbGlkID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRhJzo6cmVnY2xhc3M7CiAKIElOU0VSVCBJ TlRPIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQogVkFMVUVTICgn Ymx1YicsIE5VTEwpOwogCistLSBBbHNvIGNoZWNraW5nIHRoYXQgaW5kaXN1c2VyY2F0YWxv ZyBpcyBzZXQgY29ycmVjdGx5IHdoZW4gYSB0YWJsZSBpcyBjcmVhdGVkIHdpdGggdXNlcl9j YXRhbG9nX3RhYmxlID0gZmFsc2UKK0NSRUFURSBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0 YV9mYWxzZSAoCisgICAgaWQgc2VyaWFsIHByaW1hcnkga2V5LAorICAgIHJlbGF0aW9uIG5h bWUgTk9UIE5VTEwsCisgICAgb3B0aW9ucyB0ZXh0W10KKykKK1dJVEggKHVzZXJfY2F0YWxv Z190YWJsZSA9IGZhbHNlKQorOworCitDUkVBVEUgSU5ERVggcmVwbGljYXRpb25fbWV0YWRh dGFfZmFsc2VfaWR4MSBvbiByZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxzZShyZWxhdGlvbik7 CitcZCsgcmVwbGljYXRpb25fbWV0YWRhdGFfZmFsc2UKK1NFTEVDVCBib29sX29yKGluZGlz dXNlcmNhdGFsb2cpIGZyb20gcGdfaW5kZXggd2hlcmUgaW5kcmVsaWQgPSAncmVwbGljYXRp b25fbWV0YWRhdGFfZmFsc2UnOjpyZWdjbGFzczsKKwogLS0gbWFrZSBzdXJlIHJld3JpdGVz IGRvbid0IHdvcmsKIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIEFERCBDT0xV TU4gcmV3cml0ZW1lb3Jub3QgaW50OwogQUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRh dGEgQUxURVIgQ09MVU1OIHJld3JpdGVtZW9ybm90IFRZUEUgdGV4dDsKIAogQUxURVIgVEFC TEUgcmVwbGljYXRpb25fbWV0YWRhdGEgU0VUICh1c2VyX2NhdGFsb2dfdGFibGUgPSBmYWxz ZSk7CitDUkVBVEUgSU5ERVggcmVwbGljYXRpb25fbWV0YWRhdGFfaWR4NCBvbiByZXBsaWNh dGlvbl9tZXRhZGF0YShyZWxhdGlvbik7CiBcZCsgcmVwbGljYXRpb25fbWV0YWRhdGEKK1NF TEVDVCBib29sX29yKGluZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdfaW5kZXggd2hlcmUgaW5k cmVsaWQgPSAncmVwbGljYXRpb25fbWV0YWRhdGEnOjpyZWdjbGFzczsKIAogSU5TRVJUIElO VE8gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24sIG9wdGlvbnMpCiBWQUxVRVMgKCd6 YXBob2QnLCBOVUxMKTsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s IGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggYzFlNDA0ODA1NC4uMjI2MTZh MDU3OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTQ0NDcsNiArNDQ0NywxNyBAQCBTQ1JBTS1T SEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFi bGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93 PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5pbmRpc3VzZXJjYXRhbG9nPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElmIHRydWUsIHRoZSBpbmRleCBp cyBsaW5rZWQgdG8gYSB0YWJsZSB0aGF0IGlzIGRlY2xhcmVkIGFzIGFuIGFkZGl0aW9uYWwK KyAgICAgICBjYXRhbG9nIHRhYmxlIGZvciBwdXJwb3NlcyBvZiBsb2dpY2FsIHJlcGxpY2F0 aW9uIChtZWFucyBoYXMgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXRhYmxlIj48bGl0ZXJh bD51c2VyX2NhdGFsb2dfdGFibGU8L2xpdGVyYWw+PC9saW5rPikKKyAgICAgICBzZXQgdG8g dHJ1ZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93 PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KICAgICAgICA8c3RydWN0ZmllbGQ+aW5kaXNyZXBsaWRl bnQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv Y29tbW9uL3JlbG9wdGlvbnMuYwppbmRleCAxNGMyMzEwMWFkLi5mNTM2OGUzYTViIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYwpAQCAtMTIwLDcgKzEyMCw3 IEBAIHN0YXRpYyByZWxvcHRfYm9vbCBib29sUmVsT3B0c1tdID0KIAkJCVJFTE9QVF9LSU5E X0hFQVAsCiAJCQlBY2Nlc3NFeGNsdXNpdmVMb2NrCiAJCX0sCi0JCWZhbHNlCisJCUhFQVBf REVGQVVMVF9VU0VSX0NBVEFMT0dfVEFCTEUKIAl9LAogCXsKIAkJewpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9naXN0L2dpc3R4bG9nLmMKaW5kZXggZjY1ODY0MjU0YS4uNTllMzFmY2MxMiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCkBAIC0xNzcsNiArMTc3LDcgQEAgZ2lzdFJl ZG9EZWxldGVSZWNvcmQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJZ2lzdHhsb2dEZWxl dGUgKnhsZGF0YSA9IChnaXN0eGxvZ0RlbGV0ZSAqKSBYTG9nUmVjR2V0RGF0YShyZWNvcmQp OwogCUJ1ZmZlcgkJYnVmZmVyOwogCVBhZ2UJCXBhZ2U7CisJT2Zmc2V0TnVtYmVyICp0b0Rl bGV0ZSA9IHhsZGF0YS0+b2Zmc2V0czsKIAogCS8qCiAJICogSWYgd2UgaGF2ZSBhbnkgY29u ZmxpY3QgcHJvY2Vzc2luZyB0byBkbywgaXQgbXVzdCBoYXBwZW4gYmVmb3JlIHdlCkBAIC0y MDMsMTQgKzIwNCw3IEBAIGdpc3RSZWRvRGVsZXRlUmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAq cmVjb3JkKQogCXsKIAkJcGFnZSA9IChQYWdlKSBCdWZmZXJHZXRQYWdlKGJ1ZmZlcik7CiAK LQkJaWYgKFhMb2dSZWNHZXREYXRhTGVuKHJlY29yZCkgPiBTaXplT2ZHaXN0eGxvZ0RlbGV0 ZSkKLQkJewotCQkJT2Zmc2V0TnVtYmVyICp0b2RlbGV0ZTsKLQotCQkJdG9kZWxldGUgPSAo T2Zmc2V0TnVtYmVyICopICgoY2hhciAqKSB4bGRhdGEgKyBTaXplT2ZHaXN0eGxvZ0RlbGV0 ZSk7Ci0KLQkJCVBhZ2VJbmRleE11bHRpRGVsZXRlKHBhZ2UsIHRvZGVsZXRlLCB4bGRhdGEt Pm50b2RlbGV0ZSk7Ci0JCX0KKwkJUGFnZUluZGV4TXVsdGlEZWxldGUocGFnZSwgdG9EZWxl dGUsIHhsZGF0YS0+bnRvZGVsZXRlKTsKIAogCQlHaXN0Q2xlYXJQYWdlSGFzR2FyYmFnZShw YWdlKTsKIAkJR2lzdE1hcmtUdXBsZXNEZWxldGVkKHBhZ2UpOwpAQCAtNjA4LDYgKzYwMiw3 IEBAIGdpc3RYTG9nUGFnZVJldXNlKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgYmxrbm8s IEZ1bGxUcmFuc2FjdGlvbklkIGRlbGV0ZVhpZCkKIAkgKi8KIAogCS8qIFhMT0cgc3R1ZmYg Ki8KKwl4bHJlY19yZXVzZS5pc0NhdGFsb2dSZWwgPSBSZWxhdGlvbklzQWNjZXNzaWJsZUlu TG9naWNhbERlY29kaW5nKHJlbCk7CiAJeGxyZWNfcmV1c2UubG9jYXRvciA9IHJlbC0+cmRf bG9jYXRvcjsKIAl4bHJlY19yZXVzZS5ibG9jayA9IGJsa25vOwogCXhscmVjX3JldXNlLnNu YXBzaG90Q29uZmxpY3RIb3Jpem9uID0gZGVsZXRlWGlkOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFz aC9oYXNoX3hsb2cuYwppbmRleCBmMzhiNDJlZmI5Li4wOGNlYjkxMjg4IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoX3hsb2cuYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGFzaC9oYXNoX3hsb2cuYwpAQCAtOTgwLDggKzk4MCwxMCBAQCBoYXNoX3hs b2dfdmFjdXVtX29uZV9wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCVBhZ2UJCXBh Z2U7CiAJWExvZ1JlZG9BY3Rpb24gYWN0aW9uOwogCUhhc2hQYWdlT3BhcXVlIHBhZ2VvcGFx dWU7CisJT2Zmc2V0TnVtYmVyICp0b0RlbGV0ZTsKIAogCXhsZGF0YSA9ICh4bF9oYXNoX3Zh Y3V1bV9vbmVfcGFnZSAqKSBYTG9nUmVjR2V0RGF0YShyZWNvcmQpOworCXRvRGVsZXRlID0g eGxkYXRhLT5vZmZzZXRzOwogCiAJLyoKIAkgKiBJZiB3ZSBoYXZlIGFueSBjb25mbGljdCBw cm9jZXNzaW5nIHRvIGRvLCBpdCBtdXN0IGhhcHBlbiBiZWZvcmUgd2UKQEAgLTEwMTAsMTUg KzEwMTIsNyBAQCBoYXNoX3hsb2dfdmFjdXVtX29uZV9wYWdlKFhMb2dSZWFkZXJTdGF0ZSAq cmVjb3JkKQogCXsKIAkJcGFnZSA9IChQYWdlKSBCdWZmZXJHZXRQYWdlKGJ1ZmZlcik7CiAK LQkJaWYgKFhMb2dSZWNHZXREYXRhTGVuKHJlY29yZCkgPiBTaXplT2ZIYXNoVmFjdXVtT25l UGFnZSkKLQkJewotCQkJT2Zmc2V0TnVtYmVyICp1bnVzZWQ7Ci0KLQkJCXVudXNlZCA9IChP ZmZzZXROdW1iZXIgKikgKChjaGFyICopIHhsZGF0YSArIFNpemVPZkhhc2hWYWN1dW1PbmVQ YWdlKTsKLQotCQkJUGFnZUluZGV4TXVsdGlEZWxldGUocGFnZSwgdW51c2VkLCB4bGRhdGEt Pm50dXBsZXMpOwotCQl9Ci0KKwkJUGFnZUluZGV4TXVsdGlEZWxldGUocGFnZSwgdG9EZWxl dGUsIHhsZGF0YS0+bnR1cGxlcyk7CiAJCS8qCiAJCSAqIE1hcmsgdGhlIHBhZ2UgYXMgbm90 IGNvbnRhaW5pbmcgYW55IExQX0RFQUQgaXRlbXMuIFNlZSBjb21tZW50cyBpbgogCQkgKiBf aGFzaF92YWN1dW1fb25lX3BhZ2UoKSBmb3IgZGV0YWlscy4KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o YXNoL2hhc2hpbnNlcnQuYwppbmRleCBhNjA0ZTMxODkxLi4yMjY1NmIyNGUyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0LmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jCkBAIC00MzIsNiArNDMyLDcgQEAgX2hh c2hfdmFjdXVtX29uZV9wYWdlKFJlbGF0aW9uIHJlbCwgUmVsYXRpb24gaHJlbCwgQnVmZmVy IG1ldGFidWYsIEJ1ZmZlciBidWYpCiAJCQl4bF9oYXNoX3ZhY3V1bV9vbmVfcGFnZSB4bHJl YzsKIAkJCVhMb2dSZWNQdHIJcmVjcHRyOwogCisJCQl4bHJlYy5pc0NhdGFsb2dSZWwgPSBS ZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nKGhyZWwpOwogCQkJeGxyZWMu c25hcHNob3RDb25mbGljdEhvcml6b24gPSBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsKIAkJ CXhscmVjLm50dXBsZXMgPSBuZGVsZXRhYmxlOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBh bS5jCmluZGV4IDM4OGRmOTRhNDQuLjBlMzdiYWQyMTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbS5jCkBAIC02ODcxLDYgKzY4NzEsNyBAQCBoZWFwX2ZyZWV6ZV9leGVjdXRlX3By ZXBhcmVkKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZmZlciwKIAkJbnBsYW5zID0gaGVhcF9s b2dfZnJlZXplX3BsYW4odHVwbGVzLCBudHVwbGVzLCBwbGFucywgb2Zmc2V0cyk7CiAKIAkJ eGxyZWMuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBzbmFwc2hvdENvbmZsaWN0SG9yaXpv bjsKKwkJeGxyZWMuaXNDYXRhbG9nUmVsID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2lj YWxEZWNvZGluZyhyZWwpOwogCQl4bHJlYy5ucGxhbnMgPSBucGxhbnM7CiAKIAkJWExvZ0Jl Z2luSW5zZXJ0KCk7CkBAIC04NDQxLDcgKzg0NDIsNyBAQCBib3R0b211cF9zb3J0X2FuZF9z aHJpbmsoVE1fSW5kZXhEZWxldGVPcCAqZGVsc3RhdGUpCiAgKiB1cGRhdGUgdGhlIGhlYXAg cGFnZSdzIExTTi4KICAqLwogWExvZ1JlY1B0cgotbG9nX2hlYXBfdmlzaWJsZShSZWxGaWxl TG9jYXRvciBybG9jYXRvciwgQnVmZmVyIGhlYXBfYnVmZmVyLCBCdWZmZXIgdm1fYnVmZmVy LAorbG9nX2hlYXBfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBoZWFwX2J1ZmZlciwg QnVmZmVyIHZtX2J1ZmZlciwKIAkJCQkgVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0 SG9yaXpvbiwgdWludDggdm1mbGFncykKIHsKIAl4bF9oZWFwX3Zpc2libGUgeGxyZWM7CkBA IC04NDUzLDYgKzg0NTQsOCBAQCBsb2dfaGVhcF92aXNpYmxlKFJlbEZpbGVMb2NhdG9yIHJs b2NhdG9yLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1ZmZlciB2bV9idWZmZXIsCiAKIAl4bHJl Yy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwog CXhscmVjLmZsYWdzID0gdm1mbGFnczsKKwlpZiAoUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxv Z2ljYWxEZWNvZGluZyhyZWwpKQorCQl4bHJlYy5mbGFncyB8PSBWSVNJQklMSVRZTUFQX0lT X0NBVEFMT0dfUkVMOwogCVhMb2dCZWdpbkluc2VydCgpOwogCVhMb2dSZWdpc3RlckRhdGEo KGNoYXIgKikgJnhscmVjLCBTaXplT2ZIZWFwVmlzaWJsZSk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggNGU2NWNiY2FkZi4uM2YwMzQyMzUxZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTQxOCw2ICs0MTgsNyBAQCBoZWFw X3BhZ2VfcHJ1bmUoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQl4bF9o ZWFwX3BydW5lIHhscmVjOwogCQkJWExvZ1JlY1B0cglyZWNwdHI7CiAKKwkJCXhscmVjLmlz Q2F0YWxvZ1JlbCA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVs YXRpb24pOwogCQkJeGxyZWMuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBwcnN0YXRlLnNu YXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCQkJeGxyZWMubnJlZGlyZWN0ZWQgPSBwcnN0YXRl Lm5yZWRpcmVjdGVkOwogCQkJeGxyZWMubmRlYWQgPSBwcnN0YXRlLm5kZWFkOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCmluZGV4IDFkMWNhNDIzYTkuLjA0 NWM2MWVkYjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxp dHltYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMK QEAgLTI4Myw4ICsyODMsNyBAQCB2aXNpYmlsaXR5bWFwX3NldChSZWxhdGlvbiByZWwsIEJs b2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFwQnVmLAogCQkJaWYgKFhMb2dSZWNQdHJJ c0ludmFsaWQocmVjcHRyKSkKIAkJCXsKIAkJCQlBc3NlcnQoIUluUmVjb3ZlcnkpOwotCQkJ CXJlY3B0ciA9IGxvZ19oZWFwX3Zpc2libGUocmVsLT5yZF9sb2NhdG9yLCBoZWFwQnVmLCB2 bUJ1ZiwKLQkJCQkJCQkJCQkgIGN1dG9mZl94aWQsIGZsYWdzKTsKKwkJCQlyZWNwdHIgPSBs b2dfaGVhcF92aXNpYmxlKHJlbCwgaGVhcEJ1Ziwgdm1CdWYsIGN1dG9mZl94aWQsIGZsYWdz KTsKIAogCQkJCS8qCiAJCQkJICogSWYgZGF0YSBjaGVja3N1bXMgYXJlIGVuYWJsZWQgKG9y IHdhbF9sb2dfaGludHM9b24pLCB3ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L25idHJlZS9uYnRwYWdlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2Uu YwppbmRleCAzZmVlZTI4ZDE5Li5lZGM0ZmU4NjZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2UuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL25idHBhZ2UuYwpAQCAtODM2LDYgKzgzNiw3IEBAIF9idF9sb2dfcmV1c2VfcGFnZShS ZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBGdWxsVHJhbnNhY3Rpb25JZCBzYWZl eGlkKQogCSAqLwogCiAJLyogWExPRyBzdHVmZiAqLworCXhscmVjX3JldXNlLmlzQ2F0YWxv Z1JlbCA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsKTsKIAl4 bHJlY19yZXVzZS5sb2NhdG9yID0gcmVsLT5yZF9sb2NhdG9yOwogCXhscmVjX3JldXNlLmJs b2NrID0gYmxrbm87CiAJeGxyZWNfcmV1c2Uuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBz YWZleGlkOwpAQCAtMTM1OCw2ICsxMzU5LDcgQEAgX2J0X2RlbGl0ZW1zX2RlbGV0ZShSZWxh dGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCVhMb2dSZWNQdHIJcmVjcHRyOwogCQl4bF9idHJl ZV9kZWxldGUgeGxyZWNfZGVsZXRlOwogCisJCXhscmVjX2RlbGV0ZS5pc0NhdGFsb2dSZWwg PSBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nKHJlbCk7CiAJCXhscmVj X2RlbGV0ZS5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90Q29uZmxpY3RIb3Jp em9uOwogCQl4bHJlY19kZWxldGUubmRlbGV0ZWQgPSBuZGVsZXRhYmxlOwogCQl4bHJlY19k ZWxldGUubnVwZGF0ZWQgPSBudXBkYXRhYmxlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qv c3BndmFjdXVtLmMKaW5kZXggM2FkYjE4ZjJkOC4uYWZkOTI3NWExMCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYworKysgYi9zcmMvYmFja2Vu ZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jCkBAIC01MDMsNiArNTAzLDcgQEAgdmFjdXVt UmVkaXJlY3RBbmRQbGFjZWhvbGRlcihSZWxhdGlvbiBpbmRleCwgQnVmZmVyIGJ1ZmZlcikK IAlzcGd4bG9nVmFjdXVtUmVkaXJlY3QgeGxyZWM7CiAJR2xvYmFsVmlzU3RhdGUgKnZpc3Rl c3Q7CiAKKwl4bHJlYy5pc0NhdGFsb2dSZWwgPSBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9n aWNhbERlY29kaW5nKGluZGV4KTsKIAl4bHJlYy5uVG9QbGFjZWhvbGRlciA9IDA7CiAJeGxy ZWMuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9pbmRleC5jCmluZGV4IGU2NTc5ZjI5NzkuLmEwMzg0MDBmZTEgMTAwNjQ0Ci0t 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 cmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCAxZmJkYWQ0YjY0Li4zMjdm Y2JjYzZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMTAzLDYgKzEwMyw3 IEBACiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy90aW1l c3RhbXAuaCIKICNpbmNsdWRlICJ1dGlscy90eXBjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxz L3JlbC5oIgogCiAvKgogICogT04gQ09NTUlUIGFjdGlvbiBsaXN0CkBAIC0xNDE2Miw2ICsx NDE2MywxMCBAQCBBVEV4ZWNTZXRSZWxPcHRpb25zKFJlbGF0aW9uIHJlbCwgTGlzdCAqZGVm TGlzdCwgQWx0ZXJUYWJsZVR5cGUgb3BlcmF0aW9uLAogCURhdHVtCQlyZXBsX3ZhbFtOYXR0 c19wZ19jbGFzc107CiAJYm9vbAkJcmVwbF9udWxsW05hdHRzX3BnX2NsYXNzXTsKIAlib29s CQlyZXBsX3JlcGxbTmF0dHNfcGdfY2xhc3NdOworCUxpc3RDZWxsICAgKmNlbGw7CisJTGlz dAkgICAqcmVsX29wdGlvbnM7CisJYm9vbAkJY2F0YWxvZ190YWJsZV92YWwgPSBIRUFQX0RF RkFVTFRfVVNFUl9DQVRBTE9HX1RBQkxFOworCWJvb2wJCWNhdGFsb2dfdGFibGUgPSBmYWxz ZTsKIAlzdGF0aWMgY2hhciAqdmFsaWRuc3BzW10gPSBIRUFQX1JFTE9QVF9OQU1FU1BBQ0VT OwogCiAJaWYgKGRlZkxpc3QgPT0gTklMICYmIG9wZXJhdGlvbiAhPSBBVF9SZXBsYWNlUmVs T3B0aW9ucykKQEAgLTE0MjI4LDcgKzE0MjMzLDYgQEAgQVRFeGVjU2V0UmVsT3B0aW9ucyhS ZWxhdGlvbiByZWwsIExpc3QgKmRlZkxpc3QsIEFsdGVyVGFibGVUeXBlIG9wZXJhdGlvbiwK IAl7CiAJCVF1ZXJ5CSAgICp2aWV3X3F1ZXJ5ID0gZ2V0X3ZpZXdfcXVlcnkocmVsKTsKIAkJ TGlzdAkgICAqdmlld19vcHRpb25zID0gdW50cmFuc2Zvcm1SZWxPcHRpb25zKG5ld09wdGlv bnMpOwotCQlMaXN0Q2VsbCAgICpjZWxsOwogCQlib29sCQljaGVja19vcHRpb24gPSBmYWxz ZTsKIAogCQlmb3JlYWNoKGNlbGwsIHZpZXdfb3B0aW9ucykKQEAgLTE0MjU2LDYgKzE0MjYw LDIwIEBAIEFURXhlY1NldFJlbE9wdGlvbnMoUmVsYXRpb24gcmVsLCBMaXN0ICpkZWZMaXN0 LCBBbHRlclRhYmxlVHlwZSBvcGVyYXRpb24sCiAJCX0KIAl9CiAKKwkvKiBJZiB1c2VyX2Nh dGFsb2dfdGFibGUgaXMgcGFydCBvZiB0aGUgbmV3IG9wdGlvbnMsIHJlY29yZCBpdHMgbmV3 IHZhbHVlICovCisJcmVsX29wdGlvbnMgPSB1bnRyYW5zZm9ybVJlbE9wdGlvbnMobmV3T3B0 aW9ucyk7CisKKwlmb3JlYWNoKGNlbGwsIHJlbF9vcHRpb25zKQorCXsKKwkJRGVmRWxlbSAg ICAqZGVmZWwgPSAoRGVmRWxlbSAqKSBsZmlyc3QoY2VsbCk7CisKKwkJaWYgKHN0cmNtcChk ZWZlbC0+ZGVmbmFtZSwgInVzZXJfY2F0YWxvZ190YWJsZSIpID09IDApCisJCXsKKwkJCWNh dGFsb2dfdGFibGUgPSB0cnVlOworCQkJY2F0YWxvZ190YWJsZV92YWwgPSBkZWZHZXRCb29s ZWFuKGRlZmVsKTsKKwkJfQorCX0KKwogCS8qCiAJICogQWxsIHdlIG5lZWQgZG8gaGVyZSBp cyB1cGRhdGUgdGhlIHBnX2NsYXNzIHJvdzsgdGhlIG5ldyBvcHRpb25zIHdpbGwgYmUKIAkg KiBwcm9wYWdhdGVkIGludG8gcmVsY2FjaGVzIGR1cmluZyBwb3N0LWNvbW1pdCBjYWNoZSBp bnZhbC4KQEAgLTE0MjgyLDYgKzE0MzAwLDQxIEBAIEFURXhlY1NldFJlbE9wdGlvbnMoUmVs 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 aXN0eGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmgKaW5kZXggMDlmOWIw ZjhjNi4uMTkxZjBlNTgwOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3R4 bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmgKQEAgLTUxLDEzICs1 MSwxMyBAQCB0eXBlZGVmIHN0cnVjdCBnaXN0eGxvZ0RlbGV0ZQogewogCVRyYW5zYWN0aW9u SWQgc25hcHNob3RDb25mbGljdEhvcml6b247CiAJdWludDE2CQludG9kZWxldGU7CQkvKiBu dW1iZXIgb2YgZGVsZXRlZCBvZmZzZXRzICovCisJYm9vbCAgICAgICAgaXNDYXRhbG9nUmVs OwogCi0JLyoKLQkgKiBJbiBwYXlsb2FkIG9mIGJsayAwIDogdG9kZWxldGUgT2Zmc2V0TnVt YmVycwotCSAqLworCS8qIFRPREVMRVRFIE9GRlNFVCBOVU1CRVJTICovCisJT2Zmc2V0TnVt YmVyIG9mZnNldHNbRkxFWElCTEVfQVJSQVlfTUVNQkVSXTsKIH0gZ2lzdHhsb2dEZWxldGU7 CiAKLSNkZWZpbmUgU2l6ZU9mR2lzdHhsb2dEZWxldGUJKG9mZnNldG9mKGdpc3R4bG9nRGVs ZXRlLCBudG9kZWxldGUpICsgc2l6ZW9mKHVpbnQxNikpCisjZGVmaW5lIFNpemVPZkdpc3R4 bG9nRGVsZXRlIG9mZnNldG9mKGdpc3R4bG9nRGVsZXRlLCBvZmZzZXRzKQogCiAvKgogICog QmFja3VwIEJsayAwOiBJZiB0aGlzIG9wZXJhdGlvbiBjb21wbGV0ZXMgYSBwYWdlIHNwbGl0 LCBieSBpbnNlcnRpbmcgYQpAQCAtMTAwLDkgKzEwMCwxMCBAQCB0eXBlZGVmIHN0cnVjdCBn aXN0eGxvZ1BhZ2VSZXVzZQogCVJlbEZpbGVMb2NhdG9yIGxvY2F0b3I7CiAJQmxvY2tOdW1i ZXIgYmxvY2s7CiAJRnVsbFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b247 CisJYm9vbCAgICAgICAgaXNDYXRhbG9nUmVsOwogfSBnaXN0eGxvZ1BhZ2VSZXVzZTsKIAot I2RlZmluZSBTaXplT2ZHaXN0eGxvZ1BhZ2VSZXVzZQkob2Zmc2V0b2YoZ2lzdHhsb2dQYWdl UmV1c2UsIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uKSArIHNpemVvZihGdWxsVHJhbnNhY3Rp b25JZCkpCisjZGVmaW5lIFNpemVPZkdpc3R4bG9nUGFnZVJldXNlCShvZmZzZXRvZihnaXN0 eGxvZ1BhZ2VSZXVzZSwgaXNDYXRhbG9nUmVsKSArIHNpemVvZihib29sKSkKIAogZXh0ZXJu IHZvaWQgZ2lzdF9yZWRvKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKTsKIGV4dGVybiB2b2lk IGdpc3RfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5oIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL2hhc2hfeGxvZy5oCmluZGV4IGEyZjBmMzkyMTMuLjRhNzllMGMwYTQgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoX3hsb2cuaAorKysgYi9zcmMvaW5j bHVkZS9hY2Nlc3MvaGFzaF94bG9nLmgKQEAgLTI1MiwxMiArMjUyLDEyIEBAIHR5cGVkZWYg c3RydWN0IHhsX2hhc2hfdmFjdXVtX29uZV9wYWdlCiB7CiAJVHJhbnNhY3Rpb25JZCBzbmFw c2hvdENvbmZsaWN0SG9yaXpvbjsKIAlpbnQJCQludHVwbGVzOwotCi0JLyogVEFSR0VUIE9G RlNFVCBOVU1CRVJTIEZPTExPVyBBVCBUSEUgRU5EICovCisJYm9vbCAgICAgICAgaXNDYXRh bG9nUmVsOworCS8qIFRBUkdFVCBPRkZTRVQgTlVNQkVSUyAqLworCU9mZnNldE51bWJlciBv ZmZzZXRzW0ZMRVhJQkxFX0FSUkFZX01FTUJFUl07CiB9IHhsX2hhc2hfdmFjdXVtX29uZV9w YWdlOwogCi0jZGVmaW5lIFNpemVPZkhhc2hWYWN1dW1PbmVQYWdlIFwKLQkob2Zmc2V0b2Yo eGxfaGFzaF92YWN1dW1fb25lX3BhZ2UsIG50dXBsZXMpICsgc2l6ZW9mKGludCkpCisjZGVm aW5lIFNpemVPZkhhc2hWYWN1dW1PbmVQYWdlIG9mZnNldG9mKHhsX2hhc2hfdmFjdXVtX29u ZV9wYWdlLCBvZmZzZXRzKQogCiBleHRlcm4gdm9pZCBoYXNoX3JlZG8oWExvZ1JlYWRlclN0 YXRlICpyZWNvcmQpOwogZXh0ZXJuIHZvaWQgaGFzaF9kZXNjKFN0cmluZ0luZm8gYnVmLCBY TG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtX3hsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCmlu ZGV4IDhjYjBkOGRhMTkuLjFkNDMxODFhNDAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9oZWFwYW1feGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxv Zy5oCkBAIC0yNDUsMTAgKzI0NSwxMSBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX3BydW5l CiAJVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsKIAl1aW50MTYJCW5y ZWRpcmVjdGVkOwogCXVpbnQxNgkJbmRlYWQ7CisJYm9vbCAgICAgICAgaXNDYXRhbG9nUmVs OwogCS8qIE9GRlNFVCBOVU1CRVJTIGFyZSBpbiB0aGUgYmxvY2sgcmVmZXJlbmNlIDAgKi8K IH0geGxfaGVhcF9wcnVuZTsKIAotI2RlZmluZSBTaXplT2ZIZWFwUHJ1bmUgKG9mZnNldG9m KHhsX2hlYXBfcHJ1bmUsIG5kZWFkKSArIHNpemVvZih1aW50MTYpKQorI2RlZmluZSBTaXpl T2ZIZWFwUHJ1bmUgKG9mZnNldG9mKHhsX2hlYXBfcHJ1bmUsIGlzQ2F0YWxvZ1JlbCkgKyBz aXplb2YoYm9vbCkpCiAKIC8qCiAgKiBUaGUgdmFjdXVtIHBhZ2UgcmVjb3JkIGlzIHNpbWls YXIgdG8gdGhlIHBydW5lIHJlY29yZCwgYnV0IGNhbiBvbmx5IG1hcmsKQEAgLTM0NCwxMiAr MzQ1LDEzIEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfZnJlZXplX3BhZ2UKIHsKIAlUcmFu c2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCXVpbnQxNgkJbnBsYW5zOwor CWJvb2wgICAgICAgIGlzQ2F0YWxvZ1JlbDsKIAogCS8qIEZSRUVaRSBQTEFOUyBGT0xMT1cg Ki8KIAkvKiBPRkZTRVQgTlVNQkVSIEFSUkFZIEZPTExPV1MgKi8KIH0geGxfaGVhcF9mcmVl emVfcGFnZTsKIAotI2RlZmluZSBTaXplT2ZIZWFwRnJlZXplUGFnZSAob2Zmc2V0b2YoeGxf aGVhcF9mcmVlemVfcGFnZSwgbnBsYW5zKSArIHNpemVvZih1aW50MTYpKQorI2RlZmluZSBT aXplT2ZIZWFwRnJlZXplUGFnZSAob2Zmc2V0b2YoeGxfaGVhcF9mcmVlemVfcGFnZSwgaXND YXRhbG9nUmVsKSArIHNpemVvZihib29sKSkKIAogLyoKICAqIFRoaXMgaXMgd2hhdCB3ZSBu ZWVkIHRvIGtub3cgYWJvdXQgc2V0dGluZyBhIHZpc2liaWxpdHkgbWFwIGJpdApAQCAtNDA4 LDcgKzQxMCw3IEBAIGV4dGVybiB2b2lkIGhlYXAyX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhM b2dSZWFkZXJTdGF0ZSAqcmVjb3JkKTsKIGV4dGVybiBjb25zdCBjaGFyICpoZWFwMl9pZGVu dGlmeSh1aW50OCBpbmZvKTsKIGV4dGVybiB2b2lkIGhlYXBfeGxvZ19sb2dpY2FsX3Jld3Jp dGUoWExvZ1JlYWRlclN0YXRlICpyKTsKIAotZXh0ZXJuIFhMb2dSZWNQdHIgbG9nX2hlYXBf dmlzaWJsZShSZWxGaWxlTG9jYXRvciBybG9jYXRvciwgQnVmZmVyIGhlYXBfYnVmZmVyLAor ZXh0ZXJuIFhMb2dSZWNQdHIgbG9nX2hlYXBfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZl ciBoZWFwX2J1ZmZlciwKIAkJCQkJCQkJICAgQnVmZmVyIHZtX2J1ZmZlciwKIAkJCQkJCQkJ ICAgVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKIAkJCQkJCQkJICAg dWludDggdm1mbGFncyk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvbmJ0eGxv Zy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL25idHhsb2cuaAppbmRleCBlZGQxMzMzZDliLi45 OWQ4N2Q3MTg5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvbmJ0eGxvZy5oCisr KyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmgKQEAgLTE4OCw5ICsxODgsMTAgQEAg dHlwZWRlZiBzdHJ1Y3QgeGxfYnRyZWVfcmV1c2VfcGFnZQogCVJlbEZpbGVMb2NhdG9yIGxv Y2F0b3I7CiAJQmxvY2tOdW1iZXIgYmxvY2s7CiAJRnVsbFRyYW5zYWN0aW9uSWQgc25hcHNo b3RDb25mbGljdEhvcml6b247CisJYm9vbCAgICAgICAgaXNDYXRhbG9nUmVsOwogfSB4bF9i dHJlZV9yZXVzZV9wYWdlOwogCi0jZGVmaW5lIFNpemVPZkJ0cmVlUmV1c2VQYWdlCShzaXpl b2YoeGxfYnRyZWVfcmV1c2VfcGFnZSkpCisjZGVmaW5lIFNpemVPZkJ0cmVlUmV1c2VQYWdl CShvZmZzZXRvZih4bF9idHJlZV9yZXVzZV9wYWdlLCBpc0NhdGFsb2dSZWwpICsgc2l6ZW9m KGJvb2wpKQogCiAvKgogICogeGxfYnRyZWVfdmFjdXVtIGFuZCB4bF9idHJlZV9kZWxldGUg cmVjb3JkcyBkZXNjcmliZSBkZWxldGlvbiBvZiBpbmRleApAQCAtMjM1LDEzICsyMzYsMTQg QEAgdHlwZWRlZiBzdHJ1Y3QgeGxfYnRyZWVfZGVsZXRlCiAJVHJhbnNhY3Rpb25JZCBzbmFw c2hvdENvbmZsaWN0SG9yaXpvbjsKIAl1aW50MTYJCW5kZWxldGVkOwogCXVpbnQxNgkJbnVw ZGF0ZWQ7CisJYm9vbCAgICAgICAgaXNDYXRhbG9nUmVsOwogCiAJLyogREVMRVRFRCBUQVJH RVQgT0ZGU0VUIE5VTUJFUlMgRk9MTE9XICovCiAJLyogVVBEQVRFRCBUQVJHRVQgT0ZGU0VU IE5VTUJFUlMgRk9MTE9XICovCiAJLyogVVBEQVRFRCBUVVBMRVMgTUVUQURBVEEgKHhsX2J0 cmVlX3VwZGF0ZSkgQVJSQVkgRk9MTE9XUyAqLwogfSB4bF9idHJlZV9kZWxldGU7CiAKLSNk ZWZpbmUgU2l6ZU9mQnRyZWVEZWxldGUJKG9mZnNldG9mKHhsX2J0cmVlX2RlbGV0ZSwgbnVw ZGF0ZWQpICsgc2l6ZW9mKHVpbnQxNikpCisjZGVmaW5lIFNpemVPZkJ0cmVlRGVsZXRlCShv ZmZzZXRvZih4bF9idHJlZV9kZWxldGUsIGlzQ2F0YWxvZ1JlbCkgKyBzaXplb2YoYm9vbCkp CiAKIC8qCiAgKiBUaGUgb2Zmc2V0cyB0aGF0IGFwcGVhciBpbiB4bF9idHJlZV91cGRhdGUg bWV0YWRhdGEgYXJlIG9mZnNldHMgaW50byB0aGUKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2FjY2Vzcy9zcGd4bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxvZy5oCmluZGV4 IGI5ZDY3NTM1MzMuLjI5YTZhYTU3YTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9zcGd4bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaApAQCAtMjQw LDYgKzI0MCw3IEBAIHR5cGVkZWYgc3RydWN0IHNwZ3hsb2dWYWN1dW1SZWRpcmVjdAogCXVp bnQxNgkJblRvUGxhY2Vob2xkZXI7IC8qIG51bWJlciBvZiByZWRpcmVjdHMgdG8gbWFrZSBw bGFjZWhvbGRlcnMgKi8KIAlPZmZzZXROdW1iZXIgZmlyc3RQbGFjZWhvbGRlcjsJLyogZmly c3QgcGxhY2Vob2xkZXIgdHVwbGUgdG8gcmVtb3ZlICovCiAJVHJhbnNhY3Rpb25JZCBzbmFw c2hvdENvbmZsaWN0SG9yaXpvbjsJLyogbmV3ZXN0IFhJRCBvZiByZW1vdmVkIHJlZGlyZWN0 cyAqLworCWJvb2wgICAgICAgIGlzQ2F0YWxvZ1JlbDsKIAogCS8qIG9mZnNldHMgb2YgcmVk aXJlY3QgdHVwbGVzIHRvIG1ha2UgcGxhY2Vob2xkZXJzIGZvbGxvdyAqLwogCU9mZnNldE51 bWJlciBvZmZzZXRzW0ZMRVhJQkxFX0FSUkFZX01FTUJFUl07CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCBiL3NyYy9pbmNsdWRlL2FjY2Vz cy92aXNpYmlsaXR5bWFwZGVmcy5oCmluZGV4IDkxNjViOTQ1NmIuLmIyN2ZkYzBhZWYgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oCisrKyBi L3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oCkBAIC0xNyw5ICsxNywx MCBAQAogI2RlZmluZSBCSVRTX1BFUl9IRUFQQkxPQ0sgMgogCiAvKiBGbGFncyBmb3IgYml0 IG1hcCAqLwotI2RlZmluZSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFCTB4MDEKLSNkZWZp bmUgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOCTB4MDIKLSNkZWZpbmUgVklTSUJJTElUWU1B UF9WQUxJRF9CSVRTCTB4MDMJLyogT1Igb2YgYWxsIHZhbGlkIHZpc2liaWxpdHltYXAKLQkJ CQkJCQkJCQkJICogZmxhZ3MgYml0cyAqLworI2RlZmluZSBWSVNJQklMSVRZTUFQX0FMTF9W SVNJQkxFCQkJCQkJCQkweDAxCisjZGVmaW5lIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTgkJ CQkJCQkJMHgwMgorI2RlZmluZSBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMJCQkJCQkJCTB4 MDMJLyogT1Igb2YgYWxsIHZhbGlkIHZpc2liaWxpdHltYXAKKwkJCQkJCQkJCQkJCQkJCQkJ CSAqIGZsYWdzIGJpdHMgKi8KKyNkZWZpbmUgVklTSUJJTElUWU1BUF9JU19DQVRBTE9HX1JF TAkweDA0CiAKICNlbmRpZgkJCQkJCQkvKiBWSVNJQklMSVRZTUFQREVGU19IICovCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2luZGV4LmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2luZGV4LmgKaW5kZXggYjA1OTI1NzFkYS4uZjVmNWRlMTYwMyAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19pbmRleC5oCisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfaW5kZXguaApAQCAtNDMsNiArNDMsOCBAQCBDQVRBTE9HKHBnX2luZGV4 LDI2MTAsSW5kZXhSZWxhdGlvbklkKSBCS0lfU0NIRU1BX01BQ1JPCiAJYm9vbAkJaW5kY2hl Y2t4bWluOwkvKiBtdXN0IHdlIHdhaXQgZm9yIHhtaW4gdG8gYmUgb2xkPyAqLwogCWJvb2wJ CWluZGlzcmVhZHk7CQkvKiBpcyB0aGlzIGluZGV4IHJlYWR5IGZvciBpbnNlcnRzPyAqLwog CWJvb2wJCWluZGlzbGl2ZTsJCS8qIGlzIHRoaXMgaW5kZXggYWxpdmUgYXQgYWxsPyAqLwor CWJvb2wJCWluZGlzdXNlcmNhdGFsb2c7CS8qIGlzIHRoaXMgaW5kZXggbGlua2VkIHRvIGEg dXNlciBjYXRhbG9nCisJCQkJCQkJCQkgKiByZWxhdGlvbj8gKi8KIAlib29sCQlpbmRpc3Jl cGxpZGVudDsgLyogaXMgdGhpcyBpbmRleCB0aGUgaWRlbnRpdHkgZm9yIHJlcGxpY2F0aW9u PyAqLwogCiAJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlLCBidXQgd2Ug YWxsb3cgZGlyZWN0IGFjY2VzcyB0byBpbmRrZXkgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3V0aWxzL3JlbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKaW5kZXggYWY5Nzg1 MDM4ZC4uMmVmMTkyYzE2OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgK KysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNs dWRlICJzdG9yYWdlL3NtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9yZWxjYWNoZS5oIgogI2lu Y2x1ZGUgInV0aWxzL3JlbHRyaWdnZXIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cu aCIKIAogCiAvKgpAQCAtMzQzLDYgKzM0NCw3IEBAIHR5cGVkZWYgc3RydWN0IFN0ZFJkT3B0 aW9ucwogCiAjZGVmaW5lIEhFQVBfTUlOX0ZJTExGQUNUT1IJCQkxMAogI2RlZmluZSBIRUFQ X0RFRkFVTFRfRklMTEZBQ1RPUgkJMTAwCisjZGVmaW5lIEhFQVBfREVGQVVMVF9VU0VSX0NB VEFMT0dfVEFCTEUJCWZhbHNlCiAKIC8qCiAgKiBSZWxhdGlvbkdldFRvYXN0VHVwbGVUYXJn ZXQKQEAgLTM4NSw2ICszODcsMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgU3RkUmRPcHRpb25zCiAJ ICAocmVsYXRpb24pLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9NQVRWSUVXKSA/IFwK IAkgKChTdGRSZE9wdGlvbnMgKikgKHJlbGF0aW9uKS0+cmRfb3B0aW9ucyktPnVzZXJfY2F0 YWxvZ190YWJsZSA6IGZhbHNlKQogCisvKgorICogSW5kZXhJc0xpbmtlZFRvVXNlckNhdGFs b2dUYWJsZQorICoJCVJldHVybnMgd2hldGhlciB0aGUgcmVsYXRpb24gc2hvdWxkIGJlIHRy ZWF0ZWQgYXMgYW4gaW5kZXggbGlua2VkIHRvCisgKgkJYSB1c2VyIGNhdGFsb2cgdGFibGUg ZnJvbSB0aGUgcG92IG9mIGxvZ2ljYWwgZGVjb2RpbmcuCisgKi8KKyNkZWZpbmUgSW5kZXhJ c0xpbmtlZFRvVXNlckNhdGFsb2dUYWJsZShyZWxhdGlvbikJXAorCSgocmVsYXRpb24pLT5y ZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9JTkRFWCAmJiBcCisJIChyZWxhdGlvbiktPnJk X2luZGV4LT5pbmRpc3VzZXJjYXRhbG9nKQorCiAvKgogICogUmVsYXRpb25HZXRQYXJhbGxl bFdvcmtlcnMKICAqCQlSZXR1cm5zIHRoZSByZWxhdGlvbidzIHBhcmFsbGVsX3dvcmtlcnMg cmVsb3B0aW9uIHNldHRpbmcuCkBAIC02ODIsNyArNjkzLDggQEAgUmVsYXRpb25DbG9zZVNt Z3IoUmVsYXRpb24gcmVsYXRpb24pCiAjZGVmaW5lIFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5M b2dpY2FsRGVjb2RpbmcocmVsYXRpb24pIFwKIAkoWExvZ0xvZ2ljYWxJbmZvQWN0aXZlKCkg JiYgXAogCSBSZWxhdGlvbk5lZWRzV0FMKHJlbGF0aW9uKSAmJiBcCi0JIChJc0NhdGFsb2dS ZWxhdGlvbihyZWxhdGlvbikgfHwgUmVsYXRpb25Jc1VzZWRBc0NhdGFsb2dUYWJsZShyZWxh dGlvbikpKQorCSAoSXNDYXRhbG9nUmVsYXRpb24ocmVsYXRpb24pIHx8IFJlbGF0aW9uSXNV c2VkQXNDYXRhbG9nVGFibGUocmVsYXRpb24pIHx8IFwKKwkgIEluZGV4SXNMaW5rZWRUb1Vz ZXJDYXRhbG9nVGFibGUocmVsYXRpb24pKSkKIAogLyoKICAqIFJlbGF0aW9uSXNMb2dpY2Fs bHlMb2dnZWQKLS0gCjIuMzQuMQoK --------------gGsseGl4mHPyFRtqNH8mGIzV--