From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 6EBFADE6 for ; Tue, 26 May 2015 04:11:16 +0200 (CEST) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga101.fm.intel.com with ESMTP; 25 May 2015 19:11:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,495,1427785200"; d="scan'208";a="735141211" Received: from pgsmsx101.gar.corp.intel.com ([10.221.44.78]) by orsmga002.jf.intel.com with ESMTP; 25 May 2015 19:11:15 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by PGSMSX101.gar.corp.intel.com (10.221.44.78) with Microsoft SMTP Server (TLS) id 14.3.224.2; Tue, 26 May 2015 10:11:07 +0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.23]) by SHSMSX101.ccr.corp.intel.com ([10.239.4.153]) with mapi id 14.03.0224.002; Tue, 26 May 2015 10:11:06 +0800 From: "Liu, Yong" To: "Xu, HuilongX" , "dts@dpdk.org" Thread-Topic: [dts] [dts 3/4] [PATCH V1] add generic_filter test plan Thread-Index: AQHQlshxG01U6LyMCUmyrkmpGglEzp2Ne1kg Date: Tue, 26 May 2015 02:11:06 +0000 Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E10E338EC@SHSMSX103.ccr.corp.intel.com> References: <1432544044-14956-1-git-send-email-huilongx.xu@intel.com> <1432544044-14956-3-git-send-email-huilongx.xu@intel.com> In-Reply-To: <1432544044-14956-3-git-send-email-huilongx.xu@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dts] [dts 3/4] [PATCH V1] add generic_filter test plan X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 May 2015 02:11:17 -0000 SHVpbG9uZywgcGxlYXNlIHNlZSBteSBjb21tZW50cyBiZWxvdy4NCg0KPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkdHMgW21haWx0bzpkdHMtYm91bmNlc0BkcGRrLm9yZ10g T24gQmVoYWxmIE9mIGh1aWxvbmcseHUNCj4gU2VudDogTW9uZGF5LCBNYXkgMjUsIDIwMTUgNDo1 NCBQTQ0KPiBUbzogZHRzQGRwZGsub3JnDQo+IFN1YmplY3Q6IFtkdHNdIFtkdHMgMy80XSBbUEFU Q0ggVjFdIGFkZCBnZW5lcmljX2ZpbHRlciB0ZXN0IHBsYW4NCj4gDQo+IEZyb206IGh1aWxvbmcg eHUgPGh1aWxvbmd4Lnh1QGludGVsLmNvbT4NCj4gDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBodWls b25nIHh1IDxodWlsb25neC54dUBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgdGVzdF9wbGFucy9nZW5l cmljX2ZpbHRlcl90ZXN0X3BsYW4ucnN0IHwgIDUxNg0KPiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrDQo+ICAxIGZpbGVzIGNoYW5nZWQsIDUxNiBpbnNlcnRpb25zKCspLCAwIGRlbGV0 aW9ucygtKQ0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RfcGxhbnMvZ2VuZXJpY19maWx0ZXJf dGVzdF9wbGFuLnJzdA0KPiANCj4gZGlmZiAtLWdpdCBhL3Rlc3RfcGxhbnMvZ2VuZXJpY19maWx0 ZXJfdGVzdF9wbGFuLnJzdA0KPiBiL3Rlc3RfcGxhbnMvZ2VuZXJpY19maWx0ZXJfdGVzdF9wbGFu LnJzdA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwLi5iMTA2MTgwDQo+ IC0tLSAvZGV2L251bGwNCj4gKysrIGIvdGVzdF9wbGFucy9nZW5lcmljX2ZpbHRlcl90ZXN0X3Bs YW4ucnN0DQo+IEBAIC0wLDAgKzEsNTE2IEBADQo+ICsgIC4uIENvcHlyaWdodCAoYykgPDIwMTU+ LCBJbnRlbCBDb3Jwb3JhdGlvbg0KPiArICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gKw0KPiAr ICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0 aCBvciB3aXRob3V0DQo+ICsgICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMNCj4gKyAgIGFyZSBtZXQ6DQo+ICsNCj4gKyAg IC0gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj b3B5cmlnaHQNCj4gKyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl IGZvbGxvd2luZyBkaXNjbGFpbWVyLg0KPiArDQo+ICsgICAtIFJlZGlzdHJpYnV0aW9ucyBpbiBi aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0DQo+ICsgICAgIG5v dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l ciBpbg0KPiArICAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy b3ZpZGVkIHdpdGggdGhlDQo+ICsgICAgIGRpc3RyaWJ1dGlvbi4NCj4gKw0KPiArICAgLSBOZWl0 aGVyIHRoZSBuYW1lIG9mIEludGVsIENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzDQo+ ICsgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv ZHVjdHMgZGVyaXZlZA0KPiArICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQo+ICsNCj4gKyAgIFRISVMgU09GVFdBUkUgSVMg UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMNCj4gKyAg ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H LCBCVVQgTk9UDQo+ICsgICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUw0KPiArICAgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUNCj4gKyAgIENPUFlSSUdIVCBP V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwN Cj4gKyAgIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE QU1BR0VTDQo+ICsgICAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U IE9GIFNVQlNUSVRVVEUgR09PRFMgT1INCj4gKyAgIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQ0KPiArICAgSE9XRVZFUiBD QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU LA0KPiArICAgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug T1IgT1RIRVJXSVNFKQ0KPiArICAgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRA0KPiArICAgT0YgVEhFIFBPU1NJQklMSVRZ IE9GIFNVQ0ggREFNQUdFLg0KPiArDQo+ICsNCj4gK0Rlc2NyaXB0aW9uDQo+ICs9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiArVGhpcyBkb2N1 bWVudCBwcm92aWRlcyB0aGUgcGxhbiBmb3IgdGVzdGluZyB0aGUgZ2VuZXJpYyBmaWx0ZXIgZmVh dHVyZSBvZg0KPiAxMEdiRSBhbmQgMUdiRSBFdGhlcm5ldCBDb250cm9sbGVyLg0KDQpUaGlzIGZl YXR1cmUgc2hvdWxkIGFsc28gY292ZXIgNDBHRSBGVkwgY2FyZC4NCg0KSW4gYHRlc3RwbWRgLCBh cHAgcHJvdmlkZXMgR2VuZXJpYw0KPiBGaWx0ZXIgQVBJIHRvIG1hbmFnZSBmaWx0ZXIgcnVsZXMg Zm9yIGtpbmRzIG9mIHBhY2tldHMsIGFuZCBjYWxscyB0aGUgQVBJDQo+IHRvIG1hbmFnZSBIVyBm aWx0ZXJzIGluIEhXLCBvciBTVyBmaWx0ZXJzIGluIFNXIHRhYmxlLg0KPiArDQo+ICsqIEEgZ2Vu ZXJpYyBmaWx0ZXIgcHJvdmlkZXMgYW4gYWJpbGl0eSB0byBpZGVudGlmeSBzcGVjaWZpYyAgZmxv d3Mgb3INCj4gc2V0cyBvZiAgZmxvd3MgYW5kIHJvdXRlcyB0aGVtIHRvIGRlZGljYXRlZCBxdWV1 ZXMuDQo+ICsqIEJhc2VkIG9uIHRoZSBHZW5lcmljIEZpbHRlciBtZWNoYW5pc20sIGFsbCB0aGUg U1lOIHBhY2tldHMgYXJlIHBsYWNlZA0KPiBpbiBhbiBhc3NpZ25lZCBxdWV1ZS4NCj4gKyogQmFz ZWQgb24gdGhlIEdlbmVyaWMgRmlsdGVyIG1lY2hhbmlzbSwgYWxsIHBhY2tldHMgYmVsb25naW5n IHRvIEwzL0w0DQo+IGZsb3dzIHRvIGJlIHBsYWNlZCBpbiBhIHNwZWNpZmljIEhXIHF1ZXVlLkVh Y2ggZmlsdGVyIGNvbnNpc3RzIG9mIGEgNS0NCj4gdHVwbGUgKHByb3RvY29sLCBzb3VyY2UgYW5k IGRlc3RpbmF0aW9uIElQIGFkZHJlc3Nlcywgc291cmNlIGFuZA0KPiBkZXN0aW5hdGlvbiBUQ1Av VURQL1NDVFAgcG9ydCkgYW5kIHJvdXRlcyBwYWNrZXRzIGludG8gb25lIG9mIHRoZSBSeA0KPiBx dWV1ZXMNCj4gKyogTDIgRXRoZXJ0eXBlIEZpbHRlcnMgcHJvdmlkZXMgYW4gYWJpbGl0eSB0byBp ZGVudGlmeSBwYWNrZXRzIGJ5IHRoZWlyDQo+IEwyIEV0aGVydHlwZSBhbmQgYXNzaWducyB0aGVt IHRvIHJlY2VpdmUgcXVldWVzLg0KPiArYFRlc3RwbWRgIGFwcCBpcyB1c2VkIHRvIHRlc3QgYWxs IHR5cGVzIG9mIEhXIGZpbHRlcnMuIENhc2UgMX45IGFyZSB0aGUNCj4gZnVuY3Rpb24gdGVzdCBm b3IgdGhlIGFib3ZlIGFwcCB3aGlsZSBjYXNlIDEx77yMMTIgYXJlIHRoZSBwZXJmb3JtYW5jZSB0 ZXN0DQo+IGZvciBOaWFudGljLCBJMzUwLCA4MjU4MCBhbmQgODI1NzYuDQo+ICsNCj4gKw0KPiAr UHJlcmVxdWlzaXRlcw0KPiArPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09DQo+ICtBc3N1bWluZyB0aGF0IHBvcnRzIGBgMGBgIGFuZCBgYDFgYCBhcmUg Y29ubmVjdGVkIHRvIGEgdHJhZmZpYw0KPiBnZW5lcmF0b3IncyBwb3J0IGBgQWBgIGFuZCBgYEJg YC4NCj4gKw0KPiArU2V0dXAgZm9yIGBgdGVzdHBtZGBgDQo+ICstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArTGF1bmNo IHRoZSBhcHAgYGB0ZXN0cG1kYGAgd2l0aCB0aGUgZm9sbG93aW5nIGFyZ3VtZW50czo6DQo+ICsN Cj4gKyAgICAuL3Rlc3RwbWQgLWMgZmZmZmYgLW4gNCAtLSAtaSAtLWRpc2FibGUtcnNzIC0tcnhx PTQgLS10eHE9NCAtLW5iLQ0KPiBjb3Jlcz0xNiAtLW5iLXBvcnRzPTINCj4gKw0KPiArVGhlIC1u IGNvbW1hbmQgaXMgdXNlZCB0byBzZWxlY3QgdGhlIG51bWJlciBvZiBtZW1vcnkgY2hhbm5lbHMu IEl0IHNob3VsZA0KPiBiZSBtYXRjaGVkIHdpdGggdGhlIG51bWJlciBvZiBtZW1vcnkgY2hhbm5l bHMgb24gdGhhdCBzZXR1cC4gVGhlIHZhbHVlIG9mDQo+IHJ4cSBhbmQgdHhxIGlzIDEgYnkgZGVm YXVsdCwgaXQncyBuZWNlc3NhcnkgIHRvIGluY3JlYXNlIHRoZW0sIGFuZCBtYWtlDQo+IHN1cmUg cnhxIGFuZCB0eHEgbW9yZSB0aGFuIG9uZS4gQXQgdGhlIHNhbWUgdGltZSByc3MgaXMgZW5hYmxl IGJ5IGRlZmF1bHQsDQo+IHNvIGRpc2FibGUgaXQuIE1hcCBwb3J0IHF1ZXVlcyB0byBzdGF0aXN0 aWMgY291bnRlciByZWdpc3RlcnMuOjoNCj4gKw0KPiArICAgIHRlc3RwbWQ+c2V0IHN0YXRfcW1h cCByeCAwIDAgMA0KPiArICAgIHRlc3RwbWQ+c2V0IHN0YXRfcW1hcCByeCAwIDEgMQ0KPiArICAg IHRlc3RwbWQ+c2V0IHN0YXRfcW1hcCByeCAwIDIgMg0KPiArICAgIHRlc3RwbWQ+c2V0IHN0YXRf cW1hcCByeCAwIDMgMw0KPiArU2V0dXAgZm9yIHJlY2VpdmUgYWxsIHBhY2tldCBhbmQgZGlzYWJs ZSB2bGFuIHN0cmlwIGZ1bmN0aW9uOjoNCj4gKw0KPiArICAgIHRlc3RwbWQ+dmxhbiBzZXQgc3Ry aXAgb2ZmIDANCj4gKyAgICB0ZXN0cG1kPnZsYW4gc2V0IHN0cmlwIG9mZiAxDQo+ICsgICAgdGVz dHBtZD52bGFuIHNldCBmaWx0ZXIgb2ZmIDANCj4gKyAgICB0ZXN0cG1kPnZsYW4gc2V0IGZpbHRl ciBvZmYgMQ0KPiArICAgIHRlc3RwbWQ+c2V0IGZsdXNoX3J4IG9uDQo+ICsNCj4gKw0KPiArVGVz dCBDYXNlIDE6ICAgICBTWU4gZmlsdGVyDQo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ICtTWU4gZmlsdGVycyBt aWdodCByb3V0ZXMgVENQIHBhY2tldHMgd2l0aCB0aGVpciBTWU4gZmxhZyBzZXQgaW50byBhbg0K PiBhc3NpZ25lZCBxdWV1ZS4gIEJ5IGZpbHRlcmluZyBzdWNoIHBhY2tldHMgdG8gYW4gYXNzaWdu ZWQgcXVldWUsIHNlY3VyaXR5DQo+IHNvZnR3YXJlIGNhbiBtb25pdG9yIGFuZA0KPiArYWN0IG9u IFNZTiBhdHRhY2tzLg0KPiArDQo+ICtFbmFibGUgU1lOIGZpbHRlcnMgd2l0aCBxdWV1ZSAyIG9u IHBvcnQgMC46Og0KPiArDQo+ICsgICAgIHRlc3RwbWQ+IGFkZF9zeW5fZmlsdGVyIDAgcHJpb3Jp dHkgaGlnaCBxdWV1ZSAyDQo+ICsgICAgIHRlc3RwbWQ+IGdldF9zeW5fZmlsdGVyIDANCj4gK0lm IFNZTiBGaWx0ZXIgaXMgYWRkZWQgc3VjY2Vzc2Z1bGx5LCAgaXQgZGlzcGxheXM6Og0KPiArDQo+ ICsgICAgc3luIGZpbHRlcjogb24sIHByaW9yaXR5OiBoaWdoLCBxdWV1ZTogMg0KPiArVGhlbiBz ZXR1cCBmb3IgcmVjZWl2ZTo6DQo+ICsNCj4gKyAgICB0ZXN0cG1kPiBzdGFydA0KPiArQ29uZmln dXJlIHRoZSB0cmFmZmljIGdlbmVyYXRvciB0byBzZW5kIDUgU1lOIHBhY2tldHMgYW5kIDUgbm9u LVNZTg0KPiBwYWNrZXRzIC4NCj4gK1JlYWRpbmcgdGhlIHN0YXRzIGZvciBwb3J0IDAgYWZ0ZXIg c2VuZGluZyBwYWNrZXRzLjo6DQo+ICsNCj4gKyAgICAgdGVzdHBtZD4gc3RvcA0KPiArVmVyaWZ5 IHRoYXQgdGhlIHBhY2tldHMgYXJlIHJlY2VpdmVkIChSWC1wYWNrZXRzIGluY3JlbWVudGVkKW9u IHRoZSBxdWV1ZQ0KPiAyLg0KPiArU2V0IG9mZiBTWU4gZmlsdGVyOjoNCj4gKw0KPiArICAgIHRl c3RwbWQ+cmVtb3ZlX3N5bl9maWx0ZXIgMA0KPiArICAgIHRlc3RwbWQ+c3RhcnQNCj4gK1NlbmQg NSBTWU4gcGFja2V0cywgdGhlbiByZWFkaW5nIHRoZSBzdGF0cyBmb3IgcG9ydCAwIGFmdGVyIHNl bmRpbmcNCj4gcGFja2V0cy46Og0KPiArDQo+ICsgICAgdGVzdHBtZD4gc3RvcA0KPiArVmVyaWZ5 IHRoYXQgdGhlIHBhY2tldHMgYXJlIG5vdCByZWNlaXZlZCAoUlgtcGFja2V0cyBkbyBub3QgaW5j cmVhc2VkKW9uDQo+IHRoZSBxdWV1ZSAyIGFuZCBzeW4gZmlsdGVyIGlzIHJlbW92ZWQuDQo+ICsN Cj4gKw0KPiArVGVzdCBDYXNlIDI6ICAgICAgNS10dXBsZSBGaWx0ZXINCj4gKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N Cj4gK1RoaXMgZmlsdGVyIGlkZW50aWZpZXMgc3BlY2lmaWMgTDMvTDQgZmxvd3Mgb3Igc2V0cyBv ZiBMMy9MNCBmbG93cyBhbmQNCj4gcm91dGVzIHRoZW0gdG8gZGVkaWNhdGVkIHF1ZXVlcy4gRWFj aCBmaWx0ZXIgY29uc2lzdHMgb2YgYSA1LXR1cGxlDQo+IChwcm90b2NvbCwgc291cmNlIGFuZCBk ZXN0aW5hdGlvbiBJUCBhZGRyZXNzZXMsIHNvdXJjZSBhbmQgZGVzdGluYXRpb24NCj4gVENQL1VE UC9TQ1RQIHBvcnQpIGFuZCByb3V0ZXMgcGFja2V0cyBpbnRvIG9uZSBvZiB0aGUgUnggcXVldWVz Lg0KPiArVGhlIDUtdHVwbGUgZmlsdGVycyBhcmUgY29uZmlndXJlZCB2aWEgYGRzdF9pcGAsIGBz cmNfaXBgLCBgZHN0X3BvcnRgLA0KPiBgc3JjX3BvcnRgLCBgcHJvdG9jb2xgIGFuZCBNYXNrLlRo aXMgY2FzZSBzdXBwb3J0cyB0d28gdHlwZSBOSUMobmlhbnRpYywNCj4gODI1NzYpLCBhbmQgdGhl aXIgY29tbWFuZCBsaW5lIGFyZSBkaWZmZXJlbnQuDQo+ICtFbmFibGUgdGhlICA1LXR1cGxlIEZp bHRlciB3aXRoIHF1ZXVlIDMgb24gcG9ydCAwIGZvciBuaWFudGljLiA6Og0KPiArDQoNCjUtdHVw bGUgY2FzZSBzaG91bGQgY292ZXIgdWRwIGFuZCBzY3RwIHBhY2tldHMuDQoNCj4gKyAgICB0ZXN0 cG1kPiBhZGRfNXR1cGxlX2ZpbHRlciAwIGRzdF9pcCAyLjIuMi41IHNyY19pcCAyLjIuMi40IGRz dF9wb3J0IDENCj4gc3JjX3BvcnQgMSBwcm90b2NvbCAweDA2IG1hc2sgMHgxZiBmbGFncyAweDAg cHJpb3JpdHkgMyBxdWV1ZSAzIGluZGV4IDENCj4gKyAgICB0ZXN0cG1kPiBnZXRfNXR1cGxlX2Zp bHRlciAwIGluZGV4IDENCj4gKw0KPiArRW5hYmxlIHRoZSAgNS10dXBsZSBGaWx0ZXIgd2l0aCBx dWV1ZSAzIG9uIHBvcnQgMCBmb3IgODI1NzYuIDo6DQo+ICsNCj4gKyAgICB0ZXN0cG1kPiBhZGRf NXR1cGxlX2ZpbHRlciAwIGRzdF9pcCAyLjIuMi41IHNyY19pcCAyLjIuMi40IGRzdF9wb3J0IDEN Cj4gc3JjX3BvcnQgMSBwcm90b2NvbCAweDA2IG1hc2sgMHgxZiBmbGFncyAweDAyIHByaW9yaXR5 IDMgcXVldWUgMyBpbmRleCAxDQo+ICsgICAgdGVzdHBtZD4gZ2V0XzV0dXBsZV9maWx0ZXIgMCBp bmRleCAxDQo+ICsNCg0KUGxlYXNlIGV4cGxhaW4gd2h5IGZsYWdzIGZvciA4MjU3NiBhbmQgTmlh bnRpYyBoYXZlIGRpZmZlcmVudCB2YWx1ZXMuDQoNCj4gK0lmIEwzL0w0IDUtdHVwbGUgRmlsdGVy IGlzIGFkZGVkIHN1Y2Nlc3NmdWxseSwgIGl0IGRpc3BsYXlzOjoNCj4gKw0KPiArICAgIGZpbHRl clsxXToNCj4gKyAgICBEZXN0aW5hdGlvbiBJUDogIDB4MDIwMjAyMDUgICAgbWFzazogMQ0KPiAr ICAgIFNvdXJjZSBJUDogICAgICAgMHgwMjAyMDIwNCAgICBtYXNrOiAxDQo+ICsgICAgRGVzdGlu YXRpb24gUG9ydDogICAgICAgMHgwMDAxICAgIG1hc2s6IDENCj4gKyAgICBTb3VyY2UgUG9ydDog ICAgICAgMHgwMDAwICAgIG1hc2s6IDENCj4gKyAgICBwcm90b2NvbF90eXBlOiB0Y3AgICAgICAg ICAgICBtYXNrOiAxDQo+ICsgICAgcHJpb3JpdHk6IDMNCj4gK1RoZW4gc2V0dXAgZm9yIHJlY2Vp dmU6Og0KPiArDQo+ICsgICAgdGVzdHBtZD4gc3RhcnQNCj4gK0lmIHRoZSBOSUMgdHlwZSBpcyBu aWFudGljLCB0aGVuIHNlbmQgIGRpZmZlcmVudCB0eXBlIHBhY2tldHMgc3VjaCBhcw0KPiAoYGRz dF9pcGA9Mi4yLjIuNSBgc3JjX2lwYD0yLjIuMi40IGBkc3RfcG9yYHQ9MSBgc3JjX3BvcnRgPTEN Cj4gYHByb3RvY29sYD10Y3ApIGFuZCBhcnAuIDo6DQo+ICsNCj4gKyAgICB0ZXN0cG1kPiBzdG9w DQo+ICtWZXJpZnkgdGhhdCB0aGUgcGFja2V0cyAoYGRzdF9pcGA9Mi4yLjIuNSBgc3JjX2lwYD0y LjIuMi40IGBkc3RfcG9ydGA9MQ0KPiBgc3JjX3BvcnRgPTEgYHByb3RvY29sYCBgdGNwYClvciAo YGRzdF9pcGA9Mi4yLjIuNSBgc3JjX2lwYD0yLjIuMi40DQo+IGBkc3RfcG9ydGA9MSBgc3JjX3Bv cnRgPTEgYHByb3RvY29sYD10Y3AsIGBmbGFnc2A9MHgyKSAgYXJlIHJlY2VpdmVkIChSWC0NCj4g cGFja2V0cyBkb2Vzbid0IGluY3JlbWVudGVkKW9uIHRoZSBxdWV1ZSAzLlJlbW92ZSBMMy9MNCA1 LXR1cGxlICBmaWx0ZXIuDQo+ICtEaXNhYmxlICA1LXR1cGxlIEZpbHRlcnM6Og0KPiArDQo+ICsg ICAgdGVzdHBtZD5yZW1vdmVfNXR1cGxlX2ZpbHRlciAwIGluZGV4IDENCj4gKyAgICB0ZXN0cG1k PnN0YXJ0DQo+ICtTZW5kICBwYWNrZXRzKGBkc3RfaXBgPTIuMi4yLjUgYHNyY19pcGA9Mi4yLjIu NCBgZHN0X3BvcnRgPTEgYHNyY19wb3J0YD0xDQo+IGBwcm90b2NvbGA9dGNwKSBvciAoYGRzdF9p cGA9Mi4yLjIuNSBgc3JjX2lwYD0yLjIuMi40IGBkc3RfcG9ydGA9MQ0KPiBgc3JjX3BvcnRgPTEg YHByb3RvY29sYD10Y3AgYGZsYWdzYD0weDIpIC5UaGVuIHJlYWRpbmcgdGhlIHN0YXRzIGZvciBw b3J0DQo+IDAgYWZ0ZXIgc2VuZGluZyBwYWNrZXRzLjo6DQo+ICsNCj4gKyAgICB0ZXN0cG1kPiBz dG9wDQo+ICtWZXJpZnkgdGhhdCB0aGUgcGFja2V0cyBhcmUgbm90IHJlY2VpdmVkIChSWC1wYWNr ZXRzIGRvIG5vdCBpbmNyZWFzZWQpb24NCj4gdGhlIHF1ZXVlIDMuIEEgNS1iaXQgZmllbGQgdGhh dCBtYXNrcyBlYWNoIG9mIHRoZSBmaWVsZHMgaW4gdGhlIDUtdHVwbGUNCj4gKEw0IHByb3RvY29s LCBJUCBhZGRyZXNzZXMsIFRDUC9VRFAgcG9ydHMpLg0KPiArSWYgIDUtdHVwbGUgZmllbGRzIGFy ZSBtYXNrZWQgd2l0aCAweDAgIChgbWFza2A9MHgwKSwgdGhlIGZpbHRlciB3aWxsDQo+IHJvdXRl cyBhbGwgdGhlIHBhY2tldHMoaXApICBvbiB0aGUgYXNzaWduZWQgcXVldWUuRm9yIGluc3RhbmNl LCBlbmFibGUgdGhlDQo+IDUtdHVwbGUgRmlsdGVycyB3aXRoIHF1ZXVlIDMgb24gcG9ydCAwIGZv ciBuaWFudGljLiBob3dldmVyLCB0aGUgdmFsdWUgb2YNCj4gbWFzayBpcyBzZXQgMHgwOjoNCj4g Kw0KPiArICAgIHRlc3RwbWQ+IGFkZF81dHVwbGVfZmlsdGVyIDAgZHN0X2lwIDIuMi4yLjUgc3Jj X2lwIDIuMi4yLjQgZHN0X3BvcnQgMQ0KPiBzcmNfcG9ydCAxIHByb3RvY29sIHRjcCBtYXNrIDB4 MCBmbGFncyAweDAgcHJpb3JpdHkgMyBxdWV1ZSAzIGluZGV4IDENCj4gKw0KPiArDQo+ICtUZXN0 IENhc2UgMzogICAgIGV0aGVydHlwZSBmaWx0ZXINCj4gKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gK0VuYWJsZSB0 aGUgcmVjZWlwdCBvZiAgQVJQIHBhY2tldHMgd2l0aCBxdWV1ZSAyIG9uIHBvcnQgMDo6DQo+ICsN Cj4gKyAgICB0ZXN0cG1kPiBhZGRfZXRoZXJ0eXBlX2ZpbHRlciAwIGV0aGVydHlwZSAweDA4MDYg cHJpb3JpdHkgZGlzYWJsZSAwDQo+IHF1ZXVlIDIgaW5kZXggMQ0KPiArICAgIHRlc3RwbWQ+IGdl dF9ldGhlcnR5cGVfZmlsdGVyIDAgaW5kZXggMQ0KPiArSWYgZXRoZXJ0eXBlIEZpbHRlcnMgaXMg YWRkZWQgc3VjY2Vzc2Z1bGx5LCAgaXQgZGlzcGxheXM6Og0KPiArDQo+ICsgICAgZmlsdGVyWzFd Og0KPiArICAgIGV0aGVydHlwZTogIDB4MDgwNg0KPiArICAgIHByaW9yaXR5OiBkaXNhYmxlLCAw DQo+ICsgICAgcXVldWU6IDINCj4gK1RoZW4gc2V0dXAgZm9yIHJlY2VpdmU6Og0KPiArDQo+ICsg ICAgdGVzdHBtZD4gc3RhcnQNCj4gK0NvbmZpZ3VyZSB0aGUgdHJhZmZpYyBnZW5lcmF0b3IgdG8g c2VuZCAxNSBBUlAgcGFja2V0cyBhbmQgMTUgbm9uIEFSUA0KPiBwYWNrZXRzLg0KPiArDQo+ICsg ICAgdGVzdHBtZD4gc3RvcA0KPiArVmVyaWZ5IHRoYXQgdGhlIGFycCBwYWNrZXRzIGFyZSByZWNl aXZlZCAoUlgtcGFja2V0cyBpbmNyZW1lbnRlZClvbiB0aGUNCj4gcXVldWUgMiAuDQo+ICtyZW1v dmUgZXRoZXJ0eXBlIGZpbHRlcjo6DQo+ICsNCj4gKyAgICB0ZXN0cG1kPiByZW1vdmVfZXRoZXJ0 eXBlX2ZpbHRlciAwIGluZGV4IDENCj4gKyAgICB0ZXN0cG1kPiBzdGFydA0KPiArQ29uZmlndXJl IHRoZSB0cmFmZmljIGdlbmVyYXRvciB0byBzZW5kICAxNSBBUlAgcGFja2V0cy4NCj4gKw0KPiAr ICAgIHRlc3RwbWQ+IHN0b3ANCj4gK0Fsc28sIHlvdSBjYW4gY2hhbmdlIHRoZSB2YWx1ZSBvZiAg cHJpb3JpdHkgdG8gc2V0IGEgbmV3IGZpbHRlciBleGNlcHQNCj4gdGhlIGNhc2UgdGhlIHZhbHVl IG9mIGV0aGVydHlwZSBpcyAweDA4MDAgd2l0aCBwcmlvcml0eSBlbmFibGUgLlRoZSByZXN0DQo+ IG9mIHN0ZXBzIGFyZSBzYW1lLg0KPiArRm9yIGluc3RhbmNlLCBlbmFibGUgIHByaW9yaXR5IGZp bHRlcihqdXN0IHN1cHBvcnQgbmlhbnRpYyk6Og0KPiArDQo+ICsgICAgdGVzdHBtZD4gYWRkX2V0 aGVydHlwZV9maWx0ZXIgMCBldGhlcnR5cGUgMHgwODA2IHByaW9yaXR5IGVuYWJsZSAxDQo+IHF1 ZXVlIDIgaW5kZXggMQ0KPiArDQo+ICtUZXN0IENhc2UgNDogICAgIDEwR0IgTXVsdGlwbGUgZmls dGVycw0KPiArPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KPiArRW5hYmxlIGV0aGVydHlwZSBmaWx0ZXIsIFNZTiBmaWx0 ZXIgYW5kICA1LXR1cGxlIEZpbHRlciBvbiB0aGUgcG9ydCAwIGF0DQo+IHNhbWUgdGltZS4gQXNz aWduaW5nIGRpZmZlcmVudCBmaWx0ZXJzIHRvIGRpZmZlcmVudCBxdWV1ZXMgb24gcG9ydCAwOjoN Cj4gKw0KPiArICAgIHRlc3RwbWQ+IGFkZF9zeW5fZmlsdGVyIDAgcHJpb3JpdHkgaGlnaCBxdWV1 ZSAxDQo+ICsgICAgdGVzdHBtZD4gYWRkX2V0aGVydHlwZV9maWx0ZXIgMCBldGhlcnR5cGUgMHgw ODA2IHByaW9yaXR5IGRpc2FibGUgMA0KPiBxdWV1ZSAzIGluZGV4IDENCj4gKyAgICB0ZXN0cG1k PiBhZGRfNXR1cGxlX2ZpbHRlciAwIGRzdF9pcCAyLjIuMi41IHNyY19pcCAyLjIuMi40IGRzdF9w b3J0IDENCj4gc3JjX3BvcnQgMSBwcm90b2NvbCB0Y3AgbWFzayAweDFmIHByaW9yaXR5IDMgcXVl dWUgMyBpbmRleCAxDQo+ICsgICAgdGVzdHBtZD4gc3RhcnQNCj4gKw0KDQpNYXliZSBpdCB3aWxs IGJlIGJldHRlciB0aGF0IGVhY2ggZmlsdGVyIHJlZGlyZWN0IHBhY2tldHMgaW50byBkaWZmZXJl bnQgcXVldWVzLg0KSXQgd2lsbCBoZWxwIHVzIGNoZWNrIHdoZXRoZXIgZWFjaCBxdWV1ZSBhY3Qg YXMgd2UgZXhwZWN0ZWQuDQoNCklzIHRoZXJlIGFueSBjYXNlIGNvdmVyIHRoZSBtYXhpbXVtIG51 bWJlciBvZiBxdWV1ZXM/IFdlIHNob3VsZCBrbm93IHRoZSB2YWx1ZS4NCg0KPiArQ29uZmlndXJl IHRoZSB0cmFmZmljIGdlbmVyYXRvciB0byBzZW5kICBkaWZmZXJlbnQgcGFja2V0cy4gU3VjaCBh cyxTWU4NCj4gcGFja2V0cywgQVJQIHBhY2tldHMsIElQIHBhY2tldHMgYW5kIHBhY2tldHMgd2l0 aChgZHN0X2lwYD0yLjIuMi41DQo+IGBzcmNfaXBgPTIuMi4yLjQgYGRzdF9wb3J0YD0xIGBzcmNf cG9ydGA9MSBgcHJvdG9jb2xgPXRjcCk6Og0KPiArDQo+ICsgICAgdGVzdHBtZD4gc3RvcA0KPiAr VmVyaWZ5IHRoYXQgZGlmZmVyZW50IHBhY2tldHMgYXJlIHJlY2VpdmVkIChSWC1wYWNrZXRzIGlu Y3JlbWVudGVkKW9uIHRoZQ0KPiBhc3NpZ25lZCBxdWV1ZS4NCj4gK1JlbW92ZSBldGhlcnR5cGUg ZmlsdGVyOjoNCj4gKw0KPiArICAgIHRlc3RwbWQ+IHJlbW92ZV9ldGhlcnR5cGVfZmlsdGVyIDAg aW5kZXggMQ0KPiArICAgIHRlc3RwbWQ+c3RhcnQNCj4gK1NlbmQgU1lOIHBhY2tldHMsIEFSUCBw YWNrZXRzIGFuZCBwYWNrZXRzIHdpdGggKGBkc3RfaXBgPTIuMi4yLjUNCj4gYHNyY19pcGA9Mi4y LjIuNCBgZHN0X3BvcnRgPTEgYHNyY19wb3J0YD0xIGBwcm90b2NvbGA9dGNwKS46Og0KPiArDQo+ ICsgICAgdGVzdHBtZD4gc3RvcA0KPiArVmVyaWZ5IHRoYXQgYWxsIHBhY2tldHMgYXJlIHJlY2Vp dmVkIChSWC1wYWNrZXRzIGluY3JlbWVudGVkKW9uIHRoZQ0KPiBhc3NpZ25lZCBxdWV1ZSBleGNl cHQgYXJwICBwYWNrZXRzLCByZW1vdmUgNS10dXBsZSBmaWx0ZXI6Og0KPiArDQo+ICsgICAgdGVz dHBtZD5yZW1vdmVfNXR1cGxlX2ZpbHRlciAwIGluZGV4IDENCj4gKyAgICB0ZXN0cG1kPiBzdGFy dA0KPiArU2VuZCAgZGlmZmVyZW50IHBhY2tldHMgc3VjaCBhcyxTWU4gcGFja2V0cywgQVJQIHBh Y2tldHMsICBwYWNrZXRzIHdpdGgNCj4gKGBkc3RfaXBgPTIuMi4yLjUgYHNyY19pcGA9Mi4yLjIu NCBgZHN0X3BvcnRgPTEgYHNyY19wb3J0YD0xDQo+IGBwcm90b2NvbGA9dGNwKTo6DQo+ICsNCj4g KyAgICB0ZXN0cG1kPnN0b3ANCj4gK1ZlcmlmeSB0aGF0IG9ubHkgU1lOIHBhY2tldHMgYXJlIHJl Y2VpdmVkIChSWC1wYWNrZXRzIGluY3JlbWVudGVkKW9uIHRoZQ0KPiBhc3NpZ25lZCBxdWV1ZQ0K PiArc2V0IG9mZiBTWU4gZmlsdGVyOjoNCj4gKw0KPiArICAgIHRlc3RwbWQ+cmVtb3ZlX3N5bl9m aWx0ZXIgMA0KPiArICAgIHRlc3RwbWQ+c3RhcnQNCj4gK0NvbmZpZ3VyZSB0aGUgdHJhZmZpYyBn ZW5lcmF0b3IgdG8gc2VuZCA1IFNZTiBwYWNrZXRzLg0KPiArDQo+ICsgICAgdGVzdHBtZD5zdG9w DQo+ICtWZXJpZnkgdGhhdCB0aGUgcGFja2V0cyBhcmUgbm90IHJlY2VpdmVkIChSWC1wYWNrZXRz IGRvIG5vdCBpbmNyZWFzZWQpb24NCj4gdGhlIHF1ZXVlIDEuDQo+ICsNCj4gKw0KPiArVGVzdCBD YXNlIDU6ICAgICAyLXR1cGxlIGZpbHRlcg0KPiArPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiArVGhpcyBjYXNlIGlz IGRlc2lnbmVkIGZvciBOSUMgdHlwZTpJMzUwLCA4MjU4MC4NCj4gK0VuYWJsZSB0aGUgcmVjZWlw dCBvZiAgdWRwIHBhY2tldHMgd2l0aCBxdWV1ZSAxIG9uIHBvcnQgMDo6DQo+ICsNCj4gKyAgICB0 ZXN0cG1kPiBhZGRfMnR1cGxlX2ZpbHRlciAwIHByb3RvY29sIDB4MTEgMSBkc3RfcG9ydCA2NCAx IGZsYWdzIDANCj4gcHJpb3JpdHkgMyBxdWV1ZSAxIGluZGV4IDENCj4gKyAgICB0ZXN0cG1kPiBn ZXRfMnR1cGxlX2ZpbHRlciAwIGluZGV4IDENCj4gK0lmIDItdHVwbGUgRmlsdGVyIGlzIGFkZGVk IHN1Y2Nlc3NmdWxseSwgIGl0IGRpc3BsYXlzOjoNCj4gKw0KPiArICAgIGZpbHRlclsxXToNCj4g KyAgICBEZXN0aW5hdGlvbiBQb3J0OiAgICAgMHgwMDQwICAgIG1hc2s6IDENCj4gKyAgICBwcm90 b2NvbDogIDB4MTEgICAgIG1hc2s6MSAgICAgdGNwX2ZsYWdzOiAweDAwDQo+ICsgICAgcHJpb3Jp dHk6IDMgICAgcXVldWU6IDENCj4gK1RoZW4gc2V0dXAgZm9yIHJlY2VpdmU6Og0KPiArDQo+ICsg ICAgdGVzdHBtZD4gc3RhcnQNCj4gK1NlbmQgMTUgdWRwIHBhY2tldHMoYGRzdF9wb3J0YD0xNSwg YHByb3RvY29sYD11ZHApIGFuZCAxNSBub24gdWRwDQo+IHBhY2tldHMuUmVhZGluZyB0aGUgc3Rh dHMgZm9yIHBvcnQgMCBhZnRlciBzZW5kaW5nIHBhY2tldHM6Og0KPiArDQo+ICsgICAgdGVzdHBt ZD4gc3RvcA0KPiArDQo+ICtWZXJpZnkgdGhhdCB0aGUgdWRwIHBhY2tldHMgYXJlIHJlY2VpdmVk IChSWC1wYWNrZXRzIGluY3JlbWVudGVkKW9uIHRoZQ0KPiBxdWV1ZSAxLg0KPiArUmVtb3ZlIDJ0 dXBsZSBmaWx0ZXI6Og0KPiArDQo+ICsgICAgdGVzdHBtZD4gcmVtb3ZlXzJ0dXBsZV9maWx0ZXIg MCBpbmRleCAxDQo+ICsgICAgdGVzdHBtZD4gc3RhcnQNCj4gK0NvbmZpZ3VyZSB0aGUgdHJhZmZp YyBnZW5lcmF0b3IgdG8gc2VuZCAgdWRwIHBhY2tldHMoYGRzdF9wb3J0YD0xNSwNCj4gYHByb3Rv Y29sYD11ZHApLg0KPiArUmVhZGluZyB0aGUgc3RhdHMgZm9yIHBvcnQgMCBhZnRlciBzZW5kaW5n IHBhY2tldHM6Og0KPiArDQo+ICsgICAgdGVzdHBtZD4gc3RvcA0KPiArVmVyaWZ5IHRoYXQgdGhl IHBhY2tldHMgYXJlIG5vdCByZWNlaXZlZCAoUlgtcGFja2V0cyBkbyBub3QgaW5jcmVhc2VkKW9u DQo+IHRoZSBxdWV1ZSAxLg0KPiArQWxzbywgeW91IGNhbiBjaGFuZ2UgdGhlIHZhbHVlIG9mIHBy b3RvY29sIG9yIGRzdHBvcnQgb3IgZmxhZ3MgdG8gc2V0IGENCj4gbmV3IGZpbHRlci50aGUgcmVz dCBvZiBzdGVwcyBhcmUgc2FtZS5Gb3IgZXhhbXBsZTo6DQo+ICsNCg0KUGxlYXNlIHRha2UgY2Fy ZSBvZiBsYW5ndWFnZSBzeW50YXguDQoNCj4gK0VuYWJsZSB0aGUgcmVjZWlwdCBvZiAgVURQIHBh Y2tldHMgd2l0aCBxdWV1ZSAxIG9uIHBvcnQgMTo6DQo+ICsNCj4gKyAgICB0ZXN0cG1kPiBhZGRf MnR1cGxlX2ZpbHRlciAxIHByb3RvY29sIDB4MDExIDEgZHN0X3BvcnQgNjQgMSBmbGFncyAwDQo+ IHByaW9yaXR5IDMgcXVldWUgMiBpbmRleCAyDQo+ICsNCj4gK0VuYWJsZSB0aGUgcmVjZWlwdCBv ZiAgVENQIHBhY2tldHMgd2l0aCBmbGFncyBvbiBxdWV1ZSAxIG9mIHBvcnQgMTo6DQo+ICsNCj4g KyAgICB0ZXN0cG1kPiBhZGRfMnR1cGxlX2ZpbHRlciAxIHByb3RvY29sIDB4MDYgMSBkc3RfcG9y dCA2NCAxIGZsYWdzIDB4M0YNCj4gcHJpb3JpdHkgMyBxdWV1ZSAzIGluZGV4IDMNCj4gKw0KPiAr DQo+ICtUZXN0IENhc2UgNjogZmxleCBmaWx0ZXINCj4gKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gK1RoaXMgY2Fz ZSBpcyBkZXNpZ25lZCBmb3IgTklDIHR5cGU6STM1MCwgODI1NzYsODI1ODAuDQo+ICtFbmFibGUg dGhlIHJlY2VpcHQgb2YgICBwYWNrZXRzKGNvbnRleHQpIHdpdGggcXVldWUgMSBvbiBwb3J0IDA6 Og0KPiArDQo+ICsgICAgdGVzdHBtZD4gYWRkX2ZsZXhfZmlsdGVyIDAgbGVuIDE2IGJ5dGVzDQo+ IDB4MDEyMzQ1Njc4OWFiY2RlZjAwMDAwMDAwMDgwNjAwMDAgbWFzayAwMDBDIHByaW9yaXR5IDMg cXVldWUgMSBpbmRleCAwDQoNClBsZWFzZSBleHBsYWluIHRoZSByZWxhdGlvbiBvZiBsZW4gYW5k IG1hc2suDQpIYXMgdGhpcyBjYXNlIGJlZW4gY292ZXJlZCB0aGUgbWF4IGxlbmd0aCBvZiBmbGV4 IGZpbHRlcj8NCg0KPiArICAgIHRlc3RwbWQ+IGdldF9mbGV4X2ZpbHRlciAwIGluZGV4IDANCj4g Kw0KPiArSWYgZmxleCBGaWx0ZXIgaXMgYWRkZWQgc3VjY2Vzc2Z1bGx5LCAgaXQgZGlzcGxheXM6 Og0KPiArICAgIGZpbHRlclswXToNCj4gKyAgICBsZW5ndGg6IDE2DQo+ICsgICAgZHdvcmRbXTog MHgwMTIzNDU2NyA4OWFiY2RlZiAwMDAwMDAwMCAwODA2MDAwMCAwMDAwMDAwMCAwMDAwMDAwMA0K PiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAw MDAwMDAwMCAwMDAwMDAwMA0KPiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAw MDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMA0KPiAwMDAwMDAwMCAwMDAwMDAwMCAw MDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMA0KPiAw MDAwMDAwMCAwMDAwMDAwMA0KPiArICAgIG1hc2tbXToNCj4gMGIwMDAwMDAwMDAwMDAxMTAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDANCj4g MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAN Cj4gKyAgICBwcmlvcml0eTogMyAgICBxdWV1ZTogMQ0KPiArVGhlbiBzZXR1cCBmb3IgcmVjZWl2 ZTo6DQo+ICsNCj4gKyAgICB0ZXN0cG1kPiBzdGFydA0KPiArQ29uZmlndXJlIHRoZSB0cmFmZmlj IGdlbmVyYXRvciB0byBzZW5kICBwYWNrZXRzKGNvbnRleHQpIGFuZCBhcnAgcGFja3Rlcy4NCj4g K1JlYWRpbmcgdGhlIHN0YXRzIGZvciBwb3J0IDAgYWZ0ZXIgc2VuZGluZyBwYWNrZXRzOjoNCj4g Kw0KPiArICAgIHRlc3RwbWQ+IHN0b3ANCj4gK1ZlcmlmeSB0aGF0IHRoZSBhcnAgcGFja2V0cyBh cmUgcmVjZWl2ZWQgKFJYLXBhY2tldHMgaW5jcmVtZW50ZWQpb24gdGhlDQo+IHF1ZXVlIDEuDQo+ ICtSZW1vdmUgZmxleCBmaWx0ZXI6Og0KPiArDQo+ICsgICAgdGVzdHBtZD4gcmVtb3ZlX2ZsZXhf ZmlsdGVyIDAgaW5kZXggMA0KPiArICAgIHRlc3RwbWQ+IHN0YXJ0DQo+ICtDb25maWd1cmUgdGhl IHRyYWZmaWMgZ2VuZXJhdG9yIHRvIHNlbmQgcGFja2V0cyhjb250ZXh0KS5SZWFkaW5nIHRoZQ0K PiBzdGF0cyBmb3IgcG9ydCAwIGFmdGVyIHNlbmRpbmcgcGFja2V0czo6DQo+ICsNCj4gKyAgICB0 ZXN0cG1kPiBzdG9wDQo+ICtWZXJpZnkgdGhhdCB0aGUgcGFja2V0cyBhcmUgbm90IHJlY2VpdmVk IChSWC1wYWNrZXRzIGRvIG5vdCBpbmNyZWFzZWQpb24NCj4gdGhlIHF1ZXVlIDEuIEFsc28sIHlv dSBjYW4gY2hhbmdlIHRoZSB2YWx1ZSBvZiBsZW5ndGggb3IgY29udGV4dCBvciBtYXNrDQo+IHRv IHNldCBhIG5ldyBmaWx0ZXIudGhlIHJlc3Qgb2Ygc3RlcHMgYXJlIHNhbWUuOjoNCj4gKw0KPiAr ICAgIHRlc3RwbWQ+IGFkZF9mbGV4X2ZpbHRlciAwIGxlbiAzMiBieXRlcw0KPiAweDAxMjM0NTY3 ODlhYmNkZWYwMDAwMDAwMDA4MDYwMDAwMDEyMzQ1Njc4OWFiY2RlZjAwMDAwMDAwMDgwNjAwMDAg bWFzaw0KPiAwMDBDMDAwQyBwcmlvcml0eSAxIHF1ZXVlIDIgaW5kZXggNw0KPiArDQo+ICtUZXN0 IENhc2UgNzogcHJpb3JpdHkgZmlsdGVyDQo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ICtUaGlzIGNhc2UgaXMg ZGVzaWduZWQgZm9yIE5JQyAobmlhbnRpYyxJMzUwLCA4MjU3NiBhbmQgODI1ODApLiBJZiBwYWNr ZXRzDQo+IGFyZSBtYXRjaCBvbiAgZGlmZmVyZW50IGZpbHRlcnMgd2l0aCBzYW1lIHR5cGUsIHRo ZSBmaWx0ZXIgd2l0aCBoaWdoDQo+IHByaW9yaXR5IHdpbGwgYmUgcmVjZWl2ZSBwYWNrZXRzLiBG b3IgZXhhbXBsZSwgcGFja2V0cyBhcmUgbWF0Y2ggb24gdHdvDQo+IGZpdmUtdHVwbGUgZmlsdGVy cyB3aXRoIGRpZmZlcmVudCBwcmlvcml0eSwgdGhlIGZpbHRlciB3aXRoIGhpZ2ggcHJpb3JpdHkN Cj4gd2lsbCBiZSByZWNlaXZlIHBhY2tldHMuIGlmIHBhY2tldHMgYXJlIG1hdGNoIG9uICBkaWZm ZXJlbnQgZmlsdGVycyB3aXRoDQo+IGRpZmZlcmVudCB0eXBlLCBwYWNrZXRzIGJhc2VkIG9uIHRo ZSBhYm92ZSBjcml0ZXJpYSBhbmQgdGhlIGZvbGxvd2luZw0KPiBvcmRlci53aGVuIHN5biBzZXQg cHJpb3JpdHkgaGlnaCwgc3luIGZpbHRlciBoYXMgaGlnaGVzdCBwcmlvcml0eSB0aGFuDQo+IG90 aGVycyBmaWx0ZXIuIEFuZCBmbGV4IGZpbHRlciBoYXMgaGlnaGVyIHByaW9yaXR5IHRoYW4gMi10 dXBsZSBmaWx0ZXIuDQo+ICtJZiB0aGUgTmljIGlzIG5pYW50aWMsIGVuYWJsZSB0aGUgNS10dXBs ZSBmaWx0ZXI6Og0KPiArDQo+ICsgICAgdGVzdHBtZD4gYWRkXzV0dXBsZV9maWx0ZXIgMCBkc3Rf aXAgMi4yLjIuNSBzcmNfaXAgMi4yLjIuNCBkc3RfcG9ydCAxDQo+IHNyY19wb3J0IDEgcHJvdG9j b2wgMHgwNiBtYXNrIDB4MWYgZmxhZ3MgMHgwIHByaW9yaXR5IDIgcXVldWUgMiBpbmRleCAxDQo+ ICsgICAgdGVzdHBtZD4gYWRkXzV0dXBsZV9maWx0ZXIgMCBkc3RfaXAgMi4yLjIuNSBzcmNfaXAg Mi4yLjIuNCBkc3RfcG9ydCAyDQo+IHNyY19wb3J0IDIgcHJvdG9jb2wgMHgwNiBtYXNrIDB4MTgg ZmxhZ3MgMHgwIHByaW9yaXR5IDMgcXVldWUgMyBpbmRleCAyDQo+ICsgICAgdGVzdHBtZD4gc3Rh cnQNCj4gK0NvbmZpZ3VyZSB0aGUgdHJhZmZpYyBnZW5lcmF0b3IgdG8gc2VuZCAgcGFja2V0cyAo YGRzdF9pcGA9Mi4yLjIuNQ0KPiBgc3JjX2lwYD0yLjIuMi40IGBkc3RfcG9ydGA9MSBgc3JjX3Bv cnRgPTEgYHByb3RvY29sYD10Y3ApLg0KPiArDQo+ICsgICAgdGVzdHBtZD4gc3RvcA0KPiArcGFj a2V0cyBhcmUgcmVjZWl2ZWQgKFJYLXBhY2tldHMgYmUgaW5jcmVhc2VkKW9uIHRoZSBxdWV1ZSAy Lg0KPiArUmVtb3ZlIHRoZSA1dHVwbGUgZmlsdGVyIHdpdGggaGlnaCBwcmlvcml0eTo6DQo+ICsN Cj4gKyAgICB0ZXN0cG1kPnJlbW92ZV81dHVwbGVfZmlsdGVyIDAgaW5kZXggMQ0KPiArICAgIHRl c3RwbWQ+IHN0YXJ0DQo+ICtDb25maWd1cmUgdGhlIHRyYWZmaWMgZ2VuZXJhdG9yIHRvIHNlbmQg IHBhY2tldHMgKGBkc3RfaXBgPTIuMi4yLjUNCj4gYHNyY19pcGA9Mi4yLjIuNCBgZHN0X3BvcnRg PTEgYHNyY19wb3J0YD0xIGBwcm90b2NvbGA9dGNwKQ0KPiArDQo+ICsgICAgdGVzdHBtZD4gc3Rv cA0KPiArcGFja2V0cyBhcmUgcmVjZWl2ZWQgKFJYLXBhY2tldHMgYmUgaW5jcmVhc2VkKW9uIHRo ZSBxdWV1ZSAzLg0KPiArSWYgdGhlIE5pYyBpcyBJMzUwIG9yIDgyNTgwLCBlbmFibGUgdGhlIDIt dHVwbGUgIGFuZCBmbGV4IGZpbHRlcnM6Og0KPiArDQo+ICsgICAgdGVzdHBtZD4gYWRkX2ZsZXhf ZmlsdGVyIDAgbGVuIDE2IGJ5dGVzDQo+IDB4MDEyMzQ1Njc4OWFiY2RlZjAwMDAwMDAwMDgwMDAw MDAgbWFzayAwMDBDIHByaW9yaXR5IDIgcXVldWUgMSBpbmRleCAwDQo+ICsgICAgdGVzdHBtZD4g YWRkXzJ0dXBsZV9maWx0ZXIgMCBwcm90b2NvbCAweDExIDEgZHN0X3BvcnQgNjQgMSBmbGFncyAw DQo+IHByaW9yaXR5IDMgcXVldWUgMiBpbmRleCAxDQo+ICsgICAgdGVzdHBtZD4gc3RhcnQNCj4g K0NvbmZpZ3VyZSB0aGUgdHJhZmZpYyBnZW5lcmF0b3IgdG8gc2VuZCAgcGFja2V0cyAoYGRzdF9p cGA9Mi4yLjIuNQ0KPiBgc3JjX2lwYD0yLjIuMi40IGBkc3RfcG9ydGA9NjQgYHNyY19wb3J0YD0x IGBwcm90b2NvbGA9dWRwKS4NCj4gKw0KPiArICAgIHRlc3RwbWQ+IHN0b3ANCj4gK3BhY2tldHMg YXJlIHJlY2VpdmVkIChSWC1wYWNrZXRzIGJlIGluY3JlYXNlZClvbiB0aGUgcXVldWUgMi4NCj4g K1JlbW92ZSB0aGUgMnR1cGxlIGZpbHRlciB3aXRoIGhpZ2ggcHJpb3JpdHk6Og0KPiArDQo+ICsg ICAgdGVzdHBtZD5yZW1vdmVfMnR1cGxlX2ZpbHRlciAwIGluZGV4IDENCj4gKyAgICB0ZXN0cG1k PiBzdGFydA0KPiArQ29uZmlndXJlIHRoZSB0cmFmZmljIGdlbmVyYXRvciB0byBzZW5kICBwYWNr ZXRzIChgZHN0X2lwYD0yLjIuMi41DQo+IGBzcmNfaXBgPTIuMi4yLjQgYGRzdF9wb3J0YD02NCBg c3JjX3BvcnRgPTEgYHByb3RvY29sYD11ZHApLA0KPiArDQo+ICsgICAgdGVzdHBtZD4gc3RvcA0K PiArcGFja2V0cyBhcmUgcmVjZWl2ZWQgKFJYLXBhY2tldHMgYmUgaW5jcmVhc2VkKW9uIHRoZSBx dWV1ZSAxLg0KPiArSWYgdGhlIE5pYyBpcyA4MjU3NiwgZW5hYmxlIHRoZSBzeW4gYW5kIDItdHVw bGUgZmlsdGVyOjoNCj4gKw0KPiArICAgIHRlc3RwbWQ+YWRkXzV0dXBsZV9maWx0ZXIgMCBkc3Rf aXAgMi4yLjIuNSBzcmNfaXAgMi4yLjIuNCBkc3RfcG9ydCAxDQo+IHNyY19wb3J0IDEgcHJvdG9j b2wgMHgwNiBtYXNrIDB4MWYgZmxhZ3MgMHgwMiBwcmlvcml0eSAzIHF1ZXVlIDMgaW5kZXggMQ0K PiArICAgIHRlc3RwbWQ+YWRkX3N5bl9maWx0ZXIgMCBwcmlvcml0eSBoaWdoIHF1ZXVlIDINCj4g KyAgICB0ZXN0cG1kPiBzdGFydA0KPiArQ29uZmlndXJlIHRoZSB0cmFmZmljIGdlbmVyYXRvciB0 byBzZW5kICBwYWNrZXRzIChgZHN0X2lwYD0yLjIuMi41DQo+IGBzcmNfaXBgPTIuMi4yLjQgYGRz dF9wb3J0YD0xIGBzcmNfcG9ydGA9MSBgcHJvdG9jb2xgPXRjcCBgZmxhZ3NgPSJTIikuDQo+ICsN Cj4gKyAgICB0ZXN0cG1kPnN0b3ANCj4gK3BhY2tldHMgYXJlIHJlY2VpdmVkIChSWC1wYWNrZXRz IGJlIGluY3JlYXNlZClvbiB0aGUgcXVldWUgMi4NCj4gK1JlbW92ZSB0aGUgc3luIGZpbHRlciB3 aXRoIGhpZ2ggcHJpb3JpdHk6Og0KPiArDQo+ICsgICAgdGVzdHBtZD5yZW1vdmVfc3luX2ZpbHRl ciAwDQo+ICsgICAgdGVzdHBtZD5zdGFydA0KPiArQ29uZmlndXJlIHRoZSB0cmFmZmljIGdlbmVy YXRvciB0byBzZW5kICBwYWNrZXRzIChgZHN0X2lwYD0yLjIuMi41DQo+IGBzcmNfaXBgPTIuMi4y LjQgYGRzdF9wb3J0YD02NCBgc3JjX3BvcnRgPTEgYHByb3RvY29sYD10Y3AgYGZsYWdzYD0iUyIp Lg0KPiArDQo+ICsgICAgdGVzdHBtZD4gc3RvcA0KPiArcGFja2V0cyBhcmUgcmVjZWl2ZWQgKFJY LXBhY2tldHMgYmUgaW5jcmVhc2VkKW9uIHRoZSBxdWV1ZSAzLg0KPiArDQo+ICsNCj4gKw0KPiAr VGVzdCBDYXNlIDg6IDFHQiBNdWx0aXBsZSBmaWx0ZXJzDQo+ICs9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ICtUaGlz IGNhc2UgaXMgZGVzaWduZWQgZm9yIE5JQyhJMzUwLCA4MjU3Niw4MjU4MCkuIEVuYWJsZSBzeW4g ZmlsdGVyIGFuZA0KPiBldGhlcnR5cGUgZmlsdGVyIG9uIHRoZSBwb3J0IDAgYXQgdGhlIHNhbWUg dGltZS4gIEFzc2lnbmluZyBkaWZmZXJlbnQNCj4gZmlsdGVycyB0byBkaWZmZXJlbnQgcXVldWVz IG9uIHBvcnQgMC5FbmFibGUgdGhlIGZpbHRlcnM6Og0KPiArDQo+ICsgICAgdGVzdHBtZD4gYWRk X3N5bl9maWx0ZXIgMCBwcmlvcml0eSBoaWdoIHF1ZXVlIDENCj4gKyAgICB0ZXN0cG1kPiBhZGRf ZXRoZXJ0eXBlX2ZpbHRlciAwIGV0aGVydHlwZSAweDA4MDYgcHJpb3JpdHkgZGlzYWJsZSAwDQo+ IHF1ZXVlIDMgaW5kZXggMQ0KPiArICAgIHRlc3RwbWQ+IHN0YXJ0DQo+ICsNCj4gK0NvbmZpZ3Vy ZSB0aGUgdHJhZmZpYyBnZW5lcmF0b3IgdG8gc2VuZCBldGhlcnR5cGUgcGFja2V0cyBhbmQgYXJw DQo+IHBhY2tldHMgLiA6Og0KPiArDQo+ICsgICAgdGVzdHBtZD4gc3RvcA0KPiArVGhlbiBWZXJp ZnkgdGhhdCB0aGUgcGFja2V0IGFyZSByZWNlaXZlZCBvbiB0aGUgcXVldWUgMSxxdWV1ZSAzLg0K PiArUmVtb3ZlIGFsbCB0aGUgZmlsdGVyOjoNCj4gKw0KPiArICAgIHRlc3RwbWQ+IHJlbW92ZV9z eW5fZmlsdGVyIDANCj4gKyAgICB0ZXN0cG1kPiByZW1vdmVfZXRoZXJ0eXBlX2ZpbHRlciAwIGlu ZGV4IDENCj4gKw0KPiArQ29uZmlndXJlIHRoZSB0cmFmZmljIGdlbmVyYXRvciB0byBzZW5kIHVk cCBwYWNrZXRzIGFuZCBhcnAgcGFja2V0cy4gVGhlbg0KPiBWZXJpZnkgdGhhdCB0aGUgcGFja2V0 IGFyZSBub3QgcmVjZWl2ZWQgb24gdGhlIHF1ZXVlIDEgYW5kIHF1ZXVlIDMgOjoNCj4gKw0KPiAr ICAgIHRlc3RwbWQ+IHF1aXQNCj4gKw0KPiArVGVzdCBDYXNlIDk6IGp1bWJvIGZyYW1lc2l6ZSBm aWx0ZXINCj4gKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0NCj4gKyBUaGlzIGNhc2UgaXMgZGVzaWduZWQgZm9yIE5JQyAo bmlhbnRpYyxJMzUwLCA4MjU3NiBhbmQgODI1ODApLiBTaW5jZQ0KPiBgYFRlc3RwbWRgYCBjb3Vs ZCB0cmFuc21pdHMgcGFja2V0cyB3aXRoIGp1bWJvIGZyYW1lIHNpemUgLCBpdCBhbHNvIGNvdWxk DQo+IHRyYW5zbWl0IGFib3ZlIHBhY2tldHMgb24gYXNzaWduZWQgcXVldWUuDQo+ICtMYXVuY2gg dGhlIGFwcCBgYHRlc3RwbWRgYCB3aXRoIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzOjoNCj4gKw0K PiArICAgIHRlc3RwbWQgLWMgZmZmZiAtbiA0IC0tIC1pIC0tZGlzYWJsZS1yc3MgLS1yeHE9NCAt LXR4cT00IC0tbmItY29yZXM9OA0KPiAtLW5iLXBvcnRzPTIgLS1yeGQ9MTAyNCAtLXR4ZD0xMDI0 IC0tYnVyc3Q9MTQ0IC0tdHhwdD0zMiAtLXR4aHQ9OCAtLXR4d3Q9MA0KPiAtLXR4ZnJlZXQ9MCAt LXJ4ZnJlZXQ9NjQgLS1tYmNhY2hlPTIwMCAtLW1idWYtc2l6ZT0yMDQ4IC0tbWF4LXBrdC1sZW49 OTYwMA0KPiArDQo+ICsgICAgdGVzdHBtZD5zZXQgc3RhdF9xbWFwIHJ4IDAgMCAwDQo+ICsgICAg dGVzdHBtZD5zZXQgc3RhdF9xbWFwIHJ4IDAgMSAxDQo+ICsgICAgdGVzdHBtZD5zZXQgc3RhdF9x bWFwIHJ4IDAgMiAyDQo+ICsgICAgdGVzdHBtZD52bGFuIHNldCBzdHJpcCBvZmYgMA0KPiArICAg IHRlc3RwbWQ+dmxhbiBzZXQgc3RyaXAgb2ZmIDENCj4gKyAgICB0ZXN0cG1kPnZsYW4gc2V0IGZp bHRlciBvZmYgMA0KPiArICAgIHRlc3RwbWQ+dmxhbiBzZXQgZmlsdGVyIG9mZiAxDQo+ICtFbmFi bGUgdGhlIHN5biBmaWx0ZXJzIHdpdGggbGFyZ2Ugc2l6ZTo6DQo+ICsNCj4gKyAgICB0ZXN0cG1k PiBhZGRfc3luX2ZpbHRlciAwIHByaW9yaXR5IGhpZ2ggcXVldWUgMQ0KPiArICAgIHRlc3RwbWQ+ IHN0YXJ0DQo+ICsNCj4gK0NvbmZpZ3VyZSB0aGUgdHJhZmZpYyBnZW5lcmF0b3IgdG8gc2VuZCBz eW4gcGFja2V0cyhmcmFtZXNpemU9MjAwMCkgLiA6Og0KPiArDQo+ICsgICAgdGVzdHBtZD4gc3Rv cA0KPiArVGhlbiBWZXJpZnkgdGhhdCB0aGUgcGFja2V0IGFyZSByZWNlaXZlZCBvbiB0aGUgcXVl dWUgMS4NCj4gK1JlbW92ZSAgdGhlIGZpbHRlcjo6DQo+ICsNCj4gKyAgICB0ZXN0cG1kPiByZW1v dmVfc3luX2ZpbHRlciAwDQo+ICsNCj4gK0NvbmZpZ3VyZSB0aGUgdHJhZmZpYyBnZW5lcmF0b3Ig dG8gc2VuZCBzeW4gcGFja2V0cyBhbmQgcy4gVGhlbiBWZXJpZnkNCj4gdGhhdCB0aGUgcGFja2V0 IGFyZSBub3QgcmVjZWl2ZWQgb24gdGhlIHF1ZXVlIDEgICA6Og0KPiArDQo+ICsgICAgdGVzdHBt ZD4gcXVpdA0KPiArDQo+ICtUZXN0IENhc2UgMTA6IDEyOCBxdWV1ZXMNCj4gKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N Cj4gK1RoaXMgY2FzZSBpcyBkZXNpZ25lZCBmb3IgTklDKG5pYW50aWMpLiBTaW5jZSBOSUMobmlh bnRpYykgaGFzIDEyOA0KPiB0cmFuc21pdCBxdWV1ZXMsIGl0IHNob3VsZCBiZSBzdXBwb3J0cyAg MTI4IGtpbmRzIG9mIGZpbHRlciBpZiBIYXJkd2FyZQ0KPiBoYXZlIGVub3VnaCBjb3Jlcy4NCj4g K0xhdW5jaCB0aGUgYXBwIGBgdGVzdHBtZGBgIHdpdGggdGhlIGZvbGxvd2luZyBhcmd1bWVudHM6 Og0KPiArDQo+ICsgICAgLi90ZXN0cG1kIC1jIGZmZmZmIC1uIDQgLS0gLWkgLS1kaXNhYmxlLXJz cyAtLXJ4cT0xMjggLS10eHE9MTI4IC0tbmItDQo+IGNvcmVzPTE2IC0tbmItcG9ydHM9MiAtLXRv dGFsLW51bS1tYnVmcz02MDAwMA0KPiArDQo+ICsgICAgdGVzdHBtZD5zZXQgc3RhdF9xbWFwIHJ4 IDAgMCAwDQo+ICsgICAgdGVzdHBtZD5zZXQgc3RhdF9xbWFwIHJ4IDAgNjQgMQ0KPiArICAgIHRl c3RwbWQ+c2V0IHN0YXRfcW1hcCByeCAwIDY0IDINCg0KSGVyZSBzaG91bGQgYmUgcXVldWUgMTI3 PyANCj4gKyAgICB0ZXN0cG1kPnZsYW4gc2V0IHN0cmlwIG9mZiAwDQo+ICsgICAgdGVzdHBtZD52 bGFuIHNldCBzdHJpcCBvZmYgMQ0KPiArICAgIHRlc3RwbWQ+dmxhbiBzZXQgZmlsdGVyIG9mZiAw DQo+ICsgICAgdGVzdHBtZD52bGFuIHNldCBmaWx0ZXIgb2ZmIDENCj4gK0VuYWJsZSB0aGUgIDUt dHVwbGUgRmlsdGVycyB3aXRoIGRpZmZlcmVudCBxdWV1ZXMgKDY0LDEyNykgb24gcG9ydCAwIGZv cg0KPiBuaWFudGljLiA6Og0KPiArDQo+ICsgICAgdGVzdHBtZD4gYWRkXzV0dXBsZV9maWx0ZXIg MCBkc3RfaXAgMi4yLjIuNSBzcmNfaXAgMi4yLjIuNCBkc3RfcG9ydCAxDQo+IHNyY19wb3J0IDEg cHJvdG9jb2wgMHgwNiBtYXNrIDB4MWYgZmxhZ3MgMHgwIHByaW9yaXR5IDMgcXVldWUgNjQgaW5k ZXggMQ0KPiArICAgIHRlc3RwbWQ+IGFkZF81dHVwbGVfZmlsdGVyIDAgZHN0X2lwIDIuMi4yLjUg c3JjX2lwIDIuMi4yLjQgZHN0X3BvcnQgMg0KPiBzcmNfcG9ydCAxIHByb3RvY29sIDB4MDYgbWFz ayAweDFmIGZsYWdzIDB4MCBwcmlvcml0eSAzIHF1ZXVlIDEyNyBpbmRleCAxDQo+ICtTZW5kICBw YWNrZXRzKGBkc3RfaXBgPTIuMi4yLjUgYHNyY19pcGA9Mi4yLjIuNCBgZHN0X3BvcnRgPTEgYHNy Y19wb3J0YD0xDQo+IGBwcm90b2NvbGA9dGNwKSBhbmQgKGBkc3RfaXBgPTIuMi4yLjUgYHNyY19p cGA9Mi4yLjIuNCBgZHN0X3BvcnRgPTINCj4gYHNyY19wb3J0YD0xIGBwcm90b2NvbGA9dGNwICkg LiBUaGVuIHJlYWRpbmcgdGhlIHN0YXRzIGZvciBwb3J0IDAgYWZ0ZXINCj4gc2VuZGluZyBwYWNr ZXRzLiBwYWNrZXRzIGFyZSByZWNlaXZlZCBvbiB0aGUgcXVldWUgNjQgYW5kIHF1ZXVlIDEyNw0K PiArIFdoZW4gc2V0dGluZyA1LXR1cGxlIEZpbHRlciB3aXRoIHF1ZXVlKDEyOCksIGl0IHdpbGwg ZGlzcGxheSBmYWlsdXJlDQo+IGJlY2F1c2UgdGhlIG51bWJlciBvZiBxdWV1ZXMgbm8gbW9yZSB0 aGFuIDEyOC4NCj4gKw0KPiArDQo+ICsNCj4gK1Rlc3QgQ2FzZSAxMTogMTBHIE5JQyBQZXJmb3Jt YW5jZQ0KPiArPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KPiArVGhpcyBjYXNlIGlzIGRlc2lnbmVkIGZvciBOaWFudGlj LiBJdCBwcm92aWRlcyB0aGUgcGVyZm9ybWFuY2UgZGF0YSB3aXRoDQo+IGFuZCB3aXRob3V0ICBn ZW5lcmljIGZpbHRlci4gOjoNCj4gK0xhdW5jaCBhcHAgd2l0aG91dCBmaWx0ZXI6DQo+ICsgICAg Li90ZXN0cG1kIC1jIGZmZmZmIC1uIDQgLS0gLWkgLS1kaXNhYmxlLXJzcyAtLXJ4cT00IC0tdHhx PTQgLS1uYi0NCj4gY29yZXM9MTYgLS1uYi1wb3J0cz0yDQo+ICsgICAgdGVzdHBtZD4gc3RhcnQN Cj4gKw0KPiArU2VuZCB0aGUgcGFja2V0cyBzdHJlYW0gZnJvbSBwYWNrZXQgZ2VuZXJhdG9yOjoN Cj4gKw0KPiArICAgIHRlc3RwbWQ+IHF1aXQNCj4gK0VuYWJsZSB0aGUgZmlsdGVycyBvbiBhcHA6 Og0KPiArDQo+ICsgICAgLi90ZXN0cG1kIC1jIGZmZmZmIC1uIDQgLS0gLWkgLS1kaXNhYmxlLXJz cyAtLXJ4cT00IC0tdHhxPTQgLS1uYi0NCj4gY29yZXM9MTYgLS1uYi1wb3J0cz0yDQo+ICsNCj4g KyAgICB0ZXN0cG1kPnNldCBzdGF0X3FtYXAgcnggMCAwIDANCj4gKyAgICB0ZXN0cG1kPnNldCBz dGF0X3FtYXAgcnggMCAxIDENCj4gKyAgICB0ZXN0cG1kPnNldCBzdGF0X3FtYXAgcnggMCAyIDIN Cj4gKyAgICB0ZXN0cG1kPnNldCBzdGF0X3FtYXAgcnggMCAzIDMNCj4gKyAgICB0ZXN0cG1kPnNl dCBmbHVzaF9yeCBvbg0KPiArICAgIHRlc3RwbWQ+IGFkZF9zeW5fZmlsdGVyIDAgcHJpb3JpdHkg aGlnaCBxdWV1ZSAxDQo+ICsgICAgdGVzdHBtZD4gYWRkX2V0aGVydHlwZV9maWx0ZXIgMCBldGhl cnR5cGUgMHgwODA2IHByaW9yaXR5IGRpc2FibGUgMA0KPiBxdWV1ZSAyIGluZGV4IDENCj4gKyAg ICB0ZXN0cG1kPiBhZGRfNXR1cGxlX2ZpbHRlciAwIGRzdF9pcCAyLjIuMi41IHNyY19pcCAyLjIu Mi40IGRzdF9wb3J0IDENCj4gc3JjX3BvcnQgMSBwcm90b2NvbCAweDA2IG1hc2sgMHgxZiBmbGFn cyAweDAyIHByaW9yaXR5IDMgcXVldWUgMyBpbmRleCAxDQo+ICsgICAgdGVzdHBtZD4gc3RhcnQN Cj4gKw0KDQpQbGVhc2UgZXhwbGFpbiB3aHkgYWRkIHRocmVlIGZpbHRlcnMgaGVyZS4gIFRoaXMg Y2FzZSBtaXhlZCB0aHJlZSBkaWZmZXJlbnQgdHlwZXMgb2YgZmlsdGVyLCBpdCdzIGhhcmQgdG8g bWVhc3VyZSBwZXJmb3JtYW5jZSBkcm9wIG9mIGV2ZXJ5IGZpbHRlci4gDQpJdCdzIGJldHRlciB0 byBlbmxhcmdlIHBlcmZvcm1hbmNlIG1lYXN1cmUgc2NvcGUgYXMgbGlzdCBiZWxvdy4gDQoNCkRp c2FibGUgYWxsIGdlbmVyaWMgZmlsdGVyIA0KRW5hYmxlIHN5bmMgZmlsdGVyDQpFbmFibGUgZXRo ZXJ0eXBlIGZpbHRlcg0KRW5hYmxlIG9uZSA1dHVwbGUgZmlsdGVyDQouLi4NClNldmVyYWwgc2Ft cGxlcyBiZXR3ZWVuIG1heGltdW0uDQouLi4NCkVuYWJsZSBtYXhpbXVtIDV0dXBsZSBmaWx0ZXIg DQoNCg0KPiArU2VuZCB0aGUgcGFja2V0cyBzdHJlYW0gZnJvbSBwYWNrZXQgZ2VuZXJhdG9yOjoN Cj4gKw0KPiArICAgIHRlc3RwbWQ+IHF1aXQNCj4gKw0KPiArDQo+ICsNCj4gKystLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rDQo+ICt8IEZyYW1lIHwgZGlzYWJsZSB8IGVuYWJsZSAgfA0KPiAr fCBTaXplICB8IGZpbHRlciAgfCBmaWx0ZXIgIHwNCj4gKystLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rDQo+ICt8ICA2NCAgIHwgICAgICAgICB8ICAgICAgICAgfA0KPiArKy0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSsNCj4gK3wgIDEyOCAgfCAgICAgICAgIHwgICAgICAgICB8DQo+ICsr LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKw0KPiArfCAgMjU2ICB8ICAgICAgICAgfCAgICAg ICAgIHwNCj4gKystLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rDQo+ICt8ICA1MTIgIHwgICAg ICAgICB8ICAgICAgICAgfA0KPiArKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsNCj4gK3wg IDEwMjQgfCAgICAgICAgIHwgICAgICAgICB8DQo+ICsrLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKw0KPiArfCAgMTI4MCB8ICAgICAgICAgfCAgICAgICAgIHwNCj4gKystLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rDQo+ICt8ICAxNTE4IHwgICAgICAgICB8ICAgICAgICAgfA0KPiArKy0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsNCj4gKw0KPiArDQo+ICtUZXN0IENhc2UgMTI6IDFH IE5JQyBQZXJmb3JtYW5jZQ0KPiArPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiArVGhpcyBjYXNlIGlzIGRlc2lnbmVk IGZvciBOSUMgKEkzNTAsIDgyNTgwLCBhbmQgODI1NzYpLiBJdCBwcm92aWRlcyB0aGUNCj4gcGVy Zm9ybWFuY2UgZGF0YSB3aXRoIGFuZCB3aXRob3V0ICBnZW5lcmljIGZpbHRlci46Og0KPiArDQo+ ICsgICAgLi90ZXN0cG1kIC1jIGZmZmZmIC1uIDQgLS0gLWkgLS1kaXNhYmxlLXJzcyAtLXJ4cT00 IC0tdHhxPTQgLS1uYi0NCj4gY29yZXM9MTYgLS1uYi1wb3J0cz0yDQo+ICsgICAgdGVzdHBtZD4g c3RhcnQNCj4gKw0KPiArU2VuZCB0aGUgcGFja2V0cyBzdHJlYW0gZnJvbSBwYWNrZXQgZ2VuZXJh dG9yOjoNCj4gKw0KPiArICAgIHRlc3RwbWQ+IHF1aXQNCj4gKw0KPiArRW5hYmxlIHRoZSBmaWx0 ZXIgOjoNCj4gKw0KPiArICAgIC4vdGVzdHBtZCAtYyBmZmZmZiAtbiA0IC0tIC1pIC0tZGlzYWJs ZS1yc3MgLS1yeHE9NCAtLXR4cT00IC0tbmItDQo+IGNvcmVzPTE2IC0tbmItcG9ydHM9Mg0KPiAr DQo+ICsgICAgdGVzdHBtZD5zZXQgc3RhdF9xbWFwIHJ4IDAgMCAwDQo+ICsgICAgdGVzdHBtZD5z ZXQgc3RhdF9xbWFwIHJ4IDAgMSAxDQo+ICsgICAgdGVzdHBtZD5zZXQgc3RhdF9xbWFwIHJ4IDAg MiAyDQo+ICsgICAgdGVzdHBtZD5zZXQgc3RhdF9xbWFwIHJ4IDAgMyAzDQo+ICsgICAgdGVzdHBt ZD5zZXQgZmx1c2hfcnggb24NCj4gKyAgICB0ZXN0cG1kPiBhZGRfc3luX2ZpbHRlciAwIHByaW9y aXR5IGhpZ2ggcXVldWUgMQ0KPiArICAgIHRlc3RwbWQ+IGFkZF9ldGhlcnR5cGVfZmlsdGVyIDAg ZXRoZXJ0eXBlIDB4MDgwNiBwcmlvcml0eSBkaXNhYmxlIDANCj4gcXVldWUgMiBpbmRleCAxDQo+ ICsgICAgdGVzdHBtZD4gc3RhcnQNCj4gKw0KPiArDQo+ICtTZW5kIHRoZSBwYWNrZXRzIHN0cmVh bSBmcm9tIHBhY2tldCBnZW5lcmF0b3I6Og0KPiArDQo+ICsgICAgdGVzdHBtZD4gcXVpdA0KPiAr DQoNClNhbWUgYXMgYWJvdmUuDQpJdCdzIGJldHRlciB0byBlbmxhcmdlIHBlcmZvcm1hbmNlIG1l YXN1cmUgc2NvcGUuDQoNCj4gKw0KPiArDQo+ICsrLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Kw0KPiArfCBGcmFtZSB8IGRpc2FibGUgfCBlbmFibGUgIHwNCj4gK3wgU2l6ZSAgfCBmaWx0ZXIg IHwgZmlsdGVyICB8DQo+ICsrLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKw0KPiArfCAgNjQg ICB8ICAgICAgICAgfCAgICAgICAgIHwNCj4gKystLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r DQo+ICt8ICAxMjggIHwgICAgICAgICB8ICAgICAgICAgfA0KPiArKy0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSsNCj4gK3wgIDI1NiAgfCAgICAgICAgIHwgICAgICAgICB8DQo+ICsrLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKw0KPiArfCAgNTEyICB8ICAgICAgICAgfCAgICAgICAgIHwN Cj4gKystLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rDQo+ICt8ICAxMDI0IHwgICAgICAgICB8 ICAgICAgICAgfA0KPiArKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSsNCj4gK3wgIDEyODAg fCAgICAgICAgIHwgICAgICAgICB8DQo+ICsrLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKw0K PiArfCAgMTUxOCB8ICAgICAgICAgfCAgICAgICAgIHwNCj4gKystLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rDQo+IC0tDQo+IDEuNy40LjQNCg0K