Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tQKXs-001leh-TN for pgsql-hackers@arkaria.postgresql.org; Wed, 25 Dec 2024 06:07:01 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tQKXs-00BVLJ-4z for pgsql-hackers@arkaria.postgresql.org; Wed, 25 Dec 2024 06:06:59 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tQKXr-00BVL1-Ga for pgsql-hackers@lists.postgresql.org; Wed, 25 Dec 2024 06:06:59 +0000 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tQKXp-000S0v-2f for pgsql-hackers@lists.postgresql.org; Wed, 25 Dec 2024 06:06:58 +0000 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-2161eb95317so62694185ad.1 for ; Tue, 24 Dec 2024 22:06:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735106817; x=1735711617; darn=lists.postgresql.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=k6odsvEvKPy2DvSllOifTOZLUvnnDMlC42ZvAmNfvNI=; b=YNIcatnZm5DV4Q8cW8/9LuOV/ZssqpCSmsjI/4+LIp+d1DMUQi+6FyFwThJw+qkgSy UQUsjcmZncqe8zhWdM4KlkDNoih/vpSH6wWBN/252gjrO2yKH882fTSQLw4UDSc52fa3 r+saq8Y5GoRY9TgWnAt8fOoPqqfCuQzP3/OssHCK0Sb/gd0WY29dRWxbLYvDT8z7SKRt b8XA2O1ucU4WW+M1NcFvOzxhFsjnsuBvbqycLUQyjFEBg3f3rsCLkgjrq0LvJfl/02ob cMb30gi/qkZayQB4ps6Sowjtsz7SXm9aK16m7FC0YBC1gewxxsWNgTA8p4H9pBrpWdGt HCLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735106817; x=1735711617; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=k6odsvEvKPy2DvSllOifTOZLUvnnDMlC42ZvAmNfvNI=; b=v7VU/qkZZhHTp8K0J7SwnY1ituDLC76oZV/2MHZvEpjPuSKAjt8VxA6kv1oyYln64f r/uG376rdz2kzsb101wz5XfdnRnpl8taA13zNI7kxmf6L8nywPebPHPqNsnVkOVZROuh M1W9MnHEjaicqCsq1YE4S7mbeM8GDKhrj9AWPfQIoJ1st6jMQPAoHcqnRcXxXLzTmdu4 k0TO36GN9jYwjAGCz3u6V+xujxI4DHZCBlVznxX0GdJLcsGF8LEr5USaV7Sro9aK6T/9 hchbfySDkb/6FE+Om2LLTMkiXwn3zrh/3kZKdjdApT62xowIQxmD/vkKxKNcnJEuYGna bykQ== X-Gm-Message-State: AOJu0Ywx9bmDcaxY9/WKUPXYFee3wgA8u0Ia+YSvkf+9bjwcSkDukq6k DNcj7w437+Kvx3meF7neOQVjjbZ/Yvwg+tmkE/yA0pWKCswHCkPu X-Gm-Gg: ASbGncuuofvER3gQshh0lHE30uxwv8J86Ou8D7e0ItPJc81/4UhKlMuI5zidcZ/4tV4 18l1+zgnCaP8Tfk3c2TUJ3C0Zspp3JjWbQj5NMJKZkRhruavOf4oEWmm+3oJ4VX/sScDMSp+i5d eIy6v+WA+jChROjOe+PQneAfeFrPJJo44ttQFhOM8wcCERJ/qcZwSqSia1bo30vkDRH0DBb8j4L 9XQhb/jVnUy8ceAaq9f7RmCncsH2hLkzQ6E/EBR5oa4qaUZFp3Y4JGvGWwv+jW3GMSkflqKo4Zy lQ6/ihA4R5wAsQySrGgZXW/aWON3KYE0/9w= X-Google-Smtp-Source: AGHT+IFYG7fskIRNKiPeyNyX8yMNzJWgUZPyGtFii9NVHxYs2Lza+AyXlD8DXekc33/PAM7tRSHpHQ== X-Received: by 2002:a05:6a21:3a41:b0:1e0:d8c1:cfe2 with SMTP id adf61e73a8af0-1e5e08012e0mr30509705637.34.1735106816676; Tue, 24 Dec 2024 22:06:56 -0800 (PST) Received: from [10.10.20.106] (node-u7g.pool-101-109.dynamic.totinternet.net. [101.109.152.236]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72aad84eb34sm10647004b3a.87.2024.12.24.22.06.54 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 24 Dec 2024 22:06:55 -0800 (PST) Content-Type: multipart/mixed; boundary="------------J0P0OegHo0s0JNvMT1Jlln38" Message-ID: <8d43be7b-b647-49c7-b755-a2e53f56a1f7@gmail.com> Date: Wed, 25 Dec 2024 13:06:52 +0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Short-living Memory Context in the optimiser To: Michael Paquier Cc: PostgreSQL Hackers , Tom Lane References: <1f797d0e-4829-48b5-817e-2278466ed4ef@gmail.com> Content-Language: en-AU From: Andrei Lepikhov In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------J0P0OegHo0s0JNvMT1Jlln38 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 12/25/24 12:30, Michael Paquier wrote: > On Wed, Dec 25, 2024 at 11:56:24AM +0700, Andrei Lepikhov wrote: >> Here is a rebased and slightly commented Tom's patch separated from the >> discussion [1]. > > Seems to me that there is no patch? > -- > Michael Pardon me, patch attached. -- regards, Andrei Lepikhov --------------J0P0OegHo0s0JNvMT1Jlln38 Content-Type: text/x-patch; charset=UTF-8; name="v0-0001-Introduce-planner-temporary-memory-context.patch" Content-Disposition: attachment; filename="v0-0001-Introduce-planner-temporary-memory-context.patch" Content-Transfer-Encoding: base64 RnJvbSAxNmI0Mzg1NjYwODVlNGNlZWNmMzU4Yzk0MjA3NWE1Y2JkNGRkN2FjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmVpIFYuIExlcGlraG92IiA8bGVwaWhvdkBn bWFpbC5jb20+CkRhdGU6IFdlZCwgMjUgRGVjIDIwMjQgMTM6MDI6NTYgKzA3MDAKU3ViamVj dDogW1BBVENIIHYwXSBJbnRyb2R1Y2UgcGxhbm5lciB0ZW1wb3JhcnkgbWVtb3J5IGNvbnRl eHQuCgpUaGlzIG1lbW9yeSBjb250ZXh0IGlzIGRlZGljYXRlZCB0byBjdXR0aW5nIG9mZiBt ZW1vcnkgY29uc3VtcHRpb24gcGVha3MgaW4KYWNjaWRlbnRhbGx5IHNjYWxpbmcgb3BlcmF0 aW9ucywgbGlrZSBodWdlIGFycmF5IGVzdGltYXRpb25zIG9yIG1hc3NpdmUgY2xhdXNlCmVz dGltYXRpb25zIGNhdXNlZCBieSBhIHBhcmVudCBleHBhbnNpb24uCgpJdCBpbmNsdWRlcyAn ZGVwdGgnIGFuZCAndXNhZ2UnIHBhcmFtZXRlcnMuIFRoZSBmaXJzdCBvbmUgaXMgdXNlZCB0 byBkZXRlcm1pbmUKd2hldGhlciBpdCBpcyByZWFsbHkgc2FmZSB0byByZXNldCB0aGUgY29u dGV4dCBvciB3aGV0aGVyIGl0IGlzIHN0aWxsIHVzZWQKc29tZXdoZXJlIGluIHRoZSBjYWxs IHN0YWNrLgpBbm90aGVyIG9uZSBjb3VudHMgdGhlIG51bWJlciBvZiBvcGVyYXRpb25zIGl0 IHdhcyBpbnZvbHZlZCBpbi4gJ09wZXJhdGlvbicKaGVyZSBtZWFucyBub3QgYSBtZW1vcnkg YWxsb2NhdGlvbiBjYWxsIGJ1dCBhIGxvZ2ljYWwgb3BlcmF0aW9uLCBsaWtlIGEgc2luZ2xl CmNsYXVzZSBlc3RpbWF0aW9uLiBTbywgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgb3BlcmF0aW9u LCBJZiAnZGVwdGgnID0gMCwKdGhlIG9wdGltaXNlciBjYW4gY2xlYW4gdXAgdXNlZCBtZW1v cnkgaWYgdGhlIGNvdW50ZXIgaXMgYmlnIGVub3VnaC4KCldlIGNhbid0IHRyYWNrIHRoYXQg Y2xlYW5pbmcgbWVtb3J5IGlzbid0IHJlZmVyZW5jZWQgYnkgYW4gZXh0ZXJuYWwgb2JqZWN0 LgpTbywgaXQgaXMgdGhlIGRldmVsb3BlcidzIHJlc3BvbnNpYmlsaXR5IHRvIHB1dCBhbnkg cHJvZHVjdCBvZiB0aGlzIGNvbnRleHQKdXNhZ2UgaW4gYSBsb25nZXItbGl2aW5nIG1lbW9y eSBjb250ZXh0LgoKVGhlIGZpcnN0IG9idmlvdXMgdXNhZ2Ugb2YgdGhpcyBjb250ZXh0IGlz IHNlbGVjdGl2aXR5IGVzdGltYXRpb24gYmVjYXVzZQp0aGUgb3BlcmF0aW9uJ3MgcmVzdWx0 IGlzIGp1c3QgYSBmbG9hdGluZy1wb2ludCB2YWx1ZSwgYW5kIG9ubHkgY2FjaGVkIG51bWJl cnMKaW4gdGhlIFJlc3RyaWN0SW5mbyBzdHJ1Y3R1cmUgY3JlYXRlZCBvdXRzaWRlIHRoZSBj b250ZXh0IG1heSBiZSBhIGJ5LXByb2R1Y3QKb2YgdGhpcyBvcGVyYXRpb24uCi0tLQogc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvY2xhdXNlc2VsLmMgICAgfCAzMSArKysrKysrKysr KysrKysrKysrCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgICB8 IDM3ICsrKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJl cC9wcmVwam9pbnRyZWUuYyB8ICAyICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMu aCAgICAgICAgICAgICB8IDIxICsrKysrKysrKysrKy0KIDQgZmlsZXMgY2hhbmdlZCwgODYg aW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGF0aC9jbGF1c2VzZWwuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9w YXRoL2NsYXVzZXNlbC5jCmluZGV4IDBhYjAyMWMxZTguLjE0NGJmZmQ1YTcgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2NsYXVzZXNlbC5jCisrKyBiL3NyYy9i YWNrZW5kL29wdGltaXplci9wYXRoL2NsYXVzZXNlbC5jCkBAIC0yMiw2ICsyMiw3IEBACiAj aW5jbHVkZSAic3RhdGlzdGljcy9zdGF0aXN0aWNzLmgiCiAjaW5jbHVkZSAidXRpbHMvZm1n cm9pZHMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGls cy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL3NlbGZ1bmNzLmgiCiAKIC8qCkBAIC02 OTEsNiArNjkyLDcgQEAgY2xhdXNlX3NlbGVjdGl2aXR5X2V4dChQbGFubmVySW5mbyAqcm9v dCwKIAlTZWxlY3Rpdml0eSBzMSA9IDAuNTsJCS8qIGRlZmF1bHQgZm9yIGFueSB1bmhhbmRs ZWQgY2xhdXNlIHR5cGUgKi8KIAlSZXN0cmljdEluZm8gKnJpbmZvID0gTlVMTDsKIAlib29s CQljYWNoZWFibGUgPSBmYWxzZTsKKwlNZW1vcnlDb250ZXh0IHNhdmVkX2N4dDsKIAogCWlm IChjbGF1c2UgPT0gTlVMTCkJCQkvKiBjYW4gdGhpcyBzdGlsbCBoYXBwZW4/ICovCiAJCXJl dHVybiBzMTsKQEAgLTc1NCw2ICs3NTYsMjEgQEAgY2xhdXNlX3NlbGVjdGl2aXR5X2V4dChQ bGFubmVySW5mbyAqcm9vdCwKIAkJCWNsYXVzZSA9IChOb2RlICopIHJpbmZvLT5jbGF1c2U7 CiAJfQogCisJLyoKKwkgKiBSdW4gYWxsIHRoZSByZW1haW5pbmcgd29yayBpbiB0aGUgc2hv cnQtbGl2ZWQgcGxhbm5lcl90bXBfY3h0LCB3aGljaAorCSAqIHdlJ2xsIHJlc2V0IGF0IHRo ZSBib3R0b20uICBUaGlzIGFsbG93cyBzZWxlY3Rpdml0eS1yZWxhdGVkIGNvZGUgdG8gbm90 CisJICogYmUgdG9vIGNvbmNlcm5lZCBhYm91dCBsZWFraW5nIG1lbW9yeS4KKwkgKi8KKwlz YXZlZF9jeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8ocm9vdC0+Z2xvYi0+cGxhbm5lcl90 bXBfY3h0KTsKKworCS8qCisJICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIHJlY3Vy c2l2ZWx5LCBpbiB3aGljaCBjYXNlIHdlJ2QgYmV0dGVyIG5vdAorCSAqIHJlc2V0IHBsYW5u ZXJfdG1wX2N4dCB1bnRpbCB3ZSBleGl0IHRoZSB0b3Btb3N0IGxldmVsLiAgVXNlIG9mCisJ ICogcGxhbm5lcl90bXBfY3h0X2RlcHRoIGFsc28gbWFrZXMgaXQgc2FmZSBmb3Igb3RoZXIg cGxhY2VzIHRvIHVzZSBhbmQKKwkgKiByZXNldCBwbGFubmVyX3RtcF9jeHQgaW4gdGhlIHNh bWUgZmFzaGlvbi4KKwkgKi8KKwlyb290LT5nbG9iLT5wbGFubmVyX3RtcF9jeHRfZGVwdGgr KzsKKwogCWlmIChJc0EoY2xhdXNlLCBWYXIpKQogCXsKIAkJVmFyCQkgICAqdmFyID0gKFZh ciAqKSBjbGF1c2U7CkBAIC05NjUsNiArOTgyLDIwIEBAIGNsYXVzZV9zZWxlY3Rpdml0eV9l eHQoUGxhbm5lckluZm8gKnJvb3QsCiAJCQlyaW5mby0+b3V0ZXJfc2VsZWMgPSBzMTsKIAl9 CiAKKwkvKiBFeGl0IGFuZCBvcHRpb25hbGx5IGNsZWFuIHVwIHRoZSBwbGFubmVyX3RtcF9j eHQgKi8KKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8oc2F2ZWRfY3h0KTsKKwlyb290LT5nbG9i LT5wbGFubmVyX3RtcF9jeHRfdXNhZ2UrKzsKKwlBc3NlcnQocm9vdC0+Z2xvYi0+cGxhbm5l cl90bXBfY3h0X2RlcHRoID4gMCk7CisJaWYgKC0tcm9vdC0+Z2xvYi0+cGxhbm5lcl90bXBf Y3h0X2RlcHRoID09IDApCisJeworCQkvKiBJdCdzIHNhZmUgdG8gcmVzZXQgdGhlIHRtcCBj b250ZXh0LCBidXQgZG8gd2Ugd2FudCB0bz8gKi8KKwkJaWYgKHJvb3QtPmdsb2ItPnBsYW5u ZXJfdG1wX2N4dF91c2FnZSA+PSBQTEFOTkVSX1RNUF9DWFRfVVNBR0VfUkVTRVQpCisJCXsK KwkJCU1lbW9yeUNvbnRleHRSZXNldChyb290LT5nbG9iLT5wbGFubmVyX3RtcF9jeHQpOwor CQkJcm9vdC0+Z2xvYi0+cGxhbm5lcl90bXBfY3h0X3VzYWdlID0gMDsKKwkJfQorCX0KKwog I2lmZGVmIFNFTEVDVElWSVRZX0RFQlVHCiAJZWxvZyhERUJVRzQsICJjbGF1c2Vfc2VsZWN0 aXZpdHk6IHMxICVmIiwgczEpOwogI2VuZGlmCQkJCQkJCS8qIFNFTEVDVElWSVRZX0RFQlVH ICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5kZXggNzQ2ODk2MWIw MS4uOWYyYzVlMjEzNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4v cGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpA QCAtMzE2LDYgKzMxNiwxMiBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29u c3QgY2hhciAqcXVlcnlfc3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAlnbG9iID0gbWFr ZU5vZGUoUGxhbm5lckdsb2JhbCk7CiAKIAlnbG9iLT5ib3VuZFBhcmFtcyA9IGJvdW5kUGFy YW1zOworCWdsb2ItPnBsYW5uZXJfY3h0ID0gQ3VycmVudE1lbW9yeUNvbnRleHQ7CisJZ2xv Yi0+cGxhbm5lcl90bXBfY3h0ID0gQWxsb2NTZXRDb250ZXh0Q3JlYXRlKGdsb2ItPnBsYW5u ZXJfY3h0LAorCQkJCQkJCQkJCQkJICAiUGxhbm5lciB0ZW1wIGNvbnRleHQiLAorCQkJCQkJ CQkJCQkJICBBTExPQ1NFVF9ERUZBVUxUX1NJWkVTKTsKKwlnbG9iLT5wbGFubmVyX3RtcF9j eHRfZGVwdGggPSAwOworCWdsb2ItPnBsYW5uZXJfdG1wX2N4dF91c2FnZSA9IDA7CiAJZ2xv Yi0+c3VicGxhbnMgPSBOSUw7CiAJZ2xvYi0+c3VicGF0aHMgPSBOSUw7CiAJZ2xvYi0+c3Vi cm9vdHMgPSBOSUw7CkBAIC01OTUsNiArNjAxLDkgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVy eSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50IGN1cnNvck9wdGlvbnMs CiAJCQlyZXN1bHQtPmppdEZsYWdzIHw9IFBHSklUX0RFRk9STTsKIAl9CiAKKwkvKiBDbGVh biB1cC4gV2UgYXJlbid0IHZlcnkgdGhvcm91Z2ggaGVyZS4gKi8KKwlNZW1vcnlDb250ZXh0 RGVsZXRlKGdsb2ItPnBsYW5uZXJfdG1wX2N4dCk7CisKIAlpZiAoZ2xvYi0+cGFydGl0aW9u X2RpcmVjdG9yeSAhPSBOVUxMKQogCQlEZXN0cm95UGFydGl0aW9uRGlyZWN0b3J5KGdsb2It PnBhcnRpdGlvbl9kaXJlY3RvcnkpOwogCkBAIC02NTUsNyArNjY0LDcgQEAgc3VicXVlcnlf cGxhbm5lcihQbGFubmVyR2xvYmFsICpnbG9iLCBRdWVyeSAqcGFyc2UsIFBsYW5uZXJJbmZv ICpwYXJlbnRfcm9vdCwKIAlyb290LT5wYXJlbnRfcm9vdCA9IHBhcmVudF9yb290OwogCXJv b3QtPnBsYW5fcGFyYW1zID0gTklMOwogCXJvb3QtPm91dGVyX3BhcmFtcyA9IE5VTEw7Ci0J cm9vdC0+cGxhbm5lcl9jeHQgPSBDdXJyZW50TWVtb3J5Q29udGV4dDsKKwlyb290LT5wbGFu bmVyX2N4dCA9IGdsb2ItPnBsYW5uZXJfY3h0OwogCXJvb3QtPmluaXRfcGxhbnMgPSBOSUw7 CiAJcm9vdC0+Y3RlX3BsYW5faWRzID0gTklMOwogCXJvb3QtPm11bHRpZXhwcl9wYXJhbXMg PSBOSUw7CkBAIC02NjcyLDExICs2NjgxLDE4IEBAIHBsYW5fY2x1c3Rlcl91c2Vfc29ydChP aWQgdGFibGVPaWQsIE9pZCBpbmRleE9pZCkKIAogCWdsb2IgPSBtYWtlTm9kZShQbGFubmVy R2xvYmFsKTsKIAorCWdsb2ItPnBsYW5uZXJfY3h0ID0gQ3VycmVudE1lbW9yeUNvbnRleHQ7 CisJZ2xvYi0+cGxhbm5lcl90bXBfY3h0ID0gQWxsb2NTZXRDb250ZXh0Q3JlYXRlKGdsb2It PnBsYW5uZXJfY3h0LAorCQkJCQkJCQkJCQkJICAiUGxhbm5lciB0ZW1wIGNvbnRleHQiLAor CQkJCQkJCQkJCQkJICBBTExPQ1NFVF9ERUZBVUxUX1NJWkVTKTsKKwlnbG9iLT5wbGFubmVy X3RtcF9jeHRfZGVwdGggPSAwOworCWdsb2ItPnBsYW5uZXJfdG1wX2N4dF91c2FnZSA9IDA7 CisKIAlyb290ID0gbWFrZU5vZGUoUGxhbm5lckluZm8pOwogCXJvb3QtPnBhcnNlID0gcXVl cnk7CiAJcm9vdC0+Z2xvYiA9IGdsb2I7CiAJcm9vdC0+cXVlcnlfbGV2ZWwgPSAxOwotCXJv b3QtPnBsYW5uZXJfY3h0ID0gQ3VycmVudE1lbW9yeUNvbnRleHQ7CisJcm9vdC0+cGxhbm5l cl9jeHQgPSBnbG9iLT5wbGFubmVyX2N4dDsKIAlyb290LT53dF9wYXJhbV9pZCA9IC0xOwog CXJvb3QtPmpvaW5fZG9tYWlucyA9IGxpc3RfbWFrZTEobWFrZU5vZGUoSm9pbkRvbWFpbikp OwogCkBAIC02NzE1LDcgKzY3MzEsMTAgQEAgcGxhbl9jbHVzdGVyX3VzZV9zb3J0KE9pZCB0 YWJsZU9pZCwgT2lkIGluZGV4T2lkKQogCSAqIHRydXN0IHRoZSBpbmRleCBjb250ZW50cyBi dXQgdXNlIHNlcXNjYW4tYW5kLXNvcnQuCiAJICovCiAJaWYgKGxjID09IE5VTEwpCQkJCS8q IG5vdCBpbiB0aGUgbGlzdD8gKi8KKwl7CisJCU1lbW9yeUNvbnRleHREZWxldGUoZ2xvYi0+ cGxhbm5lcl90bXBfY3h0KTsKIAkJcmV0dXJuIHRydWU7CQkJLyogdXNlIHNvcnQgKi8KKwl9 CiAKIAkvKgogCSAqIFJhdGhlciB0aGFuIGRvaW5nIGFsbCB0aGUgcHVzaHVwcyB0aGF0IHdv dWxkIGJlIG5lZWRlZCB0byB1c2UKQEAgLTY3NDgsNiArNjc2Nyw5IEBAIHBsYW5fY2x1c3Rl cl91c2Vfc29ydChPaWQgdGFibGVPaWQsIE9pZCBpbmRleE9pZCkKIAkJCQkJCQkJCSAgRm9y d2FyZFNjYW5EaXJlY3Rpb24sIGZhbHNlLAogCQkJCQkJCQkJICBOVUxMLCAxLjAsIGZhbHNl KTsKIAorCS8qIFdlIGFzc3VtZSB0aGlzIHdvbid0IGZyZWUgKmluZGV4U2NhblBhdGggKi8K KwlNZW1vcnlDb250ZXh0RGVsZXRlKGdsb2ItPnBsYW5uZXJfdG1wX2N4dCk7CisKIAlyZXR1 cm4gKHNlcVNjYW5BbmRTb3J0UGF0aC50b3RhbF9jb3N0IDwgaW5kZXhTY2FuUGF0aC0+cGF0 aC50b3RhbF9jb3N0KTsKIH0KIApAQCAtNjc5NiwxMSArNjgxOCwxOCBAQCBwbGFuX2NyZWF0 ZV9pbmRleF93b3JrZXJzKE9pZCB0YWJsZU9pZCwgT2lkIGluZGV4T2lkKQogCiAJZ2xvYiA9 IG1ha2VOb2RlKFBsYW5uZXJHbG9iYWwpOwogCisJZ2xvYi0+cGxhbm5lcl9jeHQgPSBDdXJy ZW50TWVtb3J5Q29udGV4dDsKKwlnbG9iLT5wbGFubmVyX3RtcF9jeHQgPSBBbGxvY1NldENv bnRleHRDcmVhdGUoZ2xvYi0+cGxhbm5lcl9jeHQsCisJCQkJCQkJCQkJCQkgICJQbGFubmVy IHRlbXAgY29udGV4dCIsCisJCQkJCQkJCQkJCQkgIEFMTE9DU0VUX0RFRkFVTFRfU0laRVMp OworCWdsb2ItPnBsYW5uZXJfdG1wX2N4dF9kZXB0aCA9IDA7CisJZ2xvYi0+cGxhbm5lcl90 bXBfY3h0X3VzYWdlID0gMDsKKwogCXJvb3QgPSBtYWtlTm9kZShQbGFubmVySW5mbyk7CiAJ cm9vdC0+cGFyc2UgPSBxdWVyeTsKIAlyb290LT5nbG9iID0gZ2xvYjsKIAlyb290LT5xdWVy eV9sZXZlbCA9IDE7Ci0Jcm9vdC0+cGxhbm5lcl9jeHQgPSBDdXJyZW50TWVtb3J5Q29udGV4 dDsKKwlyb290LT5wbGFubmVyX2N4dCA9IGdsb2ItPnBsYW5uZXJfY3h0OwogCXJvb3QtPnd0 X3BhcmFtX2lkID0gLTE7CiAJcm9vdC0+am9pbl9kb21haW5zID0gbGlzdF9tYWtlMShtYWtl Tm9kZShKb2luRG9tYWluKSk7CiAKQEAgLTY4OTAsNiArNjkxOSw4IEBAIHBsYW5fY3JlYXRl X2luZGV4X3dvcmtlcnMoT2lkIHRhYmxlT2lkLCBPaWQgaW5kZXhPaWQpCiAJCXBhcmFsbGVs X3dvcmtlcnMtLTsKIAogZG9uZToKKwlNZW1vcnlDb250ZXh0RGVsZXRlKGdsb2ItPnBsYW5u ZXJfdG1wX2N4dCk7CisKIAlpbmRleF9jbG9zZShpbmRleCwgTm9Mb2NrKTsKIAl0YWJsZV9j bG9zZShoZWFwLCBOb0xvY2spOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3By ZXBqb2ludHJlZS5jCmluZGV4IGFkYWQ3ZWE5YTkuLjhlMTI5MDBlNTYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCisrKyBiL3NyYy9i YWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCkBAIC0xMTQ3LDcgKzExNDcs NyBAQCBwdWxsX3VwX3NpbXBsZV9zdWJxdWVyeShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAq anRub2RlLCBSYW5nZVRibEVudHJ5ICpydGUsCiAJc3Vicm9vdC0+cGFyZW50X3Jvb3QgPSBy b290LT5wYXJlbnRfcm9vdDsKIAlzdWJyb290LT5wbGFuX3BhcmFtcyA9IE5JTDsKIAlzdWJy b290LT5vdXRlcl9wYXJhbXMgPSBOVUxMOwotCXN1YnJvb3QtPnBsYW5uZXJfY3h0ID0gQ3Vy cmVudE1lbW9yeUNvbnRleHQ7CisJc3Vicm9vdC0+cGxhbm5lcl9jeHQgPSByb290LT5wbGFu bmVyX2N4dDsKIAlzdWJyb290LT5pbml0X3BsYW5zID0gTklMOwogCXN1YnJvb3QtPmN0ZV9w bGFuX2lkcyA9IE5JTDsKIAlzdWJyb290LT5tdWx0aWV4cHJfcGFyYW1zID0gTklMOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmggYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXRobm9kZXMuaAppbmRleCA1ODc0OGQyY2E2Li4yMjZmMTAzYzY3IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXRobm9kZXMuaApAQCAtMTAxLDYgKzEwMSwyNSBAQCB0eXBlZGVmIHN0cnVjdCBQ bGFubmVyR2xvYmFsCiAJLyogUGFyYW0gdmFsdWVzIHByb3ZpZGVkIHRvIHBsYW5uZXIoKSAq LwogCVBhcmFtTGlzdEluZm8gYm91bmRQYXJhbXMgcGdfbm9kZV9hdHRyKHJlYWRfd3JpdGVf aWdub3JlKTsKIAorCS8qIENvbnRleHQgaG9sZGluZyBQbGFubmVyR2xvYmFsICovCisJTWVt b3J5Q29udGV4dCBwbGFubmVyX2N4dCBwZ19ub2RlX2F0dHIocmVhZF93cml0ZV9pZ25vcmUp OworCisJLyogc2hvcnQtbGl2ZWQgY29udGV4dCBmb3IgcHVycG9zZXMgc3VjaCBhcyBjYWxs aW5nIHNlbGVjdGl2aXR5IGZ1bmN0aW9ucyAqLworCU1lbW9yeUNvbnRleHQgcGxhbm5lcl90 bXBfY3h0IHBnX25vZGVfYXR0cihyZWFkX3dyaXRlX2lnbm9yZSk7CisJLyogbmVzdGluZyBk ZXB0aCBvZiB1c2VzIG9mIHBsYW5uZXJfdG1wX2N4dDsgcmVzZXQgaXQgb25seSBhdCBsZXZl bCAwICovCisJaW50CQkJcGxhbm5lcl90bXBfY3h0X2RlcHRoOworCS8qIGhvdyBtYW55IHRp bWVzIHdlJ3ZlIHVzZWQgcGxhbm5lcl90bXBfY3h0IHNpbmNlIGxhc3QgcmVzZXQgKi8KKwlp bnQJCQlwbGFubmVyX3RtcF9jeHRfdXNhZ2U7CisKKwkvKgorCSAqIEhvdyBvZnRlbiB3ZSB3 YW50IHRvIHJlc2V0IGl0LgorCSAqIEl0IG1heSBiZSBjb3N0bHkgdG8gY2xlYW4gdXAgdGhl IGNvbnRleHQgdXNlZCBmb3IgcXVpY2sgb3BlcmF0aW9ucworCSAqIGxpa2V3aXNlIHNlbGVj dGl2aXR5IGVzdGltYXRpb24gY2F1c2luZyBpbnN0ZW5zaXZlIGFsbG9jYXRpb25zIG9mIHNt YWxsCisJICogcGllY2VzIG9mIG1lbW9yeS4gVXNlIGl0IGFzIGhpZ2ggYXMgcG9zc2libGUg dG8gY3V0IG9mZiBwZWFrIG1lbW9yeQorCSAqIGNvbnN1bXB0aW9ucyBkdXJpbmcgdGhlIHBs YW5uaW5nLgorCSAqLworI2RlZmluZSBQTEFOTkVSX1RNUF9DWFRfVVNBR0VfUkVTRVQgMTAw MAorCiAJLyogUGxhbnMgZm9yIFN1YlBsYW4gbm9kZXMgKi8KIAlMaXN0CSAgICpzdWJwbGFu czsKIApAQCAtNDc3LDcgKzQ5Niw3IEBAIHN0cnVjdCBQbGFubmVySW5mbwogCS8qIExpc3Qg b2YgTWluTWF4QWdnSW5mb3MgKi8KIAlMaXN0CSAgICptaW5tYXhfYWdnczsKIAotCS8qIGNv bnRleHQgaG9sZGluZyBQbGFubmVySW5mbyAqLworCS8qIGNvbnRleHQgaG9sZGluZyBQbGFu bmVySW5mbyAoY29waWVkIGZyb20gUGxhbm5lckdsb2JhbCkgKi8KIAlNZW1vcnlDb250ZXh0 IHBsYW5uZXJfY3h0IHBnX25vZGVfYXR0cihyZWFkX3dyaXRlX2lnbm9yZSk7CiAKIAkvKiAj IG9mIHBhZ2VzIGluIGFsbCBub24tZHVtbXkgdGFibGVzIG9mIHF1ZXJ5ICovCi0tIAoyLjM5 LjUKCg== --------------J0P0OegHo0s0JNvMT1Jlln38--