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 1p3uvZ-0002fi-Ba for pgsql-hackers@arkaria.postgresql.org; Sat, 10 Dec 2022 08:09:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p3uvY-0006m6-3P for pgsql-hackers@arkaria.postgresql.org; Sat, 10 Dec 2022 08:09:44 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p3uvX-0006lw-8W for pgsql-hackers@lists.postgresql.org; Sat, 10 Dec 2022 08:09:43 +0000 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1p3uvL-0003ag-FW for pgsql-hackers@postgresql.org; Sat, 10 Dec 2022 08:09:42 +0000 Received: by mail-wm1-x32e.google.com with SMTP id k22-20020a05600c1c9600b003d1ee3a6289so1407872wms.2 for ; Sat, 10 Dec 2022 00:09:31 -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=Y443JcE7lf9H6y34+yaYax7pMI519BB/y8yYfUOjBRM=; b=G2LfRJcQpymoiZmH/Gb0+99UTTd71sPia/8Msc9i103EIjHYanNRMW1ZLYtkbg/6WW wiupAsWghtTMVDu132fxXUhA3MvoOFYuWSbz8q7W2B+o1Y9CYEldFiNGNx7+0+djcNiS UoG/OKRjctj+QNBHon7UF594cM+F4VtD7lOL1BgXz68sa7NnsKosj8MnC4VIiK2Nt603 kssLuVKoFpcrLA+Mzx0SkMiDCTY07SLGtYhVttHUbjTO0W5Iq5DIX85j3lTaIkpoxuB0 cfgkyPRKpLCg+3/ZxXfk1q4WBYKwUsbY/ogpxYoHpyCfYVtULqCkFlydZhcjjOgt6XbG SSQw== 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=Y443JcE7lf9H6y34+yaYax7pMI519BB/y8yYfUOjBRM=; b=Ib6sawyjLQCz0ylUJZQnlmzsm6P+QzwUbWRQHGcPoUosQXImlLB/5MIhcQRO4bCPud XQfsJJCE+x11yoxh1GaE9xdwglohPY+1n6MId9+H8Prp0tnQI53+fCEBPmKKr38pEe3K MAlPQS7Fx9j9rtTbvKN31pdNA7RBbUSFtdzVQRWNkEiuDelL0BFt19JRpDkvIQbjmWxu OmjO9HvjWz74bq6qmyR6SXQsG3IBfxfgBeqdnM26MRScoSj9JJoaf0tfR3jVumItEcSZ ejYfIfdDF7ctPu2pRb2lEI/k4X63zxtdcACPEMDw0UPZGEDmBNEh9YzPXeIGGaACFzKl 5FsQ== X-Gm-Message-State: ANoB5pnqlwr4AJy3kOiqRDMZCWo3dWnZ9vF6RFkfwX4qOLCEcbKiPVs/ ERf3VTdM1z3JvGC9atBUZ7s= X-Google-Smtp-Source: AA0mqf4Ru0b2uZucmxTwBkXDyrpIyfoSrkWoGM3MiPO2t/FDmZZR5dZhM7WwwkLxiqnAcp2dUJJduA== X-Received: by 2002:a05:600c:4a9c:b0:3d1:f629:6b56 with SMTP id b28-20020a05600c4a9c00b003d1f6296b56mr7040123wmp.20.1670659769705; Sat, 10 Dec 2022 00:09:29 -0800 (PST) Received: from [192.168.31.230] ([54.239.6.185]) by smtp.gmail.com with ESMTPSA id f18-20020a1cc912000000b003cf75213bb9sm2024999wmb.8.2022.12.10.00.09.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 10 Dec 2022 00:09:29 -0800 (PST) Content-Type: multipart/mixed; boundary="------------GsSZ4kgNjkBi9v4p9BXYo4NX" Message-ID: <09c26df0-c5f9-eae0-5a6a-10fb00b0522e@gmail.com> Date: Sat, 10 Dec 2022 09:09:27 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Subject: Re: Minimal logical decoding on standbys Content-Language: en-US From: "Drouvot, Bertrand" To: Andres Freund Cc: Robert Haas , Alvaro Herrera , Ibrar Ahmed , Amit Khandekar , fabriziomello@gmail.com, tushar , Rahila Syed , pgsql-hackers References: <2b14d595-1e8b-e5b6-6098-6a11d19fa1c7@amazon.com> <688cbedf-a172-f0d8-8352-d4ea223bceeb@amazon.com> <20211028210755.afmwcvpo6ajwdx6n@alap3.anarazel.de> <6711d09f-eaa9-264b-ec7f-88004218b075@amazon.com> <178cf7da-9bd7-e328-9c49-e28ac4701352@gmail.com> <4b19419f-2e7c-a76b-c948-26d10af6693d@gmail.com> <20221207175824.apmc5clnj2fdjkaq@awork3.anarazel.de> In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------GsSZ4kgNjkBi9v4p9BXYo4NX Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi, On 12/8/22 12:07 PM, Drouvot, Bertrand wrote: > Hi, > > On 12/7/22 6:58 PM, Andres Freund wrote: >> Hi, >> >> On 2022-12-07 10:00:25 +0100, Drouvot, Bertrand wrote: >>>> Please find attached a new patch series: >>>> >>>> v27-0001-Add-info-in-WAL-records-in-preparation-for-logic.patch >>>> v27-0002-Handle-logical-slot-conflicts-on-standby.patch >>>> v27-0003-Allow-logical-decoding-on-standby.patch >>>> v27-0004-New-TAP-test-for-logical-decoding-on-standby.patch >>>> v27-0005-Doc-changes-describing-details-about-logical-dec.patch >>>> v27-0006-Fixing-Walsender-corner-case-with-logical-decodi.patch >> >> This failed on cfbot [1]. The tap output [2] has the following bit: >> >> [09:48:56.216](5.979s) not ok 26 - cannot read from logical replication slot >> [09:48:56.223](0.007s) #   Failed test 'cannot read from logical replication slot' >> #   at C:/cirrus/src/test/recovery/t/034_standby_logical_decoding.pl line 422. >> ... >> Warning: unable to close filehandle GEN150 properly: Bad file descriptor during global destruction. >> Warning: unable to close filehandle GEN155 properly: Bad file descriptor during global destruction. >> >> The "unable to close filehandle" stuff in my experience indicates an IPC::Run >> process that wasn't ended before the tap test ended. >> >> Greetings, >> >> Andres Freund >> >> [1] https://cirrus-ci.com/task/5092676671373312 >> [2] https://api.cirrus-ci.com/v1/artifact/task/5092676671373312/testrun/build/testrun/recovery/034_standby_logical_decoding/log/regress_log_034_standby_logical_decoding > > Thanks for pointing out! > > Please find attached V29 addressing this "Windows perl" issue: V29 changes the way the slot invalidation is tested and adds a "handle->finish". That looks ok now (I launched several successful consecutive tests on my enabled cirrus-ci repository). > > V29 differs from V28 only in 0004 to workaround the above "Windows perl" issue. > > Regards, > Attaching V30, mandatory rebase due to 66dcb09246. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------GsSZ4kgNjkBi9v4p9BXYo4NX Content-Type: text/plain; charset=UTF-8; name="v30-0006-Fixing-Walsender-corner-case-with-logical-decodi.patch" Content-Disposition: attachment; filename*0="v30-0006-Fixing-Walsender-corner-case-with-logical-decodi.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkNTkyZjE2NWU4ZmRkN2VjYzNkZDRlOTlhNDQzNTcyODQ0ZWEwY2JhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogU2F0LCAxMCBEZWMgMjAyMiAwNzoyMzozOSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMwIDYvNl0gRml4aW5nIFdhbHNlbmRlciBjb3JuZXIgY2FzZSB3aXRoIGxvZ2ljYWwg ZGVjb2Rpbmcgb24KIHN0YW5kYnkuCgpUaGUgcHJvYmxlbSBpcyB0aGF0IFdhbFNuZFdhaXRG b3JXYWwoKSB3YWl0cyBmb3IgdGhlICpyZXBsYXkqIExTTiB0bwppbmNyZWFzZSwgYnV0IGdl dHMgd29rZW4gdXAgYnkgd2FscmVjZWl2ZXIgd2hlbiBuZXcgV0FMIGhhcyBiZWVuCmZsdXNo ZWQuIFdoaWNoIG1lYW5zIHRoYXQgdHlwaWNhbGx5IHdhbHNlbmRlcnMgd2lsbCBnZXQgd29r ZW4gdXAgYXQgdGhlCnNhbWUgdGltZSB0aGF0IHRoZSBzdGFydHVwIHByb2Nlc3Mgd2lsbCBi ZSAtIHdoaWNoIG1lYW5zIHRoYXQgYnkgdGhlCnRpbWUgdGhlIGxvZ2ljYWwgd2Fsc2VuZGVy IGNoZWNrcyBHZXRYTG9nUmVwbGF5UmVjUHRyKCkgaXQncyB1bmxpa2VseQp0aGF0IHRoZSBz dGFydHVwIHByb2Nlc3MgYWxyZWFkeSByZXBsYXllZCB0aGUgcmVjb3JkIGFuZCB1cGRhdGVk ClhMb2dDdGwtPmxhc3RSZXBsYXllZEVuZFJlY1B0ci4KCkludHJvZHVjaW5nIGEgbmV3IGNv bmRpdGlvbiB2YXJpYWJsZSB0byBmaXggdGhpcyBjb3JuZXIgY2FzZS4KLS0tCiBzcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYyB8IDI4ICsrKysrKysrKysrKysr KysrKysrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICB8IDMx ICsrKysrKysrKysrKysrKysrLS0tLS0tCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93 YWl0X2V2ZW50LmMgICB8ICAzICsrKwogc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dyZWNvdmVy eS5oICAgICAgICAgfCAgMyArKysKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRl ci5oICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvd2FpdF9ldmVudC5oICAgICAg ICAgICAgfCAgMSArCiA2IGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDggZGVs ZXRpb25zKC0pCiAgNDEuMiUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgNDguNSUg c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vCiAgIDMuNiUgc3JjL2JhY2tlbmQvdXRpbHMvYWN0 aXZpdHkvCiAgIDMuNCUgc3JjL2luY2x1ZGUvYWNjZXNzLwoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKaW5kZXggZDVhODFmOWQ4My4uYWM4YjE2OWFi NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5 LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKQEAg LTM1OCw2ICszNTgsOSBAQCB0eXBlZGVmIHN0cnVjdCBYTG9nUmVjb3ZlcnlDdGxEYXRhCiAJ UmVjb3ZlcnlQYXVzZVN0YXRlIHJlY292ZXJ5UGF1c2VTdGF0ZTsKIAlDb25kaXRpb25WYXJp YWJsZSByZWNvdmVyeU5vdFBhdXNlZENWOwogCisJLyogUmVwbGF5IHN0YXRlIChzZWUgZ2V0 UmVwbGF5ZWRDVigpIGZvciBtb3JlIGV4cGxhbmF0aW9uKSAqLworCUNvbmRpdGlvblZhcmlh YmxlIHJlcGxheWVkQ1Y7CisKIAlzbG9ja190CQlpbmZvX2xjazsJCS8qIGxvY2tzIHNoYXJl ZCB2YXJpYWJsZXMgc2hvd24gYWJvdmUgKi8KIH0gWExvZ1JlY292ZXJ5Q3RsRGF0YTsKIApA QCAtNDY3LDYgKzQ3MCw3IEBAIFhMb2dSZWNvdmVyeVNobWVtSW5pdCh2b2lkKQogCVNwaW5M b2NrSW5pdCgmWExvZ1JlY292ZXJ5Q3RsLT5pbmZvX2xjayk7CiAJSW5pdFNoYXJlZExhdGNo KCZYTG9nUmVjb3ZlcnlDdGwtPnJlY292ZXJ5V2FrZXVwTGF0Y2gpOwogCUNvbmRpdGlvblZh cmlhYmxlSW5pdCgmWExvZ1JlY292ZXJ5Q3RsLT5yZWNvdmVyeU5vdFBhdXNlZENWKTsKKwlD b25kaXRpb25WYXJpYWJsZUluaXQoJlhMb2dSZWNvdmVyeUN0bC0+cmVwbGF5ZWRDVik7CiB9 CiAKIC8qCkBAIC0xOTE2LDYgKzE5MjAsMTEgQEAgQXBwbHlXYWxSZWNvcmQoWExvZ1JlYWRl clN0YXRlICp4bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQgKnJl cGwKIAlYTG9nUmVjb3ZlcnlDdGwtPmxhc3RSZXBsYXllZFRMSSA9ICpyZXBsYXlUTEk7CiAJ U3BpbkxvY2tSZWxlYXNlKCZYTG9nUmVjb3ZlcnlDdGwtPmluZm9fbGNrKTsKIAorCS8qCisJ ICogd2FrZSB1cCB3YWxzZW5kZXIocykgdXNlZCBieSBsb2dpY2FsIGRlY29kaW5nIG9uIHN0 YW5kYnkuCisJICovCisJQ29uZGl0aW9uVmFyaWFibGVCcm9hZGNhc3QoJlhMb2dSZWNvdmVy eUN0bC0+cmVwbGF5ZWRDVik7CisKIAkvKgogCSAqIElmIHJtX3JlZG8gY2FsbGVkIFhMb2dS ZXF1ZXN0V2FsUmVjZWl2ZXJSZXBseSwgdGhlbiB3ZSB3YWtlIHVwIHRoZQogCSAqIHJlY2Vp dmVyIHNvIHRoYXQgaXQgbm90aWNlcyB0aGUgdXBkYXRlZCBsYXN0UmVwbGF5ZWRFbmRSZWNQ dHIgYW5kIHNlbmRzCkBAIC00OTE2LDMgKzQ5MjUsMjIgQEAgYXNzaWduX3JlY292ZXJ5X3Rh cmdldF94aWQoY29uc3QgY2hhciAqbmV3dmFsLCB2b2lkICpleHRyYSkKIAllbHNlCiAJCXJl Y292ZXJ5VGFyZ2V0ID0gUkVDT1ZFUllfVEFSR0VUX1VOU0VUOwogfQorCisvKgorICogUmV0 dXJuIHRoZSBDb25kaXRpb25WYXJpYWJsZSBpbmRpY2F0aW5nIHRoYXQgYSByZXBsYXkgaGFz IGJlZW4gZG9uZS4KKyAqCisgKiBUaGlzIGlzIG5lZWRlZCBmb3IgbG9naWNhbCBkZWNvZGlu ZyBvbiBzdGFuZGJ5LiBJbmRlZWQgdGhlICJwcm9ibGVtIiBpcyB0aGF0CisgKiBXYWxTbmRX YWl0Rm9yV2FsKCkgd2FpdHMgZm9yIHRoZSAqcmVwbGF5KiBMU04gdG8gaW5jcmVhc2UsIGJ1 dCBnZXRzIHdva2VuIHVwCisgKiBieSB3YWxyZWNlaXZlciB3aGVuIG5ldyBXQUwgaGFzIGJl ZW4gZmx1c2hlZC4gV2hpY2ggbWVhbnMgdGhhdCB0eXBpY2FsbHkKKyAqIHdhbHNlbmRlcnMg d2lsbCBnZXQgd29rZW4gdXAgYXQgdGhlIHNhbWUgdGltZSB0aGF0IHRoZSBzdGFydHVwIHBy b2Nlc3MKKyAqIHdpbGwgYmUgLSB3aGljaCBtZWFucyB0aGF0IGJ5IHRoZSB0aW1lIHRoZSBs b2dpY2FsIHdhbHNlbmRlciBjaGVja3MKKyAqIEdldFhMb2dSZXBsYXlSZWNQdHIoKSBpdCdz IHVubGlrZWx5IHRoYXQgdGhlIHN0YXJ0dXAgcHJvY2VzcyBhbHJlYWR5IHJlcGxheWVkCisg KiB0aGUgcmVjb3JkIGFuZCB1cGRhdGVkIFhMb2dDdGwtPmxhc3RSZXBsYXllZEVuZFJlY1B0 ci4KKyAqCisgKiBUaGUgQ29uZGl0aW9uVmFyaWFibGUgWExvZ1JlY292ZXJ5Q3RsLT5yZXBs YXllZENWIHNvbHZlcyB0aGlzIGNvcm5lciBjYXNlLgorICovCitDb25kaXRpb25WYXJpYWJs ZSAqCitnZXRSZXBsYXllZENWKHZvaWQpCit7CisJcmV0dXJuICZYTG9nUmVjb3ZlcnlDdGwt PnJlcGxheWVkQ1Y7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93 YWxzZW5kZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4 IDk2NjJlMzE2YzkuLjhjOGRiZTgxMmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3dhbHNlbmRlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNl bmRlci5jCkBAIC0xNTQ4LDYgKzE1NDgsNyBAQCBXYWxTbmRXYWl0Rm9yV2FsKFhMb2dSZWNQ dHIgbG9jKQogewogCWludAkJCXdha2VFdmVudHM7CiAJc3RhdGljIFhMb2dSZWNQdHIgUmVj ZW50Rmx1c2hQdHIgPSBJbnZhbGlkWExvZ1JlY1B0cjsKKwlDb25kaXRpb25WYXJpYWJsZSAq cmVwbGF5ZWRDViA9IGdldFJlcGxheWVkQ1YoKTsKIAogCS8qCiAJICogRmFzdCBwYXRoIHRv IGF2b2lkIGFjcXVpcmluZyB0aGUgc3BpbmxvY2sgaW4gY2FzZSB3ZSBhbHJlYWR5IGtub3cg d2UKQEAgLTE1NjYsNyArMTU2Nyw2IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBs b2MpCiAKIAlmb3IgKDs7KQogCXsKLQkJbG9uZwkJc2xlZXB0aW1lOwogCiAJCS8qIENsZWFy IGFueSBhbHJlYWR5LXBlbmRpbmcgd2FrZXVwcyAqLwogCQlSZXNldExhdGNoKE15TGF0Y2gp OwpAQCAtMTY1MCwyMCArMTY1MCwzNSBAQCBXYWxTbmRXYWl0Rm9yV2FsKFhMb2dSZWNQdHIg bG9jKQogCQlXYWxTbmRLZWVwYWxpdmVJZk5lY2Vzc2FyeSgpOwogCiAJCS8qCi0JCSAqIFNs ZWVwIHVudGlsIHNvbWV0aGluZyBoYXBwZW5zIG9yIHdlIHRpbWUgb3V0LiAgQWxzbyB3YWl0 IGZvciB0aGUKLQkJICogc29ja2V0IGJlY29taW5nIHdyaXRhYmxlLCBpZiB0aGVyZSdzIHN0 aWxsIHBlbmRpbmcgb3V0cHV0LgorCQkgKiBXaGVuIG5vdCBpbiByZWNvdmVyeSwgc2xlZXAg dW50aWwgc29tZXRoaW5nIGhhcHBlbnMgb3Igd2UgdGltZSBvdXQuCisJCSAqIEFsc28gd2Fp dCBmb3IgdGhlIHNvY2tldCBiZWNvbWluZyB3cml0YWJsZSwgaWYgdGhlcmUncyBzdGlsbCBw ZW5kaW5nIG91dHB1dC4KIAkJICogT3RoZXJ3aXNlIHdlIG1pZ2h0IHNpdCBvbiBzZW5kYWJs ZSBvdXRwdXQgZGF0YSB3aGlsZSB3YWl0aW5nIGZvcgogCQkgKiBuZXcgV0FMIHRvIGJlIGdl bmVyYXRlZC4gIChCdXQgaWYgd2UgaGF2ZSBub3RoaW5nIHRvIHNlbmQsIHdlIGRvbid0CiAJ CSAqIHdhbnQgdG8gd2FrZSBvbiBzb2NrZXQtd3JpdGFibGUuKQogCQkgKi8KLQkJc2xlZXB0 aW1lID0gV2FsU25kQ29tcHV0ZVNsZWVwdGltZShHZXRDdXJyZW50VGltZXN0YW1wKCkpOwor CQlpZiAoIVJlY292ZXJ5SW5Qcm9ncmVzcygpKQorCQl7CisJCQlsb25nCQlzbGVlcHRpbWU7 CisJCQlzbGVlcHRpbWUgPSBXYWxTbmRDb21wdXRlU2xlZXB0aW1lKEdldEN1cnJlbnRUaW1l c3RhbXAoKSk7CiAKLQkJd2FrZUV2ZW50cyA9IFdMX1NPQ0tFVF9SRUFEQUJMRTsKKwkJCXdh a2VFdmVudHMgPSBXTF9TT0NLRVRfUkVBREFCTEU7CiAKLQkJaWYgKHBxX2lzX3NlbmRfcGVu ZGluZygpKQotCQkJd2FrZUV2ZW50cyB8PSBXTF9TT0NLRVRfV1JJVEVBQkxFOworCQkJaWYg KHBxX2lzX3NlbmRfcGVuZGluZygpKQorCQkJCXdha2VFdmVudHMgfD0gV0xfU09DS0VUX1dS SVRFQUJMRTsKIAotCQlXYWxTbmRXYWl0KHdha2VFdmVudHMsIHNsZWVwdGltZSwgV0FJVF9F VkVOVF9XQUxfU0VOREVSX1dBSVRfV0FMKTsKKwkJCVdhbFNuZFdhaXQod2FrZUV2ZW50cywg c2xlZXB0aW1lICogMTAsIFdBSVRfRVZFTlRfV0FMX1NFTkRFUl9XQUlUX1dBTCk7CisJCX0K KwkJZWxzZQorCQkvKgorCQkgKiBXZSBhcmUgaW4gdGhlIGxvZ2ljYWwgZGVjb2Rpbmcgb24g c3RhbmRieSBjYXNlLgorCQkgKiBXZSBhcmUgd2FpdGluZyBmb3IgdGhlIHN0YXJ0dXAgcHJv Y2VzcyB0byByZXBsYXkgd2FsIHJlY29yZChzKSB1c2luZworCQkgKiBhIHRpbWVvdXQgaW4g Y2FzZSB3ZSBhcmUgcmVxdWVzdGVkIHRvIHN0b3AuCisJCSAqLworCQl7CisJCQlDb25kaXRp b25WYXJpYWJsZVByZXBhcmVUb1NsZWVwKHJlcGxheWVkQ1YpOworCQkJQ29uZGl0aW9uVmFy aWFibGVUaW1lZFNsZWVwKHJlcGxheWVkQ1YsIDEwMDAsCisJCQkJCQkJCQkJV0FJVF9FVkVO VF9XQUxfU0VOREVSX1dBSVRfUkVQTEFZKTsKKwkJfQogCX0KIAogCS8qIHJlYWN0aXZhdGUg bGF0Y2ggc28gV2FsU25kTG9vcCBrbm93cyB0byBjb250aW51ZSAqLwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudC5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudC5jCmluZGV4IGIyYWJkNzVkZGIuLjNmNjA1OTgw NWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnQu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50LmMKQEAgLTQ1 Nyw2ICs0NTcsOSBAQCBwZ3N0YXRfZ2V0X3dhaXRfaXBjKFdhaXRFdmVudElQQyB3KQogCQlj YXNlIFdBSVRfRVZFTlRfV0FMX1JFQ0VJVkVSX1dBSVRfU1RBUlQ6CiAJCQlldmVudF9uYW1l ID0gIldhbFJlY2VpdmVyV2FpdFN0YXJ0IjsKIAkJCWJyZWFrOworCQljYXNlIFdBSVRfRVZF TlRfV0FMX1NFTkRFUl9XQUlUX1JFUExBWToKKwkJCWV2ZW50X25hbWUgPSAiV2FsUmVjZWl2 ZXJXYWl0UmVwbGF5IjsKKwkJCWJyZWFrOwogCQljYXNlIFdBSVRfRVZFTlRfWEFDVF9HUk9V UF9VUERBVEU6CiAJCQlldmVudF9uYW1lID0gIlhhY3RHcm91cFVwZGF0ZSI7CiAJCQlicmVh azsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9ncmVjb3ZlcnkuaCBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy94bG9ncmVjb3ZlcnkuaAppbmRleCBmMzM5ODQyNWQ4Li4wYWZk NTdlY2FjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ3JlY292ZXJ5LmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dyZWNvdmVyeS5oCkBAIC0xNSw2ICsxNSw3 IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb250cm9sLmgiCiAjaW5jbHVkZSAibGliL3N0 cmluZ2luZm8uaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKKyNpbmNsdWRlICJz dG9yYWdlL2NvbmRpdGlvbl92YXJpYWJsZS5oIgogCiAvKgogICogUmVjb3ZlcnkgdGFyZ2V0 IHR5cGUuCkBAIC0xNTUsNCArMTU2LDYgQEAgZXh0ZXJuIHZvaWQgUmVjb3ZlcnlSZXF1aXJl c0ludFBhcmFtZXRlcihjb25zdCBjaGFyICpwYXJhbV9uYW1lLCBpbnQgY3VyclZhbHVlLAog CiBleHRlcm4gdm9pZCB4bG9nX291dGRlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJT dGF0ZSAqcmVjb3JkKTsKIAorZXh0ZXJuIENvbmRpdGlvblZhcmlhYmxlICpnZXRSZXBsYXll ZENWKHZvaWQpOworCiAjZW5kaWYJCQkJCQkJLyogWExPR1JFQ09WRVJZX0ggKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oIGIvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKaW5kZXggODMzNmE2ZTcxOS4uNTUwZWYzMTA3 ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKKysr IGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKQEAgLTEzLDYgKzEzLDcg QEAKICNkZWZpbmUgX1dBTFNFTkRFUl9ICiAKICNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNs dWRlICJzdG9yYWdlL2NvbmRpdGlvbl92YXJpYWJsZS5oIgogCiAvKgogICogV2hhdCB0byBk byB3aXRoIGEgc25hcHNob3QgaW4gY3JlYXRlIHJlcGxpY2F0aW9uIHNsb3QgY29tbWFuZC4K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3dhaXRfZXZlbnQuaCBiL3NyYy9pbmNs dWRlL3V0aWxzL3dhaXRfZXZlbnQuaAppbmRleCAwYjIxMDBiZTRhLi4zMGMyY2YzNWFlIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy93YWl0X2V2ZW50LmgKKysrIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvd2FpdF9ldmVudC5oCkBAIC0xMjgsNiArMTI4LDcgQEAgdHlwZWRlZiBl bnVtCiAJV0FJVF9FVkVOVF9TWU5DX1JFUCwKIAlXQUlUX0VWRU5UX1dBTF9SRUNFSVZFUl9F WElULAogCVdBSVRfRVZFTlRfV0FMX1JFQ0VJVkVSX1dBSVRfU1RBUlQsCisJV0FJVF9FVkVO VF9XQUxfU0VOREVSX1dBSVRfUkVQTEFZLAogCVdBSVRfRVZFTlRfWEFDVF9HUk9VUF9VUERB VEUKIH0gV2FpdEV2ZW50SVBDOwogCi0tIAoyLjM0LjEKCg== --------------GsSZ4kgNjkBi9v4p9BXYo4NX Content-Type: text/plain; charset=UTF-8; name="v30-0005-Doc-changes-describing-details-about-logical-dec.patch" Content-Disposition: attachment; filename*0="v30-0005-Doc-changes-describing-details-about-logical-dec.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA0ZGNlM2Q0YTNhNDFjNWM2YTJjMmI3M2RiMGE3NjU4ZGM0ODM2M2QyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogU2F0LCAxMCBEZWMgMjAyMiAwNzoyMjo0MCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMwIDUvNl0gRG9jIGNoYW5nZXMgZGVzY3JpYmluZyBkZXRhaWxzIGFib3V0IGxvZ2lj YWwKIGRlY29kaW5nLgoKQXV0aG9yOiBBbmRyZXMgRnJldW5kIChpbiBhbiBvbGRlciB2ZXJz aW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2b3QKUmV2aWV3ZWQtQnk6IEJl cnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVydCBIYWFzLCBGYWJyaXppbyBk ZSBSb3llcyBNZWxsbwotLS0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbCB8 IDIxICsrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlv bnMoKykKIDEwMC4wJSBkb2Mvc3JjL3NnbWwvCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2xvZ2ljYWxkZWNvZGluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5z Z21sCmluZGV4IDM4ZWU2OWRjY2MuLjlhY2YxNjAzN2EgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbGRl Y29kaW5nLnNnbWwKQEAgLTMxNiw2ICszMTYsMjcgQEAgcG9zdGdyZXM9IyBzZWxlY3QgKiBm cm9tIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygncmVncmVzc2lvbl9zbG90JywgTlVM TCwgTlUKICAgICAgbWF5IGNvbnN1bWUgY2hhbmdlcyBmcm9tIGEgc2xvdCBhdCBhbnkgZ2l2 ZW4gdGltZS4KICAgICA8L3BhcmE+CiAKKyAgICA8cGFyYT4KKyAgICAgQSBsb2dpY2FsIHJl cGxpY2F0aW9uIHNsb3QgY2FuIGFsc28gYmUgY3JlYXRlZCBvbiBhIGhvdCBzdGFuZGJ5LiBU byBwcmV2ZW50CisgICAgIDxjb21tYW5kPlZBQ1VVTTwvY29tbWFuZD4gZnJvbSByZW1vdmlu ZyByZXF1aXJlZCByb3dzIGZyb20gdGhlIHN5c3RlbQorICAgICBjYXRhbG9ncywgPHZhcm5h bWU+aG90X3N0YW5kYnlfZmVlZGJhY2s8L3Zhcm5hbWU+IHNob3VsZCBiZSBzZXQgb24gdGhl CisgICAgIHN0YW5kYnkuIEluIHNwaXRlIG9mIHRoYXQsIGlmIGFueSByZXF1aXJlZCByb3dz IGdldCByZW1vdmVkLCB0aGUgc2xvdCBnZXRzCisgICAgIGludmFsaWRhdGVkLiBJdCdzIGhp Z2hseSByZWNvbW1lbmRlZCB0byB1c2UgYSBwaHlzaWNhbCBzbG90IGJldHdlZW4gdGhlIHBy aW1hcnkKKyAgICAgYW5kIHRoZSBzdGFuZGJ5LiBPdGhlcndpc2UsIGhvdF9zdGFuZGJ5X2Zl ZWRiYWNrIHdpbGwgd29yaywgYnV0IG9ubHkgd2hpbGUgdGhlCisgICAgIGNvbm5lY3Rpb24g aXMgYWxpdmUgKGZvciBleGFtcGxlIGEgbm9kZSByZXN0YXJ0IHdvdWxkIGJyZWFrIGl0KS4g RXhpc3RpbmcKKyAgICAgbG9naWNhbCBzbG90cyBvbiBzdGFuZGJ5IGFsc28gZ2V0IGludmFs aWRhdGVkIGlmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIHJlZHVjZWQgdG8KKyAgICAgbGVz cyB0aGFuICdsb2dpY2FsJy4KKyAgICA8L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICAgRm9y IGEgbG9naWNhbCBzbG90IHRvIGJlIGNyZWF0ZWQsIGl0IGJ1aWxkcyBhIGhpc3RvcmljIHNu YXBzaG90LCBmb3Igd2hpY2gKKyAgICAgaW5mb3JtYXRpb24gb2YgYWxsIHRoZSBjdXJyZW50 bHkgcnVubmluZyB0cmFuc2FjdGlvbnMgaXMgZXNzZW50aWFsLiBPbgorICAgICBwcmltYXJ5 LCB0aGlzIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSwgYnV0IG9uIHN0YW5kYnksIHRoaXMg aW5mb3JtYXRpb24KKyAgICAgaGFzIHRvIGJlIG9idGFpbmVkIGZyb20gcHJpbWFyeS4gU28s IHNsb3QgY3JlYXRpb24gbWF5IHdhaXQgZm9yIHNvbWUKKyAgICAgYWN0aXZpdHkgdG8gaGFw cGVuIG9uIHRoZSBwcmltYXJ5LiBJZiB0aGUgcHJpbWFyeSBpcyBpZGxlLCBjcmVhdGluZyBh CisgICAgIGxvZ2ljYWwgc2xvdCBvbiBzdGFuZGJ5IG1heSB0YWtlIGEgbm90aWNlYWJsZSB0 aW1lLgorICAgIDwvcGFyYT4KKwogICAgIDxjYXV0aW9uPgogICAgICA8cGFyYT4KICAgICAg IFJlcGxpY2F0aW9uIHNsb3RzIHBlcnNpc3QgYWNyb3NzIGNyYXNoZXMgYW5kIGtub3cgbm90 aGluZyBhYm91dCB0aGUgc3RhdGUKLS0gCjIuMzQuMQoK --------------GsSZ4kgNjkBi9v4p9BXYo4NX Content-Type: text/plain; charset=UTF-8; name="v30-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Disposition: attachment; filename*0="v30-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSAyOWFmMjUxMzUwZDgzMzZmMzQwMzRlZmJlZmJiNjIxZTljNWEyMjc3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogU2F0LCAxMCBEZWMgMjAyMiAwNzoyMTo1MSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMwIDQvNl0gTmV3IFRBUCB0ZXN0IGZvciBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5k YnkuCgpBdXRob3I6IENyYWlnIFJpbmdlciAoaW4gYW4gb2xkZXIgdmVyc2lvbiksIEFtaXQg S2hhbmRla2FyLCBCZXJ0cmFuZCBEcm91dm90ClJldmlld2VkLUJ5OiBCZXJ0cmFuZCBEcm91 dm90LCBBbmRyZXMgRnJldW5kLCBSb2JlcnQgSGFhcywgRmFicml6aW8gZGUgUm95ZXMgTWVs bG8KLS0tCiBzcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtICAgICAg fCAgMzcgKysKIHNyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkICAgICAgICAgICAgICAg ICB8ICAgMSArCiAuLi4vdC8wMzRfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsICAgICAg ICAgfCA0NzkgKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDUxNyBpbnNl cnRpb25zKCspCiAgIDYuMCUgc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3QvCiAgOTMu NyUgc3JjL3Rlc3QvcmVjb3ZlcnkvdC8KCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9wZXJsL1Bv c3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtIGIvc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rl c3QvQ2x1c3Rlci5wbQppbmRleCA3NDExMTg4ZGM4Li4xNzFkYzg1Mzg4IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtCisrKyBiL3NyYy90 ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0NsdXN0ZXIucG0KQEAgLTMwMzcsNiArMzAzNyw0 MyBAQCAkU0lHe1RFUk19ID0gJFNJR3tJTlR9ID0gc3ViIHsKIAogPXBvZAogCis9aXRlbSAk bm9kZS0+Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5KHNlbGYsIG1hc3Rlciwgc2xv dF9uYW1lLCBkYm5hbWUpCisKK0NyZWF0ZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3Qgb24g Z2l2ZW4gc3RhbmRieQorCis9Y3V0CisKK3N1YiBjcmVhdGVfbG9naWNhbF9zbG90X29uX3N0 YW5kYnkKK3sKKwlteSAoJHNlbGYsICRtYXN0ZXIsICRzbG90X25hbWUsICRkYm5hbWUpID0g QF87CisJbXkgKCRzdGRvdXQsICRzdGRlcnIpOworCisJbXkgJGhhbmRsZTsKKworCSRoYW5k bGUgPSBJUEM6OlJ1bjo6c3RhcnQoWydwZ19yZWN2bG9naWNhbCcsICctZCcsICRzZWxmLT5j b25uc3RyKCRkYm5hbWUpLCAnLVAnLCAndGVzdF9kZWNvZGluZycsICctUycsICRzbG90X25h bWUsICctLWNyZWF0ZS1zbG90J10sICc+JywgXCRzdGRvdXQsICcyPicsIFwkc3RkZXJyKTsK KworCSMgT25jZSBzbG90IHJlc3RhcnRfbHNuIGlzIGNyZWF0ZWQsIHRoZSBzdGFuZGJ5IGxv b2tzIGZvciB4bF9ydW5uaW5nX3hhY3RzCisJIyBXQUwgcmVjb3JkIGZyb20gdGhlIHJlc3Rh cnRfbHNuIG9ud2FyZHMuIFNvIGZpcnN0bHksIHdhaXQgdW50aWwgdGhlIHNsb3QKKwkjIHJl c3RhcnRfbHNuIGlzIGV2YWx1YXRlZC4KKworCSRzZWxmLT5wb2xsX3F1ZXJ5X3VudGlsKAor CQkncG9zdGdyZXMnLCBxcVsKKwkJU0VMRUNUIHJlc3RhcnRfbHNuIElTIE5PVCBOVUxMCisJ CUZST00gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUg PSAnJHNsb3RfbmFtZScKKwldKSBvciBkaWUgInRpbWVkIG91dCB3YWl0aW5nIGZvciBsb2dp Y2FsIHNsb3QgdG8gY2FsY3VsYXRlIGl0cyByZXN0YXJ0X2xzbiI7CisKKwkjIE5vdyBhcnJh bmdlIGZvciB0aGUgeGxfcnVubmluZ194YWN0cyByZWNvcmQgZm9yIHdoaWNoIHBnX3JlY3Zs b2dpY2FsCisJIyBpcyB3YWl0aW5nLgorCSRtYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAnQ0hFQ0tQT0lOVCcpOworCisJJGhhbmRsZS0+ZmluaXNoKCk7CisKKwlpcygkc2VsZi0+ c2xvdCgkc2xvdF9uYW1lKS0+eydzbG90X3R5cGUnfSwgJ2xvZ2ljYWwnLCAkc2xvdF9uYW1l IC4gJyBvbiBzdGFuZGJ5IGNyZWF0ZWQnKQorCQlvciBkaWUgImNvdWxkIG5vdCBjcmVhdGUg c2xvdCIgLiAkc2xvdF9uYW1lOworfQorCis9cG9kCisKID1iYWNrCiAKID1jdXQKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvcmVjb3Zl cnkvbWVzb24uYnVpbGQKaW5kZXggYjBlMzk4MzYzZi4uZDY4ZWU5YjY2MyAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3QvcmVjb3Zl cnkvbWVzb24uYnVpbGQKQEAgLTM4LDYgKzM4LDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3Qv MDMxX3JlY292ZXJ5X2NvbmZsaWN0LnBsJywKICAgICAgICd0LzAzMl9yZWxmaWxlbm9kZV9y ZXVzZS5wbCcsCiAgICAgICAndC8wMzNfcmVwbGF5X3RzcF9kcm9wcy5wbCcsCisgICAgICAn dC8wMzRfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsJywKICAgICBdLAogICB9LAogfQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzRfc3RhbmRieV9sb2dpY2FsX2Rl Y29kaW5nLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzRfc3RhbmRieV9sb2dpY2FsX2Rl Y29kaW5nLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjQyNTg4 NDRjOGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNF9zdGFu ZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwKQEAgLTAsMCArMSw0NzkgQEAKKyMgbG9naWNhbCBk ZWNvZGluZyBvbiBzdGFuZGJ5IDogdGVzdCBsb2dpY2FsIGRlY29kaW5nLAorIyByZWNvdmVy eSBjb25mbGljdCBhbmQgc3RhbmRieSBwcm9tb3Rpb24uCisKK3VzZSBzdHJpY3Q7Cit1c2Ug d2FybmluZ3M7CisKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFRlc3Q6 Ok1vcmUgdGVzdHMgPT4gNDI7CisKK215ICgkc3RkaW4sICRzdGRvdXQsICRzdGRlcnIsICRy ZXQsICRoYW5kbGUsICRzbG90KTsKKworbXkgJG5vZGVfcHJpbWFyeSA9IFBvc3RncmVTUUw6 OlRlc3Q6OkNsdXN0ZXItPm5ldygncHJpbWFyeScpOworbXkgJG5vZGVfc3RhbmRieSA9IFBv c3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3RhbmRieScpOworCisjIE5hbWUgZm9y IHRoZSBwaHlzaWNhbCBzbG90IG9uIHByaW1hcnkKK215ICRwcmltYXJ5X3Nsb3RuYW1lID0g J3ByaW1hcnlfcGh5c2ljYWwnOworCisjIGZpbmQgJHBhdCBpbiBsb2dmaWxlIG9mICRub2Rl IGFmdGVyICRvZmYtdGggYnl0ZQorc3ViIGZpbmRfaW5fbG9nCit7CisJbXkgKCRub2RlLCAk cGF0LCAkb2ZmKSA9IEBfOworCisJJG9mZiA9IDAgdW5sZXNzIGRlZmluZWQgJG9mZjsKKwlt eSAkbG9nID0gUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnNsdXJwX2ZpbGUoJG5vZGUtPmxv Z2ZpbGUpOworCXJldHVybiAwIGlmIChsZW5ndGgoJGxvZykgPD0gJG9mZik7CisKKwkkbG9n ID0gc3Vic3RyKCRsb2csICRvZmYpOworCisJcmV0dXJuICRsb2cgPX4gbS8kcGF0LzsKK30K KworIyBGZXRjaCB4bWluIGNvbHVtbnMgZnJvbSBzbG90J3MgcGdfcmVwbGljYXRpb25fc2xv dHMgcm93LCBhZnRlciB3YWl0aW5nIGZvcgorIyBnaXZlbiBib29sZWFuIGNvbmRpdGlvbiB0 byBiZSB0cnVlIHRvIGVuc3VyZSB3ZSd2ZSByZWFjaGVkIGEgcXVpZXNjZW50IHN0YXRlLgor c3ViIHdhaXRfZm9yX3htaW5zCit7CisJbXkgKCRub2RlLCAkc2xvdG5hbWUsICRjaGVja19l eHByKSA9IEBfOworCisJJG5vZGUtPnBvbGxfcXVlcnlfdW50aWwoCisJCSdwb3N0Z3Jlcycs IHFxWworCQlTRUxFQ1QgJGNoZWNrX2V4cHIKKwkJRlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxp Y2F0aW9uX3Nsb3RzCisJCVdIRVJFIHNsb3RfbmFtZSA9ICckc2xvdG5hbWUnOworCV0pIG9y IGRpZSAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHNsb3QgeG1pbnMgdG8gYWR2YW5jZSI7Cit9 CisKKyMgQ3JlYXRlIHRoZSByZXF1aXJlZCBsb2dpY2FsIHNsb3RzIG9uIHN0YW5kYnkuCitz dWIgY3JlYXRlX2xvZ2ljYWxfc2xvdHMKK3sKKwkkbm9kZV9zdGFuZGJ5LT5jcmVhdGVfbG9n aWNhbF9zbG90X29uX3N0YW5kYnkoJG5vZGVfcHJpbWFyeSwgJ2luYWN0aXZlc2xvdCcsICd0 ZXN0ZGInKTsKKwkkbm9kZV9zdGFuZGJ5LT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5k YnkoJG5vZGVfcHJpbWFyeSwgJ2FjdGl2ZXNsb3QnLCAndGVzdGRiJyk7Cit9CisKKyMgQWNx dWlyZSBvbmUgb2YgdGhlIHN0YW5kYnkgbG9naWNhbCBzbG90cyBjcmVhdGVkIGJ5IGNyZWF0 ZV9sb2dpY2FsX3Nsb3RzKCkuCisjIEluIGNhc2Ugd2FpdCBpcyB0cnVlIHdlIGFyZSB3YWl0 aW5nIGZvciBhbiBhY3RpdmUgcGlkIG9uIHRoZSAnYWN0aXZlc2xvdCcgc2xvdC4KKyMgSWYg d2FpdCBpcyBub3QgdHJ1ZSBpdCBtZWFucyB3ZSBhcmUgdGVzdGluZyBhIGtub3duIGZhaWx1 cmUgc2NlbmFyaW8uCitzdWIgbWFrZV9zbG90X2FjdGl2ZQoreworCW15ICR3YWl0ID0gc2hp ZnQ7CisJbXkgJHNsb3RfdXNlcl9oYW5kbGU7CisKKwlwcmludCAic3RhcnRpbmcgcGdfcmVj dmxvZ2ljYWxcbiI7CisJJHNsb3RfdXNlcl9oYW5kbGUgPSBJUEM6OlJ1bjo6c3RhcnQoWydw Z19yZWN2bG9naWNhbCcsICctZCcsICRub2RlX3N0YW5kYnktPmNvbm5zdHIoJ3Rlc3RkYicp LCAnLVMnLCAnYWN0aXZlc2xvdCcsICctZicsICctJywgJy0tbm8tbG9vcCcsICctLXN0YXJ0 J10sICc+JywgXCRzdGRvdXQsICcyPicsIFwkc3RkZXJyKTsKKworCWlmICgkd2FpdCkKKwkj IG1ha2Ugc3VyZSBhY3RpdmVzbG90IGlzIGluIHVzZQorCXsKKwkJJG5vZGVfc3RhbmRieS0+ cG9sbF9xdWVyeV91bnRpbCgndGVzdGRiJywKKwkJCSJTRUxFQ1QgRVhJU1RTIChTRUxFQ1Qg MSBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdhY3RpdmVz bG90JyBBTkQgYWN0aXZlX3BpZCBJUyBOT1QgTlVMTCkiCisJCSkgb3IgZGllICJzbG90IG5l dmVyIGJlY2FtZSBhY3RpdmUiOworCX0KKworCXJldHVybiAkc2xvdF91c2VyX2hhbmRsZTsK K30KKworIyBDaGVjayBwZ19yZWN2bG9naWNhbCBzdGRlcnIKK3N1YiBjaGVja19wZ19yZWN2 bG9naWNhbF9zdGRlcnIKK3sKKwlteSAoJHNsb3RfdXNlcl9oYW5kbGUsICRjaGVja19zdGRl cnIpID0gQF87CisJbXkgJHJldHVybjsKKworCSMgb3VyIGNsaWVudCBzaG91bGQndmUgdGVy bWluYXRlZCBpbiByZXNwb25zZSB0byB0aGUgd2Fsc2VuZGVyIGVycm9yCisJJHNsb3RfdXNl cl9oYW5kbGUtPmZpbmlzaDsKKwkkcmV0dXJuID0gJD87CisJY21wX29rKCRyZXR1cm4sICIh PSIsIDAsICJwZ19yZWN2bG9naWNhbCBleGl0ZWQgbm9uLXplcm8iKTsKKwlpZiAoJHJldHVy bikgeworCQlsaWtlKCRzdGRlcnIsIHFyLyRjaGVja19zdGRlcnIvLCAnc2xvdCBoYXMgYmVl biBpbnZhbGlkYXRlZCcpOworCX0KKworCXJldHVybiAwOworfQorCisjIENoZWNrIGlmIGFs bCB0aGUgc2xvdHMgb24gc3RhbmRieSBhcmUgZHJvcHBlZC4gVGhlc2UgaW5jbHVkZSB0aGUg J2FjdGl2ZXNsb3QnCisjIHRoYXQgd2FzIGFjcXVpcmVkIGJ5IG1ha2Vfc2xvdF9hY3RpdmUo KSwgYW5kIHRoZSBub24tYWN0aXZlICdpbmFjdGl2ZXNsb3QnLgorc3ViIGNoZWNrX3Nsb3Rz X2Ryb3BwZWQKK3sKKwlteSAoJHNsb3RfdXNlcl9oYW5kbGUpID0gQF87CisKKwlpcygkbm9k ZV9zdGFuZGJ5LT5zbG90KCdpbmFjdGl2ZXNsb3QnKS0+eydzbG90X3R5cGUnfSwgJycsICdp bmFjdGl2ZXNsb3Qgb24gc3RhbmRieSBkcm9wcGVkJyk7CisJaXMoJG5vZGVfc3RhbmRieS0+ c2xvdCgnYWN0aXZlc2xvdCcpLT57J3Nsb3RfdHlwZSd9LCAnJywgJ2FjdGl2ZXNsb3Qgb24g c3RhbmRieSBkcm9wcGVkJyk7CisKKwljaGVja19wZ19yZWN2bG9naWNhbF9zdGRlcnIoJHNs b3RfdXNlcl9oYW5kbGUsICJjb25mbGljdCB3aXRoIHJlY292ZXJ5Iik7Cit9CisKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIyBJbml0aWFsaXplIHByaW1hcnkgbm9kZQorIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisKKyRub2RlX3ByaW1hcnktPmluaXQoYWxsb3dzX3N0cmVh bWluZyA9PiAxLCBoYXNfYXJjaGl2aW5nID0+IDEpOworJG5vZGVfcHJpbWFyeS0+YXBwZW5k X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsIHF7Cit3YWxfbGV2ZWwgPSAnbG9naWNhbCcKK21h eF9yZXBsaWNhdGlvbl9zbG90cyA9IDQKK21heF93YWxfc2VuZGVycyA9IDQKK2xvZ19taW5f bWVzc2FnZXMgPSAnZGVidWcyJworbG9nX2Vycm9yX3ZlcmJvc2l0eSA9IHZlcmJvc2UKK30p OworJG5vZGVfcHJpbWFyeS0+ZHVtcF9pbmZvOworJG5vZGVfcHJpbWFyeS0+c3RhcnQ7CisK KyRub2RlX3ByaW1hcnktPnBzcWwoJ3Bvc3RncmVzJywgcVtDUkVBVEUgREFUQUJBU0UgdGVz dGRiXSk7CisKKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbU0VMRUNU ICogRlJPTSBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgnJHByaW1hcnlf c2xvdG5hbWUnKTtdKTsKK215ICRiYWNrdXBfbmFtZSA9ICdiMSc7Ciskbm9kZV9wcmltYXJ5 LT5iYWNrdXAoJGJhY2t1cF9uYW1lKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMg SW5pdGlhbGl6ZSBzdGFuZGJ5IG5vZGUKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyRu b2RlX3N0YW5kYnktPmluaXRfZnJvbV9iYWNrdXAoCisJJG5vZGVfcHJpbWFyeSwgJGJhY2t1 cF9uYW1lLAorCWhhc19zdHJlYW1pbmcgPT4gMSwKKwloYXNfcmVzdG9yaW5nID0+IDEpOwor JG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCisJcXFbcHJp bWFyeV9zbG90X25hbWUgPSAnJHByaW1hcnlfc2xvdG5hbWUnXSk7Ciskbm9kZV9zdGFuZGJ5 LT5zdGFydDsKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRi eSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKSk7CisKKworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCB0 aGF0IGxvZ2ljYWwgZGVjb2Rpbmcgb24gdGhlIHN0YW5kYnkKKyMgYmVoYXZlcyBjb3JyZWN0 bHkuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCitjcmVhdGVfbG9naWNhbF9zbG90cygpOworCiskbm9kZV9wcmltYXJ5LT5zYWZlX3Bz cWwoJ3Rlc3RkYicsIHFxW0NSRUFURSBUQUJMRSBkZWNvZGluZ190ZXN0KHggaW50ZWdlciwg eSB0ZXh0KTtdKTsKKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbSU5T RVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkpIFNFTEVDVCBzLCBzOjp0ZXh0IEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsMTApIHM7XSk7CisKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2Nh dGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1 c2gnKSk7CisKK215ICRyZXN1bHQgPSAkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Rlc3Rk YicsCisJcXFbU0VMRUNUIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnYWN0aXZlc2xv dCcsIE5VTEwsIE5VTEwpO10pOworCisjIHRlc3QgaWYgYmFzaWMgZGVjb2Rpbmcgd29ya3MK K2lzKHNjYWxhcihteSBAZm9vYmFyID0gc3BsaXQgL14vbSwgJHJlc3VsdCksCisJMTQsICdE ZWNvZGluZyBwcm9kdWNlZCAxNCByb3dzJyk7CisKKyMgSW5zZXJ0IHNvbWUgcm93cyBhbmQg dmVyaWZ5IHRoYXQgd2UgZ2V0IHRoZSBzYW1lIHJlc3VsdHMgZnJvbSBwZ19yZWN2bG9naWNh bAorIyBhbmQgdGhlIFNRTCBpbnRlcmZhY2UuCiskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwo J3Rlc3RkYicsCisJcXFbSU5TRVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkpIFNFTEVDVCBz LCBzOjp0ZXh0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsNCkgcztdCispOworCitteSAkZXhw ZWN0ZWQgPSBxe0JFR0lOCit0YWJsZSBwdWJsaWMuZGVjb2RpbmdfdGVzdDogSU5TRVJUOiB4 W2ludGVnZXJdOjEgeVt0ZXh0XTonMScKK3RhYmxlIHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJ TlNFUlQ6IHhbaW50ZWdlcl06MiB5W3RleHRdOicyJwordGFibGUgcHVibGljLmRlY29kaW5n X3Rlc3Q6IElOU0VSVDogeFtpbnRlZ2VyXTozIHlbdGV4dF06JzMnCit0YWJsZSBwdWJsaWMu ZGVjb2RpbmdfdGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjQgeVt0ZXh0XTonNCcKK0NPTU1J VH07CisKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwg J3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKSk7CisKK215ICRzdGRvdXRf c3FsID0gJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCd0ZXN0ZGInLAorCXFxW1NFTEVDVCBk YXRhIEZST00gcGdfbG9naWNhbF9zbG90X3BlZWtfY2hhbmdlcygnYWN0aXZlc2xvdCcsIE5V TEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdza2lwLWVtcHR5LXhhY3RzJywgJzEn KTtdCispOworCitpcygkc3Rkb3V0X3NxbCwgJGV4cGVjdGVkLCAnZ290IGV4cGVjdGVkIG91 dHB1dCBmcm9tIFNRTCBkZWNvZGluZyBzZXNzaW9uJyk7CisKK215ICRlbmRwb3MgPSAkbm9k ZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsCisJIlNFTEVDVCBsc24gRlJPTSBwZ19s b2dpY2FsX3Nsb3RfcGVla19jaGFuZ2VzKCdhY3RpdmVzbG90JywgTlVMTCwgTlVMTCkgT1JE RVIgQlkgbHNuIERFU0MgTElNSVQgMTsiCispOworcHJpbnQgIndhaXRpbmcgdG8gcmVwbGF5 ICRlbmRwb3NcbiI7CisKKyMgSW5zZXJ0IHNvbWUgcm93cyBhZnRlciAkZW5kcG9zLCB3aGlj aCB3ZSB3b24ndCByZWFkLgorJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCd0ZXN0ZGInLAor CXFxW0lOU0VSVCBJTlRPIGRlY29kaW5nX3Rlc3QoeCx5KSBTRUxFQ1Qgcywgczo6dGV4dCBG Uk9NIGdlbmVyYXRlX3Nlcmllcyg1LDUwKSBzO10KKyk7CisKKyRub2RlX3ByaW1hcnktPndh aXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnkt PmxzbignZmx1c2gnKSk7CisKK215ICRzdGRvdXRfcmVjdiA9ICRub2RlX3N0YW5kYnktPnBn X3JlY3Zsb2dpY2FsX3VwdG8oCisgICAgJ3Rlc3RkYicsICdhY3RpdmVzbG90JywgJGVuZHBv cywgMTgwLAorICAgICdpbmNsdWRlLXhpZHMnICAgICA9PiAnMCcsCisgICAgJ3NraXAtZW1w dHkteGFjdHMnID0+ICcxJyk7CitjaG9tcCgkc3Rkb3V0X3JlY3YpOworaXMoJHN0ZG91dF9y ZWN2LCAkZXhwZWN0ZWQsCisgICAgJ2dvdCBzYW1lIGV4cGVjdGVkIG91dHB1dCBmcm9tIHBn X3JlY3Zsb2dpY2FsIGRlY29kaW5nIHNlc3Npb24nKTsKKworJG5vZGVfc3RhbmRieS0+cG9s bF9xdWVyeV91bnRpbCgndGVzdGRiJywKKwkiU0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEgRlJP TSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnYWN0aXZlc2xvdCcg QU5EIGFjdGl2ZV9waWQgSVMgTlVMTCkiCispIG9yIGRpZSAic2xvdCBuZXZlciBiZWNhbWUg aW5hY3RpdmUiOworCiskc3Rkb3V0X3JlY3YgPSAkbm9kZV9zdGFuZGJ5LT5wZ19yZWN2bG9n aWNhbF91cHRvKAorICAgICd0ZXN0ZGInLCAnYWN0aXZlc2xvdCcsICRlbmRwb3MsIDE4MCwK KyAgICAnaW5jbHVkZS14aWRzJyAgICAgPT4gJzAnLAorICAgICdza2lwLWVtcHR5LXhhY3Rz JyA9PiAnMScpOworY2hvbXAoJHN0ZG91dF9yZWN2KTsKK2lzKCRzdGRvdXRfcmVjdiwgJycs ICdwZ19yZWN2bG9naWNhbCBhY2tub3dsZWRnZWQgY2hhbmdlcycpOworCiskbm9kZV9wcmlt YXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0NSRUFURSBEQVRBQkFTRSBvdGhlcmRiJyk7 CisKK2lzKCAkbm9kZV9wcmltYXJ5LT5wc3FsKAorICAgICAgICAnb3RoZXJkYicsCisgICAg ICAgICJTRUxFQ1QgbHNuIEZST00gcGdfbG9naWNhbF9zbG90X3BlZWtfY2hhbmdlcygnYWN0 aXZlc2xvdCcsIE5VTEwsIE5VTEwpIE9SREVSIEJZIGxzbiBERVNDIExJTUlUIDE7IgorICAg ICksCisgICAgMywKKyAgICAncmVwbGF5aW5nIGxvZ2ljYWwgc2xvdCBmcm9tIGFub3RoZXIg ZGF0YWJhc2UgZmFpbHMnKTsKKworIyBkcm9wIHRoZSBsb2dpY2FsIHNsb3RzCiskbm9kZV9z dGFuZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25f c2xvdCgnaW5hY3RpdmVzbG90JyldKTsKKyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVz JywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdhY3RpdmVzbG90JyldKTsK KworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyMgUmVjb3ZlcnkgY29uZmxpY3Q6IEludmFsaWRhdGUgY29uZmxpY3Rpbmcgc2xvdHMsIGlu Y2x1ZGluZyBpbi11c2Ugc2xvdHMKKyMgU2NlbmFyaW8gMTogaG90X3N0YW5kYnlfZmVlZGJh Y2sgb2ZmIGFuZCB2YWN1dW0gRlVMTAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworIyBP bmUgd2F5IHRvIHJlcHJvZHVjZSByZWNvdmVyeSBjb25mbGljdCBpcyB0byBydW4gVkFDVVVN IEZVTEwgd2l0aAorIyBob3Rfc3RhbmRieV9mZWVkYmFjayB0dXJuZWQgb2ZmIG9uIHRoZSBz dGFuZGJ5LgorJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZics cVsKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb2ZmCitdKTsKKyRub2RlX3N0YW5kYnktPnJl c3RhcnQ7CisjIGVuc3VyZSB3YWxyZWNlaXZlciBmZWVkYmFjayBvZmYgYnkgd2FpdGluZyBm b3IgZXhwZWN0ZWQgeG1pbiBhbmQKKyMgY2F0YWxvZ194bWluIG9uIHByaW1hcnkuIEJvdGgg c2hvdWxkIGJlIE5VTEwgc2luY2UgaHNfZmVlZGJhY2sgaXMgb2ZmCit3YWl0X2Zvcl94bWlu cygkbm9kZV9wcmltYXJ5LCAkcHJpbWFyeV9zbG90bmFtZSwKKwkJCSAgICJ4bWluIElTIE5V TEwgQU5EIGNhdGFsb2dfeG1pbiBJUyBOVUxMIik7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3Rf YWN0aXZlKDEpOworCisjIFRoaXMgc2hvdWxkIHRyaWdnZXIgdGhlIGNvbmZsaWN0Ciskbm9k ZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsICdWQUNVVU0gRlVMTCcpOworCiskbm9k ZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAk bm9kZV9wcmltYXJ5LT5sc24oJ2ZsdXNoJykpOworCisjIG1lc3NhZ2Ugc2hvdWxkIGJlIGlz c3VlZAorb2soIGZpbmRfaW5fbG9nKAorICAgJG5vZGVfc3RhbmRieSwKKyAgImludmFsaWRh dGluZyBzbG90IFwiaW5hY3RpdmVzbG90XCIgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aCBy ZWNvdmVyeSIpLAorICAnaW5hY3RpdmVzbG90IHNsb3QgaW52YWxpZGF0aW9uIGlzIGxvZ2dl ZCB3aXRoIHZhY3V1bSBGVUxMJyk7CisKK29rKCBmaW5kX2luX2xvZygKKyAgICRub2RlX3N0 YW5kYnksCisgICJpbnZhbGlkYXRpbmcgc2xvdCBcImFjdGl2ZXNsb3RcIiBiZWNhdXNlIGl0 IGNvbmZsaWN0cyB3aXRoIHJlY292ZXJ5IiksCisgICdhY3RpdmVzbG90IHNsb3QgaW52YWxp ZGF0aW9uIGlzIGxvZ2dlZCB3aXRoIHZhY3V1bSBGVUxMJyk7CisKKyMgVmVyaWZ5IHRoYXQg cGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHMuY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90IGhh cyBiZWVuIHVwZGF0ZWQKK29rKCAkbm9kZV9zdGFuZGJ5LT5wb2xsX3F1ZXJ5X3VudGlsKAor CSdwb3N0Z3JlcycsCisJInNlbGVjdCAoY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90ID0gMSkg ZnJvbSBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cyB3aGVyZSBkYXRuYW1lID0gJ3Rlc3Rk YiciLCAndCcpLAorCSdjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgdXBkYXRlZCcpIG9yIGRp ZSAiVGltZWQgb3V0IHdhaXRpbmcgY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90IHRvIGJlIHVw ZGF0ZWQiOworCiskaGFuZGxlID0gbWFrZV9zbG90X2FjdGl2ZSgwKTsKKyMgV2UgYXJlIG5v dCBhYmxlIHRvIHJlYWQgZnJvbSB0aGUgc2xvdCBhcyBpdCBoYXMgYmVlbiBpbnZhbGlkYXRl ZAorY2hlY2tfcGdfcmVjdmxvZ2ljYWxfc3RkZXJyKCRoYW5kbGUsICJjYW5ub3QgcmVhZCBm cm9tIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBcImFjdGl2ZXNsb3RcIiIpOworCisjIFR1 cm4gaG90X3N0YW5kYnlfZmVlZGJhY2sgYmFjayBvbgorJG5vZGVfc3RhbmRieS0+YXBwZW5k X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb24K K10pOworJG5vZGVfc3RhbmRieS0+cmVzdGFydDsKKworIyBlbnN1cmUgd2FscmVjZWl2ZXIg ZmVlZGJhY2sgc2VudCBieSB3YWl0aW5nIGZvciBleHBlY3RlZCB4bWluIGFuZAorIyBjYXRh bG9nX3htaW4gb24gcHJpbWFyeS4gV2l0aCBob3Rfc3RhbmRieV9mZWVkYmFjayBvbiwgeG1p biBzaG91bGQgYWR2YW5jZSwKKyMgYnV0IGNhdGFsb2dfeG1pbiBzaG91bGQgc3RpbGwgcmVt YWluIE5VTEwgc2luY2UgdGhlcmUgaXMgbm8gbG9naWNhbCBzbG90Lgord2FpdF9mb3JfeG1p bnMoJG5vZGVfcHJpbWFyeSwgJHByaW1hcnlfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJUyBO T1QgTlVMTCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwiKTsKKworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgUmVjb3ZlcnkgY29uZmxp Y3Q6IEludmFsaWRhdGUgY29uZmxpY3Rpbmcgc2xvdHMsIGluY2x1ZGluZyBpbi11c2Ugc2xv dHMKKyMgU2NlbmFyaW8gMjogY29uZmxpY3QgZHVlIHRvIHJvdyByZW1vdmFsIHdpdGggaG90 X3N0YW5kYnlfZmVlZGJhY2sgb2ZmLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBnZXQgdGhlIHBvc2l0aW9uIHRvIHNlYXJjaCBm cm9tIGluIHRoZSBzdGFuZGJ5IGxvZ2ZpbGUKK215ICRsb2dzdGFydCA9IC1zICRub2RlX3N0 YW5kYnktPmxvZ2ZpbGU7CisKKyMgZHJvcCB0aGUgbG9naWNhbCBzbG90cworJG5vZGVfc3Rh bmRieS0+cHNxbCgncG9zdGdyZXMnLCBxW1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Ns b3QoJ2luYWN0aXZlc2xvdCcpXSk7Ciskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3Jlcycs IHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnYWN0aXZlc2xvdCcpXSk7CisK K2NyZWF0ZV9sb2dpY2FsX3Nsb3RzKCk7CisKKyMgT25lIHdheSB0byBwcm9kdWNlIHJlY292 ZXJ5IGNvbmZsaWN0IGlzIHRvIGNyZWF0ZS9kcm9wIGEgcmVsYXRpb24gYW5kIGxhdW5jaCBh IHZhY3V1bQorIyB3aXRoIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIHR1cm5lZCBvZmYgb24gdGhl IHN0YW5kYnkuCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25m JyxxWworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvZmYKK10pOworJG5vZGVfc3RhbmRieS0+ cmVzdGFydDsKKyMgZW5zdXJlIHdhbHJlY2VpdmVyIGZlZWRiYWNrIG9mZiBieSB3YWl0aW5n IGZvciBleHBlY3RlZCB4bWluIGFuZAorIyBjYXRhbG9nX3htaW4gb24gcHJpbWFyeS4gQm90 aCBzaG91bGQgYmUgTlVMTCBzaW5jZSBoc19mZWVkYmFjayBpcyBvZmYKK3dhaXRfZm9yX3ht aW5zKCRub2RlX3ByaW1hcnksICRwcmltYXJ5X3Nsb3RuYW1lLAorCQkJICAgInhtaW4gSVMg TlVMTCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwiKTsKKworJGhhbmRsZSA9IG1ha2Vfc2xv dF9hY3RpdmUoMSk7CisKKyMgVGhpcyBzaG91bGQgdHJpZ2dlciB0aGUgY29uZmxpY3QKKyRu b2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbQ1JFQVRFIFRBQkxFIGNvbmZs aWN0X3Rlc3QoeCBpbnRlZ2VyLCB5IHRleHQpO10pOworJG5vZGVfcHJpbWFyeS0+c2FmZV9w c3FsKCd0ZXN0ZGInLCBxcVtEUk9QIFRBQkxFIGNvbmZsaWN0X3Rlc3Q7XSk7Ciskbm9kZV9w cmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsICdWQUNVVU0nKTsKKworJG5vZGVfcHJpbWFy eS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJp bWFyeS0+bHNuKCdmbHVzaCcpKTsKKworIyBtZXNzYWdlIHNob3VsZCBiZSBpc3N1ZWQKK29r KCBmaW5kX2luX2xvZygKKyAgICRub2RlX3N0YW5kYnksCisgICJpbnZhbGlkYXRpbmcgc2xv dCBcImluYWN0aXZlc2xvdFwiIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGggcmVjb3Zlcnki LCAkbG9nc3RhcnQpLAorICAnaW5hY3RpdmVzbG90IHNsb3QgaW52YWxpZGF0aW9uIGlzIGxv Z2dlZCBkdWUgdG8gcm93IHJlbW92YWwnKTsKKworb2soIGZpbmRfaW5fbG9nKAorICAgJG5v ZGVfc3RhbmRieSwKKyAgImludmFsaWRhdGluZyBzbG90IFwiYWN0aXZlc2xvdFwiIGJlY2F1 c2UgaXQgY29uZmxpY3RzIHdpdGggcmVjb3ZlcnkiLCAkbG9nc3RhcnQpLAorICAnYWN0aXZl c2xvdCBzbG90IGludmFsaWRhdGlvbiBpcyBsb2dnZWQgZHVlIHRvIHJvdyByZW1vdmFsJyk7 CisKKyMgVmVyaWZ5IHRoYXQgcGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHMuY29uZmxfYWN0 aXZlX2xvZ2ljYWxzbG90IGhhcyBiZWVuIHVwZGF0ZWQKKyMgd2Ugbm93IGV4cGVjdCAyIGNv bmZsaWN0cyByZXBvcnRlZCBhcyB0aGUgY291bnRlciBwZXJzaXN0IGFjcm9zcyByZXN0YXJ0 cworb2soICRub2RlX3N0YW5kYnktPnBvbGxfcXVlcnlfdW50aWwoCisJJ3Bvc3RncmVzJywK Kwkic2VsZWN0IChjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgPSAyKSBmcm9tIHBnX3N0YXRf ZGF0YWJhc2VfY29uZmxpY3RzIHdoZXJlIGRhdG5hbWUgPSAndGVzdGRiJyIsICd0JyksCisJ J2NvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdCB1cGRhdGVkJykgb3IgZGllICJUaW1lZCBvdXQg d2FpdGluZyBjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgdG8gYmUgdXBkYXRlZCI7CisKKyRo YW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKDApOworIyBXZSBhcmUgbm90IGFibGUgdG8gcmVh ZCBmcm9tIHRoZSBzbG90IGFzIGl0IGhhcyBiZWVuIGludmFsaWRhdGVkCitjaGVja19wZ19y ZWN2bG9naWNhbF9zdGRlcnIoJGhhbmRsZSwgImNhbm5vdCByZWFkIGZyb20gbG9naWNhbCBy ZXBsaWNhdGlvbiBzbG90IFwiYWN0aXZlc2xvdFwiIik7CisKKyMgVHVybiBob3Rfc3RhbmRi eV9mZWVkYmFjayBiYWNrIG9uCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdy ZXNxbC5jb25mJyxxWworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbgorXSk7Ciskbm9kZV9z dGFuZGJ5LT5yZXN0YXJ0OworCisjIGVuc3VyZSB3YWxyZWNlaXZlciBmZWVkYmFjayBzZW50 IGJ5IHdhaXRpbmcgZm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBvbiBw cmltYXJ5LiBXaXRoIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIG9uLCB4bWluIHNob3VsZCBhZHZh bmNlLAorIyBidXQgY2F0YWxvZ194bWluIHNob3VsZCBzdGlsbCByZW1haW4gTlVMTCBzaW5j ZSB0aGVyZSBpcyBubyBsb2dpY2FsIHNsb3QuCit3YWl0X2Zvcl94bWlucygkbm9kZV9wcmlt YXJ5LCAkcHJpbWFyeV9zbG90bmFtZSwKKwkJCSAgICJ4bWluIElTIE5PVCBOVUxMIEFORCBj YXRhbG9nX3htaW4gSVMgTlVMTCIpOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBSZWNvdmVyeSBjb25mbGljdDogSW52YWxpZGF0 ZSBjb25mbGljdGluZyBzbG90cywgaW5jbHVkaW5nIGluLXVzZSBzbG90cworIyBTY2VuYXJp byAzOiBpbmNvcnJlY3Qgd2FsX2xldmVsIG9uIHByaW1hcnkuCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIGdldCB0aGUgcG9zaXRp b24gdG8gc2VhcmNoIGZyb20gaW4gdGhlIHN0YW5kYnkgbG9nZmlsZQorJGxvZ3N0YXJ0ID0g LXMgJG5vZGVfc3RhbmRieS0+bG9nZmlsZTsKKworIyBkcm9wIHRoZSBsb2dpY2FsIHNsb3Rz Ciskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVw bGljYXRpb25fc2xvdCgnaW5hY3RpdmVzbG90JyldKTsKKyRub2RlX3N0YW5kYnktPnBzcWwo J3Bvc3RncmVzJywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdhY3RpdmVz bG90JyldKTsKKworY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworJGhhbmRsZSA9IG1ha2Vf c2xvdF9hY3RpdmUoMSk7CisKKyMgTWFrZSBwcmltYXJ5IHdhbF9sZXZlbCByZXBsaWNhLiBU aGlzIHdpbGwgdHJpZ2dlciBzbG90IGNvbmZsaWN0LgorJG5vZGVfcHJpbWFyeS0+YXBwZW5k X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK3dhbF9sZXZlbCA9ICdyZXBsaWNhJworXSk7 Ciskbm9kZV9wcmltYXJ5LT5yZXN0YXJ0OworCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9j YXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5LT5sc24oJ2Zs dXNoJykpOworCisjIG1lc3NhZ2Ugc2hvdWxkIGJlIGlzc3VlZAorb2soIGZpbmRfaW5fbG9n KAorICAgJG5vZGVfc3RhbmRieSwKKyAgImludmFsaWRhdGluZyBzbG90IFwiaW5hY3RpdmVz bG90XCIgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aCByZWNvdmVyeSIsICRsb2dzdGFydCks CisgICdpbmFjdGl2ZXNsb3Qgc2xvdCBpbnZhbGlkYXRpb24gaXMgbG9nZ2VkIGR1ZSB0byB3 YWxfbGV2ZWwnKTsKKworb2soIGZpbmRfaW5fbG9nKAorICAgJG5vZGVfc3RhbmRieSwKKyAg ImludmFsaWRhdGluZyBzbG90IFwiYWN0aXZlc2xvdFwiIGJlY2F1c2UgaXQgY29uZmxpY3Rz IHdpdGggcmVjb3ZlcnkiLCAkbG9nc3RhcnQpLAorICAnYWN0aXZlc2xvdCBzbG90IGludmFs aWRhdGlvbiBpcyBsb2dnZWQgZHVlIHRvIHdhbF9sZXZlbCcpOworCisjIFZlcmlmeSB0aGF0 IHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3RzLmNvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdCBo YXMgYmVlbiB1cGRhdGVkCisjIHdlIG5vdyBleHBlY3QgMyBjb25mbGljdHMgcmVwb3J0ZWQg YXMgdGhlIGNvdW50ZXIgcGVyc2lzdCBhY3Jvc3MgcmVzdGFydHMKK29rKCAkbm9kZV9zdGFu ZGJ5LT5wb2xsX3F1ZXJ5X3VudGlsKAorCSdwb3N0Z3JlcycsCisJInNlbGVjdCAoY29uZmxf YWN0aXZlX2xvZ2ljYWxzbG90ID0gMykgZnJvbSBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0 cyB3aGVyZSBkYXRuYW1lID0gJ3Rlc3RkYiciLCAndCcpLAorCSdjb25mbF9hY3RpdmVfbG9n aWNhbHNsb3QgdXBkYXRlZCcpIG9yIGRpZSAiVGltZWQgb3V0IHdhaXRpbmcgY29uZmxfYWN0 aXZlX2xvZ2ljYWxzbG90IHRvIGJlIHVwZGF0ZWQiOworCiskaGFuZGxlID0gbWFrZV9zbG90 X2FjdGl2ZSgwKTsKKyMgV2UgYXJlIG5vdCBhYmxlIHRvIHJlYWQgZnJvbSB0aGUgc2xvdCBh cyBpdCByZXF1aXJlcyB3YWxfbGV2ZWwgYXQgbGVhc3QgbG9naWNhbCBvbiBtYXN0ZXIKK2No ZWNrX3BnX3JlY3Zsb2dpY2FsX3N0ZGVycigkaGFuZGxlLCAibG9naWNhbCBkZWNvZGluZyBv biBzdGFuZGJ5IHJlcXVpcmVzIHdhbF9sZXZlbCB0byBiZSBhdCBsZWFzdCBsb2dpY2FsIG9u IG1hc3RlciIpOworCisjIFJlc3RvcmUgcHJpbWFyeSB3YWxfbGV2ZWwKKyRub2RlX3ByaW1h cnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLHFbCit3YWxfbGV2ZWwgPSAnbG9n aWNhbCcKK10pOworJG5vZGVfcHJpbWFyeS0+cmVzdGFydDsKKyRub2RlX3ByaW1hcnktPndh aXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnkt PmxzbignZmx1c2gnKSk7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKDApOworIyBh cyB0aGUgc2xvdCBoYXMgYmVlbiBpbnZhbGlkYXRlZCB3ZSBzaG91bGQgbm90IGJlIGFibGUg dG8gcmVhZAorY2hlY2tfcGdfcmVjdmxvZ2ljYWxfc3RkZXJyKCRoYW5kbGUsICJjYW5ub3Qg cmVhZCBmcm9tIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBcImFjdGl2ZXNsb3RcIiIpOwor CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IyBEUk9QIERBVEFCQVNFIHNob3VsZCBkcm9wcyBpdCdzIHNsb3RzLCBpbmNsdWRpbmcgYWN0 aXZlIHNsb3RzLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKworJG5vZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMnLCBxW1NFTEVDVCBw Z19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2luYWN0aXZlc2xvdCcpXSk7Ciskbm9kZV9zdGFu ZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xv dCgnYWN0aXZlc2xvdCcpXSk7CitjcmVhdGVfbG9naWNhbF9zbG90cygpOworJGhhbmRsZSA9 IG1ha2Vfc2xvdF9hY3RpdmUoMSk7CisjIENyZWF0ZSBhIHNsb3Qgb24gYSBkYXRhYmFzZSB0 aGF0IHdvdWxkIG5vdCBiZSBkcm9wcGVkLiBUaGlzIHNsb3Qgc2hvdWxkIG5vdAorIyBnZXQg ZHJvcHBlZC4KKyRub2RlX3N0YW5kYnktPmNyZWF0ZV9sb2dpY2FsX3Nsb3Rfb25fc3RhbmRi eSgkbm9kZV9wcmltYXJ5LCAnb3RoZXJzbG90JywgJ3Bvc3RncmVzJyk7CisKKyMgZHJvcGRi IG9uIHRoZSBwcmltYXJ5IHRvIHZlcmlmeSBzbG90cyBhcmUgZHJvcHBlZCBvbiBzdGFuZGJ5 Ciskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcVtEUk9QIERBVEFCQVNF IHRlc3RkYl0pOworCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0 YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5LT5sc24oJ2ZsdXNoJykpOworCitpcygk bm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxW1NFTEVDVCBFWElTVFMo U0VMRUNUIDEgRlJPTSBwZ19kYXRhYmFzZSBXSEVSRSBkYXRuYW1lID0gJ3Rlc3RkYicpXSks ICdmJywKKwknZGF0YWJhc2UgZHJvcHBlZCBvbiBzdGFuZGJ5Jyk7CisKK2NoZWNrX3Nsb3Rz X2Ryb3BwZWQoJGhhbmRsZSk7CisKK2lzKCRub2RlX3N0YW5kYnktPnNsb3QoJ290aGVyc2xv dCcpLT57J3Nsb3RfdHlwZSd9LCAnbG9naWNhbCcsCisJJ290aGVyc2xvdCBvbiBzdGFuZGJ5 IG5vdCBkcm9wcGVkJyk7CisKKyMgQ2xlYW51cCA6IG1hbnVhbGx5IGRyb3AgdGhlIHNsb3Qg dGhhdCB3YXMgbm90IGRyb3BwZWQuCiskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3Jlcycs IHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnb3RoZXJzbG90JyldKTsKKwor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMg VGVzdCBzdGFuZGJ5IHByb21vdGlvbiBhbmQgbG9naWNhbCBkZWNvZGluZyBiZWhhdmlvcgor IyBhZnRlciB0aGUgc3RhbmRieSBnZXRzIHByb21vdGVkLgorIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworJG5vZGVfcHJpbWFyeS0+cHNx bCgncG9zdGdyZXMnLCBxW0NSRUFURSBEQVRBQkFTRSB0ZXN0ZGJdKTsKKyRub2RlX3ByaW1h cnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbQ1JFQVRFIFRBQkxFIGRlY29kaW5nX3Rlc3Qo eCBpbnRlZ2VyLCB5IHRleHQpO10pOworCisjIGNyZWF0ZSB0aGUgbG9naWNhbCBzbG90cwor Y3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworIyBJbnNlcnQgc29tZSByb3dzIGJlZm9yZSB0 aGUgcHJvbW90aW9uCiskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsCisJcXFb SU5TRVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkpIFNFTEVDVCBzLCBzOjp0ZXh0IEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsNCkgcztdCispOworCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zv cl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5LT5sc24o J2ZsdXNoJykpOworCisjIHByb21vdGUKKyRub2RlX3N0YW5kYnktPnByb21vdGU7CisKKyMg aW5zZXJ0IHNvbWUgcm93cyBvbiBwcm9tb3RlZCBzdGFuZGJ5Ciskbm9kZV9zdGFuZGJ5LT5z YWZlX3BzcWwoJ3Rlc3RkYicsCisJcXFbSU5TRVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkp IFNFTEVDVCBzLCBzOjp0ZXh0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDUsNykgcztdCispOwor CisKKyRleHBlY3RlZCA9IHF7QkVHSU4KK3RhYmxlIHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJ TlNFUlQ6IHhbaW50ZWdlcl06MSB5W3RleHRdOicxJwordGFibGUgcHVibGljLmRlY29kaW5n X3Rlc3Q6IElOU0VSVDogeFtpbnRlZ2VyXToyIHlbdGV4dF06JzInCit0YWJsZSBwdWJsaWMu ZGVjb2RpbmdfdGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjMgeVt0ZXh0XTonMycKK3RhYmxl IHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06NCB5W3RleHRdOic0 JworQ09NTUlUCitCRUdJTgordGFibGUgcHVibGljLmRlY29kaW5nX3Rlc3Q6IElOU0VSVDog eFtpbnRlZ2VyXTo1IHlbdGV4dF06JzUnCit0YWJsZSBwdWJsaWMuZGVjb2RpbmdfdGVzdDog SU5TRVJUOiB4W2ludGVnZXJdOjYgeVt0ZXh0XTonNicKK3RhYmxlIHB1YmxpYy5kZWNvZGlu Z190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06NyB5W3RleHRdOic3JworQ09NTUlUfTsKKwor IyBjaGVjayB0aGF0IHdlIGFyZSBkZWNvZGluZyBwcmUgYW5kIHBvc3QgcHJvbW90aW9uIGlu c2VydGVkIHJvd3MKKyRzdGRvdXRfc3FsID0gJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCd0 ZXN0ZGInLAorCXFxW1NFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9zbG90X3BlZWtfY2hh bmdlcygnYWN0aXZlc2xvdCcsIE5VTEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdz a2lwLWVtcHR5LXhhY3RzJywgJzEnKTtdCispOworCitpcygkc3Rkb3V0X3NxbCwgJGV4cGVj dGVkLCAnZ290IGV4cGVjdGVkIG91dHB1dCBmcm9tIFNRTCBkZWNvZGluZyBzZXNzaW9uIG9u IHByb21vdGVkIHN0YW5kYnknKTsKLS0gCjIuMzQuMQoK --------------GsSZ4kgNjkBi9v4p9BXYo4NX Content-Type: text/plain; charset=UTF-8; name="v30-0003-Allow-logical-decoding-on-standby.patch" Content-Disposition: attachment; filename="v30-0003-Allow-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSAyNjU0OTMyYzNkMDJkNmU3YTgyMmFmOWQ3Nzc3N2NlN2Y2NGRiYzkzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogU2F0LCAxMCBEZWMgMjAyMiAwNzoyMDozMiArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMwIDMvNl0gQWxsb3cgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5LgoKQWxsb3cg YSBsb2dpY2FsIHNsb3QgdG8gYmUgY3JlYXRlZCBvbiBzdGFuZGJ5LiBSZXN0cmljdCBpdHMg dXNhZ2UKb3IgaXRzIGNyZWF0aW9uIGlmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIGxlc3Mg dGhhbiBsb2dpY2FsLgpEdXJpbmcgc2xvdCBjcmVhdGlvbiwgaXQncyByZXN0YXJ0X2xzbiBp cyBzZXQgdG8gdGhlIGxhc3QgcmVwbGF5ZWQKTFNOLiBFZmZlY3RpdmVseSwgYSBsb2dpY2Fs IHNsb3QgY3JlYXRpb24gb24gc3RhbmRieSB3YWl0cyBmb3IgYW4KeGxfcnVubmluZ194YWN0 IHJlY29yZCB0byBhcnJpdmUgZnJvbSBwcmltYXJ5LiBDb25mbGljdGluZyBzbG90cwp3b3Vs ZCBiZSBoYW5kbGVkIGluIG5leHQgY29tbWl0cy4KCkF1dGhvcjogQW5kcmVzIEZyZXVuZCAo aW4gYW4gb2xkZXIgdmVyc2lvbiksIEFtaXQgS2hhbmRla2FyLCBCZXJ0cmFuZCBEcm91dm90 ClJldmlld2VkLUJ5OiBCZXJ0cmFuZCBEcm91dm90LCBBbmRyZXMgRnJldW5kLCBSb2JlcnQg SGFhcywgRmFicml6aW8gZGUgUm95ZXMgTWVsbG8KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9nLmMgICAgICAgICB8IDExICsrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvZGVjb2RlLmMgIHwgMjIgKysrKysrLQogc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9sb2dpY2FsLmMgfCAzNyArKysrKysrLS0tLS0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Nsb3QuYyAgICAgICAgICAgIHwgNzMgKysrKysrKysrKysrKysrLS0t LS0tLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jICAgICAgIHwgMjcg KysrKystLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oICAgICAgICAgICAgICAgICB8 ICAxICsKIDYgZmlsZXMgY2hhbmdlZCwgMTE4IGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9u cygtKQogICA0LjUlIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtLwogIDM2LjYlIHNyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvCiAgNTcuOSUgc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IGU0NTAzZmIzNmQu LjAwZjAyMTk0MmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hs b2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAgLTQ0NzEs NiArNDQ3MSwxNyBAQCBMb2NhbFByb2Nlc3NDb250cm9sRmlsZShib29sIHJlc2V0KQogCVJl YWRDb250cm9sRmlsZSgpOwogfQogCisvKgorICogR2V0IHRoZSB3YWxfbGV2ZWwgZnJvbSB0 aGUgY29udHJvbCBmaWxlLiBGb3IgYSBzdGFuZGJ5LCB0aGlzIHZhbHVlIHNob3VsZCBiZQor ICogY29uc2lkZXJlZCBhcyBpdHMgYWN0aXZlIHdhbF9sZXZlbCwgYmVjYXVzZSBpdCBtYXkg YmUgZGlmZmVyZW50IGZyb20gd2hhdAorICogd2FzIG9yaWdpbmFsbHkgY29uZmlndXJlZCBv biBzdGFuZGJ5LgorICovCitXYWxMZXZlbAorR2V0QWN0aXZlV2FsTGV2ZWxPblN0YW5kYnko dm9pZCkKK3sKKwlyZXR1cm4gQ29udHJvbEZpbGUtPndhbF9sZXZlbDsKK30KKwogLyoKICAq IEluaXRpYWxpemF0aW9uIG9mIHNoYXJlZCBtZW1vcnkgZm9yIFhMT0cKICAqLwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKaW5kZXggMmNjMGFjOWViMC4u YzIxMDcyMWFiMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9kZWNvZGUuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29k ZS5jCkBAIC0xNTIsMTEgKzE1MiwzMSBAQCB4bG9nX2RlY29kZShMb2dpY2FsRGVjb2RpbmdD b250ZXh0ICpjdHgsIFhMb2dSZWNvcmRCdWZmZXIgKmJ1ZikKIAkJCSAqIGNhbiByZXN0YXJ0 IGZyb20gdGhlcmUuCiAJCQkgKi8KIAkJCWJyZWFrOworCQljYXNlIFhMT0dfUEFSQU1FVEVS X0NIQU5HRToKKwkJeworCQkJeGxfcGFyYW1ldGVyX2NoYW5nZSAqeGxyZWMgPQorCQkJCSh4 bF9wYXJhbWV0ZXJfY2hhbmdlICopIFhMb2dSZWNHZXREYXRhKGJ1Zi0+cmVjb3JkKTsKKwor CQkJLyoKKwkJCSAqIElmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIHJlZHVjZWQgdG8gbGVz cyB0aGFuIGxvZ2ljYWwsIHRoZW4gd2UKKwkJCSAqIHdhbnQgdG8gcHJldmVudCBleGlzdGlu ZyBsb2dpY2FsIHNsb3RzIGZyb20gYmVpbmcgdXNlZC4KKwkJCSAqIEV4aXN0aW5nIGxvZ2lj YWwgc2xvdHMgb24gc3RhbmRieSBnZXQgaW52YWxpZGF0ZWQgd2hlbiB0aGlzIFdBTAorCQkJ ICogcmVjb3JkIGlzIHJlcGxheWVkOyBhbmQgZnVydGhlciwgc2xvdCBjcmVhdGlvbiBmYWls cyB3aGVuIHRoZQorCQkJICogd2FsIGxldmVsIGlzIG5vdCBzdWZmaWNpZW50OyBidXQgYWxs IHRoZXNlIG9wZXJhdGlvbnMgYXJlIG5vdAorCQkJICogc3luY2hyb25pemVkLCBzbyBhIGxv Z2ljYWwgc2xvdCBtYXkgY3JlZXAgaW4gd2hpbGUgdGhlIHdhbF9sZXZlbAorCQkJICogaXMg YmVpbmcgcmVkdWNlZC4gSGVuY2UgdGhpcyBleHRyYSBjaGVjay4KKwkJCSAqLworCQkJaWYg KHhscmVjLT53YWxfbGV2ZWwgPCBXQUxfTEVWRUxfTE9HSUNBTCkKKwkJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lU RV9TVEFURSksCisJCQkJCQkgZXJybXNnKCJsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkg cmVxdWlyZXMgIgorCQkJCQkJCQkid2FsX2xldmVsIHRvIGJlIGF0IGxlYXN0IGxvZ2ljYWwg b24gbWFzdGVyIikpKTsKKwkJCWJyZWFrOworCQl9CiAJCWNhc2UgWExPR19OT09QOgogCQlj YXNlIFhMT0dfTkVYVE9JRDoKIAkJY2FzZSBYTE9HX1NXSVRDSDoKIAkJY2FzZSBYTE9HX0JB Q0tVUF9FTkQ6Ci0JCWNhc2UgWExPR19QQVJBTUVURVJfQ0hBTkdFOgogCQljYXNlIFhMT0df UkVTVE9SRV9QT0lOVDoKIAkJY2FzZSBYTE9HX0ZQV19DSEFOR0U6CiAJCWNhc2UgWExPR19G UElfRk9SX0hJTlQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL2xvZ2ljYWwuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNh bC5jCmluZGV4IDYyNWE3ZjQyNzMuLmE5NTY3ZjJkOGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCisrKyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCkBAIC0xMTksMjMgKzExOSwyMiBAQCBDaGVj a0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cyh2b2lkKQogCQkJCShlcnJjb2RlKEVSUkNP REVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCSBlcnJtc2coImxv Z2ljYWwgZGVjb2RpbmcgcmVxdWlyZXMgYSBkYXRhYmFzZSBjb25uZWN0aW9uIikpKTsKIAot CS8qIC0tLS0KLQkgKiBUT0RPOiBXZSBnb3QgdG8gY2hhbmdlIHRoYXQgc29tZWRheSBzb29u Li4uCi0JICoKLQkgKiBUaGVyZSdzIGJhc2ljYWxseSB0aHJlZSB0aGluZ3MgbWlzc2luZyB0 byBhbGxvdyB0aGlzOgotCSAqIDEpIFdlIG5lZWQgdG8gYmUgYWJsZSB0byBjb3JyZWN0bHkg YW5kIHF1aWNrbHkgaWRlbnRpZnkgdGhlIHRpbWVsaW5lIGEKLQkgKgkgIExTTiBiZWxvbmdz IHRvCi0JICogMikgV2UgbmVlZCB0byBmb3JjZSBob3Rfc3RhbmRieV9mZWVkYmFjayB0byBi ZSBlbmFibGVkIGF0IGFsbCB0aW1lcyBzbwotCSAqCSAgdGhlIHByaW1hcnkgY2Fubm90IHJl bW92ZSByb3dzIHdlIG5lZWQuCi0JICogMykgc3VwcG9ydCBkcm9wcGluZyByZXBsaWNhdGlv biBzbG90cyByZWZlcnJpbmcgdG8gYSBkYXRhYmFzZSwgaW4KLQkgKgkgIGRiYXNlX3JlZG8u IFRoZXJlIGNhbid0IGJlIGFueSBhY3RpdmUgb25lcyBkdWUgdG8gSFMgcmVjb3ZlcnkKLQkg KgkgIGNvbmZsaWN0cywgc28gdGhhdCBzaG91bGQgYmUgcmVsYXRpdmVseSBlYXN5LgotCSAq IC0tLS0KLQkgKi8KIAlpZiAoUmVjb3ZlcnlJblByb2dyZXNzKCkpCi0JCWVyZXBvcnQoRVJS T1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJ CSBlcnJtc2coImxvZ2ljYWwgZGVjb2RpbmcgY2Fubm90IGJlIHVzZWQgd2hpbGUgaW4gcmVj b3ZlcnkiKSkpOworCXsKKwkJLyoKKwkJICogVGhpcyBjaGVjayBtYXkgaGF2ZSByYWNlIGNv bmRpdGlvbnMsIGJ1dCB3aGVuZXZlcgorCQkgKiBYTE9HX1BBUkFNRVRFUl9DSEFOR0UgaW5k aWNhdGVzIHRoYXQgd2FsX2xldmVsIGhhcyBjaGFuZ2VkLCB3ZQorCQkgKiB2ZXJpZnkgdGhh dCB0aGVyZSBhcmUgbm8gZXhpc3RpbmcgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cy4gQW5k IHRvCisJCSAqIGF2b2lkIHJhY2VzIGFyb3VuZCBjcmVhdGluZyBhIG5ldyBzbG90LAorCQkg KiBDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cygpIGlzIGNhbGxlZCBvbmNlIGJl Zm9yZSBjcmVhdGluZworCQkgKiB0aGUgc2xvdCwgYW5kIG9uY2Ugd2hlbiBsb2dpY2FsIGRl Y29kaW5nIGlzIGluaXRpYWxseSBzdGFydGluZyB1cC4KKwkJICovCisJCWlmIChHZXRBY3Rp dmVXYWxMZXZlbE9uU3RhbmRieSgpIDwgV0FMX0xFVkVMX0xPR0lDQUwpCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlT SVRFX1NUQVRFKSwKKwkJCQkJIGVycm1zZygibG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5 IHJlcXVpcmVzICIKKwkJCQkJCQkid2FsX2xldmVsIHRvIGJlIGF0IGxlYXN0IGxvZ2ljYWwg b24gbWFzdGVyIikpKTsKKwl9CiB9CiAKIC8qCkBAIC0zMzEsNiArMzMwLDEyIEBAIENyZWF0 ZUluaXREZWNvZGluZ0NvbnRleHQoY29uc3QgY2hhciAqcGx1Z2luLAogCUxvZ2ljYWxEZWNv ZGluZ0NvbnRleHQgKmN0eDsKIAlNZW1vcnlDb250ZXh0IG9sZF9jb250ZXh0OwogCisJLyoK KwkgKiBPbiBzdGFuZGJ5LCB0aGlzIGNoZWNrIGlzIGFsc28gcmVxdWlyZWQgd2hpbGUgY3Jl YXRpbmcgdGhlIHNsb3QuIENoZWNrCisJICogdGhlIGNvbW1lbnRzIGluIHRoaXMgZnVuY3Rp b24uCisJICovCisJQ2hlY2tMb2dpY2FsRGVjb2RpbmdSZXF1aXJlbWVudHMoKTsKKwogCS8q IHNob3J0ZXIgbGluZXMuLi4gKi8KIAlzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCA2YTRlMmNkMTliLi5mNTU0ZGFjNmZkIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAic3Rv cmFnZS9wcm9jLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jYXJyYXkuaCIKICNpbmNsdWRl ICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgImFjY2Vzcy94bG9ncmVjb3ZlcnkuaCIK IAogLyoKICAqIFJlcGxpY2F0aW9uIHNsb3Qgb24tZGlzayBkYXRhIHN0cnVjdHVyZS4KQEAg LTExNzUsMzcgKzExNzYsNDYgQEAgUmVwbGljYXRpb25TbG90UmVzZXJ2ZVdhbCh2b2lkKQog CQkvKgogCQkgKiBGb3IgbG9naWNhbCBzbG90cyBsb2cgYSBzdGFuZGJ5IHNuYXBzaG90IGFu ZCBzdGFydCBsb2dpY2FsIGRlY29kaW5nCiAJCSAqIGF0IGV4YWN0bHkgdGhhdCBwb3NpdGlv bi4gVGhhdCBhbGxvd3MgdGhlIHNsb3QgdG8gc3RhcnQgdXAgbW9yZQotCQkgKiBxdWlja2x5 LgorCQkgKiBxdWlja2x5LiBCdXQgb24gYSBzdGFuZGJ5IHdlIGNhbm5vdCBkbyBXQUwgd3Jp dGVzLCBzbyBqdXN0IHVzZSB0aGUKKwkJICogcmVwbGF5IHBvaW50ZXI7IGVmZmVjdGl2ZWx5 LCBhbiBhdHRlbXB0IHRvIGNyZWF0ZSBhIGxvZ2ljYWwgc2xvdCBvbgorCQkgKiBzdGFuZGJ5 IHdpbGwgY2F1c2UgaXQgdG8gd2FpdCBmb3IgYW4geGxfcnVubmluZ194YWN0IHJlY29yZCB0 byBiZQorCQkgKiBsb2dnZWQgaW5kZXBlbmRlbnRseSBvbiB0aGUgcHJpbWFyeSwgc28gdGhh dCBhIHNuYXBzaG90IGNhbiBiZSBidWlsdAorCQkgKiB1c2luZyB0aGUgcmVjb3JkLgogCQkg KgotCQkgKiBUaGF0J3Mgbm90IG5lZWRlZCAob3IgaW5kZWVkIGhlbHBmdWwpIGZvciBwaHlz aWNhbCBzbG90cyBhcyB0aGV5J2xsCi0JCSAqIHN0YXJ0IHJlcGxheSBhdCB0aGUgbGFzdCBs b2dnZWQgY2hlY2twb2ludCBhbnl3YXkuIEluc3RlYWQgcmV0dXJuCi0JCSAqIHRoZSBsb2Nh dGlvbiBvZiB0aGUgbGFzdCByZWRvIExTTi4gV2hpbGUgdGhhdCBzbGlnaHRseSBpbmNyZWFz ZXMKLQkJICogdGhlIGNoYW5jZSB0aGF0IHdlIGhhdmUgdG8gcmV0cnksIGl0J3Mgd2hlcmUg YSBiYXNlIGJhY2t1cCBoYXMgdG8KLQkJICogc3RhcnQgcmVwbGF5IGF0LgorCQkgKiBOb25l IG9mIHRoaXMgaXMgbmVlZGVkIChvciBpbmRlZWQgaGVscGZ1bCkgZm9yIHBoeXNpY2FsIHNs b3RzIGFzCisJCSAqIHRoZXknbGwgc3RhcnQgcmVwbGF5IGF0IHRoZSBsYXN0IGxvZ2dlZCBj aGVja3BvaW50IGFueXdheS4gSW5zdGVhZAorCQkgKiByZXR1cm4gdGhlIGxvY2F0aW9uIG9m IHRoZSBsYXN0IHJlZG8gTFNOLiBXaGlsZSB0aGF0IHNsaWdodGx5CisJCSAqIGluY3JlYXNl cyB0aGUgY2hhbmNlIHRoYXQgd2UgaGF2ZSB0byByZXRyeSwgaXQncyB3aGVyZSBhIGJhc2Ug YmFja3VwCisJCSAqIGhhcyB0byBzdGFydCByZXBsYXkgYXQuCiAJCSAqLwotCQlpZiAoIVJl Y292ZXJ5SW5Qcm9ncmVzcygpICYmIFNsb3RJc0xvZ2ljYWwoc2xvdCkpCisJCWlmIChTbG90 SXNQaHlzaWNhbChzbG90KSkKKwkJCXJlc3RhcnRfbHNuID0gR2V0UmVkb1JlY1B0cigpOwor CQllbHNlIGlmIChSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKIAkJewotCQkJWExvZ1JlY1B0cglm bHVzaHB0cjsKLQotCQkJLyogc3RhcnQgYXQgY3VycmVudCBpbnNlcnQgcG9zaXRpb24gKi8K LQkJCXJlc3RhcnRfbHNuID0gR2V0WExvZ0luc2VydFJlY1B0cigpOwotCQkJU3BpbkxvY2tB Y3F1aXJlKCZzbG90LT5tdXRleCk7Ci0JCQlzbG90LT5kYXRhLnJlc3RhcnRfbHNuID0gcmVz dGFydF9sc247Ci0JCQlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKLQotCQkJLyog bWFrZSBzdXJlIHdlIGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIHN0YXJ0ICovCi0JCQlm bHVzaHB0ciA9IExvZ1N0YW5kYnlTbmFwc2hvdCgpOwotCi0JCQkvKiBhbmQgbWFrZSBzdXJl IGl0J3MgZnN5bmNlZCB0byBkaXNrICovCi0JCQlYTG9nRmx1c2goZmx1c2hwdHIpOworCQkJ cmVzdGFydF9sc24gPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwpOworCQkJLyoKKwkJCSAq IFJlcGxheSBwb2ludGVyIG1heSBwb2ludCBvbmUgcGFzdCB0aGUgZW5kIG9mIHRoZSByZWNv cmQuIElmIHRoYXQKKwkJCSAqIGlzIGEgWExPRyBwYWdlIGJvdW5kYXJ5LCBpdCB3aWxsIG5v dCBiZSBhIHZhbGlkIExTTiBmb3IgdGhlCisJCQkgKiBzdGFydCBvZiBhIHJlY29yZCwgc28g YnVtcCBpdCB1cCBwYXN0IHRoZSBwYWdlIGhlYWRlci4KKwkJCSAqLworCQkJaWYgKCFYUmVj T2ZmSXNWYWxpZChyZXN0YXJ0X2xzbikpCisJCQl7CisJCQkJaWYgKHJlc3RhcnRfbHNuICUg WExPR19CTENLU1ogIT0gMCkKKwkJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgcmVwbGF5IHBv aW50ZXIiKTsKKworCQkJCS8qIEZvciB0aGUgZmlyc3QgcGFnZSBvZiBhIHNlZ21lbnQgZmls ZSwgaXQncyBhIGxvbmcgaGVhZGVyICovCisJCQkJaWYgKFhMb2dTZWdtZW50T2Zmc2V0KHJl c3RhcnRfbHNuLCB3YWxfc2VnbWVudF9zaXplKSA9PSAwKQorCQkJCQlyZXN0YXJ0X2xzbiAr PSBTaXplT2ZYTG9nTG9uZ1BIRDsKKwkJCQllbHNlCisJCQkJCXJlc3RhcnRfbHNuICs9IFNp emVPZlhMb2dTaG9ydFBIRDsKKwkJCX0KIAkJfQogCQllbHNlCi0JCXsKLQkJCXJlc3RhcnRf bHNuID0gR2V0UmVkb1JlY1B0cigpOwotCQkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRl eCk7Ci0JCQlzbG90LT5kYXRhLnJlc3RhcnRfbHNuID0gcmVzdGFydF9sc247Ci0JCQlTcGlu TG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKLQkJfQorCQkJcmVzdGFydF9sc24gPSBHZXRY TG9nSW5zZXJ0UmVjUHRyKCk7CisKKwkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7 CisJCXNsb3QtPmRhdGEucmVzdGFydF9sc24gPSByZXN0YXJ0X2xzbjsKKwkJU3BpbkxvY2tS ZWxlYXNlKCZzbG90LT5tdXRleCk7CiAKIAkJLyogcHJldmVudCBXQUwgcmVtb3ZhbCBhcyBm YXN0IGFzIHBvc3NpYmxlICovCiAJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRM U04oKTsKQEAgLTEyMjEsNiArMTIzMSwxNyBAQCBSZXBsaWNhdGlvblNsb3RSZXNlcnZlV2Fs KHZvaWQpCiAJCWlmIChYTG9nR2V0TGFzdFJlbW92ZWRTZWdubygpIDwgc2Vnbm8pCiAJCQli cmVhazsKIAl9CisKKwlpZiAoIVJlY292ZXJ5SW5Qcm9ncmVzcygpICYmIFNsb3RJc0xvZ2lj YWwoc2xvdCkpCisJeworCQlYTG9nUmVjUHRyCWZsdXNocHRyOworCisJCS8qIG1ha2Ugc3Vy ZSB3ZSBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBzdGFydCAqLworCQlmbHVzaHB0ciA9 IExvZ1N0YW5kYnlTbmFwc2hvdCgpOworCisJCS8qIGFuZCBtYWtlIHN1cmUgaXQncyBmc3lu Y2VkIHRvIGRpc2sgKi8KKwkJWExvZ0ZsdXNoKGZsdXNocHRyKTsKKwl9CiB9CiAKIC8qCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IDY0ZmJkNTJlMzQuLjk2NjJl MzE2YzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5j CisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC05MDYsMTQg KzkwNiwxOCBAQCBsb2dpY2FsX3JlYWRfeGxvZ19wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqc3Rh dGUsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwgaW50IHJlcQogCWludAkJCWNvdW50Owog CVdBTFJlYWRFcnJvciBlcnJpbmZvOwogCVhMb2dTZWdObwlzZWdubzsKLQlUaW1lTGluZUlE CWN1cnJUTEkgPSBHZXRXQUxJbnNlcnRpb25UaW1lTGluZSgpOworCVRpbWVMaW5lSUQJY3Vy clRMSTsKIAogCS8qCi0JICogU2luY2UgbG9naWNhbCBkZWNvZGluZyBpcyBvbmx5IHBlcm1p dHRlZCBvbiBhIHByaW1hcnkgc2VydmVyLCB3ZSBrbm93Ci0JICogdGhhdCB0aGUgY3VycmVu dCB0aW1lbGluZSBJRCBjYW4ndCBiZSBjaGFuZ2luZyBhbnkgbW9yZS4gSWYgd2UgZGlkIHRo aXMKLQkgKiBvbiBhIHN0YW5kYnksIHdlJ2QgaGF2ZSB0byB3b3JyeSBhYm91dCB0aGUgdmFs dWVzIHdlIGNvbXB1dGUgaGVyZQotCSAqIGJlY29taW5nIGludmFsaWQgZHVlIHRvIGEgcHJv bW90aW9uIG9yIHRpbWVsaW5lIGNoYW5nZS4KKwkgKiBTaW5jZSBsb2dpY2FsIGRlY29kaW5n IGlzIGFsc28gcGVybWl0dGVkIG9uIGEgc3RhbmRieSBzZXJ2ZXIsIHdlIG5lZWQKKwkgKiB0 byBjaGVjayBpZiB0aGUgc2VydmVyIGlzIGluIHJlY292ZXJ5IHRvIGRlY2lkZSBob3cgdG8g Z2V0IHRoZSBjdXJyZW50CisJICogdGltZWxpbmUgSUQgKHNvIHRoYXQgaXQgYWxzbyBjb3Zl ciB0aGUgcHJvbW90aW9uIG9yIHRpbWVsaW5lIGNoYW5nZSBjYXNlcykuCiAJICovCisJaWYg KCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKKwkJY3VyclRMSSA9IEdldFdBTEluc2VydGlvblRp bWVMaW5lKCk7CisJZWxzZQorCQlHZXRYTG9nUmVwbGF5UmVjUHRyKCZjdXJyVExJKTsKKwog CVhMb2dSZWFkRGV0ZXJtaW5lVGltZWxpbmUoc3RhdGUsIHRhcmdldFBhZ2VQdHIsIHJlcUxl biwgY3VyclRMSSk7CiAJc2VuZFRpbWVMaW5lSXNIaXN0b3JpYyA9IChzdGF0ZS0+Y3VyclRM SSAhPSBjdXJyVExJKTsKIAlzZW5kVGltZUxpbmUgPSBzdGF0ZS0+Y3VyclRMSTsKQEAgLTMw NzQsMTAgKzMwNzgsMTIgQEAgWExvZ1NlbmRMb2dpY2FsKHZvaWQpCiAJICogSWYgZmlyc3Qg dGltZSB0aHJvdWdoIGluIHRoaXMgc2Vzc2lvbiwgaW5pdGlhbGl6ZSBmbHVzaFB0ci4gIE90 aGVyd2lzZSwKIAkgKiB3ZSBvbmx5IG5lZWQgdG8gdXBkYXRlIGZsdXNoUHRyIGlmIEVuZFJl Y1B0ciBpcyBwYXN0IGl0LgogCSAqLwotCWlmIChmbHVzaFB0ciA9PSBJbnZhbGlkWExvZ1Jl Y1B0cikKLQkJZmx1c2hQdHIgPSBHZXRGbHVzaFJlY1B0cihOVUxMKTsKLQllbHNlIGlmIChs b2dpY2FsX2RlY29kaW5nX2N0eC0+cmVhZGVyLT5FbmRSZWNQdHIgPj0gZmx1c2hQdHIpCi0J CWZsdXNoUHRyID0gR2V0Rmx1c2hSZWNQdHIoTlVMTCk7CisJaWYgKGZsdXNoUHRyID09IElu dmFsaWRYTG9nUmVjUHRyIHx8CisJCWxvZ2ljYWxfZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVu ZFJlY1B0ciA+PSBmbHVzaFB0cikKKwl7CisJCWZsdXNoUHRyID0gKGFtX2Nhc2NhZGluZ193 YWxzZW5kZXIgPworCQkJCQlHZXRTdGFuZGJ5Rmx1c2hSZWNQdHIoTlVMTCkgOiBHZXRGbHVz aFJlY1B0cihOVUxMKSk7CisJfQogCiAJLyogSWYgRW5kUmVjUHRyIGlzIHN0aWxsIHBhc3Qg b3VyIGZsdXNoUHRyLCBpdCBtZWFucyB3ZSBjYXVnaHQgdXAuICovCiAJaWYgKGxvZ2ljYWxf ZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVuZFJlY1B0ciA+PSBmbHVzaFB0cikKQEAgLTMxNjgs NyArMzE3NCw4IEBAIEdldFN0YW5kYnlGbHVzaFJlY1B0cihUaW1lTGluZUlEICp0bGkpCiAJ cmVjZWl2ZVB0ciA9IEdldFdhbFJjdkZsdXNoUmVjUHRyKE5VTEwsICZyZWNlaXZlVExJKTsK IAlyZXBsYXlQdHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKCZyZXBsYXlUTEkpOwogCi0JKnRs aSA9IHJlcGxheVRMSTsKKwlpZiAodGxpKQorCQkqdGxpID0gcmVwbGF5VExJOwogCiAJcmVz dWx0ID0gcmVwbGF5UHRyOwogCWlmIChyZWNlaXZlVExJID09IHJlcGxheVRMSSAmJiByZWNl aXZlUHRyID4gcmVwbGF5UHRyKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hs b2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKaW5kZXggMWZiZDQ4ZmJkYS4uMDI3 ZTE1NWU4ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaAorKysgYi9z cmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCkBAIC0yMzAsNiArMjMwLDcgQEAgZXh0ZXJuIHZv aWQgWExPR1NobWVtSW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIEJvb3RTdHJhcFhMT0codm9p ZCk7CiBleHRlcm4gdm9pZCBJbml0aWFsaXplV2FsQ29uc2lzdGVuY3lDaGVja2luZyh2b2lk KTsKIGV4dGVybiB2b2lkIExvY2FsUHJvY2Vzc0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpOwor ZXh0ZXJuIFdhbExldmVsIEdldEFjdGl2ZVdhbExldmVsT25TdGFuZGJ5KHZvaWQpOwogZXh0 ZXJuIHZvaWQgU3RhcnR1cFhMT0codm9pZCk7CiBleHRlcm4gdm9pZCBTaHV0ZG93blhMT0co aW50IGNvZGUsIERhdHVtIGFyZyk7CiBleHRlcm4gdm9pZCBDcmVhdGVDaGVja1BvaW50KGlu dCBmbGFncyk7Ci0tIAoyLjM0LjEKCg== --------------GsSZ4kgNjkBi9v4p9BXYo4NX Content-Type: text/plain; charset=UTF-8; name="v30-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Disposition: attachment; filename="v30-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSA5ZTk1ZmJlYWFiOTMxZDMwMjdlZDk5ZWJkZTNhMDdjOGFiYWM1NzFjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogU2F0LCAxMCBEZWMgMjAyMiAwNzoxOTo0MSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMwIDIvNl0gSGFuZGxlIGxvZ2ljYWwgc2xvdCBjb25mbGljdHMgb24gc3RhbmRieS4K CkR1cmluZyBXQUwgcmVwbGF5IG9uIHN0YW5kYnksIHdoZW4gc2xvdCBjb25mbGljdCBpcyBp ZGVudGlmaWVkLAppbnZhbGlkYXRlIHN1Y2ggc2xvdHMuIEFsc28gZG8gdGhlIHNhbWUgdGhp bmcgaWYgd2FsX2xldmVsIG9uIG1hc3RlcgppcyByZWR1Y2VkIHRvIGJlbG93IGxvZ2ljYWwg YW5kIHRoZXJlIGFyZSBleGlzdGluZyBsb2dpY2FsIHNsb3RzCm9uIHN0YW5kYnkuIEludHJv ZHVjZSBhIG5ldyBQcm9jU2lnbmFsUmVhc29uIHZhbHVlIGZvciBzbG90CmNvbmZsaWN0IHJl Y292ZXJ5LiBBcnJhbmdlIGZvciBhIG5ldyBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cyBm aWVsZDoKY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90LgoKQXV0aG9yOiBBbmRyZXMgRnJldW5k IChpbiBhbiBvbGRlciB2ZXJzaW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2 b3QKUmV2aWV3ZWQtQnk6IEJlcnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVy dCBIYWFzLCBGYWJyaXppbyBkZSBSb3llcyBNZWxsbwotLS0KIGRvYy9zcmMvc2dtbC9tb25p dG9yaW5nLnNnbWwgICAgICAgICAgICAgICAgICB8ICAxMSArCiBzcmMvYmFja2VuZC9hY2Nl c3MvZ2lzdC9naXN0eGxvZy5jICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvYWNj ZXNzL2hhc2gvaGFzaF94bG9nLmMgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idHhsb2cuYyAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQv YWNjZXNzL3NwZ2lzdC9zcGd4bG9nLmMgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgICAgICAgICAgICB8ICAxMyArKwogc3JjL2JhY2tl bmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAgIHwgICAzICstCiAuLi4vcmVw bGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYyAgICAgICAgfCAgIDcgKy0KIHNyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyAgICAgICAgICAgICAgICB8IDIwOSArKysrKysr KysrKysrKysrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jICAgICAg ICAgICB8ICAgOCArCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyAgICAg ICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jICAg ICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAgICAg ICAgICAgICB8ICAxMyArLQogc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAg ICAgICAgICAgIHwgIDIyICsrCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRf ZGF0YWJhc2UuYyAgfCAgIDQgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNz LmMgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQg ICAgICAgICAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9wZ3N0YXQuaCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5o ICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25h bC5oICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnku aCAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y dWxlcy5vdXQgICAgICAgICAgIHwgICAzICstCiAyMyBmaWxlcyBjaGFuZ2VkLCAzMTggaW5z ZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKICAgMy44JSBkb2Mvc3JjL3NnbWwvCiAgIDUu MSUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgIDQuNSUgc3JjL2JhY2tlbmQvYWNj ZXNzLwogICAzLjglIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvCiAgNTcuNCUg c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vCiAgIDcuMyUgc3JjL2JhY2tlbmQvc3RvcmFnZS9p cGMvCiAgIDcuOCUgc3JjL2JhY2tlbmQvdGNvcC8KICAgMy4zJSBzcmMvYmFja2VuZC8KICAg NS45JSBzcmMvaW5jbHVkZS8KCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmlu Zy5zZ21sIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAppbmRleCAxMWE4ZWJlNWVj Li4xOWI1MDk2MGVjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKQEAgLTQzMTcsNiArNDMxNywx NyBAQCBTRUxFQ1QgcGlkLCB3YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQgRlJPTSBwZ19z dGF0X2FjdGl2aXR5IFdIRVJFIHdhaXRfZXZlbnQgaQogICAgICAgIGRlYWRsb2NrcwogICAg ICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jb25mbF9hY3RpdmVfbG9naWNhbHNs b3Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBOdW1iZXIgb2YgYWN0aXZlIGxvZ2ljYWwgc2xvdHMgaW4g dGhpcyBkYXRhYmFzZSB0aGF0IGhhdmUgYmVlbgorICAgICAgIGludmFsaWRhdGVkIGJlY2F1 c2UgdGhleSBjb25mbGljdCB3aXRoIHJlY292ZXJ5IChub3RlIHRoYXQgaW5hY3RpdmUgb25l cworICAgICAgIGFyZSBhbHNvIGludmFsaWRhdGVkIGJ1dCBkbyBub3QgaW5jcmVtZW50IHRo aXMgY291bnRlcikKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8 L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3Qv Z2lzdHhsb2cuYwppbmRleCBiNzQ3OTAwYTQ1Li43NTgxODI2NmE2IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9naXN0L2dpc3R4bG9nLmMKQEAgLTE5Niw2ICsxOTYsNyBAQCBnaXN0UmVkb0RlbGV0 ZVJlY29yZChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJWExvZ1JlY0dldEJsb2NrVGFn KHJlY29yZCwgMCwgJnJsb2NhdG9yLCBOVUxMLCBOVUxMKTsKIAogCQlSZXNvbHZlUmVjb3Zl cnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bGRhdGEtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9u LAorCQkJCQkJCQkJCQl4bGRhdGEtPm9uQ2F0YWxvZ0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNv ZGluZywKIAkJCQkJCQkJCQkJcmxvY2F0b3IpOwogCX0KIApAQCAtMzk2LDYgKzM5Nyw3IEBA IGdpc3RSZWRvUGFnZVJldXNlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCSAqLwogCWlm IChJbkhvdFN0YW5kYnkpCiAJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90 RnVsbFhpZCh4bHJlYy0+c25hcHNob3RDb25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCQkg ICB4bHJlYy0+b25DYXRhbG9nQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nLAogCQkJCQkJ CQkJCQkJICAgeGxyZWMtPmxvY2F0b3IpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGFzaC9oYXNoX3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hh c2hfeGxvZy5jCmluZGV4IGI0NTI2OTdhMmYuLjYxNTY1ZjkwNWQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oYXNoL2hhc2hfeGxvZy5jCkBAIC0xMDAxLDYgKzEwMDEsNyBAQCBoYXNoX3hsb2df dmFjdXVtX29uZV9wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCVhMb2dSZWNH ZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybG9jYXRvciwgTlVMTCwgTlVMTCk7CiAJCVJlc29s dmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+c25hcHNob3RDb25mbGlj dEhvcml6b24sCisJCQkJCQkJCQkJCXhsZGF0YS0+b25DYXRhbG9nQWNjZXNzaWJsZUluTG9n aWNhbERlY29kaW5nLAogCQkJCQkJCQkJCQlybG9jYXRvcik7CiAJfQogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbS5jCmluZGV4IGI0MmE2YmZhNjEuLmE3OWYwMTAyODYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBAIC04Njk2LDYgKzg2OTYsNyBAQCBoZWFwX3hsb2df cHJ1bmUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJICovCiAJaWYgKEluSG90U3RhbmRi eSkKIAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPnNuYXBz aG90Q29uZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJCQl4bHJlYy0+b25DYXRhbG9nQWNjZXNz aWJsZUluTG9naWNhbERlY29kaW5nLAogCQkJCQkJCQkJCQlybG9jYXRvcik7CiAKIAkvKgpA QCAtODg2NSw2ICs4ODY2LDcgQEAgaGVhcF94bG9nX3Zpc2libGUoWExvZ1JlYWRlclN0YXRl ICpyZWNvcmQpCiAJICovCiAJaWYgKEluSG90U3RhbmRieSkKIAkJUmVzb2x2ZVJlY292ZXJ5 Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAor CQkJCQkJCQkJCQl4bHJlYy0+b25DYXRhbG9nQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5n LAogCQkJCQkJCQkJCQlybG9jYXRvcik7CiAKIAkvKgpAQCAtOTEyMCw2ICs5MTIyLDcgQEAg aGVhcF94bG9nX2ZyZWV6ZV9wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCVhM b2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybG9jYXRvciwgTlVMTCwgTlVMTCk7CiAJ CVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5zbmFwc2hvdENv bmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCQkJeGxyZWMtPm9uQ2F0YWxvZ0FjY2Vzc2libGVJ bkxvZ2ljYWxEZWNvZGluZywKIAkJCQkJCQkJCQkJcmxvY2F0b3IpOwogCX0KIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR4bG9nLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cuYwppbmRleCAzZTMxMWE5OGE2Li42Mjg5ZjhkMjUw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cuYwpAQCAtNjY5LDYgKzY2OSw3 IEBAIGJ0cmVlX3hsb2dfZGVsZXRlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlYTG9n UmVjR2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmcmxvY2F0b3IsIE5VTEwsIE5VTEwpOwogCiAJ CVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5zbmFwc2hvdENv bmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCQkJeGxyZWMtPm9uQ2F0YWxvZ0FjY2Vzc2libGVJ bkxvZ2ljYWxEZWNvZGluZywKIAkJCQkJCQkJCQkJcmxvY2F0b3IpOwogCX0KIApAQCAtMTAw Nyw2ICsxMDA4LDcgQEAgYnRyZWVfeGxvZ19yZXVzZV9wYWdlKFhMb2dSZWFkZXJTdGF0ZSAq cmVjb3JkKQogCiAJaWYgKEluSG90U3RhbmRieSkKIAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxp Y3RXaXRoU25hcHNob3RGdWxsWGlkKHhscmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwK KwkJCQkJCQkJCQkJCSAgIHhscmVjLT5vbkNhdGFsb2dBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVj b2RpbmcsCiAJCQkJCQkJCQkJCQkgICB4bHJlYy0+bG9jYXRvcik7CiB9CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BneGxvZy5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL3NwZ2lzdC9zcGd4bG9nLmMKaW5kZXggNDRhZGMyMDk4Zi4uNmFkNDY3MTE3ZiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd4bG9nLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd4bG9nLmMKQEAgLTg3OSw2ICs4NzksNyBA QCBzcGdSZWRvVmFjdXVtUmVkaXJlY3QoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAKIAkJ WExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwgJmxvY2F0b3IsIE5VTEwsIE5VTEwpOwog CQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bGRhdGEtPnNuYXBzaG90 Q29uZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJCQl4bGRhdGEtPm9uQ2F0YWxvZ0FjY2Vzc2li bGVJbkxvZ2ljYWxEZWNvZGluZywKIAkJCQkJCQkJCQkJbG9jYXRvcik7CiAJfQogCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5kZXggYTMxZmJiZmY3OC4uZTQ1MDNmYjM2ZCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtNzk2Nyw2ICs3OTY3LDE5IEBA IHhsb2dfcmVkbyhYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJLyogVXBkYXRlIG91ciBj b3B5IG9mIHRoZSBwYXJhbWV0ZXJzIGluIHBnX2NvbnRyb2wgKi8KIAkJbWVtY3B5KCZ4bHJl YywgWExvZ1JlY0dldERhdGEocmVjb3JkKSwgc2l6ZW9mKHhsX3BhcmFtZXRlcl9jaGFuZ2Up KTsKIAorCQkvKgorCQkgKiBJbnZhbGlkYXRlIGxvZ2ljYWwgc2xvdHMgaWYgd2UgYXJlIGlu IGhvdCBzdGFuZGJ5IGFuZCB0aGUgcHJpbWFyeSBkb2VzIG5vdAorCQkgKiBoYXZlIGEgV0FM IGxldmVsIHN1ZmZpY2llbnQgZm9yIGxvZ2ljYWwgZGVjb2RpbmcuIE5vIG5lZWQgdG8gc2Vh cmNoCisJCSAqIGZvciBwb3RlbnRpYWxseSBjb25mbGljdGluZyBsb2dpY2FsbHkgc2xvdHMg aWYgc3RhbmRieSBpcyBydW5uaW5nCisJCSAqIHdpdGggd2FsX2xldmVsIGxvd2VyIHRoYW4g bG9naWNhbCwgYmVjYXVzZSBpbiB0aGF0IGNhc2UsIHdlIHdvdWxkCisJCSAqIGhhdmUgZWl0 aGVyIGRpc2FsbG93ZWQgY3JlYXRpb24gb2YgbG9naWNhbCBzbG90cyBvciBpbnZhbGlkYXRl ZCBleGlzdGluZworCQkgKiBvbmVzLgorCQkgKi8KKwkJaWYgKEluUmVjb3ZlcnkgJiYgSW5I b3RTdGFuZGJ5ICYmCisJCQl4bHJlYy53YWxfbGV2ZWwgPCBXQUxfTEVWRUxfTE9HSUNBTCAm JgorCQkJd2FsX2xldmVsID49IFdBTF9MRVZFTF9MT0dJQ0FMKQorCQkJSW52YWxpZGF0ZUNv bmZsaWN0aW5nTG9naWNhbFJlcGxpY2F0aW9uU2xvdHMoSW52YWxpZE9pZCxJbnZhbGlkVHJh bnNhY3Rpb25JZCk7CisKIAkJTFdMb2NrQWNxdWlyZShDb250cm9sRmlsZUxvY2ssIExXX0VY Q0xVU0lWRSk7CiAJCUNvbnRyb2xGaWxlLT5NYXhDb25uZWN0aW9ucyA9IHhscmVjLk1heENv bm5lY3Rpb25zOwogCQlDb250cm9sRmlsZS0+bWF4X3dvcmtlcl9wcm9jZXNzZXMgPSB4bHJl Yy5tYXhfd29ya2VyX3Byb2Nlc3NlczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdz LnNxbAppbmRleCAyZDgxMDRiMDkwLi4wZTBiOGVmNDE1IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0xMDY1LDcgKzEwNjUsOCBAQCBDUkVBVEUgVklFVyBw Z19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cyBBUwogICAgICAgICAgICAgcGdfc3RhdF9nZXRf ZGJfY29uZmxpY3RfbG9jayhELm9pZCkgQVMgY29uZmxfbG9jaywKICAgICAgICAgICAgIHBn X3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90KEQub2lkKSBBUyBjb25mbF9zbmFwc2hv dCwKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2J1ZmZlcnBpbihELm9p ZCkgQVMgY29uZmxfYnVmZmVycGluLAotICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29u ZmxpY3Rfc3RhcnR1cF9kZWFkbG9jayhELm9pZCkgQVMgY29uZmxfZGVhZGxvY2sKKyAgICAg ICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2soRC5vaWQp IEFTIGNvbmZsX2RlYWRsb2NrLAorICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxp Y3RfbG9naWNhbHNsb3QoRC5vaWQpIEFTIGNvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdAogICAg IEZST00gcGdfZGF0YWJhc2UgRDsKIAogQ1JFQVRFIFZJRVcgcGdfc3RhdF91c2VyX2Z1bmN0 aW9ucyBBUwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9s b2dpY2FsZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNh bGZ1bmNzLmMKaW5kZXggNWMyMzE3ODU3MC4uODQzMmRlMjE5YiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYworKysgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCkBAIC0yMTYsMTEg KzIxNiwxNCBAQCBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXNfZ3V0cyhGdW5jdGlvbkNh bGxJbmZvIGZjaW5mbywgYm9vbCBjb25maXJtLCBib29sIGJpbgogCiAJCS8qCiAJCSAqIEFm dGVyIHRoZSBzYW5pdHkgY2hlY2tzIGluIENyZWF0ZURlY29kaW5nQ29udGV4dCwgbWFrZSBz dXJlIHRoZQotCQkgKiByZXN0YXJ0X2xzbiBpcyB2YWxpZC4gIEF2b2lkICJjYW5ub3QgZ2V0 IGNoYW5nZXMiIHdvcmRpbmcgaW4gdGhpcworCQkgKiByZXN0YXJ0X2xzbiBpcyB2YWxpZCBv ciBib3RoIHhtaW4gYW5kIGNhdGFsb2dfeG1pbiBhcmUgdmFsaWQuCisJCSAqIEF2b2lkICJj YW5ub3QgZ2V0IGNoYW5nZXMiIHdvcmRpbmcgaW4gdGhpcwogCQkgKiBlcnJtc2cgYmVjYXVz ZSB0aGF0J2QgYmUgY29uZnVzaW5nbHkgYW1iaWd1b3VzIGFib3V0IG5vIGNoYW5nZXMKIAkJ ICogYmVpbmcgYXZhaWxhYmxlLgogCQkgKi8KLQkJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQo TXlSZXBsaWNhdGlvblNsb3QtPmRhdGEucmVzdGFydF9sc24pKQorCQlpZiAoWExvZ1JlY1B0 cklzSW52YWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbikKKwkJCXx8 ICghVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEueG1pbikK KwkJCQkmJiAhVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEu Y2F0YWxvZ194bWluKSkpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJD T0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKIAkJCQkJIGVycm1zZygi Y2FuIG5vIGxvbmdlciBnZXQgY2hhbmdlcyBmcm9tIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wi IiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCA4OTlhY2ZkOTEyLi42YTRlMmNkMTli IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC0xNDMyLDYgKzE0MzIsMjE1IEBAIHJl c3RhcnQ6CiAJcmV0dXJuIGludmFsaWRhdGVkOwogfQogCisvKgorICogSGVscGVyIGZvciBJ bnZhbGlkYXRlQ29uZmxpY3RpbmdMb2dpY2FsUmVwbGljYXRpb25TbG90IC0tIGFjcXVpcmVz IHRoZSBnaXZlbiBzbG90CisgKiBhbmQgbWFyayBpdCBpbnZhbGlkLCBpZiBuZWNlc3Nhcnkg YW5kIHBvc3NpYmxlLgorICoKKyAqIFJldHVybnMgd2hldGhlciBSZXBsaWNhdGlvblNsb3RD b250cm9sTG9jayB3YXMgcmVsZWFzZWQgaW4gdGhlIGludGVyaW0gKGFuZAorICogaW4gdGhh dCBjYXNlIHdlJ3JlIG5vdCBob2xkaW5nIHRoZSBsb2NrIGF0IHJldHVybiwgb3RoZXJ3aXNl IHdlIGFyZSkuCisgKgorICogVGhpcyBpcyBpbmhlcmVudGx5IHJhY3ksIGJlY2F1c2Ugd2Ug cmVsZWFzZSB0aGUgTFdMb2NrCisgKiBmb3Igc3lzY2FsbHMsIHNvIGNhbGxlciBtdXN0IHJl c3RhcnQgaWYgd2UgcmV0dXJuIHRydWUuCisgKi8KK3N0YXRpYyBib29sCitJbnZhbGlkYXRl UG9zc2libHlDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3QoUmVwbGljYXRpb25T bG90ICpzLCBUcmFuc2FjdGlvbklkIHhpZCkKK3sKKwlpbnQJCWxhc3Rfc2lnbmFsZWRfcGlk ID0gMDsKKwlib29sCXJlbGVhc2VkX2xvY2sgPSBmYWxzZTsKKworCWZvciAoOzspCisJewor CQlUcmFuc2FjdGlvbklkIHNsb3RfeG1pbjsKKwkJVHJhbnNhY3Rpb25JZCBzbG90X2NhdGFs b2dfeG1pbjsKKwkJTmFtZURhdGEJc2xvdG5hbWU7CisJCWludAkJCWFjdGl2ZV9waWQgPSAw OworCisJCUFzc2VydChMV0xvY2tIZWxkQnlNZUluTW9kZShSZXBsaWNhdGlvblNsb3RDb250 cm9sTG9jaywgTFdfU0hBUkVEKSk7CisKKwkJaWYgKCFzLT5pbl91c2UpCisJCXsKKwkJCWlm IChyZWxlYXNlZF9sb2NrKQorCQkJCUxXTG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29u dHJvbExvY2spOworCQkJYnJlYWs7CisJCX0KKworCQkvKgorCQkgKiBDaGVjayBpZiB0aGUg c2xvdCBuZWVkcyB0byBiZSBpbnZhbGlkYXRlZC4gSWYgaXQgbmVlZHMgdG8gYmUKKwkJICog aW52YWxpZGF0ZWQsIGFuZCBpcyBub3QgY3VycmVudGx5IGFjcXVpcmVkLCBhY3F1aXJlIGl0 IGFuZCBtYXJrIGl0CisJCSAqIGFzIGhhdmluZyBiZWVuIGludmFsaWRhdGVkLiBXZSBkbyB0 aGlzIHdpdGggdGhlIHNwaW5sb2NrIGhlbGQgdG8KKwkJICogYXZvaWQgcmFjZSBjb25kaXRp b25zIC0tIGZvciBleGFtcGxlIHRoZSB4bWluKHMpIGNvdWxkIG1vdmUgZm9yd2FyZAorCQkg KiAsIG9yIHRoZSBzbG90IGNvdWxkIGJlIGRyb3BwZWQuCisJCSAqLworCQlTcGluTG9ja0Fj cXVpcmUoJnMtPm11dGV4KTsKKworCQlzbG90X3htaW4gPSBzLT5kYXRhLnhtaW47CisJCXNs b3RfY2F0YWxvZ194bWluID0gcy0+ZGF0YS5jYXRhbG9nX3htaW47CisKKwkJLyoKKwkJICog SWYgdGhlIHNsb3QgaXMgYWxyZWFkeSBpbnZhbGlkIG9yIGlzIG5vdCBjb25mbGljdGluZywg d2UgZG9uJ3QgbmVlZCB0bworCQkgKiBkbyBhbnl0aGluZy4KKwkJICovCisKKwkJLyogc2xv dCBoYXMgYmVlbiBpbnZhbGlkYXRlZCAqLworCQlpZiAoKCFUcmFuc2FjdGlvbklkSXNWYWxp ZChzbG90X3htaW4pICYmICFUcmFuc2FjdGlvbklkSXNWYWxpZChzbG90X2NhdGFsb2dfeG1p bikpCisJCQl8fAorCQkvKgorCQkgKiB3ZSBhcmUgbm90IGZvcmNpbmcgZm9yIGludmFsaWRh dGlvbiBiZWNhdXNlIHRoZSB4aWQgaXMgdmFsaWQKKwkJICogYW5kIHRoaXMgaXMgYSBub24g Y29uZmxpY3Rpbmcgc2xvdAorCQkgKi8KKwkJCShUcmFuc2FjdGlvbklkSXNWYWxpZCh4aWQp ICYmICEoCisJCQkJKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHNsb3RfeG1pbikgJiYgVHJhbnNh Y3Rpb25JZFByZWNlZGVzT3JFcXVhbHMoc2xvdF94bWluLCB4aWQpKQorCQkJCXx8CisJCQkJ KFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHNsb3RfY2F0YWxvZ194bWluKSAmJiBUcmFuc2FjdGlv bklkUHJlY2VkZXNPckVxdWFscyhzbG90X2NhdGFsb2dfeG1pbiwgeGlkKSkKKwkJCQkpKQor CQkJKQorCQl7CisJCQlTcGluTG9ja1JlbGVhc2UoJnMtPm11dGV4KTsKKwkJCWlmIChyZWxl YXNlZF9sb2NrKQorCQkJCUxXTG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJvbExv Y2spOworCQkJYnJlYWs7CisJCX0KKworCQlzbG90bmFtZSA9IHMtPmRhdGEubmFtZTsKKwkJ YWN0aXZlX3BpZCA9IHMtPmFjdGl2ZV9waWQ7CisKKwkJLyoKKwkJICogSWYgdGhlIHNsb3Qg Y2FuIGJlIGFjcXVpcmVkLCBkbyBzbyBhbmQgbWFyayBpdCBpbnZhbGlkYXRlZAorCQkgKiBp bW1lZGlhdGVseS4gIE90aGVyd2lzZSB3ZSdsbCBzaWduYWwgdGhlIG93bmluZyBwcm9jZXNz LCBiZWxvdywgYW5kCisJCSAqIHJldHJ5LgorCQkgKi8KKwkJaWYgKGFjdGl2ZV9waWQgPT0g MCkKKwkJeworCQkJTXlSZXBsaWNhdGlvblNsb3QgPSBzOworCQkJcy0+YWN0aXZlX3BpZCA9 IE15UHJvY1BpZDsKKwkJCXMtPmRhdGEueG1pbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOwor CQkJcy0+ZGF0YS5jYXRhbG9nX3htaW4gPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwkJfQor CisJCVNwaW5Mb2NrUmVsZWFzZSgmcy0+bXV0ZXgpOworCisJCWlmIChhY3RpdmVfcGlkICE9 IDApCisJCXsKKwkJCS8qCisJCQkgKiBQcmVwYXJlIHRoZSBzbGVlcCBvbiB0aGUgc2xvdCdz IGNvbmRpdGlvbiB2YXJpYWJsZSBiZWZvcmUKKwkJCSAqIHJlbGVhc2luZyB0aGUgbG9jaywg dG8gY2xvc2UgYSBwb3NzaWJsZSByYWNlIGNvbmRpdGlvbiBpZiB0aGUKKwkJCSAqIHNsb3Qg aXMgcmVsZWFzZWQgYmVmb3JlIHRoZSBzbGVlcCBiZWxvdy4KKwkJCSAqLworCisJCQlDb25k aXRpb25WYXJpYWJsZVByZXBhcmVUb1NsZWVwKCZzLT5hY3RpdmVfY3YpOworCisJCQlMV0xv Y2tSZWxlYXNlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrKTsKKwkJCXJlbGVhc2VkX2xv Y2sgPSB0cnVlOworCisJCQkvKgorCQkJICogU2lnbmFsIHRvIHRlcm1pbmF0ZSB0aGUgcHJv Y2VzcyB0aGF0IG93bnMgdGhlIHNsb3QsIGlmIHdlCisJCQkgKiBoYXZlbid0IGFscmVhZHkg c2lnbmFsbGVkIGl0LiAgKEF2b2lkYW5jZSBvZiByZXBlYXRlZAorCQkJICogc2lnbmFsbGlu ZyBpcyB0aGUgb25seSByZWFzb24gZm9yIHRoZXJlIHRvIGJlIGEgbG9vcCBpbiB0aGlzCisJ CQkgKiByb3V0aW5lOyBvdGhlcndpc2Ugd2UgY291bGQgcmVseSBvbiBjYWxsZXIncyByZXN0 YXJ0IGxvb3AuKQorCQkJICoKKwkJCSAqIFRoZXJlIGlzIHRoZSByYWNlIGNvbmRpdGlvbiB0 aGF0IG90aGVyIHByb2Nlc3MgbWF5IG93biB0aGUgc2xvdAorCQkJICogYWZ0ZXIgaXRzIGN1 cnJlbnQgb3duZXIgcHJvY2VzcyBpcyB0ZXJtaW5hdGVkIGFuZCBiZWZvcmUgdGhpcworCQkJ ICogcHJvY2VzcyBvd25zIGl0LiBUbyBoYW5kbGUgdGhhdCwgd2Ugc2lnbmFsIG9ubHkgaWYg dGhlIFBJRCBvZgorCQkJICogdGhlIG93bmluZyBwcm9jZXNzIGhhcyBjaGFuZ2VkIGZyb20g dGhlIHByZXZpb3VzIHRpbWUuIChUaGlzCisJCQkgKiBsb2dpYyBhc3N1bWVzIHRoYXQgdGhl IHNhbWUgUElEIGlzIG5vdCByZXVzZWQgdmVyeSBxdWlja2x5LikKKwkJCSAqLworCQkJaWYg KGxhc3Rfc2lnbmFsZWRfcGlkICE9IGFjdGl2ZV9waWQpCisJCQl7CisJCQkJZXJlcG9ydChM T0csCisJCQkJCQkoZXJybXNnKCJ0ZXJtaW5hdGluZyBwcm9jZXNzICVkIGJlY2F1c2UgcmVw bGljYXRpb24gc2xvdCBcIiVzXCIgY29uZmxpY3RzIHdpdGggcmVjb3ZlcnkiLAorCQkJCQkJ CQlhY3RpdmVfcGlkLCBOYW1lU3RyKHNsb3RuYW1lKSkpKTsKKworCQkJCSh2b2lkKSBTZW5k UHJvY1NpZ25hbChhY3RpdmVfcGlkLCBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lD QUxTTE9ULCBJbnZhbGlkQmFja2VuZElkKTsKKwkJCQlsYXN0X3NpZ25hbGVkX3BpZCA9IGFj dGl2ZV9waWQ7CisJCQl9CisKKwkJCS8qIFdhaXQgdW50aWwgdGhlIHNsb3QgaXMgcmVsZWFz ZWQuICovCisJCQlDb25kaXRpb25WYXJpYWJsZVNsZWVwKCZzLT5hY3RpdmVfY3YsCisJCQkJ CQkJCQlXQUlUX0VWRU5UX1JFUExJQ0FUSU9OX1NMT1RfRFJPUCk7CisKKwkJCS8qCisJCQkg KiBSZS1hY3F1aXJlIGxvY2sgYW5kIHN0YXJ0IG92ZXI7IHdlIGV4cGVjdCB0byBpbnZhbGlk YXRlIHRoZQorCQkJICogc2xvdCBuZXh0IHRpbWUgKHVubGVzcyBhbm90aGVyIHByb2Nlc3Mg YWNxdWlyZXMgdGhlIHNsb3QgaW4gdGhlCisJCQkgKiBtZWFudGltZSkuCisJCQkgKi8KKwkJ CUxXTG9ja0FjcXVpcmUoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2ssIExXX1NIQVJFRCk7 CisJCQljb250aW51ZTsKKwkJfQorCQllbHNlCisJCXsKKwkJCS8qCisJCQkgKiBXZSBob2xk IHRoZSBzbG90IG5vdyBhbmQgaGF2ZSBhbHJlYWR5IGludmFsaWRhdGVkIGl0OyBmbHVzaCBp dAorCQkJICogdG8gZW5zdXJlIHRoYXQgc3RhdGUgcGVyc2lzdHMuCisJCQkgKgorCQkJICog RG9uJ3Qgd2FudCB0byBob2xkIFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrIGFjcm9zcyBm aWxlCisJCQkgKiBzeXN0ZW0gb3BlcmF0aW9ucywgc28gcmVsZWFzZSBpdCBub3cgYnV0IGJl IHN1cmUgdG8gdGVsbCBjYWxsZXIKKwkJCSAqIHRvIHJlc3RhcnQgZnJvbSBzY3JhdGNoLgor CQkJICovCisJCQlMV0xvY2tSZWxlYXNlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrKTsK KwkJCXJlbGVhc2VkX2xvY2sgPSB0cnVlOworCisJCQkvKiBNYWtlIHN1cmUgdGhlIGludmFs aWRhdGVkIHN0YXRlIHBlcnNpc3RzIGFjcm9zcyBzZXJ2ZXIgcmVzdGFydCAqLworCQkJUmVw bGljYXRpb25TbG90TWFya0RpcnR5KCk7CisJCQlSZXBsaWNhdGlvblNsb3RTYXZlKCk7CisJ CQlSZXBsaWNhdGlvblNsb3RSZWxlYXNlKCk7CisJCQlwZ3N0YXRfZHJvcF9yZXBsc2xvdChz KTsKKworCQkJZXJlcG9ydChMT0csCisJCQkJCShlcnJtc2coImludmFsaWRhdGluZyBzbG90 IFwiJXNcIiBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoIHJlY292ZXJ5IiwgTmFtZVN0cihz bG90bmFtZSkpKSk7CisKKwkJCS8qIGRvbmUgd2l0aCB0aGlzIHNsb3QgZm9yIG5vdyAqLwor CQkJYnJlYWs7CisJCX0KKwl9CisKKwlBc3NlcnQoIXJlbGVhc2VkX2xvY2sgPT0gTFdMb2Nr SGVsZEJ5TWVJbk1vZGUoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2ssIExXX1NIQVJFRCkp OworCisJcmV0dXJuIHJlbGVhc2VkX2xvY2s7Cit9CisKKy8qCisgKiBSZXNvbHZlIHJlY292 ZXJ5IGNvbmZsaWN0cyB3aXRoIGxvZ2ljYWwgc2xvdHMuCisgKgorICogV2hlbiB4aWQgaXMg dmFsaWQsIGl0IG1lYW5zIHRoYXQgd2UgYXJlIGFib3V0IHRvIHJlbW92ZSByb3dzIG9sZGVy IHRoYW4geGlkLgorICogVGhlcmVmb3JlIHdlIG5lZWQgdG8gaW52YWxpZGF0ZSBzbG90cyB0 aGF0IGRlcGVuZCBvbiBzZWVpbmcgdGhvc2Ugcm93cy4KKyAqIFdoZW4geGlkIGlzIGludmFs aWQsIGludmFsaWRhdGUgYWxsIGxvZ2ljYWwgc2xvdHMuIFRoaXMgaXMgcmVxdWlyZWQgd2hl biB0aGUKKyAqIG1hc3RlciB3YWxfbGV2ZWwgaXMgc2V0IGJhY2sgdG8gcmVwbGljYSwgc28g ZXhpc3RpbmcgbG9naWNhbCBzbG90cyBuZWVkIHRvCisgKiBiZSBpbnZhbGlkYXRlZC4KKyAq Lwordm9pZAorSW52YWxpZGF0ZUNvbmZsaWN0aW5nTG9naWNhbFJlcGxpY2F0aW9uU2xvdHMo T2lkIGRib2lkLCBUcmFuc2FjdGlvbklkIHhpZCkKK3sKKworCUFzc2VydChtYXhfcmVwbGlj YXRpb25fc2xvdHMgPj0gMCk7CisKKwlpZiAobWF4X3JlcGxpY2F0aW9uX3Nsb3RzID09IDAp CisJCXJldHVybjsKK3Jlc3RhcnQ6CisJTFdMb2NrQWNxdWlyZShSZXBsaWNhdGlvblNsb3RD b250cm9sTG9jaywgTFdfU0hBUkVEKTsKKwlmb3IgKGludCBpID0gMDsgaSA8IG1heF9yZXBs aWNhdGlvbl9zbG90czsgaSsrKQorCXsKKwkJUmVwbGljYXRpb25TbG90ICpzID0gJlJlcGxp Y2F0aW9uU2xvdEN0bC0+cmVwbGljYXRpb25fc2xvdHNbaV07CisKKwkJaWYgKCFzLT5pbl91 c2UpCisJCQljb250aW51ZTsKKworCQkvKiBXZSBhcmUgb25seSBkZWFsaW5nIHdpdGggKmxv Z2ljYWwqIHNsb3QgY29uZmxpY3RzLiAqLworCQlpZiAoIVNsb3RJc0xvZ2ljYWwocykpCisJ CQljb250aW51ZTsKKworCQkvKiBub3Qgb3VyIGRhdGFiYXNlIGFuZCB3ZSBkb24ndCB3YW50 IGFsbCB0aGUgZGF0YWJhc2UsIHNraXAgKi8KKwkJaWYgKHMtPmRhdGEuZGF0YWJhc2UgIT0g ZGJvaWQgJiYgVHJhbnNhY3Rpb25JZElzVmFsaWQoeGlkKSkKKwkJCWNvbnRpbnVlOworCisJ CWlmIChJbnZhbGlkYXRlUG9zc2libHlDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNs b3QocywgeGlkKSkKKwkJeworCQkJLyogaWYgdGhlIGxvY2sgd2FzIHJlbGVhc2VkLCB3ZSBu ZWVkIHRvIHJlc3RhcnQgZnJvbSBzY3JhdGNoICovCisJCQlnb3RvIHJlc3RhcnQ7CisJCX0K Kwl9CisJTFdMb2NrUmVsZWFzZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jayk7Cit9CisK IC8qCiAgKiBGbHVzaCBhbGwgcmVwbGljYXRpb24gc2xvdHMgdG8gZGlzay4KICAqCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IGMxMWJiMzcxNmYuLjY0ZmJkNTJl MzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCisr KyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC0xMjUzLDYgKzEy NTMsMTQgQEAgU3RhcnRMb2dpY2FsUmVwbGljYXRpb24oU3RhcnRSZXBsaWNhdGlvbkNtZCAq Y21kKQogCiAJUmVwbGljYXRpb25TbG90QWNxdWlyZShjbWQtPnNsb3RuYW1lLCB0cnVlKTsK IAorCWlmICghVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEu eG1pbikKKwkJICYmICFUcmFuc2FjdGlvbklkSXNWYWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ ZGF0YS5jYXRhbG9nX3htaW4pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVS UkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCSBlcnJtc2co ImNhbm5vdCByZWFkIGZyb20gbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiIsCisJ CQkJCQljbWQtPnNsb3RuYW1lKSwKKwkJCQkgZXJyZGV0YWlsKCJUaGlzIHNsb3QgaGFzIGJl ZW4gaW52YWxpZGF0ZWQgYmVjYXVzZSBpdCB3YXMgY29uZmxpY3Rpbmcgd2l0aCByZWNvdmVy eS4iKSkpOworCiAJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQoTXlSZXBsaWNhdGlvblNsb3Qt PmRhdGEucmVzdGFydF9sc24pKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVS UkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMgYi9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9wcm9jYXJyYXkuYwppbmRleCAwMTc2ZjMwMjcwLi5kNjhiNzUyYzkxIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYworKysgYi9zcmMv YmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYwpAQCAtMzQ3Nyw2ICszNDc3LDEwIEBA IFNpZ25hbFZpcnR1YWxUcmFuc2FjdGlvbihWaXJ0dWFsVHJhbnNhY3Rpb25JZCB2eGlkLCBQ cm9jU2lnbmFsUmVhc29uIHNpZ21vZGUsCiAKIAkJR0VUX1ZYSURfRlJPTV9QR1BST0MocHJv Y3Z4aWQsICpwcm9jKTsKIAorCQkvKgorCQkgKiBOb3RlOiB2eGlkLmxvY2FsVHJhbnNhY3Rp b25JZCBjYW4gYmUgaW52YWxpZCwgd2hpY2ggbWVhbnMgdGhlCisJCSAqIHJlcXVlc3QgaXMg dG8gc2lnbmFsIHRoZSBwaWQgdGhhdCBpcyBub3QgcnVubmluZyBhIHRyYW5zYWN0aW9uLgor CQkgKi8KIAkJaWYgKHByb2N2eGlkLmJhY2tlbmRJZCA9PSB2eGlkLmJhY2tlbmRJZCAmJgog CQkJcHJvY3Z4aWQubG9jYWxUcmFuc2FjdGlvbklkID09IHZ4aWQubG9jYWxUcmFuc2FjdGlv bklkKQogCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2ln bmFsLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMKaW5kZXggNzc2 NzY1N2YyNy4uMWIzYmY5NDNjMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9p cGMvcHJvY3NpZ25hbC5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWdu YWwuYwpAQCAtNjY5LDYgKzY2OSw5IEBAIHByb2NzaWduYWxfc2lndXNyMV9oYW5kbGVyKFNJ R05BTF9BUkdTKQogCWlmIChDaGVja1Byb2NTaWduYWwoUFJPQ1NJR19SRUNPVkVSWV9DT05G TElDVF9TTkFQU0hPVCkpCiAJCVJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUFJPQ1NJR19S RUNPVkVSWV9DT05GTElDVF9TTkFQU0hPVCk7CiAKKwlpZiAoQ2hlY2tQcm9jU2lnbmFsKFBS T0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QpKQorCQlSZWNvdmVyeUNvbmZs aWN0SW50ZXJydXB0KFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QpOwor CiAJaWYgKENoZWNrUHJvY1NpZ25hbChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NUQVJU VVBfREVBRExPQ0spKQogCQlSZWNvdmVyeUNvbmZsaWN0SW50ZXJydXB0KFBST0NTSUdfUkVD T1ZFUllfQ09ORkxJQ1RfU1RBUlRVUF9ERUFETE9DSyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBj L3N0YW5kYnkuYwppbmRleCBmNDMyMjlkZmRhLi41NTM5NTM5NTlkIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvc3RhbmRieS5jCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAidXRpbHMv cHNfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZW91dC5oIgogI2luY2x1ZGUgInV0 aWxzL3RpbWVzdGFtcC5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKIAogLyog VXNlci1zZXR0YWJsZSBHVUMgcGFyYW1ldGVycyAqLwogaW50CQkJdmFjdXVtX2RlZmVyX2Ns ZWFudXBfYWdlOwpAQCAtNDc1LDYgKzQ3Niw3IEBAIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0 V2l0aFZpcnR1YWxYSURzKFZpcnR1YWxUcmFuc2FjdGlvbklkICp3YWl0bGlzdCwKICAqLwog dm9pZAogUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25J ZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCWJvb2wgb25DYXRhbG9nQWNj ZXNzaWJsZUluTG9naWNhbERlY29kaW5nLAogCQkJCQkJCQkJUmVsRmlsZUxvY2F0b3IgbG9j YXRvcikKIHsKIAlWaXJ0dWFsVHJhbnNhY3Rpb25JZCAqYmFja2VuZHM7CkBAIC00OTksNiAr NTAxLDkgQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rp b25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKIAkJCQkJCQkJCQkgICBQUk9DU0lHX1JF Q09WRVJZX0NPTkZMSUNUX1NOQVBTSE9ULAogCQkJCQkJCQkJCSAgIFdBSVRfRVZFTlRfUkVD T1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QsCiAJCQkJCQkJCQkJICAgdHJ1ZSk7CisKKwlpZiAo b25DYXRhbG9nQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nKQorCQlJbnZhbGlkYXRlQ29u ZmxpY3RpbmdMb2dpY2FsUmVwbGljYXRpb25TbG90cyhsb2NhdG9yLmRiT2lkLCBzbmFwc2hv dENvbmZsaWN0SG9yaXpvbik7CiB9CiAKIC8qCkBAIC01MDcsNiArNTEyLDcgQEAgUmVzb2x2 ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENv bmZsaWN0SG9yaXpvbiwKICAqLwogdm9pZAogUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRo U25hcHNob3RGdWxsWGlkKEZ1bGxUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jp em9uLAorCQkJCQkJCQkJCSAgIGJvb2wgb25DYXRhbG9nQWNjZXNzaWJsZUluTG9naWNhbERl Y29kaW5nLAogCQkJCQkJCQkJCSAgIFJlbEZpbGVMb2NhdG9yIGxvY2F0b3IpCiB7CiAJLyoK QEAgLTUyNSw3ICs1MzEsOSBAQCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hv dEZ1bGxYaWQoRnVsbFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcgogCQlUcmFu c2FjdGlvbklkIHRydW5jYXRlZDsKIAogCQl0cnVuY2F0ZWQgPSBYaWRGcm9tRnVsbFRyYW5z YWN0aW9uSWQoc25hcHNob3RDb25mbGljdEhvcml6b24pOwotCQlSZXNvbHZlUmVjb3ZlcnlD b25mbGljdFdpdGhTbmFwc2hvdCh0cnVuY2F0ZWQsIGxvY2F0b3IpOworCQlSZXNvbHZlUmVj b3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh0cnVuY2F0ZWQsCisJCQkJCQkJCQkJCW9uQ2F0 YWxvZ0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZywKKwkJCQkJCQkJCQkJbG9jYXRvcik7 CiAJfQogfQogCkBAIC0xNDg2LDYgKzE0OTQsOSBAQCBnZXRfcmVjb3ZlcnlfY29uZmxpY3Rf ZGVzYyhQcm9jU2lnbmFsUmVhc29uIHJlYXNvbikKIAkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZ X0NPTkZMSUNUX1NOQVBTSE9UOgogCQkJcmVhc29uRGVzYyA9IF8oInJlY292ZXJ5IGNvbmZs aWN0IG9uIHNuYXBzaG90Iik7CiAJCQlicmVhazsKKwkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZ X0NPTkZMSUNUX0xPR0lDQUxTTE9UOgorCQkJcmVhc29uRGVzYyA9IF8oInJlY292ZXJ5IGNv bmZsaWN0IG9uIHJlcGxpY2F0aW9uIHNsb3QiKTsKKwkJCWJyZWFrOwogCQljYXNlIFBST0NT SUdfUkVDT1ZFUllfQ09ORkxJQ1RfU1RBUlRVUF9ERUFETE9DSzoKIAkJCXJlYXNvbkRlc2Mg PSBfKCJyZWNvdmVyeSBjb25mbGljdCBvbiBidWZmZXIgZGVhZGxvY2siKTsKIAkJCWJyZWFr OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3JjL2JhY2tl bmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IDMwODIwOTNkMWUuLmQ5MDBlZWQ5ZjQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFja2VuZC90 Y29wL3Bvc3RncmVzLmMKQEAgLTI0NzAsNiArMjQ3MCw5IEBAIGVycmRldGFpbF9yZWNvdmVy eV9jb25mbGljdCh2b2lkKQogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05B UFNIT1Q6CiAJCQllcnJkZXRhaWwoIlVzZXIgcXVlcnkgbWlnaHQgaGF2ZSBuZWVkZWQgdG8g c2VlIHJvdyB2ZXJzaW9ucyB0aGF0IG11c3QgYmUgcmVtb3ZlZC4iKTsKIAkJCWJyZWFrOwor CQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Q6CisJCQllcnJk ZXRhaWwoIlVzZXIgd2FzIHVzaW5nIHRoZSBsb2dpY2FsIHNsb3QgdGhhdCBtdXN0IGJlIGRy b3BwZWQuIik7CisJCQlicmVhazsKIAkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNU X1NUQVJUVVBfREVBRExPQ0s6CiAJCQllcnJkZXRhaWwoIlVzZXIgdHJhbnNhY3Rpb24gY2F1 c2VkIGJ1ZmZlciBkZWFkbG9jayB3aXRoIHJlY292ZXJ5LiIpOwogCQkJYnJlYWs7CkBAIC0z MDM5LDYgKzMwNDIsMjUgQEAgUmVjb3ZlcnlDb25mbGljdEludGVycnVwdChQcm9jU2lnbmFs UmVhc29uIHJlYXNvbikKIAkJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0NL OgogCQkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1RBQkxFU1BBQ0U6CiAJCQlj YXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1Q6CisJCQljYXNlIFBST0NT SUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Q6CisJCQkJLyoKKwkJCQkgKiBGb3Ig Y29uZmxpY3RzIHRoYXQgcmVxdWlyZSBhIGxvZ2ljYWwgc2xvdCB0byBiZSBpbnZhbGlkYXRl ZCwgdGhlCisJCQkJICogcmVxdWlyZW1lbnQgaXMgZm9yIHRoZSBzaWduYWwgcmVjZWl2ZXIg dG8gcmVsZWFzZSB0aGUgc2xvdCwKKwkJCQkgKiBzbyB0aGF0IGl0IGNvdWxkIGJlIGludmFs aWRhdGVkIGJ5IHRoZSBzaWduYWwgc2VuZGVyLiBTbyBmb3IKKwkJCQkgKiBub3JtYWwgYmFj a2VuZHMsIHRoZSB0cmFuc2FjdGlvbiBzaG91bGQgYmUgYWJvcnRlZCwganVzdAorCQkJCSAq IGxpa2UgZm9yIG90aGVyIHJlY292ZXJ5IGNvbmZsaWN0cy4gQnV0IGlmIGl0J3Mgd2Fsc2Vu ZGVyIG9uCisJCQkJICogc3RhbmRieSwgdGhlbiBpdCBoYXMgdG8gYmUga2lsbGVkIHNvIGFz IHRvIHJlbGVhc2UgYW4KKwkJCQkgKiBhY3F1aXJlZCBsb2dpY2FsIHNsb3QuCisJCQkJICov CisJCQkJaWYgKGFtX2Nhc2NhZGluZ193YWxzZW5kZXIgJiYKKwkJCQkJcmVhc29uID09IFBS T0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QgJiYKKwkJCQkJTXlSZXBsaWNh dGlvblNsb3QgJiYgU2xvdElzTG9naWNhbChNeVJlcGxpY2F0aW9uU2xvdCkpCisJCQkJewor CQkJCQlSZWNvdmVyeUNvbmZsaWN0UGVuZGluZyA9IHRydWU7CisJCQkJCVF1ZXJ5Q2FuY2Vs UGVuZGluZyA9IHRydWU7CisJCQkJCUludGVycnVwdFBlbmRpbmcgPSB0cnVlOworCQkJCQli cmVhazsKKwkJCQl9CiAKIAkJCQkvKgogCQkJCSAqIElmIHdlIGFyZW4ndCBpbiBhIHRyYW5z YWN0aW9uIGFueSBsb25nZXIgdGhlbiBpZ25vcmUuCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jCmluZGV4IDI5MDA4NmZjMjIuLjdhODkwOWQ4 YjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRh YmFzZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFz ZS5jCkBAIC0xMDksNiArMTA5LDkgQEAgcGdzdGF0X3JlcG9ydF9yZWNvdmVyeV9jb25mbGlj dChpbnQgcmVhc29uKQogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfQlVGRkVS UElOOgogCQkJZGJlbnRyeS0+Y29uZmxpY3RfYnVmZmVycGluKys7CiAJCQlicmVhazsKKwkJ Y2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UOgorCQkJZGJlbnRy eS0+Y29uZmxpY3RfbG9naWNhbHNsb3QrKzsKKwkJCWJyZWFrOwogCQljYXNlIFBST0NTSUdf UkVDT1ZFUllfQ09ORkxJQ1RfU1RBUlRVUF9ERUFETE9DSzoKIAkJCWRiZW50cnktPmNvbmZs aWN0X3N0YXJ0dXBfZGVhZGxvY2srKzsKIAkJCWJyZWFrOwpAQCAtMzg3LDYgKzM5MCw3IEBA IHBnc3RhdF9kYXRhYmFzZV9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVudHJ5X3JlZiwg Ym9vbCBub3dhaXQpCiAJUEdTVEFUX0FDQ1VNX0RCQ09VTlQoY29uZmxpY3RfdGFibGVzcGFj ZSk7CiAJUEdTVEFUX0FDQ1VNX0RCQ09VTlQoY29uZmxpY3RfbG9jayk7CiAJUEdTVEFUX0FD Q1VNX0RCQ09VTlQoY29uZmxpY3Rfc25hcHNob3QpOworCVBHU1RBVF9BQ0NVTV9EQkNPVU5U KGNvbmZsaWN0X2xvZ2ljYWxzbG90KTsKIAlQR1NUQVRfQUNDVU1fREJDT1VOVChjb25mbGlj dF9idWZmZXJwaW4pOwogCVBHU1RBVF9BQ0NVTV9EQkNPVU5UKGNvbmZsaWN0X3N0YXJ0dXBf ZGVhZGxvY2spOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0 ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCmluZGV4IDA0 YTVhOTkwMDIuLjk1MzUxYzkyN2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5j cy5jCkBAIC0xMDE3LDYgKzEwMTcsOCBAQCBQR19TVEFUX0dFVF9EQkVOVFJZX0lOVDY0KHhh Y3RfY29tbWl0KQogLyogcGdfc3RhdF9nZXRfZGJfeGFjdF9yb2xsYmFjayAqLwogUEdfU1RB VF9HRVRfREJFTlRSWV9JTlQ2NCh4YWN0X3JvbGxiYWNrKQogCisvKiBwZ19zdGF0X2dldF9k Yl9jb25mbGljdF9sb2dpY2Fsc2xvdCAqLworUEdfU1RBVF9HRVRfREJFTlRSWV9JTlQ2NChj b25mbGljdF9sb2dpY2Fsc2xvdCkKIAogRGF0dW0KIHBnX3N0YXRfZ2V0X2RiX3N0YXRfcmVz ZXRfdGltZShQR19GVU5DVElPTl9BUkdTKQpAQCAtMTA1MCw2ICsxMDUyLDcgQEAgcGdfc3Rh dF9nZXRfZGJfY29uZmxpY3RfYWxsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJlc3VsdCA9IChp bnQ2NCkgKGRiZW50cnktPmNvbmZsaWN0X3RhYmxlc3BhY2UgKwogCQkJCQkJICBkYmVudHJ5 LT5jb25mbGljdF9sb2NrICsKIAkJCQkJCSAgZGJlbnRyeS0+Y29uZmxpY3Rfc25hcHNob3Qg KworCQkJCQkJICBkYmVudHJ5LT5jb25mbGljdF9sb2dpY2Fsc2xvdCArCiAJCQkJCQkgIGRi ZW50cnktPmNvbmZsaWN0X2J1ZmZlcnBpbiArCiAJCQkJCQkgIGRiZW50cnktPmNvbmZsaWN0 X3N0YXJ0dXBfZGVhZGxvY2spOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA3 MTk1OTk2NDlhLi42Mjg0Yzk3OTBjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAg LTU1MzksNiArNTUzOSwxMSBAQAogICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9kYl9jb25m bGljdF9zbmFwc2hvdCcsIHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcGFyYWxsZWwgPT4g J3InLCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCiAgIHBy b3NyYyA9PiAncGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3QnIH0sCit7IG9pZCA9 PiAnOTkwMScsCisgIGRlc2NyID0+ICdzdGF0aXN0aWNzOiByZWNvdmVyeSBjb25mbGljdHMg aW4gZGF0YWJhc2UgY2F1c2VkIGJ5IGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCcsCisgIHBy b25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90JywgcHJvdm9s YXRpbGUgPT4gJ3MnLAorICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ2lu dDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKKyAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF9k Yl9jb25mbGljdF9sb2dpY2Fsc2xvdCcgfSwKIHsgb2lkID0+ICczMDY4JywKICAgZGVzY3Ig PT4gJ3N0YXRpc3RpY3M6IHJlY292ZXJ5IGNvbmZsaWN0cyBpbiBkYXRhYmFzZSBjYXVzZWQg Ynkgc2hhcmVkIGJ1ZmZlciBwaW4nLAogICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9kYl9j b25mbGljdF9idWZmZXJwaW4nLCBwcm92b2xhdGlsZSA9PiAncycsCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCmluZGV4IGEzZGY4 ZDI3YzMuLjdmZmNlODRkMDcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCisr KyBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCkBAIC0yOTEsNiArMjkxLDcgQEAgdHlwZWRlZiBz dHJ1Y3QgUGdTdGF0X1N0YXREQkVudHJ5CiAJUGdTdGF0X0NvdW50ZXIgY29uZmxpY3RfdGFi bGVzcGFjZTsKIAlQZ1N0YXRfQ291bnRlciBjb25mbGljdF9sb2NrOwogCVBnU3RhdF9Db3Vu dGVyIGNvbmZsaWN0X3NuYXBzaG90OworCVBnU3RhdF9Db3VudGVyIGNvbmZsaWN0X2xvZ2lj YWxzbG90OwogCVBnU3RhdF9Db3VudGVyIGNvbmZsaWN0X2J1ZmZlcnBpbjsKIAlQZ1N0YXRf Q291bnRlciBjb25mbGljdF9zdGFydHVwX2RlYWRsb2NrOwogCVBnU3RhdF9Db3VudGVyIHRl bXBfZmlsZXM7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90Lmgg Yi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKaW5kZXggNjVmMmM3NDIzOS4uMGVk MWQ4YWYyOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCisr KyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaApAQCAtMjE2LDYgKzIxNiw3IEBA IGV4dGVybiBYTG9nUmVjUHRyIFJlcGxpY2F0aW9uU2xvdHNDb21wdXRlTG9naWNhbFJlc3Rh cnRMU04odm9pZCk7CiBleHRlcm4gYm9vbCBSZXBsaWNhdGlvblNsb3RzQ291bnREQlNsb3Rz KE9pZCBkYm9pZCwgaW50ICpuc2xvdHMsIGludCAqbmFjdGl2ZSk7CiBleHRlcm4gdm9pZCBS ZXBsaWNhdGlvblNsb3RzRHJvcERCU2xvdHMoT2lkIGRib2lkKTsKIGV4dGVybiBib29sIElu dmFsaWRhdGVPYnNvbGV0ZVJlcGxpY2F0aW9uU2xvdHMoWExvZ1NlZ05vIG9sZGVzdFNlZ25v KTsKK2V4dGVybiB2b2lkIEludmFsaWRhdGVDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlv blNsb3RzKE9pZCBkYm9pZCwgVHJhbnNhY3Rpb25JZCB4aWQpOwogZXh0ZXJuIFJlcGxpY2F0 aW9uU2xvdCAqU2VhcmNoTmFtZWRSZXBsaWNhdGlvblNsb3QoY29uc3QgY2hhciAqbmFtZSwg Ym9vbCBuZWVkX2xvY2spOwogZXh0ZXJuIGludAlSZXBsaWNhdGlvblNsb3RJbmRleChSZXBs aWNhdGlvblNsb3QgKnNsb3QpOwogZXh0ZXJuIGJvb2wgUmVwbGljYXRpb25TbG90TmFtZShp bnQgaW5kZXgsIE5hbWUgbmFtZSk7CkBAIC0yMjcsNSArMjI4LDYgQEAgZXh0ZXJuIHZvaWQg Q2hlY2tQb2ludFJlcGxpY2F0aW9uU2xvdHModm9pZCk7CiAKIGV4dGVybiB2b2lkIENoZWNr U2xvdFJlcXVpcmVtZW50cyh2b2lkKTsKIGV4dGVybiB2b2lkIENoZWNrU2xvdFBlcm1pc3Np b25zKHZvaWQpOworZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoTG9n aWNhbFNsb3RzKE9pZCBkYm9pZCwgVHJhbnNhY3Rpb25JZCB4aWQsIGNoYXIgKnJlYXNvbik7 CiAKICNlbmRpZgkJCQkJCQkvKiBTTE9UX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3N0b3JhZ2UvcHJvY3NpZ25hbC5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFs LmgKaW5kZXggZWU2MzY5MDBmMy4uNTYwOTZiZDNlMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9j c2lnbmFsLmgKQEAgLTQxLDYgKzQxLDcgQEAgdHlwZWRlZiBlbnVtCiAJUFJPQ1NJR19SRUNP VkVSWV9DT05GTElDVF9UQUJMRVNQQUNFLAogCVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1Rf TE9DSywKIAlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9ULAorCVBST0NTSUdf UkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QsCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05G TElDVF9CVUZGRVJQSU4sCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TVEFSVFVQX0RF QURMT0NLLAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnkuaCBi L3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oCmluZGV4IGU0NmM5MzRjNTYuLmJlODZh MTI0NmYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oCisrKyBi L3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oCkBAIC0zMCw4ICszMCwxMCBAQCBleHRl cm4gdm9pZCBJbml0UmVjb3ZlcnlUcmFuc2FjdGlvbkVudmlyb25tZW50KHZvaWQpOwogZXh0 ZXJuIHZvaWQgU2h1dGRvd25SZWNvdmVyeVRyYW5zYWN0aW9uRW52aXJvbm1lbnQodm9pZCk7 CiAKIGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KFRy YW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCQlib29s IG9uQ2F0YWxvZ0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZywKIAkJCQkJCQkJCQkJCVJl bEZpbGVMb2NhdG9yIGxvY2F0b3IpOwogZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29u ZmxpY3RXaXRoU25hcHNob3RGdWxsWGlkKEZ1bGxUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29u ZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJCQkJCSAgIGJvb2wgb25DYXRhbG9nQWNjZXNzaWJs ZUluTG9naWNhbERlY29kaW5nLAogCQkJCQkJCQkJCQkJCSAgIFJlbEZpbGVMb2NhdG9yIGxv Y2F0b3IpOwogZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoVGFibGVz cGFjZShPaWQgdHNpZCk7CiBleHRlcm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdp dGhEYXRhYmFzZShPaWQgZGJpZCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0 CmluZGV4IGZiOWY5MzZkNDMuLjFjYzYyYzQ0N2QgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcnVsZXMub3V0CkBAIC0xODY4LDcgKzE4NjgsOCBAQCBwZ19zdGF0X2RhdGFiYXNlX2Nv bmZsaWN0c3wgU0VMRUNUIGQub2lkIEFTIGRhdGlkLAogICAgIHBnX3N0YXRfZ2V0X2RiX2Nv bmZsaWN0X2xvY2soZC5vaWQpIEFTIGNvbmZsX2xvY2ssCiAgICAgcGdfc3RhdF9nZXRfZGJf Y29uZmxpY3Rfc25hcHNob3QoZC5vaWQpIEFTIGNvbmZsX3NuYXBzaG90LAogICAgIHBnX3N0 YXRfZ2V0X2RiX2NvbmZsaWN0X2J1ZmZlcnBpbihkLm9pZCkgQVMgY29uZmxfYnVmZmVycGlu LAotICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2soZC5vaWQp IEFTIGNvbmZsX2RlYWRsb2NrCisgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc3RhcnR1 cF9kZWFkbG9jayhkLm9pZCkgQVMgY29uZmxfZGVhZGxvY2ssCisgICAgcGdfc3RhdF9nZXRf ZGJfY29uZmxpY3RfbG9naWNhbHNsb3QoZC5vaWQpIEFTIGNvbmZsX2FjdGl2ZV9sb2dpY2Fs c2xvdAogICAgRlJPTSBwZ19kYXRhYmFzZSBkOwogcGdfc3RhdF9nc3NhcGl8IFNFTEVDVCBz LnBpZCwKICAgICBzLmdzc19hdXRoIEFTIGdzc19hdXRoZW50aWNhdGVkLAotLSAKMi4zNC4x Cgo= --------------GsSZ4kgNjkBi9v4p9BXYo4NX Content-Type: text/plain; charset=UTF-8; name="v30-0001-Add-info-in-WAL-records-in-preparation-for-logic.patch" Content-Disposition: attachment; filename*0="v30-0001-Add-info-in-WAL-records-in-preparation-for-logic.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAzMWI5OWY0NWU1NjhhZTRkMWFjZDlhNjlhYWM4NjNhZmE0ZWEyYmIxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogU2F0LCAxMCBEZWMgMjAyMiAwNzoxNTo1NSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjMwIDEvNl0gQWRkIGluZm8gaW4gV0FMIHJlY29yZHMgaW4gcHJlcGFyYXRpb24gZm9y IGxvZ2ljYWwKIHNsb3QgY29uZmxpY3QgaGFuZGxpbmcuCgpXaGVuIGEgV0FMIHJlcGxheSBv biBzdGFuZGJ5IGluZGljYXRlcyB0aGF0IGEgY2F0YWxvZyB0YWJsZSB0dXBsZSBpcwp0byBi ZSBkZWxldGVkIGJ5IGFuIHhpZCB0aGF0IGlzIGdyZWF0ZXIgdGhhbiBhIGxvZ2ljYWwgc2xv dCdzCmNhdGFsb2dfeG1pbiwgdGhlbiB0aGF0IG1lYW5zIHRoZSBzbG90J3MgY2F0YWxvZ194 bWluIGNvbmZsaWN0cyB3aXRoCnRoZSB4aWQsIGFuZCB3ZSBuZWVkIHRvIGhhbmRsZSB0aGUg Y29uZmxpY3QuICBXaGlsZSBzdWJzZXF1ZW50IGNvbW1pdHMKd2lsbCBkbyB0aGUgYWN0dWFs IGNvbmZsaWN0IGhhbmRsaW5nLCB0aGlzIGNvbW1pdCBhZGRzIGEgbmV3IGZpZWxkCm9uQ2F0 YWxvZ0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyBpbiBzdWNoIFdBTCByZWNvcmRzLCB0 aGF0IGlzIHRydWUKZm9yIGNhdGFsb2cgdGFibGVzLCBzbyBhcyB0byBhcnJhbmdlIGZvciBj b25mbGljdCBoYW5kbGluZy4KCkF1dGhvcjogQW5kcmVzIEZyZXVuZCAoaW4gYW4gb2xkZXIg dmVyc2lvbiksIEFtaXQgS2hhbmRla2FyLCBCZXJ0cmFuZApEcm91dm90ClJldmlld2VkLUJ5 OiBCZXJ0cmFuZCBEcm91dm90LCBBbmRyZXMgRnJldW5kLCBSb2JlcnQgSGFhcywgRmFicml6 aW8gZGUKUm95ZXMgTWVsbG8KLS0tCiBjb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQv ZGRsLm91dCAgfCAyOSArKysrKysrKysrKysrCiBjb250cmliL3Rlc3RfZGVjb2Rpbmcvc3Fs L2RkbC5zcWwgICAgICAgfCAgNyArKysrCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAg ICAgICAgICAgICAgfCAxMSArKysrKwogc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxv cHRpb25zLmMgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMg ICAgICB8ICAxICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYyAgICB8 ICAxICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgICB8ICA0ICst CiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgICAgfCAgMSArCiBzcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMgfCAgMyArLQogc3JjL2JhY2tl bmQvYWNjZXNzL25idHJlZS9uYnRwYWdlLmMgICAgIHwgIDIgKwogc3JjL2JhY2tlbmQvYWNj ZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYyAgIHwgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9p bmRleC5jICAgICAgICAgICAgIHwgMTQgKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv dGFibGVjbWRzLmMgICAgICAgIHwgNTUgKysrKysrKysrKysrKysrKysrKysrKysrLQogc3Jj L2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmggICAgICAgICAgIHwgIDIgKwogc3JjL2luY2x1 ZGUvYWNjZXNzL2hhc2hfeGxvZy5oICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvYWNj ZXNzL2hlYXBhbV94bG9nLmggICAgICAgIHwgIDUgKystCiBzcmMvaW5jbHVkZS9hY2Nlc3Mv bmJ0eGxvZy5oICAgICAgICAgICAgfCAgMiArCiBzcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxv Zy5oICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2luZGV4Lmgg ICAgICAgICAgfCAgMiArCiBzcmMvaW5jbHVkZS91dGlscy9yZWwuaCAgICAgICAgICAgICAg ICAgfCAzNCArKysrKysrKysrKysrKysKIDIwIGZpbGVzIGNoYW5nZWQsIDE2OSBpbnNlcnRp b25zKCspLCA5IGRlbGV0aW9ucygtKQogIDExLjIlIGNvbnRyaWIvdGVzdF9kZWNvZGluZy9l eHBlY3RlZC8KICAgNi42JSBjb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsLwogICA2LjUlIGRv Yy9zcmMvc2dtbC8KICAgOC4zJSBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC8KICAgNy4xJSBz cmMvYmFja2VuZC9hY2Nlc3MvCiAgIDYuMCUgc3JjL2JhY2tlbmQvY2F0YWxvZy8KICAyMi42 JSBzcmMvYmFja2VuZC9jb21tYW5kcy8KICAgOC41JSBzcmMvaW5jbHVkZS9hY2Nlc3MvCiAg MjEuNCUgc3JjL2luY2x1ZGUvdXRpbHMvCgpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2Rl Y29kaW5nL2V4cGVjdGVkL2RkbC5vdXQgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0 ZWQvZGRsLm91dAppbmRleCA5YTI4YjVkZGM1Li40MGNmMmY0ZGM0IDEwMDY0NAotLS0gYS9j b250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvZGRsLm91dAorKysgYi9jb250cmliL3Rl c3RfZGVjb2RpbmcvZXhwZWN0ZWQvZGRsLm91dApAQCAtNDgzLDYgKzQ4Myw3IEBAIENSRUFU RSBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSAoCiApCiBXSVRIICh1c2VyX2NhdGFsb2df dGFibGUgPSB0cnVlKQogOworQ1JFQVRFIElOREVYIHJlcGxpY2F0aW9uX21ldGFkYXRhX2lk eDEgb24gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24pOwogXGQrIHJlcGxpY2F0aW9u X21ldGFkYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVGFibGUgInB1YmxpYy5yZXBsaWNhdGlvbl9tZXRhZGF0YSIKICAgQ29sdW1uICB8 ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgICAgICAg RGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICB8IFN0b3JhZ2UgIHwgU3RhdHMgdGFyZ2V0 IHwgRGVzY3JpcHRpb24gCkBAIC00OTIsOCArNDkzLDE1IEBAIFdJVEggKHVzZXJfY2F0YWxv Z190YWJsZSA9IHRydWUpCiAgb3B0aW9ucyAgfCB0ZXh0W10gIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgICB8IAogSW5kZXhlczoKICAgICAicmVwbGlj YXRpb25fbWV0YWRhdGFfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChpZCkKKyAgICAicmVw bGljYXRpb25fbWV0YWRhdGFfaWR4MSIgYnRyZWUgKHJlbGF0aW9uKQogT3B0aW9uczogdXNl cl9jYXRhbG9nX3RhYmxlPXRydWUKIAorU0VMRUNUIGJvb2xfYW5kKGluZGlzdXNlcmNhdGFs b2cpIGZyb20gcGdfaW5kZXggd2hlcmUgaW5kcmVsaWQgPSAncmVwbGljYXRpb25fbWV0YWRh dGEnOjpyZWdjbGFzczsKKyBib29sX2FuZCAKKy0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisK IElOU0VSVCBJTlRPIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQog VkFMVUVTICgnZm9vJywgQVJSQVlbJ2EnLCAnYiddKTsKIEFMVEVSIFRBQkxFIHJlcGxpY2F0 aW9uX21ldGFkYXRhIFJFU0VUICh1c2VyX2NhdGFsb2dfdGFibGUpOwpAQCAtNTA2LDYgKzUx NCwxMyBAQCBBTFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBSRVNFVCAodXNlcl9j YXRhbG9nX3RhYmxlKTsKICBvcHRpb25zICB8IHRleHRbXSAgfCAgICAgICAgICAgfCAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IGV4dGVuZGVkIHwgICAgICAgICAgICAgIHwgCiBJbmRleGVzOgogICAgICJyZXBsaWNh dGlvbl9tZXRhZGF0YV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQorICAgICJyZXBs aWNhdGlvbl9tZXRhZGF0YV9pZHgxIiBidHJlZSAocmVsYXRpb24pCisKK1NFTEVDVCBib29s X29yKGluZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdfaW5kZXggd2hlcmUgaW5kcmVsaWQgPSAn cmVwbGljYXRpb25fbWV0YWRhdGEnOjpyZWdjbGFzczsKKyBib29sX29yIAorLS0tLS0tLS0t CisgZgorKDEgcm93KQogCiBJTlNFUlQgSU5UTyByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxh dGlvbiwgb3B0aW9ucykKIFZBTFVFUyAoJ2JhcicsIEFSUkFZWydhJywgJ2InXSk7CkBAIC01 MTksOCArNTM0LDE1IEBAIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFNFVCAo dXNlcl9jYXRhbG9nX3RhYmxlID0gdHJ1ZSk7CiAgb3B0aW9ucyAgfCB0ZXh0W10gIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgICB8IAogSW5kZXhlczoK ICAgICAicmVwbGljYXRpb25fbWV0YWRhdGFfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChp ZCkKKyAgICAicmVwbGljYXRpb25fbWV0YWRhdGFfaWR4MSIgYnRyZWUgKHJlbGF0aW9uKQog T3B0aW9uczogdXNlcl9jYXRhbG9nX3RhYmxlPXRydWUKIAorU0VMRUNUIGJvb2xfYW5kKGlu ZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdfaW5kZXggd2hlcmUgaW5kcmVsaWQgPSAncmVwbGlj YXRpb25fbWV0YWRhdGEnOjpyZWdjbGFzczsKKyBib29sX2FuZCAKKy0tLS0tLS0tLS0KKyB0 CisoMSByb3cpCisKIElOU0VSVCBJTlRPIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9u LCBvcHRpb25zKQogVkFMVUVTICgnYmx1YicsIE5VTEwpOwogLS0gbWFrZSBzdXJlIHJld3Jp dGVzIGRvbid0IHdvcmsKQEAgLTUzOCw4ICs1NjAsMTUgQEAgQUxURVIgVEFCTEUgcmVwbGlj YXRpb25fbWV0YWRhdGEgU0VUICh1c2VyX2NhdGFsb2dfdGFibGUgPSBmYWxzZSk7CiAgcmV3 cml0ZW1lb3Jub3QgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAgICB8 ICAgICAgICAgICAgICB8IAogSW5kZXhlczoKICAgICAicmVwbGljYXRpb25fbWV0YWRhdGFf cGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChpZCkKKyAgICAicmVwbGljYXRpb25fbWV0YWRh dGFfaWR4MSIgYnRyZWUgKHJlbGF0aW9uKQogT3B0aW9uczogdXNlcl9jYXRhbG9nX3RhYmxl PWZhbHNlCiAKK1NFTEVDVCBib29sX29yKGluZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdfaW5k ZXggd2hlcmUgaW5kcmVsaWQgPSAncmVwbGljYXRpb25fbWV0YWRhdGEnOjpyZWdjbGFzczsK KyBib29sX29yIAorLS0tLS0tLS0tCisgZgorKDEgcm93KQorCiBJTlNFUlQgSU5UTyByZXBs aWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbiwgb3B0aW9ucykKIFZBTFVFUyAoJ3phcGhvZCcs IE5VTEwpOwogU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMo J3JlZ3Jlc3Npb25fc2xvdCcsIE5VTEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdz a2lwLWVtcHR5LXhhY3RzJywgJzEnKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNv ZGluZy9zcWwvZGRsLnNxbCBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvZGRsLnNxbApp bmRleCA0Zjc2YmVkNzJjLi44NWRkZDRiZTAzIDEwMDY0NAotLS0gYS9jb250cmliL3Rlc3Rf ZGVjb2Rpbmcvc3FsL2RkbC5zcWwKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9k ZGwuc3FsCkBAIC0yNzYsMTkgKzI3NiwyNSBAQCBDUkVBVEUgVEFCTEUgcmVwbGljYXRpb25f bWV0YWRhdGEgKAogKQogV0lUSCAodXNlcl9jYXRhbG9nX3RhYmxlID0gdHJ1ZSkKIDsKKwor Q1JFQVRFIElOREVYIHJlcGxpY2F0aW9uX21ldGFkYXRhX2lkeDEgb24gcmVwbGljYXRpb25f bWV0YWRhdGEocmVsYXRpb24pOworCiBcZCsgcmVwbGljYXRpb25fbWV0YWRhdGEKK1NFTEVD VCBib29sX2FuZChpbmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBnX2luZGV4IHdoZXJlIGluZHJl bGlkID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRhJzo6cmVnY2xhc3M7CiAKIElOU0VSVCBJTlRP IHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQogVkFMVUVTICgnZm9v JywgQVJSQVlbJ2EnLCAnYiddKTsKIAogQUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRh dGEgUkVTRVQgKHVzZXJfY2F0YWxvZ190YWJsZSk7CiBcZCsgcmVwbGljYXRpb25fbWV0YWRh dGEKK1NFTEVDVCBib29sX29yKGluZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdfaW5kZXggd2hl cmUgaW5kcmVsaWQgPSAncmVwbGljYXRpb25fbWV0YWRhdGEnOjpyZWdjbGFzczsKIAogSU5T RVJUIElOVE8gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24sIG9wdGlvbnMpCiBWQUxV RVMgKCdiYXInLCBBUlJBWVsnYScsICdiJ10pOwogCiBBTFRFUiBUQUJMRSByZXBsaWNhdGlv bl9tZXRhZGF0YSBTRVQgKHVzZXJfY2F0YWxvZ190YWJsZSA9IHRydWUpOwogXGQrIHJlcGxp Y2F0aW9uX21ldGFkYXRhCitTRUxFQ1QgYm9vbF9hbmQoaW5kaXN1c2VyY2F0YWxvZykgZnJv bSBwZ19pbmRleCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJl Z2NsYXNzOwogCiBJTlNFUlQgSU5UTyByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbiwg b3B0aW9ucykKIFZBTFVFUyAoJ2JsdWInLCBOVUxMKTsKQEAgLTI5OSw2ICszMDUsNyBAQCBB TFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBBTFRFUiBDT0xVTU4gcmV3cml0ZW1l b3Jub3QgVFlQRSB0ZXh0OwogCiBBTFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBT RVQgKHVzZXJfY2F0YWxvZ190YWJsZSA9IGZhbHNlKTsKIFxkKyByZXBsaWNhdGlvbl9tZXRh ZGF0YQorU0VMRUNUIGJvb2xfb3IoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRleCB3 aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNzOwogCiBJ TlNFUlQgSU5UTyByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbiwgb3B0aW9ucykKIFZB TFVFUyAoJ3phcGhvZCcsIE5VTEwpOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFs b2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCA5MzE2YjgxMWFj Li40NTk1MzliNzYxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtNDQ0Nyw2ICs0NDQ3LDE3IEBA IFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9y ZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAg ICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPmluZGlzdXNlcmNhdGFsb2c8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgSWYgdHJ1ZSwgdGhl IGluZGV4IGlzIGxpbmtlZCB0byBhIHRhYmxlIHRoYXQgaXMgZGVjbGFyZWQgYXMgYW4gYWRk aXRpb25hbAorICAgICAgIGNhdGFsb2cgdGFibGUgZm9yIHB1cnBvc2VzIG9mIGxvZ2ljYWwg cmVwbGljYXRpb24gKG1lYW5zIGhhcyA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRldGFibGUi PjxsaXRlcmFsPnVzZXJfY2F0YWxvZ190YWJsZTwvbGl0ZXJhbD48L2xpbms+KQorICAgICAg IHNldCB0byB0cnVlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAg ICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD5pbmRp c3JlcGxpZGVudDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCmluZGV4IDc1YjczNDQ4OTEuLjRiNDFmNWU2 OGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCkBAIC0xMjAs NyArMTIwLDcgQEAgc3RhdGljIHJlbG9wdF9ib29sIGJvb2xSZWxPcHRzW10gPQogCQkJUkVM T1BUX0tJTkRfSEVBUCwKIAkJCUFjY2Vzc0V4Y2x1c2l2ZUxvY2sKIAkJfSwKLQkJZmFsc2UK KwkJSEVBUF9ERUZBVUxUX1VTRVJfQ0FUQUxPR19UQUJMRQogCX0sCiAJewogCQl7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYwppbmRleCBjYjVhZmZhM2QyLi5iNzQ3OTAwYTQ1 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKQEAgLTYwOCw2ICs2MDgsNyBA QCBnaXN0WExvZ1BhZ2VSZXVzZShSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBG dWxsVHJhbnNhY3Rpb25JZCBkZWxldGVYaWQpCiAJICovCiAKIAkvKiBYTE9HIHN0dWZmICov CisJeGxyZWNfcmV1c2Uub25DYXRhbG9nQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nID0g SW5kZXhJc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpOwogCXhscmVjX3JldXNl LmxvY2F0b3IgPSByZWwtPnJkX2xvY2F0b3I7CiAJeGxyZWNfcmV1c2UuYmxvY2sgPSBibGtu bzsKIAl4bHJlY19yZXVzZS5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IGRlbGV0ZVhpZDsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYwppbmRleCA5YTkyMWUzNDFlLi43 ZTU5YTM4NGFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5z ZXJ0LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jCkBAIC00 MzIsNiArNDMyLDcgQEAgX2hhc2hfdmFjdXVtX29uZV9wYWdlKFJlbGF0aW9uIHJlbCwgUmVs YXRpb24gaHJlbCwgQnVmZmVyIG1ldGFidWYsIEJ1ZmZlciBidWYpCiAJCQl4bF9oYXNoX3Zh Y3V1bV9vbmVfcGFnZSB4bHJlYzsKIAkJCVhMb2dSZWNQdHIJcmVjcHRyOwogCisJCQl4bHJl Yy5vbkNhdGFsb2dBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcgPSBSZWxhdGlvbklzQWNj ZXNzaWJsZUluTG9naWNhbERlY29kaW5nKGhyZWwpOwogCQkJeGxyZWMuc25hcHNob3RDb25m bGljdEhvcml6b24gPSBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsKIAkJCXhscmVjLm50dXBs ZXMgPSBuZGVsZXRhYmxlOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmluZGV4IDc0 N2RiNTAzNzYuLmI0MmE2YmZhNjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBA IC02ODMxLDYgKzY4MzEsNyBAQCBoZWFwX2ZyZWV6ZV9leGVjdXRlX3ByZXBhcmVkKFJlbGF0 aW9uIHJlbCwgQnVmZmVyIGJ1ZmZlciwKIAkJc25hcHNob3RDb25mbGljdEhvcml6b24gPSBG cmVlemVMaW1pdDsKIAkJVHJhbnNhY3Rpb25JZFJldHJlYXQoc25hcHNob3RDb25mbGljdEhv cml6b24pOwogCisJCXhscmVjLm9uQ2F0YWxvZ0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGlu ZyA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsKTsKIAkJeGxy ZWMuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsK IAkJeGxyZWMubnBsYW5zID0gbnBsYW5zOwogCkBAIC04MjQ4LDcgKzgyNDksNyBAQCBib3R0 b211cF9zb3J0X2FuZF9zaHJpbmsoVE1fSW5kZXhEZWxldGVPcCAqZGVsc3RhdGUpCiAgKiB1 cGRhdGUgdGhlIGhlYXAgcGFnZSdzIExTTi4KICAqLwogWExvZ1JlY1B0cgotbG9nX2hlYXBf dmlzaWJsZShSZWxGaWxlTG9jYXRvciBybG9jYXRvciwgQnVmZmVyIGhlYXBfYnVmZmVyLCBC dWZmZXIgdm1fYnVmZmVyLAorbG9nX2hlYXBfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZl ciBoZWFwX2J1ZmZlciwgQnVmZmVyIHZtX2J1ZmZlciwKIAkJCQkgVHJhbnNhY3Rpb25JZCBz bmFwc2hvdENvbmZsaWN0SG9yaXpvbiwgdWludDggdm1mbGFncykKIHsKIAl4bF9oZWFwX3Zp c2libGUgeGxyZWM7CkBAIC04MjU4LDYgKzgyNTksNyBAQCBsb2dfaGVhcF92aXNpYmxlKFJl bEZpbGVMb2NhdG9yIHJsb2NhdG9yLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1ZmZlciB2bV9i dWZmZXIsCiAJQXNzZXJ0KEJ1ZmZlcklzVmFsaWQoaGVhcF9idWZmZXIpKTsKIAlBc3NlcnQo QnVmZmVySXNWYWxpZCh2bV9idWZmZXIpKTsKIAorCXhscmVjLm9uQ2F0YWxvZ0FjY2Vzc2li bGVJbkxvZ2ljYWxEZWNvZGluZyA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVj b2RpbmcocmVsKTsKIAl4bHJlYy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90 Q29uZmxpY3RIb3Jpem9uOwogCXhscmVjLmZsYWdzID0gdm1mbGFnczsKIAlYTG9nQmVnaW5J bnNlcnQoKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVh cC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggOTFjNWY1 ZTllZi4uYWFlNzhmNzE0NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv cHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMK QEAgLTQxOCw2ICs0MTgsNyBAQCBoZWFwX3BhZ2VfcHJ1bmUoUmVsYXRpb24gcmVsYXRpb24s IEJ1ZmZlciBidWZmZXIsCiAJCQl4bF9oZWFwX3BydW5lIHhscmVjOwogCQkJWExvZ1JlY1B0 cglyZWNwdHI7CiAKKwkJCXhscmVjLm9uQ2F0YWxvZ0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNv ZGluZyA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsYXRpb24p OwogCQkJeGxyZWMuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBwcnN0YXRlLnNuYXBzaG90 Q29uZmxpY3RIb3Jpem9uOwogCQkJeGxyZWMubnJlZGlyZWN0ZWQgPSBwcnN0YXRlLm5yZWRp cmVjdGVkOwogCQkJeGxyZWMubmRlYWQgPSBwcnN0YXRlLm5kZWFkOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCmluZGV4IDRlZDcwMjc1ZTIuLjBiZDczZjRk OWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAu YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKQEAgLTI4 Myw4ICsyODMsNyBAQCB2aXNpYmlsaXR5bWFwX3NldChSZWxhdGlvbiByZWwsIEJsb2NrTnVt YmVyIGhlYXBCbGssIEJ1ZmZlciBoZWFwQnVmLAogCQkJaWYgKFhMb2dSZWNQdHJJc0ludmFs aWQocmVjcHRyKSkKIAkJCXsKIAkJCQlBc3NlcnQoIUluUmVjb3ZlcnkpOwotCQkJCXJlY3B0 ciA9IGxvZ19oZWFwX3Zpc2libGUocmVsLT5yZF9sb2NhdG9yLCBoZWFwQnVmLCB2bUJ1ZiwK LQkJCQkJCQkJCQkgIGN1dG9mZl94aWQsIGZsYWdzKTsKKwkJCQlyZWNwdHIgPSBsb2dfaGVh cF92aXNpYmxlKHJlbCwgaGVhcEJ1Ziwgdm1CdWYsIGN1dG9mZl94aWQsIGZsYWdzKTsKIAog CQkJCS8qCiAJCQkJICogSWYgZGF0YSBjaGVja3N1bXMgYXJlIGVuYWJsZWQgKG9yIHdhbF9s b2dfaGludHM9b24pLCB3ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJl ZS9uYnRwYWdlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2UuYwppbmRl eCA2NWFhNDQ4OTNjLi44ODc3M2MwZTQxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvbmJ0cmVlL25idHBhZ2UuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25i dHBhZ2UuYwpAQCAtODM2LDYgKzgzNiw3IEBAIF9idF9sb2dfcmV1c2VfcGFnZShSZWxhdGlv biByZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBGdWxsVHJhbnNhY3Rpb25JZCBzYWZleGlkKQog CSAqLwogCiAJLyogWExPRyBzdHVmZiAqLworCXhscmVjX3JldXNlLm9uQ2F0YWxvZ0FjY2Vz c2libGVJbkxvZ2ljYWxEZWNvZGluZyA9IEluZGV4SXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVj b2RpbmcocmVsKTsKIAl4bHJlY19yZXVzZS5sb2NhdG9yID0gcmVsLT5yZF9sb2NhdG9yOwog CXhscmVjX3JldXNlLmJsb2NrID0gYmxrbm87CiAJeGxyZWNfcmV1c2Uuc25hcHNob3RDb25m bGljdEhvcml6b24gPSBzYWZleGlkOwpAQCAtMTM1OCw2ICsxMzU5LDcgQEAgX2J0X2RlbGl0 ZW1zX2RlbGV0ZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCVhMb2dSZWNQdHIJcmVj cHRyOwogCQl4bF9idHJlZV9kZWxldGUgeGxyZWNfZGVsZXRlOwogCisJCXhscmVjX2RlbGV0 ZS5vbkNhdGFsb2dBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcgPSBJbmRleElzQWNjZXNz aWJsZUluTG9naWNhbERlY29kaW5nKHJlbCk7CiAJCXhscmVjX2RlbGV0ZS5zbmFwc2hvdENv bmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCQl4bHJlY19kZWxl dGUubmRlbGV0ZWQgPSBuZGVsZXRhYmxlOwogCQl4bHJlY19kZWxldGUubnVwZGF0ZWQgPSBu dXBkYXRhYmxlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2 YWN1dW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMKaW5kZXgg YWQ5MGIyMTNiOS4uYmUyMzkwNzY4NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L3NwZ2lzdC9zcGd2YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3Nw Z3ZhY3V1bS5jCkBAIC01MDMsNiArNTAzLDcgQEAgdmFjdXVtUmVkaXJlY3RBbmRQbGFjZWhv bGRlcihSZWxhdGlvbiBpbmRleCwgQnVmZmVyIGJ1ZmZlcikKIAlzcGd4bG9nVmFjdXVtUmVk aXJlY3QgeGxyZWM7CiAJR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3Q7CiAKKwl4bHJlYy5vbkNh dGFsb2dBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcgPSBJbmRleElzQWNjZXNzaWJsZUlu TG9naWNhbERlY29kaW5nKGluZGV4KTsKIAl4bHJlYy5uVG9QbGFjZWhvbGRlciA9IDA7CiAJ eGxyZWMuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9pbmRleC5jCmluZGV4IDYxZjFkMzkyNmEuLmY2YjJjOWFjNzEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL2luZGV4LmMKQEAgLTEyMyw3ICsxMjMsOCBAQCBzdGF0aWMgdm9pZCBVcGRhdGVJ bmRleFJlbGF0aW9uKE9pZCBpbmRleG9pZCwgT2lkIGhlYXBvaWQsCiAJCQkJCQkJCWJvb2wg aXNleGNsdXNpb24sCiAJCQkJCQkJCWJvb2wgaW1tZWRpYXRlLAogCQkJCQkJCQlib29sIGlz dmFsaWQsCi0JCQkJCQkJCWJvb2wgaXNyZWFkeSk7CisJCQkJCQkJCWJvb2wgaXNyZWFkeSwK KwkJCQkJCQkJYm9vbCBpc191c2VyX2NhdGFsb2cpOwogc3RhdGljIHZvaWQgaW5kZXhfdXBk YXRlX3N0YXRzKFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkgICBib29sIGhhc2luZGV4LAogCQkJ CQkJCSAgIGRvdWJsZSByZWx0dXBsZXMpOwpAQCAtNTQ1LDcgKzU0Niw4IEBAIFVwZGF0ZUlu ZGV4UmVsYXRpb24oT2lkIGluZGV4b2lkLAogCQkJCQlib29sIGlzZXhjbHVzaW9uLAogCQkJ CQlib29sIGltbWVkaWF0ZSwKIAkJCQkJYm9vbCBpc3ZhbGlkLAotCQkJCQlib29sIGlzcmVh ZHkpCisJCQkJCWJvb2wgaXNyZWFkeSwKKwkJCQkJYm9vbCBpc191c2VyX2NhdGFsb2cpCiB7 CiAJaW50MnZlY3RvciAqaW5ka2V5OwogCW9pZHZlY3RvciAgKmluZGNvbGxhdGlvbjsKQEAg LTYyMiw2ICs2MjQsNyBAQCBVcGRhdGVJbmRleFJlbGF0aW9uKE9pZCBpbmRleG9pZCwKIAl2 YWx1ZXNbQW51bV9wZ19pbmRleF9pbmRjaGVja3htaW4gLSAxXSA9IEJvb2xHZXREYXR1bShm YWxzZSk7CiAJdmFsdWVzW0FudW1fcGdfaW5kZXhfaW5kaXNyZWFkeSAtIDFdID0gQm9vbEdl dERhdHVtKGlzcmVhZHkpOwogCXZhbHVlc1tBbnVtX3BnX2luZGV4X2luZGlzbGl2ZSAtIDFd ID0gQm9vbEdldERhdHVtKHRydWUpOworCXZhbHVlc1tBbnVtX3BnX2luZGV4X2luZGlzdXNl cmNhdGFsb2cgLSAxXSA9IEJvb2xHZXREYXR1bShpc191c2VyX2NhdGFsb2cpOwogCXZhbHVl c1tBbnVtX3BnX2luZGV4X2luZGlzcmVwbGlkZW50IC0gMV0gPSBCb29sR2V0RGF0dW0oZmFs c2UpOwogCXZhbHVlc1tBbnVtX3BnX2luZGV4X2luZGtleSAtIDFdID0gUG9pbnRlckdldERh dHVtKGluZGtleSk7CiAJdmFsdWVzW0FudW1fcGdfaW5kZXhfaW5kY29sbGF0aW9uIC0gMV0g PSBQb2ludGVyR2V0RGF0dW0oaW5kY29sbGF0aW9uKTsKQEAgLTczNSw2ICs3MzgsNyBAQCBp bmRleF9jcmVhdGUoUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCVRyYW5zYWN0aW9uSWQgcmVs ZnJvemVueGlkOwogCU11bHRpWGFjdElkIHJlbG1pbm14aWQ7CiAJYm9vbAkJY3JlYXRlX3N0 b3JhZ2UgPSAhUmVsRmlsZU51bWJlcklzVmFsaWQocmVsRmlsZU51bWJlcik7CisJYm9vbAkJ aXN1c2VyY2F0YWxvZyA9IGZhbHNlOwogCiAJLyogY29uc3RyYWludCBmbGFncyBjYW4gb25s eSBiZSBzZXQgd2hlbiBhIGNvbnN0cmFpbnQgaXMgcmVxdWVzdGVkICovCiAJQXNzZXJ0KChj b25zdHJfZmxhZ3MgPT0gMCkgfHwKQEAgLTEwMTQsMTMgKzEwMTgsMTcgQEAgaW5kZXhfY3Jl YXRlKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkgKgkgIChPciwgY291bGQgZGVmaW5lIGEg cnVsZSB0byBtYWludGFpbiB0aGUgcHJlZGljYXRlKSAtLU5lbHMsIEZlYiAnOTIKIAkgKiAt LS0tLS0tLS0tLS0tLS0tCiAJICovCisJaWYgKGhlYXBSZWxhdGlvbi0+cmRfb3B0aW9ucykK KwkJaXN1c2VyY2F0YWxvZyA9ICgoU3RkUmRPcHRpb25zICopIChoZWFwUmVsYXRpb24pLT5y ZF9vcHRpb25zKS0+dXNlcl9jYXRhbG9nX3RhYmxlOworCiAJVXBkYXRlSW5kZXhSZWxhdGlv bihpbmRleFJlbGF0aW9uSWQsIGhlYXBSZWxhdGlvbklkLCBwYXJlbnRJbmRleFJlbGlkLAog CQkJCQkJaW5kZXhJbmZvLAogCQkJCQkJY29sbGF0aW9uT2JqZWN0SWQsIGNsYXNzT2JqZWN0 SWQsIGNvbG9wdGlvbnMsCiAJCQkJCQlpc3ByaW1hcnksIGlzX2V4Y2x1c2lvbiwKIAkJCQkJ CShjb25zdHJfZmxhZ3MgJiBJTkRFWF9DT05TVFJfQ1JFQVRFX0RFRkVSUkFCTEUpID09IDAs CiAJCQkJCQkhY29uY3VycmVudCAmJiAhaW52YWxpZCwKLQkJCQkJCSFjb25jdXJyZW50KTsK KwkJCQkJCSFjb25jdXJyZW50LAorCQkJCQkJaXN1c2VyY2F0YWxvZyk7CiAKIAkvKgogCSAq IFJlZ2lzdGVyIHJlbGNhY2hlIGludmFsaWRhdGlvbiBvbiB0aGUgaW5kZXhlcycgaGVhcCBy ZWxhdGlvbiwgdG8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggZWU4OGU4N2Q3 Ni4uYjU2MzQ4ZTExYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTEwMyw2 ICsxMDMsNyBAQAogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRp bHMvdGltZXN0YW1wLmgiCiAjaW5jbHVkZSAidXRpbHMvdHlwY2FjaGUuaCIKKyNpbmNsdWRl ICJ1dGlscy9yZWwuaCIKIAogLyoKICAqIE9OIENPTU1JVCBhY3Rpb24gbGlzdApAQCAtMTQx ODksNiArMTQxOTAsMTAgQEAgQVRFeGVjU2V0UmVsT3B0aW9ucyhSZWxhdGlvbiByZWwsIExp c3QgKmRlZkxpc3QsIEFsdGVyVGFibGVUeXBlIG9wZXJhdGlvbiwKIAlEYXR1bQkJcmVwbF92 YWxbTmF0dHNfcGdfY2xhc3NdOwogCWJvb2wJCXJlcGxfbnVsbFtOYXR0c19wZ19jbGFzc107 CiAJYm9vbAkJcmVwbF9yZXBsW05hdHRzX3BnX2NsYXNzXTsKKwlMaXN0Q2VsbCAgICpjZWxs OworCUxpc3QJICAgKnJlbF9vcHRpb25zOworCWJvb2wJCWNhdGFsb2dfdGFibGVfdmFsID0g SEVBUF9ERUZBVUxUX1VTRVJfQ0FUQUxPR19UQUJMRTsKKwlib29sCQljYXRhbG9nX3RhYmxl ID0gZmFsc2U7CiAJc3RhdGljIGNoYXIgKnZhbGlkbnNwc1tdID0gSEVBUF9SRUxPUFRfTkFN RVNQQUNFUzsKIAogCWlmIChkZWZMaXN0ID09IE5JTCAmJiBvcGVyYXRpb24gIT0gQVRfUmVw bGFjZVJlbE9wdGlvbnMpCkBAIC0xNDI1NSw3ICsxNDI2MCw2IEBAIEFURXhlY1NldFJlbE9w dGlvbnMoUmVsYXRpb24gcmVsLCBMaXN0ICpkZWZMaXN0LCBBbHRlclRhYmxlVHlwZSBvcGVy YXRpb24sCiAJewogCQlRdWVyeQkgICAqdmlld19xdWVyeSA9IGdldF92aWV3X3F1ZXJ5KHJl bCk7CiAJCUxpc3QJICAgKnZpZXdfb3B0aW9ucyA9IHVudHJhbnNmb3JtUmVsT3B0aW9ucyhu ZXdPcHRpb25zKTsKLQkJTGlzdENlbGwgICAqY2VsbDsKIAkJYm9vbAkJY2hlY2tfb3B0aW9u ID0gZmFsc2U7CiAKIAkJZm9yZWFjaChjZWxsLCB2aWV3X29wdGlvbnMpCkBAIC0xNDI4Myw2 ICsxNDI4NywyMCBAQCBBVEV4ZWNTZXRSZWxPcHRpb25zKFJlbGF0aW9uIHJlbCwgTGlzdCAq ZGVmTGlzdCwgQWx0ZXJUYWJsZVR5cGUgb3BlcmF0aW9uLAogCQl9CiAJfQogCisJLyogSWYg dXNlcl9jYXRhbG9nX3RhYmxlIGlzIHBhcnQgb2YgdGhlIG5ldyBvcHRpb25zLCByZWNvcmQg aXRzIG5ldyB2YWx1ZSAqLworCXJlbF9vcHRpb25zID0gdW50cmFuc2Zvcm1SZWxPcHRpb25z KG5ld09wdGlvbnMpOworCisJZm9yZWFjaChjZWxsLCByZWxfb3B0aW9ucykKKwl7CisJCURl ZkVsZW0gICAgKmRlZmVsID0gKERlZkVsZW0gKikgbGZpcnN0KGNlbGwpOworCisJCWlmIChz dHJjbXAoZGVmZWwtPmRlZm5hbWUsICJ1c2VyX2NhdGFsb2dfdGFibGUiKSA9PSAwKQorCQl7 CisJCQljYXRhbG9nX3RhYmxlID0gdHJ1ZTsKKwkJCWNhdGFsb2dfdGFibGVfdmFsID0gZGVm R2V0Qm9vbGVhbihkZWZlbCk7CisJCX0KKwl9CisKIAkvKgogCSAqIEFsbCB3ZSBuZWVkIGRv IGhlcmUgaXMgdXBkYXRlIHRoZSBwZ19jbGFzcyByb3c7IHRoZSBuZXcgb3B0aW9ucyB3aWxs IGJlCiAJICogcHJvcGFnYXRlZCBpbnRvIHJlbGNhY2hlcyBkdXJpbmcgcG9zdC1jb21taXQg Y2FjaGUgaW52YWwuCkBAIC0xNDMwOSw2ICsxNDMyNyw0MSBAQCBBVEV4ZWNTZXRSZWxPcHRp b25zKFJlbGF0aW9uIHJlbCwgTGlzdCAqZGVmTGlzdCwgQWx0ZXJUYWJsZVR5cGUgb3BlcmF0 aW9uLAogCiAJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKIAorCS8qIFVwZGF0ZSB0aGUgaW5k ZXhlcyBpZiB0aGVyZSBpcyBhIG5lZWQgdG8gKi8KKwlpZiAoY2F0YWxvZ190YWJsZSB8fCBv cGVyYXRpb24gPT0gQVRfUmVzZXRSZWxPcHRpb25zKQorCXsKKwkJUmVsYXRpb24JcGdfaW5k ZXg7CisJCUhlYXBUdXBsZQlwZ19pbmRleF90dXBsZTsKKwkJRm9ybV9wZ19pbmRleCBwZ19p bmRleF9mb3JtOworCQlMaXN0Q2VsbCAgICppbmRleDsKKworCQlwZ19pbmRleCA9IHRhYmxl X29wZW4oSW5kZXhSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCQlmb3JlYWNo KGluZGV4LCBSZWxhdGlvbkdldEluZGV4TGlzdChyZWwpKQorCQl7CisJCQlPaWQJCQl0aGlz SW5kZXhPaWQgPSBsZmlyc3Rfb2lkKGluZGV4KTsKKworCQkJcGdfaW5kZXhfdHVwbGUgPSBT ZWFyY2hTeXNDYWNoZUNvcHkxKElOREVYUkVMSUQsCisJCQkJCQkJCQkJCQkgT2JqZWN0SWRH ZXREYXR1bSh0aGlzSW5kZXhPaWQpKTsKKwkJCWlmICghSGVhcFR1cGxlSXNWYWxpZChwZ19p bmRleF90dXBsZSkpCisJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9y IGluZGV4ICV1IiwgdGhpc0luZGV4T2lkKTsKKwkJCXBnX2luZGV4X2Zvcm0gPSAoRm9ybV9w Z19pbmRleCkgR0VUU1RSVUNUKHBnX2luZGV4X3R1cGxlKTsKKworCQkJLyogTW9kaWZ5IHRo ZSBpbmRleCBvbmx5IGlmIHVzZXJfY2F0YWxvZ190YWJsZSBkaWZmZXIgKi8KKwkJCWlmIChj YXRhbG9nX3RhYmxlX3ZhbCAhPSBwZ19pbmRleF9mb3JtLT5pbmRpc3VzZXJjYXRhbG9nKQor CQkJeworCQkJCXBnX2luZGV4X2Zvcm0tPmluZGlzdXNlcmNhdGFsb2cgPSBjYXRhbG9nX3Rh YmxlX3ZhbDsKKwkJCQlDYXRhbG9nVHVwbGVVcGRhdGUocGdfaW5kZXgsICZwZ19pbmRleF90 dXBsZS0+dF9zZWxmLCBwZ19pbmRleF90dXBsZSk7CisJCQkJSW52b2tlT2JqZWN0UG9zdEFs dGVySG9va0FyZyhJbmRleFJlbGF0aW9uSWQsIHRoaXNJbmRleE9pZCwgMCwKKwkJCQkJCQkJ CQkJIEludmFsaWRPaWQsIHRydWUpOworCQkJfQorCisJCQloZWFwX2ZyZWV0dXBsZShwZ19p bmRleF90dXBsZSk7CisJCX0KKworCQl0YWJsZV9jbG9zZShwZ19pbmRleCwgUm93RXhjbHVz aXZlTG9jayk7CisJfQorCiAJLyogcmVwZWF0IHRoZSB3aG9sZSBleGVyY2lzZSBmb3IgdGhl IHRvYXN0IHRhYmxlLCBpZiB0aGVyZSdzIG9uZSAqLwogCWlmIChPaWRJc1ZhbGlkKHJlbC0+ cmRfcmVsLT5yZWx0b2FzdHJlbGlkKSkKIAl7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9h Y2Nlc3MvZ2lzdHhsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5oCmluZGV4 IDMzZjFjN2UzMWIuLjQwYzNlYThmNzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9naXN0eGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0eGxvZy5oCkBAIC00 OSw2ICs0OSw3IEBAIHR5cGVkZWYgc3RydWN0IGdpc3R4bG9nUGFnZVVwZGF0ZQogICovCiB0 eXBlZGVmIHN0cnVjdCBnaXN0eGxvZ0RlbGV0ZQogeworCWJvb2wgICAgICAgIG9uQ2F0YWxv Z0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZzsKIAlUcmFuc2FjdGlvbklkIHNuYXBzaG90 Q29uZmxpY3RIb3Jpem9uOwogCXVpbnQxNgkJbnRvZGVsZXRlOwkJLyogbnVtYmVyIG9mIGRl bGV0ZWQgb2Zmc2V0cyAqLwogCkBAIC05Nyw2ICs5OCw3IEBAIHR5cGVkZWYgc3RydWN0IGdp c3R4bG9nUGFnZURlbGV0ZQogICovCiB0eXBlZGVmIHN0cnVjdCBnaXN0eGxvZ1BhZ2VSZXVz ZQogeworCWJvb2wgICAgICAgIG9uQ2F0YWxvZ0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGlu ZzsKIAlSZWxGaWxlTG9jYXRvciBsb2NhdG9yOwogCUJsb2NrTnVtYmVyIGJsb2NrOwogCUZ1 bGxUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hh c2hfeGxvZy5oCmluZGV4IDZkYWZiNGE1OTguLjJlYWU2NDRlODkgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9oYXNoX3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mv aGFzaF94bG9nLmgKQEAgLTI1MCw2ICsyNTAsNyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oYXNo X2luaXRfYml0bWFwX3BhZ2UKICAqLwogdHlwZWRlZiBzdHJ1Y3QgeGxfaGFzaF92YWN1dW1f b25lX3BhZ2UKIHsKKwlib29sICAgICAgICBvbkNhdGFsb2dBY2Nlc3NpYmxlSW5Mb2dpY2Fs RGVjb2Rpbmc7CiAJVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsKIAlp bnQJCQludHVwbGVzOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFt X3hsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCmluZGV4IDVjNzcy OTBlZWMuLjNkODE0YTVhZTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFw YW1feGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCkBAIC0y NDIsNiArMjQyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF91cGRhdGUKICAqLwogdHlw ZWRlZiBzdHJ1Y3QgeGxfaGVhcF9wcnVuZQogeworCWJvb2wgICAgICAgIG9uQ2F0YWxvZ0Fj Y2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZzsKIAlUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29u ZmxpY3RIb3Jpem9uOwogCXVpbnQxNgkJbnJlZGlyZWN0ZWQ7CiAJdWludDE2CQluZGVhZDsK QEAgLTM0Miw2ICszNDMsNyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX2ZyZWV6ZV9wbGFu CiAgKi8KIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfZnJlZXplX3BhZ2UKIHsKKwlib29sICAg ICAgICBvbkNhdGFsb2dBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2Rpbmc7CiAJVHJhbnNhY3Rp b25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsKIAl1aW50MTYJCW5wbGFuczsKIApAQCAt MzU5LDYgKzM2MSw3IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfZnJlZXplX3BhZ2UKICAq LwogdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF92aXNpYmxlCiB7CisJYm9vbCAgICAgICAgb25D YXRhbG9nQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nOwogCVRyYW5zYWN0aW9uSWQgc25h cHNob3RDb25mbGljdEhvcml6b247CiAJdWludDgJCWZsYWdzOwogfSB4bF9oZWFwX3Zpc2li bGU7CkBAIC00MDgsNyArNDExLDcgQEAgZXh0ZXJuIHZvaWQgaGVhcDJfZGVzYyhTdHJpbmdJ bmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOwogZXh0ZXJuIGNvbnN0IGNoYXIg KmhlYXAyX2lkZW50aWZ5KHVpbnQ4IGluZm8pOwogZXh0ZXJuIHZvaWQgaGVhcF94bG9nX2xv Z2ljYWxfcmV3cml0ZShYTG9nUmVhZGVyU3RhdGUgKnIpOwogCi1leHRlcm4gWExvZ1JlY1B0 ciBsb2dfaGVhcF92aXNpYmxlKFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yLCBCdWZmZXIgaGVh cF9idWZmZXIsCitleHRlcm4gWExvZ1JlY1B0ciBsb2dfaGVhcF92aXNpYmxlKFJlbGF0aW9u IHJlbCwgQnVmZmVyIGhlYXBfYnVmZmVyLAogCQkJCQkJCQkgICBCdWZmZXIgdm1fYnVmZmVy LAogCQkJCQkJCQkgICBUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAog CQkJCQkJCQkgICB1aW50OCB2bWZsYWdzKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9uYnR4bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvbmJ0eGxvZy5oCmluZGV4IDNi MmQ5NTljNjkuLjE5MzFmMmJiYmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9u YnR4bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL25idHhsb2cuaApAQCAtMTg1LDYg KzE4NSw3IEBAIHR5cGVkZWYgc3RydWN0IHhsX2J0cmVlX2RlZHVwCiAgKi8KIHR5cGVkZWYg c3RydWN0IHhsX2J0cmVlX3JldXNlX3BhZ2UKIHsKKwlib29sICAgICAgICBvbkNhdGFsb2dB Y2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2Rpbmc7CiAJUmVsRmlsZUxvY2F0b3IgbG9jYXRvcjsK IAlCbG9ja051bWJlciBibG9jazsKIAlGdWxsVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZs aWN0SG9yaXpvbjsKQEAgLTIzMiw2ICsyMzMsNyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9idHJl ZV92YWN1dW0KIAogdHlwZWRlZiBzdHJ1Y3QgeGxfYnRyZWVfZGVsZXRlCiB7CisJYm9vbCAg ICAgICAgb25DYXRhbG9nQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nOwogCVRyYW5zYWN0 aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b247CiAJdWludDE2CQluZGVsZXRlZDsKIAl1 aW50MTYJCW51cGRhdGVkOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ3hs b2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zcGd4bG9nLmgKaW5kZXggODIzMzJjYjY5NC4u MDRmZTRhNGE1MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaAor KysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxvZy5oCkBAIC0yMzcsNiArMjM3LDcgQEAg dHlwZWRlZiBzdHJ1Y3Qgc3BneGxvZ1ZhY3V1bVJvb3QKIAogdHlwZWRlZiBzdHJ1Y3Qgc3Bn eGxvZ1ZhY3V1bVJlZGlyZWN0CiB7CisJYm9vbCAgICAgICAgb25DYXRhbG9nQWNjZXNzaWJs ZUluTG9naWNhbERlY29kaW5nOwogCXVpbnQxNgkJblRvUGxhY2Vob2xkZXI7IC8qIG51bWJl ciBvZiByZWRpcmVjdHMgdG8gbWFrZSBwbGFjZWhvbGRlcnMgKi8KIAlPZmZzZXROdW1iZXIg Zmlyc3RQbGFjZWhvbGRlcjsJLyogZmlyc3QgcGxhY2Vob2xkZXIgdHVwbGUgdG8gcmVtb3Zl ICovCiAJVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsJLyogbmV3ZXN0 IFhJRCBvZiByZW1vdmVkIHJlZGlyZWN0cyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19pbmRleC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19pbmRleC5oCmlu ZGV4IGY4NTM4NDZlZTEuLmRkMTY0MzEzNzggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfaW5kZXguaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2luZGV4LmgK QEAgLTQzLDYgKzQzLDggQEAgQ0FUQUxPRyhwZ19pbmRleCwyNjEwLEluZGV4UmVsYXRpb25J ZCkgQktJX1NDSEVNQV9NQUNSTwogCWJvb2wJCWluZGNoZWNreG1pbjsJLyogbXVzdCB3ZSB3 YWl0IGZvciB4bWluIHRvIGJlIG9sZD8gKi8KIAlib29sCQlpbmRpc3JlYWR5OwkJLyogaXMg dGhpcyBpbmRleCByZWFkeSBmb3IgaW5zZXJ0cz8gKi8KIAlib29sCQlpbmRpc2xpdmU7CQkv KiBpcyB0aGlzIGluZGV4IGFsaXZlIGF0IGFsbD8gKi8KKwlib29sCQlpbmRpc3VzZXJjYXRh bG9nOwkvKiBpcyB0aGlzIGluZGV4IGxpbmtlZCB0byBhIHVzZXIgY2F0YWxvZworCQkJCQkJ CQkJICogcmVsYXRpb24/ICovCiAJYm9vbAkJaW5kaXNyZXBsaWRlbnQ7IC8qIGlzIHRoaXMg aW5kZXggdGhlIGlkZW50aXR5IGZvciByZXBsaWNhdGlvbj8gKi8KIAogCS8qIHZhcmlhYmxl LWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSwgYnV0IHdlIGFsbG93IGRpcmVjdCBhY2Nlc3Mg dG8gaW5ka2V5ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9yZWwuaCBiL3Ny Yy9pbmNsdWRlL3V0aWxzL3JlbC5oCmluZGV4IGYzODNhMmZjYTkuLjliNzdlMjNjMjkgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0 aWxzL3JlbC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAic3RvcmFnZS9zbWdyLmgi CiAjaW5jbHVkZSAidXRpbHMvcmVsY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9yZWx0cmln Z2VyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9jYXRhbG9nLmgiCiAKIAogLyoKQEAgLTM0Myw2 ICszNDQsNyBAQCB0eXBlZGVmIHN0cnVjdCBTdGRSZE9wdGlvbnMKIAogI2RlZmluZSBIRUFQ X01JTl9GSUxMRkFDVE9SCQkJMTAKICNkZWZpbmUgSEVBUF9ERUZBVUxUX0ZJTExGQUNUT1IJ CTEwMAorI2RlZmluZSBIRUFQX0RFRkFVTFRfVVNFUl9DQVRBTE9HX1RBQkxFCQlmYWxzZQog CiAvKgogICogUmVsYXRpb25HZXRUb2FzdFR1cGxlVGFyZ2V0CkBAIC0zNzgsNiArMzgwLDkg QEAgdHlwZWRlZiBzdHJ1Y3QgU3RkUmRPcHRpb25zCiAgKiBSZWxhdGlvbklzVXNlZEFzQ2F0 YWxvZ1RhYmxlCiAgKgkJUmV0dXJucyB3aGV0aGVyIHRoZSByZWxhdGlvbiBzaG91bGQgYmUg dHJlYXRlZCBhcyBhIGNhdGFsb2cgdGFibGUKICAqCQlmcm9tIHRoZSBwb3Ygb2YgbG9naWNh bCBkZWNvZGluZy4gIE5vdGUgbXVsdGlwbGUgZXZhbCBvZiBhcmd1bWVudCEKKyAqCQlUaGlz IGRlZmluaXRpb24gc2hvdWxkIG5vdCBpbnZva2UgYW55dGhpbmcgdGhhdCBwZXJmb3JtcyBj YXRhbG9nCisgKgkJYWNjZXNzOyBvdGhlcndpc2UgaXQgbWF5IGNhdXNlIGluZmluaXRlIHJl Y3Vyc2lvbi4gQ2hlY2sgdGhlIGNvbW1lbnRzCisgKgkJaW4gUmVsYXRpb25Jc0FjY2Vzc2li bGVJbkxvZ2ljYWxEZWNvZGluZygpIGZvciBkZXRhaWxzLgogICovCiAjZGVmaW5lIFJlbGF0 aW9uSXNVc2VkQXNDYXRhbG9nVGFibGUocmVsYXRpb24pCVwKIAkoKHJlbGF0aW9uKS0+cmRf b3B0aW9ucyAmJiBcCkBAIC02NzgsMTIgKzY4Myw0MSBAQCBSZWxhdGlvbkNsb3NlU21ncihS ZWxhdGlvbiByZWxhdGlvbikKICAqIFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVj b2RpbmcKICAqCQlUcnVlIGlmIHdlIG5lZWQgdG8gbG9nIGVub3VnaCBpbmZvcm1hdGlvbiB0 byBoYXZlIGFjY2VzcyB2aWEKICAqCQlkZWNvZGluZyBzbmFwc2hvdC4KKyAqCQlUaGlzIGRl ZmluaXRpb24gc2hvdWxkIG5vdCBpbnZva2UgYW55dGhpbmcgdGhhdCBwZXJmb3JtcyBjYXRh bG9nCisgKgkJYWNjZXNzLiBPdGhlcndpc2UsIGUuZy4gbG9nZ2luZyBhIFdBTCBlbnRyeSBm b3IgY2F0YWxvZyByZWxhdGlvbiBtYXkKKyAqCQlpbnZva2UgdGhpcyBmdW5jdGlvbiwgd2hp Y2ggd2lsbCBpbiB0dXJuIGRvIGNhdGFsb2cgYWNjZXNzLCB3aGljaCBtYXkKKyAqCQlpbiB0 dXJuIGNhdXNlIGFub3RoZXIgc2ltaWxhciBXQUwgZW50cnkgdG8gYmUgbG9nZ2VkLCBsZWFk aW5nIHRvCisgKgkJaW5maW5pdGUgcmVjdXJzaW9uLgogICovCiAjZGVmaW5lIFJlbGF0aW9u SXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsYXRpb24pIFwKIAkoWExvZ0xvZ2lj YWxJbmZvQWN0aXZlKCkgJiYgXAogCSBSZWxhdGlvbk5lZWRzV0FMKHJlbGF0aW9uKSAmJiBc CiAJIChJc0NhdGFsb2dSZWxhdGlvbihyZWxhdGlvbikgfHwgUmVsYXRpb25Jc1VzZWRBc0Nh dGFsb2dUYWJsZShyZWxhdGlvbikpKQogCisvKgorICogSW5kZXhJc1VzZXJDYXRhbG9nCisg KgkJVHJ1ZSBpZiBpbmRleCBpcyBsaW5rZWQgdG8gYSB1c2VyIGNhdGFsb2cgcmVsYXRpb24u CisgKi8KKyNkZWZpbmUgSW5kZXhJc1VzZXJDYXRhbG9nKHJlbGF0aW9uKQkJCQkJCQkJCQkJ XAorCShBc3NlcnRNYWNybyhyZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRf SU5ERVgpLAkJCQlcCisJIChyZWxhdGlvbiktPnJkX2luZGV4LT5pbmRpc3VzZXJjYXRhbG9n KQorCisvKgorICogSW5kZXhJc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZworICoJCVRy dWUgaWYgd2UgbmVlZCB0byBsb2cgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGhhdmUgYWNjZXNz IHZpYQorICoJCWRlY29kaW5nIHNuYXBzaG90LgorICoJCVRoaXMgZGVmaW5pdGlvbiBzaG91 bGQgbm90IGludm9rZSBhbnl0aGluZyB0aGF0IHBlcmZvcm1zIGNhdGFsb2cKKyAqCQlhY2Nl c3MuIE90aGVyd2lzZSwgZS5nLiBsb2dnaW5nIGEgV0FMIGVudHJ5IGZvciBjYXRhbG9nIHJl bGF0aW9uIG1heQorICoJCWludm9rZSB0aGlzIGZ1bmN0aW9uLCB3aGljaCB3aWxsIGluIHR1 cm4gZG8gY2F0YWxvZyBhY2Nlc3MsIHdoaWNoIG1heQorICoJCWluIHR1cm4gY2F1c2UgYW5v dGhlciBzaW1pbGFyIFdBTCBlbnRyeSB0byBiZSBsb2dnZWQsIGxlYWRpbmcgdG8KKyAqCQlp bmZpbml0ZSByZWN1cnNpb24uCisgKi8KKyNkZWZpbmUgSW5kZXhJc0FjY2Vzc2libGVJbkxv Z2ljYWxEZWNvZGluZyhyZWxhdGlvbikgXAorCShBc3NlcnRNYWNybyhyZWxhdGlvbi0+cmRf cmVsLT5yZWxraW5kID09IFJFTEtJTkRfSU5ERVgpLCBcCisJIFhMb2dMb2dpY2FsSW5mb0Fj dGl2ZSgpICYmIFwKKwkgUmVsYXRpb25OZWVkc1dBTChyZWxhdGlvbikgJiYgXAorCSAoSXND YXRhbG9nUmVsYXRpb24ocmVsYXRpb24pIHx8IEluZGV4SXNVc2VyQ2F0YWxvZyhyZWxhdGlv bikpKQorCiAvKgogICogUmVsYXRpb25Jc0xvZ2ljYWxseUxvZ2dlZAogICoJCVRydWUgaWYg d2UgbmVlZCB0byBsb2cgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGV4dHJhY3QgdGhlIGRhdGEg ZnJvbSB0aGUKLS0gCjIuMzQuMQoK --------------GsSZ4kgNjkBi9v4p9BXYo4NX--