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: Tue, 19 Dec 2017 19:58:18 +0530 Message-ID: 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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id B59086E2FE for ; Tue, 19 Dec 2017 14:31:59 +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 , intel-gfx@lists.freedesktop.org Cc: seanpaul@google.com List-Id: intel-gfx@lists.freedesktop.org QWRkaW5nIGZldyBtb3JlIGZpbmRpbmdzIGZyb20gdGhlIElHVCB1c2FnZSB3aXRoIGtlcm5lbCBz b2x1dGlvbnMuCgoKT24gV2VkbmVzZGF5IDEzIERlY2VtYmVyIDIwMTcgMDQ6MDcgUE0sIFJhbWFs aW5nYW0gQyB3cm90ZToKPiBTZWFuLAo+Cj4gQWRkaW5nIGZldyBtb3JlIG9ic2VydmF0aW9ucy4K Pgo+Cj4gT24gVGh1cnNkYXkgMDcgRGVjZW1iZXIgMjAxNyAwNTo0NyBBTSwgU2VhbiBQYXVsIHdy b3RlOgo+PiBQcmV0dHkgc2ltcGxlIHRlc3Q6Cj4+IC0gaW5pdGlhbGl6ZXMgdGhlIG91dHB1dAo+ PiAtIGNsZWFycyB0aGUgY29udGVudCBwcm90ZWN0aW9uIHByb3BlcnR5Cj4+IC0gdmVyaWZpZXMg dGhhdCBpdCBjbGVhcnMKPj4gLSBzZXRzIHRoZSBjb250ZW50IHByb3RlY3Rpb24gcHJvcGVydHkg dG8gZGVzaXJlZAo+PiAtIHZlcmlmaWVzIHRoYXQgaXQgdHJhbnNpdGlvbnMgdG8gZW5hYmxlZAo+ Pgo+PiBEb2VzIHRoaXMgZm9yIGJvdGggbGVnYWN5IGFuZCBhdG9taWMuCj4+Cj4+IENoYW5nZXMg aW4gdjI6Cj4+IC0gRG9uJ3QgY2hlY2sgZm9yIGk5MTUgZ2VuCj4+IC0gU2tpcCB0ZXN0IGlmIENv bnRlbnQgUHJvdGVjdGlvbiBwcm9wZXJ0eSBpcyBhYnNlbnQKPj4KPj4gU2lnbmVkLW9mZi1ieTog U2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Cj4+IC0tLQo+PiDCoCBsaWIvaWd0X2tt cy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAzICstCj4+IMKgIGxp Yi9pZ3Rfa21zLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDEgKwo+ PiDCoCB0ZXN0cy9NYWtlZmlsZS5zb3VyY2VzwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAxICsKPj4g wqAgdGVzdHMva21zX2NvbnRlbnRfcHJvdGVjdGlvbi5jIHwgMTI5IAo+PiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiDCoCB0ZXN0cy9tZXNvbi5idWlsZMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDEgKwo+PiDCoCA1IGZpbGVzIGNoYW5nZWQsIDEz NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+IMKgIGNyZWF0ZSBtb2RlIDEwMDY0NCB0 ZXN0cy9rbXNfY29udGVudF9wcm90ZWN0aW9uLmMKPj4KPj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3Rf a21zLmMgYi9saWIvaWd0X2ttcy5jCj4+IGluZGV4IDEyNWVjYjE5Li45MDdkYjY5NCAxMDA2NDQK Pj4gLS0tIGEvbGliL2lndF9rbXMuYwo+PiArKysgYi9saWIvaWd0X2ttcy5jCj4+IEBAIC0xOTAs NyArMTkwLDggQEAgY29uc3QgY2hhciAKPj4gKmlndF9jb25uZWN0b3JfcHJvcF9uYW1lc1tJR1Rf TlVNX0NPTk5FQ1RPUl9QUk9QU10gPSB7Cj4+IMKgwqDCoMKgwqAgInNjYWxpbmcgbW9kZSIsCj4+ IMKgwqDCoMKgwqAgIkNSVENfSUQiLAo+PiDCoMKgwqDCoMKgICJEUE1TIiwKPj4gLcKgwqDCoCAi QnJvYWRjYXN0IFJHQiIKPj4gK8KgwqDCoCAiQnJvYWRjYXN0IFJHQiIsCj4+ICvCoMKgwqAgIkNv bnRlbnQgUHJvdGVjdGlvbiIKPj4gwqAgfTsKPj4gwqAgwqAgLyoKPj4gZGlmZiAtLWdpdCBhL2xp Yi9pZ3Rfa21zLmggYi9saWIvaWd0X2ttcy5oCj4+IGluZGV4IDJhNDgwYmYzLi45M2U1OWRjNyAx MDA2NDQKPj4gLS0tIGEvbGliL2lndF9rbXMuaAo+PiArKysgYi9saWIvaWd0X2ttcy5oCj4+IEBA IC0xMTgsNiArMTE4LDcgQEAgZW51bSBpZ3RfYXRvbWljX2Nvbm5lY3Rvcl9wcm9wZXJ0aWVzIHsK Pj4gwqDCoMKgwqDCoMKgwqDCoCBJR1RfQ09OTkVDVE9SX0NSVENfSUQsCj4+IMKgwqDCoMKgwqDC oMKgwqAgSUdUX0NPTk5FQ1RPUl9EUE1TLAo+PiDCoMKgwqDCoMKgwqDCoMKgIElHVF9DT05ORUNU T1JfQlJPQURDQVNUX1JHQiwKPj4gK8KgwqDCoMKgwqDCoCBJR1RfQ09OTkVDVE9SX0NPTlRFTlRf UFJPVEVDVElPTiwKPj4gwqDCoMKgwqDCoMKgwqDCoCBJR1RfTlVNX0NPTk5FQ1RPUl9QUk9QUwo+ PiDCoCB9Owo+PiDCoCBkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rlc3Rz L01ha2VmaWxlLnNvdXJjZXMKPj4gaW5kZXggMzRjYTcxYTAuLmUwNDY2NDExIDEwMDY0NAo+PiAt LS0gYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCj4+ICsrKyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJj ZXMKPj4gQEAgLTE3OSw2ICsxNzksNyBAQCBURVNUU19wcm9ncyA9IFwKPj4gwqDCoMKgwqDCoCBr bXNfY2h2X2N1cnNvcl9mYWlsIFwKPj4gwqDCoMKgwqDCoCBrbXNfY29sb3IgXAo+PiDCoMKgwqDC oMKgIGttc19jb25jdXJyZW50IFwKPj4gK8KgwqDCoCBrbXNfY29udGVudF9wcm90ZWN0aW9uXAo+ PiDCoMKgwqDCoMKgIGttc19jcnRjX2JhY2tncm91bmRfY29sb3IgXAo+PiDCoMKgwqDCoMKgIGtt c19jdXJzb3JfY3JjIFwKPj4gwqDCoMKgwqDCoCBrbXNfY3Vyc29yX2xlZ2FjeSBcCj4+IGRpZmYg LS1naXQgYS90ZXN0cy9rbXNfY29udGVudF9wcm90ZWN0aW9uLmMgCj4+IGIvdGVzdHMva21zX2Nv bnRlbnRfcHJvdGVjdGlvbi5jCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAw MDAwLi41ZDYxYjI1Nwo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL3Rlc3RzL2ttc19jb250ZW50 X3Byb3RlY3Rpb24uYwo+PiBAQCAtMCwwICsxLDEyOSBAQAo+PiArLyoKPj4gKyAqIENvcHlyaWdo dCDCqSAyMDE3IEdvb2dsZSwgSW5jLgo+PiArICoKPj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5 IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIAo+PiBvYnRhaW5pbmcgYQo+ PiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g ZmlsZXMgKHRoZSAKPj4gIlNvZnR3YXJlIiksCj4+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2Fy ZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCAKPj4gbGltaXRhdGlvbgo+ PiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRp c3RyaWJ1dGUsIAo+PiBzdWJsaWNlbnNlLAo+PiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRo ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gCj4+IHRoZQo+PiArICog U29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9uczoKPj4gKyAqCj4+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg dGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIAo+PiB0aGUgbmV4dAo+PiArICogcGFy YWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIAo+ PiBwb3J0aW9ucyBvZiB0aGUKPj4gKyAqIFNvZnR3YXJlLgo+PiArICoKPj4gKyAqIFRIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCAK Pj4gRVhQUkVTUyBPUgo+PiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU TyBUSEUgV0FSUkFOVElFUyBPRiAKPj4gTUVSQ0hBTlRBQklMSVRZLAo+PiArICogRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC7CoCBJTiBOTyAKPj4g RVZFTlQgU0hBTEwKPj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ QUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIAo+PiBPUiBPVEhFUgo+PiArICogTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIAo+ PiBBUklTSU5HCj4+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBT T0ZUV0FSRSBPUiBUSEUgVVNFIE9SIAo+PiBPVEhFUiBERUFMSU5HUwo+PiArICogSU4gVEhFIFNP RlRXQVJFLgo+PiArICoKPj4gKyAqLwo+PiArCj4+ICsjaW5jbHVkZSAiaWd0LmgiCj4+ICsKPj4g K0lHVF9URVNUX0RFU0NSSVBUSU9OKCJUZXN0IGNvbnRlbnQgcHJvdGVjdGlvbiAoSERDUCkiKTsK Pj4gKwo+PiArdHlwZWRlZiBzdHJ1Y3Qgewo+PiArwqDCoMKgIGludCBkcm1fZmQ7Cj4+ICvCoMKg wqAgaWd0X2Rpc3BsYXlfdCBkaXNwbGF5Owo+PiArfSBkYXRhX3Q7Cj4+ICsKPj4gK3N0YXRpYyBi b29sCj4+ICt3YWl0X2Zvcl9wcm9wX3ZhbHVlKGlndF9vdXRwdXRfdCAqb3V0cHV0LCB1aW50NjRf dCBleHBlY3RlZCkKPj4gK3sKPj4gK8KgwqDCoCB1aW50NjRfdCB2YWw7Cj4+ICvCoMKgwqAgaW50 IGk7Cj4+ICsKPj4gK8KgwqDCoCBmb3IgKGkgPSAwOyBpIDwgMjAwMDsgaSsrKSB7Cj4gd2UgbmVl ZCA1K1NlYyB0byBjb21wbGV0ZSB0aGUgU2Vjb25kIHBhcnQgb2YgYXV0aGVudGljYXRpb24sIGlu IGNhc2UgCj4gb2YgcmVwZWF0ZXIgd2l0aCBtYXggZG93bnN0cmVhbSB0b3BvbG9neS4KPiBTbyB3 ZSBtaWdodCBuZWVkIHRvIHdhaXQgZm9yIDYwMDAoNlNlYykgbG9vcHMhPwo+PiArwqDCoMKgwqDC oMKgwqAgdmFsID0gaWd0X291dHB1dF9nZXRfcHJvcChvdXRwdXQsCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgSUdUX0NPTk5FQ1RPUl9DT05URU5UX1BST1RF Q1RJT04pOwo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKHZhbCA9PSBleHBlY3RlZCkKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHRydWU7Cj4+ICvCoMKgwqDCoMKgwqDCoCB1c2xlZXAo MTAwMCk7Cj4+ICvCoMKgwqAgfQo+PiArwqDCoMKgIGlndF9pbmZvKCJwcm9wX3ZhbHVlIG1pc21h dGNoICVsZCAhPSAlbGRcbiIsIHZhbCwgZXhwZWN0ZWQpOwo+PiArwqDCoMKgIHJldHVybiBmYWxz ZTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQKPj4gK3Rlc3RfcGlwZV9vdXRwdXQoaWd0X2Rp c3BsYXlfdCAqZGlzcGxheSwgY29uc3QgZW51bSBwaXBlIHBpcGUsCj4+ICvCoMKgwqDCoMKgwqDC oMKgIGlndF9vdXRwdXRfdCAqb3V0cHV0LCBlbnVtIGlndF9jb21taXRfc3R5bGUgcykKPj4gK3sK Pj4gK8KgwqDCoCBkcm1Nb2RlTW9kZUluZm8gbW9kZTsKPj4gK8KgwqDCoCBpZ3RfcGxhbmVfdCAq cHJpbWFyeTsKPj4gK8KgwqDCoCBzdHJ1Y3QgaWd0X2ZiIHJlZDsKPj4gK8KgwqDCoCBib29sIHJl dDsKPj4gKwo+PiArwqDCoMKgIGlndF9hc3NlcnQoa21zdGVzdF9nZXRfY29ubmVjdG9yX2RlZmF1 bHRfbW9kZSgKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGlzcGxheS0+ZHJtX2ZkLCBvdXRw dXQtPmNvbmZpZy5jb25uZWN0b3IsICZtb2RlKSk7Cj4+ICsKPj4gK8KgwqDCoCBpZ3Rfb3V0cHV0 X292ZXJyaWRlX21vZGUob3V0cHV0LCAmbW9kZSk7Cj4+ICvCoMKgwqAgaWd0X291dHB1dF9zZXRf cGlwZShvdXRwdXQsIHBpcGUpOwo+PiArCj4+ICvCoMKgwqAgaWd0X2NyZWF0ZV9jb2xvcl9mYihk aXNwbGF5LT5kcm1fZmQsIG1vZGUuaGRpc3BsYXksIG1vZGUudmRpc3BsYXksCj4+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRFJNX0ZPUk1BVF9YUkdCODg4OCwgTE9DQUxfRFJNX0ZP Uk1BVF9NT0RfTk9ORSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxLmYsIDAu ZiwgMC5mLCAmcmVkKTsKPj4gK8KgwqDCoCBwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVf dHlwZShvdXRwdXQsIAo+PiBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKPj4gK8KgwqDCoCBpZ3Rf cGxhbmVfc2V0X2ZiKHByaW1hcnksICZyZWQpOwo+PiArwqDCoMKgIGlndF9kaXNwbGF5X2NvbW1p dDIoZGlzcGxheSwgcyk7Cj4+ICsKPj4gK8KgwqDCoCBpZ3Rfb3V0cHV0X3NldF9wcm9wX3ZhbHVl KG91dHB1dCwgCj4+IElHVF9DT05ORUNUT1JfQ09OVEVOVF9QUk9URUNUSU9OLCAwKTsKPj4gK8Kg wqDCoCBpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIHMpOwo+PiArCj4+ICvCoMKgwqAgcmV0 ID0gd2FpdF9mb3JfcHJvcF92YWx1ZShvdXRwdXQsIDApOwo+PiArwqDCoMKgIGlndF9yZXF1aXJl X2YocmV0LCAiQ29udGVudCBQcm90ZWN0aW9uIG5vdCBjbGVhcmVkXG4iKTsKPiBXaGVuIGV4cGVj dGVkIHByb3BlcnR5IHN0YXRlIGlzIG5vdCBtZXQsIHlvdSBtaWdodCB3YW50IHRvIHVzZSAKPiBp Z3RfYXNzZXJ0X2YgdG8gZmFpbCB0aGUgc3VidGVzdC4gSGVyZSB5b3UgYXJlIGp1c3Qgc2tpcHBp bmcgdGhlIHN1YnRlc3QuCj4+ICsKPj4gK8KgwqDCoCBpZ3Rfb3V0cHV0X3NldF9wcm9wX3ZhbHVl KG91dHB1dCwgCj4+IElHVF9DT05ORUNUT1JfQ09OVEVOVF9QUk9URUNUSU9OLCAxKTsKPj4gK8Kg wqDCoCBpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIHMpOwo+PiArCj4+ICvCoMKgwqAgcmV0 ID0gd2FpdF9mb3JfcHJvcF92YWx1ZShvdXRwdXQsIDIpOwoKQXMgdGhlcmUgYXJlIHJhbmdlIG9m IEhEQ1Agc2lua3Mgd2hpY2ggbWlnaHQgZmFpbCB0byBwcm92aWRlIHRoZSBSMCBpbiAKMTAwbVNl YyBpbiB0aGUgZmlyc3QgYXR0ZW1wdC4gQnV0IHBhc3NlcyB0aGUgY29uZGl0aW9uIGluIG5leHQg YXR0ZW1wdC4KSW4gdGhlIHRlc3RpbmcgaXQgaXMgb2JzZXJ2ZWQgdGhhdCBtYW55IHBhbmVsJ3Mg d2lkZWx5IHVzZWQgc2hvd2Nhc2UgCmFib3ZlIG1lbnRpb25lZCBiZWhhdmlvci4KClNvIHdlIG5l ZWQgdG8gcmV0cnkgb24gSERDUCBlbmFibGUgYmVmb3JlIGRlY2xhcmluZyB0aGUgSERDUCBmYWls dXJlLgoKPj4gK8KgwqDCoCBpZ3RfcmVxdWlyZV9mKHJldCwgIkNvbnRlbnQgUHJvdGVjdGlvbiBu b3QgZW5hYmxlZFxuIik7Cj4gc2FtZSBhcyBhYm92ZS4gaWd0X2Fzc2VydF9mIG5lZWRlZD8KPgo+ IEFuZCB3aGVuIHlvdSBhcmUgZG9uZSB3aXRoIGEgY29ubmVjdG9yKG91dHB1dCksIHdlIGNhbnQg bGVhdmUgdGhlIAo+IGNvbnRlbnQgcHJvdGVjdGlvbiBpbiBkZXNpcmVkIHN0YXRlLgo+IEVsc2Ug d2hlbiB3ZSBlbmFibGUgdGhlIGNvbm5lY3RvciBmb3Igc29tZSBvdGhlciBJR1QsIGNvbnRlbnQg Cj4gcHJvdGVjdGlvbiBhdXRoZW50aWNhdGlvbiB3aWxsIGJlIGF0dGVtcHRlZCBieSBrZXJuZWwu Cj4gU28gd2hlbiB3ZSBhcmUgZG9uZSB3aXRoIGEgY29ubmVjdG9yLCB3ZSBuZWVkIHRvIGNsZWFy IHRoZSBjb250ZW50IAo+IHByb3RlY3Rpb24gc3RhdGUoc2V0IHRvIE9GRikgb2YgdGhlIGNvbm5l Y3Rvci4KPgo+PiArCj4+ICvCoMKgwqAgaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCBOVUxMKTsK Pj4gK8KgwqDCoCBpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgUElQRV9OT05FKTsKPj4gK30K Pj4gKwo+PiArc3RhdGljIHZvaWQKPj4gK3Rlc3RfY29udGVudF9wcm90ZWN0aW9uKGlndF9kaXNw bGF5X3QgKmRpc3BsYXksIGVudW0gCj4+IGlndF9jb21taXRfc3R5bGUgcykKPj4gK3sKPj4gK8Kg wqDCoCBpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKPj4gK8KgwqDCoCBlbnVtIHBpcGUgcGlwZTsKPj4g K8KgwqDCoCBpbnQgdmFsaWRfdGVzdHMgPSAwOwo+PiArCj4+ICvCoMKgwqAgZm9yX2VhY2hfcGlw ZV93aXRoX3ZhbGlkX291dHB1dChkaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKIEZyb20gdGhlIHRl c3Rpbmcgb2YgdGhpcyBJR1Qgd2l0aCBrZXJuZWwgY2hhbmdlcywgb2JzZXJ2ZWQgYSBuZWVkIG9m IApyZWxvb2tpbmcgYXQgSERDUCBzdWJ0ZXN0cyBkZWZpbml0aW9uLiBSZWFzb25pbmcgaXMgYXMg Zm9sbG93cy4KCkFuZCBoZXJlIHdlIGFyZSB0YWtpbmcgZWFjaCBwaXBlIGFuZCB0aGVpciBjb21w YXRpYmxlIApvdXRwdXRzKGNvbm5lY3RvcnMpIGZvciBoZGNwIHRlc3QuIExpa2UgUElQRUEgKyBI RE1JLUEtMSwgUElQRUIrSERNSS1BLTEgCmV0Yy4KQnV0IGFzIEhEQ1AgaXMgYXNzb2NpYXRlZCB0 byBjb25uZWN0b3JzLCB3ZSBuZWVkIHRvIGl0ZXJhdGUgb24gaGRjcCAKY2FwYWJsZSBjb25uZWN0 b3IgYW5kIGNob29zZSB0aGUgY29tcGF0aWJsZSBwaXBlLgpJbiB0aGF0IHdheSwgd2Ugd2lsbCBi ZSBhYmxlIHRlc3QgdGhlIEhEQ1Agb24gYWxsIGhkY3AgY2FwYWJsZSBjb25uZWN0b3JzLgoKQW5k IHNpbmNlIGlycmVzcGVjdGl2ZSBvZiB0aGUgaGRjcCBzdGF0dXMgKHBhc3MvZmFpbCkgb24gYSBj b25uZWN0b3IsIHdlIApuZWVkIHRvIHRlc3QgaGRjcCBvbiBvdGhlciBjb25uZWN0b3JzIG9uZSBh ZnRlciBhbm90aGVyLgpTbyB0aGlzIGNhbiBiZSBhY2hpZXZlZCBpZiB0aGUgdGVzdCBvZiBIRENQ IG9uIGVhY2ggY29ubmVjdG9yIGlzIAppbXBsZW1lbnRlZCBhcyBkaWZmZXJlbnQgSUdUIHN1YnRl c3RzLgo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCFvdXRwdXQtPnByb3BzW0lHVF9DT05ORUNUT1Jf Q09OVEVOVF9QUk9URUNUSU9OXSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29udGludWU7 Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgIHRlc3RfcGlwZV9vdXRwdXQoZGlzcGxheSwgcGlwZSwg b3V0cHV0LCBzKTsKPj4gK8KgwqDCoMKgwqDCoMKgIHZhbGlkX3Rlc3RzKys7Cj4+ICvCoMKgwqAg fQo+PiArwqDCoMKgIGlndF9yZXF1aXJlX2YodmFsaWRfdGVzdHMsICJubyBzdXBwb3J0IGZvciBj b250ZW50IHByb3RlY2l0b24gCj4+IGZvdW5kXG4iKTsKPj4gK30KPj4gKwo+PiAraWd0X21haW4K Pj4gK3sKPj4gK8KgwqDCoCBkYXRhX3QgZGF0YSA9IHt9Owo+PiArCj4+ICvCoMKgwqAgaWd0X2Zp eHR1cmUgewo+PiArwqDCoMKgwqDCoMKgwqAgaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+PiAr Cj4+ICvCoMKgwqDCoMKgwqDCoCBkYXRhLmRybV9mZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJf QU5ZKTsKPiBZb3UgbmVlZCBNYXN0ZXIgcHJpdmlsZWdlIGhlcmUuIEhlbmNlIG1pZ2h0IHdhbnQg dG8gdXNlIAo+IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoKSBpbnN0ZWFkLgo+Cj4gLVJhbQo+PiAr Cj4+ICvCoMKgwqDCoMKgwqDCoCBpZ3RfZGlzcGxheV9pbml0KCZkYXRhLmRpc3BsYXksIGRhdGEu ZHJtX2ZkKTsKPj4gK8KgwqDCoCB9Cj4+ICsKPj4gKwo+PiArwqDCoMKgIGlndF9zdWJ0ZXN0KCJs ZWdhY3kiKQo+PiArwqDCoMKgwqDCoMKgwqAgdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oJmRhdGEu ZGlzcGxheSwgQ09NTUlUX0xFR0FDWSk7CkFzIGRpc2N1c3NlZCBhYm92ZSwgd2UgbmVlZCB0byBj b25zaWRlciBjb25uZWN0b3IteC1sZWdhY3kgYXMgYSBzdWJ0ZXN0Lgo+PiArCj4+ICvCoMKgwqAg aWd0X3N1YnRlc3QoImF0b21pYyIpIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGlndF9yZXF1aXJlKGRh dGEuZGlzcGxheS5pc19hdG9taWMpOwo+PiArwqDCoMKgwqDCoMKgwqAgdGVzdF9jb250ZW50X3By b3RlY3Rpb24oJmRhdGEuZGlzcGxheSwgQ09NTUlUX0FUT01JQyk7CkFzIGRpc2N1c3NlZCBhYm92 ZSwgd2UgbmVlZCB0byBjb25zaWRlciBjb25uZWN0b3IteC1hdG9taWMgYXMgYSBzdWJ0ZXN0LgoK LVJhbQo+PiArwqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgIGlndF9maXh0dXJlCj4+ICvCoMKgwqDC oMKgwqDCoCBpZ3RfZGlzcGxheV9maW5pKCZkYXRhLmRpc3BsYXkpOwo+PiArfQo+PiBkaWZmIC0t Z2l0IGEvdGVzdHMvbWVzb24uYnVpbGQgYi90ZXN0cy9tZXNvbi5idWlsZAo+PiBpbmRleCA1OWNj ZDlhNi4uYjEyYzM1YzAgMTAwNjQ0Cj4+IC0tLSBhL3Rlc3RzL21lc29uLmJ1aWxkCj4+ICsrKyBi L3Rlc3RzL21lc29uLmJ1aWxkCj4+IEBAIC0xNTcsNiArMTU3LDcgQEAgdGVzdF9wcm9ncyA9IFsK Pj4gwqDCoMKgwqDCoCAna21zX2Nodl9jdXJzb3JfZmFpbCcsCj4+IMKgwqDCoMKgwqAgJ2ttc19j b2xvcicsCj4+IMKgwqDCoMKgwqAgJ2ttc19jb25jdXJyZW50JywKPj4gK8KgwqDCoCAna21zX2Nv bnRlbnRfcHJvdGVjdGlvbicsCj4+IMKgwqDCoMKgwqAgJ2ttc19jcnRjX2JhY2tncm91bmRfY29s b3InLAo+PiDCoMKgwqDCoMKgICdrbXNfY3Vyc29yX2NyYycsCj4+IMKgwqDCoMKgwqAgJ2ttc19j dXJzb3JfbGVnYWN5JywKPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==