AW: AW: sieve-test (Pigeonhole) on Ubuntu: PCRE support and address test restrictions on Return-Path
Michael Merz via dovecot <[email protected]> Fri, 10 Jul 2026 19:24:27 +0200
| Newsgroups | gmane.mail.imap.dovecot |
|---|---|
| Message-ID | <!&!AAAAAAAAAAAYAAAAAAAAAEARHlAfdINIvecG/[email protected]> |
SGVsbG8gQWtpLA0KDQpUaGFuayB5b3UgZm9yIHRoZSBjbGFyaWZpY2F0aW9uIOKAlCB0aGF0IGlz IHZlcnkgZW5jb3VyYWdpbmcgbmV3cy4NCkhlcmUgYXJlIGNvbmNyZXRlIGV4YW1wbGVzIG9mIHRo ZSByZWd1bGFyIGV4cHJlc3Npb25zIHVzZWQgaW4gbXkgcnVsZXNldCwgYWxvbmcgd2l0aCB0aGUg c2lldmUtdGVzdCBlcnJvciBtZXNzYWdlcyB0aGV5IHByb2R1Y2U6DQoNCkV4YW1wbGUgMSDigJQg aGVhZGVyIDpyZWdleCB0ZXN0Og0KDQogIGlmIGhlYWRlciA6cmVnZXggIlgtU3BhbS1TdGF0dXMi ICIoP2kpc2NvcmU9WzEtOV0iIHsNCg0KICBFcnJvcjogaW52YWxpZCByZWd1bGFyIGV4cHJlc3Np b24gJyg/aSlzY29yZT1bMS05XScgZm9yIHJlZ2V4IG1hdGNoOg0KICAgICAgICAgaW52YWxpZCBw cmVjZWRpbmcgcmVndWxhciBleHByZXNzaW9uDQoNCkV4YW1wbGUgMiDigJQgaGVhZGVyIDpyZWdl eCB0ZXN0Og0KDQogIGlmIGhlYWRlciA6cmVnZXggImZyb20iICIoP2kpZ3JvdXBzXC5nb29nbGVc LmNvbSIgew0KDQogIEVycm9yOiBpbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbiAnKD9pKWdyb3Vw c1wuZ29vZ2xlXC5jb20nIGZvciByZWdleCBtYXRjaDoNCiAgICAgICAgIGludmFsaWQgcHJlY2Vk aW5nIHJlZ3VsYXIgZXhwcmVzc2lvbg0KDQpFeGFtcGxlIDMg4oCUIGhlYWRlciA6cmVnZXggdGVz dCB3aXRoIGFuY2hvcmluZzoNCg0KICBpZiBoZWFkZXIgOnJlZ2V4ICJzdWJqZWN0IiAiXig/aSko cmV8ZndkKToiIHsNCg0KICBFcnJvcjogaW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb24gJ14oP2kp KHJlfGZ3ZCk6JyBmb3IgcmVnZXggbWF0Y2g6DQogICAgICAgICBpbnZhbGlkIHByZWNlZGluZyBy ZWd1bGFyIGV4cHJlc3Npb24NCg0KQWxsIGVycm9ycyBmb2xsb3cgdGhlIHNhbWUgcGF0dGVybjog dGhlICg/aSkgaW5saW5lIGZsYWcgZm9yIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hpbmcgaXMgcmVq ZWN0ZWQgcmVnYXJkbGVzcyBvZiBpdHMgcG9zaXRpb24gaW4gdGhlIGV4cHJlc3Npb24gb3IgdGhl IGhlYWRlciBiZWluZyB0ZXN0ZWQuDQoNClRoZSBmdWxsIHJlcXVpcmUgc3RhdGVtZW50IGF0IHRo ZSB0b3Agb2YgdGhlIHNjcmlwdCBpczoNCg0KICByZXF1aXJlIFsiZmlsZWludG8iLCAicmVqZWN0 IiwgInZhY2F0aW9uIiwgInJlZ2V4IiwgImNvcHkiLA0KICAgICAgICAgICAiYm9keSIsICJ2YXJp YWJsZXMiLCAiaW1hcDRmbGFncyIsICJlZGl0aGVhZGVyIl07DQoNCnNpZXZlLXRlc3QgaXMgaW52 b2tlZCBhcyBmb2xsb3dzOg0KDQogIHNpZXZlLXRlc3QgXA0KICAgIC14ICJmaWxlaW50byByZWdl eCBjb3B5IGJvZHkgdmFyaWFibGVzIGltYXA0ZmxhZ3MgZWRpdGhlYWRlciIgXA0KICAgIC10IC90 bXAvdHJhY2UudHh0IFwNCiAgICB+L3NpZXZlLXRlc3QvcnVsZXMvdjRfMF8xMy5zaWV2ZSBcDQog ICAgPG1haWwuZW1sPg0KDQpEb3ZlY290IHZlcnNpb246IDI6Mi40LjQtNSt1YnVudHUyNC4wNCAo ZnJvbSByZXBvLmRvdmVjb3Qub3JnKQ0KVWJ1bnR1OiAyNC4wNC4zIExUUyAoTm9ibGUpLCBXU0wy DQoNClRoYW5rIHlvdSB2ZXJ5IG11Y2ggZm9yIGxvb2tpbmcgaW50byB0aGlzLg0KDQpCZXN0IHJl Z2FyZHMsDQpNaWNoYWVsIE1lcnoNCm1pY2hhZWwubWVyekB3dG5ldC5kZQ0KDQpNaWNoYWVsIE1l cnoNCkJhcmdrb3BwZWwgMTUsIDIyODQ0IE5vcmRlcnN0ZWR0DQpNb2JpbCAwMTcyIDQwNDkxNzEN Cg0KLS0tLS1VcnNwcsO8bmdsaWNoZSBOYWNocmljaHQtLS0tLQ0KVm9uOiBBa2kgVHVvbWkgdmlh IGRvdmVjb3QgPGRvdmVjb3RAZG92ZWNvdC5vcmc+IA0KR2VzZW5kZXQ6IEZyZWl0YWcsIDEwLiBK dWxpIDIwMjYgMTk6MTYNCkFuOiBtaWNoYWVsLm1lcnpAd3RuZXQuZGU7IE1pY2hhZWwgTWVyeiB2 aWEgZG92ZWNvdCA8ZG92ZWNvdEBkb3ZlY290Lm9yZz4NCkNjOiBTdGVwaGFuIEJvc2NoIDxzdGVw aGFuQHJlbmFtZS1pdC5ubD4NCkJldHJlZmY6IFJlOiBBVzogc2lldmUtdGVzdCAoUGlnZW9uaG9s ZSkgb24gVWJ1bnR1OiBQQ1JFIHN1cHBvcnQgYW5kIGFkZHJlc3MgdGVzdCByZXN0cmljdGlvbnMg b24gUmV0dXJuLVBhdGgNCg0KQnVpbGQgb3B0aW9ucyBkb2VzIG5vdCBpbmNsdWRlIGFsbCBidWls ZCBvcHRpb25zLCB1bmZvcnR1bmF0ZWx5LiAiaW52YWxpZCBwcmVjZWRpbmcgcmVndWxhciBleHBy ZXNzaW9uIiBtZWFucyB0aGUgUENSRSBpcyBhdmFpbGFibGUsIHRoZSBlcnJvciB3b3VsZCBiZSBj bGVhciB0aGF0IHRoZXJlIGlzIG5vIFBDUkUgc3VwcG9ydCBpZiBpdCB3YXMgbWlzc2luZy4NCg0K Q2FuIHlvdSBwcm92aWRlIHRoZSBleGFjdCByZWd1bGFyIGV4cHJlc3Npb24sIGFuZCBob3cgeW91 IGFyZSB1c2luZyBpdD8gDQoNCkFraQ0KDQo+IE9uIDEwLzA3LzIwMjYgMjA6MDYgRUVTVCBNaWNo YWVsIE1lcnogdmlhIGRvdmVjb3QgPGRvdmVjb3RAZG92ZWNvdC5vcmc+IHdyb3RlOg0KPiANCj4g IA0KPiBIZWxsbyBBa2ksDQo+IA0KPiBUaGFuayB5b3UgZm9yIHRoZSBwb2ludGVyIHRvIGh0dHBz Oi8vcmVwby5kb3ZlY290Lm9yZy4gDQo+IEkgaGF2ZSBub3cgaW5zdGFsbGVkIERvdmVjb3QgMi40 LjQgZnJvbSB0aGUgb2ZmaWNpYWwgcmVwb3NpdG9yeSBvbiBVYnVudHUgMjQuMDQgTFRTIChOb2Js ZSkgYW5kIGNhbiBjb25maXJtIHRoYXQgdGhlIHBhY2thZ2VzIGFyZSBhdmFpbGFibGUgYW5kIGlu c3RhbGwgY29ycmVjdGx5Lg0KPiBIb3dldmVyLCBjaGVja2luZyB0aGUgYnVpbGQgb3B0aW9ucyBz aG93cyB0aGF0IFBDUkUgc3VwcG9ydCBpcyBub3QgaW5jbHVkZWQ6IA0KPiANCj4gICAkIGRvdmVj b3QgLS1idWlsZC1vcHRpb25zIA0KPiAgIEJ1aWxkIG9wdGlvbnM6IGlvbG9vcD1lcG9sbCBub3Rp Znk9aW5vdGlmeSBleHBlcmltZW50YWwtaW1hcDRyZXYyIG9wZW5zc2wgaW9fYmxvY2tfc2l6ZT04 MTkyIA0KPiAgIFNRTCBkcml2ZXIgcGx1Z2luczogbXlzcWwgcG9zdGdyZXNxbCBzcWxpdGUgDQo+ ICAgUGFzc2RiOiBsZGFwIHBhbSBwYXNzd2QgcGFzc3dkLWZpbGUgc3FsIA0KPiAgIFVzZXJkYjog bGRhcChwbHVnaW4pIHBhc3N3ZCBwcmVmZXRjaCBwYXNzd2QtZmlsZSBzcWwNCj4gDQo+IFRoZXJl IGlzIG5vIFBDUkUgZW50cnksIGFuZCBzaWV2ZS10ZXN0IHN0aWxsIHJlamVjdHMgYWxsICg/aSkg aW5saW5lIGZsYWdzIGluIHJlZ2V4IGV4cHJlc3Npb25zIHdpdGggImludmFsaWQgcHJlY2VkaW5n IHJlZ3VsYXIgZXhwcmVzc2lvbiIuDQo+IE1heSBJIGFzazogaXMgUENSRSBzdXBwb3J0IGludGVu dGlvbmFsbHkgbm90IGluY2x1ZGVkIGluIHRoZSBvZmZpY2lhbCBEb3ZlY290L1BpZ2VvbmhvbGUg cGFja2FnZXMsIG9yIGlzIHRoaXMgYW4gb3ZlcnNpZ2h0IGluIHRoZSBidWlsZCBjb25maWd1cmF0 aW9uPyANCj4gSWYgUENSRSBpcyBub3QgcGxhbm5lZCB0byBiZSBpbmNsdWRlZCwgaXMgdGhlcmUg YSByZWNvbW1lbmRlZCBhbHRlcm5hdGl2ZSBhcHByb2FjaCBmb3IgYWNoaWV2aW5nIGNhc2UtaW5z ZW5zaXRpdmUgcmVnZXggbWF0Y2hpbmcgaW4gUGlnZW9uaG9sZSdzIHNpZXZlLXRlc3QgdGhhdCB3 b3VsZCBiZSBjb21wYXRpYmxlIHdpdGggQ3lydXMgSU1BUGQncyBQQ1JFLWJhc2VkIHJlZ2V4IHN5 bnRheD8NCj4gDQo+IFRoYW5rIHlvdSBhZ2FpbiBmb3IgeW91ciBoZWxwLiANCj4gQmVzdCByZWdh cmRzLA0KPiBNaWNoYWVsIE1lcnoNCj4gbWljaGFlbC5tZXJ6QHd0bmV0LmRlDQo+IA0KPiAtLS0t LVVyc3Byw7xuZ2xpY2hlIE5hY2hyaWNodC0tLS0tDQo+IFZvbjogQWtpIFR1b21pIHZpYSBkb3Zl Y290IDxkb3ZlY290QGRvdmVjb3Qub3JnPg0KPiBHZXNlbmRldDogRnJlaXRhZywgMTAuIEp1bGkg MjAyNiAwNjo1MQ0KPiBBbjogTWljaGFlbCBNZXJ6IDxtaWNoYWVsLm1lcnpAd3RuZXQuZGU+OyBN aWNoYWVsIE1lcnogdmlhIGRvdmVjb3QgDQo+IDxkb3ZlY290QGRvdmVjb3Qub3JnPjsgU3RlcGhh biBCb3NjaCA8c3RlcGhhbkByZW5hbWUtaXQubmw+DQo+IEJldHJlZmY6IFJlOiBzaWV2ZS10ZXN0 IChQaWdlb25ob2xlKSBvbiBVYnVudHU6IFBDUkUgc3VwcG9ydCBhbmQgDQo+IGFkZHJlc3MgdGVz dCByZXN0cmljdGlvbnMgb24gUmV0dXJuLVBhdGgNCj4gDQo+IFlvdSBjYW4gZ2V0IDIuNC40IHBh Y2thZ2VzIGZvciB1YnVudHUgMjQuMDQgZnJvbSANCj4gaHR0cHM6Ly9yZXBvLmRvdmVjb3Qub3Jn DQo+IA0KPiBBa2kNCj4gDQo+ID4gT24gMDkvMDcvMjAyNiAyMjoyMSBFRVNUIE1pY2hhZWwgTWVy eiB2aWEgZG92ZWNvdCA8ZG92ZWNvdEBkb3ZlY290Lm9yZz4gd3JvdGU6DQo+ID4gDQo+ID4gIA0K PiA+IERlYXIgU3RlcGhhbiwNCj4gPiANCj4gPiBUaGFuayB5b3UgdmVyeSBtdWNoIGZvciB5b3Vy IHF1aWNrIGFuZCBoZWxwZnVsIHJlc3BvbnNlLg0KPiA+IA0KPiA+IFJlZ2FyZGluZyBwb2ludCAx IChQQ1JFIHN1cHBvcnQpLCB5b3VyIGNvbW1lbnQgdGhhdCBVYnVudHUgMjQuMDQgaXMgImxpa2Vs eSBzdHVjayBhdCBhIHF1aXRlIG9sZCB2ZXJzaW9uIG9mIFBpZ2VvbmhvbGUiIHJhaXNlcyBhIGZv bGxvdy11cCBxdWVzdGlvbjoNCj4gPiANCj4gPiBGcm9tIHdoaWNoIHZlcnNpb24gb2YgUGlnZW9u aG9sZSBvbndhcmRzIGlzIFBDUkUgc3VwcG9ydCBpbmNsdWRlZCBieSBkZWZhdWx0IChpLmUuIGNv bXBpbGVkIGluIHdpdGhvdXQgcmVxdWlyaW5nIGFuIGV4cGxpY2l0IC0td2l0aC1wY3JlIGZsYWcp PyBBbmQgaXMgdGhlcmUgYW4gb2ZmaWNpYWwgcmVwb3NpdG9yeSwgUFBBLCBvciByZWNvbW1lbmRl ZCB3YXkgdG8gb2J0YWluIGEgbW9yZSByZWNlbnQgUGlnZW9uaG9sZS9kb3ZlY290LXNpZXZlIGJp bmFyeSBmb3IgVWJ1bnR1IDI0LjA0IExUUyB0aGF0IHdvdWxkIGluY2x1ZGUgUENSRSBzdXBwb3J0 IG91dCBvZiB0aGUgYm94Pw0KPiA+IA0KPiA+IFJlZ2FyZGluZyBwb2ludCAyIChSZXR1cm4tUGF0 aCAvIGVudmVsb3BlIHRlc3QpOiB0aGFuayB5b3UgZm9yIHRoZSBwb2ludGVyLiBJIHVuZGVyc3Rh bmQgdGhhdCB0aGUgZW52ZWxvcGUgdGVzdCB3b3VsZCBiZSB0aGUgUkZDLWNvbXBsaWFudCBhbHRl cm5hdGl2ZSB3aXRoaW4gUGlnZW9uaG9sZS4gSG93ZXZlciwgc2luY2UgbXkgcnVsZXNldCBydW5z IG9uIGEgQ3lydXMgYmFja2VuZCB3aGVyZSB0aGUgYWRkcmVzcyB0ZXN0IG9uIFJldHVybi1QYXRo IHdvcmtzIGZpbmUsIHRoaXMgd291bGQgbWVhbiBtYWludGFpbmluZyB0d28gZGlmZmVyZW50IHZl cnNpb25zIG9mIHRoZSBydWxlc2V0IOKAlCBvbmUgZm9yIHByb2R1Y3Rpb24gKEN5cnVzKSBhbmQg b25lIGZvciBvZmZsaW5lIHRlc3RpbmcgKFBpZ2VvbmhvbGUpLiBUaGF0IHNvbWV3aGF0IGRlZmVh dHMgdGhlIHB1cnBvc2Ugb2Ygb2ZmbGluZSB0ZXN0aW5nLCBzbyBJIG1lbnRpb24gaXQgb25seSBm b3IgY29tcGxldGVuZXNzLg0KPiA+IA0KPiA+IFRoZSBrZXkgcXVlc3Rpb24gdGhlcmVmb3JlIHJl bWFpbnMgd2hldGhlciBhIFBDUkUtZW5hYmxlZCBQaWdlb25ob2xlIGJpbmFyeSBpcyByZWFsaXN0 aWNhbGx5IG9idGFpbmFibGUgZm9yIFVidW50dSAyNC4wNCwgYXMgdGhhdCB3b3VsZCByZXNvbHZl IHRoZSBtYWluIGJsb2NrZXIuDQo+ID4gDQo+ID4gVGhhbmsgeW91IGFnYWluIGZvciB5b3VyIHRp bWUuDQo+ID4gDQo+ID4gQmVzdCByZWdhcmRzLA0KPiA+IE1pY2hhZWwgTWVyeg0KPiA+IA0KPiA+ IHZvbiBtZWluZW0gaVBhZCBQcm8gNEdlbiBnZXNlbmRldA0KPiA+IA0KPiA+ID4gQW0gMDkuMDcu MjAyNiB1bSAxODozOSBzY2hyaWViIFN0ZXBoYW4gQm9zY2ggPHN0ZXBoYW5AcmVuYW1lLWl0Lm5s PjoNCj4gPiA+IA0KPiA+ID4g77u/DQo+ID4gPiBPcCAyOS02LTIwMjYgb20gMDk6NTYgc2NocmVl ZiBtaWNoYWVsLm1lcnotLS0gdmlhIGRvdmVjb3Q6DQo+ID4gPj4gICAgSGVsbG8sDQo+ID4gPj4g DQo+ID4gPj4gDQo+ID4gPj4gDQo+ID4gPj4gICAgSSd2ZSBiZWVuIGV2YWx1YXRpbmcgc2lldmUt dGVzdCAoUGlnZW9uaG9sZSwgZG92ZWNvdC1zaWV2ZSBwYWNrYWdlLA0KPiA+ID4+ICAgIHZlcnNp b24gMi4zLjIxLCBhcyBzaGlwcGVkIHdpdGggVWJ1bnR1IDI0LjA0IExUUykgYXMgYW4gb2ZmbGlu ZSB0ZXN0aW5nDQo+ID4gPj4gICAgdG9vbCBmb3IgYSBwZXJzb25hbCBTaWV2ZSBydWxlc2V0IHRo YXQgY3VycmVudGx5IHJ1bnMgb24gYSBDeXJ1cyBJTUFQZC9DTVUNCj4gPiA+PiAgICBTaWV2ZSAz LjAgYmFja2VuZC4NCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiBEaWZmZXJlbnQgaW1wbGVtZW50YXRp b24gYW5kIGRlc2lnbiBjaG9pY2VzIHdpbGwgbWVhbiB0aGF0IERvdmVjb3QgaGFzIGEgZGlmZmVy ZW50IG9waW5pb24gd2hhdCBpcyBhIHZhbGlkIFNpZXZlIHNjcmlwdCBhbmQgaG93IGl0IGlzIHRv IGJlIGV2YWx1YXRlZCB0aGFuIEN5cnVzLCBtYWtpbmcgdGhpcyBwcm9ibGVtYXRpYy4NCj4gPiA+ IA0KPiA+ID4gDQo+ID4gPj4gICAgSSdkIGxpa2UgdG8gYXNrIGZvciBzb21lIGNsYXJpZmljYXRp b24gb24gdHdvIHBvaW50cywgaW4gY2FzZSBJJ20gbWlzc2luZw0KPiA+ID4+ICAgIGEgY29uZmln dXJhdGlvbiBvcHRpb24uDQo+ID4gPj4gDQo+ID4gPj4gDQo+ID4gPj4gDQo+ID4gPj4gICAgMSkg UENSRSBzdXBwb3J0DQo+ID4gPj4gDQo+ID4gPj4gDQo+ID4gPj4gDQo+ID4gPj4gICAgTXkgcnVs ZXNldCBtYWtlcyBleHRlbnNpdmUgdXNlIG9mIHRoZSBgKD9pKWAgaW5saW5lIGNhc2UtaW5zZW5z aXRpdml0eQ0KPiA+ID4+ICAgIGZsYWcgd2l0aGluIDpyZWdleCB0ZXN0cywgd2hpY2ggaXMgdmFs aWQgdW5kZXIgUENSRSAoYXMgdXNlZCBieSBDeXJ1cykuDQo+ID4gPj4gDQo+ID4gPj4gICAgV2hl biBydW5uaW5nIHNpZXZlLXRlc3QsIEkgZ2V0Og0KPiA+ID4+IA0KPiA+ID4+IA0KPiA+ID4+IA0K PiA+ID4+ICAgICAgZXJyb3I6IGludmFsaWQgcmVndWxhciBleHByZXNzaW9uICcoP2kpLi4uJyBm b3IgcmVnZXggbWF0Y2g6DQo+ID4gPj4gDQo+ID4gPj4gICAgICBpbnZhbGlkIHByZWNlZGluZyBy ZWd1bGFyIGV4cHJlc3Npb24uDQo+ID4gPj4gDQo+ID4gPj4gDQo+ID4gPj4gDQo+ID4gPj4gICAg Q2hlY2tpbmcgYGRvdmVjb3QgLS1idWlsZC1vcHRpb25zYCBzaG93cyBubyBQQ1JFIGVudHJ5LCB3 aGljaCBzdWdnZXN0cyB0aGUNCj4gPiA+PiAgICBVYnVudHUtcGFja2FnZWQgYmluYXJ5IHdhcyBj b21waWxlZCB3aXRob3V0IC0td2l0aC1wY3JlIGFuZCBmYWxscyBiYWNrIHRvDQo+ID4gPj4gICAg UE9TSVggZXh0ZW5kZWQgcmVnZXguDQo+ID4gPj4gDQo+ID4gPj4gDQo+ID4gPj4gDQo+ID4gPj4g ICAgUXVlc3Rpb246IElzIFBDUkUgc3VwcG9ydCBpbiBQaWdlb25ob2xlJ3MgcmVnZXggZXh0ZW5z aW9uIHB1cmVseSBhDQo+ID4gPj4gICAgY29tcGlsZS10aW1lIGRlY2lzaW9uIChpLmUuIHNvbWV0 aGluZyB0aGF0IHdvdWxkIG5lZWQgdG8gYmUgYWRkcmVzc2VkIGF0DQo+ID4gPj4gICAgdGhlIGRp c3RyaWJ1dGlvbiBwYWNrYWdpbmcgbGV2ZWwsIG5vdCB2aWEgcnVudGltZSBjb25maWd1cmF0aW9u KSwgb3IgaXMNCj4gPiA+PiAgICB0aGVyZSBhIHJ1bnRpbWUgd2F5IHRvIGVuYWJsZSBQQ1JFIG1h dGNoaW5nIHRoYXQgSSBtaWdodCBoYXZlIG1pc3NlZCAoZS5nLg0KPiA+ID4+ICAgIHZpYSAtbywg c2lldmVfZXh0ZW5zaW9ucywgb3Igc2ltaWxhcik/DQo+ID4gPiANCj4gPiA+IA0KPiA+ID4gSXQg aXMgc3RyaWN0bHkgY29tcGlsZS10aW1lIGNvbmZpZ3VyZWQuIEkgZGlkbid0IGltcGxlbWVudCB0 aGUgUENSRSBtaWdyYXRpb24gbXlzZWxmLCBidXQgSSBkb24ndCB0aGluayB0aGVyZSBpcyBhIFBP U0lYIHJlZ2V4IGZhbGxiYWNrIGZvciBpdC4gVGhpcyBsaWtlbHkgbWVhbnMgeW91ciBVYnVudHUg dmVyc2lvbiBpcyBzdGlsbCBzdHVjayBhdCBhIHF1aXRlIG9sZCB2ZXJzaW9uIG9mIFBpZ2Vvbmhv bGUuDQo+ID4gPiANCj4gPiA+IA0KPiA+ID4+ICAgIDIpIFJldHVybi1QYXRoIGluIHRoZSBgYWRk cmVzc2AgdGVzdA0KPiA+ID4+IA0KPiA+ID4+IA0KPiA+ID4+IA0KPiA+ID4+ICAgIFNldmVyYWwg b2YgbXkgcnVsZXMgdXNlOg0KPiA+ID4+IA0KPiA+ID4+IA0KPiA+ID4+IA0KPiA+ID4+ICAgICAg YWRkcmVzcyA6ZG9tYWluIDppcyAicmV0dXJuLXBhdGgiICIuLi4iDQo+ID4gPj4gDQo+ID4gPj4g DQo+ID4gPj4gDQo+ID4gPj4gICAgQ3lydXMgYWNjZXB0cyB0aGlzLiBQaWdlb25ob2xlJ3Mgc2ll dmUtdGVzdCByZWplY3RzIGl0IHdpdGg6DQo+ID4gPj4gDQo+ID4gPj4gDQo+ID4gPj4gDQo+ID4g Pj4gICAgICBlcnJvcjogc3BlY2lmaWVkIGhlYWRlciAncmV0dXJuLXBhdGgnIGlzIG5vdCBhbGxv d2VkIGZvciB0aGUNCj4gPiA+PiANCj4gPiA+PiAgICAgIGFkZHJlc3MgdGVzdC4NCj4gPiA+PiAN Cj4gPiA+PiANCj4gPiA+PiANCj4gPiA+PiAgICBJIHVuZGVyc3RhbmQgdGhpcyBpcyBsaWtlbHkg YW4gUkZDIDUyMjggc3RyaWN0bmVzcyBkaWZmZXJlbmNlIChDeXJ1cyBiZWluZw0KPiA+ID4+ICAg IG1vcmUgcGVybWlzc2l2ZSB0aGFuIHRoZSBSRkMgcmVxdWlyZXMpLg0KPiA+ID4+IA0KPiA+ID4+ ICAgIElzIHRoZXJlIGEgcmVjb21tZW5kZWQgYWx0ZXJuYXRpdmUgd2l0aGluIFNpZXZlIGl0c2Vs ZiB0byBhY2hpZXZlIHRoZSBzYW1lDQo+ID4gPj4gICAgZWZmZWN0ICh0ZXN0aW5nIHRoZSBhZGRy ZXNzIHBvcnRpb24gb2YgUmV0dXJuLVBhdGgpIHdoaWxlIHN0YXlpbmcgd2l0aGluDQo+ID4gPj4g ICAgd2hhdCBQaWdlb25ob2xlIGFjY2VwdHMgLS0gZS5nLiB2aWEgdGhlIGBoZWFkZXJgIHRlc3Qg Y29tYmluZWQgd2l0aCBzb21lDQo+ID4gPj4gICAgYWRkcmVzcy1wYXJzaW5nIGFwcHJvYWNoLCBv ciB2aWEgdGhlIGVudmVsb3BlIHRlc3QgaW5zdGVhZD8NCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiBF bnZlbG9wZSB0ZXN0IGlzIGJlc3QgaWYgeW91IHdhbnQgdG8gdXNlIGFkZHJlc3MgbWF0Y2hpbmcu DQo+ID4gPiANCj4gPiA+IA0KPiA+ID4+ICAgIEZvciBjb250ZXh0OiBJJ20gbm90IHJ1bm5pbmcg YSBEb3ZlY290IG1haWwgc2VydmVyIG15c2VsZi4NCj4gPiA+PiANCj4gPiA+PiAgICBJJ20gdXNp bmcgc2lldmUtdGVzdCBwdXJlbHkgYXMgYW4gb2ZmbGluZSBzeW50YXgvYmVoYXZpb3VyIHZlcmlm aWNhdGlvbg0KPiA+ID4+ICAgIHRvb2wgYmVmb3JlIGRlcGxveWluZyBydWxlc2V0IGNoYW5nZXMg dG8gYSBzZXBhcmF0ZSBDeXJ1cy1iYXNlZCBwcm9kdWN0aW9uDQo+ID4gPj4gICAgc3lzdGVtLg0K PiA+ID4+IA0KPiA+ID4+ICAgIEkgdW5kZXJzdGFuZCB0aGlzIGlzIGEgYml0IG9mIGFuIHVudXN1 YWwgdXNlIGNhc2UsIHNvIGFueSBndWlkYW5jZSBvbg0KPiA+ID4+ICAgIHdoZXRoZXIgUGlnZW9u aG9sZSBpcyB3ZWxsIHN1aXRlZCBmb3IgdGhpcyBraW5kIG9mIGNyb3NzLWltcGxlbWVudGF0aW9u DQo+ID4gPj4gICAgdGVzdGluZyBhdCBhbGwgd291bGQgYWxzbyBiZSBhcHByZWNpYXRlZC4NCj4g PiA+PiANCj4gPiA+PiANCj4gPiA+PiANCj4gPiA+PiAgICBUaGFuayB5b3UgZm9yIHlvdXIgdGlt ZSBhbmQgZm9yIG1haW50YWluaW5nIFBpZ2VvbmhvbGUuDQo+ID4gPj4gDQo+ID4gPj4gDQo+ID4g Pj4gDQo+ID4gPj4gICAgQmVzdCByZWdhcmRzLA0KPiA+ID4+IA0KPiA+ID4+ICAgIE1pY2hhZWwg TWVyeg0KPiA+ID4+IA0KPiA+ID4+IA0KPiA+ID4+IA0KPiA+ID4+IA0KPiA+ID4+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gPj4gZG92ZWNvdCBt YWlsaW5nIGxpc3QgLS0gZG92ZWNvdEBkb3ZlY290Lm9yZyBUbyB1bnN1YnNjcmliZSBzZW5kIA0K PiA+ID4+IGFuIGVtYWlsIHRvIGRvdmVjb3QtbGVhdmVAZG92ZWNvdC5vcmcNCj4gPiANCj4gPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+IGRvdmVj b3QgbWFpbGluZyBsaXN0IC0tIGRvdmVjb3RAZG92ZWNvdC5vcmcgVG8gdW5zdWJzY3JpYmUgc2Vu ZCBhbiANCj4gPiBlbWFpbCB0byBkb3ZlY290LWxlYXZlQGRvdmVjb3Qub3JnDQo+IA0KPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBkb3ZlY290IG1h aWxpbmcgbGlzdCAtLSBkb3ZlY290QGRvdmVjb3Qub3JnIFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4g DQo+IGVtYWlsIHRvIGRvdmVjb3QtbGVhdmVAZG92ZWNvdC5vcmcNCj4gDQo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IGRvdmVjb3QgbWFpbGluZyBs aXN0IC0tIGRvdmVjb3RAZG92ZWNvdC5vcmcgVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiANCj4gZW1h aWwgdG8gZG92ZWNvdC1sZWF2ZUBkb3ZlY290Lm9yZw0KDQpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXw0KZG92ZWNvdCBtYWlsaW5nIGxpc3QgLS0gZG92ZWNv dEBkb3ZlY290Lm9yZyBUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIGRvdmVjb3QtbGVh dmVAZG92ZWNvdC5vcmcNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZG92ZWNvdCBtYWlsaW5nIGxpc3QgLS0gZG92ZWNvdEBkb3ZlY290Lm9yZwpUbyB1 bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIGRvdmVjb3QtbGVhdmVAZG92ZWNvdC5vcmcK