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 1mR0mW-0000FY-JX for pgsql-hackers@arkaria.postgresql.org; Thu, 16 Sep 2021 23:27:04 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mR0mV-0004TZ-IN for pgsql-hackers@arkaria.postgresql.org; Thu, 16 Sep 2021 23:27:03 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mR0mV-0004TR-50 for pgsql-hackers@lists.postgresql.org; Thu, 16 Sep 2021 23:27:03 +0000 Received: from smtp-fw-80006.amazon.com ([99.78.197.217]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mR0mS-0000eR-Gp for pgsql-hackers@postgresql.org; Thu, 16 Sep 2021 23:27:02 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1631834820; x=1663370820; h=from:to:cc:date:message-id:references:in-reply-to: mime-version:subject; bh=QikY70SuVTAPSIvElz33eRqk5+Z71AvuiTE3t6vDUt8=; b=CwjBN83S+fdUvYHZOSqqNSfDrVjP65FtGKoG5Bl44eOwV7+TeSUxIjfI GJ4rI4eBxhVH7jCTc+Jf7pImV+J6QD9lw2FK9eyaFE+zhCHBTIKO/4/SX AL6FnovI6e4ynw57oQS+vRBeGq9EJnskmBwz+aT9sc8SxNiICk178+mJ4 g=; X-Amazon-filename: v6-0001-Do-fewer-directory-scans-of-archive_status.patch X-IronPort-AV: E=Sophos;i="5.85,299,1624320000"; d="scan'208,223";a="27450402" Subject: Re: .ready and .done files considered harmful Thread-Topic: .ready and .done files considered harmful Received: from pdx4-co-svc-p1-lb2-vlan3.amazon.com (HELO email-inbound-relay-2a-6e2fc477.us-west-2.amazon.com) ([10.25.36.214]) by smtp-border-fw-80006.pdx80.corp.amazon.com with ESMTP; 16 Sep 2021 23:26:57 +0000 Received: from EX13MTAUWB001.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan2.pdx.amazon.com [10.236.137.194]) by email-inbound-relay-2a-6e2fc477.us-west-2.amazon.com (Postfix) with ESMTPS id 1308DA0684; Thu, 16 Sep 2021 23:26:57 +0000 (UTC) Received: from EX13D03UWC003.ant.amazon.com (10.43.162.79) by EX13MTAUWB001.ant.amazon.com (10.43.161.249) with Microsoft SMTP Server (TLS) id 15.0.1497.23; Thu, 16 Sep 2021 23:26:56 +0000 Received: from EX13D03UWC004.ant.amazon.com (10.43.162.49) by EX13D03UWC003.ant.amazon.com (10.43.162.79) with Microsoft SMTP Server (TLS) id 15.0.1497.23; Thu, 16 Sep 2021 23:26:56 +0000 Received: from EX13D03UWC004.ant.amazon.com ([10.43.162.49]) by EX13D03UWC004.ant.amazon.com ([10.43.162.49]) with mapi id 15.00.1497.023; Thu, 16 Sep 2021 23:26:56 +0000 From: "Bossart, Nathan" To: Dipesh Pandit , Kyotaro Horiguchi CC: Robert Haas , Jeevan Ladhe , Stephen Frost , "Andres Freund" , Hannu Krosing , "pgsql-hackers@postgresql.org" Thread-Index: AQHXci02tLcaEMz+AU6YhPne6AFvK6s18xIAgBZTwYCAAmezgIAAD1MAgAIA4ICABKHjAP//uEcAgAF4zgCAAKkYgIABHQwAgAAsYwCAB9W1AIAB0kOA///LgoCAA+gBAP//nb0AABMNwQABPNgWAACsRtKAAFFLHAD//8h0AIAAlSkA//+p2YCAAaRCAP//8nwAgAGC4ICABSoRAIABMKwA//+uf4AAEs/LgAABls2AABDH2wAAABA+gAAUvuwAAARaAgAACYtZgAAHmE2AABoCvIABa60dAAArL8UAAAMyqwACNGdTAAAKJIeAABvYaoAABr9WgAARQQOAABQ/OIAAPL3PAA== Date: Thu, 16 Sep 2021 23:26:55 +0000 Message-ID: References: <1C74E389-64A7-45AB-826F-8379768A6853@amazon.com> <20210915.104757.462650766526515461.horikyota.ntt@gmail.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.43.162.186] Content-Type: multipart/mixed; boundary="_002_C472F58F4E9B49C282FF2E373ADEFE34amazoncom_" MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_C472F58F4E9B49C282FF2E373ADEFE34amazoncom_ Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 T24gOS8xNS8yMSwgNDoyOCBBTSwgIkRpcGVzaCBQYW5kaXQiIDxkaXBlc2gucGFuZGl0QGdtYWls LmNvbT4gd3JvdGU6DQo+IEkgaGF2ZSBpbmNvcnBvcmF0ZWQgdGhlc2UgY2hhbmdlcyBhbmQgdXBk YXRlZCBhIG5ldyBwYXRjaC4gUEZBIHBhdGNoLg0KDQpUaGFua3MgZm9yIHRoZSBuZXcgcGF0Y2gu DQoNCkkndmUgYXR0YWNoZWQgbXkgdGFrZSBvbiB0aGUgbGF0ZXN0IHZlcnNpb24uICBNeSBtYWlu IGZvY3VzIHRoaXMgdGltZQ0Kd2FzIHNpbXBsaWZ5aW5nIHRoZSBwYXRjaCBmb3IgdGhpcyBhcHBy b2FjaCBhcyBtdWNoIGFzIHBvc3NpYmxlLg0KU3BlY2lmaWNhbGx5LCBJJ3ZlIGRvbmUgdGhlIGZv bGxvd2luZzoNCg0KICAxLiBJJ3ZlIHJlbW92ZWQgc2V2ZXJhbCBjYWxscyB0byBQZ0FyY2hGb3Jj ZURpclNjYW4oKSBpbiBmYXZvciBvZg0KICAgICBjYWxsaW5nIGl0IGF0IHRoZSB0b3Agb2YgcGdh cmNoX0FyY2hpdmVyQ29weUxvb3AoKS4gIEkgYmVsaWV2ZQ0KICAgICB0aGVyZSBpcyBzb21lIGRp c2FncmVlbWVudCBhYm91dCB0aGlzIGNoYW5nZSwgYnV0IEkgZG9uJ3QgdGhpbmsNCiAgICAgd2Ug Z2FpbiBlbm91Z2ggdG8ganVzdGlmeSB0aGUgY29tcGxleGl0eS4gIFRoZSBtYWluIHJlYXNvbiB3 ZQ0KICAgICBleGl0IHBnYXJjaF9BcmNoaXZlckNvcHlMb29wKCkgc2hvdWxkIG9yZGluYXJpbHkg YmUgdGhhdCB3ZSd2ZQ0KICAgICBydW4gb3V0IG9mIGZpbGVzIHRvIGFyY2hpdmUsIHNvIGluY3Vy cmluZyBhIGRpcmVjdG9yeSBzY2FuIHRoZQ0KICAgICBuZXh0IHRpbWUgaXQgaXMgY2FsbGVkIGRv ZXNuJ3Qgc2VlbSBsaWtlIGl0IHdvdWxkIG5vcm1hbGx5IGJlIHRvbw0KICAgICBiYWQuICBJJ20g c3VyZSB0aGVyZSBhcmUgZXhjZXB0aW9ucyAoZS5nLiwgbG90cyBvZiAuZG9uZSBmaWxlcywNCiAg ICAgYXJjaGl2ZSBmYWlsdXJlcyksIGJ1dCB0aGUgcGF0Y2ggaXMgc3RpbGwgbm90IG1ha2luZyB0 aGluZ3MgYW55DQogICAgIHdvcnNlIHRoYW4gdGhleSBwcmVzZW50bHkgYXJlIGZvciB0aGVzZSBj YXNlcy4NCiAgMi4gSSByZW1vdmVkIGFsbCB0aGUgbG9naWMgdGhhdCBhdHRlbXB0ZWQgdG8gY2F0 Y2ggb3V0LW9mLW9yZGVyDQogICAgIC5yZWFkeSBmaWxlcy4gIEluc3RlYWQsIFhMb2dBcmNoaXZl Tm90aWZ5KCkgb25seSBmb3JjZXMgYQ0KICAgICBkaXJlY3Rvcnkgc2NhbiBmb3IgZmlsZXMgb3Ro ZXIgdGhhbiByZWd1bGFyIFdBTCBmaWxlcywgYW5kIHdlDQogICAgIGRlcGVuZCBvbiBvdXIgcGVy aW9kaWMgZGlyZWN0b3J5IHNjYW5zIHRvIHBpY2sgdXAgYW55dGhpbmcgdGhhdCdzDQogICAgIGJl ZW4gbGVmdCBiZWhpbmQuDQogIDMuIEkgbW92ZWQgdGhlIGxvZ2ljIHRoYXQgZm9yY2VzIGRpcmVj dG9yeSBzY2FucyBldmVyeSBvbmNlIGluIGENCiAgICAgd2hpbGUuICBXZSB3ZXJlIGRvaW5nIHRo YXQgaW4gdGhlIGNoZWNrcG9pbnQvcmVzdGFydHBvaW50IGxvZ2ljLA0KICAgICB3aGljaCwgdXBv biBmdXJ0aGVyIHRob3VnaHQsIG1pZ2h0IG5vdCBiZSB0aGUgYmVzdCBpZGVhLiAgVGhlDQogICAg IGNoZWNrcG9pbnQgaW50ZXJ2YWwgY2FuIHZhcnkgd2lkZWx5LCBhbmQgSUlSQyB3ZSB3b24ndCBi b3RoZXINCiAgICAgY3JlYXRpbmcgY2hlY2twb2ludHMgYXQgYWxsIGlmIGRhdGFiYXNlIGFjdGl2 aXR5IHN0b3BzLiAgSW5zdGVhZCwNCiAgICAgSSd2ZSBhZGRlZCBsb2dpYyBpbiBwZ2FyY2hfcmVh ZHlYbG9nKCkgdGhhdCBmb3JjZXMgYSBkaXJlY3RvcnkNCiAgICAgc2NhbiBpZiBvbmUgaGFzbid0 IGhhcHBlbmVkIGluIGEgZmV3IG1pbnV0ZXMuDQogIDQuIEZpbmFsbHksIEkndmUgdHJpZWQgdG8g ZW5zdXJlIGNvbW1lbnRzIGFyZSBjbGVhciBhbmQgdGhhdCB0aGUNCiAgICAgbG9naWMgaXMgZ2Vu ZXJhbGx5IGVhc3kgdG8gcmVhc29uIGFib3V0Lg0KDQpXaGF0IGRvIHlvdSB0aGluaz8NCg0KTmF0 aGFuDQoNCg== --_002_C472F58F4E9B49C282FF2E373ADEFE34amazoncom_ Content-Type: application/octet-stream; name="v6-0001-Do-fewer-directory-scans-of-archive_status.patch" Content-Description: v6-0001-Do-fewer-directory-scans-of-archive_status.patch Content-Disposition: attachment; filename="v6-0001-Do-fewer-directory-scans-of-archive_status.patch"; size=10625; creation-date="Thu, 16 Sep 2021 23:26:55 GMT"; modification-date="Thu, 16 Sep 2021 23:26:55 GMT" Content-ID: Content-Transfer-Encoding: base64 RnJvbSA5ZTNiN2Y5ZWFhNDBhZGE4NzY0NDJmZjJkYWYzYjZlZjg2YjEzYmMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOYXRoYW4gQm9zc2FydCA8Ym9zc2FydG5AYW1hem9uLmNvbT4K RGF0ZTogVGh1LCAxNiBTZXAgMjAyMSAyMzoxNDowMyArMDAwMApTdWJqZWN0OiBbUEFUQ0ggdjYg MS8xXSBEbyBmZXdlciBkaXJlY3Rvcnkgc2NhbnMgb2YgYXJjaGl2ZV9zdGF0dXMuCgpQcmVzZW50 bHksIHRoZSBhcmNoaXZlX3N0YXR1cyBkaXJlY3RvcnkgaXMgc2Nhbm5lZCBmb3IgZWFjaCBmaWxl IHRvCmFyY2hpdmUuICBXaGVuIHRoZXJlIGFyZSBtYW55IGFyY2hpdmUgc3RhdHVzIGZpbGVzIChl LmcuLAphcmNoaXZlX2NvbW1hbmQgaGFzIGJlZW4gZmFpbGluZyBmb3IgYSBsb25nIHRpbWUpLCB0 aGVzZSBkaXJlY3RvcnkKc2NhbnMgY2FuIHRha2UgbXVjaCBsb25nZXIsIHdoaWNoIHNpZ25pZmlj YW50bHkgc2xvd3MgdGhlIHJhdGUgb2YKYXJjaGl2YWwuICBXaXRoIHRoaXMgY2hhbmdlLCB0aGUg YXJjaGl2ZXIgd2lsbCBhdHRlbXB0IHRvIHNraXAgdGhlCmRpcmVjdG9yeSBzY2FuIGJ5IHNpbXBs eSBpbmNyZW1lbnRpbmcgdGhlIHNlZ21lbnQgbnVtYmVyIG9mIHRoZQpsYXN0IGFyY2hpdmVkIGZp bGUuICBUaGlzIHNob3VsZCBncmVhdGx5IGltcHJvdmUgdGhlIHJhdGUgb2YKYXJjaGl2YWwgd2hl biB0aGVyZSBhcmUgbWFueSBmaWxlcyBpbiBhcmNoaXZlX3N0YXR1cy4gIFRvIGVuc3VyZQp0aW1l bGluZSBoaXN0b3J5IGZpbGVzIGFyZSBhcmNoaXZlZCBhcyBxdWlja2x5IGFzIHBvc3NpYmxlLApY TG9nQXJjaGl2ZU5vdGlmeSgpIGZvcmNlcyB0aGUgYXJjaGl2ZXIgdG8gZG8gYSBuZXcgZGlyZWN0 b3J5IHNjYW4KYXMgc29vbiBhcyB0aGUgLnJlYWR5IGZpbGUgZm9yIG9uZSBpcyBjcmVhdGVkLiAg VG8gZW5zdXJlIHRoYXQKLnJlYWR5IGZpbGVzIHRoYXQgYXJlIGNyZWF0ZWQgb3V0LW9mLW9yZGVy IGFyZSBldmVudHVhbGx5IHBpY2tlZAp1cCwgdGhlIGFyY2hpdmVyIGZvcmNlcyBhIGRpcmVjdG9y eSBzY2FuIGV2ZXJ5IGZldyBtaW51dGVzLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L3hsb2dhcmNoaXZlLmMgfCAgMTEgKysKIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdhcmNoLmMg ICAgICAgICAgfCAxNzEgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogc3JjL2luY2x1 ZGUvcG9zdG1hc3Rlci9wZ2FyY2guaCAgICAgICAgICB8ICAgMSArCiAzIGZpbGVzIGNoYW5nZWQs IDE1OCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nYXJjaGl2ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0veGxvZ2FyY2hpdmUuYwppbmRleCAyNmIwMjNlNzU0Li5jYWFiZGE4MGQzIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nYXJjaGl2ZS5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dhcmNoaXZlLmMKQEAgLTQ4OSw2ICs0ODksMTcgQEAg WExvZ0FyY2hpdmVOb3RpZnkoY29uc3QgY2hhciAqeGxvZykKIAkJcmV0dXJuOwogCX0KIAorCS8q CisJICogRm9yY2UgYSBkaXJlY3Rvcnkgc2NhbiBpZiB3ZSBhcmUgYXJjaGl2aW5nIGFueXRoaW5n IGJ1dCBhIHJlZ3VsYXIKKwkgKiBXQUwgZmlsZS4gIFRoZSBhcmNoaXZlciB0cmllcyB0byBjaG9v c2UgZmlsZXMgdG8gYXJjaGl2ZSBieQorCSAqIGluY3JlbWVudGluZyB0aGUgc2VnbWVudCBudW1i ZXIgb2YgdGhlIGxhc3QtYXJjaGl2ZWQgZmlsZSwgd2hpY2gKKwkgKiBtZWFucyB0aGF0IG90aGVy IGZpbGUgdHlwZXMgKGUuZy4sIHRpbWVsaW5lIGhpc3RvcnkgZmlsZXMpIGNvdWxkIGJlCisJICog bGVmdCBiZWhpbmQgaW5kZWZpbml0ZWx5LiAgQnkgZm9yY2luZyBhIGRpcmVjdG9yeSBzY2FuIGZv ciB0aGVzZQorCSAqIG90aGVyIGZpbGUgdHlwZXMsIHdlIGNhbiBlbnN1cmUgdGhlIGFyY2hpdmVy IHdpbGwgcGljayB0aGVtIHVwLgorCSAqLworCWlmICghSXNYTG9nRmlsZU5hbWUoeGxvZykpCisJ CVBnQXJjaEZvcmNlRGlyU2NhbigpOworCiAJLyogTm90aWZ5IGFyY2hpdmVyIHRoYXQgaXQncyBn b3Qgc29tZXRoaW5nIHRvIGRvICovCiAJaWYgKElzVW5kZXJQb3N0bWFzdGVyKQogCQlQZ0FyY2hX YWtldXAoKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdhcmNoLmMgYi9z cmMvYmFja2VuZC9wb3N0bWFzdGVyL3BnYXJjaC5jCmluZGV4IDc0YTdkN2M0ZDAuLjY3YWY1OGIz MzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdhcmNoLmMKKysrIGIvc3Jj L2JhY2tlbmQvcG9zdG1hc3Rlci9wZ2FyY2guYwpAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUg InN0b3JhZ2UvcHJvYy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcHJvY3NpZ25hbC5oIgogI2luY2x1 ZGUgInN0b3JhZ2Uvc2htZW0uaCIKKyNpbmNsdWRlICJzdG9yYWdlL3NwaW4uaCIKICNpbmNsdWRl ICJ1dGlscy9ndWMuaCIKICNpbmNsdWRlICJ1dGlscy9wc19zdGF0dXMuaCIKIApAQCAtNzYsNiAr NzcsMTQgQEAKIHR5cGVkZWYgc3RydWN0IFBnQXJjaERhdGEKIHsKIAlpbnQJCQlwZ3Byb2NubzsJ CS8qIHBncHJvY25vIG9mIGFyY2hpdmVyIHByb2Nlc3MgKi8KKworCS8qCisJICogRm9yY2VzIGEg ZGlyZWN0b3J5IHNjYW4gaW4gcGdhcmNoX3JlYWR5WGxvZygpLiAgUHJvdGVjdGVkIGJ5CisJICog YXJjaF9sY2suCisJICovCisJYm9vbAkJZm9yY2VfZGlyX3NjYW47CisKKwlzbG9ja190CQlhcmNo X2xjazsKIH0gUGdBcmNoRGF0YTsKIAogCkBAIC04NSw2ICs5NCw5IEBAIHR5cGVkZWYgc3RydWN0 IFBnQXJjaERhdGEKICAqLwogc3RhdGljIHRpbWVfdCBsYXN0X3NpZ3Rlcm1fdGltZSA9IDA7CiBz dGF0aWMgUGdBcmNoRGF0YSAqUGdBcmNoID0gTlVMTDsKK3N0YXRpYyBYTG9nU2VnTm8gbGFzdF9h cmNoaXZlZF9zZWdubyA9IDA7CitzdGF0aWMgVGltZUxpbmVJRCBsYXN0X2FyY2hpdmVkX3RsaSA9 IDA7CitzdGF0aWMgVGltZXN0YW1wVHogbGFzdF9kaXJfc2NhbiA9IDA7CiAKIC8qCiAgKiBGbGFn cyBzZXQgYnkgaW50ZXJydXB0IGhhbmRsZXJzIGZvciBsYXRlciBzZXJ2aWNlIGluIHRoZSBtYWlu IGxvb3AuCkBAIC0xMDMsNiArMTE1LDcgQEAgc3RhdGljIGJvb2wgcGdhcmNoX3JlYWR5WGxvZyhj aGFyICp4bG9nKTsKIHN0YXRpYyB2b2lkIHBnYXJjaF9hcmNoaXZlRG9uZShjaGFyICp4bG9nKTsK IHN0YXRpYyB2b2lkIHBnYXJjaF9kaWUoaW50IGNvZGUsIERhdHVtIGFyZyk7CiBzdGF0aWMgdm9p ZCBIYW5kbGVQZ0FyY2hJbnRlcnJ1cHRzKHZvaWQpOworc3RhdGljIGJvb2wgaGlnaGVyX2FyY2hf cHJpb3JpdHkoY29uc3QgY2hhciAqYSwgY29uc3QgY2hhciAqYik7CiAKIC8qIFJlcG9ydCBzaGFy ZWQgbWVtb3J5IHNwYWNlIG5lZWRlZCBieSBQZ0FyY2hTaG1lbUluaXQgKi8KIFNpemUKQEAgLTEy OSw2ICsxNDIsNyBAQCBQZ0FyY2hTaG1lbUluaXQodm9pZCkKIAkJLyogRmlyc3QgdGltZSB0aHJv dWdoLCBzbyBpbml0aWFsaXplICovCiAJCU1lbVNldChQZ0FyY2gsIDAsIFBnQXJjaFNobWVtU2l6 ZSgpKTsKIAkJUGdBcmNoLT5wZ3Byb2NubyA9IElOVkFMSURfUEdQUk9DTk87CisJCVNwaW5Mb2Nr SW5pdCgmUGdBcmNoLT5hcmNoX2xjayk7CiAJfQogfQogCkBAIC0zMjUsNiArMzM5LDE5IEBAIHBn YXJjaF9BcmNoaXZlckNvcHlMb29wKHZvaWQpCiB7CiAJY2hhcgkJeGxvZ1tNQVhfWEZOX0NIQVJT ICsgMV07CiAKKwkvKgorCSAqIEZvcmNlIGEgZGlyZWN0b3J5IHNjYW4gdG8gZmluZCB0aGUgbmV4 dCBmaWxlIHRvIGFyY2hpdmUgaW4gdGhlIGZpcnN0CisJICogY2FsbCB0byBwZ2FyY2hfcmVhZHlY bG9nKCkuICBUaGlzIGlzIGltcG9ydGFudCB0byBkbyBiZWNhdXNlIHRoZQorCSAqIGFyY2hpdmVy IG1heSBqdXN0IGJlIHN0YXJ0aW5nIHVwIG9yIG1heSBoYXZlIGZhaWxlZCBwcmV2aW91c2x5IChh bmQKKwkgKiBhbHJlYWR5IGFkdmFuY2VkIG91ciBuZXh0IGFudGljaXBhdGVkIHNlZ21lbnQgbnVt YmVyIHRvIGFyY2hpdmUpLgorCSAqCisJICogRm9yY2luZyBhIGRpcmVjdG9yeSBzY2FuIGF0IHRo ZSBiZWdpbm5pbmcgb2YgZXZlcnkgY2FsbCB0bworCSAqIHBnYXJjaF9BcmNoaXZlckNvcHlMb29w KCkgbWlnaHQgYmUgdW5uZWNlc3NhcnkgaW4gc29tZSBjYXNlcyBhbmQKKwkgKiBjb3VsZCB0aGVv cmV0aWNhbGx5IHJlc3VsdCBpbiBzbG93ZXIgcmF0ZXMgb2YgYXJjaGl2YWwsIGJ1dCBpdCdzIG5v dAorCSAqIGNsZWFyIGlmIHRoZXJlIGlzIGFueSBzaWduaWZpY2FudCBpbXBhY3QgaW4gcHJhY3Rp Y2UuCisJICovCisJUGdBcmNoRm9yY2VEaXJTY2FuKCk7CisKIAkvKgogCSAqIGxvb3AgdGhyb3Vn aCBhbGwgeGxvZ3Mgd2l0aCBhcmNoaXZlX3N0YXR1cyBvZiAucmVhZHkgYW5kIGFyY2hpdmUKIAkg KiB0aGVtLi4ubW9zdGx5IHdlIGV4cGVjdCB0aGlzIHRvIGJlIGEgc2luZ2xlIGZpbGUsIHRob3Vn aCBpdCBpcyBwb3NzaWJsZQpAQCAtNjAwLDI2ICs2MjcsNzIgQEAgcGdhcmNoX2FyY2hpdmVYbG9n KGNoYXIgKnhsb2cpCiBzdGF0aWMgYm9vbAogcGdhcmNoX3JlYWR5WGxvZyhjaGFyICp4bG9nKQog ewotCS8qCi0JICogb3BlbiB4bG9nIHN0YXR1cyBkaXJlY3RvcnkgYW5kIHJlYWQgdGhyb3VnaCBs aXN0IG9mIHhsb2dzIHRoYXQgaGF2ZSB0aGUKLQkgKiAucmVhZHkgc3VmZml4LCBsb29raW5nIGZv ciBlYXJsaWVzdCBmaWxlLiBJdCBpcyBwb3NzaWJsZSB0byBvcHRpbWlzZQotCSAqIHRoaXMgY29k ZSwgdGhvdWdoIG9ubHkgYSBzaW5nbGUgZmlsZSBpcyBleHBlY3RlZCBvbiB0aGUgdmFzdCBtYWpv cml0eQotCSAqIG9mIGNhbGxzLCBzby4uLi4KLQkgKi8KIAljaGFyCQlYTG9nQXJjaGl2ZVN0YXR1 c0RpcltNQVhQR1BBVEhdOworCWNoYXIJCWJhc2VuYW1lW01BWF9YRk5fQ0hBUlMgKyAxXTsKIAlE SVIJCSAgICpybGRpcjsKIAlzdHJ1Y3QgZGlyZW50ICpybGRlOwogCWJvb2wJCWZvdW5kID0gZmFs c2U7Ci0JYm9vbAkJaGlzdG9yeUZvdW5kID0gZmFsc2U7CisJYm9vbAkJZm9yY2VfZGlyX3NjYW47 CisJVGltZXN0YW1wVHoJbm93OworCisJLyoKKwkgKiBXZSBmaXJzdCB0cnkgdG8gY2hvb3NlIGEg bmV3IGZpbGUgdG8gYXJjaGl2ZSB3aXRob3V0IGEgZGlyZWN0b3J5CisJICogc2Nhbi4gIElmIHBv c3NpYmxlLCB3ZSBzaW1wbHkgaW5jcmVtZW50IHRoZSBzZWdtZW50IG51bWJlciBvZiB0aGUKKwkg KiBsYXN0IGFyY2hpdmVkIFdBTCBmaWxlIGFuZCBnZW5lcmF0ZSB0aGUgbmV4dCBhbnRpY2lwYXRl ZCBXQUwgZmlsZQorCSAqIG5hbWUuCisJICoKKwkgKiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB3 ZSBtdXN0IHBlcmZvcm0gYSBkaXJlY3Rvcnkgc2NhbiB0byBmaW5kIHRoZQorCSAqIG5leHQgZmls ZSB0byBhcmNoaXZlIChlLmcuLCB0aGUgZmlsZSBpcyBub3QgYSByZWd1bGFyIFdBTCBmaWxlKS4K KwkgKiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGluY3JlbWVudGluZyB0aGUgc2VnbWVudCBu dW1iZXIgd29uJ3QgaGVscAorCSAqIHVzIGZpbmQgb3RoZXIgZmlsZXMgYmVzaWRlcyByZWd1bGFy IFdBTCBmaWxlcywgYW5kIC5yZWFkeSBmaWxlcyBtYXkKKwkgKiBzb21ldGltZXMgYmUgY3JlYXRl ZCBvdXQgb2Ygb3JkZXIuICBUbyBoYW5kbGUgb3RoZXIgZmlsZSB0eXBlcywKKwkgKiBYTG9nQXJj aGl2ZU5vdGlmeSgpIHdpbGwgcmVxdWVzdCBhIGRpcmVjdG9yeSBzY2FuIHdoZW4gY3JlYXRpbmcg dGhlCisJICogLnJlYWR5IGZpbGUuICBUbyBoYW5kbGUgb3V0IG9mIG9yZGVyIC5yZWFkeSBmaWxl cywgd2UgZm9yY2UgYQorCSAqIGRpcmVjdG9yeSBzY2FuIGV2ZXJ5IDMgbWludXRlcy4KKwkgKi8K KwlTcGluTG9ja0FjcXVpcmUoJlBnQXJjaC0+YXJjaF9sY2spOworCWZvcmNlX2Rpcl9zY2FuID0g UGdBcmNoLT5mb3JjZV9kaXJfc2NhbjsKKwlQZ0FyY2gtPmZvcmNlX2Rpcl9zY2FuID0gZmFsc2U7 CisJU3BpbkxvY2tSZWxlYXNlKCZQZ0FyY2gtPmFyY2hfbGNrKTsKKworCW5vdyA9IEdldEN1cnJl bnRUaW1lc3RhbXAoKTsKKwlpZiAoZm9yY2VfZGlyX3NjYW4gfHwKKwkJVGltZXN0YW1wRGlmZmVy ZW5jZUV4Y2VlZHMobGFzdF9kaXJfc2Nhbiwgbm93LCAxODAwMDApKQorCXsKKwkJbGFzdF9kaXJf c2NhbiA9IG5vdzsKKwkJZm9yY2VfZGlyX3NjYW4gPSB0cnVlOworCX0KKworCWlmICghZm9yY2Vf ZGlyX3NjYW4pCisJeworCQlzdHJ1Y3Qgc3RhdAlzdDsKKwkJY2hhcgkJcmVhZHlmaWxlW01BWFBH UEFUSF07CisKKwkJbGFzdF9hcmNoaXZlZF9zZWdubysrOworCQlYTG9nRmlsZU5hbWUoYmFzZW5h bWUsIGxhc3RfYXJjaGl2ZWRfdGxpLCBsYXN0X2FyY2hpdmVkX3NlZ25vLCB3YWxfc2VnbWVudF9z aXplKTsKIAorCQlTdGF0dXNGaWxlUGF0aChyZWFkeWZpbGUsIGJhc2VuYW1lLCAiLnJlYWR5Iik7 CisJCWlmIChzdGF0KHJlYWR5ZmlsZSwgJnN0KSA9PSAwKQorCQl7CisJCQlzdHJjcHkoeGxvZywg YmFzZW5hbWUpOworCQkJcmV0dXJuIHRydWU7CisJCX0KKwkJZWxzZSBpZiAoZXJybm8gIT0gRU5P RU5UKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCks CisJCQkJCSBlcnJtc2coImNvdWxkIG5vdCBzdGF0IGZpbGUgXCIlc1wiOiAlbSIsIHJlYWR5Zmls ZSkpKTsKKwl9CisKKwkvKgorCSAqIE9wZW4gdGhlIGFyY2hpdmUgc3RhdHVzIGRpcmVjdG9yeSBh bmQgcmVhZCB0aHJvdWdoIHRoZSBsaXN0IG9mIGZpbGVzCisJICogd2l0aCB0aGUgLnJlYWR5IHN1 ZmZpeCwgbG9va2luZyBmb3IgdGhlIGVhcmxpZXN0IGZpbGUuCisJICovCiAJc25wcmludGYoWExv Z0FyY2hpdmVTdGF0dXNEaXIsIE1BWFBHUEFUSCwgWExPR0RJUiAiL2FyY2hpdmVfc3RhdHVzIik7 CiAJcmxkaXIgPSBBbGxvY2F0ZURpcihYTG9nQXJjaGl2ZVN0YXR1c0Rpcik7CiAKIAl3aGlsZSAo KHJsZGUgPSBSZWFkRGlyKHJsZGlyLCBYTG9nQXJjaGl2ZVN0YXR1c0RpcikpICE9IE5VTEwpCiAJ ewogCQlpbnQJCQliYXNlbmFtZWxlbiA9IChpbnQpIHN0cmxlbihybGRlLT5kX25hbWUpIC0gNjsK LQkJY2hhcgkJYmFzZW5hbWVbTUFYX1hGTl9DSEFSUyArIDFdOwotCQlib29sCQlpc2hpc3Rvcnk7 CiAKIAkJLyogSWdub3JlIGVudHJpZXMgd2l0aCB1bmV4cGVjdGVkIG51bWJlciBvZiBjaGFyYWN0 ZXJzICovCiAJCWlmIChiYXNlbmFtZWxlbiA8IE1JTl9YRk5fQ0hBUlMgfHwKQEAgLTYzOCwzNCAr NzExLDgyIEBAIHBnYXJjaF9yZWFkeVhsb2coY2hhciAqeGxvZykKIAkJbWVtY3B5KGJhc2VuYW1l LCBybGRlLT5kX25hbWUsIGJhc2VuYW1lbGVuKTsKIAkJYmFzZW5hbWVbYmFzZW5hbWVsZW5dID0g J1wwJzsKIAotCQkvKiBJcyB0aGlzIGEgaGlzdG9yeSBmaWxlPyAqLwotCQlpc2hpc3RvcnkgPSBJ c1RMSGlzdG9yeUZpbGVOYW1lKGJhc2VuYW1lKTsKLQogCQkvKgotCQkgKiBDb25zdW1lIHRoZSBm aWxlIHRvIGFyY2hpdmUuICBIaXN0b3J5IGZpbGVzIGhhdmUgdGhlIGhpZ2hlc3QKLQkJICogcHJp b3JpdHkuICBJZiB0aGlzIGlzIHRoZSBmaXJzdCBmaWxlIG9yIHRoZSBmaXJzdCBoaXN0b3J5IGZp bGUKLQkJICogZXZlciwgY29weSBpdC4gIEluIHRoZSBwcmVzZW5jZSBvZiBhIGhpc3RvcnkgZmls ZSBhbHJlYWR5IGNob3NlbiBhcwotCQkgKiB0YXJnZXQsIGlnbm9yZSBhbGwgb3RoZXIgZmlsZXMg ZXhjZXB0IGhpc3RvcnkgZmlsZXMgd2hpY2ggaGF2ZSBiZWVuCi0JCSAqIGdlbmVyYXRlZCBmb3Ig YW4gb2xkZXIgdGltZWxpbmUgdGhhbiB3aGF0IGlzIGFscmVhZHkgY2hvc2VuIGFzCi0JCSAqIHRh cmdldCB0byBhcmNoaXZlLgorCQkgKiBJZiB0aGlzIGlzIHRoZSBmaXJzdCBmaWxlIG9yIHRoaXMg ZmlsZSBoYXMgYSBoaWdoZXIgYXJjaGl2ZQorCQkgKiBwcmlvcml0eSB0aGFuIHRoZSBjdXJyZW50 IG9uZSBzdG9yZWQsIGNvcHkgaXQuCiAJCSAqLwotCQlpZiAoIWZvdW5kIHx8IChpc2hpc3Rvcnkg JiYgIWhpc3RvcnlGb3VuZCkpCisJCWlmICghZm91bmQgfHwgaGlnaGVyX2FyY2hfcHJpb3JpdHko YmFzZW5hbWUsIHhsb2cpKQogCQl7CiAJCQlzdHJjcHkoeGxvZywgYmFzZW5hbWUpOwogCQkJZm91 bmQgPSB0cnVlOwotCQkJaGlzdG9yeUZvdW5kID0gaXNoaXN0b3J5OwotCQl9Ci0JCWVsc2UgaWYg KGlzaGlzdG9yeSB8fCAhaGlzdG9yeUZvdW5kKQotCQl7Ci0JCQlpZiAoc3RyY21wKGJhc2VuYW1l LCB4bG9nKSA8IDApCi0JCQkJc3RyY3B5KHhsb2csIGJhc2VuYW1lKTsKIAkJfQogCX0KIAlGcmVl RGlyKHJsZGlyKTsKIAorCS8qCisJICogSWYgd2UgZm91bmQgYSByZWd1bGFyIFdBTCBmaWxlLCB1 cGRhdGUgb3VyIGluLW1lbW9yeSBzdGF0ZS4KKwkgKiBPdGhlcndpc2UsIHdlIGhhdmUgdG8gZG8g YSBkaXJlY3Rvcnkgc2NhbiB0aGUgbmV4dCB0aW1lIGFyb3VuZC4KKwkgKi8KKwlpZiAoZm91bmQg JiYgSXNYTG9nRmlsZU5hbWUoeGxvZykpCisJCVhMb2dGcm9tRmlsZU5hbWUoeGxvZywgJmxhc3Rf YXJjaGl2ZWRfdGxpLCAmbGFzdF9hcmNoaXZlZF9zZWdubywgd2FsX3NlZ21lbnRfc2l6ZSk7CisJ ZWxzZQorCQlQZ0FyY2hGb3JjZURpclNjYW4oKTsKKwogCXJldHVybiBmb3VuZDsKIH0KIAorLyoK KyAqIGhpZ2hlcl9hcmNoX3ByaW9yaXR5CisgKgorICogQ29tcGFyZXMgdGhlIGFyY2hpdmFsIHBy aW9yaXR5IG9mIHRoZSB0d28gZmlsZSBuYW1lcy4gIElmICJhIiBoYXMgYQorICogaGlnaGVyIHBy aW9yaXR5IHRoYW4gImIiLCB0cnVlIGlzIHJldHVybmVkLiAgT3RoZXJ3aXNlLCBmYWxzZSBpcwor ICogcmV0dXJuZWQuCisgKi8KK3N0YXRpYyBib29sCitoaWdoZXJfYXJjaF9wcmlvcml0eShjb25z dCBjaGFyICphLCBjb25zdCBjaGFyICpiKQoreworCWJvb2wgYV9pc2hpc3RvcnkgPSBJc1RMSGlz dG9yeUZpbGVOYW1lKGEpOworCWJvb2wgYl9pc2hpc3RvcnkgPSBJc1RMSGlzdG9yeUZpbGVOYW1l KGIpOworCWJvb2wgYV9pc2JhY2t1cGhpc3RvcnkgPSBJc0JhY2t1cEhpc3RvcnlGaWxlTmFtZShh KTsKKwlib29sIGJfaXNiYWNrdXBoaXN0b3J5ID0gSXNCYWNrdXBIaXN0b3J5RmlsZU5hbWUoYik7 CisKKwkvKgorCSAqIFRpbWVsaW5lIGhpc3RvcnkgZmlsZXMgaGF2ZSBhIGhpZ2hlciBwcmlvcml0 eSB0aGFuIGV2ZXJ5dGhpbmcgZWxzZS4KKwkgKiBCYWNrdXAgaGlzdG9yeSBmaWxlcyBhcmUgZ2l2 ZW4gdGhlIHNlY29uZCBoaWdoZXN0IHByaW9yaXR5IHNvIHRoYXQKKwkgKiB0aGUgYXJjaGl2ZXIg cGlja3MgdGhlbSB1cCB3aGVuIGEgZGlyZWN0b3J5IHNjYW4gaXMgZm9yY2VkLiAgV2UgZG8KKwkg KiBub3QgZ2l2ZSAucGFydGlhbCBmaWxlcyBhIGhpZ2hlciBwcmlvcml0eSwgYXMgaXQgaXMgZXhw ZWN0ZWQgdGhhdAorCSAqIHRoZSBhcmNoaXZlciBwcm9jZXNzIHdpbGwgZXZlbnR1YWxseSBmYWxs IGJhY2sgdG8gYSBkaXJlY3Rvcnkgc2NhbgorCSAqIGR1ZSB0byB0aGUgdGltZWxpbmUgc3dpdGNo LgorCSAqLworCWlmIChhX2lzaGlzdG9yeSB8fCBiX2lzaGlzdG9yeSkKKwl7CisJCWlmIChhX2lz aGlzdG9yeSAhPSBiX2lzaGlzdG9yeSkKKwkJCXJldHVybiBhX2lzaGlzdG9yeTsKKwl9CisJZWxz ZSBpZiAoYV9pc2JhY2t1cGhpc3RvcnkgfHwgYl9pc2JhY2t1cGhpc3RvcnkpCisJeworCQlpZiAo YV9pc2JhY2t1cGhpc3RvcnkgIT0gYl9pc2JhY2t1cGhpc3RvcnkpCisJCQlyZXR1cm4gYV9pc2Jh Y2t1cGhpc3Rvcnk7CisJfQorCisJcmV0dXJuIChzdHJjbXAoYSwgYikgPCAwKTsKK30KKworLyoK KyAqIFBnQXJjaEZvcmNlRGlyU2NhbgorICoKKyAqIFdoZW4gY2FsbGVkLCB0aGUgbmV4dCBjYWxs IHRvIHBnYXJjaF9yZWFkeVhsb2coKSB3aWxsIHBlcmZvcm0gYQorICogZGlyZWN0b3J5IHNjYW4u ICBUaGlzIGlzIHVzZWZ1bCBmb3IgZW5zdXJpbmcgdGhhdCBpbXBvcnRhbnQgZmlsZXMgc3VjaAor ICogYXMgdGltZWxpbmUgaGlzdG9yeSBmaWxlcyBhcmUgYXJjaGl2ZWQgYXMgcXVpY2tseSBhcyBw b3NzaWJsZS4KKyAqLwordm9pZAorUGdBcmNoRm9yY2VEaXJTY2FuKHZvaWQpCit7CisJU3Bpbkxv Y2tBY3F1aXJlKCZQZ0FyY2gtPmFyY2hfbGNrKTsKKwlQZ0FyY2gtPmZvcmNlX2Rpcl9zY2FuID0g dHJ1ZTsKKwlTcGluTG9ja1JlbGVhc2UoJlBnQXJjaC0+YXJjaF9sY2spOworfQorCiAvKgogICog cGdhcmNoX2FyY2hpdmVEb25lCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9zdG1hc3Rl ci9wZ2FyY2guaCBiL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvcGdhcmNoLmgKaW5kZXggMWU0N2Ex NDNlMS4uNzMyNjE1YmU1NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9wZ2Fy Y2guaAorKysgYi9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL3BnYXJjaC5oCkBAIC0zMSw1ICszMSw2 IEBAIGV4dGVybiB2b2lkIFBnQXJjaFNobWVtSW5pdCh2b2lkKTsKIGV4dGVybiBib29sIFBnQXJj aENhblJlc3RhcnQodm9pZCk7CiBleHRlcm4gdm9pZCBQZ0FyY2hpdmVyTWFpbih2b2lkKSBwZ19h dHRyaWJ1dGVfbm9yZXR1cm4oKTsKIGV4dGVybiB2b2lkIFBnQXJjaFdha2V1cCh2b2lkKTsKK2V4 dGVybiB2b2lkIFBnQXJjaEZvcmNlRGlyU2Nhbih2b2lkKTsKIAogI2VuZGlmCQkJCQkJCS8qIF9Q R0FSQ0hfSCAqLwotLSAKMi4xNi42Cgo= --_002_C472F58F4E9B49C282FF2E373ADEFE34amazoncom_--