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.96) (envelope-from ) id 1vQlLR-00HHXd-1c for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Dec 2025 11:48:31 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vQlLQ-00D5sq-12 for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Dec 2025 11:48:28 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with utf8esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vQlLP-00D5si-1C for pgsql-hackers@lists.postgresql.org; Wed, 03 Dec 2025 11:48:28 +0000 Received: from out162-62-57-252.mail.qq.com ([162.62.57.252]) by magus.postgresql.org with utf8esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vQlLH-002uSl-2b for pgsql-hackers@lists.postgresql.org; Wed, 03 Dec 2025 11:48:25 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1764762491; bh=VqeNeCmZimbqlNor0rjQKzzBPZduadE0C9Cd/Nurbuw=; h=From:To:Subject:Date; b=dC4UdmZy/7t+rh+qCX3D2iw99BhG2PiReVXkh78GjGPQE3iqEsR/R5pE8crqN4bCC 0YxzOBD5JwEt2CKbdL75zUyw9qcejnmMEzklEgg472ArxcyUFFV7+UOtGfQCNvYguP kTsV6341IjcSz9Lpmm/+tDiHuCxtcs6XGiGxsTTo= X-QQ-XMRINFO: NS+P29fieYNw95Bth2bWPxk= X-QQ-XMAILINFO: OcDN4UTOEJZD1b8WFpkGT5oC0CPz1fNMHfbjOTQOfidSZA+BYq/fuyfWOqietq W3loj4qeo028dMCMzSXJVJnAkWt7DKoZS6pviAebtMO9xJP/4U0PQBir9gE9zhtVj5fsT/+YMXWDb bfnCEG5EJ7H9ilDRzQLDkETIEkSho2JxbS6vpg9zkyThLAI/T9lF3Y1bZ2pFHglittQsePqjozQwo g9xn52DNh1/GoGi5uvKxzHZ9/lLdn+tOFFUy9bzfiUWKboZAXIixEPeVavSBxqDgNd8dvtDrHUMc3 usWOi9sraKRHB8rCvayB/z5dfOf8cdPs799Yf1ZM1y/3d3Y3xxHqinWcMJVDrI1+VCtvjK0B6syTL MYbussu87Y2hiqHhV5/o3TcorDV2ggigVveG0s1jLQlA94ui2KoDy/5/2HPd0ApQk79XNa7ToXN8h /H6waxo0PArnZHMnnsrNA9sW1ou+itY1hVLRji4PFTWWl1igQTA1y56Ey+B5UnESjbbjhsGA8QtW6 llFpqa7KJqILkay5b/Wz4X16Axjeey9ZJKlsUH7GOjufHk3HdTi62jw0dFwQKn29GOGjEesRDakvN ZjW/kqJ6KB54l99AZldPmqv5ZwvWPow//OZ07R7Ts45eG1sy2VHptRO2o1CKORgRUdq5g80H1wgRl bS+TaJy/zZCd7DB7FcNvUpGBfmnnIQxNTlzq6FY9fY/WeOYI9ik2DKvWzT16nbJZ8xBRkmCEDwlF3 tWGZzaBCtHHuMRDMIc6F61jZ1H9XmtUdhRPFlYI20kte4VN4i91+2KGVj53AwIXvv/Sysnoii6NOa n+NTjDLvcZYVLyO0EfEs+7p9wMGdi2dTiojxVo2gNJcpQkJq4wthOTNFZm/Vm0ayeCtQBnqnysD5N QKAElSDXVUySeMhQPUQvFyJVLKCuk62/neYdGnSyWZ9xUGJ6YPsZR6QilLjND38iQ+YXSdGu1g90z wZlQrzFSMOs5rN6zGNs3P2gZRahhcCOCnju8yAYqBjtds0tD2goYa3p4ykiEMIwPEEo5fgA/CRNaR ejM0zNG1VZSQcr+Jh0UAlg/MzqJgjmU9kW5FLMkNR2PFvYqg+QM9iaGDywQ== From: "=?utf-8?B?Y2NhNTUwNw==?=" To: "=?utf-8?B?cGdzcWwtaGFja2Vycw==?=" Subject: Support loser tree for k-way merge Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_6930237A_007D3560_37D04ABC" Content-Transfer-Encoding: 8Bit Date: Wed, 3 Dec 2025 19:48:10 +0800 X-Priority: 3 Message-ID: X-QQ-MIME: TCMime 1.0 by Tencent X-Mailer: QQMail 2.x X-QQ-Mailer: QQMail 2.x X-QQ-mid: xmseza62-0t1764762490t3mpd0mqp 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. ------=_NextPart_6930237A_007D3560_37D04ABC Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgaGFja2VycywNCg0KQmFja2dyb3VuZA0KPT09PT09PT09PQ0KTm93IHdlIHVzZSAnaGVh cCcgZHVyaW5nIHRoZSBrLXdheSBtZXJnZSwgaXQncyBPKG4gbG9nIGspLiBUaGUgJ2xvc2Vy IHRyZWUnIGlzIGFsc28gTyhuIGxvZyBrKSwgYnV0DQppdCdzIHVzdWFsbHkgaGFzIGZld2Vy IGNvbXBhcmlzb25zIHRoYW4gdGhlICdoZWFwJy4gV2hlbiB0aGUgdHVwbGUgY29tcGFyYXRv ciBpcyBjb21wbGV4LCB0aGUNCidsb3NlciB0cmVlJyBjYW4gc2lnbmlmaWNhbnRseSBzcGVl ZCB1cCB0aGUgay13YXkgbWVyZ2UuDQoNClRlc3QNCj09PT0NCldpdGggdGhlIFdJUCBwYXRj aCh2MS0wMDAxKSwgSSBnb3QgYSAzJSB+IDEzJShkaWZmZXJlbnQgd29ya19tZW0pIHNwZWVk IHVwIGluIHRoZSBmb2xsb3dpbmcgdGVzdCBjYXNlOg0KDQpTRVQgbWF4X3BhcmFsbGVsX3dv cmtlcnNfcGVyX2dhdGhlciA9IDA7DQpDUkVBVEUgVU5MT0dHRUQgVEFCTEUgdCBBUyBTRUxF Q1QgZ2VuZXJhdGVfc2VyaWVzKDEsIDIwMDAwMDAwKSBBUyBhLCBtZDUocmFuZG9tKCk6OnRl eHQpIEFTIGI7DQpjcmVhdGUgZXh0ZW5zaW9uIGlmIG5vdCBleGlzdHMgcGdfcHJld2FybTsN CnNlbGVjdCBwZ19wcmV3YXJtKCd0Jyk7DQoNClNFVCBlbmFibGVfbG9zZXJfdHJlZSA9IE9G RjsNCiMgU0VUIHdvcmtfbWVtID0gJzRNQic7ICgnOE1CJyAnMTZNQicgJzMyTUInICc2NE1C JyAuLi4pDQpleHBsYWluIGFuYWx5emUgc2VsZWN0ICogZnJvbSB0IG9yZGVyIGJ5IGI7DQoN ClNFVCBlbmFibGVfbG9zZXJfdHJlZSA9IE9OOw0KIyBTRVQgd29ya19tZW0gPSAnNE1CJzsg KCc4TUInICcxNk1CJyAnMzJNQicgJzY0TUInIC4uLikNCmV4cGxhaW4gYW5hbHl6ZSBzZWxl Y3QgKiBmcm9tIHQgb3JkZXIgYnkgYjsNCg0KT3BlbiBxdWVzdGlvbnMNCj09PT09PT09PT09 PT09DQoxKSBOb3cgSSBhZGQgYSBHVUMgJ2VuYWJsZV9sb3Nlcl90cmVlJyB0byBjb250cm9s IHRoZSB1c2Ugb2YgbG9zZXIgdHJlZSwgbWF5YmUgd2Ugc2hvdWxkDQpkZWNpZGUgd2hldGhl ciB0byB1c2UgdGhlICdsb3NlciB0cmVlJyBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgJ2snLCB0 aGUgY29tcGxleGl0eSBvZiB0dXBsZQ0KY29tcGFyYXRvcnMgb3IganVzdCBhbHdheXMgdXNl IHRoZSAnbG9zZXIgdHJlZSc/DQoNCkxvb2tpbmcgZm9yd2FyZCB0byB5b3VyIHJlcGx5IGFu ZCBjb21tZW50Lg0KDQotLQ0KUmVnYXJkcywNCkNoYW5nQW8gQ2hlbg0K ------=_NextPart_6930237A_007D3560_37D04ABC Content-Type: application/octet-stream; charset="utf-8"; name="v1-0001-Support-loser-tree-for-k-way-merge.patch" Content-Disposition: attachment; filename="v1-0001-Support-loser-tree-for-k-way-merge.patch" Content-Transfer-Encoding: base64 RnJvbSAyOTgxNDA2ZGJmNWJiNzM4MjczYjNmZjRjMjY4NTRjZTdkNzE1ZGQxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaGFuZ0FvIENoZW4gPGNjYTU1MDdAcXEuY29tPgpE YXRlOiBXZWQsIDMgRGVjIDIwMjUgMTg6NTg6MjggKzA4MDAKU3ViamVjdDogW1BBVENIIHYx XSBTdXBwb3J0IGxvc2VyIHRyZWUgZm9yIGstd2F5IG1lcmdlLgoKVGhlIGxvc2VyIHRyZWUg dXN1YWxseSBoYXMgZmV3ZXIgY29tcGFyaXNvbnMgdGhhbiB0aGUgaGVhcCBkdXJpbmcKay13 YXkgbWVyZ2UuCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5k YXQgfCAgIDcgKwogc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXNvcnQuYyAgICAgICAg fCAxNjAgKysrKysrKysrKysrKysrKysrKysrLQogc3JjL2luY2x1ZGUvdXRpbHMvZ3VjLmgg ICAgICAgICAgICAgICAgICAgfCAgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAxNjcgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0IGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf cGFyYW1ldGVycy5kYXQKaW5kZXggM2I5ZDgzNDkwNzguLjEyM2VjZThlYTc1IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdAorKysgYi9z cmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdApAQCAtODgyLDYgKzg4 MiwxMyBAQAogICBib290X3ZhbCA9PiAndHJ1ZScsCiB9LAogCit7IG5hbWUgPT4gJ2VuYWJs ZV9sb3Nlcl90cmVlJywgdHlwZSA9PiAnYm9vbCcsIGNvbnRleHQgPT4gJ1BHQ19VU0VSU0VU JywgZ3JvdXAgPT4gJ1FVRVJZX1RVTklOR19NRVRIT0QnLAorICBzaG9ydF9kZXNjID0+ICdF bmFibGVzIGxvc2VyIHRyZWUgZm9yIGstd2F5IG1lcmdlLicsCisgIGZsYWdzID0+ICdHVUNf Tk9UX0lOX1NBTVBMRScsCisgIHZhcmlhYmxlID0+ICdlbmFibGVfbG9zZXJfdHJlZScsCisg IGJvb3RfdmFsID0+ICdmYWxzZScsCit9LAorCiB7IG5hbWUgPT4gJ2VuYWJsZV9tYXRlcmlh bCcsIHR5cGUgPT4gJ2Jvb2wnLCBjb250ZXh0ID0+ICdQR0NfVVNFUlNFVCcsIGdyb3VwID0+ ICdRVUVSWV9UVU5JTkdfTUVUSE9EJywKICAgc2hvcnRfZGVzYyA9PiAnRW5hYmxlcyB0aGUg cGxhbm5lclwncyB1c2Ugb2YgbWF0ZXJpYWxpemF0aW9uLicsCiAgIGZsYWdzID0+ICdHVUNf RVhQTEFJTicsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9zb3J0L3R1cGxlc29y dC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXNvcnQuYwppbmRleCA1ZDQ0MTFk YzMzZi4uMzgxZjU5MDkwOTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL3NvcnQv dHVwbGVzb3J0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXNvcnQuYwpA QCAtMTIyLDYgKzEyMiw5IEBACiAKIC8qIEdVQyB2YXJpYWJsZXMgKi8KIGJvb2wJCXRyYWNl X3NvcnQgPSBmYWxzZTsKK2Jvb2wgICAgICAgIGVuYWJsZV9sb3Nlcl90cmVlID0gZmFsc2U7 CisKKyNkZWZpbmUgTE9TRVJfVFJFRV9FT0YgLTEKIAogI2lmZGVmIERFQlVHX0JPVU5ERURf U09SVAogYm9vbAkJb3B0aW1pemVfYm91bmRlZF9zb3J0ID0gdHJ1ZTsKQEAgLTIxOSw2ICsy MjIsOSBAQCBzdHJ1Y3QgVHVwbGVzb3J0c3RhdGUKIAlpbnQJCQltZW10dXBzaXplOwkJLyog YWxsb2NhdGVkIGxlbmd0aCBvZiBtZW10dXBsZXMgYXJyYXkgKi8KIAlib29sCQlncm93bWVt dHVwbGVzOwkvKiBtZW10dXBsZXMnIGdyb3d0aCBzdGlsbCB1bmRlcndheT8gKi8KIAorCWJv b2wgICAgICAgIHVzZUxvc2VyVHJlZTsgICAvKiB1c2UgbG9zZXIgdHJlZSBmb3Igay13YXkg bWVyZ2UgaWYgdHJ1ZSAqLworCWludCAgICAgICAgKmxvc2VyczsgICAgICAgICAvKiBhcnJh eSBvZiBsb3NlcnMsIGxvc2Vyc1swXSBpcyB0aGUgd2lubmVyICovCisKIAkvKgogCSAqIE1l bW9yeSBmb3IgdHVwbGVzIGlzIHNvbWV0aW1lcyBhbGxvY2F0ZWQgdXNpbmcgYSBzaW1wbGUg c2xhYiBhbGxvY2F0b3IsCiAJICogcmF0aGVyIHRoYW4gd2l0aCBwYWxsb2MoKS4gIEN1cnJl bnRseSwgd2Ugc3dpdGNoIHRvIHNsYWIgYWxsb2NhdGlvbgpAQCAtNDY4LDYgKzQ3NCw4IEBA IHN0YXRpYyB2b2lkIHR1cGxlc29ydF9zb3J0X21lbXR1cGxlcyhUdXBsZXNvcnRzdGF0ZSAq c3RhdGUpOwogc3RhdGljIHZvaWQgdHVwbGVzb3J0X2hlYXBfaW5zZXJ0KFR1cGxlc29ydHN0 YXRlICpzdGF0ZSwgU29ydFR1cGxlICp0dXBsZSk7CiBzdGF0aWMgdm9pZCB0dXBsZXNvcnRf aGVhcF9yZXBsYWNlX3RvcChUdXBsZXNvcnRzdGF0ZSAqc3RhdGUsIFNvcnRUdXBsZSAqdHVw bGUpOwogc3RhdGljIHZvaWQgdHVwbGVzb3J0X2hlYXBfZGVsZXRlX3RvcChUdXBsZXNvcnRz dGF0ZSAqc3RhdGUpOworc3RhdGljIHZvaWQgdHVwbGVzb3J0X2xvc2VyX3RyZWVfYnVpbGQo VHVwbGVzb3J0c3RhdGUgKnN0YXRlKTsKK3N0YXRpYyB2b2lkIHR1cGxlc29ydF9sb3Nlcl90 cmVlX2FkanVzdChUdXBsZXNvcnRzdGF0ZSAqc3RhdGUsIGludCBzdGFydCk7CiBzdGF0aWMg dm9pZCByZXZlcnNlZGlyZWN0aW9uKFR1cGxlc29ydHN0YXRlICpzdGF0ZSk7CiBzdGF0aWMg dW5zaWduZWQgaW50IGdldGxlbihMb2dpY2FsVGFwZSAqdGFwZSwgYm9vbCBlb2ZPSyk7CiBz dGF0aWMgdm9pZCBtYXJrcnVuZW5kKExvZ2ljYWxUYXBlICp0YXBlKTsKQEAgLTY4MSw2ICs2 ODksOCBAQCB0dXBsZXNvcnRfYmVnaW5fY29tbW9uKGludCB3b3JrTWVtLCBTb3J0Q29vcmRp bmF0ZSBjb29yZGluYXRlLCBpbnQgc29ydG9wdCkKIAlzdGF0ZS0+YmFzZS5zb3J0b3B0ID0g c29ydG9wdDsKIAlzdGF0ZS0+YmFzZS50dXBsZXMgPSB0cnVlOwogCXN0YXRlLT5hYmJyZXZO ZXh0ID0gMTA7CisJc3RhdGUtPnVzZUxvc2VyVHJlZSA9IGVuYWJsZV9sb3Nlcl90cmVlOwor CXN0YXRlLT5sb3NlcnMgPSBOVUxMOwogCiAJLyoKIAkgKiB3b3JrTWVtIGlzIGZvcmNlZCB0 byBiZSBhdCBsZWFzdCA2NEtCLCB0aGUgY3VycmVudCBtaW5pbXVtIHZhbGlkIHZhbHVlCkBA IC0xNjQ3LDYgKzE2NTcsMzcgQEAgdHVwbGVzb3J0X2dldHR1cGxlX2NvbW1vbihUdXBsZXNv cnRzdGF0ZSAqc3RhdGUsIGJvb2wgZm9yd2FyZCwKIAkJCQlzdGF0ZS0+bGFzdFJldHVybmVk VHVwbGUgPSBOVUxMOwogCQkJfQogCisJCQlpZiAoc3RhdGUtPnVzZUxvc2VyVHJlZSAmJiBz dGF0ZS0+bWVtdHVwY291bnQgPiAwKQorCQkJeworCQkJCWludCAgICAgICAgICBpID0gc3Rh dGUtPmxvc2Vyc1swXTsKKwkJCQlpbnQgICAgICAgICAgc3RhcnQgPSBpICsgc3RhdGUtPm1l bXR1cGNvdW50OworCQkJCWludAkJCSBzcmNUYXBlSW5kZXggPSBzdGF0ZS0+bWVtdHVwbGVz W2ldLnNyY3RhcGU7CisJCQkJTG9naWNhbFRhcGUgKnNyY1RhcGUgPSBzdGF0ZS0+aW5wdXRU YXBlc1tzcmNUYXBlSW5kZXhdOworCQkJCVNvcnRUdXBsZQkgbmV3dHVwOworCisJCQkJKnN0 dXAgPSBzdGF0ZS0+bWVtdHVwbGVzW2ldOworCisJCQkJc3RhdGUtPmxhc3RSZXR1cm5lZFR1 cGxlID0gc3R1cC0+dHVwbGU7CisKKwkJCQlpZiAobWVyZ2VyZWFkbmV4dChzdGF0ZSwgc3Jj VGFwZSwgJm5ld3R1cCkpCisJCQkJeworCQkJCQluZXd0dXAuc3JjdGFwZSA9IHNyY1RhcGVJ bmRleDsKKwkJCQkJc3RhdGUtPm1lbXR1cGxlc1tpXSA9IG5ld3R1cDsKKwkJCQl9CisJCQkJ ZWxzZQorCQkJCXsKKwkJCQkJc3RhdGUtPmxvc2Vyc1tzdGFydF0gPSBMT1NFUl9UUkVFX0VP RjsKKwkJCQkJc3RhdGUtPm5JbnB1dFJ1bnMtLTsKKwkJCQkJTG9naWNhbFRhcGVDbG9zZShz cmNUYXBlKTsKKwkJCQl9CisJCQkJdHVwbGVzb3J0X2xvc2VyX3RyZWVfYWRqdXN0KHN0YXRl LCBzdGFydCk7CisKKwkJCQlpZiAoc3RhdGUtPmxvc2Vyc1swXSA9PSBMT1NFUl9UUkVFX0VP RikKKwkJCQkJc3RhdGUtPm1lbXR1cGNvdW50ID0gMDsKKworCQkJCXJldHVybiB0cnVlOwor CQkJfQorCiAJCQkvKgogCQkJICogVGhpcyBjb2RlIHNob3VsZCBtYXRjaCB0aGUgaW5uZXIg bG9vcCBvZiBtZXJnZW9uZXJ1bigpLgogCQkJICovCkBAIC0yMjA2LDYgKzIyNDcsNDEgQEAg bWVyZ2VvbmVydW4oVHVwbGVzb3J0c3RhdGUgKnN0YXRlKQogCiAJQXNzZXJ0KHN0YXRlLT5z bGFiQWxsb2NhdG9yVXNlZCk7CiAKKwlpZiAoc3RhdGUtPnVzZUxvc2VyVHJlZSAmJiBzdGF0 ZS0+bWVtdHVwY291bnQgPiAwKQorCXsKKwkJd2hpbGUgKHN0YXRlLT5sb3NlcnNbMF0gIT0g TE9TRVJfVFJFRV9FT0YpCisJCXsKKwkJCWludCAgICAgICAgIGkgPSBzdGF0ZS0+bG9zZXJz WzBdOworCQkJaW50ICAgICAgICAgc3RhcnQgPSBpICsgc3RhdGUtPm1lbXR1cGNvdW50Owor CQkJU29ydFR1cGxlCXN0dXA7CisKKwkJCS8qIHdyaXRlIHRoZSB0dXBsZSB0byBkZXN0VGFw ZSAqLworCQkJc3JjVGFwZUluZGV4ID0gc3RhdGUtPm1lbXR1cGxlc1tpXS5zcmN0YXBlOwor CQkJc3JjVGFwZSA9IHN0YXRlLT5pbnB1dFRhcGVzW3NyY1RhcGVJbmRleF07CisJCQlXUklU RVRVUChzdGF0ZSwgc3RhdGUtPmRlc3RUYXBlLCAmc3RhdGUtPm1lbXR1cGxlc1tpXSk7CisK KwkJCS8qIHJlY3ljbGUgdGhlIHNsb3Qgb2YgdGhlIHR1cGxlIHdlIGp1c3Qgd3JvdGUgb3V0 LCBmb3IgdGhlIG5leHQgcmVhZCAqLworCQkJaWYgKHN0YXRlLT5tZW10dXBsZXNbaV0udHVw bGUpCisJCQkJUkVMRUFTRV9TTEFCX1NMT1Qoc3RhdGUsIHN0YXRlLT5tZW10dXBsZXNbaV0u dHVwbGUpOworCisJCQlpZiAobWVyZ2VyZWFkbmV4dChzdGF0ZSwgc3JjVGFwZSwgJnN0dXAp KQorCQkJeworCQkJCXN0dXAuc3JjdGFwZSA9IHNyY1RhcGVJbmRleDsKKwkJCQlzdGF0ZS0+ bWVtdHVwbGVzW2ldID0gc3R1cDsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlzdGF0ZS0+ bG9zZXJzW3N0YXJ0XSA9IExPU0VSX1RSRUVfRU9GOworCQkJCXN0YXRlLT5uSW5wdXRSdW5z LS07CisJCQl9CisKKwkJCXR1cGxlc29ydF9sb3Nlcl90cmVlX2FkanVzdChzdGF0ZSwgc3Rh cnQpOworCQl9CisJCXN0YXRlLT5tZW10dXBjb3VudCA9IDA7CisJCW1hcmtydW5lbmQoc3Rh dGUtPmRlc3RUYXBlKTsKKwkJcmV0dXJuOworCX0KKwogCS8qCiAJICogRXhlY3V0ZSBtZXJn ZSBieSByZXBlYXRlZGx5IGV4dHJhY3RpbmcgbG93ZXN0IHR1cGxlIGluIGhlYXAsIHdyaXRp bmcgaXQKIAkgKiBvdXQsIGFuZCByZXBsYWNpbmcgaXQgd2l0aCBuZXh0IHR1cGxlIGZyb20g c2FtZSB0YXBlIChpZiB0aGVyZSBpcwpAQCAtMjI3MCw5ICsyMzQ2LDE2IEBAIGJlZ2lubWVy Z2UoVHVwbGVzb3J0c3RhdGUgKnN0YXRlKQogCQlpZiAobWVyZ2VyZWFkbmV4dChzdGF0ZSwg c3RhdGUtPmlucHV0VGFwZXNbc3JjVGFwZUluZGV4XSwgJnR1cCkpCiAJCXsKIAkJCXR1cC5z cmN0YXBlID0gc3JjVGFwZUluZGV4OwotCQkJdHVwbGVzb3J0X2hlYXBfaW5zZXJ0KHN0YXRl LCAmdHVwKTsKKworCQkJaWYgKHN0YXRlLT51c2VMb3NlclRyZWUpCisJCQkJc3RhdGUtPm1l bXR1cGxlc1tzdGF0ZS0+bWVtdHVwY291bnQrK10gPSB0dXA7CisJCQllbHNlCisJCQkJdHVw bGVzb3J0X2hlYXBfaW5zZXJ0KHN0YXRlLCAmdHVwKTsKIAkJfQogCX0KKworCWlmIChzdGF0 ZS0+dXNlTG9zZXJUcmVlICYmIHN0YXRlLT5tZW10dXBjb3VudCA+IDApCisJCXR1cGxlc29y dF9sb3Nlcl90cmVlX2J1aWxkKHN0YXRlKTsKIH0KIAogLyoKQEAgLTI4MjMsNiArMjkwNiw4 MSBAQCB0dXBsZXNvcnRfaGVhcF9yZXBsYWNlX3RvcChUdXBsZXNvcnRzdGF0ZSAqc3RhdGUs IFNvcnRUdXBsZSAqdHVwbGUpCiAJbWVtdHVwbGVzW2ldID0gKnR1cGxlOwogfQogCitzdGF0 aWMgdm9pZAordHVwbGVzb3J0X2xvc2VyX3RyZWVfYnVpbGQoVHVwbGVzb3J0c3RhdGUgKnN0 YXRlKQoreworCWludCBrID0gc3RhdGUtPm1lbXR1cGNvdW50OyAvKiBrLXdheSAqLworCWlu dCB3aW5uZXJbTUFYT1JERVIgKiAyXTsKKwlpbnQgaTsKKworCUFzc2VydChrID4gMCAmJiBr IDw9IE1BWE9SREVSKTsKKworCWlmIChzdGF0ZS0+bG9zZXJzID09IE5VTEwpCisJCXN0YXRl LT5sb3NlcnMgPSAoaW50ICopIE1lbW9yeUNvbnRleHRBbGxvYyhzdGF0ZS0+YmFzZS5tYWlu Y29udGV4dCwKKwkJCQkJCQkJCQkJCSAgIE1BWE9SREVSICogMiAqIHNpemVvZihpbnQpKTsK KworCWZvciAoaSA9IGs7IGkgPCAyICogazsgaSsrKQorCXsKKwkJd2lubmVyW2ldID0gaSAt IGs7CisJCXN0YXRlLT5sb3NlcnNbaV0gPSBpIC0gazsKKwl9CisKKwlmb3IgKGkgPSBrIC0g MTsgaSA+PSAxOyBpLS0pCisJeworCQlpbnQgbCA9IGkgKiAyOworCQlpbnQgciA9IGwgKyAx OworCisJCWlmIChDT01QQVJFVFVQKHN0YXRlLAorCQkJCQkgICAmc3RhdGUtPm1lbXR1cGxl c1t3aW5uZXJbbF1dLAorCQkJCQkgICAmc3RhdGUtPm1lbXR1cGxlc1t3aW5uZXJbcl1dKSA8 IDApCisJCXsKKwkJCXdpbm5lcltpXSA9IHdpbm5lcltsXTsKKwkJCXN0YXRlLT5sb3NlcnNb aV0gPSB3aW5uZXJbcl07CisJCX0KKwkJZWxzZQorCQl7CisJCQl3aW5uZXJbaV0gPSB3aW5u ZXJbcl07CisJCQlzdGF0ZS0+bG9zZXJzW2ldID0gd2lubmVyW2xdOworCQl9CisJfQorCisJ Lyogc2V0IHRoZSBmaW5hbCB3aW5uZXIgdG8gc3RhdGUtPmxvc2Vyc1swXSAqLworCXN0YXRl LT5sb3NlcnNbMF0gPSB3aW5uZXJbMV07Cit9CisKK3N0YXRpYyB2b2lkCit0dXBsZXNvcnRf bG9zZXJfdHJlZV9hZGp1c3QoVHVwbGVzb3J0c3RhdGUgKnN0YXRlLCBpbnQgc3RhcnQpCit7 CisJaW50IHdpbm5lcjsKKwlpbnQgcGFyZW50OworCisJQXNzZXJ0KHN0YXRlLT5sb3NlcnMg IT0gTlVMTCk7CisJQXNzZXJ0KHN0YXJ0ID49IHN0YXRlLT5tZW10dXBjb3VudCAmJiBzdGFy dCA8IHN0YXRlLT5tZW10dXBjb3VudCAqIDIpOworCisJd2lubmVyID0gc3RhdGUtPmxvc2Vy c1tzdGFydF07CisKKwlmb3IgKHBhcmVudCA9IHN0YXJ0IC8gMjsgcGFyZW50ID4gMDsgcGFy ZW50IC89IDIpCisJeworCQlpbnQgbG9zZXIgPSBzdGF0ZS0+bG9zZXJzW3BhcmVudF07CisK KwkJLyogZW9mIGlzIGFsd2F5cyB0aGUgbG9zZXIgKi8KKwkJaWYgKGxvc2VyID09IExPU0VS X1RSRUVfRU9GKQorCQkJY29udGludWU7CisKKwkJaWYgKHdpbm5lciA9PSBMT1NFUl9UUkVF X0VPRiB8fAorCQkJQ09NUEFSRVRVUChzdGF0ZSwKKwkJCQkJICAgJnN0YXRlLT5tZW10dXBs ZXNbd2lubmVyXSwKKwkJCQkJICAgJnN0YXRlLT5tZW10dXBsZXNbbG9zZXJdKSA+IDApCisJ CXsKKwkJCXN0YXRlLT5sb3NlcnNbcGFyZW50XSA9IHdpbm5lcjsKKwkJCXdpbm5lciA9IGxv c2VyOworCQl9CisJfQorCisJLyogc2V0IHRoZSBmaW5hbCB3aW5uZXIgdG8gc3RhdGUtPmxv c2Vyc1swXSAqLworCXN0YXRlLT5sb3NlcnNbMF0gPSB3aW5uZXI7Cit9CisKIC8qCiAgKiBG dW5jdGlvbiB0byByZXZlcnNlIHRoZSBzb3J0IGRpcmVjdGlvbiBmcm9tIGl0cyBjdXJyZW50 IHN0YXRlCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjLmggYi9zcmMv aW5jbHVkZS91dGlscy9ndWMuaAppbmRleCBmMjFlYzM3ZGE4OS4uOGMyMmVlZDcxNmIgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2d1Yy5oCisrKyBiL3NyYy9pbmNsdWRlL3V0 aWxzL2d1Yy5oCkBAIC0zMjQsNiArMzI0LDcgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIGludCB0 Y3BfdXNlcl90aW1lb3V0OwogZXh0ZXJuIFBHRExMSU1QT1JUIGNoYXIgKnJvbGVfc3RyaW5n OwogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgaW5faG90X3N0YW5kYnlfZ3VjOwogZXh0ZXJu IFBHRExMSU1QT1JUIGJvb2wgdHJhY2Vfc29ydDsKK2V4dGVybiBQR0RMTElNUE9SVCBib29s IGVuYWJsZV9sb3Nlcl90cmVlOwogCiAjaWZkZWYgREVCVUdfQk9VTkRFRF9TT1JUCiBleHRl cm4gUEdETExJTVBPUlQgYm9vbCBvcHRpbWl6ZV9ib3VuZGVkX3NvcnQ7Ci0tIAoyLjM0LjEK Cg== ------=_NextPart_6930237A_007D3560_37D04ABC--