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 1oJ98r-0004jl-BV for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Aug 2022 07:50:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oJ98p-0008TM-J2 for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Aug 2022 07:50:07 +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 1oJ98o-0008TD-Jd for pgsql-hackers@lists.postgresql.org; Wed, 03 Aug 2022 07:50:07 +0000 Received: from mail-qk1-x72c.google.com ([2607:f8b0:4864:20::72c]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1oJ98k-0006ju-Bq for pgsql-hackers@lists.postgresql.org; Wed, 03 Aug 2022 07:50:05 +0000 Received: by mail-qk1-x72c.google.com with SMTP id n2so12261333qkk.8 for ; Wed, 03 Aug 2022 00:50:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=KZMCPCbW7oR11O76YEZhI1TfeA1LMn+pXG+Nm9sJ/wk=; b=fz6XF7rHmfEwWX2ZpaqIa/iHtVc0dE9j4rWs3Q989RQDNuj41SGoCHZ9ZhghDYFh/I 4G9dqqvAIIebkbrHJNQ95hK9wbxmVr1Ft2lb5V0TrQN1nfI1LJ50UkaxNfHCAcWhDqM0 hBg4xNqh59qkc8Q5VpM9yIwJl3wUme2LYJcn0iDbW1xoyoRKjoGATcVK2abLHvVr9P6b ZknUIubMmT01Wg5QmNlPnojqUDsHOsATKhB7KfmgzHnHBtOrkufQAdWW+1ActvJ2KSOa kkWudcIKOJE0ArOW1mEm0OEvMmT/bjnnqzygQReSEt6UrDg+axJudmwDyqu+/aae7/V4 KCWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=KZMCPCbW7oR11O76YEZhI1TfeA1LMn+pXG+Nm9sJ/wk=; b=R6JkLI+RPRz5A2AALeoN21XJIwinQW3uWCsW9w+69bRF7c3KM3z8FBKLoNPFoAnZjz g8gUEkv8V4Ei326AhqA38DPKrtaiIemf6Y3mKexAkTFRiZPQzo4AkiUAKriTH11vp6/8 TnZHsGYdS9+8kCgq5c39d7AkC6YqB6KoWuzWmPUJ8iyj1k/CBwohlKqcoLRr6wN9bdHz apP5X9kZC38OOUU6h1Bd70VukW0KFwpA+wT1w/DgcdVkC7y9zONqb2EuqhnEGwyb/BDZ EKDO+7WZlKyvg65W4srf45IRmvbCTEO2pKiPDPry2ebM/n6v6JE8i7M9YO41CfNjLb4l 9CQA== X-Gm-Message-State: AJIora9UVPprn/HRrrEb6gHMwrCI6bdGqDqTzE3RgHBlh24RQBrDefm9 J/Vgn6ipzbxXFD5By/yAczVBd4Op7zAsOuF/yQI= X-Google-Smtp-Source: AGRyM1v1sjeXyNHCltwS6yZyO/TTsdi6Mwl3Ff0WffyIFVpYAZOwd938j/hUDwc4UkF/PF+741ugLYeVd5u0j/UUvxg= X-Received: by 2002:a05:620a:4381:b0:6b5:da97:fe0f with SMTP id a1-20020a05620a438100b006b5da97fe0fmr17248367qkp.84.1659513001410; Wed, 03 Aug 2022 00:50:01 -0700 (PDT) MIME-Version: 1.0 References: <20220802.153012.363912034520325077.horikyota.ntt@gmail.com> In-Reply-To: From: Masahiko Sawada Date: Wed, 3 Aug 2022 16:49:24 +0900 Message-ID: Subject: Re: [BUG] Logical replication failure "ERROR: could not map filenode "base/13237/442428" to relation OID" with catalog modifying txns To: "shiy.fnst@fujitsu.com" Cc: Kyotaro Horiguchi , "amit.kapila16@gmail.com" , "bdrouvot@amazon.com" , "pgsql-hackers@lists.postgresql.org" , "minsoo@amazon.com" Content-Type: multipart/mixed; boundary="000000000000f352e005e5517a40" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f352e005e5517a40 Content-Type: text/plain; charset="UTF-8" On Wed, Aug 3, 2022 at 3:52 PM shiy.fnst@fujitsu.com wrote: > > On Wed, Aug 3, 2022 12:06 PM Masahiko Sawada wrote: > > > > I've attached updated patches that incorporated the above comments as > > well as the comments from Shi yu. Please review them. > > > > Thanks for updating the patch. > > I noticed that in SnapBuildXidSetCatalogChanges(), "i" is initialized in the if > branch in REL10 patch, which is different from REL11 patch. Maybe we can modify > REL11 patch to be consistent with REL10 patch. > > The rest of the patch looks good to me. Oops, thanks for pointing it out. I've fixed it and attached updated patches for all branches so as not to confuse the patch version. There is no update from v12 patch on REL12 - master patches. Regards, -- Masahiko Sawada EDB: https://www.enterprisedb.com/ --000000000000f352e005e5517a40 Content-Type: application/octet-stream; name="REL15_v13-0001-Fix-catalog-lookup-with-the-wrong-snapshot-durin.patch" Content-Disposition: attachment; filename="REL15_v13-0001-Fix-catalog-lookup-with-the-wrong-snapshot-durin.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l6db4dl61 RnJvbSBlYWM2OGJmZjI2OGQ1OTI3MWIxODg0OTk2Yjg0NTZkN2NmNjVjMjcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAyNSBKdWwgMjAyMiAxNDowMjo1MCArMDkwMApTdWJqZWN0OiBbUEFUQ0gg djEzXSBGaXggY2F0YWxvZyBsb29rdXAgd2l0aCB0aGUgd3Jvbmcgc25hcHNob3QgZHVyaW5nIGxv Z2ljYWwKIGRlY29kaW5nLgoKUHJldmlvdXNseSwgd2UgcmVsaWVkIG9uIEhFQVAyX05FV19DSUQg cmVjb3JkcyBhbmQgWEFDVF9JTlZBTElEQVRJT04KcmVjb3JkcyB0byBrbm93IGlmIHRoZSB0cmFu c2FjdGlvbiBoYXMgbW9kaWZpZWQgdGhlIGNhdGFsb2csIGFuZCB0aGF0CmluZm9ybWF0aW9uIGlz IG5vdCBzZXJpYWxpemVkIHRvIHNuYXBzaG90LiBUaGVyZWZvcmUsIGFmdGVyIHRoZSByZXN0YXJ0 LAppZiB0aGUgbG9naWNhbCBkZWNvZGluZyBkZWNvZGVzIG9ubHkgdGhlIGNvbW1pdCByZWNvcmQg b2YgdGhlIHRyYW5zYWN0aW9uCnRoYXQgaGFzIGFjdHVhbGx5IG1vZGlmaWVkIGEgY2F0YWxvZywg d2Ugd2lsbCBtaXNzIGFkZGluZyBpdHMgWElEIHRvIHRoZQpzbmFwc2hvdC4gVGh1cywgd2Ugd2ls bCBlbmQgdXAgbG9va2luZyBhdCBjYXRhbG9ncyB3aXRoIHRoZSB3cm9uZwpzbmFwc2hvdC4KClRv IGZpeCB0aGlzIHByb2JsZW0sIHRoaXMgY2hhbmdlcyB0aGUgc25hcHNob3QgYnVpbGRlciBzbyB0 aGF0IGl0CnJlbWVtYmVycyB0aGUgbGFzdC1ydW5uaW5nLXhhY3RzIGxpc3Qgb2YgdGhlIGRlY29k ZWQgUlVOTklOR19YQUNUUyByZWNvcmQKYWZ0ZXIgcmVzdG9yaW5nIHRoZSBwcmV2aW91c2x5IHNl cmlhbGl6ZWQgc25hcHNob3QuIFRoZW4sIHdlIG1hcmsgdGhlCnRyYW5zYWN0aW9uIGFzIGNvbnRh aW5pbmcgY2F0YWxvZyBjaGFuZ2VzIGlmIGl0J3MgaW4gdGhlIGxpc3Qgb2YgaW5pdGlhbApydW5u aW5nIHRyYW5zYWN0aW9ucyBhbmQgaXRzIGNvbW1pdCByZWNvcmQgaGFzIFhBQ1RfWElORk9fSEFT X0lOVkFMUy4gVG8KYXZvaWQgQUJJIGJyZWFrYWdlLCB3ZSBzdG9yZSB0aGUgYXJyYXkgb2YgdGhl IGluaXRpYWwgcnVubmluZyB0cmFuc2FjdGlvbnMKaW4gdGhlIHN0YXRpYyB2YXJpYWJsZXMgSW5p dGlhbFJ1bm5pbmdYYWN0cyBhbmQgTkluaXRpYWxSdW5uaW5nWGFjdHMsCmluc3RlYWQgb2Ygc3Rv cmluZyB0aG9zZSBpbiBTbmFwQnVpbGQgb3IgUmVvcmRlckJ1ZmZlci4KClRoaXMgYXBwcm9hY2gg aGFzIGEgZmFsc2UgcG9zaXRpdmU7IHdlIGNvdWxkIGVuZCB1cCBhZGRpbmcgdGhlIHRyYW5zYWN0 aW9uCnRoYXQgZGlkbid0IGNoYW5nZSBjYXRhbG9nIHRvIHRoZSBzbmFwc2hvdCBzaW5jZSB3ZSBj YW5ub3QgZGlzdGluZ3Vpc2gKd2hldGhlciB0aGUgdHJhbnNhY3Rpb24gaGFzIGNhdGFsb2cgY2hh bmdlcyBvbmx5IGJ5IGNoZWNraW5nIHRoZSBDT01NSVQKcmVjb3JkLiBJdCBkb2Vzbid0IGhhdmUg dGhlIGluZm9ybWF0aW9uIG9uIHdoaWNoIChzdWIpIHRyYW5zYWN0aW9uIGhhcwpjYXRhbG9nIGNo YW5nZXMsIGFuZCBYQUNUX1hJTkZPX0hBU19JTlZBTFMgZG9lc24ndCBuZWNlc3NhcmlseSBpbmRp Y2F0ZQp0aGF0IHRoZSB0cmFuc2FjdGlvbiBoYXMgY2F0YWxvZyBjaGFuZ2UuIEJ1dCB0aGF0IHdv bid0IGJlIGEgcHJvYmxlbSBzaW5jZQp3ZSB1c2Ugc25hcHNob3QgYnVpbHQgZHVyaW5nIGRlY29k aW5nIG9ubHkgdG8gcmVhZCBzeXN0ZW0gY2F0YWxvZ3MuCgpPbiB0aGUgbWFzdGVyIGJyYW5jaCwg d2UgdG9vayBhIG1vcmUgZnV0dXJlLXByb29mIGFwcHJvYWNoIGJ5IHdyaXRpbmcKY2F0YWxvZyBt b2RpZnlpbmcgdHJhbnNhY3Rpb25zIHRvIHRoZSBzZXJpYWxpemVkIHNuYXBzaG90IHdoaWNoIGF2 b2lkcyB0aGUKYWJvdmUgZmFsc2UgcG9zaXRpdmUuIEJ1dCB3ZSBjYW5ub3QgYmFja3BhdGNoIGl0 IGJlY2F1c2Ugb2YgYSBjaGFuZ2UgaW4KdGhlIFNuYXBCdWlsZC4KClJlcG9ydGVkLWJ5OiBNaWtl IE9oCkF1dGhvcjogTWFzYWhpa28gU2F3YWRhClJldmlld2VkLWJ5OiBBbWl0IEthcGlsYSwgU2hp IHl1LCBUYWthbWljaGkgT3N1bWksIEt5b3Rhcm8gSG9yaWd1Y2hpLCBCZXJ0cmFuZCBEcm91dm90 LCBBaHNhbiBIYWRpCkJhY2twYXRjaC10aHJvdWdoOiAxMApEaXNjdXNzaW9uOiBodHRwczovL3Bv c3Rnci5lcy9tLzgxRDBEOEIwLUU3QzQtNDk5OS1CNjE2LTFFNTAwNERCRENEMiU0MGFtYXpvbi5j b20KLS0tCiBjb250cmliL3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUgICAgICAgICAgICAgICAgfCAg IDIgKy0KIC4uLi9leHBlY3RlZC9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5vdXQgICAgICB8ICA0 NCArKysrKysKIC4uLi9zcGVjcy9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5zcGVjICAgICAgICB8 ICAzOSArKysrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyAgICAg IHwgIDE1ICsrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3NuYXBidWlsZC5jICAg fCAxMzcgKysrKysrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbmFwYnVp bGQuaCAgICAgICAgICAgfCAgIDMgKwogNiBmaWxlcyBjaGFuZ2VkLCAyMzIgaW5zZXJ0aW9ucygr KSwgOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3Rlc3RfZGVjb2Rp bmcvZXhwZWN0ZWQvY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Qub3V0CiBjcmVhdGUgbW9kZSAxMDA2 NDQgY29udHJpYi90ZXN0X2RlY29kaW5nL3NwZWNzL2NhdGFsb2dfY2hhbmdlX3NuYXBzaG90LnNw ZWMKCmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUgYi9jb250cmli L3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUKaW5kZXggYjIyMDkwNjQ3OS4uYzdjZTYwMzcwNiAxMDA2 NDQKLS0tIGEvY29udHJpYi90ZXN0X2RlY29kaW5nL01ha2VmaWxlCisrKyBiL2NvbnRyaWIvdGVz dF9kZWNvZGluZy9NYWtlZmlsZQpAQCAtOCw3ICs4LDcgQEAgUkVHUkVTUyA9IGRkbCB4YWN0IHJl d3JpdGUgdG9hc3QgcGVybWlzc2lvbnMgZGVjb2RpbmdfaW5feGFjdCBcCiAJc3BpbGwgc2xvdCB0 cnVuY2F0ZSBzdHJlYW0gc3RhdHMgdHdvcGhhc2UgdHdvcGhhc2Vfc3RyZWFtCiBJU09MQVRJT04g PSBteGFjdCBkZWxheWVkX3N0YXJ0dXAgb25kaXNrX3N0YXJ0dXAgY29uY3VycmVudF9kZGxfZG1s IFwKIAlvbGRlc3RfeG1pbiBzbmFwc2hvdF90cmFuc2ZlciBzdWJ4YWN0X3dpdGhvdXRfdG9wIGNv bmN1cnJlbnRfc3RyZWFtIFwKLQl0d29waGFzZV9zbmFwc2hvdCBzbG90X2NyZWF0aW9uX2Vycm9y CisJdHdvcGhhc2Vfc25hcHNob3Qgc2xvdF9jcmVhdGlvbl9lcnJvciBjYXRhbG9nX2NoYW5nZV9z bmFwc2hvdAogCiBSRUdSRVNTX09QVFMgPSAtLXRlbXAtY29uZmlnICQodG9wX3NyY2RpcikvY29u dHJpYi90ZXN0X2RlY29kaW5nL2xvZ2ljYWwuY29uZgogSVNPTEFUSU9OX09QVFMgPSAtLXRlbXAt Y29uZmlnICQodG9wX3NyY2RpcikvY29udHJpYi90ZXN0X2RlY29kaW5nL2xvZ2ljYWwuY29uZgpk aWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL2NhdGFsb2dfY2hhbmdl X3NuYXBzaG90Lm91dCBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9jYXRhbG9nX2No YW5nZV9zbmFwc2hvdC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u ZGM0ZjliNzAxOAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBl Y3RlZC9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5vdXQKQEAgLTAsMCArMSw0NCBAQAorUGFyc2Vk IHRlc3Qgc3BlYyB3aXRoIDIgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMwX2lu aXQgczBfYmVnaW4gczBfc2F2ZXBvaW50IHMwX3RydW5jYXRlIHMxX2NoZWNrcG9pbnQgczFfZ2V0 X2NoYW5nZXMgczBfY29tbWl0IHMwX2JlZ2luIHMwX2luc2VydCBzMV9jaGVja3BvaW50IHMxX2dl dF9jaGFuZ2VzIHMwX2NvbW1pdCBzMV9nZXRfY2hhbmdlcworc3RlcCBzMF9pbml0OiBTRUxFQ1Qg J2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnaXNvbGF0aW9u X3Nsb3QnLCAndGVzdF9kZWNvZGluZycpOworP2NvbHVtbj8KKy0tLS0tLS0tCitpbml0ICAgIAor KDEgcm93KQorCitzdGVwIHMwX2JlZ2luOiBCRUdJTjsKK3N0ZXAgczBfc2F2ZXBvaW50OiBTQVZF UE9JTlQgc3AxOworc3RlcCBzMF90cnVuY2F0ZTogVFJVTkNBVEUgdGJsMTsKK3N0ZXAgczFfY2hl Y2twb2ludDogQ0hFQ0tQT0lOVDsKK3N0ZXAgczFfZ2V0X2NoYW5nZXM6IFNFTEVDVCBkYXRhIEZS T00gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdpc29sYXRpb25fc2xvdCcsIE5VTEwsIE5V TEwsICdza2lwLWVtcHR5LXhhY3RzJywgJzEnLCAnaW5jbHVkZS14aWRzJywgJzAnKTsKK2RhdGEK Ky0tLS0KKygwIHJvd3MpCisKK3N0ZXAgczBfY29tbWl0OiBDT01NSVQ7CitzdGVwIHMwX2JlZ2lu OiBCRUdJTjsKK3N0ZXAgczBfaW5zZXJ0OiBJTlNFUlQgSU5UTyB0YmwxIFZBTFVFUyAoMSk7Citz dGVwIHMxX2NoZWNrcG9pbnQ6IENIRUNLUE9JTlQ7CitzdGVwIHMxX2dldF9jaGFuZ2VzOiBTRUxF Q1QgZGF0YSBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnaXNvbGF0aW9uX3Nsb3Qn LCBOVUxMLCBOVUxMLCAnc2tpcC1lbXB0eS14YWN0cycsICcxJywgJ2luY2x1ZGUteGlkcycsICcw Jyk7CitkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQkVHSU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCit0YWJsZSBwdWJsaWMudGJsMTogVFJVTkNBVEU6IChuby1mbGFncykKK0NP TU1JVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorKDMgcm93cykKKworc3RlcCBz MF9jb21taXQ6IENPTU1JVDsKK3N0ZXAgczFfZ2V0X2NoYW5nZXM6IFNFTEVDVCBkYXRhIEZST00g cGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdpc29sYXRpb25fc2xvdCcsIE5VTEwsIE5VTEws ICdza2lwLWVtcHR5LXhhY3RzJywgJzEnLCAnaW5jbHVkZS14aWRzJywgJzAnKTsKK2RhdGEgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KK0JFR0lOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKK3RhYmxlIHB1YmxpYy50YmwxOiBJTlNFUlQ6IHZhbDFbaW50ZWdlcl06MSB2YWwy W2ludGVnZXJdOm51bGwKK0NPTU1JVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKygzIHJvd3MpCisKKz9jb2x1bW4/CistLS0tLS0tLQorc3Rv cCAgICAKKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL3NwZWNz L2NhdGFsb2dfY2hhbmdlX3NuYXBzaG90LnNwZWMgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3Bl Y3MvY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Quc3BlYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwLi4yOTcxZGRjNjljCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi90ZXN0 X2RlY29kaW5nL3NwZWNzL2NhdGFsb2dfY2hhbmdlX3NuYXBzaG90LnNwZWMKQEAgLTAsMCArMSwz OSBAQAorIyBUZXN0IGRlY29kaW5nIG9ubHkgdGhlIGNvbW1pdCByZWNvcmQgb2YgdGhlIHRyYW5z YWN0aW9uIHRoYXQgaGF2ZQorIyBtb2RpZmllZCBjYXRhbG9ncy4KK3NldHVwCit7CisgICAgRFJP UCBUQUJMRSBJRiBFWElTVFMgdGJsMTsKKyAgICBDUkVBVEUgVEFCTEUgdGJsMSAodmFsMSBpbnRl Z2VyLCB2YWwyIGludGVnZXIpOworfQorCit0ZWFyZG93bgoreworICAgIERST1AgVEFCTEUgdGJs MTsKKyAgICBTRUxFQ1QgJ3N0b3AnIEZST00gcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdpc29s YXRpb25fc2xvdCcpOworfQorCitzZXNzaW9uICJzMCIKK3NldHVwIHsgU0VUIHN5bmNocm9ub3Vz X2NvbW1pdD1vbjsgfQorc3RlcCAiczBfaW5pdCIgeyBTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3Jl YXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnaXNvbGF0aW9uX3Nsb3QnLCAndGVzdF9kZWNv ZGluZycpOyB9CitzdGVwICJzMF9iZWdpbiIgeyBCRUdJTjsgfQorc3RlcCAiczBfc2F2ZXBvaW50 IiB7IFNBVkVQT0lOVCBzcDE7IH0KK3N0ZXAgInMwX3RydW5jYXRlIiB7IFRSVU5DQVRFIHRibDE7 IH0KK3N0ZXAgInMwX2luc2VydCIgeyBJTlNFUlQgSU5UTyB0YmwxIFZBTFVFUyAoMSk7IH0KK3N0 ZXAgInMwX2NvbW1pdCIgeyBDT01NSVQ7IH0KKworc2Vzc2lvbiAiczEiCitzZXR1cCB7IFNFVCBz eW5jaHJvbm91c19jb21taXQ9b247IH0KK3N0ZXAgInMxX2NoZWNrcG9pbnQiIHsgQ0hFQ0tQT0lO VDsgfQorc3RlcCAiczFfZ2V0X2NoYW5nZXMiIHsgU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2Fs X3Nsb3RfZ2V0X2NoYW5nZXMoJ2lzb2xhdGlvbl9zbG90JywgTlVMTCwgTlVMTCwgJ3NraXAtZW1w dHkteGFjdHMnLCAnMScsICdpbmNsdWRlLXhpZHMnLCAnMCcpOyB9CisKKyMgRm9yIHRoZSB0cmFu c2FjdGlvbiB0aGF0IFRSVU5DQVRFZCB0aGUgdGFibGUgdGJsMSwgdGhlIGxhc3QgZGVjb2Rpbmcg ZGVjb2RlcworIyBvbmx5IGl0cyBDT01NSVQgcmVjb3JkLCBiZWNhdXNlIGl0IHN0YXJ0cyBmcm9t IHRoZSBSVU5OSU5HX1hBQ1RTIHJlY29yZCBlbWl0dGVkCisjIGR1cmluZyB0aGUgZmlyc3QgY2hl Y2twb2ludCBleGVjdXRpb24uICBUaGlzIHRyYW5zYWN0aW9uIG11c3QgYmUgbWFya2VkIGFzCisj IGNvbnRhaW5pbmcgY2F0YWxvZyBjaGFuZ2VzIHdoaWxlIGRlY29kaW5nIHRoZSBDT01NSVQgcmVj b3JkIGFuZCB0aGUgZGVjb2RpbmcKKyMgb2YgdGhlIElOU0VSVCByZWNvcmQgbXVzdCByZWFkIHRo ZSBwZ19jbGFzcyB3aXRoIHRoZSBjb3JyZWN0IGhpc3RvcmljIHNuYXBzaG90LgorIworIyBOb3Rl IHRoYXQgaW4gYSBjYXNlIHdoZXJlIGJnd3JpdGVyIHdyb3RlIHRoZSBSVU5OSU5HX1hBQ1RTIHJl Y29yZCBiZXR3ZWVuICJzMF9jb21taXQiCisjIGFuZCAiczBfYmVnaW4iLCB0aGlzIGRvZXNuJ3Qg aGFwcGVuIGFzIHRoZSBkZWNvZGluZyBzdGFydHMgZnJvbSB0aGUgUlVOTklOR19YQUNUUworIyBy ZWNvcmQgd3JpdHRlbiBieSBiZ3dyaXRlci4gIE9uZSBtaWdodCB0aGluayB3ZSBjYW4gZWl0aGVy IHN0b3AgdGhlIGJnd3JpdGVyIG9yCisjIGluY3JlYXNlIExPR19TTkFQU0hPVF9JTlRFUlZBTF9N UyBidXQgaXQncyBub3QgcHJhY3RpY2FsIHZpYSB0ZXN0cy4KK3Blcm11dGF0aW9uICJzMF9pbml0 IiAiczBfYmVnaW4iICJzMF9zYXZlcG9pbnQiICJzMF90cnVuY2F0ZSIgInMxX2NoZWNrcG9pbnQi ICJzMV9nZXRfY2hhbmdlcyIgInMwX2NvbW1pdCIgInMwX2JlZ2luIiAiczBfaW5zZXJ0IiAiczFf Y2hlY2twb2ludCIgInMxX2dldF9jaGFuZ2VzIiAiczBfY29tbWl0IiAiczFfZ2V0X2NoYW5nZXMi CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYwppbmRleCBhYTI0MjdiYTcz Li5lYThhMjE2NmFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L2RlY29kZS5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMK QEAgLTYyNyw2ICs2MjcsMjEgQEAgRGVjb2RlQ29tbWl0KExvZ2ljYWxEZWNvZGluZ0NvbnRleHQg KmN0eCwgWExvZ1JlY29yZEJ1ZmZlciAqYnVmLAogCQljb21taXRfdGltZSA9IHBhcnNlZC0+b3Jp Z2luX3RpbWVzdGFtcDsKIAl9CiAKKwkvKgorCSAqIElmIHRoZSBDT01NSVQgcmVjb3JkIGhhcyBp bnZhbGlkYXRpb24gbWVzc2FnZXMsIGl0IGNvdWxkIGhhdmUgY2F0YWxvZworCSAqIGNoYW5nZXMu IEl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgZGlkbid0IG1hcmsgdGhpcyB0cmFuc2FjdGlvbiBhcwor CSAqIGNvbnRhaW5pbmcgY2F0YWxvZyBjaGFuZ2VzIHdoZW4gdGhlIGRlY29kaW5nIHN0YXJ0cyBm cm9tIGEgY29tbWl0CisJICogcmVjb3JkIHdpdGhvdXQgZGVjb2RpbmcgdGhlIHRyYW5zYWN0aW9u J3Mgb3RoZXIgY2hhbmdlcy4gU28sIHdlIGVuc3VyZQorCSAqIHRvIG1hcmsgc3VjaCB0cmFuc2Fj dGlvbnMgYXMgY29udGFpbmluZyBjYXRhbG9nIGNoYW5nZS4KKwkgKgorCSAqIFRoaXMgbXVzdCBi ZSBkb25lIGJlZm9yZSBTbmFwQnVpbGRDb21taXRUeG4oKSBzbyB0aGF0IHdlIGNhbiBpbmNsdWRl CisJICogdGhlc2UgdHJhbnNhY3Rpb25zIGluIHRoZSBoaXN0b3JpYyBzbmFwc2hvdC4KKwkgKi8K KwlpZiAocGFyc2VkLT54aW5mbyAmIFhBQ1RfWElORk9fSEFTX0lOVkFMUykKKwkJU25hcEJ1aWxk WGlkU2V0Q2F0YWxvZ0NoYW5nZXMoY3R4LT5zbmFwc2hvdF9idWlsZGVyLCB4aWQsCisJCQkJCQkJ CQkgIHBhcnNlZC0+bnN1YnhhY3RzLCBwYXJzZWQtPnN1YnhhY3RzLAorCQkJCQkJCQkJICBidWYt Pm9yaWdwdHIpOworCiAJU25hcEJ1aWxkQ29tbWl0VHhuKGN0eC0+c25hcHNob3RfYnVpbGRlciwg YnVmLT5vcmlncHRyLCB4aWQsCiAJCQkJCSAgIHBhcnNlZC0+bnN1YnhhY3RzLCBwYXJzZWQtPnN1 YnhhY3RzKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9z bmFwYnVpbGQuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc25hcGJ1aWxkLmMK aW5kZXggMTExOWExMmRiOS4uMzg1ODE3ZTI5NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9zbmFwYnVpbGQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3NuYXBidWlsZC5jCkBAIC0yNTAsOCArMjUwLDM4IEBAIHN0cnVjdCBTbmFwQnVp bGQKIHN0YXRpYyBSZXNvdXJjZU93bmVyIFNhdmVkUmVzb3VyY2VPd25lckR1cmluZ0V4cG9ydCA9 IE5VTEw7CiBzdGF0aWMgYm9vbCBFeHBvcnRJblByb2dyZXNzID0gZmFsc2U7CiAKLS8qIC0+Y29t bWl0dGVkIG1hbmlwdWxhdGlvbiAqLwotc3RhdGljIHZvaWQgU25hcEJ1aWxkUHVyZ2VDb21taXR0 ZWRUeG4oU25hcEJ1aWxkICpidWlsZGVyKTsKKy8qCisgKiBBcnJheSBvZiB0cmFuc2FjdGlvbnMg YW5kIHN1YnRyYW5zYWN0aW9ucyB0aGF0IHdlcmUgcnVubmluZyB3aGVuCisgKiB0aGUgeGxfcnVu bmluZ194YWN0cyByZWNvcmQgdGhhdCB3ZSBkZWNvZGVkIHdhcyB3cml0dGVuLiBUaGUgYXJyYXkg aXMKKyAqIHNvcnRlZCBpbiB4aWRDb21wYXJhdG9yIG9yZGVyLiBXZSByZW1vdmUgeGlkcyBmcm9t IHRoaXMgYXJyYXkgd2hlbgorICogdGhleSBiZWNvbWUgb2xkIGVub3VnaCB0byBtYXR0ZXIsIGFu ZCB0aGVuIGl0IGV2ZW50dWFsbHkgYmVjb21lcyBlbXB0eS4KKyAqIFRoaXMgYXJyYXkgaXMgYWxs b2NhdGVkIGluIGJ1aWxkZXItPmNvbnRleHQgc28gaXRzIGxpZmV0aW1lIGlzIHRoZSBzYW1lCisg KiBhcyB0aGUgc25hcHNob3QgYnVpbGRlci4KKyAqCisgKiBXZSBub3JtYWxseSByZWx5IG9uIHNv bWUgV0FMIHJlY29yZCB0eXBlcyBzdWNoIGFzIEhFQVAyX05FV19DSUQgdG8ga25vdworICogaWYg dGhlIHRyYW5zYWN0aW9uIGhhcyBjaGFuZ2VkIHRoZSBjYXRhbG9nLiBCdXQgaXQgY291bGQgaGFw cGVuIHRoYXQgdGhlCisgKiBsb2dpY2FsIGRlY29kaW5nIGRlY29kZXMgb25seSB0aGUgY29tbWl0 IHJlY29yZCBvZiB0aGUgdHJhbnNhY3Rpb24gYWZ0ZXIKKyAqIHJlc3RvcmluZyB0aGUgcHJldmlv dXNseSBzZXJpYWxpemVkIHNuYXBzaG90IGluIHdoaWNoIGNhc2Ugd2Ugd2lsbCBtaXNzCisgKiBh ZGRpbmcgdGhlIHhpZCB0byB0aGUgc25hcHNob3QgYW5kIGVuZCB1cCBsb29raW5nIGF0IHRoZSBj YXRhbG9ncyB3aXRoIHRoZQorICogd3Jvbmcgc25hcHNob3QuCisgKgorICogTm93IHRvIGF2b2lk IHRoZSBhYm92ZSBwcm9ibGVtLCBpZiB0aGUgQ09NTUlUIHJlY29yZCBvZiB0aGUgeGlkIGxpc3Rl ZCBpbgorICogSW5pdGlhbFJ1bm5pbmdYYWN0cyBoYXMgWEFDVF9YSU5GT19IQVNfSU5WQUxTIGZs YWcsIHdlIG1hcmsgYm90aCB0aGUgdG9wCisgKiB0cmFuc2FjdGlvbiBhbmQgaXRzIHN1YnN0cmFu c2FjdGlvbnMgYXMgY29udGFpbmluZyBjYXRhbG9nIGNoYW5nZXMuCisgKgorICogV2UgY291bGQg ZW5kIHVwIGFkZGluZyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBkaWRuJ3QgY2hhbmdlIGNhdGFsb2cK KyAqIHRvIHRoZSBzbmFwc2hvdCBzaW5jZSB3ZSBjYW5ub3QgZGlzdGluZ3Vpc2ggd2hldGhlciB0 aGUgdHJhbnNhY3Rpb24KKyAqIGhhcyBjYXRhbG9nIGNoYW5nZXMgb25seSBieSBjaGVja2luZyB0 aGUgQ09NTUlUIHJlY29yZC4gSXQgZG9lc24ndAorICogaGF2ZSB0aGUgaW5mb3JtYXRpb24gb24g d2hpY2ggKHN1YikgdHJhbnNhY3Rpb24gaGFzIGNhdGFsb2cgY2hhbmdlcywKKyAqIGFuZCBYQUNU X1hJTkZPX0hBU19JTlZBTFMgZG9lc24ndCBuZWNlc3NhcmlseSBpbmRpY2F0ZSB0aGF0IHRoZQor ICogdHJhbnNhY3Rpb24gaGFzIGNhdGFsb2cgY2hhbmdlLiBCdXQgdGhhdCB3b24ndCBiZSBhIHBy b2JsZW0gc2luY2Ugd2UKKyAqIHVzZSBzbmFwc2hvdCBidWlsdCBkdXJpbmcgZGVjb2Rpbmcgb25s eSBmb3IgcmVhZGluZyBzeXN0ZW0gY2F0YWxvZ3MuCisgKi8KK3N0YXRpYyBUcmFuc2FjdGlvbklk ICpJbml0aWFsUnVubmluZ1hhY3RzID0gTlVMTDsKK3N0YXRpYyBpbnQJTkluaXRpYWxSdW5uaW5n WGFjdHMgPSAwOworCisvKiAtPmNvbW1pdHRlZCBhbmQgSW5pdGFpbFJ1bm5pbmdYYWN0cyBtYW5p cHVsYXRpb24gKi8KK3N0YXRpYyB2b2lkIFNuYXBCdWlsZFB1cmdlT2xkZXJUeG4oU25hcEJ1aWxk ICpidWlsZGVyKTsKIAogLyogc25hcHNob3QgYnVpbGRpbmcvbWFuaXB1bGF0aW9uL2Rpc3RyaWJ1 dGlvbiBmdW5jdGlvbnMgKi8KIHN0YXRpYyBTbmFwc2hvdCBTbmFwQnVpbGRCdWlsZFNuYXBzaG90 KFNuYXBCdWlsZCAqYnVpbGRlcik7CkBAIC04ODgsMTIgKzkxOCwxNyBAQCBTbmFwQnVpbGRBZGRD b21taXR0ZWRUeG4oU25hcEJ1aWxkICpidWlsZGVyLCBUcmFuc2FjdGlvbklkIHhpZCkKIH0KIAog LyoKLSAqIFJlbW92ZSBrbm93bGVkZ2UgYWJvdXQgdHJhbnNhY3Rpb25zIHdlIHRyZWF0IGFzIGNv bW1pdHRlZCB0aGF0IGFyZSBzbWFsbGVyCi0gKiB0aGFuIC0+eG1pbi4gVGhvc2Ugd29uJ3QgZXZl ciBnZXQgY2hlY2tlZCB2aWEgdGhlIC0+Y29tbWl0dGVkIGFycmF5IGJ1dCB2aWEKLSAqIHRoZSBj bG9nIG1hY2hpbmVyeSwgc28gd2UgZG9uJ3QgbmVlZCB0byB3YXN0ZSBtZW1vcnkgb24gdGhlbS4K KyAqIFJlbW92ZSBrbm93bGVkZ2UgYWJvdXQgdHJhbnNhY3Rpb25zIHdlIHRyZWF0IGFzIGNvbW1p dHRlZCBhbmQgdGhlIGluaXRpYWwKKyAqIHJ1bm5pbmcgdHJhbnNhY3Rpb25zIHRoYXQgYXJlIHNt YWxsZXIgdGhhbiAtPnhtaW4uIFRob3NlIHdvbid0IGV2ZXIgZ2V0CisgKiBjaGVja2VkIHZpYSB0 aGUgLT5jb21taXR0ZWQgb3IgSW5pdGlhbFJ1bm5pbmdYYWN0cyBhcnJheSwgcmVzcGVjdGl2ZWx5 LgorICogVGhlIGNvbW1pdHRlZCB4aWRzIHdpbGwgZ2V0IGNoZWNrZWQgdmlhIHRoZSBjbG9nIG1h Y2hpbmVyeS4KKyAqCisgKiBXZSBjYW4gaWRlYWxseSByZW1vdmUgdGhlIHRyYW5zYWN0aW9uIGZy b20gSW5pdGlhbFJ1bm5pbmdYYWN0cyBhcnJheQorICogb25jZSBpdCBpcyBmaW5pc2hlZCAoY29t bWl0dGVkL2Fib3J0ZWQpIGJ1dCB0aGF0IGNvdWxkIGJlIGNvc3RseSBhcyB3ZSBuZWVkCisgKiB0 byBtYWludGFpbiB0aGUgeGlkcyBvcmRlciBpbiB0aGUgYXJyYXkuCiAgKi8KIHN0YXRpYyB2b2lk Ci1TbmFwQnVpbGRQdXJnZUNvbW1pdHRlZFR4bihTbmFwQnVpbGQgKmJ1aWxkZXIpCitTbmFwQnVp bGRQdXJnZU9sZGVyVHhuKFNuYXBCdWlsZCAqYnVpbGRlcikKIHsKIAlpbnQJCQlvZmY7CiAJVHJh bnNhY3Rpb25JZCAqd29ya3NwYWNlOwpAQCAtOTI4LDYgKzk2Myw0OSBAQCBTbmFwQnVpbGRQdXJn ZUNvbW1pdHRlZFR4bihTbmFwQnVpbGQgKmJ1aWxkZXIpCiAJYnVpbGRlci0+Y29tbWl0dGVkLnhj bnQgPSBzdXJ2aXZpbmdfeGlkczsKIAogCXBmcmVlKHdvcmtzcGFjZSk7CisKKwkvKiBRdWljayBl eGl0IGlmIHRoZXJlIGlzIG5vIGluaXRpYWwgcnVubmluZyB0cmFuc2FjdGlvbnMgKi8KKwlpZiAo TkluaXRpYWxSdW5uaW5nWGFjdHMgPT0gMCkKKwkJcmV0dXJuOworCisJLyogYm91bmQgY2hlY2sg aWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHRyYW5zYWN0aW9uIHRvIHJlbW92ZSAqLworCWlmICgh Tm9ybWFsVHJhbnNhY3Rpb25JZFByZWNlZGVzKEluaXRpYWxSdW5uaW5nWGFjdHNbMF0sCisJCQkJ CQkJCQkgYnVpbGRlci0+eG1pbikpCisJCXJldHVybjsKKworCS8qCisJICogcHVyZ2UgeGlkcyBp biBJbml0aWFsUnVubmluZ1hhY3RzIGFzIHdlbGwuIFRoZSBwdXJnZWQgYXJyYXkgbXVzdCBhbHNv CisJICogYmUgc29ydGVkIGluIHhpZENvbXBhcmF0b3Igb3JkZXIuCisJICovCisJd29ya3NwYWNl ID0KKwkJTWVtb3J5Q29udGV4dEFsbG9jKGJ1aWxkZXItPmNvbnRleHQsCisJCQkJCQkgICBOSW5p dGlhbFJ1bm5pbmdYYWN0cyAqIHNpemVvZihUcmFuc2FjdGlvbklkKSk7CisJc3Vydml2aW5nX3hp ZHMgPSAwOworCWZvciAob2ZmID0gMDsgb2ZmIDwgTkluaXRpYWxSdW5uaW5nWGFjdHM7IG9mZisr KQorCXsKKwkJaWYgKE5vcm1hbFRyYW5zYWN0aW9uSWRQcmVjZWRlcyhJbml0aWFsUnVubmluZ1hh Y3RzW29mZl0sCisJCQkJCQkJCQkJYnVpbGRlci0+eG1pbikpCisJCQk7CQkJCQkvKiByZW1vdmUg Ki8KKwkJZWxzZQorCQkJd29ya3NwYWNlW3N1cnZpdmluZ194aWRzKytdID0gSW5pdGlhbFJ1bm5p bmdYYWN0c1tvZmZdOworCX0KKworCWlmIChzdXJ2aXZpbmdfeGlkcyA+IDApCisJCW1lbWNweShJ bml0aWFsUnVubmluZ1hhY3RzLCB3b3Jrc3BhY2UsCisJCQkgICBzaXplb2YoVHJhbnNhY3Rpb25J ZCkgKiBzdXJ2aXZpbmdfeGlkcyk7CisJZWxzZQorCXsKKwkJcGZyZWUoSW5pdGlhbFJ1bm5pbmdY YWN0cyk7CisJCUluaXRpYWxSdW5uaW5nWGFjdHMgPSBOVUxMOworCX0KKworCWVsb2coREVCVUcz LCAicHVyZ2VkIGluaXRpYWwgcnVubmluZyB0cmFuc2FjdGlvbnMgZnJvbSAldSB0byAldSwgb2xk ZXN0IHJ1bm5pbmcgeGlkICV1IiwKKwkJICh1aW50MzIpIE5Jbml0aWFsUnVubmluZ1hhY3RzLAor CQkgKHVpbnQzMikgc3Vydml2aW5nX3hpZHMsCisJCSBidWlsZGVyLT54bWluKTsKKworCU5Jbml0 aWFsUnVubmluZ1hhY3RzID0gc3Vydml2aW5nX3hpZHM7CisJcGZyZWUod29ya3NwYWNlKTsKIH0K IAogLyoKQEAgLTExMzUsNyArMTIxMyw3IEBAIFNuYXBCdWlsZFByb2Nlc3NSdW5uaW5nWGFjdHMo U25hcEJ1aWxkICpidWlsZGVyLCBYTG9nUmVjUHRyIGxzbiwgeGxfcnVubmluZ194YWN0CiAJYnVp bGRlci0+eG1pbiA9IHJ1bm5pbmctPm9sZGVzdFJ1bm5pbmdYaWQ7CiAKIAkvKiBSZW1vdmUgdHJh bnNhY3Rpb25zIHdlIGRvbid0IG5lZWQgdG8ga2VlcCB0cmFjayBvZmYgYW55bW9yZSAqLwotCVNu YXBCdWlsZFB1cmdlQ29tbWl0dGVkVHhuKGJ1aWxkZXIpOworCVNuYXBCdWlsZFB1cmdlT2xkZXJU eG4oYnVpbGRlcik7CiAKIAkvKgogCSAqIEFkdmFuY2UgdGhlIHhtaW4gbGltaXQgZm9yIHRoZSBj dXJyZW50IHJlcGxpY2F0aW9uIHNsb3QsIHRvIGFsbG93CkBAIC0xMjg2LDYgKzEzNjQsMjAgQEAg U25hcEJ1aWxkRmluZFNuYXBzaG90KFNuYXBCdWlsZCAqYnVpbGRlciwgWExvZ1JlY1B0ciBsc24s IHhsX3J1bm5pbmdfeGFjdHMgKnJ1bm4KIAllbHNlIGlmICghYnVpbGRlci0+YnVpbGRpbmdfZnVs bF9zbmFwc2hvdCAmJgogCQkJIFNuYXBCdWlsZFJlc3RvcmUoYnVpbGRlciwgbHNuKSkKIAl7CisJ CWludAkJCW54YWN0cyA9IHJ1bm5pbmctPnN1YnhjbnQgKyBydW5uaW5nLT54Y250OworCQlTaXpl CQlzeiA9IHNpemVvZihUcmFuc2FjdGlvbklkKSAqIG54YWN0czsKKworCQkvKgorCQkgKiBSZW1l bWJlciB0aGUgdHJhbnNhY3Rpb25zIGFuZCBzdWJ0cmFuc2FjdGlvbnMgdGhhdCB3ZXJlIHJ1bm5p bmcKKwkJICogd2hlbiB4bF9ydW5uaW5nX3hhY3RzIHJlY29yZCB0aGF0IHdlIGRlY29kZWQgd2Fz IHdyaXR0ZW4uIFdlIHVzZQorCQkgKiB0aGlzIGxhdGVyIHRvIGlkZW50aWZ5IHRoZSB0cmFuc2Fj dGlvbnMgaGF2ZSBwZXJmb3JtZWQgY2F0YWxvZworCQkgKiBjaGFuZ2VzLiBTZWUgU25hcEJ1aWxk WGlkU2V0Q2F0YWxvZ0NoYW5nZXMuCisJCSAqLworCQlOSW5pdGlhbFJ1bm5pbmdYYWN0cyA9IG54 YWN0czsKKwkJSW5pdGlhbFJ1bm5pbmdYYWN0cyA9IE1lbW9yeUNvbnRleHRBbGxvYyhidWlsZGVy LT5jb250ZXh0LCBzeik7CisJCW1lbWNweShJbml0aWFsUnVubmluZ1hhY3RzLCBydW5uaW5nLT54 aWRzLCBzeik7CisJCXFzb3J0KEluaXRpYWxSdW5uaW5nWGFjdHMsIG54YWN0cywgc2l6ZW9mKFRy YW5zYWN0aW9uSWQpLCB4aWRDb21wYXJhdG9yKTsKKwogCQkvKiB0aGVyZSB3b24ndCBiZSBhbnkg c3RhdGUgdG8gY2xlYW51cCAqLwogCQlyZXR1cm4gZmFsc2U7CiAJfQpAQCAtMjAwMCwzICsyMDky LDM0IEBAIENoZWNrUG9pbnRTbmFwQnVpbGQodm9pZCkKIAl9CiAJRnJlZURpcihzbmFwX2Rpcik7 CiB9CisKKy8qCisgKiBJZiB0aGUgZ2l2ZW4geGlkIGlzIGluIHRoZSBsaXN0IG9mIHRoZSBpbml0 aWFsIHJ1bm5pbmcgeGFjdHMsIHdlIG1hcmsgdGhlCisgKiB0cmFuc2FjdGlvbiBhbmQgaXRzIHN1 YnRyYW5zYWN0aW9ucyBhcyBjb250YWluaW5nIGNhdGFsb2cgY2hhbmdlcy4gU2VlCisgKiBjb21t ZW50cyBmb3IgTkluaXRpYWxSdW5uaW5nWGFjdHMgYW5kIEluaXRpYWxSdW5uaW5nWGFjdHMgZm9y IGFkZGl0aW9uYWwKKyAqIGluZm8uCisgKi8KK3ZvaWQKK1NuYXBCdWlsZFhpZFNldENhdGFsb2dD aGFuZ2VzKFNuYXBCdWlsZCAqYnVpbGRlciwgVHJhbnNhY3Rpb25JZCB4aWQsIGludCBzdWJ4Y250 LAorCQkJCQkJCSAgVHJhbnNhY3Rpb25JZCAqc3VieGFjdHMsIFhMb2dSZWNQdHIgbHNuKQorewor CS8qCisJICogU2tpcCBpZiB0aGVyZSBpcyBubyBpbml0aWFsIHJ1bm5pbmcgeGFjdHMgaW5mb3Jt YXRpb24gb3IgdGhlCisJICogdHJhbnNhY3Rpb24gaXMgYWxyZWFkeSBtYXJrZWQgYXMgY29udGFp bmluZyBjYXRhbG9nIGNoYW5nZXMuCisJICovCisJaWYgKE5Jbml0aWFsUnVubmluZ1hhY3RzID09 IDAgfHwKKwkJUmVvcmRlckJ1ZmZlclhpZEhhc0NhdGFsb2dDaGFuZ2VzKGJ1aWxkZXItPnJlb3Jk ZXIsIHhpZCkpCisJCXJldHVybjsKKworCWlmIChic2VhcmNoKCZ4aWQsIEluaXRpYWxSdW5uaW5n WGFjdHMsIE5Jbml0aWFsUnVubmluZ1hhY3RzLAorCQkJCXNpemVvZihUcmFuc2FjdGlvbklkKSwg eGlkQ29tcGFyYXRvcikgIT0gTlVMTCkKKwl7CisJCVJlb3JkZXJCdWZmZXJYaWRTZXRDYXRhbG9n Q2hhbmdlcyhidWlsZGVyLT5yZW9yZGVyLCB4aWQsIGxzbik7CisKKwkJZm9yIChpbnQgaSA9IDA7 IGkgPCBzdWJ4Y250OyBpKyspCisJCXsKKwkJCVJlb3JkZXJCdWZmZXJBc3NpZ25DaGlsZChidWls ZGVyLT5yZW9yZGVyLCB4aWQsIHN1YnhhY3RzW2ldLCBsc24pOworCQkJUmVvcmRlckJ1ZmZlclhp ZFNldENhdGFsb2dDaGFuZ2VzKGJ1aWxkZXItPnJlb3JkZXIsIHN1YnhhY3RzW2ldLCBsc24pOwor CQl9CisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc25hcGJ1aWxk LmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbmFwYnVpbGQuaAppbmRleCBkMTc5MjUxYWFk Li41M2Q4M2YzNDhhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbmFwYnVp bGQuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbmFwYnVpbGQuaApAQCAtOTEsNCAr OTEsNyBAQCBleHRlcm4gdm9pZCBTbmFwQnVpbGRQcm9jZXNzUnVubmluZ1hhY3RzKFNuYXBCdWls ZCAqYnVpbGRlciwgWExvZ1JlY1B0ciBsc24sCiAJCQkJCQkJCQkJIHN0cnVjdCB4bF9ydW5uaW5n X3hhY3RzICpydW5uaW5nKTsKIGV4dGVybiB2b2lkIFNuYXBCdWlsZFNlcmlhbGl6YXRpb25Qb2lu dChTbmFwQnVpbGQgKmJ1aWxkZXIsIFhMb2dSZWNQdHIgbHNuKTsKIAorZXh0ZXJuIHZvaWQgU25h cEJ1aWxkWGlkU2V0Q2F0YWxvZ0NoYW5nZXMoU25hcEJ1aWxkICpidWlsZGVyLCBUcmFuc2FjdGlv bklkIHhpZCwKKwkJCQkJCQkJCQkgIGludCBzdWJ4Y250LCBUcmFuc2FjdGlvbklkICpzdWJ4YWN0 cywKKwkJCQkJCQkJCQkgIFhMb2dSZWNQdHIgbHNuKTsKICNlbmRpZgkJCQkJCQkvKiBTTkFQQlVJ TERfSCAqLwotLSAKMi4yNC4zIChBcHBsZSBHaXQtMTI4KQoK --000000000000f352e005e5517a40 Content-Type: application/octet-stream; name="master_v13-0001-Fix-catalog-lookup-with-the-wrong-snapshot-durin.patch" Content-Disposition: attachment; filename="master_v13-0001-Fix-catalog-lookup-with-the-wrong-snapshot-durin.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l6db4dl20 RnJvbSAyYjkyZTYwMTQyN2M3Zjg5NjczNzI3ZGQ2YTE1MmZmNDY3MDZmNzk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNv bT4KRGF0ZTogV2VkLCA2IEp1bCAyMDIyIDEyOjUzOjM2ICswOTAwClN1YmplY3Q6IFtQQVRDSCB2 MTNdIEZpeCBjYXRhbG9nIGxvb2t1cCB3aXRoIHRoZSB3cm9uZyBzbmFwc2hvdCBkdXJpbmcgbG9n aWNhbAogZGVjb2RpbmcuCgpQcmV2aW91c2x5LCB3ZSByZWxpZWQgb24gSEVBUDJfTkVXX0NJRCBy ZWNvcmRzIGFuZCBYQUNUX0lOVkFMSURBVElPTgpyZWNvcmRzIHRvIGtub3cgaWYgdGhlIHRyYW5z YWN0aW9uIGhhcyBtb2RpZmllZCB0aGUgY2F0YWxvZywgYW5kIHRoYXQKaW5mb3JtYXRpb24gaXMg bm90IHNlcmlhbGl6ZWQgdG8gc25hcHNob3QuIFRoZXJlZm9yZSwgYWZ0ZXIgdGhlIHJlc3RhcnQs CmlmIHRoZSBsb2dpY2FsIGRlY29kaW5nIGRlY29kZXMgb25seSB0aGUgY29tbWl0IHJlY29yZCBv ZiB0aGUgdHJhbnNhY3Rpb24KdGhhdCBoYXMgYWN0dWFsbHkgbW9kaWZpZWQgYSBjYXRhbG9nLCB3 ZSB3aWxsIG1pc3MgYWRkaW5nIGl0cyBYSUQgdG8gdGhlCnNuYXBzaG90LiBUaHVzLCB3ZSB3aWxs IGVuZCB1cCBsb29raW5nIGF0IGNhdGFsb2dzIHdpdGggdGhlIHdyb25nCnNuYXBzaG90LgoKVG8g Zml4IHRoaXMgcHJvYmxlbSwgdGhpcyBjaGFuZ2UgYWRkcyB0aGUgbGlzdCBvZiB0cmFuc2FjdGlv biBJRHMgYW5kCnN1Yi10cmFuc2FjdGlvbiBJRHMsIHRoYXQgaGF2ZSBtb2RpZmllZCBjYXRhbG9n cyBhbmQgYXJlIHJ1bm5pbmcgZHVyaW5nCnNuYXBzaG90IHNlcmlhbGl6YXRpb24sIHRvIHRoZSBz ZXJpYWxpemVkIHNuYXBzaG90LiBBZnRlciByZXN0YXJ0IG9yCm90aGVyd2lzZSwgd2hlbiB3ZSBy ZXN0b3JlIGZyb20gc3VjaCBhIHNlcmlhbGl6ZWQgc25hcHNob3QsIHRoZQpjb3JyZXNwb25kaW5n IGxpc3QgaXMgcmVzdG9yZWQgaW4gbWVtb3J5LiBOb3csIHdoZW4gZGVjb2RpbmcgYSBDT01NSVQK cmVjb3JkLCB3ZSBjaGVjayBib3RoIHRoZSBsaXN0IGFuZCB0aGUgUmVvcmRlckJ1ZmZlciB0byBz ZWUgaWYgdGhlCnRyYW5zYWN0aW9uIGhhcyBtb2RpZmllZCBjYXRhbG9ncy4KClNpbmNlIHRoaXMg YWRkcyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIHRoZSBzZXJpYWxpemVkIHNuYXBzaG90LCB3 ZQpjYW5ub3QgYmFja3BhdGNoIGl0LiBGb3IgYmFjayBicmFuY2hlcywgd2UgdG9vayBhbm90aGVy IGFwcHJvYWNoLgpXZSByZW1lbWJlciB0aGUgbGFzdC1ydW5uaW5nLXhhY3RzIGxpc3Qgb2YgdGhl IGRlY29kZWQgUlVOTklOR19YQUNUUwpyZWNvcmQgYWZ0ZXIgcmVzdG9yaW5nIHRoZSBwcmV2aW91 c2x5IHNlcmlhbGl6ZWQgc25hcHNob3QuIFRoZW4sIHdlIG1hcmsKdGhlIHRyYW5zYWN0aW9uIGFz IGNvbnRhaW5pbmcgY2F0YWxvZyBjaGFuZ2VzIGlmIGl0J3MgaW4gdGhlIGxpc3Qgb2YKaW5pdGlh bCBydW5uaW5nIHRyYW5zYWN0aW9ucyBhbmQgaXRzIGNvbW1pdCByZWNvcmQgaGFzClhBQ1RfWElO Rk9fSEFTX0lOVkFMUy4gVGhpcyBkb2Vzbid0IHJlcXVpcmUgYW55IGZpbGUgZm9ybWF0IGNoYW5n ZXMgYnV0CnRoZSB0cmFuc2FjdGlvbiB3aWxsIGVuZCB1cCBiZWluZyBhZGRlZCB0byB0aGUgc25h cHNob3QgZXZlbiBpZiBpdCBoYXMKb25seSByZWxjYWNoZSBpbnZhbGlkYXRpb25zLiBCdXQgdGhh dCB3b24ndCBiZSBhIHByb2JsZW0gc2luY2Ugd2UgdXNlCnNuYXBzaG90IGJ1aWx0IGR1cmluZyBk ZWNvZGluZyBvbmx5IHRvIHJlYWQgc3lzdGVtIGNhdGFsb2dzLgoKVGhpcyBjb21taXQgYnVtcHMg U05BUEJVSUxEX1ZFUlNJT04gYmVjYXVzZSBvZiBhIGNoYW5nZSBpbiBTbmFwQnVpbGQuCgpSZXBv cnRlZC1ieTogTWlrZSBPaApBdXRob3I6IE1hc2FoaWtvIFNhd2FkYQpSZXZpZXdlZC1ieTogQW1p dCBLYXBpbGEsIFNoaSB5dSwgVGFrYW1pY2hpIE9zdW1pLCBLeW90YXJvIEhvcmlndWNoaSwgQmVy dHJhbmQgRHJvdXZvdCwgQWhzYW4gSGFkaQpCYWNrcGF0Y2gtdGhyb3VnaDogMTAKRGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS84MUQwRDhCMC1FN0M0LTQ5OTktQjYxNi0xRTUwMDREQkRD RDIlNDBhbWF6b24uY29tCi0tLQogY29udHJpYi90ZXN0X2RlY29kaW5nL01ha2VmaWxlICAgICAg ICAgICAgICAgIHwgICAyICstCiAuLi4vZXhwZWN0ZWQvY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Qu b3V0ICAgICAgfCAgNDQgKysrCiAuLi4vc3BlY3MvY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Quc3Bl YyAgICAgICAgfCAgMzkgKysrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29k ZS5jICAgICAgfCAgIDMgKy0KIC4uLi9yZXBsaWNhdGlvbi9sb2dpY2FsL3Jlb3JkZXJidWZmZXIu YyAgICAgICB8ICA3MSArKysrLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbmFw YnVpbGQuYyAgIHwgMjczICsrKysrKysrKysrKy0tLS0tLQogc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vcmVvcmRlcmJ1ZmZlci5oICAgICAgIHwgIDEyICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L3NuYXBidWlsZC5oICAgICAgICAgICB8ICAgMiArLQogOCBmaWxlcyBjaGFuZ2VkLCAzNTMgaW5z ZXJ0aW9ucygrKSwgOTMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi90 ZXN0X2RlY29kaW5nL2V4cGVjdGVkL2NhdGFsb2dfY2hhbmdlX3NuYXBzaG90Lm91dAogY3JlYXRl IG1vZGUgMTAwNjQ0IGNvbnRyaWIvdGVzdF9kZWNvZGluZy9zcGVjcy9jYXRhbG9nX2NoYW5nZV9z bmFwc2hvdC5zcGVjCgpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL01ha2VmaWxl IGIvY29udHJpYi90ZXN0X2RlY29kaW5nL01ha2VmaWxlCmluZGV4IGIyMjA5MDY0NzkuLmM3Y2U2 MDM3MDYgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9NYWtlZmlsZQorKysgYi9j b250cmliL3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUKQEAgLTgsNyArOCw3IEBAIFJFR1JFU1MgPSBk ZGwgeGFjdCByZXdyaXRlIHRvYXN0IHBlcm1pc3Npb25zIGRlY29kaW5nX2luX3hhY3QgXAogCXNw aWxsIHNsb3QgdHJ1bmNhdGUgc3RyZWFtIHN0YXRzIHR3b3BoYXNlIHR3b3BoYXNlX3N0cmVhbQog SVNPTEFUSU9OID0gbXhhY3QgZGVsYXllZF9zdGFydHVwIG9uZGlza19zdGFydHVwIGNvbmN1cnJl bnRfZGRsX2RtbCBcCiAJb2xkZXN0X3htaW4gc25hcHNob3RfdHJhbnNmZXIgc3VieGFjdF93aXRo b3V0X3RvcCBjb25jdXJyZW50X3N0cmVhbSBcCi0JdHdvcGhhc2Vfc25hcHNob3Qgc2xvdF9jcmVh dGlvbl9lcnJvcgorCXR3b3BoYXNlX3NuYXBzaG90IHNsb3RfY3JlYXRpb25fZXJyb3IgY2F0YWxv Z19jaGFuZ2Vfc25hcHNob3QKIAogUkVHUkVTU19PUFRTID0gLS10ZW1wLWNvbmZpZyAkKHRvcF9z cmNkaXIpL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9sb2dpY2FsLmNvbmYKIElTT0xBVElPTl9PUFRT ID0gLS10ZW1wLWNvbmZpZyAkKHRvcF9zcmNkaXIpL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9sb2dp Y2FsLmNvbmYKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9jYXRh bG9nX2NoYW5nZV9zbmFwc2hvdC5vdXQgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQv Y2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Qub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLmRjNGY5YjcwMTgKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3Rlc3RfZGVj b2RpbmcvZXhwZWN0ZWQvY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Qub3V0CkBAIC0wLDAgKzEsNDQg QEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCAyIHNlc3Npb25zCisKK3N0YXJ0aW5nIHBlcm11dGF0 aW9uOiBzMF9pbml0IHMwX2JlZ2luIHMwX3NhdmVwb2ludCBzMF90cnVuY2F0ZSBzMV9jaGVja3Bv aW50IHMxX2dldF9jaGFuZ2VzIHMwX2NvbW1pdCBzMF9iZWdpbiBzMF9pbnNlcnQgczFfY2hlY2tw b2ludCBzMV9nZXRfY2hhbmdlcyBzMF9jb21taXQgczFfZ2V0X2NoYW5nZXMKK3N0ZXAgczBfaW5p dDogU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3Qo J2lzb2xhdGlvbl9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnKTsKKz9jb2x1bW4/CistLS0tLS0tLQor aW5pdCAgICAKKygxIHJvdykKKworc3RlcCBzMF9iZWdpbjogQkVHSU47CitzdGVwIHMwX3NhdmVw b2ludDogU0FWRVBPSU5UIHNwMTsKK3N0ZXAgczBfdHJ1bmNhdGU6IFRSVU5DQVRFIHRibDE7Citz dGVwIHMxX2NoZWNrcG9pbnQ6IENIRUNLUE9JTlQ7CitzdGVwIHMxX2dldF9jaGFuZ2VzOiBTRUxF Q1QgZGF0YSBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnaXNvbGF0aW9uX3Nsb3Qn LCBOVUxMLCBOVUxMLCAnc2tpcC1lbXB0eS14YWN0cycsICcxJywgJ2luY2x1ZGUteGlkcycsICcw Jyk7CitkYXRhCistLS0tCisoMCByb3dzKQorCitzdGVwIHMwX2NvbW1pdDogQ09NTUlUOworc3Rl cCBzMF9iZWdpbjogQkVHSU47CitzdGVwIHMwX2luc2VydDogSU5TRVJUIElOVE8gdGJsMSBWQUxV RVMgKDEpOworc3RlcCBzMV9jaGVja3BvaW50OiBDSEVDS1BPSU5UOworc3RlcCBzMV9nZXRfY2hh bmdlczogU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ2lzb2xh dGlvbl9zbG90JywgTlVMTCwgTlVMTCwgJ3NraXAtZW1wdHkteGFjdHMnLCAnMScsICdpbmNsdWRl LXhpZHMnLCAnMCcpOworZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0JFR0lOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAordGFibGUgcHVibGljLnRibDE6IFRSVU5DQVRFOiAobm8t ZmxhZ3MpCitDT01NSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKygzIHJvd3Mp CisKK3N0ZXAgczBfY29tbWl0OiBDT01NSVQ7CitzdGVwIHMxX2dldF9jaGFuZ2VzOiBTRUxFQ1Qg ZGF0YSBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnaXNvbGF0aW9uX3Nsb3QnLCBO VUxMLCBOVUxMLCAnc2tpcC1lbXB0eS14YWN0cycsICcxJywgJ2luY2x1ZGUteGlkcycsICcwJyk7 CitkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCitCRUdJTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCit0YWJsZSBwdWJsaWMudGJsMTogSU5TRVJUOiB2YWwxW2ludGVn ZXJdOjEgdmFsMltpbnRlZ2VyXTpudWxsCitDT01NSVQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisoMyByb3dzKQorCis/Y29sdW1uPworLS0t LS0tLS0KK3N0b3AgICAgCisoMSByb3cpCisKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNv ZGluZy9zcGVjcy9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5zcGVjIGIvY29udHJpYi90ZXN0X2Rl Y29kaW5nL3NwZWNzL2NhdGFsb2dfY2hhbmdlX3NuYXBzaG90LnNwZWMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMjk3MWRkYzY5YwotLS0gL2Rldi9udWxsCisrKyBiL2Nv bnRyaWIvdGVzdF9kZWNvZGluZy9zcGVjcy9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5zcGVjCkBA IC0wLDAgKzEsMzkgQEAKKyMgVGVzdCBkZWNvZGluZyBvbmx5IHRoZSBjb21taXQgcmVjb3JkIG9m IHRoZSB0cmFuc2FjdGlvbiB0aGF0IGhhdmUKKyMgbW9kaWZpZWQgY2F0YWxvZ3MuCitzZXR1cAor eworICAgIERST1AgVEFCTEUgSUYgRVhJU1RTIHRibDE7CisgICAgQ1JFQVRFIFRBQkxFIHRibDEg KHZhbDEgaW50ZWdlciwgdmFsMiBpbnRlZ2VyKTsKK30KKwordGVhcmRvd24KK3sKKyAgICBEUk9Q IFRBQkxFIHRibDE7CisgICAgU0VMRUNUICdzdG9wJyBGUk9NIHBnX2Ryb3BfcmVwbGljYXRpb25f c2xvdCgnaXNvbGF0aW9uX3Nsb3QnKTsKK30KKworc2Vzc2lvbiAiczAiCitzZXR1cCB7IFNFVCBz eW5jaHJvbm91c19jb21taXQ9b247IH0KK3N0ZXAgInMwX2luaXQiIHsgU0VMRUNUICdpbml0JyBG Uk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ2lzb2xhdGlvbl9zbG90Jywg J3Rlc3RfZGVjb2RpbmcnKTsgfQorc3RlcCAiczBfYmVnaW4iIHsgQkVHSU47IH0KK3N0ZXAgInMw X3NhdmVwb2ludCIgeyBTQVZFUE9JTlQgc3AxOyB9CitzdGVwICJzMF90cnVuY2F0ZSIgeyBUUlVO Q0FURSB0YmwxOyB9CitzdGVwICJzMF9pbnNlcnQiIHsgSU5TRVJUIElOVE8gdGJsMSBWQUxVRVMg KDEpOyB9CitzdGVwICJzMF9jb21taXQiIHsgQ09NTUlUOyB9CisKK3Nlc3Npb24gInMxIgorc2V0 dXAgeyBTRVQgc3luY2hyb25vdXNfY29tbWl0PW9uOyB9CitzdGVwICJzMV9jaGVja3BvaW50IiB7 IENIRUNLUE9JTlQ7IH0KK3N0ZXAgInMxX2dldF9jaGFuZ2VzIiB7IFNFTEVDVCBkYXRhIEZST00g cGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdpc29sYXRpb25fc2xvdCcsIE5VTEwsIE5VTEws ICdza2lwLWVtcHR5LXhhY3RzJywgJzEnLCAnaW5jbHVkZS14aWRzJywgJzAnKTsgfQorCisjIEZv ciB0aGUgdHJhbnNhY3Rpb24gdGhhdCBUUlVOQ0FURWQgdGhlIHRhYmxlIHRibDEsIHRoZSBsYXN0 IGRlY29kaW5nIGRlY29kZXMKKyMgb25seSBpdHMgQ09NTUlUIHJlY29yZCwgYmVjYXVzZSBpdCBz dGFydHMgZnJvbSB0aGUgUlVOTklOR19YQUNUUyByZWNvcmQgZW1pdHRlZAorIyBkdXJpbmcgdGhl IGZpcnN0IGNoZWNrcG9pbnQgZXhlY3V0aW9uLiAgVGhpcyB0cmFuc2FjdGlvbiBtdXN0IGJlIG1h cmtlZCBhcworIyBjb250YWluaW5nIGNhdGFsb2cgY2hhbmdlcyB3aGlsZSBkZWNvZGluZyB0aGUg Q09NTUlUIHJlY29yZCBhbmQgdGhlIGRlY29kaW5nCisjIG9mIHRoZSBJTlNFUlQgcmVjb3JkIG11 c3QgcmVhZCB0aGUgcGdfY2xhc3Mgd2l0aCB0aGUgY29ycmVjdCBoaXN0b3JpYyBzbmFwc2hvdC4K KyMKKyMgTm90ZSB0aGF0IGluIGEgY2FzZSB3aGVyZSBiZ3dyaXRlciB3cm90ZSB0aGUgUlVOTklO R19YQUNUUyByZWNvcmQgYmV0d2VlbiAiczBfY29tbWl0IgorIyBhbmQgInMwX2JlZ2luIiwgdGhp cyBkb2Vzbid0IGhhcHBlbiBhcyB0aGUgZGVjb2Rpbmcgc3RhcnRzIGZyb20gdGhlIFJVTk5JTkdf WEFDVFMKKyMgcmVjb3JkIHdyaXR0ZW4gYnkgYmd3cml0ZXIuICBPbmUgbWlnaHQgdGhpbmsgd2Ug Y2FuIGVpdGhlciBzdG9wIHRoZSBiZ3dyaXRlciBvcgorIyBpbmNyZWFzZSBMT0dfU05BUFNIT1Rf SU5URVJWQUxfTVMgYnV0IGl0J3Mgbm90IHByYWN0aWNhbCB2aWEgdGVzdHMuCitwZXJtdXRhdGlv biAiczBfaW5pdCIgInMwX2JlZ2luIiAiczBfc2F2ZXBvaW50IiAiczBfdHJ1bmNhdGUiICJzMV9j aGVja3BvaW50IiAiczFfZ2V0X2NoYW5nZXMiICJzMF9jb21taXQiICJzMF9iZWdpbiIgInMwX2lu c2VydCIgInMxX2NoZWNrcG9pbnQiICJzMV9nZXRfY2hhbmdlcyIgInMwX2NvbW1pdCIgInMxX2dl dF9jaGFuZ2VzIgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9k ZWNvZGUuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKaW5kZXgg YzVjNmEyYmE2OC4uMTY2N2Q3MjBiMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9kZWNvZGUuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L2RlY29kZS5jCkBAIC02MjgsNyArNjI4LDggQEAgRGVjb2RlQ29tbWl0KExvZ2ljYWxEZWNvZGlu Z0NvbnRleHQgKmN0eCwgWExvZ1JlY29yZEJ1ZmZlciAqYnVmLAogCX0KIAogCVNuYXBCdWlsZENv bW1pdFR4bihjdHgtPnNuYXBzaG90X2J1aWxkZXIsIGJ1Zi0+b3JpZ3B0ciwgeGlkLAotCQkJCQkg ICBwYXJzZWQtPm5zdWJ4YWN0cywgcGFyc2VkLT5zdWJ4YWN0cyk7CisJCQkJCSAgIHBhcnNlZC0+ bnN1YnhhY3RzLCBwYXJzZWQtPnN1YnhhY3RzLAorCQkJCQkgICBwYXJzZWQtPnhpbmZvKTsKIAog CS8qIC0tLS0KIAkgKiBDaGVjayB3aGV0aGVyIHdlIGFyZSBpbnRlcmVzdGVkIGluIHRoaXMgc3Bl Y2lmaWMgdHJhbnNhY3Rpb24sIGFuZCB0ZWxsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL3Jlb3JkZXJidWZmZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvcmVvcmRlcmJ1ZmZlci5jCmluZGV4IDg4YTM3ZmRlNzIuLjFjMjFhMWQxNGIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVvcmRlcmJ1ZmZlci5j CisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvcmVvcmRlcmJ1ZmZlci5jCkBA IC0zNDksNiArMzQ5LDggQEAgUmVvcmRlckJ1ZmZlckFsbG9jYXRlKHZvaWQpCiAJYnVmZmVyLT5i eV90eG5fbGFzdF94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIAlidWZmZXItPmJ5X3R4bl9s YXN0X3R4biA9IE5VTEw7CiAKKwlidWZmZXItPmNhdGNoYW5nZV9udHhucyA9IDA7CisKIAlidWZm ZXItPm91dGJ1ZiA9IE5VTEw7CiAJYnVmZmVyLT5vdXRidWZzaXplID0gMDsKIAlidWZmZXItPnNp emUgPSAwOwpAQCAtMzY2LDYgKzM2OCw3IEBAIFJlb3JkZXJCdWZmZXJBbGxvY2F0ZSh2b2lkKQog CiAJZGxpc3RfaW5pdCgmYnVmZmVyLT50b3BsZXZlbF9ieV9sc24pOwogCWRsaXN0X2luaXQoJmJ1 ZmZlci0+dHhuc19ieV9iYXNlX3NuYXBzaG90X2xzbik7CisJZGxpc3RfaW5pdCgmYnVmZmVyLT5j YXRjaGFuZ2VfdHhucyk7CiAKIAkvKgogCSAqIEVuc3VyZSB0aGVyZSdzIG5vIHN0YWxlIGRhdGEg ZnJvbSBwcmlvciB1c2VzIG9mIHRoaXMgc2xvdCwgaW4gY2FzZSBzb21lCkBAIC0xNTI2LDE0ICsx NTI5LDIyIEBAIFJlb3JkZXJCdWZmZXJDbGVhbnVwVFhOKFJlb3JkZXJCdWZmZXIgKnJiLCBSZW9y ZGVyQnVmZmVyVFhOICp0eG4pCiAJfQogCiAJLyoKLQkgKiBSZW1vdmUgVFhOIGZyb20gaXRzIGNv bnRhaW5pbmcgbGlzdC4KKwkgKiBSZW1vdmUgVFhOIGZyb20gaXRzIGNvbnRhaW5pbmcgbGlzdHMu CiAJICoKIAkgKiBOb3RlOiBpZiB0eG4gaXMga25vd24gYXMgc3VieGFjdCwgd2UgYXJlIGRlbGV0 aW5nIHRoZSBUWE4gZnJvbSBpdHMKIAkgKiBwYXJlbnQncyBsaXN0IG9mIGtub3duIHN1YnhhY3Rz OyB0aGlzIGxlYXZlcyB0aGUgcGFyZW50J3MgbnN1YnhhY3RzCiAJICogY291bnQgdG9vIGhpZ2gs IGJ1dCB3ZSBkb24ndCBjYXJlLiAgT3RoZXJ3aXNlLCB3ZSBhcmUgZGVsZXRpbmcgdGhlIFRYTgot CSAqIGZyb20gdGhlIExTTi1vcmRlcmVkIGxpc3Qgb2YgdG9wbGV2ZWwgVFhOcy4KKwkgKiBmcm9t IHRoZSBMU04tb3JkZXJlZCBsaXN0IG9mIHRvcGxldmVsIFRYTnMuIFdlIHJlbW92ZSB0aGUgVFhO IGZyb20gdGhlCisJICogbGlzdCBvZiBjYXRhbG9nIG1vZGlmeWluZyB0cmFuc2FjdGlvbnMgYXMg d2VsbC4KIAkgKi8KIAlkbGlzdF9kZWxldGUoJnR4bi0+bm9kZSk7CisJaWYgKHJidHhuX2hhc19j YXRhbG9nX2NoYW5nZXModHhuKSkKKwl7CisJCWRsaXN0X2RlbGV0ZSgmdHhuLT5jYXRjaGFuZ2Vf bm9kZSk7CisJCXJiLT5jYXRjaGFuZ2VfbnR4bnMtLTsKKworCQlBc3NlcnQocmItPmNhdGNoYW5n ZV9udHhucyA+PSAwKTsKKwl9CiAKIAkvKiBub3cgcmVtb3ZlIHJlZmVyZW5jZSBmcm9tIGJ1ZmZl ciAqLwogCWhhc2hfc2VhcmNoKHJiLT5ieV90eG4sCkBAIC0zMjc1LDEwICszMjg2LDE2IEBAIFJl b3JkZXJCdWZmZXJYaWRTZXRDYXRhbG9nQ2hhbmdlcyhSZW9yZGVyQnVmZmVyICpyYiwgVHJhbnNh Y3Rpb25JZCB4aWQsCiAJCQkJCQkJCSAgWExvZ1JlY1B0ciBsc24pCiB7CiAJUmVvcmRlckJ1ZmZl clRYTiAqdHhuOworCVJlb3JkZXJCdWZmZXJUWE4gKnRvcHR4bjsKIAogCXR4biA9IFJlb3JkZXJC dWZmZXJUWE5CeVhpZChyYiwgeGlkLCB0cnVlLCBOVUxMLCBsc24sIHRydWUpOwogCi0JdHhuLT50 eG5fZmxhZ3MgfD0gUkJUWE5fSEFTX0NBVEFMT0dfQ0hBTkdFUzsKKwlpZiAoIXJidHhuX2hhc19j YXRhbG9nX2NoYW5nZXModHhuKSkKKwl7CisJCXR4bi0+dHhuX2ZsYWdzIHw9IFJCVFhOX0hBU19D QVRBTE9HX0NIQU5HRVM7CisJCWRsaXN0X3B1c2hfdGFpbCgmcmItPmNhdGNoYW5nZV90eG5zLCAm dHhuLT5jYXRjaGFuZ2Vfbm9kZSk7CisJCXJiLT5jYXRjaGFuZ2VfbnR4bnMrKzsKKwl9CiAKIAkv KgogCSAqIE1hcmsgdG9wLWxldmVsIHRyYW5zYWN0aW9uIGFzIGhhdmluZyBjYXRhbG9nIGNoYW5n ZXMgdG9vIGlmIG9uZSBvZiBpdHMKQEAgLTMyODYsOCArMzMwMyw1MiBAQCBSZW9yZGVyQnVmZmVy WGlkU2V0Q2F0YWxvZ0NoYW5nZXMoUmVvcmRlckJ1ZmZlciAqcmIsIFRyYW5zYWN0aW9uSWQgeGlk LAogCSAqIGNvbnZlbmllbnRseSBjaGVjayBqdXN0IHRvcC1sZXZlbCB0cmFuc2FjdGlvbiBhbmQg ZGVjaWRlIHdoZXRoZXIgdG8KIAkgKiBidWlsZCB0aGUgaGFzaCB0YWJsZSBvciBub3QuCiAJICov Ci0JaWYgKHR4bi0+dG9wdHhuICE9IE5VTEwpCi0JCXR4bi0+dG9wdHhuLT50eG5fZmxhZ3MgfD0g UkJUWE5fSEFTX0NBVEFMT0dfQ0hBTkdFUzsKKwl0b3B0eG4gPSB0eG4tPnRvcHR4bjsKKwlpZiAo dG9wdHhuICE9IE5VTEwgJiYgIXJidHhuX2hhc19jYXRhbG9nX2NoYW5nZXModG9wdHhuKSkKKwl7 CisJCXRvcHR4bi0+dHhuX2ZsYWdzIHw9IFJCVFhOX0hBU19DQVRBTE9HX0NIQU5HRVM7CisJCWRs aXN0X3B1c2hfdGFpbCgmcmItPmNhdGNoYW5nZV90eG5zLCAmdG9wdHhuLT5jYXRjaGFuZ2Vfbm9k ZSk7CisJCXJiLT5jYXRjaGFuZ2VfbnR4bnMrKzsKKwl9Cit9CisKKy8qCisgKiBSZXR1cm4gcGFs bG9jJ2VkIGFycmF5IG9mIHRoZSB0cmFuc2FjdGlvbnMgdGhhdCBoYXZlIGNoYW5nZWQgY2F0YWxv Z3MuCisgKiBUaGUgcmV0dXJuZWQgYXJyYXkgaXMgc29ydGVkIGluIHhpZENvbXBhcmF0b3Igb3Jk ZXIuCisgKgorICogVGhlIGNhbGxlciBtdXN0IGZyZWUgdGhlIHJldHVybmVkIGFycmF5IHdoZW4g ZG9uZSB3aXRoIGl0LgorICovCitUcmFuc2FjdGlvbklkICoKK1Jlb3JkZXJCdWZmZXJHZXRDYXRh bG9nQ2hhbmdlc1hhY3RzKFJlb3JkZXJCdWZmZXIgKnJiKQoreworCWRsaXN0X2l0ZXIJaXRlcjsK KwlUcmFuc2FjdGlvbklkICp4aWRzID0gTlVMTDsKKwlzaXplX3QJCXhjbnQgPSAwOworCisJLyog UXVpY2sgcmV0dXJuIGlmIHRoZSBsaXN0IGlzIGVtcHR5ICovCisJaWYgKHJiLT5jYXRjaGFuZ2Vf bnR4bnMgPT0gMCkKKwl7CisJCUFzc2VydChkbGlzdF9pc19lbXB0eSgmcmItPmNhdGNoYW5nZV90 eG5zKSk7CisJCXJldHVybiBOVUxMOworCX0KKworCS8qIEluaXRpYWxpemUgWElEIGFycmF5ICov CisJeGlkcyA9IChUcmFuc2FjdGlvbklkICopIHBhbGxvYyhzaXplb2YoVHJhbnNhY3Rpb25JZCkg KiByYi0+Y2F0Y2hhbmdlX250eG5zKTsKKwlkbGlzdF9mb3JlYWNoKGl0ZXIsICZyYi0+Y2F0Y2hh bmdlX3R4bnMpCisJeworCQlSZW9yZGVyQnVmZmVyVFhOICp0eG4gPSBkbGlzdF9jb250YWluZXIo UmVvcmRlckJ1ZmZlclRYTiwKKwkJCQkJCQkJCQkJCWNhdGNoYW5nZV9ub2RlLAorCQkJCQkJCQkJ CQkJaXRlci5jdXIpOworCisJCUFzc2VydChyYnR4bl9oYXNfY2F0YWxvZ19jaGFuZ2VzKHR4bikp OworCisJCXhpZHNbeGNudCsrXSA9IHR4bi0+eGlkOworCX0KKworCXFzb3J0KHhpZHMsIHhjbnQs IHNpemVvZihUcmFuc2FjdGlvbklkKSwgeGlkQ29tcGFyYXRvcik7CisKKwlBc3NlcnQoeGNudCA9 PSByYi0+Y2F0Y2hhbmdlX250eG5zKTsKKwlyZXR1cm4geGlkczsKIH0KIAogLyoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc25hcGJ1aWxkLmMgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3NuYXBidWlsZC5jCmluZGV4IDczYzBmMTUyMTQuLjFm ZjJjMTIyNDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc25h cGJ1aWxkLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbmFwYnVpbGQu YwpAQCAtMjQxLDYgKzI0MSwzMyBAQCBzdHJ1Y3QgU25hcEJ1aWxkCiAJCSAqLwogCQlUcmFuc2Fj dGlvbklkICp4aXA7CiAJfQkJCWNvbW1pdHRlZDsKKworCS8qCisJICogQXJyYXkgb2YgdHJhbnNh Y3Rpb25zIGFuZCBzdWJ0cmFuc2FjdGlvbnMgdGhhdCBoYWQgbW9kaWZpZWQgY2F0YWxvZ3MKKwkg KiBhbmQgd2VyZSBydW5uaW5nIHdoZW4gdGhlIHNuYXBzaG90IHdhcyBzZXJpYWxpemVkLgorCSAq CisJICogV2Ugbm9ybWFsbHkgcmVseSBvbiBzb21lIFdBTCByZWNvcmQgdHlwZXMgc3VjaCBhcyBI RUFQMl9ORVdfQ0lEIHRvIGtub3cKKwkgKiBpZiB0aGUgdHJhbnNhY3Rpb24gaGFzIGNoYW5nZWQg dGhlIGNhdGFsb2cuIEJ1dCBpdCBjb3VsZCBoYXBwZW4gdGhhdAorCSAqIHRoZSBsb2dpY2FsIGRl Y29kaW5nIGRlY29kZXMgb25seSB0aGUgY29tbWl0IHJlY29yZCBvZiB0aGUgdHJhbnNhY3Rpb24K KwkgKiBhZnRlciByZXN0b3JpbmcgdGhlIHByZXZpb3VzbHkgc2VyaWFsaXplZCBzbmFwc2hvdCBp biB3aGljaCBjYXNlIHdlCisJICogd2lsbCBtaXNzIGFkZGluZyB0aGUgeGlkIHRvIHRoZSBzbmFw c2hvdCBhbmQgZW5kIHVwIGxvb2tpbmcgYXQgdGhlCisJICogY2F0YWxvZ3Mgd2l0aCB0aGUgd3Jv bmcgc25hcHNob3QuCisJICoKKwkgKiBOb3cgdG8gYXZvaWQgdGhlIGFib3ZlIHByb2JsZW0sIHdl IHNlcmlhbGl6ZSB0aGUgdHJhbnNhY3Rpb25zIHRoYXQgaGFkCisJICogbW9kaWZpZWQgdGhlIGNh dGFsb2dzIGFuZCBhcmUgc3RpbGwgcnVubmluZyBhdCB0aGUgdGltZSBvZiBzbmFwc2hvdAorCSAq IHNlcmlhbGl6YXRpb24uIFdlIGZpbGwgdGhpcyBhcnJheSB3aGlsZSByZXN0b3JpbmcgdGhlIHNu YXBzaG90IGFuZCB0aGVuCisJICogcmVmZXIgaXQgd2hpbGUgZGVjb2RpbmcgY29tbWl0IHRvIGVu c3VyZSBpZiB0aGUgeGFjdCBoYXMgbW9kaWZpZWQgdGhlCisJICogY2F0YWxvZy4gV2UgZGlzY2Fy ZCB0aGlzIGFycmF5IHdoZW4gYWxsIHRoZSB4aWRzIGluIHRoZSBsaXN0IGJlY29tZSBvbGQKKwkg KiBlbm91Z2ggdG8gbWF0dGVyLiBTZWUgU25hcEJ1aWxkUHVyZ2VPbGRlclR4biBmb3IgZGV0YWls cy4KKwkgKi8KKwlzdHJ1Y3QKKwl7CisJCS8qIG51bWJlciBvZiB0cmFuc2FjdGlvbnMgKi8KKwkJ c2l6ZV90CQl4Y250OworCisJCS8qIFRoaXMgYXJyYXkgbXVzdCBiZSBzb3J0ZWQgaW4geGlkQ29t cGFyYXRvciBvcmRlciAqLworCQlUcmFuc2FjdGlvbklkICp4aXA7CisJfQkJCWNhdGNoYW5nZTsK IH07CiAKIC8qCkBAIC0yNTAsOCArMjc3LDggQEAgc3RydWN0IFNuYXBCdWlsZAogc3RhdGljIFJl c291cmNlT3duZXIgU2F2ZWRSZXNvdXJjZU93bmVyRHVyaW5nRXhwb3J0ID0gTlVMTDsKIHN0YXRp YyBib29sIEV4cG9ydEluUHJvZ3Jlc3MgPSBmYWxzZTsKIAotLyogLT5jb21taXR0ZWQgbWFuaXB1 bGF0aW9uICovCi1zdGF0aWMgdm9pZCBTbmFwQnVpbGRQdXJnZUNvbW1pdHRlZFR4bihTbmFwQnVp bGQgKmJ1aWxkZXIpOworLyogLT5jb21taXR0ZWQgYW5kIC0+Y2F0Y2hhbmdlIG1hbmlwdWxhdGlv biAqLworc3RhdGljIHZvaWQgU25hcEJ1aWxkUHVyZ2VPbGRlclR4bihTbmFwQnVpbGQgKmJ1aWxk ZXIpOwogCiAvKiBzbmFwc2hvdCBidWlsZGluZy9tYW5pcHVsYXRpb24vZGlzdHJpYnV0aW9uIGZ1 bmN0aW9ucyAqLwogc3RhdGljIFNuYXBzaG90IFNuYXBCdWlsZEJ1aWxkU25hcHNob3QoU25hcEJ1 aWxkICpidWlsZGVyKTsKQEAgLTI2Miw2ICsyODksOSBAQCBzdGF0aWMgdm9pZCBTbmFwQnVpbGRT bmFwSW5jUmVmY291bnQoU25hcHNob3Qgc25hcCk7CiAKIHN0YXRpYyB2b2lkIFNuYXBCdWlsZERp c3RyaWJ1dGVOZXdDYXRhbG9nU25hcHNob3QoU25hcEJ1aWxkICpidWlsZGVyLCBYTG9nUmVjUHRy IGxzbik7CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBTbmFwQnVpbGRYaWRIYXNDYXRhbG9nQ2hhbmdl cyhTbmFwQnVpbGQgKmJ1aWxkZXIsIFRyYW5zYWN0aW9uSWQgeGlkLAorCQkJCQkJCQkJCQkJIHVp bnQzMiB4aW5mbyk7CisKIC8qIHhsb2cgcmVhZGluZyBoZWxwZXIgZnVuY3Rpb25zIGZvciBTbmFw QnVpbGRQcm9jZXNzUnVubmluZ1hhY3RzICovCiBzdGF0aWMgYm9vbCBTbmFwQnVpbGRGaW5kU25h cHNob3QoU25hcEJ1aWxkICpidWlsZGVyLCBYTG9nUmVjUHRyIGxzbiwgeGxfcnVubmluZ194YWN0 cyAqcnVubmluZyk7CiBzdGF0aWMgdm9pZCBTbmFwQnVpbGRXYWl0U25hcHNob3QoeGxfcnVubmlu Z194YWN0cyAqcnVubmluZywgVHJhbnNhY3Rpb25JZCBjdXRvZmYpOwpAQCAtMjY5LDYgKzI5OSw3 IEBAIHN0YXRpYyB2b2lkIFNuYXBCdWlsZFdhaXRTbmFwc2hvdCh4bF9ydW5uaW5nX3hhY3RzICpy dW5uaW5nLCBUcmFuc2FjdGlvbklkIGN1dG9mCiAvKiBzZXJpYWxpemF0aW9uIGZ1bmN0aW9ucyAq Lwogc3RhdGljIHZvaWQgU25hcEJ1aWxkU2VyaWFsaXplKFNuYXBCdWlsZCAqYnVpbGRlciwgWExv Z1JlY1B0ciBsc24pOwogc3RhdGljIGJvb2wgU25hcEJ1aWxkUmVzdG9yZShTbmFwQnVpbGQgKmJ1 aWxkZXIsIFhMb2dSZWNQdHIgbHNuKTsKK3N0YXRpYyB2b2lkIFNuYXBCdWlsZFJlc3RvcmVDb250 ZW50cyhpbnQgZmQsIGNoYXIgKmRlc3QsIFNpemUgc2l6ZSwgY29uc3QgY2hhciAqcGF0aCk7CiAK IC8qCiAgKiBBbGxvY2F0ZSBhIG5ldyBzbmFwc2hvdCBidWlsZGVyLgpAQCAtMzA2LDYgKzMzNyw5 IEBAIEFsbG9jYXRlU25hcHNob3RCdWlsZGVyKFJlb3JkZXJCdWZmZXIgKnJlb3JkZXIsCiAJCXBh bGxvYzAoYnVpbGRlci0+Y29tbWl0dGVkLnhjbnRfc3BhY2UgKiBzaXplb2YoVHJhbnNhY3Rpb25J ZCkpOwogCWJ1aWxkZXItPmNvbW1pdHRlZC5pbmNsdWRlc19hbGxfdHJhbnNhY3Rpb25zID0gdHJ1 ZTsKIAorCWJ1aWxkZXItPmNhdGNoYW5nZS54Y250ID0gMDsKKwlidWlsZGVyLT5jYXRjaGFuZ2Uu eGlwID0gTlVMTDsKKwogCWJ1aWxkZXItPmluaXRpYWxfeG1pbl9ob3Jpem9uID0geG1pbl9ob3Jp em9uOwogCWJ1aWxkZXItPnN0YXJ0X2RlY29kaW5nX2F0ID0gc3RhcnRfbHNuOwogCWJ1aWxkZXIt PmJ1aWxkaW5nX2Z1bGxfc25hcHNob3QgPSBuZWVkX2Z1bGxfc25hcHNob3Q7CkBAIC04ODgsMTIg KzkyMiwxNyBAQCBTbmFwQnVpbGRBZGRDb21taXR0ZWRUeG4oU25hcEJ1aWxkICpidWlsZGVyLCBU cmFuc2FjdGlvbklkIHhpZCkKIH0KIAogLyoKLSAqIFJlbW92ZSBrbm93bGVkZ2UgYWJvdXQgdHJh bnNhY3Rpb25zIHdlIHRyZWF0IGFzIGNvbW1pdHRlZCB0aGF0IGFyZSBzbWFsbGVyCi0gKiB0aGFu IC0+eG1pbi4gVGhvc2Ugd29uJ3QgZXZlciBnZXQgY2hlY2tlZCB2aWEgdGhlIC0+Y29tbWl0dGVk IGFycmF5IGJ1dCB2aWEKLSAqIHRoZSBjbG9nIG1hY2hpbmVyeSwgc28gd2UgZG9uJ3QgbmVlZCB0 byB3YXN0ZSBtZW1vcnkgb24gdGhlbS4KKyAqIFJlbW92ZSBrbm93bGVkZ2UgYWJvdXQgdHJhbnNh Y3Rpb25zIHdlIHRyZWF0IGFzIGNvbW1pdHRlZCBvciBjb250YWluaW5nIGNhdGFsb2cKKyAqIGNo YW5nZXMgdGhhdCBhcmUgc21hbGxlciB0aGFuIC0+eG1pbi4gVGhvc2Ugd29uJ3QgZXZlciBnZXQg Y2hlY2tlZCB2aWEKKyAqIHRoZSAtPmNvbW1pdHRlZCBvciAtPmNhdGNoYW5nZSBhcnJheSwgcmVz cGVjdGl2ZWx5LiBUaGUgY29tbWl0dGVkIHhpZHMgd2lsbAorICogZ2V0IGNoZWNrZWQgdmlhIHRo ZSBjbG9nIG1hY2hpbmVyeS4KKyAqCisgKiBXZSBjYW4gaWRlYWxseSByZW1vdmUgdGhlIHRyYW5z YWN0aW9uIGZyb20gY2F0Y2hhbmdlIGFycmF5IG9uY2UgaXQgaXMKKyAqIGZpbmlzaGVkIChjb21t aXR0ZWQvYWJvcnRlZCkgYnV0IHRoYXQgY291bGQgYmUgY29zdGx5IGFzIHdlIG5lZWQgdG8gbWFp bnRhaW4KKyAqIHRoZSB4aWRzIG9yZGVyIGluIHRoZSBhcnJheS4KICAqLwogc3RhdGljIHZvaWQK LVNuYXBCdWlsZFB1cmdlQ29tbWl0dGVkVHhuKFNuYXBCdWlsZCAqYnVpbGRlcikKK1NuYXBCdWls ZFB1cmdlT2xkZXJUeG4oU25hcEJ1aWxkICpidWlsZGVyKQogewogCWludAkJCW9mZjsKIAlUcmFu c2FjdGlvbklkICp3b3Jrc3BhY2U7CkBAIC05MjgsNiArOTY3LDMwIEBAIFNuYXBCdWlsZFB1cmdl Q29tbWl0dGVkVHhuKFNuYXBCdWlsZCAqYnVpbGRlcikKIAlidWlsZGVyLT5jb21taXR0ZWQueGNu dCA9IHN1cnZpdmluZ194aWRzOwogCiAJcGZyZWUod29ya3NwYWNlKTsKKworCS8qCisJICogRWl0 aGVyIGFsbCB0aGUgeGFjdHMgZ290IHB1cmdlZCBvciBub25lLiBJdCBpcyBvbmx5IHBvc3NpYmxl IHRvCisJICogcGFydGlhbGx5IHJlbW92ZSB0aGUgeGlkcyBmcm9tIHRoaXMgYXJyYXkgaWYgb25l IG9yIG1vcmUgb2YgdGhlIHhpZHMKKwkgKiBhcmUgc3RpbGwgcnVubmluZyBidXQgbm90IGFsbC4g VGhhdCBjYW4gaGFwcGVuIGlmIHdlIHN0YXJ0IGRlY29kaW5nCisJICogZnJvbSBhIHBvaW50IChM U04gd2hlcmUgdGhlIHNuYXBzaG90IHN0YXRlIGJlY2FtZSBjb25zaXN0ZW50KSB3aGVyZSBhbGwK KwkgKiB0aGUgeGFjdHMgaW4gdGhpcyB3ZXJlIHJ1bm5pbmcgYW5kIHRoZW4gYXQgbGVhc3Qgb25l IG9mIHRob3NlIGdvdAorCSAqIGNvbW1pdHRlZCBhbmQgYSBmZXcgYXJlIHN0aWxsIHJ1bm5pbmcu IFdlIHdpbGwgbmV2ZXIgc3RhcnQgZnJvbSBzdWNoIGEKKwkgKiBwb2ludCBiZWNhdXNlIHdlIHdv bid0IG1vdmUgdGhlIHNsb3QncyByZXN0YXJ0X2xzbiBwYXN0IHRoZSBwb2ludCB3aGVyZQorCSAq IHRoZSBvbGRlc3QgcnVubmluZyB0cmFuc2FjdGlvbidzIHJlc3RhcnRfZGVjb2RpbmdfbHNuIGlz LgorCSAqLworCWlmIChidWlsZGVyLT5jYXRjaGFuZ2UueGNudCA9PSAwIHx8CisJCVRyYW5zYWN0 aW9uSWRGb2xsb3dzT3JFcXVhbHMoYnVpbGRlci0+Y2F0Y2hhbmdlLnhpcFswXSwKKwkJCQkJCQkJ CSBidWlsZGVyLT54bWluKSkKKwkJcmV0dXJuOworCisJQXNzZXJ0KFRyYW5zYWN0aW9uSWRGb2xs b3dzKGJ1aWxkZXItPnhtaW4sCisJCQkJCQkJCWJ1aWxkZXItPmNhdGNoYW5nZS54aXBbYnVpbGRl ci0+Y2F0Y2hhbmdlLnhjbnQgLSAxXSkpOworCXBmcmVlKGJ1aWxkZXItPmNhdGNoYW5nZS54aXAp OworCWJ1aWxkZXItPmNhdGNoYW5nZS54aXAgPSBOVUxMOworCWJ1aWxkZXItPmNhdGNoYW5nZS54 Y250ID0gMDsKKworCWVsb2coREVCVUczLCAicHVyZ2VkIGNhdGFsb2cgbW9kaWZ5aW5nIHRyYW5z YWN0aW9ucywgb2xkZXN0IHJ1bm5pbmcgeGlkICV1IiwKKwkJIGJ1aWxkZXItPnhtaW4pOwogfQog CiAvKgpAQCAtOTM1LDcgKzk5OCw3IEBAIFNuYXBCdWlsZFB1cmdlQ29tbWl0dGVkVHhuKFNuYXBC dWlsZCAqYnVpbGRlcikKICAqLwogdm9pZAogU25hcEJ1aWxkQ29tbWl0VHhuKFNuYXBCdWlsZCAq YnVpbGRlciwgWExvZ1JlY1B0ciBsc24sIFRyYW5zYWN0aW9uSWQgeGlkLAotCQkJCSAgIGludCBu c3VieGFjdHMsIFRyYW5zYWN0aW9uSWQgKnN1YnhhY3RzKQorCQkJCSAgIGludCBuc3VieGFjdHMs IFRyYW5zYWN0aW9uSWQgKnN1YnhhY3RzLCB1aW50MzIgeGluZm8pCiB7CiAJaW50CQkJbnhhY3Q7 CiAKQEAgLTk4Myw3ICsxMDQ2LDcgQEAgU25hcEJ1aWxkQ29tbWl0VHhuKFNuYXBCdWlsZCAqYnVp bGRlciwgWExvZ1JlY1B0ciBsc24sIFRyYW5zYWN0aW9uSWQgeGlkLAogCQkgKiBBZGQgc3VidHJh bnNhY3Rpb24gdG8gYmFzZSBzbmFwc2hvdCBpZiBjYXRhbG9nIG1vZGlmeWluZywgd2UgZG9uJ3QK IAkJICogZGlzdGluZ3Vpc2ggdG8gdG9wbGV2ZWwgdHJhbnNhY3Rpb25zIHRoZXJlLgogCQkgKi8K LQkJaWYgKFJlb3JkZXJCdWZmZXJYaWRIYXNDYXRhbG9nQ2hhbmdlcyhidWlsZGVyLT5yZW9yZGVy LCBzdWJ4aWQpKQorCQlpZiAoU25hcEJ1aWxkWGlkSGFzQ2F0YWxvZ0NoYW5nZXMoYnVpbGRlciwg c3VieGlkLCB4aW5mbykpCiAJCXsKIAkJCXN1Yl9uZWVkc190aW1ldHJhdmVsID0gdHJ1ZTsKIAkJ CW5lZWRzX3NuYXBzaG90ID0gdHJ1ZTsKQEAgLTEwMTIsNyArMTA3NSw3IEBAIFNuYXBCdWlsZENv bW1pdFR4bihTbmFwQnVpbGQgKmJ1aWxkZXIsIFhMb2dSZWNQdHIgbHNuLCBUcmFuc2FjdGlvbklk IHhpZCwKIAl9CiAKIAkvKiBpZiB0b3AtbGV2ZWwgbW9kaWZpZWQgY2F0YWxvZywgaXQnbGwgbmVl ZCBhIHNuYXBzaG90ICovCi0JaWYgKFJlb3JkZXJCdWZmZXJYaWRIYXNDYXRhbG9nQ2hhbmdlcyhi dWlsZGVyLT5yZW9yZGVyLCB4aWQpKQorCWlmIChTbmFwQnVpbGRYaWRIYXNDYXRhbG9nQ2hhbmdl cyhidWlsZGVyLCB4aWQsIHhpbmZvKSkKIAl7CiAJCWVsb2coREVCVUcyLCAiZm91bmQgdG9wIGxl dmVsIHRyYW5zYWN0aW9uICV1LCB3aXRoIGNhdGFsb2cgY2hhbmdlcyIsCiAJCQkgeGlkKTsKQEAg LTEwODksNiArMTE1MiwyOSBAQCBTbmFwQnVpbGRDb21taXRUeG4oU25hcEJ1aWxkICpidWlsZGVy LCBYTG9nUmVjUHRyIGxzbiwgVHJhbnNhY3Rpb25JZCB4aWQsCiAJfQogfQogCisvKgorICogQ2hl Y2sgdGhlIHJlb3JkZXIgYnVmZmVyIGFuZCB0aGUgc25hcHNob3QgdG8gc2VlIGlmIHRoZSBnaXZl biB0cmFuc2FjdGlvbiBoYXMKKyAqIG1vZGlmaWVkIGNhdGFsb2dzLgorICovCitzdGF0aWMgaW5s aW5lIGJvb2wKK1NuYXBCdWlsZFhpZEhhc0NhdGFsb2dDaGFuZ2VzKFNuYXBCdWlsZCAqYnVpbGRl ciwgVHJhbnNhY3Rpb25JZCB4aWQsCisJCQkJCQkJICB1aW50MzIgeGluZm8pCit7CisJaWYgKFJl b3JkZXJCdWZmZXJYaWRIYXNDYXRhbG9nQ2hhbmdlcyhidWlsZGVyLT5yZW9yZGVyLCB4aWQpKQor CQlyZXR1cm4gdHJ1ZTsKKworCS8qCisJICogVGhlIHRyYW5zYWN0aW9ucyB0aGF0IGhhdmUgY2hh bmdlZCBjYXRhbG9ncyBtdXN0IGhhdmUgaW52YWxpZGF0aW9uCisJICogaW5mby4KKwkgKi8KKwlp ZiAoISh4aW5mbyAmIFhBQ1RfWElORk9fSEFTX0lOVkFMUykpCisJCXJldHVybiBmYWxzZTsKKwor CS8qIENoZWNrIHRoZSBjYXRjaGFuZ2UgWElEIGFycmF5ICovCisJcmV0dXJuICgoYnVpbGRlci0+ Y2F0Y2hhbmdlLnhjbnQgPiAwKSAmJgorCQkJKGJzZWFyY2goJnhpZCwgYnVpbGRlci0+Y2F0Y2hh bmdlLnhpcCwgYnVpbGRlci0+Y2F0Y2hhbmdlLnhjbnQsCisJCQkJCSBzaXplb2YoVHJhbnNhY3Rp b25JZCksIHhpZENvbXBhcmF0b3IpICE9IE5VTEwpKTsKK30KIAogLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqIFNuYXBzaG90IGJ1aWxkaW5nIGZ1bmN0aW9ucyBkZWFs aW5nIHdpdGggeGxvZyByZWNvcmRzCkBAIC0xMTM1LDcgKzEyMjEsNyBAQCBTbmFwQnVpbGRQcm9j ZXNzUnVubmluZ1hhY3RzKFNuYXBCdWlsZCAqYnVpbGRlciwgWExvZ1JlY1B0ciBsc24sIHhsX3J1 bm5pbmdfeGFjdAogCWJ1aWxkZXItPnhtaW4gPSBydW5uaW5nLT5vbGRlc3RSdW5uaW5nWGlkOwog CiAJLyogUmVtb3ZlIHRyYW5zYWN0aW9ucyB3ZSBkb24ndCBuZWVkIHRvIGtlZXAgdHJhY2sgb2Zm IGFueW1vcmUgKi8KLQlTbmFwQnVpbGRQdXJnZUNvbW1pdHRlZFR4bihidWlsZGVyKTsKKwlTbmFw QnVpbGRQdXJnZU9sZGVyVHhuKGJ1aWxkZXIpOwogCiAJLyoKIAkgKiBBZHZhbmNlIHRoZSB4bWlu IGxpbWl0IGZvciB0aGUgY3VycmVudCByZXBsaWNhdGlvbiBzbG90LCB0byBhbGxvdwpAQCAtMTQz OCw2ICsxNTI0LDcgQEAgU25hcEJ1aWxkV2FpdFNuYXBzaG90KHhsX3J1bm5pbmdfeGFjdHMgKnJ1 bm5pbmcsIFRyYW5zYWN0aW9uSWQgY3V0b2ZmKQogICoKICAqIHN0cnVjdCBTbmFwQnVpbGRPbkRp c2s7CiAgKiBUcmFuc2FjdGlvbklkICogY29tbWl0dGVkLnhjbnQ7ICgqbm90IHhjbnRfc3BhY2Uq KQorICogVHJhbnNhY3Rpb25JZCAqIGNhdGNoYW5nZS54Y250OwogICoKICAqLwogdHlwZWRlZiBz dHJ1Y3QgU25hcEJ1aWxkT25EaXNrCkBAIC0xNDY3LDcgKzE1NTQsNyBAQCB0eXBlZGVmIHN0cnVj dCBTbmFwQnVpbGRPbkRpc2sKIAlvZmZzZXRvZihTbmFwQnVpbGRPbkRpc2ssIHZlcnNpb24pCiAK ICNkZWZpbmUgU05BUEJVSUxEX01BR0lDIDB4NTFBMUUwMDEKLSNkZWZpbmUgU05BUEJVSUxEX1ZF UlNJT04gNAorI2RlZmluZSBTTkFQQlVJTERfVkVSU0lPTiA1CiAKIC8qCiAgKiBTdG9yZS9Mb2Fk IGEgc25hcHNob3QgZnJvbSBkaXNrLCBkZXBlbmRpbmcgb24gdGhlIHNuYXBzaG90IGJ1aWxkZXIn cyBzdGF0ZS4KQEAgLTE0OTMsNiArMTU4MCw5IEBAIFNuYXBCdWlsZFNlcmlhbGl6ZShTbmFwQnVp bGQgKmJ1aWxkZXIsIFhMb2dSZWNQdHIgbHNuKQogewogCVNpemUJCW5lZWRlZF9sZW5ndGg7CiAJ U25hcEJ1aWxkT25EaXNrICpvbmRpc2sgPSBOVUxMOworCVRyYW5zYWN0aW9uSWQgKmNhdGNoYW5n ZV94aXAgPSBOVUxMOworCU1lbW9yeUNvbnRleHQgb2xkX2N0eDsKKwlzaXplX3QJCWNhdGNoYW5n ZV94Y250OwogCWNoYXIJICAgKm9uZGlza19jOwogCWludAkJCWZkOwogCWNoYXIJCXRtcHBhdGhb TUFYUEdQQVRIXTsKQEAgLTE1NzgsMTAgKzE2NjgsMTYgQEAgU25hcEJ1aWxkU2VyaWFsaXplKFNu YXBCdWlsZCAqYnVpbGRlciwgWExvZ1JlY1B0ciBsc24pCiAJCQkJKGVycmNvZGVfZm9yX2ZpbGVf YWNjZXNzKCksCiAJCQkJIGVycm1zZygiY291bGQgbm90IHJlbW92ZSBmaWxlIFwiJXNcIjogJW0i LCB0bXBwYXRoKSkpOwogCisJb2xkX2N0eCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhidWlsZGVy LT5jb250ZXh0KTsKKworCS8qIEdldCB0aGUgY2F0YWxvZyBtb2RpZnlpbmcgdHJhbnNhY3Rpb25z IHRoYXQgYXJlIHlldCBub3QgY29tbWl0dGVkICovCisJY2F0Y2hhbmdlX3hpcCA9IFJlb3JkZXJC dWZmZXJHZXRDYXRhbG9nQ2hhbmdlc1hhY3RzKGJ1aWxkZXItPnJlb3JkZXIpOworCWNhdGNoYW5n ZV94Y250ID0gYnVpbGRlci0+cmVvcmRlci0+Y2F0Y2hhbmdlX250eG5zOworCiAJbmVlZGVkX2xl bmd0aCA9IHNpemVvZihTbmFwQnVpbGRPbkRpc2spICsKLQkJc2l6ZW9mKFRyYW5zYWN0aW9uSWQp ICogYnVpbGRlci0+Y29tbWl0dGVkLnhjbnQ7CisJCXNpemVvZihUcmFuc2FjdGlvbklkKSAqIChi dWlsZGVyLT5jb21taXR0ZWQueGNudCArIGNhdGNoYW5nZV94Y250KTsKIAotCW9uZGlza19jID0g TWVtb3J5Q29udGV4dEFsbG9jWmVybyhidWlsZGVyLT5jb250ZXh0LCBuZWVkZWRfbGVuZ3RoKTsK KwlvbmRpc2tfYyA9IHBhbGxvYzAobmVlZGVkX2xlbmd0aCk7CiAJb25kaXNrID0gKFNuYXBCdWls ZE9uRGlzayAqKSBvbmRpc2tfYzsKIAlvbmRpc2stPm1hZ2ljID0gU05BUEJVSUxEX01BR0lDOwog CW9uZGlzay0+dmVyc2lvbiA9IFNOQVBCVUlMRF9WRVJTSU9OOwpAQCAtMTU5OCwxNiArMTY5NCwz MSBAQCBTbmFwQnVpbGRTZXJpYWxpemUoU25hcEJ1aWxkICpidWlsZGVyLCBYTG9nUmVjUHRyIGxz bikKIAlvbmRpc2stPmJ1aWxkZXIuc25hcHNob3QgPSBOVUxMOwogCW9uZGlzay0+YnVpbGRlci5y ZW9yZGVyID0gTlVMTDsKIAlvbmRpc2stPmJ1aWxkZXIuY29tbWl0dGVkLnhpcCA9IE5VTEw7CisJ b25kaXNrLT5idWlsZGVyLmNhdGNoYW5nZS54aXAgPSBOVUxMOworCS8qIHVwZGF0ZSBjYXRjaGFu Z2Ugb25seSBvbiBkaXNrIGRhdGEgKi8KKwlvbmRpc2stPmJ1aWxkZXIuY2F0Y2hhbmdlLnhjbnQg PSBjYXRjaGFuZ2VfeGNudDsKIAogCUNPTVBfQ1JDMzJDKG9uZGlzay0+Y2hlY2tzdW0sCiAJCQkJ Jm9uZGlzay0+YnVpbGRlciwKIAkJCQlzaXplb2YoU25hcEJ1aWxkKSk7CiAKIAkvKiBjb3B5IGNv bW1pdHRlZCB4YWN0cyAqLwotCXN6ID0gc2l6ZW9mKFRyYW5zYWN0aW9uSWQpICogYnVpbGRlci0+ Y29tbWl0dGVkLnhjbnQ7Ci0JbWVtY3B5KG9uZGlza19jLCBidWlsZGVyLT5jb21taXR0ZWQueGlw LCBzeik7Ci0JQ09NUF9DUkMzMkMob25kaXNrLT5jaGVja3N1bSwgb25kaXNrX2MsIHN6KTsKLQlv bmRpc2tfYyArPSBzejsKKwlpZiAoYnVpbGRlci0+Y29tbWl0dGVkLnhjbnQgPiAwKQorCXsKKwkJ c3ogPSBzaXplb2YoVHJhbnNhY3Rpb25JZCkgKiBidWlsZGVyLT5jb21taXR0ZWQueGNudDsKKwkJ bWVtY3B5KG9uZGlza19jLCBidWlsZGVyLT5jb21taXR0ZWQueGlwLCBzeik7CisJCUNPTVBfQ1JD MzJDKG9uZGlzay0+Y2hlY2tzdW0sIG9uZGlza19jLCBzeik7CisJCW9uZGlza19jICs9IHN6Owor CX0KKworCS8qIGNvcHkgY2F0YWxvZyBtb2RpZnlpbmcgeGFjdHMgKi8KKwlpZiAoY2F0Y2hhbmdl X3hjbnQgPiAwKQorCXsKKwkJc3ogPSBzaXplb2YoVHJhbnNhY3Rpb25JZCkgKiBjYXRjaGFuZ2Vf eGNudDsKKwkJbWVtY3B5KG9uZGlza19jLCBjYXRjaGFuZ2VfeGlwLCBzeik7CisJCUNPTVBfQ1JD MzJDKG9uZGlzay0+Y2hlY2tzdW0sIG9uZGlza19jLCBzeik7CisJCW9uZGlza19jICs9IHN6Owor CX0KIAogCUZJTl9DUkMzMkMob25kaXNrLT5jaGVja3N1bSk7CiAKQEAgLTE2ODgsMTIgKzE3OTks MTYgQEAgU25hcEJ1aWxkU2VyaWFsaXplKFNuYXBCdWlsZCAqYnVpbGRlciwgWExvZ1JlY1B0ciBs c24pCiAJICovCiAJYnVpbGRlci0+bGFzdF9zZXJpYWxpemVkX3NuYXBzaG90ID0gbHNuOwogCisJ TWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZF9jdHgpOworCiBvdXQ6CiAJUmVvcmRlckJ1ZmZlclNl dFJlc3RhcnRQb2ludChidWlsZGVyLT5yZW9yZGVyLAogCQkJCQkJCQkgYnVpbGRlci0+bGFzdF9z ZXJpYWxpemVkX3NuYXBzaG90KTsKIAkvKiBiZSB0aWR5ICovCiAJaWYgKG9uZGlzaykKIAkJcGZy ZWUob25kaXNrKTsKKwlpZiAoY2F0Y2hhbmdlX3hpcCkKKwkJcGZyZWUoY2F0Y2hhbmdlX3hpcCk7 CiB9CiAKIC8qCkBAIC0xNzA3LDcgKzE4MjIsNiBAQCBTbmFwQnVpbGRSZXN0b3JlKFNuYXBCdWls ZCAqYnVpbGRlciwgWExvZ1JlY1B0ciBsc24pCiAJaW50CQkJZmQ7CiAJY2hhcgkJcGF0aFtNQVhQ R1BBVEhdOwogCVNpemUJCXN6OwotCWludAkJCXJlYWRCeXRlczsKIAlwZ19jcmMzMmMJY2hlY2tz dW07CiAKIAkvKiBubyBwb2ludCBpbiBsb2FkaW5nIGEgc25hcHNob3QgaWYgd2UncmUgYWxyZWFk eSB0aGVyZSAqLwpAQCAtMTczOSwyOSArMTg1Myw3IEBAIFNuYXBCdWlsZFJlc3RvcmUoU25hcEJ1 aWxkICpidWlsZGVyLCBYTG9nUmVjUHRyIGxzbikKIAogCiAJLyogcmVhZCBzdGF0aWNhbGx5IHNp emVkIHBvcnRpb24gb2Ygc25hcHNob3QgKi8KLQlwZ3N0YXRfcmVwb3J0X3dhaXRfc3RhcnQoV0FJ VF9FVkVOVF9TTkFQQlVJTERfUkVBRCk7Ci0JcmVhZEJ5dGVzID0gcmVhZChmZCwgJm9uZGlzaywg U25hcEJ1aWxkT25EaXNrQ29uc3RhbnRTaXplKTsKLQlwZ3N0YXRfcmVwb3J0X3dhaXRfZW5kKCk7 Ci0JaWYgKHJlYWRCeXRlcyAhPSBTbmFwQnVpbGRPbkRpc2tDb25zdGFudFNpemUpCi0JewotCQlp bnQJCQlzYXZlX2Vycm5vID0gZXJybm87Ci0KLQkJQ2xvc2VUcmFuc2llbnRGaWxlKGZkKTsKLQot CQlpZiAocmVhZEJ5dGVzIDwgMCkKLQkJewotCQkJZXJybm8gPSBzYXZlX2Vycm5vOwotCQkJZXJl cG9ydChFUlJPUiwKLQkJCQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCksCi0JCQkJCSBlcnJt c2coImNvdWxkIG5vdCByZWFkIGZpbGUgXCIlc1wiOiAlbSIsIHBhdGgpKSk7Ci0JCX0KLQkJZWxz ZQotCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBX0NPUlJVUFRF RCksCi0JCQkJCSBlcnJtc2coImNvdWxkIG5vdCByZWFkIGZpbGUgXCIlc1wiOiByZWFkICVkIG9m ICV6dSIsCi0JCQkJCQkJcGF0aCwgcmVhZEJ5dGVzLAotCQkJCQkJCShTaXplKSBTbmFwQnVpbGRP bkRpc2tDb25zdGFudFNpemUpKSk7Ci0JfQorCVNuYXBCdWlsZFJlc3RvcmVDb250ZW50cyhmZCwg KGNoYXIgKikgJm9uZGlzaywgU25hcEJ1aWxkT25EaXNrQ29uc3RhbnRTaXplLCBwYXRoKTsKIAog CWlmIChvbmRpc2subWFnaWMgIT0gU05BUEJVSUxEX01BR0lDKQogCQllcmVwb3J0KEVSUk9SLApA QCAtMTc4MSw1NiArMTg3MywyNiBAQCBTbmFwQnVpbGRSZXN0b3JlKFNuYXBCdWlsZCAqYnVpbGRl ciwgWExvZ1JlY1B0ciBsc24pCiAJCQkJU25hcEJ1aWxkT25EaXNrQ29uc3RhbnRTaXplIC0gU25h cEJ1aWxkT25EaXNrTm90Q2hlY2tzdW1tZWRTaXplKTsKIAogCS8qIHJlYWQgU25hcEJ1aWxkICov Ci0JcGdzdGF0X3JlcG9ydF93YWl0X3N0YXJ0KFdBSVRfRVZFTlRfU05BUEJVSUxEX1JFQUQpOwot CXJlYWRCeXRlcyA9IHJlYWQoZmQsICZvbmRpc2suYnVpbGRlciwgc2l6ZW9mKFNuYXBCdWlsZCkp OwotCXBnc3RhdF9yZXBvcnRfd2FpdF9lbmQoKTsKLQlpZiAocmVhZEJ5dGVzICE9IHNpemVvZihT bmFwQnVpbGQpKQotCXsKLQkJaW50CQkJc2F2ZV9lcnJubyA9IGVycm5vOwotCi0JCUNsb3NlVHJh bnNpZW50RmlsZShmZCk7Ci0KLQkJaWYgKHJlYWRCeXRlcyA8IDApCi0JCXsKLQkJCWVycm5vID0g c2F2ZV9lcnJubzsKLQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCShlcnJjb2RlX2Zvcl9maWxlX2Fj Y2VzcygpLAotCQkJCQkgZXJybXNnKCJjb3VsZCBub3QgcmVhZCBmaWxlIFwiJXNcIjogJW0iLCBw YXRoKSkpOwotCQl9Ci0JCWVsc2UKLQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCShlcnJjb2RlKEVS UkNPREVfREFUQV9DT1JSVVBURUQpLAotCQkJCQkgZXJybXNnKCJjb3VsZCBub3QgcmVhZCBmaWxl IFwiJXNcIjogcmVhZCAlZCBvZiAlenUiLAotCQkJCQkJCXBhdGgsIHJlYWRCeXRlcywgc2l6ZW9m KFNuYXBCdWlsZCkpKSk7Ci0JfQorCVNuYXBCdWlsZFJlc3RvcmVDb250ZW50cyhmZCwgKGNoYXIg KikgJm9uZGlzay5idWlsZGVyLCBzaXplb2YoU25hcEJ1aWxkKSwgcGF0aCk7CiAJQ09NUF9DUkMz MkMoY2hlY2tzdW0sICZvbmRpc2suYnVpbGRlciwgc2l6ZW9mKFNuYXBCdWlsZCkpOwogCiAJLyog cmVzdG9yZSBjb21taXR0ZWQgeGFjdHMgaW5mb3JtYXRpb24gKi8KLQlzeiA9IHNpemVvZihUcmFu c2FjdGlvbklkKSAqIG9uZGlzay5idWlsZGVyLmNvbW1pdHRlZC54Y250OwotCW9uZGlzay5idWls ZGVyLmNvbW1pdHRlZC54aXAgPSBNZW1vcnlDb250ZXh0QWxsb2NaZXJvKGJ1aWxkZXItPmNvbnRl eHQsIHN6KTsKLQlwZ3N0YXRfcmVwb3J0X3dhaXRfc3RhcnQoV0FJVF9FVkVOVF9TTkFQQlVJTERf UkVBRCk7Ci0JcmVhZEJ5dGVzID0gcmVhZChmZCwgb25kaXNrLmJ1aWxkZXIuY29tbWl0dGVkLnhp cCwgc3opOwotCXBnc3RhdF9yZXBvcnRfd2FpdF9lbmQoKTsKLQlpZiAocmVhZEJ5dGVzICE9IHN6 KQorCWlmIChvbmRpc2suYnVpbGRlci5jb21taXR0ZWQueGNudCA+IDApCiAJewotCQlpbnQJCQlz YXZlX2Vycm5vID0gZXJybm87Ci0KLQkJQ2xvc2VUcmFuc2llbnRGaWxlKGZkKTsKKwkJc3ogPSBz aXplb2YoVHJhbnNhY3Rpb25JZCkgKiBvbmRpc2suYnVpbGRlci5jb21taXR0ZWQueGNudDsKKwkJ b25kaXNrLmJ1aWxkZXIuY29tbWl0dGVkLnhpcCA9IE1lbW9yeUNvbnRleHRBbGxvY1plcm8oYnVp bGRlci0+Y29udGV4dCwgc3opOworCQlTbmFwQnVpbGRSZXN0b3JlQ29udGVudHMoZmQsIChjaGFy ICopIG9uZGlzay5idWlsZGVyLmNvbW1pdHRlZC54aXAsIHN6LCBwYXRoKTsKKwkJQ09NUF9DUkMz MkMoY2hlY2tzdW0sIG9uZGlzay5idWlsZGVyLmNvbW1pdHRlZC54aXAsIHN6KTsKKwl9CiAKLQkJ aWYgKHJlYWRCeXRlcyA8IDApCi0JCXsKLQkJCWVycm5vID0gc2F2ZV9lcnJubzsKLQkJCWVyZXBv cnQoRVJST1IsCi0JCQkJCShlcnJjb2RlX2Zvcl9maWxlX2FjY2VzcygpLAotCQkJCQkgZXJybXNn KCJjb3VsZCBub3QgcmVhZCBmaWxlIFwiJXNcIjogJW0iLCBwYXRoKSkpOwotCQl9Ci0JCWVsc2UK LQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBURUQp LAotCQkJCQkgZXJybXNnKCJjb3VsZCBub3QgcmVhZCBmaWxlIFwiJXNcIjogcmVhZCAlZCBvZiAl enUiLAotCQkJCQkJCXBhdGgsIHJlYWRCeXRlcywgc3opKSk7CisJLyogcmVzdG9yZSBjYXRhbG9n IG1vZGlmeWluZyB4YWN0cyBpbmZvcm1hdGlvbiAqLworCWlmIChvbmRpc2suYnVpbGRlci5jYXRj aGFuZ2UueGNudCA+IDApCisJeworCQlzeiA9IHNpemVvZihUcmFuc2FjdGlvbklkKSAqIG9uZGlz ay5idWlsZGVyLmNhdGNoYW5nZS54Y250OworCQlvbmRpc2suYnVpbGRlci5jYXRjaGFuZ2UueGlw ID0gTWVtb3J5Q29udGV4dEFsbG9jWmVybyhidWlsZGVyLT5jb250ZXh0LCBzeik7CisJCVNuYXBC dWlsZFJlc3RvcmVDb250ZW50cyhmZCwgKGNoYXIgKikgb25kaXNrLmJ1aWxkZXIuY2F0Y2hhbmdl LnhpcCwgc3osIHBhdGgpOworCQlDT01QX0NSQzMyQyhjaGVja3N1bSwgb25kaXNrLmJ1aWxkZXIu Y2F0Y2hhbmdlLnhpcCwgc3opOwogCX0KLQlDT01QX0NSQzMyQyhjaGVja3N1bSwgb25kaXNrLmJ1 aWxkZXIuY29tbWl0dGVkLnhpcCwgc3opOwogCiAJaWYgKENsb3NlVHJhbnNpZW50RmlsZShmZCkg IT0gMCkKIAkJZXJlcG9ydChFUlJPUiwKQEAgLTE4ODUsNiArMTk0NywxMyBAQCBTbmFwQnVpbGRS ZXN0b3JlKFNuYXBCdWlsZCAqYnVpbGRlciwgWExvZ1JlY1B0ciBsc24pCiAJfQogCW9uZGlzay5i dWlsZGVyLmNvbW1pdHRlZC54aXAgPSBOVUxMOwogCisJLyogc2V0IGNhdGFsb2cgbW9kaWZ5aW5n IHRyYW5zYWN0aW9ucyAqLworCWlmIChidWlsZGVyLT5jYXRjaGFuZ2UueGlwKQorCQlwZnJlZShi dWlsZGVyLT5jYXRjaGFuZ2UueGlwKTsKKwlidWlsZGVyLT5jYXRjaGFuZ2UueGNudCA9IG9uZGlz ay5idWlsZGVyLmNhdGNoYW5nZS54Y250OworCWJ1aWxkZXItPmNhdGNoYW5nZS54aXAgPSBvbmRp c2suYnVpbGRlci5jYXRjaGFuZ2UueGlwOworCW9uZGlzay5idWlsZGVyLmNhdGNoYW5nZS54aXAg PSBOVUxMOworCiAJLyogb3VyIHNuYXBzaG90IGlzIG5vdCBpbnRlcmVzdGluZyBhbnltb3JlLCBi dWlsZCBhIG5ldyBvbmUgKi8KIAlpZiAoYnVpbGRlci0+c25hcHNob3QgIT0gTlVMTCkKIAl7CkBA IC0xOTA2LDkgKzE5NzUsNDMgQEAgU25hcEJ1aWxkUmVzdG9yZShTbmFwQnVpbGQgKmJ1aWxkZXIs IFhMb2dSZWNQdHIgbHNuKQogc25hcHNob3Rfbm90X2ludGVyZXN0aW5nOgogCWlmIChvbmRpc2su YnVpbGRlci5jb21taXR0ZWQueGlwICE9IE5VTEwpCiAJCXBmcmVlKG9uZGlzay5idWlsZGVyLmNv bW1pdHRlZC54aXApOworCWlmIChvbmRpc2suYnVpbGRlci5jYXRjaGFuZ2UueGlwICE9IE5VTEwp CisJCXBmcmVlKG9uZGlzay5idWlsZGVyLmNhdGNoYW5nZS54aXApOwogCXJldHVybiBmYWxzZTsK IH0KIAorLyoKKyAqIFJlYWQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzZXJpYWxpemVkIHNuYXBzaG90 IHRvICdkZXN0Jy4KKyAqLworc3RhdGljIHZvaWQKK1NuYXBCdWlsZFJlc3RvcmVDb250ZW50cyhp bnQgZmQsIGNoYXIgKmRlc3QsIFNpemUgc2l6ZSwgY29uc3QgY2hhciAqcGF0aCkKK3sKKwlpbnQJ CQlyZWFkQnl0ZXM7CisKKwlwZ3N0YXRfcmVwb3J0X3dhaXRfc3RhcnQoV0FJVF9FVkVOVF9TTkFQ QlVJTERfUkVBRCk7CisJcmVhZEJ5dGVzID0gcmVhZChmZCwgZGVzdCwgc2l6ZSk7CisJcGdzdGF0 X3JlcG9ydF93YWl0X2VuZCgpOworCWlmIChyZWFkQnl0ZXMgIT0gc2l6ZSkKKwl7CisJCWludAkJ CXNhdmVfZXJybm8gPSBlcnJubzsKKworCQlDbG9zZVRyYW5zaWVudEZpbGUoZmQpOworCisJCWlm IChyZWFkQnl0ZXMgPCAwKQorCQl7CisJCQllcnJubyA9IHNhdmVfZXJybm87CisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3MoKSwKKwkJCQkJIGVycm1zZygi Y291bGQgbm90IHJlYWQgZmlsZSBcIiVzXCI6ICVtIiwgcGF0aCkpKTsKKwkJfQorCQllbHNlCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwK KwkJCQkJIGVycm1zZygiY291bGQgbm90IHJlYWQgZmlsZSBcIiVzXCI6IHJlYWQgJWQgb2YgJXp1 IiwKKwkJCQkJCQlwYXRoLCByZWFkQnl0ZXMsIHNpemVvZihTbmFwQnVpbGQpKSkpOworCX0KK30K KwogLyoKICAqIFJlbW92ZSBhbGwgc2VyaWFsaXplZCBzbmFwc2hvdHMgdGhhdCBhcmUgbm90IHJl cXVpcmVkIGFueW1vcmUgYmVjYXVzZSBubwogICogc2xvdCBjYW4gbmVlZCB0aGVtLiBUaGlzIGRv ZXNuJ3QgYWN0dWFsbHkgaGF2ZSB0byBydW4gZHVyaW5nIGEgY2hlY2twb2ludCwKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Jlb3JkZXJidWZmZXIuaCBiL3NyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL3Jlb3JkZXJidWZmZXIuaAppbmRleCBkMTA5ZDBiYWVkLi5mZDg0ZjE3NWMw IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9yZW9yZGVyYnVmZmVyLmgKKysr IGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vcmVvcmRlcmJ1ZmZlci5oCkBAIC0zODAsNiArMzgw LDExIEBAIHR5cGVkZWYgc3RydWN0IFJlb3JkZXJCdWZmZXJUWE4KIAkgKi8KIAlkbGlzdF9ub2Rl CW5vZGU7CiAKKwkvKgorCSAqIEEgbm9kZSBpbiB0aGUgbGlzdCBvZiBjYXRhbG9nIG1vZGlmeWlu ZyB0cmFuc2FjdGlvbnMKKwkgKi8KKwlkbGlzdF9ub2RlCWNhdGNoYW5nZV9ub2RlOworCiAJLyoK IAkgKiBTaXplIG9mIHRoaXMgdHJhbnNhY3Rpb24gKGNoYW5nZXMgY3VycmVudGx5IGluIG1lbW9y eSwgaW4gYnl0ZXMpLgogCSAqLwpAQCAtNTI2LDYgKzUzMSwxMiBAQCBzdHJ1Y3QgUmVvcmRlckJ1 ZmZlcgogCSAqLwogCWRsaXN0X2hlYWQJdHhuc19ieV9iYXNlX3NuYXBzaG90X2xzbjsKIAorCS8q CisJICogVHJhbnNhY3Rpb25zIGFuZCBzdWJ0cmFuc2FjdGlvbnMgdGhhdCBoYXZlIG1vZGlmaWVk IHN5c3RlbSBjYXRhbG9ncy4KKwkgKi8KKwlkbGlzdF9oZWFkCWNhdGNoYW5nZV90eG5zOworCWlu dAkJCWNhdGNoYW5nZV9udHhuczsKKwogCS8qCiAJICogb25lLWVudHJ5IHNpemVkIGNhY2hlIGZv ciBieV90eG4uIFZlcnkgZnJlcXVlbnRseSB0aGUgc2FtZSB0eG4gZ2V0cwogCSAqIGxvb2tlZCB1 cCBvdmVyIGFuZCBvdmVyIGFnYWluLgpAQCAtNjc3LDYgKzY4OCw3IEBAIGV4dGVybiB2b2lkIFJl b3JkZXJCdWZmZXJTa2lwUHJlcGFyZShSZW9yZGVyQnVmZmVyICpyYiwgVHJhbnNhY3Rpb25JZCB4 aWQpOwogZXh0ZXJuIHZvaWQgUmVvcmRlckJ1ZmZlclByZXBhcmUoUmVvcmRlckJ1ZmZlciAqcmIs IFRyYW5zYWN0aW9uSWQgeGlkLCBjaGFyICpnaWQpOwogZXh0ZXJuIFJlb3JkZXJCdWZmZXJUWE4g KlJlb3JkZXJCdWZmZXJHZXRPbGRlc3RUWE4oUmVvcmRlckJ1ZmZlciAqKTsKIGV4dGVybiBUcmFu c2FjdGlvbklkIFJlb3JkZXJCdWZmZXJHZXRPbGRlc3RYbWluKFJlb3JkZXJCdWZmZXIgKnJiKTsK K2V4dGVybiBUcmFuc2FjdGlvbklkICpSZW9yZGVyQnVmZmVyR2V0Q2F0YWxvZ0NoYW5nZXNYYWN0 cyhSZW9yZGVyQnVmZmVyICpyYik7CiAKIGV4dGVybiB2b2lkIFJlb3JkZXJCdWZmZXJTZXRSZXN0 YXJ0UG9pbnQoUmVvcmRlckJ1ZmZlciAqLCBYTG9nUmVjUHRyIHB0cik7CiAKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3NuYXBidWlsZC5oIGIvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vc25hcGJ1aWxkLmgKaW5kZXggZDE3OTI1MWFhZC4uZTZhZGVhMjRmMiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc25hcGJ1aWxkLmgKKysrIGIvc3JjL2luY2x1ZGUv cmVwbGljYXRpb24vc25hcGJ1aWxkLmgKQEAgLTgyLDcgKzgyLDcgQEAgZXh0ZXJuIHZvaWQgU25h cEJ1aWxkU2V0VHdvUGhhc2VBdChTbmFwQnVpbGQgKmJ1aWxkZXIsIFhMb2dSZWNQdHIgcHRyKTsK IAogZXh0ZXJuIHZvaWQgU25hcEJ1aWxkQ29tbWl0VHhuKFNuYXBCdWlsZCAqYnVpbGRlciwgWExv Z1JlY1B0ciBsc24sCiAJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCB4aWQsIGludCBuc3VieGFjdHMs Ci0JCQkJCQkJICAgVHJhbnNhY3Rpb25JZCAqc3VieGFjdHMpOworCQkJCQkJCSAgIFRyYW5zYWN0 aW9uSWQgKnN1YnhhY3RzLCB1aW50MzIgeGluZm8pOwogZXh0ZXJuIGJvb2wgU25hcEJ1aWxkUHJv Y2Vzc0NoYW5nZShTbmFwQnVpbGQgKmJ1aWxkZXIsIFRyYW5zYWN0aW9uSWQgeGlkLAogCQkJCQkJ CQkgICBYTG9nUmVjUHRyIGxzbik7CiBleHRlcm4gdm9pZCBTbmFwQnVpbGRQcm9jZXNzTmV3Q2lk KFNuYXBCdWlsZCAqYnVpbGRlciwgVHJhbnNhY3Rpb25JZCB4aWQsCi0tIAoyLjI0LjMgKEFwcGxl IEdpdC0xMjgpCgo= --000000000000f352e005e5517a40 Content-Type: application/octet-stream; name="REL13_v13-0001-Fix-catalog-lookup-with-the-wrong-snapshot-durin.patch" Content-Disposition: attachment; filename="REL13_v13-0001-Fix-catalog-lookup-with-the-wrong-snapshot-durin.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l6db4dlb3 RnJvbSBjNjYxZjY2MzdhMjg5ZWM5YjJiYWU4YmY2ODMwMGM0MDQyZTdjNzliIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAyNSBKdWwgMjAyMiAxNDowMjo1MCArMDkwMApTdWJqZWN0OiBbUEFUQ0gg djEzXSBGaXggY2F0YWxvZyBsb29rdXAgd2l0aCB0aGUgd3Jvbmcgc25hcHNob3QgZHVyaW5nIGxv Z2ljYWwKIGRlY29kaW5nLgoKUHJldmlvdXNseSwgd2UgcmVsaWVkIG9uIEhFQVAyX05FV19DSUQg cmVjb3JkcyBhbmQgWEFDVF9JTlZBTElEQVRJT04KcmVjb3JkcyB0byBrbm93IGlmIHRoZSB0cmFu c2FjdGlvbiBoYXMgbW9kaWZpZWQgdGhlIGNhdGFsb2csIGFuZCB0aGF0CmluZm9ybWF0aW9uIGlz IG5vdCBzZXJpYWxpemVkIHRvIHNuYXBzaG90LiBUaGVyZWZvcmUsIGFmdGVyIHRoZSByZXN0YXJ0 LAppZiB0aGUgbG9naWNhbCBkZWNvZGluZyBkZWNvZGVzIG9ubHkgdGhlIGNvbW1pdCByZWNvcmQg b2YgdGhlIHRyYW5zYWN0aW9uCnRoYXQgaGFzIGFjdHVhbGx5IG1vZGlmaWVkIGEgY2F0YWxvZywg d2Ugd2lsbCBtaXNzIGFkZGluZyBpdHMgWElEIHRvIHRoZQpzbmFwc2hvdC4gVGh1cywgd2Ugd2ls bCBlbmQgdXAgbG9va2luZyBhdCBjYXRhbG9ncyB3aXRoIHRoZSB3cm9uZwpzbmFwc2hvdC4KClRv IGZpeCB0aGlzIHByb2JsZW0sIHRoaXMgY2hhbmdlcyB0aGUgc25hcHNob3QgYnVpbGRlciBzbyB0 aGF0IGl0CnJlbWVtYmVycyB0aGUgbGFzdC1ydW5uaW5nLXhhY3RzIGxpc3Qgb2YgdGhlIGRlY29k ZWQgUlVOTklOR19YQUNUUyByZWNvcmQKYWZ0ZXIgcmVzdG9yaW5nIHRoZSBwcmV2aW91c2x5IHNl cmlhbGl6ZWQgc25hcHNob3QuIFRoZW4sIHdlIG1hcmsgdGhlCnRyYW5zYWN0aW9uIGFzIGNvbnRh aW5pbmcgY2F0YWxvZyBjaGFuZ2VzIGlmIGl0J3MgaW4gdGhlIGxpc3Qgb2YgaW5pdGlhbApydW5u aW5nIHRyYW5zYWN0aW9ucyBhbmQgaXRzIGNvbW1pdCByZWNvcmQgaGFzIFhBQ1RfWElORk9fSEFT X0lOVkFMUy4gVG8KYXZvaWQgQUJJIGJyZWFrYWdlLCB3ZSBzdG9yZSB0aGUgYXJyYXkgb2YgdGhl IGluaXRpYWwgcnVubmluZyB0cmFuc2FjdGlvbnMKaW4gdGhlIHN0YXRpYyB2YXJpYWJsZXMgSW5p dGlhbFJ1bm5pbmdYYWN0cyBhbmQgTkluaXRpYWxSdW5uaW5nWGFjdHMsCmluc3RlYWQgb2Ygc3Rv cmluZyB0aG9zZSBpbiBTbmFwQnVpbGQgb3IgUmVvcmRlckJ1ZmZlci4KClRoaXMgYXBwcm9hY2gg aGFzIGEgZmFsc2UgcG9zaXRpdmU7IHdlIGNvdWxkIGVuZCB1cCBhZGRpbmcgdGhlIHRyYW5zYWN0 aW9uCnRoYXQgZGlkbid0IGNoYW5nZSBjYXRhbG9nIHRvIHRoZSBzbmFwc2hvdCBzaW5jZSB3ZSBj YW5ub3QgZGlzdGluZ3Vpc2gKd2hldGhlciB0aGUgdHJhbnNhY3Rpb24gaGFzIGNhdGFsb2cgY2hh bmdlcyBvbmx5IGJ5IGNoZWNraW5nIHRoZSBDT01NSVQKcmVjb3JkLiBJdCBkb2Vzbid0IGhhdmUg dGhlIGluZm9ybWF0aW9uIG9uIHdoaWNoIChzdWIpIHRyYW5zYWN0aW9uIGhhcwpjYXRhbG9nIGNo YW5nZXMsIGFuZCBYQUNUX1hJTkZPX0hBU19JTlZBTFMgZG9lc24ndCBuZWNlc3NhcmlseSBpbmRp Y2F0ZQp0aGF0IHRoZSB0cmFuc2FjdGlvbiBoYXMgY2F0YWxvZyBjaGFuZ2UuIEJ1dCB0aGF0IHdv bid0IGJlIGEgcHJvYmxlbSBzaW5jZQp3ZSB1c2Ugc25hcHNob3QgYnVpbHQgZHVyaW5nIGRlY29k aW5nIG9ubHkgdG8gcmVhZCBzeXN0ZW0gY2F0YWxvZ3MuCgpPbiB0aGUgbWFzdGVyIGJyYW5jaCwg d2UgdG9vayBhIG1vcmUgZnV0dXJlLXByb29mIGFwcHJvYWNoIGJ5IHdyaXRpbmcKY2F0YWxvZyBt b2RpZnlpbmcgdHJhbnNhY3Rpb25zIHRvIHRoZSBzZXJpYWxpemVkIHNuYXBzaG90IHdoaWNoIGF2 b2lkcyB0aGUKYWJvdmUgZmFsc2UgcG9zaXRpdmUuIEJ1dCB3ZSBjYW5ub3QgYmFja3BhdGNoIGl0 IGJlY2F1c2Ugb2YgYSBjaGFuZ2UgaW4KdGhlIFNuYXBCdWlsZC4KClJlcG9ydGVkLWJ5OiBNaWtl IE9oCkF1dGhvcjogTWFzYWhpa28gU2F3YWRhClJldmlld2VkLWJ5OiBBbWl0IEthcGlsYSwgU2hp IHl1LCBUYWthbWljaGkgT3N1bWksIEt5b3Rhcm8gSG9yaWd1Y2hpLCBCZXJ0cmFuZCBEcm91dm90 LCBBaHNhbiBIYWRpCkJhY2twYXRjaC10aHJvdWdoOiAxMApEaXNjdXNzaW9uOiBodHRwczovL3Bv c3Rnci5lcy9tLzgxRDBEOEIwLUU3QzQtNDk5OS1CNjE2LTFFNTAwNERCRENEMiU0MGFtYXpvbi5j b20KLS0tCiBjb250cmliL3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUgICAgICAgICAgICAgICAgfCAg IDIgKy0KIC4uLi9leHBlY3RlZC9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5vdXQgICAgICB8ICA0 NCArKysrKysKIC4uLi9zcGVjcy9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5zcGVjICAgICAgICB8 ICAzOSArKysrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyAgICAg IHwgIDE1ICstCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3NuYXBidWlsZC5jICAg fCAxMzMgKysrKysrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbmFwYnVp bGQuaCAgICAgICAgICAgfCAgIDMgKwogNiBmaWxlcyBjaGFuZ2VkLCAyMjcgaW5zZXJ0aW9ucygr KSwgOSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3Rlc3RfZGVjb2Rp bmcvZXhwZWN0ZWQvY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Qub3V0CiBjcmVhdGUgbW9kZSAxMDA2 NDQgY29udHJpYi90ZXN0X2RlY29kaW5nL3NwZWNzL2NhdGFsb2dfY2hhbmdlX3NuYXBzaG90LnNw ZWMKCmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUgYi9jb250cmli L3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUKaW5kZXggZjQzOWM1ODJhNS4uNmVjMDlhYjE5MiAxMDA2 NDQKLS0tIGEvY29udHJpYi90ZXN0X2RlY29kaW5nL01ha2VmaWxlCisrKyBiL2NvbnRyaWIvdGVz dF9kZWNvZGluZy9NYWtlZmlsZQpAQCAtNyw3ICs3LDcgQEAgUkVHUkVTUyA9IGRkbCB4YWN0IHJl d3JpdGUgdG9hc3QgcGVybWlzc2lvbnMgZGVjb2RpbmdfaW5feGFjdCBcCiAJZGVjb2RpbmdfaW50 b19yZWwgYmluYXJ5IHByZXBhcmVkIHJlcGxvcmlnaW4gdGltZSBtZXNzYWdlcyBcCiAJc3BpbGwg c2xvdCB0cnVuY2F0ZQogSVNPTEFUSU9OID0gbXhhY3QgZGVsYXllZF9zdGFydHVwIG9uZGlza19z dGFydHVwIGNvbmN1cnJlbnRfZGRsX2RtbCBcCi0Jb2xkZXN0X3htaW4gc25hcHNob3RfdHJhbnNm ZXIgc3VieGFjdF93aXRob3V0X3RvcAorCW9sZGVzdF94bWluIHNuYXBzaG90X3RyYW5zZmVyIHN1 YnhhY3Rfd2l0aG91dF90b3AgY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3QKIAogUkVHUkVTU19PUFRT ID0gLS10ZW1wLWNvbmZpZyAkKHRvcF9zcmNkaXIpL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9sb2dp Y2FsLmNvbmYKIElTT0xBVElPTl9PUFRTID0gLS10ZW1wLWNvbmZpZyAkKHRvcF9zcmNkaXIpL2Nv bnRyaWIvdGVzdF9kZWNvZGluZy9sb2dpY2FsLmNvbmYKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVz dF9kZWNvZGluZy9leHBlY3RlZC9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5vdXQgYi9jb250cmli L3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Qub3V0Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmRjNGY5YjcwMTgKLS0tIC9kZXYvbnVs bAorKysgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvY2F0YWxvZ19jaGFuZ2Vfc25h cHNob3Qub3V0CkBAIC0wLDAgKzEsNDQgQEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCAyIHNlc3Np b25zCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzMF9pbml0IHMwX2JlZ2luIHMwX3NhdmVwb2lu dCBzMF90cnVuY2F0ZSBzMV9jaGVja3BvaW50IHMxX2dldF9jaGFuZ2VzIHMwX2NvbW1pdCBzMF9i ZWdpbiBzMF9pbnNlcnQgczFfY2hlY2twb2ludCBzMV9nZXRfY2hhbmdlcyBzMF9jb21taXQgczFf Z2V0X2NoYW5nZXMKK3N0ZXAgczBfaW5pdDogU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9s b2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ2lzb2xhdGlvbl9zbG90JywgJ3Rlc3RfZGVjb2Rpbmcn KTsKKz9jb2x1bW4/CistLS0tLS0tLQoraW5pdCAgICAKKygxIHJvdykKKworc3RlcCBzMF9iZWdp bjogQkVHSU47CitzdGVwIHMwX3NhdmVwb2ludDogU0FWRVBPSU5UIHNwMTsKK3N0ZXAgczBfdHJ1 bmNhdGU6IFRSVU5DQVRFIHRibDE7CitzdGVwIHMxX2NoZWNrcG9pbnQ6IENIRUNLUE9JTlQ7Citz dGVwIHMxX2dldF9jaGFuZ2VzOiBTRUxFQ1QgZGF0YSBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRf Y2hhbmdlcygnaXNvbGF0aW9uX3Nsb3QnLCBOVUxMLCBOVUxMLCAnc2tpcC1lbXB0eS14YWN0cycs ICcxJywgJ2luY2x1ZGUteGlkcycsICcwJyk7CitkYXRhCistLS0tCisoMCByb3dzKQorCitzdGVw IHMwX2NvbW1pdDogQ09NTUlUOworc3RlcCBzMF9iZWdpbjogQkVHSU47CitzdGVwIHMwX2luc2Vy dDogSU5TRVJUIElOVE8gdGJsMSBWQUxVRVMgKDEpOworc3RlcCBzMV9jaGVja3BvaW50OiBDSEVD S1BPSU5UOworc3RlcCBzMV9nZXRfY2hhbmdlczogU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2Fs X3Nsb3RfZ2V0X2NoYW5nZXMoJ2lzb2xhdGlvbl9zbG90JywgTlVMTCwgTlVMTCwgJ3NraXAtZW1w dHkteGFjdHMnLCAnMScsICdpbmNsdWRlLXhpZHMnLCAnMCcpOworZGF0YSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KK0JFR0lOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAordGFibGUgcHVi bGljLnRibDE6IFRSVU5DQVRFOiAobm8tZmxhZ3MpCitDT01NSVQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKygzIHJvd3MpCisKK3N0ZXAgczBfY29tbWl0OiBDT01NSVQ7CitzdGVw IHMxX2dldF9jaGFuZ2VzOiBTRUxFQ1QgZGF0YSBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hh bmdlcygnaXNvbGF0aW9uX3Nsb3QnLCBOVUxMLCBOVUxMLCAnc2tpcC1lbXB0eS14YWN0cycsICcx JywgJ2luY2x1ZGUteGlkcycsICcwJyk7CitkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitCRUdJTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCit0YWJsZSBwdWJsaWMu dGJsMTogSU5TRVJUOiB2YWwxW2ludGVnZXJdOjEgdmFsMltpbnRlZ2VyXTpudWxsCitDT01NSVQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiso MyByb3dzKQorCis/Y29sdW1uPworLS0tLS0tLS0KK3N0b3AgICAgCisoMSByb3cpCisKZGlmZiAt LWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcGVjcy9jYXRhbG9nX2NoYW5nZV9zbmFwc2hv dC5zcGVjIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3NwZWNzL2NhdGFsb2dfY2hhbmdlX3NuYXBz aG90LnNwZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMjk3MWRkYzY5 YwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcGVjcy9jYXRhbG9n X2NoYW5nZV9zbmFwc2hvdC5zcGVjCkBAIC0wLDAgKzEsMzkgQEAKKyMgVGVzdCBkZWNvZGluZyBv bmx5IHRoZSBjb21taXQgcmVjb3JkIG9mIHRoZSB0cmFuc2FjdGlvbiB0aGF0IGhhdmUKKyMgbW9k aWZpZWQgY2F0YWxvZ3MuCitzZXR1cAoreworICAgIERST1AgVEFCTEUgSUYgRVhJU1RTIHRibDE7 CisgICAgQ1JFQVRFIFRBQkxFIHRibDEgKHZhbDEgaW50ZWdlciwgdmFsMiBpbnRlZ2VyKTsKK30K KwordGVhcmRvd24KK3sKKyAgICBEUk9QIFRBQkxFIHRibDE7CisgICAgU0VMRUNUICdzdG9wJyBG Uk9NIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnaXNvbGF0aW9uX3Nsb3QnKTsKK30KKworc2Vz c2lvbiAiczAiCitzZXR1cCB7IFNFVCBzeW5jaHJvbm91c19jb21taXQ9b247IH0KK3N0ZXAgInMw X2luaXQiIHsgU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9u X3Nsb3QoJ2lzb2xhdGlvbl9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnKTsgfQorc3RlcCAiczBfYmVn aW4iIHsgQkVHSU47IH0KK3N0ZXAgInMwX3NhdmVwb2ludCIgeyBTQVZFUE9JTlQgc3AxOyB9Citz dGVwICJzMF90cnVuY2F0ZSIgeyBUUlVOQ0FURSB0YmwxOyB9CitzdGVwICJzMF9pbnNlcnQiIHsg SU5TRVJUIElOVE8gdGJsMSBWQUxVRVMgKDEpOyB9CitzdGVwICJzMF9jb21taXQiIHsgQ09NTUlU OyB9CisKK3Nlc3Npb24gInMxIgorc2V0dXAgeyBTRVQgc3luY2hyb25vdXNfY29tbWl0PW9uOyB9 CitzdGVwICJzMV9jaGVja3BvaW50IiB7IENIRUNLUE9JTlQ7IH0KK3N0ZXAgInMxX2dldF9jaGFu Z2VzIiB7IFNFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdpc29s YXRpb25fc2xvdCcsIE5VTEwsIE5VTEwsICdza2lwLWVtcHR5LXhhY3RzJywgJzEnLCAnaW5jbHVk ZS14aWRzJywgJzAnKTsgfQorCisjIEZvciB0aGUgdHJhbnNhY3Rpb24gdGhhdCBUUlVOQ0FURWQg dGhlIHRhYmxlIHRibDEsIHRoZSBsYXN0IGRlY29kaW5nIGRlY29kZXMKKyMgb25seSBpdHMgQ09N TUlUIHJlY29yZCwgYmVjYXVzZSBpdCBzdGFydHMgZnJvbSB0aGUgUlVOTklOR19YQUNUUyByZWNv cmQgZW1pdHRlZAorIyBkdXJpbmcgdGhlIGZpcnN0IGNoZWNrcG9pbnQgZXhlY3V0aW9uLiAgVGhp cyB0cmFuc2FjdGlvbiBtdXN0IGJlIG1hcmtlZCBhcworIyBjb250YWluaW5nIGNhdGFsb2cgY2hh bmdlcyB3aGlsZSBkZWNvZGluZyB0aGUgQ09NTUlUIHJlY29yZCBhbmQgdGhlIGRlY29kaW5nCisj IG9mIHRoZSBJTlNFUlQgcmVjb3JkIG11c3QgcmVhZCB0aGUgcGdfY2xhc3Mgd2l0aCB0aGUgY29y cmVjdCBoaXN0b3JpYyBzbmFwc2hvdC4KKyMKKyMgTm90ZSB0aGF0IGluIGEgY2FzZSB3aGVyZSBi Z3dyaXRlciB3cm90ZSB0aGUgUlVOTklOR19YQUNUUyByZWNvcmQgYmV0d2VlbiAiczBfY29tbWl0 IgorIyBhbmQgInMwX2JlZ2luIiwgdGhpcyBkb2Vzbid0IGhhcHBlbiBhcyB0aGUgZGVjb2Rpbmcg c3RhcnRzIGZyb20gdGhlIFJVTk5JTkdfWEFDVFMKKyMgcmVjb3JkIHdyaXR0ZW4gYnkgYmd3cml0 ZXIuICBPbmUgbWlnaHQgdGhpbmsgd2UgY2FuIGVpdGhlciBzdG9wIHRoZSBiZ3dyaXRlciBvcgor IyBpbmNyZWFzZSBMT0dfU05BUFNIT1RfSU5URVJWQUxfTVMgYnV0IGl0J3Mgbm90IHByYWN0aWNh bCB2aWEgdGVzdHMuCitwZXJtdXRhdGlvbiAiczBfaW5pdCIgInMwX2JlZ2luIiAiczBfc2F2ZXBv aW50IiAiczBfdHJ1bmNhdGUiICJzMV9jaGVja3BvaW50IiAiczFfZ2V0X2NoYW5nZXMiICJzMF9j b21taXQiICJzMF9iZWdpbiIgInMwX2luc2VydCIgInMxX2NoZWNrcG9pbnQiICJzMV9nZXRfY2hh bmdlcyIgInMwX2NvbW1pdCIgInMxX2dldF9jaGFuZ2VzIgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvZGVjb2RlLmMKaW5kZXggNWEyYjgyOGFhMy4uODdjYmQwOGU4NSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYworKysgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCkBAIC01ODIsNyArNTgyLDIwIEBAIERl Y29kZUNvbW1pdChMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsIFhMb2dSZWNvcmRCdWZmZXIg KmJ1ZiwKIAkJaWYgKCFjdHgtPmZhc3RfZm9yd2FyZCkKIAkJCVJlb3JkZXJCdWZmZXJBZGRJbnZh bGlkYXRpb25zKGN0eC0+cmVvcmRlciwgeGlkLCBidWYtPm9yaWdwdHIsCiAJCQkJCQkJCQkJICBw YXJzZWQtPm5tc2dzLCBwYXJzZWQtPm1zZ3MpOwotCQlSZW9yZGVyQnVmZmVyWGlkU2V0Q2F0YWxv Z0NoYW5nZXMoY3R4LT5yZW9yZGVyLCB4aWQsIGJ1Zi0+b3JpZ3B0cik7CisJCS8qCisJCSAqIElm IHRoZSBDT01NSVQgcmVjb3JkIGhhcyBpbnZhbGlkYXRpb24gbWVzc2FnZXMsIGl0IGNvdWxkIGhh dmUgY2F0YWxvZworCQkgKiBjaGFuZ2VzLiBJdCBpcyBwb3NzaWJsZSB0aGF0IHdlIGRpZG4ndCBt YXJrIHRoaXMgdHJhbnNhY3Rpb24gYW5kCisJCSAqIGl0cyBzdWJ0cmFuc2FjdGlvbnMgYXMgY29u dGFpbmluZyBjYXRhbG9nIGNoYW5nZXMgd2hlbiB0aGUgZGVjb2RpbmcKKwkJICogc3RhcnRzIGZy b20gYSBjb21taXQgcmVjb3JkIHdpdGhvdXQgZGVjb2RpbmcgdGhlIHRyYW5zYWN0aW9uJ3Mgb3Ro ZXIKKwkJICogY2hhbmdlcy4gVGhlcmVmb3JlLCB3ZSBlbnN1cmUgdG8gbWFyayBzdWNoIHRyYW5z YWN0aW9ucyBhcyBjb250YWluaW5nCisJCSAqIGNhdGFsb2cgY2hhbmdlLgorCQkgKgorCQkgKiBU aGlzIG11c3QgYmUgZG9uZSBiZWZvcmUgU25hcEJ1aWxkQ29tbWl0VHhuKCkgc28gdGhhdCB3ZSBj YW4gaW5jbHVkZQorCQkgKiB0aGVzZSB0cmFuc2FjdGlvbnMgaW4gdGhlIGhpc3RvcmljIHNuYXBz aG90LgorCQkgKi8KKwkJU25hcEJ1aWxkWGlkU2V0Q2F0YWxvZ0NoYW5nZXMoY3R4LT5zbmFwc2hv dF9idWlsZGVyLCB4aWQsCisJCQkJCQkJCQkgIHBhcnNlZC0+bnN1YnhhY3RzLCBwYXJzZWQtPnN1 YnhhY3RzLAorCQkJCQkJCQkJICBidWYtPm9yaWdwdHIpOwogCX0KIAogCVNuYXBCdWlsZENvbW1p dFR4bihjdHgtPnNuYXBzaG90X2J1aWxkZXIsIGJ1Zi0+b3JpZ3B0ciwgeGlkLApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbmFwYnVpbGQuYyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc25hcGJ1aWxkLmMKaW5kZXggYmU0NmJmMDM2My4uZDQw N2ZiMzQ0MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbmFw YnVpbGQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3NuYXBidWlsZC5j CkBAIC0yNTIsOCArMjUyLDM4IEBAIHN0cnVjdCBTbmFwQnVpbGQKIHN0YXRpYyBSZXNvdXJjZU93 bmVyIFNhdmVkUmVzb3VyY2VPd25lckR1cmluZ0V4cG9ydCA9IE5VTEw7CiBzdGF0aWMgYm9vbCBF eHBvcnRJblByb2dyZXNzID0gZmFsc2U7CiAKLS8qIC0+Y29tbWl0dGVkIG1hbmlwdWxhdGlvbiAq Lwotc3RhdGljIHZvaWQgU25hcEJ1aWxkUHVyZ2VDb21taXR0ZWRUeG4oU25hcEJ1aWxkICpidWls ZGVyKTsKKy8qCisgKiBBcnJheSBvZiB0cmFuc2FjdGlvbnMgYW5kIHN1YnRyYW5zYWN0aW9ucyB0 aGF0IHdlcmUgcnVubmluZyB3aGVuCisgKiB0aGUgeGxfcnVubmluZ194YWN0cyByZWNvcmQgdGhh dCB3ZSBkZWNvZGVkIHdhcyB3cml0dGVuLiBUaGUgYXJyYXkgaXMKKyAqIHNvcnRlZCBpbiB4aWRD b21wYXJhdG9yIG9yZGVyLiBXZSByZW1vdmUgeGlkcyBmcm9tIHRoaXMgYXJyYXkgd2hlbgorICog dGhleSBiZWNvbWUgb2xkIGVub3VnaCB0byBtYXR0ZXIsIGFuZCB0aGVuIGl0IGV2ZW50dWFsbHkg YmVjb21lcyBlbXB0eS4KKyAqIFRoaXMgYXJyYXkgaXMgYWxsb2NhdGVkIGluIGJ1aWxkZXItPmNv bnRleHQgc28gaXRzIGxpZmV0aW1lIGlzIHRoZSBzYW1lCisgKiBhcyB0aGUgc25hcHNob3QgYnVp bGRlci4KKyAqCisgKiBXZSBub3JtYWxseSByZWx5IG9uIHNvbWUgV0FMIHJlY29yZCB0eXBlcyBz dWNoIGFzIEhFQVAyX05FV19DSUQgdG8ga25vdworICogaWYgdGhlIHRyYW5zYWN0aW9uIGhhcyBj aGFuZ2VkIHRoZSBjYXRhbG9nLiBCdXQgaXQgY291bGQgaGFwcGVuIHRoYXQgdGhlCisgKiBsb2dp Y2FsIGRlY29kaW5nIGRlY29kZXMgb25seSB0aGUgY29tbWl0IHJlY29yZCBvZiB0aGUgdHJhbnNh Y3Rpb24gYWZ0ZXIKKyAqIHJlc3RvcmluZyB0aGUgcHJldmlvdXNseSBzZXJpYWxpemVkIHNuYXBz aG90IGluIHdoaWNoIGNhc2Ugd2Ugd2lsbCBtaXNzCisgKiBhZGRpbmcgdGhlIHhpZCB0byB0aGUg c25hcHNob3QgYW5kIGVuZCB1cCBsb29raW5nIGF0IHRoZSBjYXRhbG9ncyB3aXRoIHRoZQorICog d3Jvbmcgc25hcHNob3QuCisgKgorICogTm93IHRvIGF2b2lkIHRoZSBhYm92ZSBwcm9ibGVtLCBp ZiB0aGUgQ09NTUlUIHJlY29yZCBvZiB0aGUgeGlkIGxpc3RlZCBpbgorICogSW5pdGlhbFJ1bm5p bmdYYWN0cyBoYXMgWEFDVF9YSU5GT19IQVNfSU5WQUxTIGZsYWcsIHdlIG1hcmsgYm90aCB0aGUg dG9wCisgKiB0cmFuc2FjdGlvbiBhbmQgaXRzIHN1YnN0cmFuc2FjdGlvbnMgYXMgY29udGFpbmlu ZyBjYXRhbG9nIGNoYW5nZXMuCisgKgorICogV2UgY291bGQgZW5kIHVwIGFkZGluZyB0aGUgdHJh bnNhY3Rpb24gdGhhdCBkaWRuJ3QgY2hhbmdlIGNhdGFsb2cKKyAqIHRvIHRoZSBzbmFwc2hvdCBz aW5jZSB3ZSBjYW5ub3QgZGlzdGluZ3Vpc2ggd2hldGhlciB0aGUgdHJhbnNhY3Rpb24KKyAqIGhh cyBjYXRhbG9nIGNoYW5nZXMgb25seSBieSBjaGVja2luZyB0aGUgQ09NTUlUIHJlY29yZC4gSXQg ZG9lc24ndAorICogaGF2ZSB0aGUgaW5mb3JtYXRpb24gb24gd2hpY2ggKHN1YikgdHJhbnNhY3Rp b24gaGFzIGNhdGFsb2cgY2hhbmdlcywKKyAqIGFuZCBYQUNUX1hJTkZPX0hBU19JTlZBTFMgZG9l c24ndCBuZWNlc3NhcmlseSBpbmRpY2F0ZSB0aGF0IHRoZQorICogdHJhbnNhY3Rpb24gaGFzIGNh dGFsb2cgY2hhbmdlLiBCdXQgdGhhdCB3b24ndCBiZSBhIHByb2JsZW0gc2luY2Ugd2UKKyAqIHVz ZSBzbmFwc2hvdCBidWlsdCBkdXJpbmcgZGVjb2Rpbmcgb25seSBmb3IgcmVhZGluZyBzeXN0ZW0g Y2F0YWxvZ3MuCisgKi8KK3N0YXRpYyBUcmFuc2FjdGlvbklkICpJbml0aWFsUnVubmluZ1hhY3Rz ID0gTlVMTDsKK3N0YXRpYyBpbnQJTkluaXRpYWxSdW5uaW5nWGFjdHMgPSAwOworCisvKiAtPmNv bW1pdHRlZCBhbmQgSW5pdGFpbFJ1bm5pbmdYYWN0cyBtYW5pcHVsYXRpb24gKi8KK3N0YXRpYyB2 b2lkIFNuYXBCdWlsZFB1cmdlT2xkZXJUeG4oU25hcEJ1aWxkICpidWlsZGVyKTsKIAogLyogc25h cHNob3QgYnVpbGRpbmcvbWFuaXB1bGF0aW9uL2Rpc3RyaWJ1dGlvbiBmdW5jdGlvbnMgKi8KIHN0 YXRpYyBTbmFwc2hvdCBTbmFwQnVpbGRCdWlsZFNuYXBzaG90KFNuYXBCdWlsZCAqYnVpbGRlcik7 CkBAIC04OTAsMTIgKzkyMCwxNyBAQCBTbmFwQnVpbGRBZGRDb21taXR0ZWRUeG4oU25hcEJ1aWxk ICpidWlsZGVyLCBUcmFuc2FjdGlvbklkIHhpZCkKIH0KIAogLyoKLSAqIFJlbW92ZSBrbm93bGVk Z2UgYWJvdXQgdHJhbnNhY3Rpb25zIHdlIHRyZWF0IGFzIGNvbW1pdHRlZCB0aGF0IGFyZSBzbWFs bGVyCi0gKiB0aGFuIC0+eG1pbi4gVGhvc2Ugd29uJ3QgZXZlciBnZXQgY2hlY2tlZCB2aWEgdGhl IC0+Y29tbWl0dGVkIGFycmF5IGJ1dCB2aWEKLSAqIHRoZSBjbG9nIG1hY2hpbmVyeSwgc28gd2Ug ZG9uJ3QgbmVlZCB0byB3YXN0ZSBtZW1vcnkgb24gdGhlbS4KKyAqIFJlbW92ZSBrbm93bGVkZ2Ug YWJvdXQgdHJhbnNhY3Rpb25zIHdlIHRyZWF0IGFzIGNvbW1pdHRlZCBhbmQgdGhlIGluaXRpYWwK KyAqIHJ1bm5pbmcgdHJhbnNhY3Rpb25zIHRoYXQgYXJlIHNtYWxsZXIgdGhhbiAtPnhtaW4uIFRo b3NlIHdvbid0IGV2ZXIgZ2V0CisgKiBjaGVja2VkIHZpYSB0aGUgLT5jb21taXR0ZWQgb3IgSW5p dGlhbFJ1bm5pbmdYYWN0cyBhcnJheSwgcmVzcGVjdGl2ZWx5LgorICogVGhlIGNvbW1pdHRlZCB4 aWRzIHdpbGwgZ2V0IGNoZWNrZWQgdmlhIHRoZSBjbG9nIG1hY2hpbmVyeS4KKyAqCisgKiBXZSBj YW4gaWRlYWxseSByZW1vdmUgdGhlIHRyYW5zYWN0aW9uIGZyb20gSW5pdGlhbFJ1bm5pbmdYYWN0 cyBhcnJheQorICogb25jZSBpdCBpcyBmaW5pc2hlZCAoY29tbWl0dGVkL2Fib3J0ZWQpIGJ1dCB0 aGF0IGNvdWxkIGJlIGNvc3RseSBhcyB3ZSBuZWVkCisgKiB0byBtYWludGFpbiB0aGUgeGlkcyBv cmRlciBpbiB0aGUgYXJyYXkuCiAgKi8KIHN0YXRpYyB2b2lkCi1TbmFwQnVpbGRQdXJnZUNvbW1p dHRlZFR4bihTbmFwQnVpbGQgKmJ1aWxkZXIpCitTbmFwQnVpbGRQdXJnZU9sZGVyVHhuKFNuYXBC dWlsZCAqYnVpbGRlcikKIHsKIAlpbnQJCQlvZmY7CiAJVHJhbnNhY3Rpb25JZCAqd29ya3NwYWNl OwpAQCAtOTMwLDYgKzk2NSw0OSBAQCBTbmFwQnVpbGRQdXJnZUNvbW1pdHRlZFR4bihTbmFwQnVp bGQgKmJ1aWxkZXIpCiAJYnVpbGRlci0+Y29tbWl0dGVkLnhjbnQgPSBzdXJ2aXZpbmdfeGlkczsK IAogCXBmcmVlKHdvcmtzcGFjZSk7CisKKwkvKiBRdWljayBleGl0IGlmIHRoZXJlIGlzIG5vIGlu aXRpYWwgcnVubmluZyB0cmFuc2FjdGlvbnMgKi8KKwlpZiAoTkluaXRpYWxSdW5uaW5nWGFjdHMg PT0gMCkKKwkJcmV0dXJuOworCisJLyogYm91bmQgY2hlY2sgaWYgdGhlcmUgaXMgYXQgbGVhc3Qg b25lIHRyYW5zYWN0aW9uIHRvIHJlbW92ZSAqLworCWlmICghTm9ybWFsVHJhbnNhY3Rpb25JZFBy ZWNlZGVzKEluaXRpYWxSdW5uaW5nWGFjdHNbMF0sCisJCQkJCQkJCQkgYnVpbGRlci0+eG1pbikp CisJCXJldHVybjsKKworCS8qCisJICogcHVyZ2UgeGlkcyBpbiBJbml0aWFsUnVubmluZ1hhY3Rz IGFzIHdlbGwuIFRoZSBwdXJnZWQgYXJyYXkgbXVzdCBhbHNvCisJICogYmUgc29ydGVkIGluIHhp ZENvbXBhcmF0b3Igb3JkZXIuCisJICovCisJd29ya3NwYWNlID0KKwkJTWVtb3J5Q29udGV4dEFs bG9jKGJ1aWxkZXItPmNvbnRleHQsCisJCQkJCQkgICBOSW5pdGlhbFJ1bm5pbmdYYWN0cyAqIHNp emVvZihUcmFuc2FjdGlvbklkKSk7CisJc3Vydml2aW5nX3hpZHMgPSAwOworCWZvciAob2ZmID0g MDsgb2ZmIDwgTkluaXRpYWxSdW5uaW5nWGFjdHM7IG9mZisrKQorCXsKKwkJaWYgKE5vcm1hbFRy YW5zYWN0aW9uSWRQcmVjZWRlcyhJbml0aWFsUnVubmluZ1hhY3RzW29mZl0sCisJCQkJCQkJCQkJ YnVpbGRlci0+eG1pbikpCisJCQk7CQkJCQkvKiByZW1vdmUgKi8KKwkJZWxzZQorCQkJd29ya3Nw YWNlW3N1cnZpdmluZ194aWRzKytdID0gSW5pdGlhbFJ1bm5pbmdYYWN0c1tvZmZdOworCX0KKwor CWlmIChzdXJ2aXZpbmdfeGlkcyA+IDApCisJCW1lbWNweShJbml0aWFsUnVubmluZ1hhY3RzLCB3 b3Jrc3BhY2UsCisJCQkgICBzaXplb2YoVHJhbnNhY3Rpb25JZCkgKiBzdXJ2aXZpbmdfeGlkcyk7 CisJZWxzZQorCXsKKwkJcGZyZWUoSW5pdGlhbFJ1bm5pbmdYYWN0cyk7CisJCUluaXRpYWxSdW5u aW5nWGFjdHMgPSBOVUxMOworCX0KKworCWVsb2coREVCVUczLCAicHVyZ2VkIGluaXRpYWwgcnVu bmluZyB0cmFuc2FjdGlvbnMgZnJvbSAldSB0byAldSwgb2xkZXN0IHJ1bm5pbmcgeGlkICV1IiwK KwkJICh1aW50MzIpIE5Jbml0aWFsUnVubmluZ1hhY3RzLAorCQkgKHVpbnQzMikgc3Vydml2aW5n X3hpZHMsCisJCSBidWlsZGVyLT54bWluKTsKKworCU5Jbml0aWFsUnVubmluZ1hhY3RzID0gc3Vy dml2aW5nX3hpZHM7CisJcGZyZWUod29ya3NwYWNlKTsKIH0KIAogLyoKQEAgLTExMzcsNyArMTIx NSw3IEBAIFNuYXBCdWlsZFByb2Nlc3NSdW5uaW5nWGFjdHMoU25hcEJ1aWxkICpidWlsZGVyLCBY TG9nUmVjUHRyIGxzbiwgeGxfcnVubmluZ194YWN0CiAJYnVpbGRlci0+eG1pbiA9IHJ1bm5pbmct Pm9sZGVzdFJ1bm5pbmdYaWQ7CiAKIAkvKiBSZW1vdmUgdHJhbnNhY3Rpb25zIHdlIGRvbid0IG5l ZWQgdG8ga2VlcCB0cmFjayBvZmYgYW55bW9yZSAqLwotCVNuYXBCdWlsZFB1cmdlQ29tbWl0dGVk VHhuKGJ1aWxkZXIpOworCVNuYXBCdWlsZFB1cmdlT2xkZXJUeG4oYnVpbGRlcik7CiAKIAkvKgog CSAqIEFkdmFuY2UgdGhlIHhtaW4gbGltaXQgZm9yIHRoZSBjdXJyZW50IHJlcGxpY2F0aW9uIHNs b3QsIHRvIGFsbG93CkBAIC0xMjg4LDYgKzEzNjYsMjAgQEAgU25hcEJ1aWxkRmluZFNuYXBzaG90 KFNuYXBCdWlsZCAqYnVpbGRlciwgWExvZ1JlY1B0ciBsc24sIHhsX3J1bm5pbmdfeGFjdHMgKnJ1 bm4KIAllbHNlIGlmICghYnVpbGRlci0+YnVpbGRpbmdfZnVsbF9zbmFwc2hvdCAmJgogCQkJIFNu YXBCdWlsZFJlc3RvcmUoYnVpbGRlciwgbHNuKSkKIAl7CisJCWludAkJCW54YWN0cyA9IHJ1bm5p bmctPnN1YnhjbnQgKyBydW5uaW5nLT54Y250OworCQlTaXplCQlzeiA9IHNpemVvZihUcmFuc2Fj dGlvbklkKSAqIG54YWN0czsKKworCQkvKgorCQkgKiBSZW1lbWJlciB0aGUgdHJhbnNhY3Rpb25z IGFuZCBzdWJ0cmFuc2FjdGlvbnMgdGhhdCB3ZXJlIHJ1bm5pbmcKKwkJICogd2hlbiB4bF9ydW5u aW5nX3hhY3RzIHJlY29yZCB0aGF0IHdlIGRlY29kZWQgd2FzIHdyaXR0ZW4uIFdlIHVzZQorCQkg KiB0aGlzIGxhdGVyIHRvIGlkZW50aWZ5IHRoZSB0cmFuc2FjdGlvbnMgaGF2ZSBwZXJmb3JtZWQg Y2F0YWxvZworCQkgKiBjaGFuZ2VzLiBTZWUgU25hcEJ1aWxkWGlkU2V0Q2F0YWxvZ0NoYW5nZXMu CisJCSAqLworCQlOSW5pdGlhbFJ1bm5pbmdYYWN0cyA9IG54YWN0czsKKwkJSW5pdGlhbFJ1bm5p bmdYYWN0cyA9IE1lbW9yeUNvbnRleHRBbGxvYyhidWlsZGVyLT5jb250ZXh0LCBzeik7CisJCW1l bWNweShJbml0aWFsUnVubmluZ1hhY3RzLCBydW5uaW5nLT54aWRzLCBzeik7CisJCXFzb3J0KElu aXRpYWxSdW5uaW5nWGFjdHMsIG54YWN0cywgc2l6ZW9mKFRyYW5zYWN0aW9uSWQpLCB4aWRDb21w YXJhdG9yKTsKKwogCQkvKiB0aGVyZSB3b24ndCBiZSBhbnkgc3RhdGUgdG8gY2xlYW51cCAqLwog CQlyZXR1cm4gZmFsc2U7CiAJfQpAQCAtMjAzMCwzICsyMTIyLDMwIEBAIENoZWNrUG9pbnRTbmFw QnVpbGQodm9pZCkKIAl9CiAJRnJlZURpcihzbmFwX2Rpcik7CiB9CisKKy8qCisgKiBNYXJrIHRo ZSB0cmFuc2FjdGlvbiBhcyBjb250YWluaW5nIGNhdGFsb2cgY2hhbmdlcy4gSW4gYWRkaXRpb24s IGlmIHRoZQorICogZ2l2ZW4geGlkIGlzIGluIHRoZSBsaXN0IG9mIHRoZSBpbml0aWFsIHJ1bm5p bmcgeGFjdHMsIHdlIG1hcmsgaXRzCisgKiBzdWJ0cmFuc2FjdGlvbnMgYXMgd2VsbC4gU2VlIGNv bW1lbnRzIGZvciBOSW5pdGlhbFJ1bm5pbmdYYWN0cyBhbmQKKyAqIEluaXRpYWxSdW5uaW5nWGFj dHMgZm9yIGFkZGl0aW9uYWwgaW5mby4KKyAqLwordm9pZAorU25hcEJ1aWxkWGlkU2V0Q2F0YWxv Z0NoYW5nZXMoU25hcEJ1aWxkICpidWlsZGVyLCBUcmFuc2FjdGlvbklkIHhpZCwgaW50IHN1Ynhj bnQsCisJCQkJCQkJICBUcmFuc2FjdGlvbklkICpzdWJ4YWN0cywgWExvZ1JlY1B0ciBsc24pCit7 CisJUmVvcmRlckJ1ZmZlclhpZFNldENhdGFsb2dDaGFuZ2VzKGJ1aWxkZXItPnJlb3JkZXIsIHhp ZCwgbHNuKTsKKworCS8qIFNraXAgaWYgdGhlcmUgaXMgbm8gaW5pdGlhbCBydW5uaW5nIHhhY3Rz IGluZm9ybWF0aW9uICovCisJaWYgKE5Jbml0aWFsUnVubmluZ1hhY3RzID09IDApCisJCXJldHVy bjsKKworCWlmIChic2VhcmNoKCZ4aWQsIEluaXRpYWxSdW5uaW5nWGFjdHMsIE5Jbml0aWFsUnVu bmluZ1hhY3RzLAorCQkJCXNpemVvZihUcmFuc2FjdGlvbklkKSwgeGlkQ29tcGFyYXRvcikgIT0g TlVMTCkKKwl7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgc3VieGNudDsgaSsrKQorCQl7CisJCQlS ZW9yZGVyQnVmZmVyQXNzaWduQ2hpbGQoYnVpbGRlci0+cmVvcmRlciwgeGlkLCBzdWJ4YWN0c1tp XSwgbHNuKTsKKwkJCVJlb3JkZXJCdWZmZXJYaWRTZXRDYXRhbG9nQ2hhbmdlcyhidWlsZGVyLT5y ZW9yZGVyLCBzdWJ4YWN0c1tpXSwgbHNuKTsKKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3NuYXBidWlsZC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v c25hcGJ1aWxkLmgKaW5kZXggYjA0OGRjNzQ4NC4uMTdkMmY5MzMwMCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcmVwbGljYXRpb24vc25hcGJ1aWxkLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vc25hcGJ1aWxkLmgKQEAgLTg4LDQgKzg4LDcgQEAgZXh0ZXJuIHZvaWQgU25hcEJ1aWxk UHJvY2Vzc1J1bm5pbmdYYWN0cyhTbmFwQnVpbGQgKmJ1aWxkZXIsIFhMb2dSZWNQdHIgbHNuLAog CQkJCQkJCQkJCSBzdHJ1Y3QgeGxfcnVubmluZ194YWN0cyAqcnVubmluZyk7CiBleHRlcm4gdm9p ZCBTbmFwQnVpbGRTZXJpYWxpemF0aW9uUG9pbnQoU25hcEJ1aWxkICpidWlsZGVyLCBYTG9nUmVj UHRyIGxzbik7CiAKK2V4dGVybiB2b2lkIFNuYXBCdWlsZFhpZFNldENhdGFsb2dDaGFuZ2VzKFNu YXBCdWlsZCAqYnVpbGRlciwgVHJhbnNhY3Rpb25JZCB4aWQsCisJCQkJCQkJCQkJICBpbnQgc3Vi eGNudCwgVHJhbnNhY3Rpb25JZCAqc3VieGFjdHMsCisJCQkJCQkJCQkJICBYTG9nUmVjUHRyIGxz bik7CiAjZW5kaWYJCQkJCQkJLyogU05BUEJVSUxEX0ggKi8KLS0gCjIuMjQuMyAoQXBwbGUgR2l0 LTEyOCkKCg== --000000000000f352e005e5517a40 Content-Type: application/octet-stream; name="REL12_v13-0001-Fix-catalog-lookup-with-the-wrong-snapshot-durin.patch" Content-Disposition: attachment; filename="REL12_v13-0001-Fix-catalog-lookup-with-the-wrong-snapshot-durin.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l6db4dld4 RnJvbSAwZmE5NDk2NDI0ODNmNTQ1MDVmNTZiMDQzYTE3MWRkNWY5NDlmOTc0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAyNSBKdWwgMjAyMiAxNDowMjo1MCArMDkwMApTdWJqZWN0OiBbUEFUQ0gg djEzXSBGaXggY2F0YWxvZyBsb29rdXAgd2l0aCB0aGUgd3Jvbmcgc25hcHNob3QgZHVyaW5nIGxv Z2ljYWwKIGRlY29kaW5nLgoKUHJldmlvdXNseSwgd2UgcmVsaWVkIG9uIEhFQVAyX05FV19DSUQg cmVjb3JkcyBhbmQgWEFDVF9JTlZBTElEQVRJT04KcmVjb3JkcyB0byBrbm93IGlmIHRoZSB0cmFu c2FjdGlvbiBoYXMgbW9kaWZpZWQgdGhlIGNhdGFsb2csIGFuZCB0aGF0CmluZm9ybWF0aW9uIGlz IG5vdCBzZXJpYWxpemVkIHRvIHNuYXBzaG90LiBUaGVyZWZvcmUsIGFmdGVyIHRoZSByZXN0YXJ0 LAppZiB0aGUgbG9naWNhbCBkZWNvZGluZyBkZWNvZGVzIG9ubHkgdGhlIGNvbW1pdCByZWNvcmQg b2YgdGhlIHRyYW5zYWN0aW9uCnRoYXQgaGFzIGFjdHVhbGx5IG1vZGlmaWVkIGEgY2F0YWxvZywg d2Ugd2lsbCBtaXNzIGFkZGluZyBpdHMgWElEIHRvIHRoZQpzbmFwc2hvdC4gVGh1cywgd2Ugd2ls bCBlbmQgdXAgbG9va2luZyBhdCBjYXRhbG9ncyB3aXRoIHRoZSB3cm9uZwpzbmFwc2hvdC4KClRv IGZpeCB0aGlzIHByb2JsZW0sIHRoaXMgY2hhbmdlcyB0aGUgc25hcHNob3QgYnVpbGRlciBzbyB0 aGF0IGl0CnJlbWVtYmVycyB0aGUgbGFzdC1ydW5uaW5nLXhhY3RzIGxpc3Qgb2YgdGhlIGRlY29k ZWQgUlVOTklOR19YQUNUUyByZWNvcmQKYWZ0ZXIgcmVzdG9yaW5nIHRoZSBwcmV2aW91c2x5IHNl cmlhbGl6ZWQgc25hcHNob3QuIFRoZW4sIHdlIG1hcmsgdGhlCnRyYW5zYWN0aW9uIGFzIGNvbnRh aW5pbmcgY2F0YWxvZyBjaGFuZ2VzIGlmIGl0J3MgaW4gdGhlIGxpc3Qgb2YgaW5pdGlhbApydW5u aW5nIHRyYW5zYWN0aW9ucyBhbmQgaXRzIGNvbW1pdCByZWNvcmQgaGFzIFhBQ1RfWElORk9fSEFT X0lOVkFMUy4gVG8KYXZvaWQgQUJJIGJyZWFrYWdlLCB3ZSBzdG9yZSB0aGUgYXJyYXkgb2YgdGhl IGluaXRpYWwgcnVubmluZyB0cmFuc2FjdGlvbnMKaW4gdGhlIHN0YXRpYyB2YXJpYWJsZXMgSW5p dGlhbFJ1bm5pbmdYYWN0cyBhbmQgTkluaXRpYWxSdW5uaW5nWGFjdHMsCmluc3RlYWQgb2Ygc3Rv cmluZyB0aG9zZSBpbiBTbmFwQnVpbGQgb3IgUmVvcmRlckJ1ZmZlci4KClRoaXMgYXBwcm9hY2gg aGFzIGEgZmFsc2UgcG9zaXRpdmU7IHdlIGNvdWxkIGVuZCB1cCBhZGRpbmcgdGhlIHRyYW5zYWN0 aW9uCnRoYXQgZGlkbid0IGNoYW5nZSBjYXRhbG9nIHRvIHRoZSBzbmFwc2hvdCBzaW5jZSB3ZSBj YW5ub3QgZGlzdGluZ3Vpc2gKd2hldGhlciB0aGUgdHJhbnNhY3Rpb24gaGFzIGNhdGFsb2cgY2hh bmdlcyBvbmx5IGJ5IGNoZWNraW5nIHRoZSBDT01NSVQKcmVjb3JkLiBJdCBkb2Vzbid0IGhhdmUg dGhlIGluZm9ybWF0aW9uIG9uIHdoaWNoIChzdWIpIHRyYW5zYWN0aW9uIGhhcwpjYXRhbG9nIGNo YW5nZXMsIGFuZCBYQUNUX1hJTkZPX0hBU19JTlZBTFMgZG9lc24ndCBuZWNlc3NhcmlseSBpbmRp Y2F0ZQp0aGF0IHRoZSB0cmFuc2FjdGlvbiBoYXMgY2F0YWxvZyBjaGFuZ2UuIEJ1dCB0aGF0IHdv bid0IGJlIGEgcHJvYmxlbSBzaW5jZQp3ZSB1c2Ugc25hcHNob3QgYnVpbHQgZHVyaW5nIGRlY29k aW5nIG9ubHkgdG8gcmVhZCBzeXN0ZW0gY2F0YWxvZ3MuCgpPbiB0aGUgbWFzdGVyIGJyYW5jaCwg d2UgdG9vayBhIG1vcmUgZnV0dXJlLXByb29mIGFwcHJvYWNoIGJ5IHdyaXRpbmcKY2F0YWxvZyBt b2RpZnlpbmcgdHJhbnNhY3Rpb25zIHRvIHRoZSBzZXJpYWxpemVkIHNuYXBzaG90IHdoaWNoIGF2 b2lkcyB0aGUKYWJvdmUgZmFsc2UgcG9zaXRpdmUuIEJ1dCB3ZSBjYW5ub3QgYmFja3BhdGNoIGl0 IGJlY2F1c2Ugb2YgYSBjaGFuZ2UgaW4KdGhlIFNuYXBCdWlsZC4KClJlcG9ydGVkLWJ5OiBNaWtl IE9oCkF1dGhvcjogTWFzYWhpa28gU2F3YWRhClJldmlld2VkLWJ5OiBBbWl0IEthcGlsYSwgU2hp IHl1LCBUYWthbWljaGkgT3N1bWksIEt5b3Rhcm8gSG9yaWd1Y2hpLCBCZXJ0cmFuZCBEcm91dm90 LCBBaHNhbiBIYWRpCkJhY2twYXRjaC10aHJvdWdoOiAxMApEaXNjdXNzaW9uOiBodHRwczovL3Bv c3Rnci5lcy9tLzgxRDBEOEIwLUU3QzQtNDk5OS1CNjE2LTFFNTAwNERCRENEMiU0MGFtYXpvbi5j b20KLS0tCiBjb250cmliL3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUgICAgICAgICAgICAgICAgfCAg IDIgKy0KIC4uLi9leHBlY3RlZC9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5vdXQgICAgICB8ICA0 NCArKysrKysKIC4uLi9zcGVjcy9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5zcGVjICAgICAgICB8 ICAzOSArKysrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyAgICAg IHwgIDE1ICstCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3NuYXBidWlsZC5jICAg fCAxMzMgKysrKysrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbmFwYnVp bGQuaCAgICAgICAgICAgfCAgIDMgKwogNiBmaWxlcyBjaGFuZ2VkLCAyMjcgaW5zZXJ0aW9ucygr KSwgOSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3Rlc3RfZGVjb2Rp bmcvZXhwZWN0ZWQvY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Qub3V0CiBjcmVhdGUgbW9kZSAxMDA2 NDQgY29udHJpYi90ZXN0X2RlY29kaW5nL3NwZWNzL2NhdGFsb2dfY2hhbmdlX3NuYXBzaG90LnNw ZWMKCmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUgYi9jb250cmli L3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUKaW5kZXggZjQzOWM1ODJhNS4uNmVjMDlhYjE5MiAxMDA2 NDQKLS0tIGEvY29udHJpYi90ZXN0X2RlY29kaW5nL01ha2VmaWxlCisrKyBiL2NvbnRyaWIvdGVz dF9kZWNvZGluZy9NYWtlZmlsZQpAQCAtNyw3ICs3LDcgQEAgUkVHUkVTUyA9IGRkbCB4YWN0IHJl d3JpdGUgdG9hc3QgcGVybWlzc2lvbnMgZGVjb2RpbmdfaW5feGFjdCBcCiAJZGVjb2RpbmdfaW50 b19yZWwgYmluYXJ5IHByZXBhcmVkIHJlcGxvcmlnaW4gdGltZSBtZXNzYWdlcyBcCiAJc3BpbGwg c2xvdCB0cnVuY2F0ZQogSVNPTEFUSU9OID0gbXhhY3QgZGVsYXllZF9zdGFydHVwIG9uZGlza19z dGFydHVwIGNvbmN1cnJlbnRfZGRsX2RtbCBcCi0Jb2xkZXN0X3htaW4gc25hcHNob3RfdHJhbnNm ZXIgc3VieGFjdF93aXRob3V0X3RvcAorCW9sZGVzdF94bWluIHNuYXBzaG90X3RyYW5zZmVyIHN1 YnhhY3Rfd2l0aG91dF90b3AgY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3QKIAogUkVHUkVTU19PUFRT ID0gLS10ZW1wLWNvbmZpZyAkKHRvcF9zcmNkaXIpL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9sb2dp Y2FsLmNvbmYKIElTT0xBVElPTl9PUFRTID0gLS10ZW1wLWNvbmZpZyAkKHRvcF9zcmNkaXIpL2Nv bnRyaWIvdGVzdF9kZWNvZGluZy9sb2dpY2FsLmNvbmYKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVz dF9kZWNvZGluZy9leHBlY3RlZC9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5vdXQgYi9jb250cmli L3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Qub3V0Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmRjNGY5YjcwMTgKLS0tIC9kZXYvbnVs bAorKysgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvY2F0YWxvZ19jaGFuZ2Vfc25h cHNob3Qub3V0CkBAIC0wLDAgKzEsNDQgQEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCAyIHNlc3Np b25zCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzMF9pbml0IHMwX2JlZ2luIHMwX3NhdmVwb2lu dCBzMF90cnVuY2F0ZSBzMV9jaGVja3BvaW50IHMxX2dldF9jaGFuZ2VzIHMwX2NvbW1pdCBzMF9i ZWdpbiBzMF9pbnNlcnQgczFfY2hlY2twb2ludCBzMV9nZXRfY2hhbmdlcyBzMF9jb21taXQgczFf Z2V0X2NoYW5nZXMKK3N0ZXAgczBfaW5pdDogU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9s b2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ2lzb2xhdGlvbl9zbG90JywgJ3Rlc3RfZGVjb2Rpbmcn KTsKKz9jb2x1bW4/CistLS0tLS0tLQoraW5pdCAgICAKKygxIHJvdykKKworc3RlcCBzMF9iZWdp bjogQkVHSU47CitzdGVwIHMwX3NhdmVwb2ludDogU0FWRVBPSU5UIHNwMTsKK3N0ZXAgczBfdHJ1 bmNhdGU6IFRSVU5DQVRFIHRibDE7CitzdGVwIHMxX2NoZWNrcG9pbnQ6IENIRUNLUE9JTlQ7Citz dGVwIHMxX2dldF9jaGFuZ2VzOiBTRUxFQ1QgZGF0YSBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRf Y2hhbmdlcygnaXNvbGF0aW9uX3Nsb3QnLCBOVUxMLCBOVUxMLCAnc2tpcC1lbXB0eS14YWN0cycs ICcxJywgJ2luY2x1ZGUteGlkcycsICcwJyk7CitkYXRhCistLS0tCisoMCByb3dzKQorCitzdGVw IHMwX2NvbW1pdDogQ09NTUlUOworc3RlcCBzMF9iZWdpbjogQkVHSU47CitzdGVwIHMwX2luc2Vy dDogSU5TRVJUIElOVE8gdGJsMSBWQUxVRVMgKDEpOworc3RlcCBzMV9jaGVja3BvaW50OiBDSEVD S1BPSU5UOworc3RlcCBzMV9nZXRfY2hhbmdlczogU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2Fs X3Nsb3RfZ2V0X2NoYW5nZXMoJ2lzb2xhdGlvbl9zbG90JywgTlVMTCwgTlVMTCwgJ3NraXAtZW1w dHkteGFjdHMnLCAnMScsICdpbmNsdWRlLXhpZHMnLCAnMCcpOworZGF0YSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KK0JFR0lOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAordGFibGUgcHVi bGljLnRibDE6IFRSVU5DQVRFOiAobm8tZmxhZ3MpCitDT01NSVQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKygzIHJvd3MpCisKK3N0ZXAgczBfY29tbWl0OiBDT01NSVQ7CitzdGVw IHMxX2dldF9jaGFuZ2VzOiBTRUxFQ1QgZGF0YSBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hh bmdlcygnaXNvbGF0aW9uX3Nsb3QnLCBOVUxMLCBOVUxMLCAnc2tpcC1lbXB0eS14YWN0cycsICcx JywgJ2luY2x1ZGUteGlkcycsICcwJyk7CitkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitCRUdJTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCit0YWJsZSBwdWJsaWMu dGJsMTogSU5TRVJUOiB2YWwxW2ludGVnZXJdOjEgdmFsMltpbnRlZ2VyXTpudWxsCitDT01NSVQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiso MyByb3dzKQorCis/Y29sdW1uPworLS0tLS0tLS0KK3N0b3AgICAgCisoMSByb3cpCisKZGlmZiAt LWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcGVjcy9jYXRhbG9nX2NoYW5nZV9zbmFwc2hv dC5zcGVjIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3NwZWNzL2NhdGFsb2dfY2hhbmdlX3NuYXBz aG90LnNwZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMjk3MWRkYzY5 YwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcGVjcy9jYXRhbG9n X2NoYW5nZV9zbmFwc2hvdC5zcGVjCkBAIC0wLDAgKzEsMzkgQEAKKyMgVGVzdCBkZWNvZGluZyBv bmx5IHRoZSBjb21taXQgcmVjb3JkIG9mIHRoZSB0cmFuc2FjdGlvbiB0aGF0IGhhdmUKKyMgbW9k aWZpZWQgY2F0YWxvZ3MuCitzZXR1cAoreworICAgIERST1AgVEFCTEUgSUYgRVhJU1RTIHRibDE7 CisgICAgQ1JFQVRFIFRBQkxFIHRibDEgKHZhbDEgaW50ZWdlciwgdmFsMiBpbnRlZ2VyKTsKK30K KwordGVhcmRvd24KK3sKKyAgICBEUk9QIFRBQkxFIHRibDE7CisgICAgU0VMRUNUICdzdG9wJyBG Uk9NIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnaXNvbGF0aW9uX3Nsb3QnKTsKK30KKworc2Vz c2lvbiAiczAiCitzZXR1cCB7IFNFVCBzeW5jaHJvbm91c19jb21taXQ9b247IH0KK3N0ZXAgInMw X2luaXQiIHsgU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9u X3Nsb3QoJ2lzb2xhdGlvbl9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnKTsgfQorc3RlcCAiczBfYmVn aW4iIHsgQkVHSU47IH0KK3N0ZXAgInMwX3NhdmVwb2ludCIgeyBTQVZFUE9JTlQgc3AxOyB9Citz dGVwICJzMF90cnVuY2F0ZSIgeyBUUlVOQ0FURSB0YmwxOyB9CitzdGVwICJzMF9pbnNlcnQiIHsg SU5TRVJUIElOVE8gdGJsMSBWQUxVRVMgKDEpOyB9CitzdGVwICJzMF9jb21taXQiIHsgQ09NTUlU OyB9CisKK3Nlc3Npb24gInMxIgorc2V0dXAgeyBTRVQgc3luY2hyb25vdXNfY29tbWl0PW9uOyB9 CitzdGVwICJzMV9jaGVja3BvaW50IiB7IENIRUNLUE9JTlQ7IH0KK3N0ZXAgInMxX2dldF9jaGFu Z2VzIiB7IFNFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdpc29s YXRpb25fc2xvdCcsIE5VTEwsIE5VTEwsICdza2lwLWVtcHR5LXhhY3RzJywgJzEnLCAnaW5jbHVk ZS14aWRzJywgJzAnKTsgfQorCisjIEZvciB0aGUgdHJhbnNhY3Rpb24gdGhhdCBUUlVOQ0FURWQg dGhlIHRhYmxlIHRibDEsIHRoZSBsYXN0IGRlY29kaW5nIGRlY29kZXMKKyMgb25seSBpdHMgQ09N TUlUIHJlY29yZCwgYmVjYXVzZSBpdCBzdGFydHMgZnJvbSB0aGUgUlVOTklOR19YQUNUUyByZWNv cmQgZW1pdHRlZAorIyBkdXJpbmcgdGhlIGZpcnN0IGNoZWNrcG9pbnQgZXhlY3V0aW9uLiAgVGhp cyB0cmFuc2FjdGlvbiBtdXN0IGJlIG1hcmtlZCBhcworIyBjb250YWluaW5nIGNhdGFsb2cgY2hh bmdlcyB3aGlsZSBkZWNvZGluZyB0aGUgQ09NTUlUIHJlY29yZCBhbmQgdGhlIGRlY29kaW5nCisj IG9mIHRoZSBJTlNFUlQgcmVjb3JkIG11c3QgcmVhZCB0aGUgcGdfY2xhc3Mgd2l0aCB0aGUgY29y cmVjdCBoaXN0b3JpYyBzbmFwc2hvdC4KKyMKKyMgTm90ZSB0aGF0IGluIGEgY2FzZSB3aGVyZSBi Z3dyaXRlciB3cm90ZSB0aGUgUlVOTklOR19YQUNUUyByZWNvcmQgYmV0d2VlbiAiczBfY29tbWl0 IgorIyBhbmQgInMwX2JlZ2luIiwgdGhpcyBkb2Vzbid0IGhhcHBlbiBhcyB0aGUgZGVjb2Rpbmcg c3RhcnRzIGZyb20gdGhlIFJVTk5JTkdfWEFDVFMKKyMgcmVjb3JkIHdyaXR0ZW4gYnkgYmd3cml0 ZXIuICBPbmUgbWlnaHQgdGhpbmsgd2UgY2FuIGVpdGhlciBzdG9wIHRoZSBiZ3dyaXRlciBvcgor IyBpbmNyZWFzZSBMT0dfU05BUFNIT1RfSU5URVJWQUxfTVMgYnV0IGl0J3Mgbm90IHByYWN0aWNh bCB2aWEgdGVzdHMuCitwZXJtdXRhdGlvbiAiczBfaW5pdCIgInMwX2JlZ2luIiAiczBfc2F2ZXBv aW50IiAiczBfdHJ1bmNhdGUiICJzMV9jaGVja3BvaW50IiAiczFfZ2V0X2NoYW5nZXMiICJzMF9j b21taXQiICJzMF9iZWdpbiIgInMwX2luc2VydCIgInMxX2NoZWNrcG9pbnQiICJzMV9nZXRfY2hh bmdlcyIgInMwX2NvbW1pdCIgInMxX2dldF9jaGFuZ2VzIgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvZGVjb2RlLmMKaW5kZXggNjBkMDdjZTRlYi4uMTljZDBiZjc2YSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYworKysgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCkBAIC01ODUsNyArNTg1LDIwIEBAIERl Y29kZUNvbW1pdChMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsIFhMb2dSZWNvcmRCdWZmZXIg KmJ1ZiwKIAkJaWYgKCFjdHgtPmZhc3RfZm9yd2FyZCkKIAkJCVJlb3JkZXJCdWZmZXJBZGRJbnZh bGlkYXRpb25zKGN0eC0+cmVvcmRlciwgeGlkLCBidWYtPm9yaWdwdHIsCiAJCQkJCQkJCQkJICBw YXJzZWQtPm5tc2dzLCBwYXJzZWQtPm1zZ3MpOwotCQlSZW9yZGVyQnVmZmVyWGlkU2V0Q2F0YWxv Z0NoYW5nZXMoY3R4LT5yZW9yZGVyLCB4aWQsIGJ1Zi0+b3JpZ3B0cik7CisJCS8qCisJCSAqIElm IHRoZSBDT01NSVQgcmVjb3JkIGhhcyBpbnZhbGlkYXRpb24gbWVzc2FnZXMsIGl0IGNvdWxkIGhh dmUgY2F0YWxvZworCQkgKiBjaGFuZ2VzLiBJdCBpcyBwb3NzaWJsZSB0aGF0IHdlIGRpZG4ndCBt YXJrIHRoaXMgdHJhbnNhY3Rpb24gYW5kCisJCSAqIGl0cyBzdWJ0cmFuc2FjdGlvbnMgYXMgY29u dGFpbmluZyBjYXRhbG9nIGNoYW5nZXMgd2hlbiB0aGUgZGVjb2RpbmcKKwkJICogc3RhcnRzIGZy b20gYSBjb21taXQgcmVjb3JkIHdpdGhvdXQgZGVjb2RpbmcgdGhlIHRyYW5zYWN0aW9uJ3Mgb3Ro ZXIKKwkJICogY2hhbmdlcy4gVGhlcmVmb3JlLCB3ZSBlbnN1cmUgdG8gbWFyayBzdWNoIHRyYW5z YWN0aW9ucyBhcyBjb250YWluaW5nCisJCSAqIGNhdGFsb2cgY2hhbmdlLgorCQkgKgorCQkgKiBU aGlzIG11c3QgYmUgZG9uZSBiZWZvcmUgU25hcEJ1aWxkQ29tbWl0VHhuKCkgc28gdGhhdCB3ZSBj YW4gaW5jbHVkZQorCQkgKiB0aGVzZSB0cmFuc2FjdGlvbnMgaW4gdGhlIGhpc3RvcmljIHNuYXBz aG90LgorCQkgKi8KKwkJU25hcEJ1aWxkWGlkU2V0Q2F0YWxvZ0NoYW5nZXMoY3R4LT5zbmFwc2hv dF9idWlsZGVyLCB4aWQsCisJCQkJCQkJCQkgIHBhcnNlZC0+bnN1YnhhY3RzLCBwYXJzZWQtPnN1 YnhhY3RzLAorCQkJCQkJCQkJICBidWYtPm9yaWdwdHIpOwogCX0KIAogCVNuYXBCdWlsZENvbW1p dFR4bihjdHgtPnNuYXBzaG90X2J1aWxkZXIsIGJ1Zi0+b3JpZ3B0ciwgeGlkLApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbmFwYnVpbGQuYyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc25hcGJ1aWxkLmMKaW5kZXggNWExYmNlNWFjYy4uY2Qw OTFiYjcyNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbmFw YnVpbGQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3NuYXBidWlsZC5j CkBAIC0yNTcsOCArMjU3LDM4IEBAIHN0cnVjdCBTbmFwQnVpbGQKIHN0YXRpYyBSZXNvdXJjZU93 bmVyIFNhdmVkUmVzb3VyY2VPd25lckR1cmluZ0V4cG9ydCA9IE5VTEw7CiBzdGF0aWMgYm9vbCBF eHBvcnRJblByb2dyZXNzID0gZmFsc2U7CiAKLS8qIC0+Y29tbWl0dGVkIG1hbmlwdWxhdGlvbiAq Lwotc3RhdGljIHZvaWQgU25hcEJ1aWxkUHVyZ2VDb21taXR0ZWRUeG4oU25hcEJ1aWxkICpidWls ZGVyKTsKKy8qCisgKiBBcnJheSBvZiB0cmFuc2FjdGlvbnMgYW5kIHN1YnRyYW5zYWN0aW9ucyB0 aGF0IHdlcmUgcnVubmluZyB3aGVuCisgKiB0aGUgeGxfcnVubmluZ194YWN0cyByZWNvcmQgdGhh dCB3ZSBkZWNvZGVkIHdhcyB3cml0dGVuLiBUaGUgYXJyYXkgaXMKKyAqIHNvcnRlZCBpbiB4aWRD b21wYXJhdG9yIG9yZGVyLiBXZSByZW1vdmUgeGlkcyBmcm9tIHRoaXMgYXJyYXkgd2hlbgorICog dGhleSBiZWNvbWUgb2xkIGVub3VnaCB0byBtYXR0ZXIsIGFuZCB0aGVuIGl0IGV2ZW50dWFsbHkg YmVjb21lcyBlbXB0eS4KKyAqIFRoaXMgYXJyYXkgaXMgYWxsb2NhdGVkIGluIGJ1aWxkZXItPmNv bnRleHQgc28gaXRzIGxpZmV0aW1lIGlzIHRoZSBzYW1lCisgKiBhcyB0aGUgc25hcHNob3QgYnVp bGRlci4KKyAqCisgKiBXZSBub3JtYWxseSByZWx5IG9uIHNvbWUgV0FMIHJlY29yZCB0eXBlcyBz dWNoIGFzIEhFQVAyX05FV19DSUQgdG8ga25vdworICogaWYgdGhlIHRyYW5zYWN0aW9uIGhhcyBj aGFuZ2VkIHRoZSBjYXRhbG9nLiBCdXQgaXQgY291bGQgaGFwcGVuIHRoYXQgdGhlCisgKiBsb2dp Y2FsIGRlY29kaW5nIGRlY29kZXMgb25seSB0aGUgY29tbWl0IHJlY29yZCBvZiB0aGUgdHJhbnNh Y3Rpb24gYWZ0ZXIKKyAqIHJlc3RvcmluZyB0aGUgcHJldmlvdXNseSBzZXJpYWxpemVkIHNuYXBz aG90IGluIHdoaWNoIGNhc2Ugd2Ugd2lsbCBtaXNzCisgKiBhZGRpbmcgdGhlIHhpZCB0byB0aGUg c25hcHNob3QgYW5kIGVuZCB1cCBsb29raW5nIGF0IHRoZSBjYXRhbG9ncyB3aXRoIHRoZQorICog d3Jvbmcgc25hcHNob3QuCisgKgorICogTm93IHRvIGF2b2lkIHRoZSBhYm92ZSBwcm9ibGVtLCBp ZiB0aGUgQ09NTUlUIHJlY29yZCBvZiB0aGUgeGlkIGxpc3RlZCBpbgorICogSW5pdGlhbFJ1bm5p bmdYYWN0cyBoYXMgWEFDVF9YSU5GT19IQVNfSU5WQUxTIGZsYWcsIHdlIG1hcmsgYm90aCB0aGUg dG9wCisgKiB0cmFuc2FjdGlvbiBhbmQgaXRzIHN1YnN0cmFuc2FjdGlvbnMgYXMgY29udGFpbmlu ZyBjYXRhbG9nIGNoYW5nZXMuCisgKgorICogV2UgY291bGQgZW5kIHVwIGFkZGluZyB0aGUgdHJh bnNhY3Rpb24gdGhhdCBkaWRuJ3QgY2hhbmdlIGNhdGFsb2cKKyAqIHRvIHRoZSBzbmFwc2hvdCBz aW5jZSB3ZSBjYW5ub3QgZGlzdGluZ3Vpc2ggd2hldGhlciB0aGUgdHJhbnNhY3Rpb24KKyAqIGhh cyBjYXRhbG9nIGNoYW5nZXMgb25seSBieSBjaGVja2luZyB0aGUgQ09NTUlUIHJlY29yZC4gSXQg ZG9lc24ndAorICogaGF2ZSB0aGUgaW5mb3JtYXRpb24gb24gd2hpY2ggKHN1YikgdHJhbnNhY3Rp b24gaGFzIGNhdGFsb2cgY2hhbmdlcywKKyAqIGFuZCBYQUNUX1hJTkZPX0hBU19JTlZBTFMgZG9l c24ndCBuZWNlc3NhcmlseSBpbmRpY2F0ZSB0aGF0IHRoZQorICogdHJhbnNhY3Rpb24gaGFzIGNh dGFsb2cgY2hhbmdlLiBCdXQgdGhhdCB3b24ndCBiZSBhIHByb2JsZW0gc2luY2Ugd2UKKyAqIHVz ZSBzbmFwc2hvdCBidWlsdCBkdXJpbmcgZGVjb2Rpbmcgb25seSBmb3IgcmVhZGluZyBzeXN0ZW0g Y2F0YWxvZ3MuCisgKi8KK3N0YXRpYyBUcmFuc2FjdGlvbklkICpJbml0aWFsUnVubmluZ1hhY3Rz ID0gTlVMTDsKK3N0YXRpYyBpbnQJTkluaXRpYWxSdW5uaW5nWGFjdHMgPSAwOworCisvKiAtPmNv bW1pdHRlZCBhbmQgSW5pdGFpbFJ1bm5pbmdYYWN0cyBtYW5pcHVsYXRpb24gKi8KK3N0YXRpYyB2 b2lkIFNuYXBCdWlsZFB1cmdlT2xkZXJUeG4oU25hcEJ1aWxkICpidWlsZGVyKTsKIAogLyogc25h cHNob3QgYnVpbGRpbmcvbWFuaXB1bGF0aW9uL2Rpc3RyaWJ1dGlvbiBmdW5jdGlvbnMgKi8KIHN0 YXRpYyBTbmFwc2hvdCBTbmFwQnVpbGRCdWlsZFNuYXBzaG90KFNuYXBCdWlsZCAqYnVpbGRlcik7 CkBAIC04OTUsMTIgKzkyNSwxNyBAQCBTbmFwQnVpbGRBZGRDb21taXR0ZWRUeG4oU25hcEJ1aWxk ICpidWlsZGVyLCBUcmFuc2FjdGlvbklkIHhpZCkKIH0KIAogLyoKLSAqIFJlbW92ZSBrbm93bGVk Z2UgYWJvdXQgdHJhbnNhY3Rpb25zIHdlIHRyZWF0IGFzIGNvbW1pdHRlZCB0aGF0IGFyZSBzbWFs bGVyCi0gKiB0aGFuIC0+eG1pbi4gVGhvc2Ugd29uJ3QgZXZlciBnZXQgY2hlY2tlZCB2aWEgdGhl IC0+Y29tbWl0dGVkIGFycmF5IGJ1dCB2aWEKLSAqIHRoZSBjbG9nIG1hY2hpbmVyeSwgc28gd2Ug ZG9uJ3QgbmVlZCB0byB3YXN0ZSBtZW1vcnkgb24gdGhlbS4KKyAqIFJlbW92ZSBrbm93bGVkZ2Ug YWJvdXQgdHJhbnNhY3Rpb25zIHdlIHRyZWF0IGFzIGNvbW1pdHRlZCBhbmQgdGhlIGluaXRpYWwK KyAqIHJ1bm5pbmcgdHJhbnNhY3Rpb25zIHRoYXQgYXJlIHNtYWxsZXIgdGhhbiAtPnhtaW4uIFRo b3NlIHdvbid0IGV2ZXIgZ2V0CisgKiBjaGVja2VkIHZpYSB0aGUgLT5jb21taXR0ZWQgb3IgSW5p dGlhbFJ1bm5pbmdYYWN0cyBhcnJheSwgcmVzcGVjdGl2ZWx5LgorICogVGhlIGNvbW1pdHRlZCB4 aWRzIHdpbGwgZ2V0IGNoZWNrZWQgdmlhIHRoZSBjbG9nIG1hY2hpbmVyeS4KKyAqCisgKiBXZSBj YW4gaWRlYWxseSByZW1vdmUgdGhlIHRyYW5zYWN0aW9uIGZyb20gSW5pdGlhbFJ1bm5pbmdYYWN0 cyBhcnJheQorICogb25jZSBpdCBpcyBmaW5pc2hlZCAoY29tbWl0dGVkL2Fib3J0ZWQpIGJ1dCB0 aGF0IGNvdWxkIGJlIGNvc3RseSBhcyB3ZSBuZWVkCisgKiB0byBtYWludGFpbiB0aGUgeGlkcyBv cmRlciBpbiB0aGUgYXJyYXkuCiAgKi8KIHN0YXRpYyB2b2lkCi1TbmFwQnVpbGRQdXJnZUNvbW1p dHRlZFR4bihTbmFwQnVpbGQgKmJ1aWxkZXIpCitTbmFwQnVpbGRQdXJnZU9sZGVyVHhuKFNuYXBC dWlsZCAqYnVpbGRlcikKIHsKIAlpbnQJCQlvZmY7CiAJVHJhbnNhY3Rpb25JZCAqd29ya3NwYWNl OwpAQCAtOTM1LDYgKzk3MCw0OSBAQCBTbmFwQnVpbGRQdXJnZUNvbW1pdHRlZFR4bihTbmFwQnVp bGQgKmJ1aWxkZXIpCiAJYnVpbGRlci0+Y29tbWl0dGVkLnhjbnQgPSBzdXJ2aXZpbmdfeGlkczsK IAogCXBmcmVlKHdvcmtzcGFjZSk7CisKKwkvKiBRdWljayBleGl0IGlmIHRoZXJlIGlzIG5vIGlu aXRpYWwgcnVubmluZyB0cmFuc2FjdGlvbnMgKi8KKwlpZiAoTkluaXRpYWxSdW5uaW5nWGFjdHMg PT0gMCkKKwkJcmV0dXJuOworCisJLyogYm91bmQgY2hlY2sgaWYgdGhlcmUgaXMgYXQgbGVhc3Qg b25lIHRyYW5zYWN0aW9uIHRvIHJlbW92ZSAqLworCWlmICghTm9ybWFsVHJhbnNhY3Rpb25JZFBy ZWNlZGVzKEluaXRpYWxSdW5uaW5nWGFjdHNbMF0sCisJCQkJCQkJCQkgYnVpbGRlci0+eG1pbikp CisJCXJldHVybjsKKworCS8qCisJICogcHVyZ2UgeGlkcyBpbiBJbml0aWFsUnVubmluZ1hhY3Rz IGFzIHdlbGwuIFRoZSBwdXJnZWQgYXJyYXkgbXVzdCBhbHNvCisJICogYmUgc29ydGVkIGluIHhp ZENvbXBhcmF0b3Igb3JkZXIuCisJICovCisJd29ya3NwYWNlID0KKwkJTWVtb3J5Q29udGV4dEFs bG9jKGJ1aWxkZXItPmNvbnRleHQsCisJCQkJCQkgICBOSW5pdGlhbFJ1bm5pbmdYYWN0cyAqIHNp emVvZihUcmFuc2FjdGlvbklkKSk7CisJc3Vydml2aW5nX3hpZHMgPSAwOworCWZvciAob2ZmID0g MDsgb2ZmIDwgTkluaXRpYWxSdW5uaW5nWGFjdHM7IG9mZisrKQorCXsKKwkJaWYgKE5vcm1hbFRy YW5zYWN0aW9uSWRQcmVjZWRlcyhJbml0aWFsUnVubmluZ1hhY3RzW29mZl0sCisJCQkJCQkJCQkJ YnVpbGRlci0+eG1pbikpCisJCQk7CQkJCQkvKiByZW1vdmUgKi8KKwkJZWxzZQorCQkJd29ya3Nw YWNlW3N1cnZpdmluZ194aWRzKytdID0gSW5pdGlhbFJ1bm5pbmdYYWN0c1tvZmZdOworCX0KKwor CWlmIChzdXJ2aXZpbmdfeGlkcyA+IDApCisJCW1lbWNweShJbml0aWFsUnVubmluZ1hhY3RzLCB3 b3Jrc3BhY2UsCisJCQkgICBzaXplb2YoVHJhbnNhY3Rpb25JZCkgKiBzdXJ2aXZpbmdfeGlkcyk7 CisJZWxzZQorCXsKKwkJcGZyZWUoSW5pdGlhbFJ1bm5pbmdYYWN0cyk7CisJCUluaXRpYWxSdW5u aW5nWGFjdHMgPSBOVUxMOworCX0KKworCWVsb2coREVCVUczLCAicHVyZ2VkIGluaXRpYWwgcnVu bmluZyB0cmFuc2FjdGlvbnMgZnJvbSAldSB0byAldSwgb2xkZXN0IHJ1bm5pbmcgeGlkICV1IiwK KwkJICh1aW50MzIpIE5Jbml0aWFsUnVubmluZ1hhY3RzLAorCQkgKHVpbnQzMikgc3Vydml2aW5n X3hpZHMsCisJCSBidWlsZGVyLT54bWluKTsKKworCU5Jbml0aWFsUnVubmluZ1hhY3RzID0gc3Vy dml2aW5nX3hpZHM7CisJcGZyZWUod29ya3NwYWNlKTsKIH0KIAogLyoKQEAgLTExNDIsNyArMTIy MCw3IEBAIFNuYXBCdWlsZFByb2Nlc3NSdW5uaW5nWGFjdHMoU25hcEJ1aWxkICpidWlsZGVyLCBY TG9nUmVjUHRyIGxzbiwgeGxfcnVubmluZ194YWN0CiAJYnVpbGRlci0+eG1pbiA9IHJ1bm5pbmct Pm9sZGVzdFJ1bm5pbmdYaWQ7CiAKIAkvKiBSZW1vdmUgdHJhbnNhY3Rpb25zIHdlIGRvbid0IG5l ZWQgdG8ga2VlcCB0cmFjayBvZmYgYW55bW9yZSAqLwotCVNuYXBCdWlsZFB1cmdlQ29tbWl0dGVk VHhuKGJ1aWxkZXIpOworCVNuYXBCdWlsZFB1cmdlT2xkZXJUeG4oYnVpbGRlcik7CiAKIAkvKgog CSAqIEFkdmFuY2UgdGhlIHhtaW4gbGltaXQgZm9yIHRoZSBjdXJyZW50IHJlcGxpY2F0aW9uIHNs b3QsIHRvIGFsbG93CkBAIC0xMjkzLDYgKzEzNzEsMjAgQEAgU25hcEJ1aWxkRmluZFNuYXBzaG90 KFNuYXBCdWlsZCAqYnVpbGRlciwgWExvZ1JlY1B0ciBsc24sIHhsX3J1bm5pbmdfeGFjdHMgKnJ1 bm4KIAllbHNlIGlmICghYnVpbGRlci0+YnVpbGRpbmdfZnVsbF9zbmFwc2hvdCAmJgogCQkJIFNu YXBCdWlsZFJlc3RvcmUoYnVpbGRlciwgbHNuKSkKIAl7CisJCWludAkJCW54YWN0cyA9IHJ1bm5p bmctPnN1YnhjbnQgKyBydW5uaW5nLT54Y250OworCQlTaXplCQlzeiA9IHNpemVvZihUcmFuc2Fj dGlvbklkKSAqIG54YWN0czsKKworCQkvKgorCQkgKiBSZW1lbWJlciB0aGUgdHJhbnNhY3Rpb25z IGFuZCBzdWJ0cmFuc2FjdGlvbnMgdGhhdCB3ZXJlIHJ1bm5pbmcKKwkJICogd2hlbiB4bF9ydW5u aW5nX3hhY3RzIHJlY29yZCB0aGF0IHdlIGRlY29kZWQgd2FzIHdyaXR0ZW4uIFdlIHVzZQorCQkg KiB0aGlzIGxhdGVyIHRvIGlkZW50aWZ5IHRoZSB0cmFuc2FjdGlvbnMgaGF2ZSBwZXJmb3JtZWQg Y2F0YWxvZworCQkgKiBjaGFuZ2VzLiBTZWUgU25hcEJ1aWxkWGlkU2V0Q2F0YWxvZ0NoYW5nZXMu CisJCSAqLworCQlOSW5pdGlhbFJ1bm5pbmdYYWN0cyA9IG54YWN0czsKKwkJSW5pdGlhbFJ1bm5p bmdYYWN0cyA9IE1lbW9yeUNvbnRleHRBbGxvYyhidWlsZGVyLT5jb250ZXh0LCBzeik7CisJCW1l bWNweShJbml0aWFsUnVubmluZ1hhY3RzLCBydW5uaW5nLT54aWRzLCBzeik7CisJCXFzb3J0KElu aXRpYWxSdW5uaW5nWGFjdHMsIG54YWN0cywgc2l6ZW9mKFRyYW5zYWN0aW9uSWQpLCB4aWRDb21w YXJhdG9yKTsKKwogCQkvKiB0aGVyZSB3b24ndCBiZSBhbnkgc3RhdGUgdG8gY2xlYW51cCAqLwog CQlyZXR1cm4gZmFsc2U7CiAJfQpAQCAtMjAzNSwzICsyMTI3LDMwIEBAIENoZWNrUG9pbnRTbmFw QnVpbGQodm9pZCkKIAl9CiAJRnJlZURpcihzbmFwX2Rpcik7CiB9CisKKy8qCisgKiBNYXJrIHRo ZSB0cmFuc2FjdGlvbiBhcyBjb250YWluaW5nIGNhdGFsb2cgY2hhbmdlcy4gSW4gYWRkaXRpb24s IGlmIHRoZQorICogZ2l2ZW4geGlkIGlzIGluIHRoZSBsaXN0IG9mIHRoZSBpbml0aWFsIHJ1bm5p bmcgeGFjdHMsIHdlIG1hcmsgaXRzCisgKiBzdWJ0cmFuc2FjdGlvbnMgYXMgd2VsbC4gU2VlIGNv bW1lbnRzIGZvciBOSW5pdGlhbFJ1bm5pbmdYYWN0cyBhbmQKKyAqIEluaXRpYWxSdW5uaW5nWGFj dHMgZm9yIGFkZGl0aW9uYWwgaW5mby4KKyAqLwordm9pZAorU25hcEJ1aWxkWGlkU2V0Q2F0YWxv Z0NoYW5nZXMoU25hcEJ1aWxkICpidWlsZGVyLCBUcmFuc2FjdGlvbklkIHhpZCwgaW50IHN1Ynhj bnQsCisJCQkJCQkJICBUcmFuc2FjdGlvbklkICpzdWJ4YWN0cywgWExvZ1JlY1B0ciBsc24pCit7 CisJUmVvcmRlckJ1ZmZlclhpZFNldENhdGFsb2dDaGFuZ2VzKGJ1aWxkZXItPnJlb3JkZXIsIHhp ZCwgbHNuKTsKKworCS8qIFNraXAgaWYgdGhlcmUgaXMgbm8gaW5pdGlhbCBydW5uaW5nIHhhY3Rz IGluZm9ybWF0aW9uICovCisJaWYgKE5Jbml0aWFsUnVubmluZ1hhY3RzID09IDApCisJCXJldHVy bjsKKworCWlmIChic2VhcmNoKCZ4aWQsIEluaXRpYWxSdW5uaW5nWGFjdHMsIE5Jbml0aWFsUnVu bmluZ1hhY3RzLAorCQkJCXNpemVvZihUcmFuc2FjdGlvbklkKSwgeGlkQ29tcGFyYXRvcikgIT0g TlVMTCkKKwl7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgc3VieGNudDsgaSsrKQorCQl7CisJCQlS ZW9yZGVyQnVmZmVyQXNzaWduQ2hpbGQoYnVpbGRlci0+cmVvcmRlciwgeGlkLCBzdWJ4YWN0c1tp XSwgbHNuKTsKKwkJCVJlb3JkZXJCdWZmZXJYaWRTZXRDYXRhbG9nQ2hhbmdlcyhidWlsZGVyLT5y ZW9yZGVyLCBzdWJ4YWN0c1tpXSwgbHNuKTsKKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3NuYXBidWlsZC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v c25hcGJ1aWxkLmgKaW5kZXggM2FjZjY4ZjViZC4uMmViOTUzMmExYiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcmVwbGljYXRpb24vc25hcGJ1aWxkLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vc25hcGJ1aWxkLmgKQEAgLTg4LDQgKzg4LDcgQEAgZXh0ZXJuIHZvaWQgU25hcEJ1aWxk UHJvY2Vzc1J1bm5pbmdYYWN0cyhTbmFwQnVpbGQgKmJ1aWxkZXIsIFhMb2dSZWNQdHIgbHNuLAog CQkJCQkJCQkJCSBzdHJ1Y3QgeGxfcnVubmluZ194YWN0cyAqcnVubmluZyk7CiBleHRlcm4gdm9p ZCBTbmFwQnVpbGRTZXJpYWxpemF0aW9uUG9pbnQoU25hcEJ1aWxkICpidWlsZGVyLCBYTG9nUmVj UHRyIGxzbik7CiAKK2V4dGVybiB2b2lkIFNuYXBCdWlsZFhpZFNldENhdGFsb2dDaGFuZ2VzKFNu YXBCdWlsZCAqYnVpbGRlciwgVHJhbnNhY3Rpb25JZCB4aWQsCisJCQkJCQkJCQkJICBpbnQgc3Vi eGNudCwgVHJhbnNhY3Rpb25JZCAqc3VieGFjdHMsCisJCQkJCQkJCQkJICBYTG9nUmVjUHRyIGxz bik7CiAjZW5kaWYJCQkJCQkJLyogU05BUEJVSUxEX0ggKi8KLS0gCjIuMjQuMyAoQXBwbGUgR2l0 LTEyOCkKCg== --000000000000f352e005e5517a40 Content-Type: application/octet-stream; name="REL14_v13-0001-Fix-catalog-lookup-with-the-wrong-snapshot-durin.patch" Content-Disposition: attachment; filename="REL14_v13-0001-Fix-catalog-lookup-with-the-wrong-snapshot-durin.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l6db4dl92 RnJvbSBjYjA1ZjA0YmU1YmM2N2I0Y2I0ZjE3NTA1NTVhMDNjZmMzYTY4MzhjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAyNSBKdWwgMjAyMiAxNDowMjo1MCArMDkwMApTdWJqZWN0OiBbUEFUQ0gg djEzXSBGaXggY2F0YWxvZyBsb29rdXAgd2l0aCB0aGUgd3Jvbmcgc25hcHNob3QgZHVyaW5nIGxv Z2ljYWwKIGRlY29kaW5nLgoKUHJldmlvdXNseSwgd2UgcmVsaWVkIG9uIEhFQVAyX05FV19DSUQg cmVjb3JkcyBhbmQgWEFDVF9JTlZBTElEQVRJT04KcmVjb3JkcyB0byBrbm93IGlmIHRoZSB0cmFu c2FjdGlvbiBoYXMgbW9kaWZpZWQgdGhlIGNhdGFsb2csIGFuZCB0aGF0CmluZm9ybWF0aW9uIGlz IG5vdCBzZXJpYWxpemVkIHRvIHNuYXBzaG90LiBUaGVyZWZvcmUsIGFmdGVyIHRoZSByZXN0YXJ0 LAppZiB0aGUgbG9naWNhbCBkZWNvZGluZyBkZWNvZGVzIG9ubHkgdGhlIGNvbW1pdCByZWNvcmQg b2YgdGhlIHRyYW5zYWN0aW9uCnRoYXQgaGFzIGFjdHVhbGx5IG1vZGlmaWVkIGEgY2F0YWxvZywg d2Ugd2lsbCBtaXNzIGFkZGluZyBpdHMgWElEIHRvIHRoZQpzbmFwc2hvdC4gVGh1cywgd2Ugd2ls bCBlbmQgdXAgbG9va2luZyBhdCBjYXRhbG9ncyB3aXRoIHRoZSB3cm9uZwpzbmFwc2hvdC4KClRv IGZpeCB0aGlzIHByb2JsZW0sIHRoaXMgY2hhbmdlcyB0aGUgc25hcHNob3QgYnVpbGRlciBzbyB0 aGF0IGl0CnJlbWVtYmVycyB0aGUgbGFzdC1ydW5uaW5nLXhhY3RzIGxpc3Qgb2YgdGhlIGRlY29k ZWQgUlVOTklOR19YQUNUUyByZWNvcmQKYWZ0ZXIgcmVzdG9yaW5nIHRoZSBwcmV2aW91c2x5IHNl cmlhbGl6ZWQgc25hcHNob3QuIFRoZW4sIHdlIG1hcmsgdGhlCnRyYW5zYWN0aW9uIGFzIGNvbnRh aW5pbmcgY2F0YWxvZyBjaGFuZ2VzIGlmIGl0J3MgaW4gdGhlIGxpc3Qgb2YgaW5pdGlhbApydW5u aW5nIHRyYW5zYWN0aW9ucyBhbmQgaXRzIGNvbW1pdCByZWNvcmQgaGFzIFhBQ1RfWElORk9fSEFT X0lOVkFMUy4gVG8KYXZvaWQgQUJJIGJyZWFrYWdlLCB3ZSBzdG9yZSB0aGUgYXJyYXkgb2YgdGhl IGluaXRpYWwgcnVubmluZyB0cmFuc2FjdGlvbnMKaW4gdGhlIHN0YXRpYyB2YXJpYWJsZXMgSW5p dGlhbFJ1bm5pbmdYYWN0cyBhbmQgTkluaXRpYWxSdW5uaW5nWGFjdHMsCmluc3RlYWQgb2Ygc3Rv cmluZyB0aG9zZSBpbiBTbmFwQnVpbGQgb3IgUmVvcmRlckJ1ZmZlci4KClRoaXMgYXBwcm9hY2gg aGFzIGEgZmFsc2UgcG9zaXRpdmU7IHdlIGNvdWxkIGVuZCB1cCBhZGRpbmcgdGhlIHRyYW5zYWN0 aW9uCnRoYXQgZGlkbid0IGNoYW5nZSBjYXRhbG9nIHRvIHRoZSBzbmFwc2hvdCBzaW5jZSB3ZSBj YW5ub3QgZGlzdGluZ3Vpc2gKd2hldGhlciB0aGUgdHJhbnNhY3Rpb24gaGFzIGNhdGFsb2cgY2hh bmdlcyBvbmx5IGJ5IGNoZWNraW5nIHRoZSBDT01NSVQKcmVjb3JkLiBJdCBkb2Vzbid0IGhhdmUg dGhlIGluZm9ybWF0aW9uIG9uIHdoaWNoIChzdWIpIHRyYW5zYWN0aW9uIGhhcwpjYXRhbG9nIGNo YW5nZXMsIGFuZCBYQUNUX1hJTkZPX0hBU19JTlZBTFMgZG9lc24ndCBuZWNlc3NhcmlseSBpbmRp Y2F0ZQp0aGF0IHRoZSB0cmFuc2FjdGlvbiBoYXMgY2F0YWxvZyBjaGFuZ2UuIEJ1dCB0aGF0IHdv bid0IGJlIGEgcHJvYmxlbSBzaW5jZQp3ZSB1c2Ugc25hcHNob3QgYnVpbHQgZHVyaW5nIGRlY29k aW5nIG9ubHkgdG8gcmVhZCBzeXN0ZW0gY2F0YWxvZ3MuCgpPbiB0aGUgbWFzdGVyIGJyYW5jaCwg d2UgdG9vayBhIG1vcmUgZnV0dXJlLXByb29mIGFwcHJvYWNoIGJ5IHdyaXRpbmcKY2F0YWxvZyBt b2RpZnlpbmcgdHJhbnNhY3Rpb25zIHRvIHRoZSBzZXJpYWxpemVkIHNuYXBzaG90IHdoaWNoIGF2 b2lkcyB0aGUKYWJvdmUgZmFsc2UgcG9zaXRpdmUuIEJ1dCB3ZSBjYW5ub3QgYmFja3BhdGNoIGl0 IGJlY2F1c2Ugb2YgYSBjaGFuZ2UgaW4KdGhlIFNuYXBCdWlsZC4KClJlcG9ydGVkLWJ5OiBNaWtl IE9oCkF1dGhvcjogTWFzYWhpa28gU2F3YWRhClJldmlld2VkLWJ5OiBBbWl0IEthcGlsYSwgU2hp IHl1LCBUYWthbWljaGkgT3N1bWksIEt5b3Rhcm8gSG9yaWd1Y2hpLCBCZXJ0cmFuZCBEcm91dm90 LCBBaHNhbiBIYWRpCkJhY2twYXRjaC10aHJvdWdoOiAxMApEaXNjdXNzaW9uOiBodHRwczovL3Bv c3Rnci5lcy9tLzgxRDBEOEIwLUU3QzQtNDk5OS1CNjE2LTFFNTAwNERCRENEMiU0MGFtYXpvbi5j b20KLS0tCiBjb250cmliL3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUgICAgICAgICAgICAgICAgfCAg IDIgKy0KIC4uLi9leHBlY3RlZC9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5vdXQgICAgICB8ICA0 NCArKysrKysKIC4uLi9zcGVjcy9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5zcGVjICAgICAgICB8 ICAzOSArKysrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyAgICAg IHwgIDE1ICsrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3NuYXBidWlsZC5jICAg fCAxMzcgKysrKysrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbmFwYnVp bGQuaCAgICAgICAgICAgfCAgIDMgKwogNiBmaWxlcyBjaGFuZ2VkLCAyMzIgaW5zZXJ0aW9ucygr KSwgOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3Rlc3RfZGVjb2Rp bmcvZXhwZWN0ZWQvY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Qub3V0CiBjcmVhdGUgbW9kZSAxMDA2 NDQgY29udHJpYi90ZXN0X2RlY29kaW5nL3NwZWNzL2NhdGFsb2dfY2hhbmdlX3NuYXBzaG90LnNw ZWMKCmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUgYi9jb250cmli L3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUKaW5kZXggOWEzMWUwYjg3OS4uNDU1MzI1MmQ3NSAxMDA2 NDQKLS0tIGEvY29udHJpYi90ZXN0X2RlY29kaW5nL01ha2VmaWxlCisrKyBiL2NvbnRyaWIvdGVz dF9kZWNvZGluZy9NYWtlZmlsZQpAQCAtOCw3ICs4LDcgQEAgUkVHUkVTUyA9IGRkbCB4YWN0IHJl d3JpdGUgdG9hc3QgcGVybWlzc2lvbnMgZGVjb2RpbmdfaW5feGFjdCBcCiAJc3BpbGwgc2xvdCB0 cnVuY2F0ZSBzdHJlYW0gc3RhdHMgdHdvcGhhc2UgdHdvcGhhc2Vfc3RyZWFtCiBJU09MQVRJT04g PSBteGFjdCBkZWxheWVkX3N0YXJ0dXAgb25kaXNrX3N0YXJ0dXAgY29uY3VycmVudF9kZGxfZG1s IFwKIAlvbGRlc3RfeG1pbiBzbmFwc2hvdF90cmFuc2ZlciBzdWJ4YWN0X3dpdGhvdXRfdG9wIGNv bmN1cnJlbnRfc3RyZWFtIFwKLQl0d29waGFzZV9zbmFwc2hvdAorCXR3b3BoYXNlX3NuYXBzaG90 IGNhdGFsb2dfY2hhbmdlX3NuYXBzaG90CiAKIFJFR1JFU1NfT1BUUyA9IC0tdGVtcC1jb25maWcg JCh0b3Bfc3JjZGlyKS9jb250cmliL3Rlc3RfZGVjb2RpbmcvbG9naWNhbC5jb25mCiBJU09MQVRJ T05fT1BUUyA9IC0tdGVtcC1jb25maWcgJCh0b3Bfc3JjZGlyKS9jb250cmliL3Rlc3RfZGVjb2Rp bmcvbG9naWNhbC5jb25mCmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0 ZWQvY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Qub3V0IGIvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4 cGVjdGVkL2NhdGFsb2dfY2hhbmdlX3NuYXBzaG90Lm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi5kYzRmOWI3MDE4Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi90 ZXN0X2RlY29kaW5nL2V4cGVjdGVkL2NhdGFsb2dfY2hhbmdlX3NuYXBzaG90Lm91dApAQCAtMCww ICsxLDQ0IEBACitQYXJzZWQgdGVzdCBzcGVjIHdpdGggMiBzZXNzaW9ucworCitzdGFydGluZyBw ZXJtdXRhdGlvbjogczBfaW5pdCBzMF9iZWdpbiBzMF9zYXZlcG9pbnQgczBfdHJ1bmNhdGUgczFf Y2hlY2twb2ludCBzMV9nZXRfY2hhbmdlcyBzMF9jb21taXQgczBfYmVnaW4gczBfaW5zZXJ0IHMx X2NoZWNrcG9pbnQgczFfZ2V0X2NoYW5nZXMgczBfY29tbWl0IHMxX2dldF9jaGFuZ2VzCitzdGVw IHMwX2luaXQ6IFNFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlv bl9zbG90KCdpc29sYXRpb25fc2xvdCcsICd0ZXN0X2RlY29kaW5nJyk7Cis/Y29sdW1uPworLS0t LS0tLS0KK2luaXQgICAgCisoMSByb3cpCisKK3N0ZXAgczBfYmVnaW46IEJFR0lOOworc3RlcCBz MF9zYXZlcG9pbnQ6IFNBVkVQT0lOVCBzcDE7CitzdGVwIHMwX3RydW5jYXRlOiBUUlVOQ0FURSB0 YmwxOworc3RlcCBzMV9jaGVja3BvaW50OiBDSEVDS1BPSU5UOworc3RlcCBzMV9nZXRfY2hhbmdl czogU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ2lzb2xhdGlv bl9zbG90JywgTlVMTCwgTlVMTCwgJ3NraXAtZW1wdHkteGFjdHMnLCAnMScsICdpbmNsdWRlLXhp ZHMnLCAnMCcpOworZGF0YQorLS0tLQorKDAgcm93cykKKworc3RlcCBzMF9jb21taXQ6IENPTU1J VDsKK3N0ZXAgczBfYmVnaW46IEJFR0lOOworc3RlcCBzMF9pbnNlcnQ6IElOU0VSVCBJTlRPIHRi bDEgVkFMVUVTICgxKTsKK3N0ZXAgczFfY2hlY2twb2ludDogQ0hFQ0tQT0lOVDsKK3N0ZXAgczFf Z2V0X2NoYW5nZXM6IFNFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2Vz KCdpc29sYXRpb25fc2xvdCcsIE5VTEwsIE5VTEwsICdza2lwLWVtcHR5LXhhY3RzJywgJzEnLCAn aW5jbHVkZS14aWRzJywgJzAnKTsKK2RhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitCRUdJTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1YmxpYy50YmwxOiBUUlVOQ0FU RTogKG5vLWZsYWdzKQorQ09NTUlUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiso MyByb3dzKQorCitzdGVwIHMwX2NvbW1pdDogQ09NTUlUOworc3RlcCBzMV9nZXRfY2hhbmdlczog U0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ2lzb2xhdGlvbl9z bG90JywgTlVMTCwgTlVMTCwgJ3NraXAtZW1wdHkteGFjdHMnLCAnMScsICdpbmNsdWRlLXhpZHMn LCAnMCcpOworZGF0YSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorQkVHSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAordGFibGUgcHVibGljLnRibDE6IElOU0VSVDogdmFs MVtpbnRlZ2VyXToxIHZhbDJbaW50ZWdlcl06bnVsbAorQ09NTUlUICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorKDMgcm93cykKKworP2NvbHVt bj8KKy0tLS0tLS0tCitzdG9wICAgIAorKDEgcm93KQorCmRpZmYgLS1naXQgYS9jb250cmliL3Rl c3RfZGVjb2Rpbmcvc3BlY3MvY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Quc3BlYyBiL2NvbnRyaWIv dGVzdF9kZWNvZGluZy9zcGVjcy9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5zcGVjCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjI5NzFkZGM2OWMKLS0tIC9kZXYvbnVsbAor KysgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3BlY3MvY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Qu c3BlYwpAQCAtMCwwICsxLDM5IEBACisjIFRlc3QgZGVjb2Rpbmcgb25seSB0aGUgY29tbWl0IHJl Y29yZCBvZiB0aGUgdHJhbnNhY3Rpb24gdGhhdCBoYXZlCisjIG1vZGlmaWVkIGNhdGFsb2dzLgor c2V0dXAKK3sKKyAgICBEUk9QIFRBQkxFIElGIEVYSVNUUyB0YmwxOworICAgIENSRUFURSBUQUJM RSB0YmwxICh2YWwxIGludGVnZXIsIHZhbDIgaW50ZWdlcik7Cit9CisKK3RlYXJkb3duCit7Cisg ICAgRFJPUCBUQUJMRSB0YmwxOworICAgIFNFTEVDVCAnc3RvcCcgRlJPTSBwZ19kcm9wX3JlcGxp Y2F0aW9uX3Nsb3QoJ2lzb2xhdGlvbl9zbG90Jyk7Cit9CisKK3Nlc3Npb24gInMwIgorc2V0dXAg eyBTRVQgc3luY2hyb25vdXNfY29tbWl0PW9uOyB9CitzdGVwICJzMF9pbml0IiB7IFNFTEVDVCAn aW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCdpc29sYXRpb25f c2xvdCcsICd0ZXN0X2RlY29kaW5nJyk7IH0KK3N0ZXAgInMwX2JlZ2luIiB7IEJFR0lOOyB9Citz dGVwICJzMF9zYXZlcG9pbnQiIHsgU0FWRVBPSU5UIHNwMTsgfQorc3RlcCAiczBfdHJ1bmNhdGUi IHsgVFJVTkNBVEUgdGJsMTsgfQorc3RlcCAiczBfaW5zZXJ0IiB7IElOU0VSVCBJTlRPIHRibDEg VkFMVUVTICgxKTsgfQorc3RlcCAiczBfY29tbWl0IiB7IENPTU1JVDsgfQorCitzZXNzaW9uICJz MSIKK3NldHVwIHsgU0VUIHN5bmNocm9ub3VzX2NvbW1pdD1vbjsgfQorc3RlcCAiczFfY2hlY2tw b2ludCIgeyBDSEVDS1BPSU5UOyB9CitzdGVwICJzMV9nZXRfY2hhbmdlcyIgeyBTRUxFQ1QgZGF0 YSBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnaXNvbGF0aW9uX3Nsb3QnLCBOVUxM LCBOVUxMLCAnc2tpcC1lbXB0eS14YWN0cycsICcxJywgJ2luY2x1ZGUteGlkcycsICcwJyk7IH0K KworIyBGb3IgdGhlIHRyYW5zYWN0aW9uIHRoYXQgVFJVTkNBVEVkIHRoZSB0YWJsZSB0YmwxLCB0 aGUgbGFzdCBkZWNvZGluZyBkZWNvZGVzCisjIG9ubHkgaXRzIENPTU1JVCByZWNvcmQsIGJlY2F1 c2UgaXQgc3RhcnRzIGZyb20gdGhlIFJVTk5JTkdfWEFDVFMgcmVjb3JkIGVtaXR0ZWQKKyMgZHVy aW5nIHRoZSBmaXJzdCBjaGVja3BvaW50IGV4ZWN1dGlvbi4gIFRoaXMgdHJhbnNhY3Rpb24gbXVz dCBiZSBtYXJrZWQgYXMKKyMgY29udGFpbmluZyBjYXRhbG9nIGNoYW5nZXMgd2hpbGUgZGVjb2Rp bmcgdGhlIENPTU1JVCByZWNvcmQgYW5kIHRoZSBkZWNvZGluZworIyBvZiB0aGUgSU5TRVJUIHJl Y29yZCBtdXN0IHJlYWQgdGhlIHBnX2NsYXNzIHdpdGggdGhlIGNvcnJlY3QgaGlzdG9yaWMgc25h cHNob3QuCisjCisjIE5vdGUgdGhhdCBpbiBhIGNhc2Ugd2hlcmUgYmd3cml0ZXIgd3JvdGUgdGhl IFJVTk5JTkdfWEFDVFMgcmVjb3JkIGJldHdlZW4gInMwX2NvbW1pdCIKKyMgYW5kICJzMF9iZWdp biIsIHRoaXMgZG9lc24ndCBoYXBwZW4gYXMgdGhlIGRlY29kaW5nIHN0YXJ0cyBmcm9tIHRoZSBS VU5OSU5HX1hBQ1RTCisjIHJlY29yZCB3cml0dGVuIGJ5IGJnd3JpdGVyLiAgT25lIG1pZ2h0IHRo aW5rIHdlIGNhbiBlaXRoZXIgc3RvcCB0aGUgYmd3cml0ZXIgb3IKKyMgaW5jcmVhc2UgTE9HX1NO QVBTSE9UX0lOVEVSVkFMX01TIGJ1dCBpdCdzIG5vdCBwcmFjdGljYWwgdmlhIHRlc3RzLgorcGVy bXV0YXRpb24gInMwX2luaXQiICJzMF9iZWdpbiIgInMwX3NhdmVwb2ludCIgInMwX3RydW5jYXRl IiAiczFfY2hlY2twb2ludCIgInMxX2dldF9jaGFuZ2VzIiAiczBfY29tbWl0IiAiczBfYmVnaW4i ICJzMF9pbnNlcnQiICJzMV9jaGVja3BvaW50IiAiczFfZ2V0X2NoYW5nZXMiICJzMF9jb21taXQi ICJzMV9nZXRfY2hhbmdlcyIKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvZGVjb2RlLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5j CmluZGV4IDkyZGZhZmM2MzIuLjVhNDQwZTZlYjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9kZWNvZGUuYwpAQCAtNjkxLDYgKzY5MSwyMSBAQCBEZWNvZGVDb21taXQoTG9naWNh bERlY29kaW5nQ29udGV4dCAqY3R4LCBYTG9nUmVjb3JkQnVmZmVyICpidWYsCiAJCWNvbW1pdF90 aW1lID0gcGFyc2VkLT5vcmlnaW5fdGltZXN0YW1wOwogCX0KIAorCS8qCisJICogSWYgdGhlIENP TU1JVCByZWNvcmQgaGFzIGludmFsaWRhdGlvbiBtZXNzYWdlcywgaXQgY291bGQgaGF2ZSBjYXRh bG9nCisJICogY2hhbmdlcy4gSXQgaXMgcG9zc2libGUgdGhhdCB3ZSBkaWRuJ3QgbWFyayB0aGlz IHRyYW5zYWN0aW9uIGFzCisJICogY29udGFpbmluZyBjYXRhbG9nIGNoYW5nZXMgd2hlbiB0aGUg ZGVjb2Rpbmcgc3RhcnRzIGZyb20gYSBjb21taXQKKwkgKiByZWNvcmQgd2l0aG91dCBkZWNvZGlu ZyB0aGUgdHJhbnNhY3Rpb24ncyBvdGhlciBjaGFuZ2VzLiBTbywgd2UgZW5zdXJlCisJICogdG8g bWFyayBzdWNoIHRyYW5zYWN0aW9ucyBhcyBjb250YWluaW5nIGNhdGFsb2cgY2hhbmdlLgorCSAq CisJICogVGhpcyBtdXN0IGJlIGRvbmUgYmVmb3JlIFNuYXBCdWlsZENvbW1pdFR4bigpIHNvIHRo YXQgd2UgY2FuIGluY2x1ZGUKKwkgKiB0aGVzZSB0cmFuc2FjdGlvbnMgaW4gdGhlIGhpc3Rvcmlj IHNuYXBzaG90LgorCSAqLworCWlmIChwYXJzZWQtPnhpbmZvICYgWEFDVF9YSU5GT19IQVNfSU5W QUxTKQorCQlTbmFwQnVpbGRYaWRTZXRDYXRhbG9nQ2hhbmdlcyhjdHgtPnNuYXBzaG90X2J1aWxk ZXIsIHhpZCwKKwkJCQkJCQkJCSAgcGFyc2VkLT5uc3VieGFjdHMsIHBhcnNlZC0+c3VieGFjdHMs CisJCQkJCQkJCQkgIGJ1Zi0+b3JpZ3B0cik7CisKIAlTbmFwQnVpbGRDb21taXRUeG4oY3R4LT5z bmFwc2hvdF9idWlsZGVyLCBidWYtPm9yaWdwdHIsIHhpZCwKIAkJCQkJICAgcGFyc2VkLT5uc3Vi eGFjdHMsIHBhcnNlZC0+c3VieGFjdHMpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL3NuYXBidWlsZC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC9zbmFwYnVpbGQuYwppbmRleCA2ZGY2MDI0ODViLi5hYzA5ZjBlNGY5IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3NuYXBidWlsZC5jCisrKyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc25hcGJ1aWxkLmMKQEAgLTI1MCw4ICsyNTAsMzgg QEAgc3RydWN0IFNuYXBCdWlsZAogc3RhdGljIFJlc291cmNlT3duZXIgU2F2ZWRSZXNvdXJjZU93 bmVyRHVyaW5nRXhwb3J0ID0gTlVMTDsKIHN0YXRpYyBib29sIEV4cG9ydEluUHJvZ3Jlc3MgPSBm YWxzZTsKIAotLyogLT5jb21taXR0ZWQgbWFuaXB1bGF0aW9uICovCi1zdGF0aWMgdm9pZCBTbmFw QnVpbGRQdXJnZUNvbW1pdHRlZFR4bihTbmFwQnVpbGQgKmJ1aWxkZXIpOworLyoKKyAqIEFycmF5 IG9mIHRyYW5zYWN0aW9ucyBhbmQgc3VidHJhbnNhY3Rpb25zIHRoYXQgd2VyZSBydW5uaW5nIHdo ZW4KKyAqIHRoZSB4bF9ydW5uaW5nX3hhY3RzIHJlY29yZCB0aGF0IHdlIGRlY29kZWQgd2FzIHdy aXR0ZW4uIFRoZSBhcnJheSBpcworICogc29ydGVkIGluIHhpZENvbXBhcmF0b3Igb3JkZXIuIFdl IHJlbW92ZSB4aWRzIGZyb20gdGhpcyBhcnJheSB3aGVuCisgKiB0aGV5IGJlY29tZSBvbGQgZW5v dWdoIHRvIG1hdHRlciwgYW5kIHRoZW4gaXQgZXZlbnR1YWxseSBiZWNvbWVzIGVtcHR5LgorICog VGhpcyBhcnJheSBpcyBhbGxvY2F0ZWQgaW4gYnVpbGRlci0+Y29udGV4dCBzbyBpdHMgbGlmZXRp bWUgaXMgdGhlIHNhbWUKKyAqIGFzIHRoZSBzbmFwc2hvdCBidWlsZGVyLgorICoKKyAqIFdlIG5v cm1hbGx5IHJlbHkgb24gc29tZSBXQUwgcmVjb3JkIHR5cGVzIHN1Y2ggYXMgSEVBUDJfTkVXX0NJ RCB0byBrbm93CisgKiBpZiB0aGUgdHJhbnNhY3Rpb24gaGFzIGNoYW5nZWQgdGhlIGNhdGFsb2cu IEJ1dCBpdCBjb3VsZCBoYXBwZW4gdGhhdCB0aGUKKyAqIGxvZ2ljYWwgZGVjb2RpbmcgZGVjb2Rl cyBvbmx5IHRoZSBjb21taXQgcmVjb3JkIG9mIHRoZSB0cmFuc2FjdGlvbiBhZnRlcgorICogcmVz dG9yaW5nIHRoZSBwcmV2aW91c2x5IHNlcmlhbGl6ZWQgc25hcHNob3QgaW4gd2hpY2ggY2FzZSB3 ZSB3aWxsIG1pc3MKKyAqIGFkZGluZyB0aGUgeGlkIHRvIHRoZSBzbmFwc2hvdCBhbmQgZW5kIHVw IGxvb2tpbmcgYXQgdGhlIGNhdGFsb2dzIHdpdGggdGhlCisgKiB3cm9uZyBzbmFwc2hvdC4KKyAq CisgKiBOb3cgdG8gYXZvaWQgdGhlIGFib3ZlIHByb2JsZW0sIGlmIHRoZSBDT01NSVQgcmVjb3Jk IG9mIHRoZSB4aWQgbGlzdGVkIGluCisgKiBJbml0aWFsUnVubmluZ1hhY3RzIGhhcyBYQUNUX1hJ TkZPX0hBU19JTlZBTFMgZmxhZywgd2UgbWFyayBib3RoIHRoZSB0b3AKKyAqIHRyYW5zYWN0aW9u IGFuZCBpdHMgc3Vic3RyYW5zYWN0aW9ucyBhcyBjb250YWluaW5nIGNhdGFsb2cgY2hhbmdlcy4K KyAqCisgKiBXZSBjb3VsZCBlbmQgdXAgYWRkaW5nIHRoZSB0cmFuc2FjdGlvbiB0aGF0IGRpZG4n dCBjaGFuZ2UgY2F0YWxvZworICogdG8gdGhlIHNuYXBzaG90IHNpbmNlIHdlIGNhbm5vdCBkaXN0 aW5ndWlzaCB3aGV0aGVyIHRoZSB0cmFuc2FjdGlvbgorICogaGFzIGNhdGFsb2cgY2hhbmdlcyBv bmx5IGJ5IGNoZWNraW5nIHRoZSBDT01NSVQgcmVjb3JkLiBJdCBkb2Vzbid0CisgKiBoYXZlIHRo ZSBpbmZvcm1hdGlvbiBvbiB3aGljaCAoc3ViKSB0cmFuc2FjdGlvbiBoYXMgY2F0YWxvZyBjaGFu Z2VzLAorICogYW5kIFhBQ1RfWElORk9fSEFTX0lOVkFMUyBkb2Vzbid0IG5lY2Vzc2FyaWx5IGlu ZGljYXRlIHRoYXQgdGhlCisgKiB0cmFuc2FjdGlvbiBoYXMgY2F0YWxvZyBjaGFuZ2UuIEJ1dCB0 aGF0IHdvbid0IGJlIGEgcHJvYmxlbSBzaW5jZSB3ZQorICogdXNlIHNuYXBzaG90IGJ1aWx0IGR1 cmluZyBkZWNvZGluZyBvbmx5IGZvciByZWFkaW5nIHN5c3RlbSBjYXRhbG9ncy4KKyAqLworc3Rh dGljIFRyYW5zYWN0aW9uSWQgKkluaXRpYWxSdW5uaW5nWGFjdHMgPSBOVUxMOworc3RhdGljIGlu dAlOSW5pdGlhbFJ1bm5pbmdYYWN0cyA9IDA7CisKKy8qIC0+Y29tbWl0dGVkIGFuZCBJbml0YWls UnVubmluZ1hhY3RzIG1hbmlwdWxhdGlvbiAqLworc3RhdGljIHZvaWQgU25hcEJ1aWxkUHVyZ2VP bGRlclR4bihTbmFwQnVpbGQgKmJ1aWxkZXIpOwogCiAvKiBzbmFwc2hvdCBidWlsZGluZy9tYW5p cHVsYXRpb24vZGlzdHJpYnV0aW9uIGZ1bmN0aW9ucyAqLwogc3RhdGljIFNuYXBzaG90IFNuYXBC dWlsZEJ1aWxkU25hcHNob3QoU25hcEJ1aWxkICpidWlsZGVyKTsKQEAgLTg3OSwxMiArOTA5LDE3 IEBAIFNuYXBCdWlsZEFkZENvbW1pdHRlZFR4bihTbmFwQnVpbGQgKmJ1aWxkZXIsIFRyYW5zYWN0 aW9uSWQgeGlkKQogfQogCiAvKgotICogUmVtb3ZlIGtub3dsZWRnZSBhYm91dCB0cmFuc2FjdGlv bnMgd2UgdHJlYXQgYXMgY29tbWl0dGVkIHRoYXQgYXJlIHNtYWxsZXIKLSAqIHRoYW4gLT54bWlu LiBUaG9zZSB3b24ndCBldmVyIGdldCBjaGVja2VkIHZpYSB0aGUgLT5jb21taXR0ZWQgYXJyYXkg YnV0IHZpYQotICogdGhlIGNsb2cgbWFjaGluZXJ5LCBzbyB3ZSBkb24ndCBuZWVkIHRvIHdhc3Rl IG1lbW9yeSBvbiB0aGVtLgorICogUmVtb3ZlIGtub3dsZWRnZSBhYm91dCB0cmFuc2FjdGlvbnMg d2UgdHJlYXQgYXMgY29tbWl0dGVkIGFuZCB0aGUgaW5pdGlhbAorICogcnVubmluZyB0cmFuc2Fj dGlvbnMgdGhhdCBhcmUgc21hbGxlciB0aGFuIC0+eG1pbi4gVGhvc2Ugd29uJ3QgZXZlciBnZXQK KyAqIGNoZWNrZWQgdmlhIHRoZSAtPmNvbW1pdHRlZCBvciBJbml0aWFsUnVubmluZ1hhY3RzIGFy cmF5LCByZXNwZWN0aXZlbHkuCisgKiBUaGUgY29tbWl0dGVkIHhpZHMgd2lsbCBnZXQgY2hlY2tl ZCB2aWEgdGhlIGNsb2cgbWFjaGluZXJ5LgorICoKKyAqIFdlIGNhbiBpZGVhbGx5IHJlbW92ZSB0 aGUgdHJhbnNhY3Rpb24gZnJvbSBJbml0aWFsUnVubmluZ1hhY3RzIGFycmF5CisgKiBvbmNlIGl0 IGlzIGZpbmlzaGVkIChjb21taXR0ZWQvYWJvcnRlZCkgYnV0IHRoYXQgY291bGQgYmUgY29zdGx5 IGFzIHdlIG5lZWQKKyAqIHRvIG1haW50YWluIHRoZSB4aWRzIG9yZGVyIGluIHRoZSBhcnJheS4K ICAqLwogc3RhdGljIHZvaWQKLVNuYXBCdWlsZFB1cmdlQ29tbWl0dGVkVHhuKFNuYXBCdWlsZCAq YnVpbGRlcikKK1NuYXBCdWlsZFB1cmdlT2xkZXJUeG4oU25hcEJ1aWxkICpidWlsZGVyKQogewog CWludAkJCW9mZjsKIAlUcmFuc2FjdGlvbklkICp3b3Jrc3BhY2U7CkBAIC05MTksNiArOTU0LDQ5 IEBAIFNuYXBCdWlsZFB1cmdlQ29tbWl0dGVkVHhuKFNuYXBCdWlsZCAqYnVpbGRlcikKIAlidWls ZGVyLT5jb21taXR0ZWQueGNudCA9IHN1cnZpdmluZ194aWRzOwogCiAJcGZyZWUod29ya3NwYWNl KTsKKworCS8qIFF1aWNrIGV4aXQgaWYgdGhlcmUgaXMgbm8gaW5pdGlhbCBydW5uaW5nIHRyYW5z YWN0aW9ucyAqLworCWlmIChOSW5pdGlhbFJ1bm5pbmdYYWN0cyA9PSAwKQorCQlyZXR1cm47CisK KwkvKiBib3VuZCBjaGVjayBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgdHJhbnNhY3Rpb24gdG8g cmVtb3ZlICovCisJaWYgKCFOb3JtYWxUcmFuc2FjdGlvbklkUHJlY2VkZXMoSW5pdGlhbFJ1bm5p bmdYYWN0c1swXSwKKwkJCQkJCQkJCSBidWlsZGVyLT54bWluKSkKKwkJcmV0dXJuOworCisJLyoK KwkgKiBwdXJnZSB4aWRzIGluIEluaXRpYWxSdW5uaW5nWGFjdHMgYXMgd2VsbC4gVGhlIHB1cmdl ZCBhcnJheSBtdXN0IGFsc28KKwkgKiBiZSBzb3J0ZWQgaW4geGlkQ29tcGFyYXRvciBvcmRlci4K KwkgKi8KKwl3b3Jrc3BhY2UgPQorCQlNZW1vcnlDb250ZXh0QWxsb2MoYnVpbGRlci0+Y29udGV4 dCwKKwkJCQkJCSAgIE5Jbml0aWFsUnVubmluZ1hhY3RzICogc2l6ZW9mKFRyYW5zYWN0aW9uSWQp KTsKKwlzdXJ2aXZpbmdfeGlkcyA9IDA7CisJZm9yIChvZmYgPSAwOyBvZmYgPCBOSW5pdGlhbFJ1 bm5pbmdYYWN0czsgb2ZmKyspCisJeworCQlpZiAoTm9ybWFsVHJhbnNhY3Rpb25JZFByZWNlZGVz KEluaXRpYWxSdW5uaW5nWGFjdHNbb2ZmXSwKKwkJCQkJCQkJCQlidWlsZGVyLT54bWluKSkKKwkJ CTsJCQkJCS8qIHJlbW92ZSAqLworCQllbHNlCisJCQl3b3Jrc3BhY2Vbc3Vydml2aW5nX3hpZHMr K10gPSBJbml0aWFsUnVubmluZ1hhY3RzW29mZl07CisJfQorCisJaWYgKHN1cnZpdmluZ194aWRz ID4gMCkKKwkJbWVtY3B5KEluaXRpYWxSdW5uaW5nWGFjdHMsIHdvcmtzcGFjZSwKKwkJCSAgIHNp emVvZihUcmFuc2FjdGlvbklkKSAqIHN1cnZpdmluZ194aWRzKTsKKwllbHNlCisJeworCQlwZnJl ZShJbml0aWFsUnVubmluZ1hhY3RzKTsKKwkJSW5pdGlhbFJ1bm5pbmdYYWN0cyA9IE5VTEw7CisJ fQorCisJZWxvZyhERUJVRzMsICJwdXJnZWQgaW5pdGlhbCBydW5uaW5nIHRyYW5zYWN0aW9ucyBm cm9tICV1IHRvICV1LCBvbGRlc3QgcnVubmluZyB4aWQgJXUiLAorCQkgKHVpbnQzMikgTkluaXRp YWxSdW5uaW5nWGFjdHMsCisJCSAodWludDMyKSBzdXJ2aXZpbmdfeGlkcywKKwkJIGJ1aWxkZXIt PnhtaW4pOworCisJTkluaXRpYWxSdW5uaW5nWGFjdHMgPSBzdXJ2aXZpbmdfeGlkczsKKwlwZnJl ZSh3b3Jrc3BhY2UpOwogfQogCiAvKgpAQCAtMTEyNiw3ICsxMjA0LDcgQEAgU25hcEJ1aWxkUHJv Y2Vzc1J1bm5pbmdYYWN0cyhTbmFwQnVpbGQgKmJ1aWxkZXIsIFhMb2dSZWNQdHIgbHNuLCB4bF9y dW5uaW5nX3hhY3QKIAlidWlsZGVyLT54bWluID0gcnVubmluZy0+b2xkZXN0UnVubmluZ1hpZDsK IAogCS8qIFJlbW92ZSB0cmFuc2FjdGlvbnMgd2UgZG9uJ3QgbmVlZCB0byBrZWVwIHRyYWNrIG9m ZiBhbnltb3JlICovCi0JU25hcEJ1aWxkUHVyZ2VDb21taXR0ZWRUeG4oYnVpbGRlcik7CisJU25h cEJ1aWxkUHVyZ2VPbGRlclR4bihidWlsZGVyKTsKIAogCS8qCiAJICogQWR2YW5jZSB0aGUgeG1p biBsaW1pdCBmb3IgdGhlIGN1cnJlbnQgcmVwbGljYXRpb24gc2xvdCwgdG8gYWxsb3cKQEAgLTEy NzcsNiArMTM1NSwyMCBAQCBTbmFwQnVpbGRGaW5kU25hcHNob3QoU25hcEJ1aWxkICpidWlsZGVy LCBYTG9nUmVjUHRyIGxzbiwgeGxfcnVubmluZ194YWN0cyAqcnVubgogCWVsc2UgaWYgKCFidWls ZGVyLT5idWlsZGluZ19mdWxsX3NuYXBzaG90ICYmCiAJCQkgU25hcEJ1aWxkUmVzdG9yZShidWls ZGVyLCBsc24pKQogCXsKKwkJaW50CQkJbnhhY3RzID0gcnVubmluZy0+c3VieGNudCArIHJ1bm5p bmctPnhjbnQ7CisJCVNpemUJCXN6ID0gc2l6ZW9mKFRyYW5zYWN0aW9uSWQpICogbnhhY3RzOwor CisJCS8qCisJCSAqIFJlbWVtYmVyIHRoZSB0cmFuc2FjdGlvbnMgYW5kIHN1YnRyYW5zYWN0aW9u cyB0aGF0IHdlcmUgcnVubmluZworCQkgKiB3aGVuIHhsX3J1bm5pbmdfeGFjdHMgcmVjb3JkIHRo YXQgd2UgZGVjb2RlZCB3YXMgd3JpdHRlbi4gV2UgdXNlCisJCSAqIHRoaXMgbGF0ZXIgdG8gaWRl bnRpZnkgdGhlIHRyYW5zYWN0aW9ucyBoYXZlIHBlcmZvcm1lZCBjYXRhbG9nCisJCSAqIGNoYW5n ZXMuIFNlZSBTbmFwQnVpbGRYaWRTZXRDYXRhbG9nQ2hhbmdlcy4KKwkJICovCisJCU5Jbml0aWFs UnVubmluZ1hhY3RzID0gbnhhY3RzOworCQlJbml0aWFsUnVubmluZ1hhY3RzID0gTWVtb3J5Q29u dGV4dEFsbG9jKGJ1aWxkZXItPmNvbnRleHQsIHN6KTsKKwkJbWVtY3B5KEluaXRpYWxSdW5uaW5n WGFjdHMsIHJ1bm5pbmctPnhpZHMsIHN6KTsKKwkJcXNvcnQoSW5pdGlhbFJ1bm5pbmdYYWN0cywg bnhhY3RzLCBzaXplb2YoVHJhbnNhY3Rpb25JZCksIHhpZENvbXBhcmF0b3IpOworCiAJCS8qIHRo ZXJlIHdvbid0IGJlIGFueSBzdGF0ZSB0byBjbGVhbnVwICovCiAJCXJldHVybiBmYWxzZTsKIAl9 CkBAIC0xOTkzLDMgKzIwODUsMzQgQEAgQ2hlY2tQb2ludFNuYXBCdWlsZCh2b2lkKQogCX0KIAlG cmVlRGlyKHNuYXBfZGlyKTsKIH0KKworLyoKKyAqIElmIHRoZSBnaXZlbiB4aWQgaXMgaW4gdGhl IGxpc3Qgb2YgdGhlIGluaXRpYWwgcnVubmluZyB4YWN0cywgd2UgbWFyayB0aGUKKyAqIHRyYW5z YWN0aW9uIGFuZCBpdHMgc3VidHJhbnNhY3Rpb25zIGFzIGNvbnRhaW5pbmcgY2F0YWxvZyBjaGFu Z2VzLiBTZWUKKyAqIGNvbW1lbnRzIGZvciBOSW5pdGlhbFJ1bm5pbmdYYWN0cyBhbmQgSW5pdGlh bFJ1bm5pbmdYYWN0cyBmb3IgYWRkaXRpb25hbAorICogaW5mby4KKyAqLwordm9pZAorU25hcEJ1 aWxkWGlkU2V0Q2F0YWxvZ0NoYW5nZXMoU25hcEJ1aWxkICpidWlsZGVyLCBUcmFuc2FjdGlvbklk IHhpZCwgaW50IHN1YnhjbnQsCisJCQkJCQkJICBUcmFuc2FjdGlvbklkICpzdWJ4YWN0cywgWExv Z1JlY1B0ciBsc24pCit7CisJLyoKKwkgKiBTa2lwIGlmIHRoZXJlIGlzIG5vIGluaXRpYWwgcnVu bmluZyB4YWN0cyBpbmZvcm1hdGlvbiBvciB0aGUKKwkgKiB0cmFuc2FjdGlvbiBpcyBhbHJlYWR5 IG1hcmtlZCBhcyBjb250YWluaW5nIGNhdGFsb2cgY2hhbmdlcy4KKwkgKi8KKwlpZiAoTkluaXRp YWxSdW5uaW5nWGFjdHMgPT0gMCB8fAorCQlSZW9yZGVyQnVmZmVyWGlkSGFzQ2F0YWxvZ0NoYW5n ZXMoYnVpbGRlci0+cmVvcmRlciwgeGlkKSkKKwkJcmV0dXJuOworCisJaWYgKGJzZWFyY2goJnhp ZCwgSW5pdGlhbFJ1bm5pbmdYYWN0cywgTkluaXRpYWxSdW5uaW5nWGFjdHMsCisJCQkJc2l6ZW9m KFRyYW5zYWN0aW9uSWQpLCB4aWRDb21wYXJhdG9yKSAhPSBOVUxMKQorCXsKKwkJUmVvcmRlckJ1 ZmZlclhpZFNldENhdGFsb2dDaGFuZ2VzKGJ1aWxkZXItPnJlb3JkZXIsIHhpZCwgbHNuKTsKKwor CQlmb3IgKGludCBpID0gMDsgaSA8IHN1YnhjbnQ7IGkrKykKKwkJeworCQkJUmVvcmRlckJ1ZmZl ckFzc2lnbkNoaWxkKGJ1aWxkZXItPnJlb3JkZXIsIHhpZCwgc3VieGFjdHNbaV0sIGxzbik7CisJ CQlSZW9yZGVyQnVmZmVyWGlkU2V0Q2F0YWxvZ0NoYW5nZXMoYnVpbGRlci0+cmVvcmRlciwgc3Vi eGFjdHNbaV0sIGxzbik7CisJCX0KKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi9zbmFwYnVpbGQuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3NuYXBidWlsZC5o CmluZGV4IDM2MDQ2MjFlODguLmExOWI1OWUxMDAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3NuYXBidWlsZC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3NuYXBi dWlsZC5oCkBAIC05MCw0ICs5MCw3IEBAIGV4dGVybiB2b2lkIFNuYXBCdWlsZFByb2Nlc3NSdW5u aW5nWGFjdHMoU25hcEJ1aWxkICpidWlsZGVyLCBYTG9nUmVjUHRyIGxzbiwKIAkJCQkJCQkJCQkg c3RydWN0IHhsX3J1bm5pbmdfeGFjdHMgKnJ1bm5pbmcpOwogZXh0ZXJuIHZvaWQgU25hcEJ1aWxk U2VyaWFsaXphdGlvblBvaW50KFNuYXBCdWlsZCAqYnVpbGRlciwgWExvZ1JlY1B0ciBsc24pOwog CitleHRlcm4gdm9pZCBTbmFwQnVpbGRYaWRTZXRDYXRhbG9nQ2hhbmdlcyhTbmFwQnVpbGQgKmJ1 aWxkZXIsIFRyYW5zYWN0aW9uSWQgeGlkLAorCQkJCQkJCQkJCSAgaW50IHN1YnhjbnQsIFRyYW5z YWN0aW9uSWQgKnN1YnhhY3RzLAorCQkJCQkJCQkJCSAgWExvZ1JlY1B0ciBsc24pOwogI2VuZGlm CQkJCQkJCS8qIFNOQVBCVUlMRF9IICovCi0tIAoyLjI0LjMgKEFwcGxlIEdpdC0xMjgpCgo= --000000000000f352e005e5517a40 Content-Type: application/octet-stream; name="REL11_v13-0001-Fix-catalog-lookup-with-the-wrong-snapshot-durin.patch" Content-Disposition: attachment; filename="REL11_v13-0001-Fix-catalog-lookup-with-the-wrong-snapshot-durin.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l6db4dlg5 RnJvbSAyMDFlZjIwNjk4OGViZWU4MDhhZDNhNzJmOWNlODA4Yzg5MzVlZTk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAyNSBKdWwgMjAyMiAxNDowMjo1MCArMDkwMApTdWJqZWN0OiBbUEFUQ0gg djEzXSBGaXggY2F0YWxvZyBsb29rdXAgd2l0aCB0aGUgd3Jvbmcgc25hcHNob3QgZHVyaW5nIGxv Z2ljYWwKIGRlY29kaW5nLgoKUHJldmlvdXNseSwgd2UgcmVsaWVkIG9uIEhFQVAyX05FV19DSUQg cmVjb3JkcyBhbmQgWEFDVF9JTlZBTElEQVRJT04KcmVjb3JkcyB0byBrbm93IGlmIHRoZSB0cmFu c2FjdGlvbiBoYXMgbW9kaWZpZWQgdGhlIGNhdGFsb2csIGFuZCB0aGF0CmluZm9ybWF0aW9uIGlz IG5vdCBzZXJpYWxpemVkIHRvIHNuYXBzaG90LiBUaGVyZWZvcmUsIGFmdGVyIHRoZSByZXN0YXJ0 LAppZiB0aGUgbG9naWNhbCBkZWNvZGluZyBkZWNvZGVzIG9ubHkgdGhlIGNvbW1pdCByZWNvcmQg b2YgdGhlIHRyYW5zYWN0aW9uCnRoYXQgaGFzIGFjdHVhbGx5IG1vZGlmaWVkIGEgY2F0YWxvZywg d2Ugd2lsbCBtaXNzIGFkZGluZyBpdHMgWElEIHRvIHRoZQpzbmFwc2hvdC4gVGh1cywgd2Ugd2ls bCBlbmQgdXAgbG9va2luZyBhdCBjYXRhbG9ncyB3aXRoIHRoZSB3cm9uZwpzbmFwc2hvdC4KClRv IGZpeCB0aGlzIHByb2JsZW0sIHRoaXMgY2hhbmdlcyB0aGUgc25hcHNob3QgYnVpbGRlciBzbyB0 aGF0IGl0CnJlbWVtYmVycyB0aGUgbGFzdC1ydW5uaW5nLXhhY3RzIGxpc3Qgb2YgdGhlIGRlY29k ZWQgUlVOTklOR19YQUNUUyByZWNvcmQKYWZ0ZXIgcmVzdG9yaW5nIHRoZSBwcmV2aW91c2x5IHNl cmlhbGl6ZWQgc25hcHNob3QuIFRoZW4sIHdlIG1hcmsgdGhlCnRyYW5zYWN0aW9uIGFzIGNvbnRh aW5pbmcgY2F0YWxvZyBjaGFuZ2VzIGlmIGl0J3MgaW4gdGhlIGxpc3Qgb2YgaW5pdGlhbApydW5u aW5nIHRyYW5zYWN0aW9ucyBhbmQgaXRzIGNvbW1pdCByZWNvcmQgaGFzIFhBQ1RfWElORk9fSEFT X0lOVkFMUy4gVG8KYXZvaWQgQUJJIGJyZWFrYWdlLCB3ZSBzdG9yZSB0aGUgYXJyYXkgb2YgdGhl IGluaXRpYWwgcnVubmluZyB0cmFuc2FjdGlvbnMKaW4gdGhlIHN0YXRpYyB2YXJpYWJsZXMgSW5p dGlhbFJ1bm5pbmdYYWN0cyBhbmQgTkluaXRpYWxSdW5uaW5nWGFjdHMsCmluc3RlYWQgb2Ygc3Rv cmluZyB0aG9zZSBpbiBTbmFwQnVpbGQgb3IgUmVvcmRlckJ1ZmZlci4KClRoaXMgYXBwcm9hY2gg aGFzIGEgZmFsc2UgcG9zaXRpdmU7IHdlIGNvdWxkIGVuZCB1cCBhZGRpbmcgdGhlIHRyYW5zYWN0 aW9uCnRoYXQgZGlkbid0IGNoYW5nZSBjYXRhbG9nIHRvIHRoZSBzbmFwc2hvdCBzaW5jZSB3ZSBj YW5ub3QgZGlzdGluZ3Vpc2gKd2hldGhlciB0aGUgdHJhbnNhY3Rpb24gaGFzIGNhdGFsb2cgY2hh bmdlcyBvbmx5IGJ5IGNoZWNraW5nIHRoZSBDT01NSVQKcmVjb3JkLiBJdCBkb2Vzbid0IGhhdmUg dGhlIGluZm9ybWF0aW9uIG9uIHdoaWNoIChzdWIpIHRyYW5zYWN0aW9uIGhhcwpjYXRhbG9nIGNo YW5nZXMsIGFuZCBYQUNUX1hJTkZPX0hBU19JTlZBTFMgZG9lc24ndCBuZWNlc3NhcmlseSBpbmRp Y2F0ZQp0aGF0IHRoZSB0cmFuc2FjdGlvbiBoYXMgY2F0YWxvZyBjaGFuZ2UuIEJ1dCB0aGF0IHdv bid0IGJlIGEgcHJvYmxlbSBzaW5jZQp3ZSB1c2Ugc25hcHNob3QgYnVpbHQgZHVyaW5nIGRlY29k aW5nIG9ubHkgdG8gcmVhZCBzeXN0ZW0gY2F0YWxvZ3MuCgpPbiB0aGUgbWFzdGVyIGJyYW5jaCwg d2UgdG9vayBhIG1vcmUgZnV0dXJlLXByb29mIGFwcHJvYWNoIGJ5IHdyaXRpbmcKY2F0YWxvZyBt b2RpZnlpbmcgdHJhbnNhY3Rpb25zIHRvIHRoZSBzZXJpYWxpemVkIHNuYXBzaG90IHdoaWNoIGF2 b2lkcyB0aGUKYWJvdmUgZmFsc2UgcG9zaXRpdmUuIEJ1dCB3ZSBjYW5ub3QgYmFja3BhdGNoIGl0 IGJlY2F1c2Ugb2YgYSBjaGFuZ2UgaW4KdGhlIFNuYXBCdWlsZC4KClJlcG9ydGVkLWJ5OiBNaWtl IE9oCkF1dGhvcjogTWFzYWhpa28gU2F3YWRhClJldmlld2VkLWJ5OiBBbWl0IEthcGlsYSwgU2hp IHl1LCBUYWthbWljaGkgT3N1bWksIEt5b3Rhcm8gSG9yaWd1Y2hpLCBCZXJ0cmFuZCBEcm91dm90 LCBBaHNhbiBIYWRpCkJhY2twYXRjaC10aHJvdWdoOiAxMApEaXNjdXNzaW9uOiBodHRwczovL3Bv c3Rnci5lcy9tLzgxRDBEOEIwLUU3QzQtNDk5OS1CNjE2LTFFNTAwNERCRENEMiU0MGFtYXpvbi5j b20KLS0tCiBjb250cmliL3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUgICAgICAgICAgICAgICAgfCAg IDIgKy0KIC4uLi9leHBlY3RlZC9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5vdXQgICAgICB8ICA0 NCArKysrKysKIC4uLi9zcGVjcy9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5zcGVjICAgICAgICB8 ICAzOSArKysrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyAgICAg IHwgIDE1ICstCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3NuYXBidWlsZC5jICAg fCAxMzUgKysrKysrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbmFwYnVp bGQuaCAgICAgICAgICAgfCAgIDMgKwogNiBmaWxlcyBjaGFuZ2VkLCAyMjkgaW5zZXJ0aW9ucygr KSwgOSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBjb250cmliL3Rlc3RfZGVjb2Rp bmcvZXhwZWN0ZWQvY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Qub3V0CiBjcmVhdGUgbW9kZSAxMDA2 NDQgY29udHJpYi90ZXN0X2RlY29kaW5nL3NwZWNzL2NhdGFsb2dfY2hhbmdlX3NuYXBzaG90LnNw ZWMKCmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUgYi9jb250cmli L3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUKaW5kZXggNjVhOTFhODAxNC4uOTczYjk0NzM4YSAxMDA2 NDQKLS0tIGEvY29udHJpYi90ZXN0X2RlY29kaW5nL01ha2VmaWxlCisrKyBiL2NvbnRyaWIvdGVz dF9kZWNvZGluZy9NYWtlZmlsZQpAQCAtNTEsNyArNTEsNyBAQCByZWdyZXNzY2hlY2staW5zdGFs bC1mb3JjZTogfCBzdWJtYWtlLXJlZ3Jlc3Mgc3VibWFrZS10ZXN0X2RlY29kaW5nIHRlbXAtaW5z dGFsbAogCSAgICAkKFJFR1JFU1NDSEVDS1MpCiAKIElTT0xBVElPTkNIRUNLUz1teGFjdCBkZWxh eWVkX3N0YXJ0dXAgb25kaXNrX3N0YXJ0dXAgY29uY3VycmVudF9kZGxfZG1sIFwKLQlvbGRlc3Rf eG1pbiBzbmFwc2hvdF90cmFuc2ZlciBzdWJ4YWN0X3dpdGhvdXRfdG9wCisJb2xkZXN0X3htaW4g c25hcHNob3RfdHJhbnNmZXIgc3VieGFjdF93aXRob3V0X3RvcCBjYXRhbG9nX2NoYW5nZV9zbmFw c2hvdAogCiBpc29sYXRpb25jaGVjazogfCBzdWJtYWtlLWlzb2xhdGlvbiBzdWJtYWtlLXRlc3Rf ZGVjb2RpbmcgdGVtcC1pbnN0YWxsCiAJJChwZ19pc29sYXRpb25fcmVncmVzc19jaGVjaykgXApk aWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVjdGVkL2NhdGFsb2dfY2hhbmdl X3NuYXBzaG90Lm91dCBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9jYXRhbG9nX2No YW5nZV9zbmFwc2hvdC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u ZGM0ZjliNzAxOAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBl Y3RlZC9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5vdXQKQEAgLTAsMCArMSw0NCBAQAorUGFyc2Vk IHRlc3Qgc3BlYyB3aXRoIDIgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMwX2lu aXQgczBfYmVnaW4gczBfc2F2ZXBvaW50IHMwX3RydW5jYXRlIHMxX2NoZWNrcG9pbnQgczFfZ2V0 X2NoYW5nZXMgczBfY29tbWl0IHMwX2JlZ2luIHMwX2luc2VydCBzMV9jaGVja3BvaW50IHMxX2dl dF9jaGFuZ2VzIHMwX2NvbW1pdCBzMV9nZXRfY2hhbmdlcworc3RlcCBzMF9pbml0OiBTRUxFQ1Qg J2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnaXNvbGF0aW9u X3Nsb3QnLCAndGVzdF9kZWNvZGluZycpOworP2NvbHVtbj8KKy0tLS0tLS0tCitpbml0ICAgIAor KDEgcm93KQorCitzdGVwIHMwX2JlZ2luOiBCRUdJTjsKK3N0ZXAgczBfc2F2ZXBvaW50OiBTQVZF UE9JTlQgc3AxOworc3RlcCBzMF90cnVuY2F0ZTogVFJVTkNBVEUgdGJsMTsKK3N0ZXAgczFfY2hl Y2twb2ludDogQ0hFQ0tQT0lOVDsKK3N0ZXAgczFfZ2V0X2NoYW5nZXM6IFNFTEVDVCBkYXRhIEZS T00gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdpc29sYXRpb25fc2xvdCcsIE5VTEwsIE5V TEwsICdza2lwLWVtcHR5LXhhY3RzJywgJzEnLCAnaW5jbHVkZS14aWRzJywgJzAnKTsKK2RhdGEK Ky0tLS0KKygwIHJvd3MpCisKK3N0ZXAgczBfY29tbWl0OiBDT01NSVQ7CitzdGVwIHMwX2JlZ2lu OiBCRUdJTjsKK3N0ZXAgczBfaW5zZXJ0OiBJTlNFUlQgSU5UTyB0YmwxIFZBTFVFUyAoMSk7Citz dGVwIHMxX2NoZWNrcG9pbnQ6IENIRUNLUE9JTlQ7CitzdGVwIHMxX2dldF9jaGFuZ2VzOiBTRUxF Q1QgZGF0YSBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnaXNvbGF0aW9uX3Nsb3Qn LCBOVUxMLCBOVUxMLCAnc2tpcC1lbXB0eS14YWN0cycsICcxJywgJ2luY2x1ZGUteGlkcycsICcw Jyk7CitkYXRhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQkVHSU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCit0YWJsZSBwdWJsaWMudGJsMTogVFJVTkNBVEU6IChuby1mbGFncykKK0NP TU1JVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorKDMgcm93cykKKworc3RlcCBz MF9jb21taXQ6IENPTU1JVDsKK3N0ZXAgczFfZ2V0X2NoYW5nZXM6IFNFTEVDVCBkYXRhIEZST00g cGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdpc29sYXRpb25fc2xvdCcsIE5VTEwsIE5VTEws ICdza2lwLWVtcHR5LXhhY3RzJywgJzEnLCAnaW5jbHVkZS14aWRzJywgJzAnKTsKK2RhdGEgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KK0JFR0lOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKK3RhYmxlIHB1YmxpYy50YmwxOiBJTlNFUlQ6IHZhbDFbaW50ZWdlcl06MSB2YWwy W2ludGVnZXJdOm51bGwKK0NPTU1JVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKygzIHJvd3MpCisKKz9jb2x1bW4/CistLS0tLS0tLQorc3Rv cCAgICAKKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL3NwZWNz L2NhdGFsb2dfY2hhbmdlX3NuYXBzaG90LnNwZWMgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3Bl Y3MvY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Quc3BlYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwLi4yOTcxZGRjNjljCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi90ZXN0 X2RlY29kaW5nL3NwZWNzL2NhdGFsb2dfY2hhbmdlX3NuYXBzaG90LnNwZWMKQEAgLTAsMCArMSwz OSBAQAorIyBUZXN0IGRlY29kaW5nIG9ubHkgdGhlIGNvbW1pdCByZWNvcmQgb2YgdGhlIHRyYW5z YWN0aW9uIHRoYXQgaGF2ZQorIyBtb2RpZmllZCBjYXRhbG9ncy4KK3NldHVwCit7CisgICAgRFJP UCBUQUJMRSBJRiBFWElTVFMgdGJsMTsKKyAgICBDUkVBVEUgVEFCTEUgdGJsMSAodmFsMSBpbnRl Z2VyLCB2YWwyIGludGVnZXIpOworfQorCit0ZWFyZG93bgoreworICAgIERST1AgVEFCTEUgdGJs MTsKKyAgICBTRUxFQ1QgJ3N0b3AnIEZST00gcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdpc29s YXRpb25fc2xvdCcpOworfQorCitzZXNzaW9uICJzMCIKK3NldHVwIHsgU0VUIHN5bmNocm9ub3Vz X2NvbW1pdD1vbjsgfQorc3RlcCAiczBfaW5pdCIgeyBTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3Jl YXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnaXNvbGF0aW9uX3Nsb3QnLCAndGVzdF9kZWNv ZGluZycpOyB9CitzdGVwICJzMF9iZWdpbiIgeyBCRUdJTjsgfQorc3RlcCAiczBfc2F2ZXBvaW50 IiB7IFNBVkVQT0lOVCBzcDE7IH0KK3N0ZXAgInMwX3RydW5jYXRlIiB7IFRSVU5DQVRFIHRibDE7 IH0KK3N0ZXAgInMwX2luc2VydCIgeyBJTlNFUlQgSU5UTyB0YmwxIFZBTFVFUyAoMSk7IH0KK3N0 ZXAgInMwX2NvbW1pdCIgeyBDT01NSVQ7IH0KKworc2Vzc2lvbiAiczEiCitzZXR1cCB7IFNFVCBz eW5jaHJvbm91c19jb21taXQ9b247IH0KK3N0ZXAgInMxX2NoZWNrcG9pbnQiIHsgQ0hFQ0tQT0lO VDsgfQorc3RlcCAiczFfZ2V0X2NoYW5nZXMiIHsgU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2Fs X3Nsb3RfZ2V0X2NoYW5nZXMoJ2lzb2xhdGlvbl9zbG90JywgTlVMTCwgTlVMTCwgJ3NraXAtZW1w dHkteGFjdHMnLCAnMScsICdpbmNsdWRlLXhpZHMnLCAnMCcpOyB9CisKKyMgRm9yIHRoZSB0cmFu c2FjdGlvbiB0aGF0IFRSVU5DQVRFZCB0aGUgdGFibGUgdGJsMSwgdGhlIGxhc3QgZGVjb2Rpbmcg ZGVjb2RlcworIyBvbmx5IGl0cyBDT01NSVQgcmVjb3JkLCBiZWNhdXNlIGl0IHN0YXJ0cyBmcm9t IHRoZSBSVU5OSU5HX1hBQ1RTIHJlY29yZCBlbWl0dGVkCisjIGR1cmluZyB0aGUgZmlyc3QgY2hl Y2twb2ludCBleGVjdXRpb24uICBUaGlzIHRyYW5zYWN0aW9uIG11c3QgYmUgbWFya2VkIGFzCisj IGNvbnRhaW5pbmcgY2F0YWxvZyBjaGFuZ2VzIHdoaWxlIGRlY29kaW5nIHRoZSBDT01NSVQgcmVj b3JkIGFuZCB0aGUgZGVjb2RpbmcKKyMgb2YgdGhlIElOU0VSVCByZWNvcmQgbXVzdCByZWFkIHRo ZSBwZ19jbGFzcyB3aXRoIHRoZSBjb3JyZWN0IGhpc3RvcmljIHNuYXBzaG90LgorIworIyBOb3Rl IHRoYXQgaW4gYSBjYXNlIHdoZXJlIGJnd3JpdGVyIHdyb3RlIHRoZSBSVU5OSU5HX1hBQ1RTIHJl Y29yZCBiZXR3ZWVuICJzMF9jb21taXQiCisjIGFuZCAiczBfYmVnaW4iLCB0aGlzIGRvZXNuJ3Qg aGFwcGVuIGFzIHRoZSBkZWNvZGluZyBzdGFydHMgZnJvbSB0aGUgUlVOTklOR19YQUNUUworIyBy ZWNvcmQgd3JpdHRlbiBieSBiZ3dyaXRlci4gIE9uZSBtaWdodCB0aGluayB3ZSBjYW4gZWl0aGVy IHN0b3AgdGhlIGJnd3JpdGVyIG9yCisjIGluY3JlYXNlIExPR19TTkFQU0hPVF9JTlRFUlZBTF9N UyBidXQgaXQncyBub3QgcHJhY3RpY2FsIHZpYSB0ZXN0cy4KK3Blcm11dGF0aW9uICJzMF9pbml0 IiAiczBfYmVnaW4iICJzMF9zYXZlcG9pbnQiICJzMF90cnVuY2F0ZSIgInMxX2NoZWNrcG9pbnQi ICJzMV9nZXRfY2hhbmdlcyIgInMwX2NvbW1pdCIgInMwX2JlZ2luIiAiczBfaW5zZXJ0IiAiczFf Y2hlY2twb2ludCIgInMxX2dldF9jaGFuZ2VzIiAiczBfY29tbWl0IiAiczFfZ2V0X2NoYW5nZXMi CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYwppbmRleCBjMDg1ZjdiMGYz Li5kYzgzNzQzYzM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L2RlY29kZS5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMK QEAgLTU4Niw3ICs1ODYsMjAgQEAgRGVjb2RlQ29tbWl0KExvZ2ljYWxEZWNvZGluZ0NvbnRleHQg KmN0eCwgWExvZ1JlY29yZEJ1ZmZlciAqYnVmLAogCQlpZiAoIWN0eC0+ZmFzdF9mb3J3YXJkKQog CQkJUmVvcmRlckJ1ZmZlckFkZEludmFsaWRhdGlvbnMoY3R4LT5yZW9yZGVyLCB4aWQsIGJ1Zi0+ b3JpZ3B0ciwKIAkJCQkJCQkJCQkgIHBhcnNlZC0+bm1zZ3MsIHBhcnNlZC0+bXNncyk7Ci0JCVJl b3JkZXJCdWZmZXJYaWRTZXRDYXRhbG9nQ2hhbmdlcyhjdHgtPnJlb3JkZXIsIHhpZCwgYnVmLT5v cmlncHRyKTsKKwkJLyoKKwkJICogSWYgdGhlIENPTU1JVCByZWNvcmQgaGFzIGludmFsaWRhdGlv biBtZXNzYWdlcywgaXQgY291bGQgaGF2ZSBjYXRhbG9nCisJCSAqIGNoYW5nZXMuIEl0IGlzIHBv c3NpYmxlIHRoYXQgd2UgZGlkbid0IG1hcmsgdGhpcyB0cmFuc2FjdGlvbiBhbmQKKwkJICogaXRz IHN1YnRyYW5zYWN0aW9ucyBhcyBjb250YWluaW5nIGNhdGFsb2cgY2hhbmdlcyB3aGVuIHRoZSBk ZWNvZGluZworCQkgKiBzdGFydHMgZnJvbSBhIGNvbW1pdCByZWNvcmQgd2l0aG91dCBkZWNvZGlu ZyB0aGUgdHJhbnNhY3Rpb24ncyBvdGhlcgorCQkgKiBjaGFuZ2VzLiBUaGVyZWZvcmUsIHdlIGVu c3VyZSB0byBtYXJrIHN1Y2ggdHJhbnNhY3Rpb25zIGFzIGNvbnRhaW5pbmcKKwkJICogY2F0YWxv ZyBjaGFuZ2UuCisJCSAqCisJCSAqIFRoaXMgbXVzdCBiZSBkb25lIGJlZm9yZSBTbmFwQnVpbGRD b21taXRUeG4oKSBzbyB0aGF0IHdlIGNhbiBpbmNsdWRlCisJCSAqIHRoZXNlIHRyYW5zYWN0aW9u cyBpbiB0aGUgaGlzdG9yaWMgc25hcHNob3QuCisJCSAqLworCQlTbmFwQnVpbGRYaWRTZXRDYXRh bG9nQ2hhbmdlcyhjdHgtPnNuYXBzaG90X2J1aWxkZXIsIHhpZCwKKwkJCQkJCQkJCSAgcGFyc2Vk LT5uc3VieGFjdHMsIHBhcnNlZC0+c3VieGFjdHMsCisJCQkJCQkJCQkgIGJ1Zi0+b3JpZ3B0cik7 CiAJfQogCiAJU25hcEJ1aWxkQ29tbWl0VHhuKGN0eC0+c25hcHNob3RfYnVpbGRlciwgYnVmLT5v cmlncHRyLCB4aWQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3NuYXBidWlsZC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbmFwYnVpbGQu YwppbmRleCAxYzUyYmM2NGUzLi41MzhkNzU3YjdkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL3NuYXBidWlsZC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvc25hcGJ1aWxkLmMKQEAgLTI1OCw4ICsyNTgsMzggQEAgc3RydWN0IFNuYXBC dWlsZAogc3RhdGljIFJlc291cmNlT3duZXIgU2F2ZWRSZXNvdXJjZU93bmVyRHVyaW5nRXhwb3J0 ID0gTlVMTDsKIHN0YXRpYyBib29sIEV4cG9ydEluUHJvZ3Jlc3MgPSBmYWxzZTsKIAotLyogLT5j b21taXR0ZWQgbWFuaXB1bGF0aW9uICovCi1zdGF0aWMgdm9pZCBTbmFwQnVpbGRQdXJnZUNvbW1p dHRlZFR4bihTbmFwQnVpbGQgKmJ1aWxkZXIpOworLyoKKyAqIEFycmF5IG9mIHRyYW5zYWN0aW9u cyBhbmQgc3VidHJhbnNhY3Rpb25zIHRoYXQgd2VyZSBydW5uaW5nIHdoZW4KKyAqIHRoZSB4bF9y dW5uaW5nX3hhY3RzIHJlY29yZCB0aGF0IHdlIGRlY29kZWQgd2FzIHdyaXR0ZW4uIFRoZSBhcnJh eSBpcworICogc29ydGVkIGluIHhpZENvbXBhcmF0b3Igb3JkZXIuIFdlIHJlbW92ZSB4aWRzIGZy b20gdGhpcyBhcnJheSB3aGVuCisgKiB0aGV5IGJlY29tZSBvbGQgZW5vdWdoIHRvIG1hdHRlciwg YW5kIHRoZW4gaXQgZXZlbnR1YWxseSBiZWNvbWVzIGVtcHR5LgorICogVGhpcyBhcnJheSBpcyBh bGxvY2F0ZWQgaW4gYnVpbGRlci0+Y29udGV4dCBzbyBpdHMgbGlmZXRpbWUgaXMgdGhlIHNhbWUK KyAqIGFzIHRoZSBzbmFwc2hvdCBidWlsZGVyLgorICoKKyAqIFdlIG5vcm1hbGx5IHJlbHkgb24g c29tZSBXQUwgcmVjb3JkIHR5cGVzIHN1Y2ggYXMgSEVBUDJfTkVXX0NJRCB0byBrbm93CisgKiBp ZiB0aGUgdHJhbnNhY3Rpb24gaGFzIGNoYW5nZWQgdGhlIGNhdGFsb2cuIEJ1dCBpdCBjb3VsZCBo YXBwZW4gdGhhdCB0aGUKKyAqIGxvZ2ljYWwgZGVjb2RpbmcgZGVjb2RlcyBvbmx5IHRoZSBjb21t aXQgcmVjb3JkIG9mIHRoZSB0cmFuc2FjdGlvbiBhZnRlcgorICogcmVzdG9yaW5nIHRoZSBwcmV2 aW91c2x5IHNlcmlhbGl6ZWQgc25hcHNob3QgaW4gd2hpY2ggY2FzZSB3ZSB3aWxsIG1pc3MKKyAq IGFkZGluZyB0aGUgeGlkIHRvIHRoZSBzbmFwc2hvdCBhbmQgZW5kIHVwIGxvb2tpbmcgYXQgdGhl IGNhdGFsb2dzIHdpdGggdGhlCisgKiB3cm9uZyBzbmFwc2hvdC4KKyAqCisgKiBOb3cgdG8gYXZv aWQgdGhlIGFib3ZlIHByb2JsZW0sIGlmIHRoZSBDT01NSVQgcmVjb3JkIG9mIHRoZSB4aWQgbGlz dGVkIGluCisgKiBJbml0aWFsUnVubmluZ1hhY3RzIGhhcyBYQUNUX1hJTkZPX0hBU19JTlZBTFMg ZmxhZywgd2UgbWFyayBib3RoIHRoZSB0b3AKKyAqIHRyYW5zYWN0aW9uIGFuZCBpdHMgc3Vic3Ry YW5zYWN0aW9ucyBhcyBjb250YWluaW5nIGNhdGFsb2cgY2hhbmdlcy4KKyAqCisgKiBXZSBjb3Vs ZCBlbmQgdXAgYWRkaW5nIHRoZSB0cmFuc2FjdGlvbiB0aGF0IGRpZG4ndCBjaGFuZ2UgY2F0YWxv ZworICogdG8gdGhlIHNuYXBzaG90IHNpbmNlIHdlIGNhbm5vdCBkaXN0aW5ndWlzaCB3aGV0aGVy IHRoZSB0cmFuc2FjdGlvbgorICogaGFzIGNhdGFsb2cgY2hhbmdlcyBvbmx5IGJ5IGNoZWNraW5n IHRoZSBDT01NSVQgcmVjb3JkLiBJdCBkb2Vzbid0CisgKiBoYXZlIHRoZSBpbmZvcm1hdGlvbiBv biB3aGljaCAoc3ViKSB0cmFuc2FjdGlvbiBoYXMgY2F0YWxvZyBjaGFuZ2VzLAorICogYW5kIFhB Q1RfWElORk9fSEFTX0lOVkFMUyBkb2Vzbid0IG5lY2Vzc2FyaWx5IGluZGljYXRlIHRoYXQgdGhl CisgKiB0cmFuc2FjdGlvbiBoYXMgY2F0YWxvZyBjaGFuZ2UuIEJ1dCB0aGF0IHdvbid0IGJlIGEg cHJvYmxlbSBzaW5jZSB3ZQorICogdXNlIHNuYXBzaG90IGJ1aWx0IGR1cmluZyBkZWNvZGluZyBv bmx5IGZvciByZWFkaW5nIHN5c3RlbSBjYXRhbG9ncy4KKyAqLworc3RhdGljIFRyYW5zYWN0aW9u SWQgKkluaXRpYWxSdW5uaW5nWGFjdHMgPSBOVUxMOworc3RhdGljIGludAlOSW5pdGlhbFJ1bm5p bmdYYWN0cyA9IDA7CisKKy8qIC0+Y29tbWl0dGVkIGFuZCBJbml0YWlsUnVubmluZ1hhY3RzIG1h bmlwdWxhdGlvbiAqLworc3RhdGljIHZvaWQgU25hcEJ1aWxkUHVyZ2VPbGRlclR4bihTbmFwQnVp bGQgKmJ1aWxkZXIpOwogCiAvKiBzbmFwc2hvdCBidWlsZGluZy9tYW5pcHVsYXRpb24vZGlzdHJp YnV0aW9uIGZ1bmN0aW9ucyAqLwogc3RhdGljIFNuYXBzaG90IFNuYXBCdWlsZEJ1aWxkU25hcHNo b3QoU25hcEJ1aWxkICpidWlsZGVyKTsKQEAgLTg5NiwxMiArOTI2LDE3IEBAIFNuYXBCdWlsZEFk ZENvbW1pdHRlZFR4bihTbmFwQnVpbGQgKmJ1aWxkZXIsIFRyYW5zYWN0aW9uSWQgeGlkKQogfQog CiAvKgotICogUmVtb3ZlIGtub3dsZWRnZSBhYm91dCB0cmFuc2FjdGlvbnMgd2UgdHJlYXQgYXMg Y29tbWl0dGVkIHRoYXQgYXJlIHNtYWxsZXIKLSAqIHRoYW4gLT54bWluLiBUaG9zZSB3b24ndCBl dmVyIGdldCBjaGVja2VkIHZpYSB0aGUgLT5jb21taXR0ZWQgYXJyYXkgYnV0IHZpYQotICogdGhl IGNsb2cgbWFjaGluZXJ5LCBzbyB3ZSBkb24ndCBuZWVkIHRvIHdhc3RlIG1lbW9yeSBvbiB0aGVt LgorICogUmVtb3ZlIGtub3dsZWRnZSBhYm91dCB0cmFuc2FjdGlvbnMgd2UgdHJlYXQgYXMgY29t bWl0dGVkIGFuZCB0aGUgaW5pdGlhbAorICogcnVubmluZyB0cmFuc2FjdGlvbnMgdGhhdCBhcmUg c21hbGxlciB0aGFuIC0+eG1pbi4gVGhvc2Ugd29uJ3QgZXZlciBnZXQKKyAqIGNoZWNrZWQgdmlh IHRoZSAtPmNvbW1pdHRlZCBvciBJbml0aWFsUnVubmluZ1hhY3RzIGFycmF5LCByZXNwZWN0aXZl bHkuCisgKiBUaGUgY29tbWl0dGVkIHhpZHMgd2lsbCBnZXQgY2hlY2tlZCB2aWEgdGhlIGNsb2cg bWFjaGluZXJ5LgorICoKKyAqIFdlIGNhbiBpZGVhbGx5IHJlbW92ZSB0aGUgdHJhbnNhY3Rpb24g ZnJvbSBJbml0aWFsUnVubmluZ1hhY3RzIGFycmF5CisgKiBvbmNlIGl0IGlzIGZpbmlzaGVkIChj b21taXR0ZWQvYWJvcnRlZCkgYnV0IHRoYXQgY291bGQgYmUgY29zdGx5IGFzIHdlIG5lZWQKKyAq IHRvIG1haW50YWluIHRoZSB4aWRzIG9yZGVyIGluIHRoZSBhcnJheS4KICAqLwogc3RhdGljIHZv aWQKLVNuYXBCdWlsZFB1cmdlQ29tbWl0dGVkVHhuKFNuYXBCdWlsZCAqYnVpbGRlcikKK1NuYXBC dWlsZFB1cmdlT2xkZXJUeG4oU25hcEJ1aWxkICpidWlsZGVyKQogewogCWludAkJCW9mZjsKIAlU cmFuc2FjdGlvbklkICp3b3Jrc3BhY2U7CkBAIC05MzYsNiArOTcxLDQ5IEBAIFNuYXBCdWlsZFB1 cmdlQ29tbWl0dGVkVHhuKFNuYXBCdWlsZCAqYnVpbGRlcikKIAlidWlsZGVyLT5jb21taXR0ZWQu eGNudCA9IHN1cnZpdmluZ194aWRzOwogCiAJcGZyZWUod29ya3NwYWNlKTsKKworCS8qIFF1aWNr IGV4aXQgaWYgdGhlcmUgaXMgbm8gaW5pdGlhbCBydW5uaW5nIHRyYW5zYWN0aW9ucyAqLworCWlm IChOSW5pdGlhbFJ1bm5pbmdYYWN0cyA9PSAwKQorCQlyZXR1cm47CisKKwkvKiBib3VuZCBjaGVj ayBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgdHJhbnNhY3Rpb24gdG8gcmVtb3ZlICovCisJaWYg KCFOb3JtYWxUcmFuc2FjdGlvbklkUHJlY2VkZXMoSW5pdGlhbFJ1bm5pbmdYYWN0c1swXSwKKwkJ CQkJCQkJCSBidWlsZGVyLT54bWluKSkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBwdXJnZSB4aWRz IGluIEluaXRpYWxSdW5uaW5nWGFjdHMgYXMgd2VsbC4gVGhlIHB1cmdlZCBhcnJheSBtdXN0IGFs c28KKwkgKiBiZSBzb3J0ZWQgaW4geGlkQ29tcGFyYXRvciBvcmRlci4KKwkgKi8KKwl3b3Jrc3Bh Y2UgPQorCQlNZW1vcnlDb250ZXh0QWxsb2MoYnVpbGRlci0+Y29udGV4dCwKKwkJCQkJCSAgIE5J bml0aWFsUnVubmluZ1hhY3RzICogc2l6ZW9mKFRyYW5zYWN0aW9uSWQpKTsKKwlzdXJ2aXZpbmdf eGlkcyA9IDA7CisJZm9yIChvZmYgPSAwOyBvZmYgPCBOSW5pdGlhbFJ1bm5pbmdYYWN0czsgb2Zm KyspCisJeworCQlpZiAoTm9ybWFsVHJhbnNhY3Rpb25JZFByZWNlZGVzKEluaXRpYWxSdW5uaW5n WGFjdHNbb2ZmXSwKKwkJCQkJCQkJCQlidWlsZGVyLT54bWluKSkKKwkJCTsJCQkJCS8qIHJlbW92 ZSAqLworCQllbHNlCisJCQl3b3Jrc3BhY2Vbc3Vydml2aW5nX3hpZHMrK10gPSBJbml0aWFsUnVu bmluZ1hhY3RzW29mZl07CisJfQorCisJaWYgKHN1cnZpdmluZ194aWRzID4gMCkKKwkJbWVtY3B5 KEluaXRpYWxSdW5uaW5nWGFjdHMsIHdvcmtzcGFjZSwKKwkJCSAgIHNpemVvZihUcmFuc2FjdGlv bklkKSAqIHN1cnZpdmluZ194aWRzKTsKKwllbHNlCisJeworCQlwZnJlZShJbml0aWFsUnVubmlu Z1hhY3RzKTsKKwkJSW5pdGlhbFJ1bm5pbmdYYWN0cyA9IE5VTEw7CisJfQorCisJZWxvZyhERUJV RzMsICJwdXJnZWQgaW5pdGlhbCBydW5uaW5nIHRyYW5zYWN0aW9ucyBmcm9tICV1IHRvICV1LCBv bGRlc3QgcnVubmluZyB4aWQgJXUiLAorCQkgKHVpbnQzMikgTkluaXRpYWxSdW5uaW5nWGFjdHMs CisJCSAodWludDMyKSBzdXJ2aXZpbmdfeGlkcywKKwkJIGJ1aWxkZXItPnhtaW4pOworCisJTklu aXRpYWxSdW5uaW5nWGFjdHMgPSBzdXJ2aXZpbmdfeGlkczsKKwlwZnJlZSh3b3Jrc3BhY2UpOwog fQogCiAvKgpAQCAtMTE0Myw3ICsxMjIxLDcgQEAgU25hcEJ1aWxkUHJvY2Vzc1J1bm5pbmdYYWN0 cyhTbmFwQnVpbGQgKmJ1aWxkZXIsIFhMb2dSZWNQdHIgbHNuLCB4bF9ydW5uaW5nX3hhY3QKIAli dWlsZGVyLT54bWluID0gcnVubmluZy0+b2xkZXN0UnVubmluZ1hpZDsKIAogCS8qIFJlbW92ZSB0 cmFuc2FjdGlvbnMgd2UgZG9uJ3QgbmVlZCB0byBrZWVwIHRyYWNrIG9mZiBhbnltb3JlICovCi0J U25hcEJ1aWxkUHVyZ2VDb21taXR0ZWRUeG4oYnVpbGRlcik7CisJU25hcEJ1aWxkUHVyZ2VPbGRl clR4bihidWlsZGVyKTsKIAogCS8qCiAJICogQWR2YW5jZSB0aGUgeG1pbiBsaW1pdCBmb3IgdGhl IGN1cnJlbnQgcmVwbGljYXRpb24gc2xvdCwgdG8gYWxsb3cKQEAgLTEyOTQsNiArMTM3MiwyMCBA QCBTbmFwQnVpbGRGaW5kU25hcHNob3QoU25hcEJ1aWxkICpidWlsZGVyLCBYTG9nUmVjUHRyIGxz biwgeGxfcnVubmluZ194YWN0cyAqcnVubgogCWVsc2UgaWYgKCFidWlsZGVyLT5idWlsZGluZ19m dWxsX3NuYXBzaG90ICYmCiAJCQkgU25hcEJ1aWxkUmVzdG9yZShidWlsZGVyLCBsc24pKQogCXsK KwkJaW50CQkJbnhhY3RzID0gcnVubmluZy0+c3VieGNudCArIHJ1bm5pbmctPnhjbnQ7CisJCVNp emUJCXN6ID0gc2l6ZW9mKFRyYW5zYWN0aW9uSWQpICogbnhhY3RzOworCisJCS8qCisJCSAqIFJl bWVtYmVyIHRoZSB0cmFuc2FjdGlvbnMgYW5kIHN1YnRyYW5zYWN0aW9ucyB0aGF0IHdlcmUgcnVu bmluZworCQkgKiB3aGVuIHhsX3J1bm5pbmdfeGFjdHMgcmVjb3JkIHRoYXQgd2UgZGVjb2RlZCB3 YXMgd3JpdHRlbi4gV2UgdXNlCisJCSAqIHRoaXMgbGF0ZXIgdG8gaWRlbnRpZnkgdGhlIHRyYW5z YWN0aW9ucyBoYXZlIHBlcmZvcm1lZCBjYXRhbG9nCisJCSAqIGNoYW5nZXMuIFNlZSBTbmFwQnVp bGRYaWRTZXRDYXRhbG9nQ2hhbmdlcy4KKwkJICovCisJCU5Jbml0aWFsUnVubmluZ1hhY3RzID0g bnhhY3RzOworCQlJbml0aWFsUnVubmluZ1hhY3RzID0gTWVtb3J5Q29udGV4dEFsbG9jKGJ1aWxk ZXItPmNvbnRleHQsIHN6KTsKKwkJbWVtY3B5KEluaXRpYWxSdW5uaW5nWGFjdHMsIHJ1bm5pbmct PnhpZHMsIHN6KTsKKwkJcXNvcnQoSW5pdGlhbFJ1bm5pbmdYYWN0cywgbnhhY3RzLCBzaXplb2Yo VHJhbnNhY3Rpb25JZCksIHhpZENvbXBhcmF0b3IpOworCiAJCS8qIHRoZXJlIHdvbid0IGJlIGFu eSBzdGF0ZSB0byBjbGVhbnVwICovCiAJCXJldHVybiBmYWxzZTsKIAl9CkBAIC0xOTk2LDMgKzIw ODgsMzIgQEAgQ2hlY2tQb2ludFNuYXBCdWlsZCh2b2lkKQogCX0KIAlGcmVlRGlyKHNuYXBfZGly KTsKIH0KKworLyoKKyAqIE1hcmsgdGhlIHRyYW5zYWN0aW9uIGFzIGNvbnRhaW5pbmcgY2F0YWxv ZyBjaGFuZ2VzLiBJbiBhZGRpdGlvbiwgaWYgdGhlCisgKiBnaXZlbiB4aWQgaXMgaW4gdGhlIGxp c3Qgb2YgdGhlIGluaXRpYWwgcnVubmluZyB4YWN0cywgd2UgbWFyayBpdHMKKyAqIHN1YnRyYW5z YWN0aW9ucyBhcyB3ZWxsLiBTZWUgY29tbWVudHMgZm9yIE5Jbml0aWFsUnVubmluZ1hhY3RzIGFu ZAorICogSW5pdGlhbFJ1bm5pbmdYYWN0cyBmb3IgYWRkaXRpb25hbCBpbmZvLgorICovCit2b2lk CitTbmFwQnVpbGRYaWRTZXRDYXRhbG9nQ2hhbmdlcyhTbmFwQnVpbGQgKmJ1aWxkZXIsIFRyYW5z YWN0aW9uSWQgeGlkLCBpbnQgc3VieGNudCwKKwkJCQkJCQkgIFRyYW5zYWN0aW9uSWQgKnN1Ynhh Y3RzLCBYTG9nUmVjUHRyIGxzbikKK3sKKwlSZW9yZGVyQnVmZmVyWGlkU2V0Q2F0YWxvZ0NoYW5n ZXMoYnVpbGRlci0+cmVvcmRlciwgeGlkLCBsc24pOworCisJLyogU2tpcCBpZiB0aGVyZSBpcyBu byBpbml0aWFsIHJ1bm5pbmcgeGFjdHMgaW5mb3JtYXRpb24gKi8KKwlpZiAoTkluaXRpYWxSdW5u aW5nWGFjdHMgPT0gMCkKKwkJcmV0dXJuOworCisJaWYgKGJzZWFyY2goJnhpZCwgSW5pdGlhbFJ1 bm5pbmdYYWN0cywgTkluaXRpYWxSdW5uaW5nWGFjdHMsCisJCQkJc2l6ZW9mKFRyYW5zYWN0aW9u SWQpLCB4aWRDb21wYXJhdG9yKSAhPSBOVUxMKQorCXsKKwkJaW50CQlpOworCisJCWZvciAoaSA9 IDA7IGkgPCBzdWJ4Y250OyBpKyspCisJCXsKKwkJCVJlb3JkZXJCdWZmZXJBc3NpZ25DaGlsZChi dWlsZGVyLT5yZW9yZGVyLCB4aWQsIHN1YnhhY3RzW2ldLCBsc24pOworCQkJUmVvcmRlckJ1ZmZl clhpZFNldENhdGFsb2dDaGFuZ2VzKGJ1aWxkZXItPnJlb3JkZXIsIHN1YnhhY3RzW2ldLCBsc24p OworCQl9CisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc25hcGJ1 aWxkLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbmFwYnVpbGQuaAppbmRleCAxZGY2NmEz Yzc1Li40ZGYzYzNmMmY3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbmFw YnVpbGQuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbmFwYnVpbGQuaApAQCAtODgs NCArODgsNyBAQCBleHRlcm4gdm9pZCBTbmFwQnVpbGRQcm9jZXNzUnVubmluZ1hhY3RzKFNuYXBC dWlsZCAqYnVpbGRlciwgWExvZ1JlY1B0ciBsc24sCiAJCQkJCQkJIHN0cnVjdCB4bF9ydW5uaW5n X3hhY3RzICpydW5uaW5nKTsKIGV4dGVybiB2b2lkIFNuYXBCdWlsZFNlcmlhbGl6YXRpb25Qb2lu dChTbmFwQnVpbGQgKmJ1aWxkZXIsIFhMb2dSZWNQdHIgbHNuKTsKIAorZXh0ZXJuIHZvaWQgU25h cEJ1aWxkWGlkU2V0Q2F0YWxvZ0NoYW5nZXMoU25hcEJ1aWxkICpidWlsZGVyLCBUcmFuc2FjdGlv bklkIHhpZCwKKwkJCQkJCQkJCQkgIGludCBzdWJ4Y250LCBUcmFuc2FjdGlvbklkICpzdWJ4YWN0 cywKKwkJCQkJCQkJCQkgIFhMb2dSZWNQdHIgbHNuKTsKICNlbmRpZgkJCQkJCQkvKiBTTkFQQlVJ TERfSCAqLwotLSAKMi4yNC4zIChBcHBsZSBHaXQtMTI4KQoK --000000000000f352e005e5517a40 Content-Type: application/octet-stream; name="REL10_v13-0001-Fix-catalog-lookup-with-the-wrong-snapshot-durin.patch" Content-Disposition: attachment; filename="REL10_v13-0001-Fix-catalog-lookup-with-the-wrong-snapshot-durin.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l6db4dli6 RnJvbSA5NzIyZDM1N2E3MDRmZGQzYWZmNjQ0OWUyZWU0MjQ0NGZmODdmNmZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXNhaGlrbyBTYXdhZGEgPHNhd2FkYS5tc2hrQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCAyNSBKdWwgMjAyMiAxNDowMjo1MCArMDkwMApTdWJqZWN0OiBbUEFUQ0gg djEzXSBGaXggY2F0YWxvZyBsb29rdXAgd2l0aCB0aGUgd3Jvbmcgc25hcHNob3QgZHVyaW5nIGxv Z2ljYWwKIGRlY29kaW5nLgoKUHJldmlvdXNseSwgd2UgcmVsaWVkIG9uIEhFQVAyX05FV19DSUQg cmVjb3JkcyBhbmQgWEFDVF9JTlZBTElEQVRJT04KcmVjb3JkcyB0byBrbm93IGlmIHRoZSB0cmFu c2FjdGlvbiBoYXMgbW9kaWZpZWQgdGhlIGNhdGFsb2csIGFuZCB0aGF0CmluZm9ybWF0aW9uIGlz IG5vdCBzZXJpYWxpemVkIHRvIHNuYXBzaG90LiBUaGVyZWZvcmUsIGFmdGVyIHRoZSByZXN0YXJ0 LAppZiB0aGUgbG9naWNhbCBkZWNvZGluZyBkZWNvZGVzIG9ubHkgdGhlIGNvbW1pdCByZWNvcmQg b2YgdGhlIHRyYW5zYWN0aW9uCnRoYXQgaGFzIGFjdHVhbGx5IG1vZGlmaWVkIGEgY2F0YWxvZywg d2Ugd2lsbCBtaXNzIGFkZGluZyBpdHMgWElEIHRvIHRoZQpzbmFwc2hvdC4gVGh1cywgd2Ugd2ls bCBlbmQgdXAgbG9va2luZyBhdCBjYXRhbG9ncyB3aXRoIHRoZSB3cm9uZwpzbmFwc2hvdC4KClRv IGZpeCB0aGlzIHByb2JsZW0sIHRoaXMgY2hhbmdlcyB0aGUgc25hcHNob3QgYnVpbGRlciBzbyB0 aGF0IGl0CnJlbWVtYmVycyB0aGUgbGFzdC1ydW5uaW5nLXhhY3RzIGxpc3Qgb2YgdGhlIGRlY29k ZWQgUlVOTklOR19YQUNUUyByZWNvcmQKYWZ0ZXIgcmVzdG9yaW5nIHRoZSBwcmV2aW91c2x5IHNl cmlhbGl6ZWQgc25hcHNob3QuIFRoZW4sIHdlIG1hcmsgdGhlCnRyYW5zYWN0aW9uIGFzIGNvbnRh aW5pbmcgY2F0YWxvZyBjaGFuZ2VzIGlmIGl0J3MgaW4gdGhlIGxpc3Qgb2YgaW5pdGlhbApydW5u aW5nIHRyYW5zYWN0aW9ucyBhbmQgaXRzIGNvbW1pdCByZWNvcmQgaGFzIFhBQ1RfWElORk9fSEFT X0lOVkFMUy4gVG8KYXZvaWQgQUJJIGJyZWFrYWdlLCB3ZSBzdG9yZSB0aGUgYXJyYXkgb2YgdGhl IGluaXRpYWwgcnVubmluZyB0cmFuc2FjdGlvbnMKaW4gdGhlIHN0YXRpYyB2YXJpYWJsZXMgSW5p dGlhbFJ1bm5pbmdYYWN0cyBhbmQgTkluaXRpYWxSdW5uaW5nWGFjdHMsCmluc3RlYWQgb2Ygc3Rv cmluZyB0aG9zZSBpbiBTbmFwQnVpbGQgb3IgUmVvcmRlckJ1ZmZlci4KClRoaXMgYXBwcm9hY2gg aGFzIGEgZmFsc2UgcG9zaXRpdmU7IHdlIGNvdWxkIGVuZCB1cCBhZGRpbmcgdGhlIHRyYW5zYWN0 aW9uCnRoYXQgZGlkbid0IGNoYW5nZSBjYXRhbG9nIHRvIHRoZSBzbmFwc2hvdCBzaW5jZSB3ZSBj YW5ub3QgZGlzdGluZ3Vpc2gKd2hldGhlciB0aGUgdHJhbnNhY3Rpb24gaGFzIGNhdGFsb2cgY2hh bmdlcyBvbmx5IGJ5IGNoZWNraW5nIHRoZSBDT01NSVQKcmVjb3JkLiBJdCBkb2Vzbid0IGhhdmUg dGhlIGluZm9ybWF0aW9uIG9uIHdoaWNoIChzdWIpIHRyYW5zYWN0aW9uIGhhcwpjYXRhbG9nIGNo YW5nZXMsIGFuZCBYQUNUX1hJTkZPX0hBU19JTlZBTFMgZG9lc24ndCBuZWNlc3NhcmlseSBpbmRp Y2F0ZQp0aGF0IHRoZSB0cmFuc2FjdGlvbiBoYXMgY2F0YWxvZyBjaGFuZ2UuIEJ1dCB0aGF0IHdv bid0IGJlIGEgcHJvYmxlbSBzaW5jZQp3ZSB1c2Ugc25hcHNob3QgYnVpbHQgZHVyaW5nIGRlY29k aW5nIG9ubHkgdG8gcmVhZCBzeXN0ZW0gY2F0YWxvZ3MuCgpPbiB0aGUgbWFzdGVyIGJyYW5jaCwg d2UgdG9vayBhIG1vcmUgZnV0dXJlLXByb29mIGFwcHJvYWNoIGJ5IHdyaXRpbmcKY2F0YWxvZyBt b2RpZnlpbmcgdHJhbnNhY3Rpb25zIHRvIHRoZSBzZXJpYWxpemVkIHNuYXBzaG90IHdoaWNoIGF2 b2lkcyB0aGUKYWJvdmUgZmFsc2UgcG9zaXRpdmUuIEJ1dCB3ZSBjYW5ub3QgYmFja3BhdGNoIGl0 IGJlY2F1c2Ugb2YgYSBjaGFuZ2UgaW4KdGhlIFNuYXBCdWlsZC4KClJlcG9ydGVkLWJ5OiBNaWtl IE9oCkF1dGhvcjogTWFzYWhpa28gU2F3YWRhClJldmlld2VkLWJ5OiBBbWl0IEthcGlsYSwgU2hp IHl1LCBUYWthbWljaGkgT3N1bWksIEt5b3Rhcm8gSG9yaWd1Y2hpLCBCZXJ0cmFuZCBEcm91dm90 LCBBaHNhbiBIYWRpCkJhY2twYXRjaC10aHJvdWdoOiAxMApEaXNjdXNzaW9uOiBodHRwczovL3Bv c3Rnci5lcy9tLzgxRDBEOEIwLUU3QzQtNDk5OS1CNjE2LTFFNTAwNERCRENEMiU0MGFtYXpvbi5j b20KLS0tCiBjb250cmliL3Rlc3RfZGVjb2RpbmcvTWFrZWZpbGUgICAgICAgICAgICAgICAgfCAg IDIgKy0KIC4uLi9leHBlY3RlZC9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5vdXQgICAgICB8ICA0 MSArKysrKysKIC4uLi9zcGVjcy9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5zcGVjICAgICAgICB8 ICAzOSArKysrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyAgICAg IHwgIDE2ICsrLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbmFwYnVpbGQuYyAg IHwgMTM1ICsrKysrKysrKysrKysrKysrLQogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc25hcGJ1 aWxkLmggICAgICAgICAgIHwgICAzICsKIDYgZmlsZXMgY2hhbmdlZCwgMjI3IGluc2VydGlvbnMo KyksIDkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi90ZXN0X2RlY29k aW5nL2V4cGVjdGVkL2NhdGFsb2dfY2hhbmdlX3NuYXBzaG90Lm91dAogY3JlYXRlIG1vZGUgMTAw NjQ0IGNvbnRyaWIvdGVzdF9kZWNvZGluZy9zcGVjcy9jYXRhbG9nX2NoYW5nZV9zbmFwc2hvdC5z cGVjCgpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL01ha2VmaWxlIGIvY29udHJp Yi90ZXN0X2RlY29kaW5nL01ha2VmaWxlCmluZGV4IDJkYjJiMjc3NGIuLjczYmMwZmUxZmUgMTAw NjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9NYWtlZmlsZQorKysgYi9jb250cmliL3Rl c3RfZGVjb2RpbmcvTWFrZWZpbGUKQEAgLTUxLDcgKzUxLDcgQEAgcmVncmVzc2NoZWNrLWluc3Rh bGwtZm9yY2U6IHwgc3VibWFrZS1yZWdyZXNzIHN1Ym1ha2UtdGVzdF9kZWNvZGluZyB0ZW1wLWlu c3RhbGwKIAkgICAgJChSRUdSRVNTQ0hFQ0tTKQogCiBJU09MQVRJT05DSEVDS1M9bXhhY3QgZGVs YXllZF9zdGFydHVwIG9uZGlza19zdGFydHVwIGNvbmN1cnJlbnRfZGRsX2RtbCBcCi0Jb2xkZXN0 X3htaW4gc25hcHNob3RfdHJhbnNmZXIgc3VieGFjdF93aXRob3V0X3RvcAorCW9sZGVzdF94bWlu IHNuYXBzaG90X3RyYW5zZmVyIHN1YnhhY3Rfd2l0aG91dF90b3AgY2F0YWxvZ19jaGFuZ2Vfc25h cHNob3QKIAogaXNvbGF0aW9uY2hlY2s6IHwgc3VibWFrZS1pc29sYXRpb24gc3VibWFrZS10ZXN0 X2RlY29kaW5nIHRlbXAtaW5zdGFsbAogCSQocGdfaXNvbGF0aW9uX3JlZ3Jlc3NfY2hlY2spIFwK ZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9jYXRhbG9nX2NoYW5n ZV9zbmFwc2hvdC5vdXQgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvY2F0YWxvZ19j aGFuZ2Vfc25hcHNob3Qub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu LjE1Zjk1NDBiM2YKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhw ZWN0ZWQvY2F0YWxvZ19jaGFuZ2Vfc25hcHNob3Qub3V0CkBAIC0wLDAgKzEsNDEgQEAKK1BhcnNl ZCB0ZXN0IHNwZWMgd2l0aCAyIHNlc3Npb25zCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzMF9p bml0IHMwX2JlZ2luIHMwX3NhdmVwb2ludCBzMF90cnVuY2F0ZSBzMV9jaGVja3BvaW50IHMxX2dl dF9jaGFuZ2VzIHMwX2NvbW1pdCBzMF9iZWdpbiBzMF9pbnNlcnQgczFfY2hlY2twb2ludCBzMV9n ZXRfY2hhbmdlcyBzMF9jb21taXQgczFfZ2V0X2NoYW5nZXMKK3N0ZXAgczBfaW5pdDogU0VMRUNU ICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ2lzb2xhdGlv bl9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnKTsKKz9jb2x1bW4/CistLS0tLS0tLQoraW5pdCAgICAK KygxIHJvdykKKworc3RlcCBzMF9iZWdpbjogQkVHSU47CitzdGVwIHMwX3NhdmVwb2ludDogU0FW RVBPSU5UIHNwMTsKK3N0ZXAgczBfdHJ1bmNhdGU6IFRSVU5DQVRFIHRibDE7CitzdGVwIHMxX2No ZWNrcG9pbnQ6IENIRUNLUE9JTlQ7CitzdGVwIHMxX2dldF9jaGFuZ2VzOiBTRUxFQ1QgZGF0YSBG Uk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnaXNvbGF0aW9uX3Nsb3QnLCBOVUxMLCBO VUxMLCAnc2tpcC1lbXB0eS14YWN0cycsICcxJywgJ2luY2x1ZGUteGlkcycsICcwJyk7CitkYXRh CistLS0tCisoMCByb3dzKQorCitzdGVwIHMwX2NvbW1pdDogQ09NTUlUOworc3RlcCBzMF9iZWdp bjogQkVHSU47CitzdGVwIHMwX2luc2VydDogSU5TRVJUIElOVE8gdGJsMSBWQUxVRVMgKDEpOwor c3RlcCBzMV9jaGVja3BvaW50OiBDSEVDS1BPSU5UOworc3RlcCBzMV9nZXRfY2hhbmdlczogU0VM RUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ2lzb2xhdGlvbl9zbG90 JywgTlVMTCwgTlVMTCwgJ3NraXAtZW1wdHkteGFjdHMnLCAnMScsICdpbmNsdWRlLXhpZHMnLCAn MCcpOworZGF0YQorLS0tLQorKDAgcm93cykKKworc3RlcCBzMF9jb21taXQ6IENPTU1JVDsKK3N0 ZXAgczFfZ2V0X2NoYW5nZXM6IFNFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9zbG90X2dldF9j aGFuZ2VzKCdpc29sYXRpb25fc2xvdCcsIE5VTEwsIE5VTEwsICdza2lwLWVtcHR5LXhhY3RzJywg JzEnLCAnaW5jbHVkZS14aWRzJywgJzAnKTsKK2RhdGEgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0JFR0lOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK3RhYmxlIHB1Ymxp Yy50YmwxOiBJTlNFUlQ6IHZhbDFbaW50ZWdlcl06MSB2YWwyW2ludGVnZXJdOm51bGwKK0NPTU1J VCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK KygzIHJvd3MpCisKKz9jb2x1bW4/CistLS0tLS0tLQorc3RvcCAgICAKKygxIHJvdykKKwpkaWZm IC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL3NwZWNzL2NhdGFsb2dfY2hhbmdlX3NuYXBz aG90LnNwZWMgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3BlY3MvY2F0YWxvZ19jaGFuZ2Vfc25h cHNob3Quc3BlYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yOTcxZGRj NjljCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3NwZWNzL2NhdGFs b2dfY2hhbmdlX3NuYXBzaG90LnNwZWMKQEAgLTAsMCArMSwzOSBAQAorIyBUZXN0IGRlY29kaW5n IG9ubHkgdGhlIGNvbW1pdCByZWNvcmQgb2YgdGhlIHRyYW5zYWN0aW9uIHRoYXQgaGF2ZQorIyBt b2RpZmllZCBjYXRhbG9ncy4KK3NldHVwCit7CisgICAgRFJPUCBUQUJMRSBJRiBFWElTVFMgdGJs MTsKKyAgICBDUkVBVEUgVEFCTEUgdGJsMSAodmFsMSBpbnRlZ2VyLCB2YWwyIGludGVnZXIpOwor fQorCit0ZWFyZG93bgoreworICAgIERST1AgVEFCTEUgdGJsMTsKKyAgICBTRUxFQ1QgJ3N0b3An IEZST00gcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdpc29sYXRpb25fc2xvdCcpOworfQorCitz ZXNzaW9uICJzMCIKK3NldHVwIHsgU0VUIHN5bmNocm9ub3VzX2NvbW1pdD1vbjsgfQorc3RlcCAi czBfaW5pdCIgeyBTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRp b25fc2xvdCgnaXNvbGF0aW9uX3Nsb3QnLCAndGVzdF9kZWNvZGluZycpOyB9CitzdGVwICJzMF9i ZWdpbiIgeyBCRUdJTjsgfQorc3RlcCAiczBfc2F2ZXBvaW50IiB7IFNBVkVQT0lOVCBzcDE7IH0K K3N0ZXAgInMwX3RydW5jYXRlIiB7IFRSVU5DQVRFIHRibDE7IH0KK3N0ZXAgInMwX2luc2VydCIg eyBJTlNFUlQgSU5UTyB0YmwxIFZBTFVFUyAoMSk7IH0KK3N0ZXAgInMwX2NvbW1pdCIgeyBDT01N SVQ7IH0KKworc2Vzc2lvbiAiczEiCitzZXR1cCB7IFNFVCBzeW5jaHJvbm91c19jb21taXQ9b247 IH0KK3N0ZXAgInMxX2NoZWNrcG9pbnQiIHsgQ0hFQ0tQT0lOVDsgfQorc3RlcCAiczFfZ2V0X2No YW5nZXMiIHsgU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ2lz b2xhdGlvbl9zbG90JywgTlVMTCwgTlVMTCwgJ3NraXAtZW1wdHkteGFjdHMnLCAnMScsICdpbmNs dWRlLXhpZHMnLCAnMCcpOyB9CisKKyMgRm9yIHRoZSB0cmFuc2FjdGlvbiB0aGF0IFRSVU5DQVRF ZCB0aGUgdGFibGUgdGJsMSwgdGhlIGxhc3QgZGVjb2RpbmcgZGVjb2RlcworIyBvbmx5IGl0cyBD T01NSVQgcmVjb3JkLCBiZWNhdXNlIGl0IHN0YXJ0cyBmcm9tIHRoZSBSVU5OSU5HX1hBQ1RTIHJl Y29yZCBlbWl0dGVkCisjIGR1cmluZyB0aGUgZmlyc3QgY2hlY2twb2ludCBleGVjdXRpb24uICBU aGlzIHRyYW5zYWN0aW9uIG11c3QgYmUgbWFya2VkIGFzCisjIGNvbnRhaW5pbmcgY2F0YWxvZyBj aGFuZ2VzIHdoaWxlIGRlY29kaW5nIHRoZSBDT01NSVQgcmVjb3JkIGFuZCB0aGUgZGVjb2RpbmcK KyMgb2YgdGhlIElOU0VSVCByZWNvcmQgbXVzdCByZWFkIHRoZSBwZ19jbGFzcyB3aXRoIHRoZSBj b3JyZWN0IGhpc3RvcmljIHNuYXBzaG90LgorIworIyBOb3RlIHRoYXQgaW4gYSBjYXNlIHdoZXJl IGJnd3JpdGVyIHdyb3RlIHRoZSBSVU5OSU5HX1hBQ1RTIHJlY29yZCBiZXR3ZWVuICJzMF9jb21t aXQiCisjIGFuZCAiczBfYmVnaW4iLCB0aGlzIGRvZXNuJ3QgaGFwcGVuIGFzIHRoZSBkZWNvZGlu ZyBzdGFydHMgZnJvbSB0aGUgUlVOTklOR19YQUNUUworIyByZWNvcmQgd3JpdHRlbiBieSBiZ3dy aXRlci4gIE9uZSBtaWdodCB0aGluayB3ZSBjYW4gZWl0aGVyIHN0b3AgdGhlIGJnd3JpdGVyIG9y CisjIGluY3JlYXNlIExPR19TTkFQU0hPVF9JTlRFUlZBTF9NUyBidXQgaXQncyBub3QgcHJhY3Rp Y2FsIHZpYSB0ZXN0cy4KK3Blcm11dGF0aW9uICJzMF9pbml0IiAiczBfYmVnaW4iICJzMF9zYXZl cG9pbnQiICJzMF90cnVuY2F0ZSIgInMxX2NoZWNrcG9pbnQiICJzMV9nZXRfY2hhbmdlcyIgInMw X2NvbW1pdCIgInMwX2JlZ2luIiAiczBfaW5zZXJ0IiAiczFfY2hlY2twb2ludCIgInMxX2dldF9j aGFuZ2VzIiAiczBfY29tbWl0IiAiczFfZ2V0X2NoYW5nZXMiCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9kZWNvZGUuYwppbmRleCA2Zjg5MjBmNTJjLi4zMjMzMTA0ZmM5IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCisrKyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKQEAgLTU2MSw3ICs1NjEsMjEgQEAg RGVjb2RlQ29tbWl0KExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgWExvZ1JlY29yZEJ1ZmZl ciAqYnVmLAogCXsKIAkJUmVvcmRlckJ1ZmZlckFkZEludmFsaWRhdGlvbnMoY3R4LT5yZW9yZGVy LCB4aWQsIGJ1Zi0+b3JpZ3B0ciwKIAkJCQkJCQkJCSAgcGFyc2VkLT5ubXNncywgcGFyc2VkLT5t c2dzKTsKLQkJUmVvcmRlckJ1ZmZlclhpZFNldENhdGFsb2dDaGFuZ2VzKGN0eC0+cmVvcmRlciwg eGlkLCBidWYtPm9yaWdwdHIpOworCisJCS8qCisJCSAqIElmIHRoZSBDT01NSVQgcmVjb3JkIGhh cyBpbnZhbGlkYXRpb24gbWVzc2FnZXMsIGl0IGNvdWxkIGhhdmUgY2F0YWxvZworCQkgKiBjaGFu Z2VzLiBJdCBpcyBwb3NzaWJsZSB0aGF0IHdlIGRpZG4ndCBtYXJrIHRoaXMgdHJhbnNhY3Rpb24g YW5kCisJCSAqIGl0cyBzdWJ0cmFuc2FjdGlvbnMgYXMgY29udGFpbmluZyBjYXRhbG9nIGNoYW5n ZXMgd2hlbiB0aGUgZGVjb2RpbmcKKwkJICogc3RhcnRzIGZyb20gYSBjb21taXQgcmVjb3JkIHdp dGhvdXQgZGVjb2RpbmcgdGhlIHRyYW5zYWN0aW9uJ3Mgb3RoZXIKKwkJICogY2hhbmdlcy4gVGhl cmVmb3JlLCB3ZSBlbnN1cmUgdG8gbWFyayBzdWNoIHRyYW5zYWN0aW9ucyBhcyBjb250YWluaW5n CisJCSAqIGNhdGFsb2cgY2hhbmdlLgorCQkgKgorCQkgKiBUaGlzIG11c3QgYmUgZG9uZSBiZWZv cmUgU25hcEJ1aWxkQ29tbWl0VHhuKCkgc28gdGhhdCB3ZSBjYW4gaW5jbHVkZQorCQkgKiB0aGVz ZSB0cmFuc2FjdGlvbnMgaW4gdGhlIGhpc3RvcmljIHNuYXBzaG90LgorCQkgKi8KKwkJU25hcEJ1 aWxkWGlkU2V0Q2F0YWxvZ0NoYW5nZXMoY3R4LT5zbmFwc2hvdF9idWlsZGVyLCB4aWQsCisJCQkJ CQkJCQkgIHBhcnNlZC0+bnN1YnhhY3RzLCBwYXJzZWQtPnN1YnhhY3RzLAorCQkJCQkJCQkJICBi dWYtPm9yaWdwdHIpOwogCX0KIAogCVNuYXBCdWlsZENvbW1pdFR4bihjdHgtPnNuYXBzaG90X2J1 aWxkZXIsIGJ1Zi0+b3JpZ3B0ciwgeGlkLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9zbmFwYnVpbGQuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvc25hcGJ1aWxkLmMKaW5kZXggMTAxMGEyZTg2OS4uN2M2MzdhNDAxOSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbmFwYnVpbGQuYworKysgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3NuYXBidWlsZC5jCkBAIC0yNTgsOCArMjU4LDM4IEBA IHN0cnVjdCBTbmFwQnVpbGQKIHN0YXRpYyBSZXNvdXJjZU93bmVyIFNhdmVkUmVzb3VyY2VPd25l ckR1cmluZ0V4cG9ydCA9IE5VTEw7CiBzdGF0aWMgYm9vbCBFeHBvcnRJblByb2dyZXNzID0gZmFs c2U7CiAKLS8qIC0+Y29tbWl0dGVkIG1hbmlwdWxhdGlvbiAqLwotc3RhdGljIHZvaWQgU25hcEJ1 aWxkUHVyZ2VDb21taXR0ZWRUeG4oU25hcEJ1aWxkICpidWlsZGVyKTsKKy8qCisgKiBBcnJheSBv ZiB0cmFuc2FjdGlvbnMgYW5kIHN1YnRyYW5zYWN0aW9ucyB0aGF0IHdlcmUgcnVubmluZyB3aGVu CisgKiB0aGUgeGxfcnVubmluZ194YWN0cyByZWNvcmQgdGhhdCB3ZSBkZWNvZGVkIHdhcyB3cml0 dGVuLiBUaGUgYXJyYXkgaXMKKyAqIHNvcnRlZCBpbiB4aWRDb21wYXJhdG9yIG9yZGVyLiBXZSBy ZW1vdmUgeGlkcyBmcm9tIHRoaXMgYXJyYXkgd2hlbgorICogdGhleSBiZWNvbWUgb2xkIGVub3Vn aCB0byBtYXR0ZXIsIGFuZCB0aGVuIGl0IGV2ZW50dWFsbHkgYmVjb21lcyBlbXB0eS4KKyAqIFRo aXMgYXJyYXkgaXMgYWxsb2NhdGVkIGluIGJ1aWxkZXItPmNvbnRleHQgc28gaXRzIGxpZmV0aW1l IGlzIHRoZSBzYW1lCisgKiBhcyB0aGUgc25hcHNob3QgYnVpbGRlci4KKyAqCisgKiBXZSBub3Jt YWxseSByZWx5IG9uIHNvbWUgV0FMIHJlY29yZCB0eXBlcyBzdWNoIGFzIEhFQVAyX05FV19DSUQg dG8ga25vdworICogaWYgdGhlIHRyYW5zYWN0aW9uIGhhcyBjaGFuZ2VkIHRoZSBjYXRhbG9nLiBC dXQgaXQgY291bGQgaGFwcGVuIHRoYXQgdGhlCisgKiBsb2dpY2FsIGRlY29kaW5nIGRlY29kZXMg b25seSB0aGUgY29tbWl0IHJlY29yZCBvZiB0aGUgdHJhbnNhY3Rpb24gYWZ0ZXIKKyAqIHJlc3Rv cmluZyB0aGUgcHJldmlvdXNseSBzZXJpYWxpemVkIHNuYXBzaG90IGluIHdoaWNoIGNhc2Ugd2Ug d2lsbCBtaXNzCisgKiBhZGRpbmcgdGhlIHhpZCB0byB0aGUgc25hcHNob3QgYW5kIGVuZCB1cCBs b29raW5nIGF0IHRoZSBjYXRhbG9ncyB3aXRoIHRoZQorICogd3Jvbmcgc25hcHNob3QuCisgKgor ICogTm93IHRvIGF2b2lkIHRoZSBhYm92ZSBwcm9ibGVtLCBpZiB0aGUgQ09NTUlUIHJlY29yZCBv ZiB0aGUgeGlkIGxpc3RlZCBpbgorICogSW5pdGlhbFJ1bm5pbmdYYWN0cyBoYXMgWEFDVF9YSU5G T19IQVNfSU5WQUxTIGZsYWcsIHdlIG1hcmsgYm90aCB0aGUgdG9wCisgKiB0cmFuc2FjdGlvbiBh bmQgaXRzIHN1YnN0cmFuc2FjdGlvbnMgYXMgY29udGFpbmluZyBjYXRhbG9nIGNoYW5nZXMuCisg KgorICogV2UgY291bGQgZW5kIHVwIGFkZGluZyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBkaWRuJ3Qg Y2hhbmdlIGNhdGFsb2cKKyAqIHRvIHRoZSBzbmFwc2hvdCBzaW5jZSB3ZSBjYW5ub3QgZGlzdGlu Z3Vpc2ggd2hldGhlciB0aGUgdHJhbnNhY3Rpb24KKyAqIGhhcyBjYXRhbG9nIGNoYW5nZXMgb25s eSBieSBjaGVja2luZyB0aGUgQ09NTUlUIHJlY29yZC4gSXQgZG9lc24ndAorICogaGF2ZSB0aGUg aW5mb3JtYXRpb24gb24gd2hpY2ggKHN1YikgdHJhbnNhY3Rpb24gaGFzIGNhdGFsb2cgY2hhbmdl cywKKyAqIGFuZCBYQUNUX1hJTkZPX0hBU19JTlZBTFMgZG9lc24ndCBuZWNlc3NhcmlseSBpbmRp Y2F0ZSB0aGF0IHRoZQorICogdHJhbnNhY3Rpb24gaGFzIGNhdGFsb2cgY2hhbmdlLiBCdXQgdGhh dCB3b24ndCBiZSBhIHByb2JsZW0gc2luY2Ugd2UKKyAqIHVzZSBzbmFwc2hvdCBidWlsdCBkdXJp bmcgZGVjb2Rpbmcgb25seSBmb3IgcmVhZGluZyBzeXN0ZW0gY2F0YWxvZ3MuCisgKi8KK3N0YXRp YyBUcmFuc2FjdGlvbklkICpJbml0aWFsUnVubmluZ1hhY3RzID0gTlVMTDsKK3N0YXRpYyBpbnQJ TkluaXRpYWxSdW5uaW5nWGFjdHMgPSAwOworCisvKiAtPmNvbW1pdHRlZCBhbmQgSW5pdGFpbFJ1 bm5pbmdYYWN0cyBtYW5pcHVsYXRpb24gKi8KK3N0YXRpYyB2b2lkIFNuYXBCdWlsZFB1cmdlT2xk ZXJUeG4oU25hcEJ1aWxkICpidWlsZGVyKTsKIAogLyogc25hcHNob3QgYnVpbGRpbmcvbWFuaXB1 bGF0aW9uL2Rpc3RyaWJ1dGlvbiBmdW5jdGlvbnMgKi8KIHN0YXRpYyBTbmFwc2hvdCBTbmFwQnVp bGRCdWlsZFNuYXBzaG90KFNuYXBCdWlsZCAqYnVpbGRlcik7CkBAIC04OTYsMTIgKzkyNiwxNyBA QCBTbmFwQnVpbGRBZGRDb21taXR0ZWRUeG4oU25hcEJ1aWxkICpidWlsZGVyLCBUcmFuc2FjdGlv bklkIHhpZCkKIH0KIAogLyoKLSAqIFJlbW92ZSBrbm93bGVkZ2UgYWJvdXQgdHJhbnNhY3Rpb25z IHdlIHRyZWF0IGFzIGNvbW1pdHRlZCB0aGF0IGFyZSBzbWFsbGVyCi0gKiB0aGFuIC0+eG1pbi4g VGhvc2Ugd29uJ3QgZXZlciBnZXQgY2hlY2tlZCB2aWEgdGhlIC0+Y29tbWl0dGVkIGFycmF5IGJ1 dCB2aWEKLSAqIHRoZSBjbG9nIG1hY2hpbmVyeSwgc28gd2UgZG9uJ3QgbmVlZCB0byB3YXN0ZSBt ZW1vcnkgb24gdGhlbS4KKyAqIFJlbW92ZSBrbm93bGVkZ2UgYWJvdXQgdHJhbnNhY3Rpb25zIHdl IHRyZWF0IGFzIGNvbW1pdHRlZCBhbmQgdGhlIGluaXRpYWwKKyAqIHJ1bm5pbmcgdHJhbnNhY3Rp b25zIHRoYXQgYXJlIHNtYWxsZXIgdGhhbiAtPnhtaW4uIFRob3NlIHdvbid0IGV2ZXIgZ2V0Cisg KiBjaGVja2VkIHZpYSB0aGUgLT5jb21taXR0ZWQgb3IgSW5pdGlhbFJ1bm5pbmdYYWN0cyBhcnJh eSwgcmVzcGVjdGl2ZWx5LgorICogVGhlIGNvbW1pdHRlZCB4aWRzIHdpbGwgZ2V0IGNoZWNrZWQg dmlhIHRoZSBjbG9nIG1hY2hpbmVyeS4KKyAqCisgKiBXZSBjYW4gaWRlYWxseSByZW1vdmUgdGhl IHRyYW5zYWN0aW9uIGZyb20gSW5pdGlhbFJ1bm5pbmdYYWN0cyBhcnJheQorICogb25jZSBpdCBp cyBmaW5pc2hlZCAoY29tbWl0dGVkL2Fib3J0ZWQpIGJ1dCB0aGF0IGNvdWxkIGJlIGNvc3RseSBh cyB3ZSBuZWVkCisgKiB0byBtYWludGFpbiB0aGUgeGlkcyBvcmRlciBpbiB0aGUgYXJyYXkuCiAg Ki8KIHN0YXRpYyB2b2lkCi1TbmFwQnVpbGRQdXJnZUNvbW1pdHRlZFR4bihTbmFwQnVpbGQgKmJ1 aWxkZXIpCitTbmFwQnVpbGRQdXJnZU9sZGVyVHhuKFNuYXBCdWlsZCAqYnVpbGRlcikKIHsKIAlp bnQJCQlvZmY7CiAJVHJhbnNhY3Rpb25JZCAqd29ya3NwYWNlOwpAQCAtOTM2LDYgKzk3MSw0OSBA QCBTbmFwQnVpbGRQdXJnZUNvbW1pdHRlZFR4bihTbmFwQnVpbGQgKmJ1aWxkZXIpCiAJYnVpbGRl ci0+Y29tbWl0dGVkLnhjbnQgPSBzdXJ2aXZpbmdfeGlkczsKIAogCXBmcmVlKHdvcmtzcGFjZSk7 CisKKwkvKiBRdWljayBleGl0IGlmIHRoZXJlIGlzIG5vIGluaXRpYWwgcnVubmluZyB0cmFuc2Fj dGlvbnMgKi8KKwlpZiAoTkluaXRpYWxSdW5uaW5nWGFjdHMgPT0gMCkKKwkJcmV0dXJuOworCisJ LyogYm91bmQgY2hlY2sgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHRyYW5zYWN0aW9uIHRvIHJl bW92ZSAqLworCWlmICghTm9ybWFsVHJhbnNhY3Rpb25JZFByZWNlZGVzKEluaXRpYWxSdW5uaW5n WGFjdHNbMF0sCisJCQkJCQkJCQkgYnVpbGRlci0+eG1pbikpCisJCXJldHVybjsKKworCS8qCisJ ICogcHVyZ2UgeGlkcyBpbiBJbml0aWFsUnVubmluZ1hhY3RzIGFzIHdlbGwuIFRoZSBwdXJnZWQg YXJyYXkgbXVzdCBhbHNvCisJICogYmUgc29ydGVkIGluIHhpZENvbXBhcmF0b3Igb3JkZXIuCisJ ICovCisJd29ya3NwYWNlID0KKwkJTWVtb3J5Q29udGV4dEFsbG9jKGJ1aWxkZXItPmNvbnRleHQs CisJCQkJCQkgICBOSW5pdGlhbFJ1bm5pbmdYYWN0cyAqIHNpemVvZihUcmFuc2FjdGlvbklkKSk7 CisJc3Vydml2aW5nX3hpZHMgPSAwOworCWZvciAob2ZmID0gMDsgb2ZmIDwgTkluaXRpYWxSdW5u aW5nWGFjdHM7IG9mZisrKQorCXsKKwkJaWYgKE5vcm1hbFRyYW5zYWN0aW9uSWRQcmVjZWRlcyhJ bml0aWFsUnVubmluZ1hhY3RzW29mZl0sCisJCQkJCQkJCQkJYnVpbGRlci0+eG1pbikpCisJCQk7 CQkJCQkvKiByZW1vdmUgKi8KKwkJZWxzZQorCQkJd29ya3NwYWNlW3N1cnZpdmluZ194aWRzKytd ID0gSW5pdGlhbFJ1bm5pbmdYYWN0c1tvZmZdOworCX0KKworCWlmIChzdXJ2aXZpbmdfeGlkcyA+ IDApCisJCW1lbWNweShJbml0aWFsUnVubmluZ1hhY3RzLCB3b3Jrc3BhY2UsCisJCQkgICBzaXpl b2YoVHJhbnNhY3Rpb25JZCkgKiBzdXJ2aXZpbmdfeGlkcyk7CisJZWxzZQorCXsKKwkJcGZyZWUo SW5pdGlhbFJ1bm5pbmdYYWN0cyk7CisJCUluaXRpYWxSdW5uaW5nWGFjdHMgPSBOVUxMOworCX0K KworCWVsb2coREVCVUczLCAicHVyZ2VkIGluaXRpYWwgcnVubmluZyB0cmFuc2FjdGlvbnMgZnJv bSAldSB0byAldSwgb2xkZXN0IHJ1bm5pbmcgeGlkICV1IiwKKwkJICh1aW50MzIpIE5Jbml0aWFs UnVubmluZ1hhY3RzLAorCQkgKHVpbnQzMikgc3Vydml2aW5nX3hpZHMsCisJCSBidWlsZGVyLT54 bWluKTsKKworCU5Jbml0aWFsUnVubmluZ1hhY3RzID0gc3Vydml2aW5nX3hpZHM7CisJcGZyZWUo d29ya3NwYWNlKTsKIH0KIAogLyoKQEAgLTExNDMsNyArMTIyMSw3IEBAIFNuYXBCdWlsZFByb2Nl c3NSdW5uaW5nWGFjdHMoU25hcEJ1aWxkICpidWlsZGVyLCBYTG9nUmVjUHRyIGxzbiwgeGxfcnVu bmluZ194YWN0CiAJYnVpbGRlci0+eG1pbiA9IHJ1bm5pbmctPm9sZGVzdFJ1bm5pbmdYaWQ7CiAK IAkvKiBSZW1vdmUgdHJhbnNhY3Rpb25zIHdlIGRvbid0IG5lZWQgdG8ga2VlcCB0cmFjayBvZmYg YW55bW9yZSAqLwotCVNuYXBCdWlsZFB1cmdlQ29tbWl0dGVkVHhuKGJ1aWxkZXIpOworCVNuYXBC dWlsZFB1cmdlT2xkZXJUeG4oYnVpbGRlcik7CiAKIAkvKgogCSAqIEFkdmFuY2UgdGhlIHhtaW4g bGltaXQgZm9yIHRoZSBjdXJyZW50IHJlcGxpY2F0aW9uIHNsb3QsIHRvIGFsbG93CkBAIC0xMjk0 LDYgKzEzNzIsMjAgQEAgU25hcEJ1aWxkRmluZFNuYXBzaG90KFNuYXBCdWlsZCAqYnVpbGRlciwg WExvZ1JlY1B0ciBsc24sIHhsX3J1bm5pbmdfeGFjdHMgKnJ1bm4KIAllbHNlIGlmICghYnVpbGRl ci0+YnVpbGRpbmdfZnVsbF9zbmFwc2hvdCAmJgogCQkJIFNuYXBCdWlsZFJlc3RvcmUoYnVpbGRl ciwgbHNuKSkKIAl7CisJCWludAkJCW54YWN0cyA9IHJ1bm5pbmctPnN1YnhjbnQgKyBydW5uaW5n LT54Y250OworCQlTaXplCQlzeiA9IHNpemVvZihUcmFuc2FjdGlvbklkKSAqIG54YWN0czsKKwor CQkvKgorCQkgKiBSZW1lbWJlciB0aGUgdHJhbnNhY3Rpb25zIGFuZCBzdWJ0cmFuc2FjdGlvbnMg dGhhdCB3ZXJlIHJ1bm5pbmcKKwkJICogd2hlbiB4bF9ydW5uaW5nX3hhY3RzIHJlY29yZCB0aGF0 IHdlIGRlY29kZWQgd2FzIHdyaXR0ZW4uIFdlIHVzZQorCQkgKiB0aGlzIGxhdGVyIHRvIGlkZW50 aWZ5IHRoZSB0cmFuc2FjdGlvbnMgaGF2ZSBwZXJmb3JtZWQgY2F0YWxvZworCQkgKiBjaGFuZ2Vz LiBTZWUgU25hcEJ1aWxkWGlkU2V0Q2F0YWxvZ0NoYW5nZXMuCisJCSAqLworCQlOSW5pdGlhbFJ1 bm5pbmdYYWN0cyA9IG54YWN0czsKKwkJSW5pdGlhbFJ1bm5pbmdYYWN0cyA9IE1lbW9yeUNvbnRl eHRBbGxvYyhidWlsZGVyLT5jb250ZXh0LCBzeik7CisJCW1lbWNweShJbml0aWFsUnVubmluZ1hh Y3RzLCBydW5uaW5nLT54aWRzLCBzeik7CisJCXFzb3J0KEluaXRpYWxSdW5uaW5nWGFjdHMsIG54 YWN0cywgc2l6ZW9mKFRyYW5zYWN0aW9uSWQpLCB4aWRDb21wYXJhdG9yKTsKKwogCQkvKiB0aGVy ZSB3b24ndCBiZSBhbnkgc3RhdGUgdG8gY2xlYW51cCAqLwogCQlyZXR1cm4gZmFsc2U7CiAJfQpA QCAtMTk5NywzICsyMDg5LDMyIEBAIENoZWNrUG9pbnRTbmFwQnVpbGQodm9pZCkKIAl9CiAJRnJl ZURpcihzbmFwX2Rpcik7CiB9CisKKy8qCisgKiBNYXJrIHRoZSB0cmFuc2FjdGlvbiBhcyBjb250 YWluaW5nIGNhdGFsb2cgY2hhbmdlcy4gSW4gYWRkaXRpb24sIGlmIHRoZQorICogZ2l2ZW4geGlk IGlzIGluIHRoZSBsaXN0IG9mIHRoZSBpbml0aWFsIHJ1bm5pbmcgeGFjdHMsIHdlIG1hcmsgaXRz CisgKiBzdWJ0cmFuc2FjdGlvbnMgYXMgd2VsbC4gU2VlIGNvbW1lbnRzIGZvciBOSW5pdGlhbFJ1 bm5pbmdYYWN0cyBhbmQKKyAqIEluaXRpYWxSdW5uaW5nWGFjdHMgZm9yIGFkZGl0aW9uYWwgaW5m by4KKyAqLwordm9pZAorU25hcEJ1aWxkWGlkU2V0Q2F0YWxvZ0NoYW5nZXMoU25hcEJ1aWxkICpi dWlsZGVyLCBUcmFuc2FjdGlvbklkIHhpZCwgaW50IHN1YnhjbnQsCisJCQkJCQkJICBUcmFuc2Fj dGlvbklkICpzdWJ4YWN0cywgWExvZ1JlY1B0ciBsc24pCit7CisJUmVvcmRlckJ1ZmZlclhpZFNl dENhdGFsb2dDaGFuZ2VzKGJ1aWxkZXItPnJlb3JkZXIsIHhpZCwgbHNuKTsKKworCS8qIFNraXAg aWYgdGhlcmUgaXMgbm8gaW5pdGlhbCBydW5uaW5nIHhhY3RzIGluZm9ybWF0aW9uICovCisJaWYg KE5Jbml0aWFsUnVubmluZ1hhY3RzID09IDApCisJCXJldHVybjsKKworCWlmIChic2VhcmNoKCZ4 aWQsIEluaXRpYWxSdW5uaW5nWGFjdHMsIE5Jbml0aWFsUnVubmluZ1hhY3RzLAorCQkJCXNpemVv ZihUcmFuc2FjdGlvbklkKSwgeGlkQ29tcGFyYXRvcikgIT0gTlVMTCkKKwl7CisJCWludAkJaTsK KworCQlmb3IgKGkgPSAwOyBpIDwgc3VieGNudDsgaSsrKQorCQl7CisJCQlSZW9yZGVyQnVmZmVy QXNzaWduQ2hpbGQoYnVpbGRlci0+cmVvcmRlciwgeGlkLCBzdWJ4YWN0c1tpXSwgbHNuKTsKKwkJ CVJlb3JkZXJCdWZmZXJYaWRTZXRDYXRhbG9nQ2hhbmdlcyhidWlsZGVyLT5yZW9yZGVyLCBzdWJ4 YWN0c1tpXSwgbHNuKTsKKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL3NuYXBidWlsZC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc25hcGJ1aWxkLmgK aW5kZXggYjk1ZjU2ZWVjMy4uN2E3OTZjZTEzNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vc25hcGJ1aWxkLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc25hcGJ1 aWxkLmgKQEAgLTg4LDQgKzg4LDcgQEAgZXh0ZXJuIHZvaWQgU25hcEJ1aWxkUHJvY2Vzc1J1bm5p bmdYYWN0cyhTbmFwQnVpbGQgKmJ1aWxkZXIsIFhMb2dSZWNQdHIgbHNuLAogCQkJCQkJCSBzdHJ1 Y3QgeGxfcnVubmluZ194YWN0cyAqcnVubmluZyk7CiBleHRlcm4gdm9pZCBTbmFwQnVpbGRTZXJp YWxpemF0aW9uUG9pbnQoU25hcEJ1aWxkICpidWlsZGVyLCBYTG9nUmVjUHRyIGxzbik7CiAKK2V4 dGVybiB2b2lkIFNuYXBCdWlsZFhpZFNldENhdGFsb2dDaGFuZ2VzKFNuYXBCdWlsZCAqYnVpbGRl ciwgVHJhbnNhY3Rpb25JZCB4aWQsCisJCQkJCQkJCQkJICBpbnQgc3VieGNudCwgVHJhbnNhY3Rp b25JZCAqc3VieGFjdHMsCisJCQkJCQkJCQkJICBYTG9nUmVjUHRyIGxzbik7CiAjZW5kaWYJCQkJ CQkJLyogU05BUEJVSUxEX0ggKi8KLS0gCjIuMjQuMyAoQXBwbGUgR2l0LTEyOCkKCg== --000000000000f352e005e5517a40--