From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: Re: [PATCH v2 2/2] kms_content_protection: Add Content Protection test Date: Sat, 6 Jan 2018 16:14:25 +0530 Message-ID: <624536d3-463f-3eca-bbb9-9adf68047954@intel.com> References: <20171207001737.48696-1-seanpaul@chromium.org> <20171207001737.48696-2-seanpaul@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 23F736E44F for ; Sat, 6 Jan 2018 10:48:18 +0000 (UTC) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Sean Paul Cc: Intel Graphics Development List-Id: intel-gfx@lists.freedesktop.org Ck9uIFNhdHVyZGF5IDA2IEphbnVhcnkgMjAxOCAxMjo1OSBBTSwgU2VhbiBQYXVsIHdyb3RlOgo+ IE9uIFR1ZSwgRGVjIDE5LCAyMDE3IGF0IDk6MjggQU0sIFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdh bS5jQGludGVsLmNvbT4gd3JvdGU6Cj4+IEFkZGluZyBmZXcgbW9yZSBmaW5kaW5ncyBmcm9tIHRo ZSBJR1QgdXNhZ2Ugd2l0aCBrZXJuZWwgc29sdXRpb25zLgo+Pgo+Pgo+Pgo+PiBPbiBXZWRuZXNk YXkgMTMgRGVjZW1iZXIgMjAxNyAwNDowNyBQTSwgUmFtYWxpbmdhbSBDIHdyb3RlOgo+Pj4gU2Vh biwKPj4+Cj4+PiBBZGRpbmcgZmV3IG1vcmUgb2JzZXJ2YXRpb25zLgo+Pj4KPj4+Cj4+PiBPbiBU aHVyc2RheSAwNyBEZWNlbWJlciAyMDE3IDA1OjQ3IEFNLCBTZWFuIFBhdWwgd3JvdGU6Cj4+Pj4g UHJldHR5IHNpbXBsZSB0ZXN0Ogo+Pj4+IC0gaW5pdGlhbGl6ZXMgdGhlIG91dHB1dAo+Pj4+IC0g Y2xlYXJzIHRoZSBjb250ZW50IHByb3RlY3Rpb24gcHJvcGVydHkKPj4+PiAtIHZlcmlmaWVzIHRo YXQgaXQgY2xlYXJzCj4+Pj4gLSBzZXRzIHRoZSBjb250ZW50IHByb3RlY3Rpb24gcHJvcGVydHkg dG8gZGVzaXJlZAo+Pj4+IC0gdmVyaWZpZXMgdGhhdCBpdCB0cmFuc2l0aW9ucyB0byBlbmFibGVk Cj4+Pj4KPj4+PiBEb2VzIHRoaXMgZm9yIGJvdGggbGVnYWN5IGFuZCBhdG9taWMuCj4+Pj4KPj4+ PiBDaGFuZ2VzIGluIHYyOgo+Pj4+IC0gRG9uJ3QgY2hlY2sgZm9yIGk5MTUgZ2VuCj4+Pj4gLSBT a2lwIHRlc3QgaWYgQ29udGVudCBQcm90ZWN0aW9uIHByb3BlcnR5IGlzIGFic2VudAo+Pj4+Cj4+ Pj4gU2lnbmVkLW9mZi1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Cj4+Pj4g LS0tCj4+Pj4gICAgbGliL2lndF9rbXMuYyAgICAgICAgICAgICAgICAgIHwgICAzICstCj4+Pj4g ICAgbGliL2lndF9rbXMuaCAgICAgICAgICAgICAgICAgIHwgICAxICsKPj4+PiAgICB0ZXN0cy9N YWtlZmlsZS5zb3VyY2VzICAgICAgICAgfCAgIDEgKwo+Pj4+ICAgIHRlc3RzL2ttc19jb250ZW50 X3Byb3RlY3Rpb24uYyB8IDEyOQo+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCj4+Pj4gICAgdGVzdHMvbWVzb24uYnVpbGQgICAgICAgICAgICAgIHwgICAxICsK Pj4+PiAgICA1IGZpbGVzIGNoYW5nZWQsIDEzNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p Cj4+Pj4gICAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19jb250ZW50X3Byb3RlY3Rpb24u Ywo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmMgYi9saWIvaWd0X2ttcy5jCj4+ Pj4gaW5kZXggMTI1ZWNiMTkuLjkwN2RiNjk0IDEwMDY0NAo+Pj4+IC0tLSBhL2xpYi9pZ3Rfa21z LmMKPj4+PiArKysgYi9saWIvaWd0X2ttcy5jCj4+Pj4gQEAgLTE5MCw3ICsxOTAsOCBAQCBjb25z dCBjaGFyCj4+Pj4gKmlndF9jb25uZWN0b3JfcHJvcF9uYW1lc1tJR1RfTlVNX0NPTk5FQ1RPUl9Q Uk9QU10gPSB7Cj4+Pj4gICAgICAgICJzY2FsaW5nIG1vZGUiLAo+Pj4+ICAgICAgICAiQ1JUQ19J RCIsCj4+Pj4gICAgICAgICJEUE1TIiwKPj4+PiAtICAgICJCcm9hZGNhc3QgUkdCIgo+Pj4+ICsg ICAgIkJyb2FkY2FzdCBSR0IiLAo+Pj4+ICsgICAgIkNvbnRlbnQgUHJvdGVjdGlvbiIKPj4+PiAg ICB9Owo+Pj4+ICAgICAgLyoKPj4+PiBkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuaCBiL2xpYi9p Z3Rfa21zLmgKPj4+PiBpbmRleCAyYTQ4MGJmMy4uOTNlNTlkYzcgMTAwNjQ0Cj4+Pj4gLS0tIGEv bGliL2lndF9rbXMuaAo+Pj4+ICsrKyBiL2xpYi9pZ3Rfa21zLmgKPj4+PiBAQCAtMTE4LDYgKzEx OCw3IEBAIGVudW0gaWd0X2F0b21pY19jb25uZWN0b3JfcHJvcGVydGllcyB7Cj4+Pj4gICAgICAg ICAgIElHVF9DT05ORUNUT1JfQ1JUQ19JRCwKPj4+PiAgICAgICAgICAgSUdUX0NPTk5FQ1RPUl9E UE1TLAo+Pj4+ICAgICAgICAgICBJR1RfQ09OTkVDVE9SX0JST0FEQ0FTVF9SR0IsCj4+Pj4gKyAg ICAgICBJR1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJPVEVDVElPTiwKPj4+PiAgICAgICAgICAgSUdU X05VTV9DT05ORUNUT1JfUFJPUFMKPj4+PiAgICB9Owo+Pj4+ICAgIGRpZmYgLS1naXQgYS90ZXN0 cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+Pj4+IGluZGV4IDM0 Y2E3MWEwLi5lMDQ2NjQxMSAxMDA2NDQKPj4+PiAtLS0gYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2Vz Cj4+Pj4gKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+Pj4+IEBAIC0xNzksNiArMTc5LDcg QEAgVEVTVFNfcHJvZ3MgPSBcCj4+Pj4gICAgICAgIGttc19jaHZfY3Vyc29yX2ZhaWwgXAo+Pj4+ ICAgICAgICBrbXNfY29sb3IgXAo+Pj4+ICAgICAgICBrbXNfY29uY3VycmVudCBcCj4+Pj4gKyAg ICBrbXNfY29udGVudF9wcm90ZWN0aW9uXAo+Pj4+ICAgICAgICBrbXNfY3J0Y19iYWNrZ3JvdW5k X2NvbG9yIFwKPj4+PiAgICAgICAga21zX2N1cnNvcl9jcmMgXAo+Pj4+ICAgICAgICBrbXNfY3Vy c29yX2xlZ2FjeSBcCj4+Pj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19jb250ZW50X3Byb3RlY3Rp b24uYwo+Pj4+IGIvdGVzdHMva21zX2NvbnRlbnRfcHJvdGVjdGlvbi5jCj4+Pj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQKPj4+PiBpbmRleCAwMDAwMDAwMC4uNWQ2MWIyNTcKPj4+PiAtLS0gL2Rldi9u dWxsCj4+Pj4gKysrIGIvdGVzdHMva21zX2NvbnRlbnRfcHJvdGVjdGlvbi5jCj4+Pj4gQEAgLTAs MCArMSwxMjkgQEAKPj4+PiArLyoKPj4+PiArICogQ29weXJpZ2h0IMKpIDIwMTcgR29vZ2xlLCBJ bmMuCj4+Pj4gKyAqCj4+Pj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZwo+Pj4+IGEKPj4+PiArICogY29weSBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQo+ Pj4+ICJTb2Z0d2FyZSIpLAo+Pj4+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0 IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dAo+Pj4+IGxpbWl0YXRpb24KPj4+PiArICog dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1 dGUsCj4+Pj4gc3VibGljZW5zZSwKPj4+PiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBT b2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4+Pj4gKyAqIFNvZnR3 YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRp dGlvbnM6Cj4+Pj4gKyAqCj4+Pj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0 aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlCj4+Pj4gbmV4dAo+Pj4+ICsgKiBw YXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YKPj4+PiB0aGUKPj4+PiArICogU29mdHdhcmUuCj4+Pj4gKyAqCj4+Pj4gKyAq IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO WSBLSU5ELAo+Pj4+IEVYUFJFU1MgT1IKPj4+PiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgo+Pj4+IE1FUkNIQU5UQUJJTElUWSwKPj4+ PiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO VC4gIElOIE5PIEVWRU5UCj4+Pj4gU0hBTEwKPj4+PiArICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJ R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKPj4+PiBPVEhF Ugo+Pj4+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU T1JUIE9SIE9USEVSV0lTRSwKPj4+PiBBUklTSU5HCj4+Pj4gKyAqIEZST00sIE9VVCBPRiBPUiBJ TiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPj4+PiBE RUFMSU5HUwo+Pj4+ICsgKiBJTiBUSEUgU09GVFdBUkUuCj4+Pj4gKyAqCj4+Pj4gKyAqLwo+Pj4+ ICsKPj4+PiArI2luY2x1ZGUgImlndC5oIgo+Pj4+ICsKPj4+PiArSUdUX1RFU1RfREVTQ1JJUFRJ T04oIlRlc3QgY29udGVudCBwcm90ZWN0aW9uIChIRENQKSIpOwo+Pj4+ICsKPj4+PiArdHlwZWRl ZiBzdHJ1Y3Qgewo+Pj4+ICsgICAgaW50IGRybV9mZDsKPj4+PiArICAgIGlndF9kaXNwbGF5X3Qg ZGlzcGxheTsKPj4+PiArfSBkYXRhX3Q7Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgYm9vbAo+Pj4+ICt3 YWl0X2Zvcl9wcm9wX3ZhbHVlKGlndF9vdXRwdXRfdCAqb3V0cHV0LCB1aW50NjRfdCBleHBlY3Rl ZCkKPj4+PiArewo+Pj4+ICsgICAgdWludDY0X3QgdmFsOwo+Pj4+ICsgICAgaW50IGk7Cj4+Pj4g Kwo+Pj4+ICsgICAgZm9yIChpID0gMDsgaSA8IDIwMDA7IGkrKykgewo+Pj4gd2UgbmVlZCA1K1Nl YyB0byBjb21wbGV0ZSB0aGUgU2Vjb25kIHBhcnQgb2YgYXV0aGVudGljYXRpb24sIGluIGNhc2Ug b2YKPj4+IHJlcGVhdGVyIHdpdGggbWF4IGRvd25zdHJlYW0gdG9wb2xvZ3kuCj4+PiBTbyB3ZSBt aWdodCBuZWVkIHRvIHdhaXQgZm9yIDYwMDAoNlNlYykgbG9vcHMhPwo+Pj4+ICsgICAgICAgIHZh bCA9IGlndF9vdXRwdXRfZ2V0X3Byb3Aob3V0cHV0LAo+Pj4+ICsgICAgICAgICAgICAgICAgICAg ICAgSUdUX0NPTk5FQ1RPUl9DT05URU5UX1BST1RFQ1RJT04pOwo+Pj4+ICsgICAgICAgIGlmICh2 YWwgPT0gZXhwZWN0ZWQpCj4+Pj4gKyAgICAgICAgICAgIHJldHVybiB0cnVlOwo+Pj4+ICsgICAg ICAgIHVzbGVlcCgxMDAwKTsKPj4+PiArICAgIH0KPj4+PiArICAgIGlndF9pbmZvKCJwcm9wX3Zh bHVlIG1pc21hdGNoICVsZCAhPSAlbGRcbiIsIHZhbCwgZXhwZWN0ZWQpOwo+Pj4+ICsgICAgcmV0 dXJuIGZhbHNlOwo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgdm9pZAo+Pj4+ICt0ZXN0X3Bp cGVfb3V0cHV0KGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGNvbnN0IGVudW0gcGlwZSBwaXBlLAo+ Pj4+ICsgICAgICAgICBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgZW51bSBpZ3RfY29tbWl0X3N0eWxl IHMpCj4+Pj4gK3sKPj4+PiArICAgIGRybU1vZGVNb2RlSW5mbyBtb2RlOwo+Pj4+ICsgICAgaWd0 X3BsYW5lX3QgKnByaW1hcnk7Cj4+Pj4gKyAgICBzdHJ1Y3QgaWd0X2ZiIHJlZDsKPj4+PiArICAg IGJvb2wgcmV0Owo+Pj4+ICsKPj4+PiArICAgIGlndF9hc3NlcnQoa21zdGVzdF9nZXRfY29ubmVj dG9yX2RlZmF1bHRfbW9kZSgKPj4+PiArICAgICAgICAgICAgZGlzcGxheS0+ZHJtX2ZkLCBvdXRw dXQtPmNvbmZpZy5jb25uZWN0b3IsICZtb2RlKSk7Cj4+Pj4gKwo+Pj4+ICsgICAgaWd0X291dHB1 dF9vdmVycmlkZV9tb2RlKG91dHB1dCwgJm1vZGUpOwo+Pj4+ICsgICAgaWd0X291dHB1dF9zZXRf cGlwZShvdXRwdXQsIHBpcGUpOwo+Pj4+ICsKPj4+PiArICAgIGlndF9jcmVhdGVfY29sb3JfZmIo ZGlzcGxheS0+ZHJtX2ZkLCBtb2RlLmhkaXNwbGF5LCBtb2RlLnZkaXNwbGF5LAo+Pj4+ICsgICAg ICAgICAgICAgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9O RSwKPj4+PiArICAgICAgICAgICAgICAgIDEuZiwgMC5mLCAwLmYsICZyZWQpOwo+Pj4+ICsgICAg cHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUob3V0cHV0LCBEUk1fUExBTkVfVFlQ RV9QUklNQVJZKTsKPj4+PiArICAgIGlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJnJlZCk7Cj4+ Pj4gKyAgICBpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIHMpOwo+Pj4+ICsKPj4+PiArICAg IGlndF9vdXRwdXRfc2V0X3Byb3BfdmFsdWUob3V0cHV0LCBJR1RfQ09OTkVDVE9SX0NPTlRFTlRf UFJPVEVDVElPTiwKPj4+PiAwKTsKPj4+PiArICAgIGlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxh eSwgcyk7Cj4+Pj4gKwo+Pj4+ICsgICAgcmV0ID0gd2FpdF9mb3JfcHJvcF92YWx1ZShvdXRwdXQs IDApOwo+Pj4+ICsgICAgaWd0X3JlcXVpcmVfZihyZXQsICJDb250ZW50IFByb3RlY3Rpb24gbm90 IGNsZWFyZWRcbiIpOwo+Pj4gV2hlbiBleHBlY3RlZCBwcm9wZXJ0eSBzdGF0ZSBpcyBub3QgbWV0 LCB5b3UgbWlnaHQgd2FudCB0byB1c2UKPj4+IGlndF9hc3NlcnRfZiB0byBmYWlsIHRoZSBzdWJ0 ZXN0LiBIZXJlIHlvdSBhcmUganVzdCBza2lwcGluZyB0aGUgc3VidGVzdC4KPj4+PiArCj4+Pj4g KyAgICBpZ3Rfb3V0cHV0X3NldF9wcm9wX3ZhbHVlKG91dHB1dCwgSUdUX0NPTk5FQ1RPUl9DT05U RU5UX1BST1RFQ1RJT04sCj4+Pj4gMSk7Cj4+Pj4gKyAgICBpZ3RfZGlzcGxheV9jb21taXQyKGRp c3BsYXksIHMpOwo+Pj4+ICsKPj4+PiArICAgIHJldCA9IHdhaXRfZm9yX3Byb3BfdmFsdWUob3V0 cHV0LCAyKTsKPj4KPj4gQXMgdGhlcmUgYXJlIHJhbmdlIG9mIEhEQ1Agc2lua3Mgd2hpY2ggbWln aHQgZmFpbCB0byBwcm92aWRlIHRoZSBSMCBpbgo+PiAxMDBtU2VjIGluIHRoZSBmaXJzdCBhdHRl bXB0LiBCdXQgcGFzc2VzIHRoZSBjb25kaXRpb24gaW4gbmV4dCBhdHRlbXB0Lgo+PiBJbiB0aGUg dGVzdGluZyBpdCBpcyBvYnNlcnZlZCB0aGF0IG1hbnkgcGFuZWwncyB3aWRlbHkgdXNlZCBzaG93 Y2FzZSBhYm92ZQo+PiBtZW50aW9uZWQgYmVoYXZpb3IuCj4+Cj4+IFNvIHdlIG5lZWQgdG8gcmV0 cnkgb24gSERDUCBlbmFibGUgYmVmb3JlIGRlY2xhcmluZyB0aGUgSERDUCBmYWlsdXJlLgo+Pgo+ IEluc3RlYWQgb2YgcmV0cnlpbmcgdGhlIHdob2xlIHRoaW5nLCB3aHkgbm90IGp1c3QgbWFrZSB0 aGUgMTAwbXMKPiB0aW1lb3V0IGJpZ2dlcj8gV2hhdCB2YWx1ZXMgPjEwMG1zIGhhdmUgeW91IG9i c2VydmVkPwpJIGRvbnQgdGhpbmsgd2UgY2FuIGluY3JlYXNlIHRoZSB0aW1lb3V0IGJleW9uZCBt ZW50aW9uZWQgMTAwbVNlYy4gSWYgd2UgCmRvIHNvIGl0IHdpbGwgYmUgbm9uIGNvbXBsaWFuY2Ug d2l0aCBIRENQIHNwZWMgaGVuY2UgQ1RTIHdpbGwgZmFpbC4KSU1PIFJldHJ5aW5nIHdpbGwgYmUg dGhlIGJlc3Qgb3B0aW9uIGxlZnQuCj4KPj4+PiArICAgIGlndF9yZXF1aXJlX2YocmV0LCAiQ29u dGVudCBQcm90ZWN0aW9uIG5vdCBlbmFibGVkXG4iKTsKPj4+IHNhbWUgYXMgYWJvdmUuIGlndF9h c3NlcnRfZiBuZWVkZWQ/Cj4+Pgo+Pj4gQW5kIHdoZW4geW91IGFyZSBkb25lIHdpdGggYSBjb25u ZWN0b3Iob3V0cHV0KSwgd2UgY2FudCBsZWF2ZSB0aGUgY29udGVudAo+Pj4gcHJvdGVjdGlvbiBp biBkZXNpcmVkIHN0YXRlLgo+Pj4gRWxzZSB3aGVuIHdlIGVuYWJsZSB0aGUgY29ubmVjdG9yIGZv ciBzb21lIG90aGVyIElHVCwgY29udGVudCBwcm90ZWN0aW9uCj4+PiBhdXRoZW50aWNhdGlvbiB3 aWxsIGJlIGF0dGVtcHRlZCBieSBrZXJuZWwuCj4+PiBTbyB3aGVuIHdlIGFyZSBkb25lIHdpdGgg YSBjb25uZWN0b3IsIHdlIG5lZWQgdG8gY2xlYXIgdGhlIGNvbnRlbnQKPj4+IHByb3RlY3Rpb24g c3RhdGUoc2V0IHRvIE9GRikgb2YgdGhlIGNvbm5lY3Rvci4KPj4+Cj4+Pj4gKwo+Pj4+ICsgICAg aWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCBOVUxMKTsKPj4+PiArICAgIGlndF9vdXRwdXRfc2V0 X3BpcGUob3V0cHV0LCBQSVBFX05PTkUpOwo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgdm9p ZAo+Pj4+ICt0ZXN0X2NvbnRlbnRfcHJvdGVjdGlvbihpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBl bnVtIGlndF9jb21taXRfc3R5bGUgcykKPj4+PiArewo+Pj4+ICsgICAgaWd0X291dHB1dF90ICpv dXRwdXQ7Cj4+Pj4gKyAgICBlbnVtIHBpcGUgcGlwZTsKPj4+PiArICAgIGludCB2YWxpZF90ZXN0 cyA9IDA7Cj4+Pj4gKwo+Pj4+ICsgICAgZm9yX2VhY2hfcGlwZV93aXRoX3ZhbGlkX291dHB1dChk aXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKPj4gIEZyb20gdGhlIHRlc3Rpbmcgb2YgdGhpcyBJR1Qg d2l0aCBrZXJuZWwgY2hhbmdlcywgb2JzZXJ2ZWQgYSBuZWVkIG9mCj4+IHJlbG9va2luZyBhdCBI RENQIHN1YnRlc3RzIGRlZmluaXRpb24uIFJlYXNvbmluZyBpcyBhcyBmb2xsb3dzLgo+Pgo+PiBB bmQgaGVyZSB3ZSBhcmUgdGFraW5nIGVhY2ggcGlwZSBhbmQgdGhlaXIgY29tcGF0aWJsZSBvdXRw dXRzKGNvbm5lY3RvcnMpCj4+IGZvciBoZGNwIHRlc3QuIExpa2UgUElQRUEgKyBIRE1JLUEtMSwg UElQRUIrSERNSS1BLTEgZXRjLgo+PiBCdXQgYXMgSERDUCBpcyBhc3NvY2lhdGVkIHRvIGNvbm5l Y3RvcnMsIHdlIG5lZWQgdG8gaXRlcmF0ZSBvbiBoZGNwIGNhcGFibGUKPj4gY29ubmVjdG9yIGFu ZCBjaG9vc2UgdGhlIGNvbXBhdGlibGUgcGlwZS4KPj4gSW4gdGhhdCB3YXksIHdlIHdpbGwgYmUg YWJsZSB0ZXN0IHRoZSBIRENQIG9uIGFsbCBoZGNwIGNhcGFibGUgY29ubmVjdG9ycy4KPj4KPiBJ J20gY29uZnVzZWQuIFRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGlzIGxvb3Agc2F5cyBpdCB0cmll cyBldmVyeQo+IGNvbWJpbmF0aW9uIG9mIGNvbm5lY3RvcitwaXBlIGZvciBldmVyeSBjb25uZWN0 ZWQgY29ubmVjdG9yLiBDYW4geW91Cj4gZXhwbGFpbiB3aGF0IEknbSBtaXNzaW5nPwo+Cj4gU2Vh bgpZZXMuIE1hY3JvIHRha2VzIGVhY2ggcGlwZSBhbmQgdGVzdHMgYWdhaW5zdCBhbGwgaW50ZXJm YWNlIGFibGUgb3V0cHV0cy4gCkkgbWlzc2VkIHRoYXQgcG9pbnQuClN0aWxsIGl0IHdpbGwgYmUg ZWZmaWNpZW50IHRvIHRlc3QgaGRjcCBvbiBlYWNoIG91dHB1dCB3aXRoIG9ubHkgb25lIApjb21w YXRpYmxlIHBpcGUuCnRlc3Rpbmcgd2l0aCBvdGhlciBjb21wYXRpYmxlIHBpcGVzIG9mIHRoZSBj b25uZWN0b3IgaGFzIG5vIFJPSSB3LnIudCAKaGRjcCB0ZXN0aW5nLgoKQ29uc2lkZXJpbmcgdGhh dCBtYWNybyBwcm92aWRlcyBzdXBlciBzZXQgb2YgcmVxIHBpcGUrb3V0cHV0IApjb21iaW5hdGlv biwgbm8gdXJnZW5jeSB0byBtb2RpZnkgaW1tZWRpYXRlbHkuCj4+IEFuZCBzaW5jZSBpcnJlc3Bl Y3RpdmUgb2YgdGhlIGhkY3Agc3RhdHVzIChwYXNzL2ZhaWwpIG9uIGEgY29ubmVjdG9yLCB3ZQo+ PiBuZWVkIHRvIHRlc3QgaGRjcCBvbiBvdGhlciBjb25uZWN0b3JzIG9uZSBhZnRlciBhbm90aGVy Lgo+PiBTbyB0aGlzIGNhbiBiZSBhY2hpZXZlZCBpZiB0aGUgdGVzdCBvZiBIRENQIG9uIGVhY2gg Y29ubmVjdG9yIGlzIGltcGxlbWVudGVkCj4+IGFzIGRpZmZlcmVudCBJR1Qgc3VidGVzdHMuCj4+ Cj4+Pj4gKyAgICAgICAgaWYgKCFvdXRwdXQtPnByb3BzW0lHVF9DT05ORUNUT1JfQ09OVEVOVF9Q Uk9URUNUSU9OXSkKPj4+PiArICAgICAgICAgICAgY29udGludWU7Cj4+Pj4gKwo+Pj4+ICsgICAg ICAgIHRlc3RfcGlwZV9vdXRwdXQoZGlzcGxheSwgcGlwZSwgb3V0cHV0LCBzKTsKPj4+PiArICAg ICAgICB2YWxpZF90ZXN0cysrOwo+Pj4+ICsgICAgfQo+Pj4+ICsgICAgaWd0X3JlcXVpcmVfZih2 YWxpZF90ZXN0cywgIm5vIHN1cHBvcnQgZm9yIGNvbnRlbnQgcHJvdGVjaXRvbgo+Pj4+IGZvdW5k XG4iKTsKPj4+PiArfQo+Pj4+ICsKPj4+PiAraWd0X21haW4KPj4+PiArewo+Pj4+ICsgICAgZGF0 YV90IGRhdGEgPSB7fTsKPj4+PiArCj4+Pj4gKyAgICBpZ3RfZml4dHVyZSB7Cj4+Pj4gKyAgICAg ICAgaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+Pj4+ICsKPj4+PiArICAgICAgICBkYXRhLmRy bV9mZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfQU5ZKTsKPj4+IFlvdSBuZWVkIE1hc3RlciBw cml2aWxlZ2UgaGVyZS4gSGVuY2UgbWlnaHQgd2FudCB0byB1c2UKPj4+IGRybV9vcGVuX2RyaXZl cl9tYXN0ZXIoKSBpbnN0ZWFkLgo+Pj4KPj4+IC1SYW0KPj4+PiArCj4+Pj4gKyAgICAgICAgaWd0 X2Rpc3BsYXlfaW5pdCgmZGF0YS5kaXNwbGF5LCBkYXRhLmRybV9mZCk7Cj4+Pj4gKyAgICB9Cj4+ Pj4gKwo+Pj4+ICsKPj4+PiArICAgIGlndF9zdWJ0ZXN0KCJsZWdhY3kiKQo+Pj4+ICsgICAgICAg IHRlc3RfY29udGVudF9wcm90ZWN0aW9uKCZkYXRhLmRpc3BsYXksIENPTU1JVF9MRUdBQ1kpOwo+ PiBBcyBkaXNjdXNzZWQgYWJvdmUsIHdlIG5lZWQgdG8gY29uc2lkZXIgY29ubmVjdG9yLXgtbGVn YWN5IGFzIGEgc3VidGVzdC4KPj4+PiArCj4+Pj4gKyAgICBpZ3Rfc3VidGVzdCgiYXRvbWljIikg ewo+Pj4+ICsgICAgICAgIGlndF9yZXF1aXJlKGRhdGEuZGlzcGxheS5pc19hdG9taWMpOwo+Pj4+ ICsgICAgICAgIHRlc3RfY29udGVudF9wcm90ZWN0aW9uKCZkYXRhLmRpc3BsYXksIENPTU1JVF9B VE9NSUMpOwo+PiBBcyBkaXNjdXNzZWQgYWJvdmUsIHdlIG5lZWQgdG8gY29uc2lkZXIgY29ubmVj dG9yLXgtYXRvbWljIGFzIGEgc3VidGVzdC4KRm9yIGludGVybmFsIHRlc3RpbmcgSSBoYXZlIHN1 YiB0ZXN0cyBkZWZpbmVkIGFzIGJlbG93LiBQbGVhc2Ugc2VlIGlmIGl0IApoZWxwcy4KTWlnaHQg bmVlZCBzb21lIHR1bmluZyB0aG91Z2guCgogwqBpZ3RfbWFpbgogwqB7CiDCoMKgwqDCoMKgwqDC oCBkYXRhX3QgZGF0YSA9IHt9OworwqDCoMKgwqDCoMKgIGlndF9vdXRwdXRfdCAqb3V0cHV0Owor wqDCoMKgwqDCoMKgIGVudW0gcGlwZSBwaXBlOworwqDCoMKgwqDCoMKgIGNoYXIgdGVzdF9uYW1l WzUwXTsKK8KgwqDCoMKgwqDCoCBpbnQgaTsKCiDCoMKgwqDCoMKgwqDCoCBpZ3RfZml4dHVyZSB7 CiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWd0X3NraXBfb25fc2ltdWxhdGlvbigp OwpAQCAtMTIyLDEzICsxMDksNDQgQEAgaWd0X21haW4KIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBpZ3RfZGlzcGxheV9pbml0KCZkYXRhLmRpc3BsYXksIGRhdGEuZHJtX2ZkKTsKIMKg wqDCoMKgwqDCoMKgIH0KCivCoMKgwqDCoMKgwqAgLyoKK8KgwqDCoMKgwqDCoMKgICogTm90IHVz aW5nIHRoZSBmb3JfZWFjaF9jb25uZWN0ZWRfb3V0cHV0IGFzIHRoYXQgbWFuZGF0ZXMKK8KgwqDC oMKgwqDCoMKgICogaWd0X2Nhbl9mYWlsKCkuCivCoMKgwqDCoMKgwqDCoCAqLworwqDCoMKgwqDC oMKgIGZvciAoaSA9IDA7IGkgPCBkYXRhLmRpc3BsYXkubl9vdXRwdXRzOyBpKyspCivCoMKgwqDC oMKgwqAgZm9yX2VhY2hfaWYoKG91dHB1dCA9ICYoZGF0YS5kaXNwbGF5Lm91dHB1dHNbaV0pLAor IGlndF9vdXRwdXRfaXNfY29ubmVjdGVkKG91dHB1dCkpKSB7CivCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGlmICghb3V0cHV0LT5wcm9wc1tJR1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJPVEVD VElPTl0pCivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250 aW51ZTsKCi3CoMKgwqDCoMKgwqAgaWd0X3N1YnRlc3QoImxlZ2FjeSIpCi3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHRlc3RfY29udGVudF9wcm90ZWN0aW9uKCZkYXRhLmRpc3BsYXksIENP TU1JVF9MRUdBQ1kpOwotCi3CoMKgwqDCoMKgwqAgaWd0X3N1YnRlc3QoImF0b21pYyIpIHsKLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWd0X3JlcXVpcmUoZGF0YS5kaXNwbGF5LmlzX2F0 b21pYyk7Ci3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRlc3RfY29udGVudF9wcm90ZWN0 aW9uKCZkYXRhLmRpc3BsYXksIENPTU1JVF9BVE9NSUMpOworwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBmb3JfZWFjaF9waXBlX3N0YXRpYyhwaXBlKSB7CivCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIWlndF9waXBlX2Nvbm5lY3Rvcl92YWxpZChw aXBlLCBvdXRwdXQpKQorwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlOworCivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzcHJpbnRmKHRlc3RfbmFtZSwgIkhEQ1BfJXNfUElQRS0lc19s ZWdhY3kiLAorIG91dHB1dC0+bmFtZSwKKyBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSk7CivCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZ3Rfc3VidGVzdCh0ZXN0 X25hbWUpCisgdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oJmRhdGEuZGlzcGxheSwgcGlwZSwKKyBv dXRwdXQsIENPTU1JVF9MRUdBQ1kpOworCivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBpZiAoIWRhdGEuZGlzcGxheS5pc19hdG9taWMpCivCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7CisK K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNwcmludGYodGVz dF9uYW1lLCAiSERDUF8lc19QSVBFLSVzX2F0b21pYyIsCisgb3V0cHV0LT5uYW1lLAorIGttc3Rl c3RfcGlwZV9uYW1lKHBpcGUpKTsKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGlndF9zdWJ0ZXN0KHRlc3RfbmFtZSkKKyB0ZXN0X2NvbnRlbnRfcHJvdGVjdGlv bigmZGF0YS5kaXNwbGF5LCBwaXBlLAorIG91dHB1dCwgQ09NTUlUX0FUT01JQyk7CisKK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qCivCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogVGVzdGluZyBhIG91dHB1dCB3aXRo IGEgcGlwZSBpcyBlbm91Z2ggZm9yIEhEQ1AKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKiB0ZXN0aW5nLiBObyBST0kgaW4gdGVzdGluZyB0aGUgY29ubmVj dG9yIHdpdGggCm90aGVyCivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICogcGlwZXMuIFNvIEJyZWFrIHRoZSBsb29wIG9uIHBpcGUuCivCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICovCivCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgfQogwqDCoMKgwqDCoMKgwqAgfQoKIMKgwqDCoMKgwqDCoMKgIGlndF9maXh0dXJlCgoK Pj4KPj4gLVJhbQo+Pgo+Pj4+ICsgICAgfQo+Pj4+ICsKPj4+PiArICAgIGlndF9maXh0dXJlCj4+ Pj4gKyAgICAgICAgaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5KTsKPj4+PiArfQo+Pj4+ IGRpZmYgLS1naXQgYS90ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkCj4+Pj4g aW5kZXggNTljY2Q5YTYuLmIxMmMzNWMwIDEwMDY0NAo+Pj4+IC0tLSBhL3Rlc3RzL21lc29uLmJ1 aWxkCj4+Pj4gKysrIGIvdGVzdHMvbWVzb24uYnVpbGQKPj4+PiBAQCAtMTU3LDYgKzE1Nyw3IEBA IHRlc3RfcHJvZ3MgPSBbCj4+Pj4gICAgICAgICdrbXNfY2h2X2N1cnNvcl9mYWlsJywKPj4+PiAg ICAgICAgJ2ttc19jb2xvcicsCj4+Pj4gICAgICAgICdrbXNfY29uY3VycmVudCcsCj4+Pj4gKyAg ICAna21zX2NvbnRlbnRfcHJvdGVjdGlvbicsCj4+Pj4gICAgICAgICdrbXNfY3J0Y19iYWNrZ3Jv dW5kX2NvbG9yJywKPj4+PiAgICAgICAgJ2ttc19jdXJzb3JfY3JjJywKPj4+PiAgICAgICAgJ2tt c19jdXJzb3JfbGVnYWN5JywKPj4+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK