From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: Re: [PATCH i-g-t v4 3/3] Make igtrc configuration common, with configurable suspend/resume delay Date: Thu, 06 Jul 2017 11:57:04 -0400 Message-ID: <1499356624.20388.15.camel@redhat.com> References: <20170704133319.5130-1-paul.kocialkowski@linux.intel.com> <20170704133319.5130-3-paul.kocialkowski@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3E4C86E093 for ; Thu, 6 Jul 2017 15:57:12 +0000 (UTC) In-Reply-To: <20170704133319.5130-3-paul.kocialkowski@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paul Kocialkowski , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UkInZCBhbmQgcHVzaGVkLCB0aGFua3MhCgpPbiBUdWUsIDIwMTctMDctMDQgYXQgMTY6MzMgKzAz MDAsIFBhdWwgS29jaWFsa293c2tpIHdyb3RlOgo+IFRoaXMgYWRkcyBzdXBwb3J0IGZvciBjb25m aWd1cmFibGUgc3VzcGVuZC9yZXN1bWUgZGVsYXkgYW5kIHRha2VzIHRoZQo+IG9jY2FzaW9uIHRv IG1vdmUgaWd0cmMgY29uZmlndWF0aW9uIGZyb20gaWd0X2NoYW1lbGl1bSB0byBpZ3RfY29yZS4K PiBUaGlzIHdheSwgc3VzcGVuZC9yZXN1bWUgZGVsYXkgY29uZmlndXJhdGlvbiBjYW4gYmUgdXNl ZCBmb3IgYWxsCj4gdGVzdHMuCj4gCj4gU2lnbmVkLW9mZi1ieTogUGF1bCBLb2NpYWxrb3dza2kg PHBhdWwua29jaWFsa293c2tpQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiDCoGxpYi9NYWtlZmls ZS5hbcKgwqDCoMKgwqB8wqDCoDIgKysKPiDCoGxpYi9pZ3RfYXV4LmPCoMKgwqDCoMKgwqDCoHwg MjcgKysrKysrKysrKysrKysrKystLS0tCj4gwqBsaWIvaWd0X2F1eC5owqDCoMKgwqDCoMKgwqB8 wqDCoDEgKwo+IMKgbGliL2lndF9jaGFtZWxpdW0uYyB8IDQ5ICsrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KPiDCoGxpYi9pZ3RfY29yZS5jwqDCoMKgwqDCoMKgfCA2OQo+ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gwqBs aWIvaWd0X2NvcmUuaMKgwqDCoMKgwqDCoHzCoMKgMiArKwo+IMKgdGVzdHMvTWFrZWZpbGUuYW3C oMKgwqB8wqDCoDQgKystLQo+IMKgdGVzdHMvY2hhbWVsaXVtLmPCoMKgwqB8IDExICsrKystLS0t LQo+IMKgdG9vbHMvTWFrZWZpbGUuYW3CoMKgwqB8wqDCoDQgKystLQo+IMKgOSBmaWxlcyBjaGFu Z2VkLCAxMTcgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBh L2xpYi9NYWtlZmlsZS5hbSBiL2xpYi9NYWtlZmlsZS5hbQo+IGluZGV4IDkxZTcyYzQ0Li5kNGY0 MTEyOCAxMDA2NDQKPiAtLS0gYS9saWIvTWFrZWZpbGUuYW0KPiArKysgYi9saWIvTWFrZWZpbGUu YW0KPiBAQCAtNDEsNiArNDEsNyBAQCBBTV9DRkxBR1MgPSBcCj4gwqAJwqDCoMKgwqAkKFhNTFJQ Q19DRkxBR1MpIFwKPiDCoAnCoMKgwqDCoCQoTElCVURFVl9DRkxBR1MpIFwKPiDCoAnCoMKgwqDC oCQoUElYTUFOX0NGTEFHUykgXAo+ICsJwqDCoMKgwqAkKEdMSUJfQ0ZMQUdTKSBcCj4gwqAJwqDC oMKgwqAkKFZBTEdSSU5EX0NGTEFHUykgXAo+IMKgCcKgwqDCoMKgLURJR1RfU1JDRElSPVwiIiQo YWJzX3RvcF9zcmNkaXIpL3Rlc3RzIlwiIFwKPiDCoAnCoMKgwqDCoC1ESUdUX0RBVEFESVI9XCIi JChwa2dkYXRhZGlyKSJcIiBcCj4gQEAgLTYxLDUgKzYyLDYgQEAgbGliaW50ZWxfdG9vbHNfbGFf TElCQUREID0gXAo+IMKgCSQoWE1MUlBDX0xJQlMpIFwKPiDCoAkkKExJQlVERVZfTElCUykgXAo+ IMKgCSQoUElYTUFOX0xJQlMpIFwKPiArCSQoR0xJQl9MSUJTKSBcCj4gwqAJLWxtCj4gwqAKPiBk aWZmIC0tZ2l0IGEvbGliL2lndF9hdXguYyBiL2xpYi9pZ3RfYXV4LmMKPiBpbmRleCA4ODJkYmEw Ni4uODZhMjEzYzIgMTAwNjQ0Cj4gLS0tIGEvbGliL2lndF9hdXguYwo+ICsrKyBiL2xpYi9pZ3Rf YXV4LmMKPiBAQCAtNzQ4LDEwICs3NDgsNyBAQCBzdGF0aWMgdm9pZCBzdXNwZW5kX3ZpYV9ydGN3 YWtlKGVudW0KPiBpZ3Rfc3VzcGVuZF9zdGF0ZSBzdGF0ZSkKPiDCoAo+IMKgCWlndF9hc3NlcnQo c3RhdGUgPCBTVVNQRU5EX1NUQVRFX05VTSk7Cj4gwqAKPiAtCWlmIChhdXRvcmVzdW1lX2RlbGF5 KQo+IC0JCWRlbGF5ID0gYXV0b3Jlc3VtZV9kZWxheTsKPiAtCWVsc2UKPiAtCQlkZWxheSA9IHN0 YXRlID09IFNVU1BFTkRfU1RBVEVfRElTSyA/IDMwIDogMTU7Cj4gKwlkZWxheSA9IGlndF9nZXRf YXV0b3Jlc3VtZV9kZWxheShzdGF0ZSk7Cj4gwqAKPiDCoAkvKgo+IMKgCcKgKiBTa2lwIGlmIHJ0 Y3dha2Ugd291bGQgZmFpbCBmb3IgYSByZWFzb24gbm90IHJlbGF0ZWQgdG8KPiB0aGUga2VybmVs J3MKPiBAQCAtODk5LDYgKzg5NiwyOCBAQCB2b2lkIGlndF9zZXRfYXV0b3Jlc3VtZV9kZWxheShp bnQgZGVsYXlfc2VjcykKPiDCoH0KPiDCoAo+IMKgLyoqCj4gKyAqIGlndF9nZXRfYXV0b3Jlc3Vt ZV9kZWxheToKPiArICogQHN0YXRlOiBhbiAjaWd0X3N1c3BlbmRfc3RhdGUsIHRoZSB0YXJnZXQg c3VzcGVuZCBzdGF0ZQo+ICsgKgo+ICsgKiBSZXRyaWV2ZXMgaG93IGxvbmcgd2Ugd2FpdCB0byBy ZXN1bWUgdGhlIHN5c3RlbSBhZnRlciBzdXNwZW5kaW5nCj4gaXQuCj4gKyAqIFRoaXMgY2FuIGVp dGhlciBiZSBzZXQgdGhyb3VnaCBpZ3Rfc2V0X2F1dG9yZXN1bWVfZGVsYXkgb3IgYmUgYQo+IGRl ZmF1bHQKPiArICogdmFsdWUgdGhhdCBkZXBlbmRzIG9uIHRoZSBzdXNwZW5kIHN0YXRlLgo+ICsg Kgo+ICsgKiBSZXR1cm5zOiBUaGUgYXV0b3Jlc3VtZSBkZWxheSwgaW4gc2Vjb25kcy4KPiArICov Cj4gK2ludCBpZ3RfZ2V0X2F1dG9yZXN1bWVfZGVsYXkoZW51bSBpZ3Rfc3VzcGVuZF9zdGF0ZSBz dGF0ZSkKPiArewo+ICsJaW50IGRlbGF5Owo+ICsKPiArCWlmIChhdXRvcmVzdW1lX2RlbGF5KQo+ ICsJCWRlbGF5ID0gYXV0b3Jlc3VtZV9kZWxheTsKPiArCWVsc2UKPiArCQlkZWxheSA9IHN0YXRl ID09IFNVU1BFTkRfU1RBVEVfRElTSyA/IDMwIDogMTU7Cj4gKwo+ICsJcmV0dXJuIGRlbGF5Owo+ ICt9Cj4gKwo+ICsvKioKPiDCoCAqIGlndF9kcm9wX3Jvb3Q6Cj4gwqAgKgo+IMKgICogRHJvcCBy b290IHByaXZpbGVnZXMgYW5kIG1ha2Ugc3VyZSBpdCBhY3R1YWxseSB3b3JrZWQuIFVzZWZ1bCBm b3IKPiB0ZXN0cwo+IGRpZmYgLS1naXQgYS9saWIvaWd0X2F1eC5oIGIvbGliL2lndF9hdXguaAo+ IGluZGV4IDU0Yjk3MTY0Li40OTlhMTY3OSAxMDA2NDQKPiAtLS0gYS9saWIvaWd0X2F1eC5oCj4g KysrIGIvbGliL2lndF9hdXguaAo+IEBAIC0xOTIsNiArMTkyLDcgQEAgZW51bSBpZ3Rfc3VzcGVu ZF90ZXN0IHsKPiDCoHZvaWQgaWd0X3N5c3RlbV9zdXNwZW5kX2F1dG9yZXN1bWUoZW51bSBpZ3Rf c3VzcGVuZF9zdGF0ZSBzdGF0ZSwKPiDCoAkJCQnCoMKgwqBlbnVtIGlndF9zdXNwZW5kX3Rlc3Qg dGVzdCk7Cj4gwqB2b2lkIGlndF9zZXRfYXV0b3Jlc3VtZV9kZWxheShpbnQgZGVsYXlfc2Vjcyk7 Cj4gK2ludCBpZ3RfZ2V0X2F1dG9yZXN1bWVfZGVsYXkoZW51bSBpZ3Rfc3VzcGVuZF9zdGF0ZSBz dGF0ZSk7Cj4gwqAKPiDCoC8qIGRyb3BwaW5nIHByaXZpbGVkZ2VzICovCj4gwqB2b2lkIGlndF9k cm9wX3Jvb3Qodm9pZCk7Cj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfY2hhbWVsaXVtLmMgYi9saWIv aWd0X2NoYW1lbGl1bS5jCj4gaW5kZXggNjI0ZjQ0OGIuLmJmZjA4YzBlIDEwMDY0NAo+IC0tLSBh L2xpYi9pZ3RfY2hhbWVsaXVtLmMKPiArKysgYi9saWIvaWd0X2NoYW1lbGl1bS5jCj4gQEAgLTUx LDggKzUxLDggQEAKPiDCoCAqIFtvbiB0aGUgQ2hyb21lT1MgcHJvamVjdCBwYWdlXShodHRwczov L3d3dy5jaHJvbWl1bS5vcmcvY2hyb21pdW0tCj4gb3MvdGVzdGluZy9jaGFtZWxpdW0pLgo+IMKg ICoKPiDCoCAqIEluIG9yZGVyIHRvIHJ1biB0ZXN0cyB1c2luZyB0aGUgQ2hhbWVsaXVtLCBhIHZh bGlkIGNvbmZpZ3VyYXRpb24KPiBmaWxlIG11c3QgYmUKPiAtICogcHJlc2VudC7CoMKgVGhlIGNv bmZpZ3VyYXRpb24gZmlsZSBpcyBhIG5vcm1hbCBHbGliIGtleWZpbGUKPiAoc2ltaWxhciB0byBX aW5kb3dzCj4gLSAqIElOSSkgc3RydWN0dXJlZCBsaWtlIHNvOgo+ICsgKiBwcmVzZW50LiBJdCBt dXN0IGNvbnRhaW4gQ2hhbWVsaXVtLXNwZWNpZmljIGtleXMgYXMgc2hvd24gd2l0aAo+IHRoZSBm b2xsb3dpbmcKPiArICogZXhhbXBsZToKPiDCoCAqCj4gwqAgKiB8WzwhLS0gbGFuZ3VhZ2U9InBs YWluIiAtLT4KPiDCoCAqCVtDaGFtZWxpdW1dCj4gQEAgLTcyLDggKzcyLDYgQEAKPiDCoCAqCUNo YW1lbGl1bVBvcnRJRD0zCj4gwqAgKiBdfAo+IMKgICoKPiAtICogQnkgZGVmYXVsdCwgdGhpcyBm aWxlIGlzIGV4cGVjdGVkIHRvIGV4aXN0IGluIH4vLmlndHJjIC4gVGhlCj4gZGlyZWN0b3J5IGZv cgo+IC0gKiB0aGlzIGNhbiBiZSBvdmVycmlkZW4gYnkgc2V0dGluZyB0aGUgZW52aXJvbm1lbnQg dmFyaWFibGUKPiAlSUdUX0NPTkZJR19QQVRILgo+IMKgICovCj4gwqAKPiDCoHN0cnVjdCBjaGFt ZWxpdW1fZWRpZCB7Cj4gQEAgLTEwMzQsNyArMTAzMiw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQK PiBjaGFtZWxpdW1fZ2V0X3BvcnRfdHlwZShzdHJ1Y3QgY2hhbWVsaXVtICpjaGFtZWxpdW0sCj4g wqB9Cj4gwqAKPiDCoHN0YXRpYyBib29sIGNoYW1lbGl1bV9yZWFkX3BvcnRfbWFwcGluZ3Moc3Ry dWN0IGNoYW1lbGl1bQo+ICpjaGFtZWxpdW0sCj4gLQkJCQkJwqBpbnQgZHJtX2ZkLCBHS2V5Rmls ZQo+ICprZXlfZmlsZSkKPiArCQkJCQnCoGludCBkcm1fZmQpCj4gwqB7Cj4gwqAJZHJtTW9kZVJl cyAqcmVzOwo+IMKgCWRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcjsKPiBAQCAtMTA0NSw3ICsx MDQzLDcgQEAgc3RhdGljIGJvb2wgY2hhbWVsaXVtX3JlYWRfcG9ydF9tYXBwaW5ncyhzdHJ1Y3QK PiBjaGFtZWxpdW0gKmNoYW1lbGl1bSwKPiDCoAlpbnQgcG9ydF9pLCBpLCBqOwo+IMKgCWJvb2wg cmV0ID0gdHJ1ZTsKPiDCoAo+IC0JZ3JvdXBfbGlzdCA9IGdfa2V5X2ZpbGVfZ2V0X2dyb3Vwcyhr ZXlfZmlsZSwgTlVMTCk7Cj4gKwlncm91cF9saXN0ID0gZ19rZXlfZmlsZV9nZXRfZ3JvdXBzKGln dF9rZXlfZmlsZSwgTlVMTCk7Cj4gwqAKPiDCoAkvKiBDb3VudCBob3cgbWFueSBjb25uZWN0b3Ig bWFwcGluZ3MgYXJlIHNwZWNpZmllZCBpbiB0aGUKPiBjb25maWcgKi8KPiDCoAlmb3IgKGkgPSAw OyBncm91cF9saXN0W2ldICE9IE5VTEw7IGkrKykgewo+IEBAIC0xMDY4LDcgKzEwNjYsNyBAQCBz dGF0aWMgYm9vbCBjaGFtZWxpdW1fcmVhZF9wb3J0X21hcHBpbmdzKHN0cnVjdAo+IGNoYW1lbGl1 bSAqY2hhbWVsaXVtLAo+IMKgCj4gwqAJCXBvcnQgPSAmY2hhbWVsaXVtLT5wb3J0c1twb3J0X2kr K107Cj4gwqAJCXBvcnQtPm5hbWUgPSBzdHJkdXAobWFwX25hbWUpOwo+IC0JCXBvcnQtPmlkID0g Z19rZXlfZmlsZV9nZXRfaW50ZWdlcihrZXlfZmlsZSwgZ3JvdXAsCj4gKwkJcG9ydC0+aWQgPSBn X2tleV9maWxlX2dldF9pbnRlZ2VyKGlndF9rZXlfZmlsZSwKPiBncm91cCwKPiDCoAkJCQkJCcKg wqAiQ2hhbWVsaXVtUG9ydElEIiwKPiDCoAkJCQkJCcKgwqAmZXJyb3IpOwo+IMKgCQlpZiAoIXBv cnQtPmlkKSB7Cj4gQEAgLTExMjUsNDcgKzExMjMsMjIgQEAgb3V0Ogo+IMKgCj4gwqBzdGF0aWMg Ym9vbCBjaGFtZWxpdW1fcmVhZF9jb25maWcoc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVtLCBp bnQKPiBkcm1fZmQpCj4gwqB7Cj4gLQlHS2V5RmlsZSAqa2V5X2ZpbGUgPSBnX2tleV9maWxlX25l dygpOwo+IMKgCUdFcnJvciAqZXJyb3IgPSBOVUxMOwo+IC0JY2hhciAqa2V5X2ZpbGVfbG9jLCAq a2V5X2ZpbGVfZW52Owo+IC0JaW50IHJjOwo+IC0JYm9vbCByZXQgPSB0cnVlOwo+IMKgCj4gLQlr ZXlfZmlsZV9lbnYgPSBnZXRlbnYoIklHVF9DT05GSUdfUEFUSCIpOwo+IC0JaWYgKGtleV9maWxl X2Vudikgewo+IC0JCWtleV9maWxlX2xvYyA9IGtleV9maWxlX2VudjsKPiAtCX0gZWxzZSB7Cj4g LQkJa2V5X2ZpbGVfbG9jID0gbWFsbG9jKDEwMCk7Cj4gLQkJc25wcmludGYoa2V5X2ZpbGVfbG9j LCAxMDAsICIlcy8uaWd0cmMiLAo+IGdfZ2V0X2hvbWVfZGlyKCkpOwo+ICsJaWYgKCFpZ3Rfa2V5 X2ZpbGUpIHsKPiArCQlpZ3Rfd2FybigiTm8gY29uZmlndXJhdGlvbiBmaWxlIGF2YWlsYWJsZSBm b3IKPiBjaGFtZWxpdW1cbiIpOwo+ICsJCXJldHVybiBmYWxzZTsKPiDCoAl9Cj4gwqAKPiAtCXJj ID0gZ19rZXlfZmlsZV9sb2FkX2Zyb21fZmlsZShrZXlfZmlsZSwga2V5X2ZpbGVfbG9jLAo+IC0J CQkJwqDCoMKgwqDCoMKgwqBHX0tFWV9GSUxFX05PTkUsICZlcnJvcik7Cj4gLQlpZiAoIXJjKSB7 Cj4gLQkJaWd0X3dhcm4oIkZhaWxlZCB0byByZWFkIGNoYW1lbGl1bSBjb25maWd1cmF0aW9uCj4g ZmlsZTogJXNcbiIsCj4gLQkJCcKgZXJyb3ItPm1lc3NhZ2UpOwo+IC0JCXJldCA9IGZhbHNlOwo+ IC0JCWdvdG8gb3V0Owo+IC0JfQo+IC0KPiAtCWNoYW1lbGl1bS0+dXJsID0gZ19rZXlfZmlsZV9n ZXRfc3RyaW5nKGtleV9maWxlLAo+ICJDaGFtZWxpdW0iLCAiVVJMIiwKPiArCWNoYW1lbGl1bS0+ dXJsID0gZ19rZXlfZmlsZV9nZXRfc3RyaW5nKGlndF9rZXlfZmlsZSwKPiAiQ2hhbWVsaXVtIiwg IlVSTCIsCj4gwqAJCQkJCcKgwqDCoMKgwqDCoMKgJmVycm9yKTsKPiDCoAlpZiAoIWNoYW1lbGl1 bS0+dXJsKSB7Cj4gwqAJCWlndF93YXJuKCJDb3VsZG4ndCByZWFkIGNoYW1lbGl1bSBVUkwgZnJv bSBjb25maWcKPiBmaWxlOiAlc1xuIiwKPiDCoAkJCcKgZXJyb3ItPm1lc3NhZ2UpOwo+IC0JCXJl dCA9IGZhbHNlOwo+IC0JCWdvdG8gb3V0Owo+ICsJCXJldHVybiBmYWxzZTsKPiDCoAl9Cj4gwqAK PiAtCXJldCA9IGNoYW1lbGl1bV9yZWFkX3BvcnRfbWFwcGluZ3MoY2hhbWVsaXVtLCBkcm1fZmQs Cj4ga2V5X2ZpbGUpOwo+IC0KPiAtb3V0Ogo+IC0JZ19rZXlfZmlsZV9mcmVlKGtleV9maWxlKTsK PiAtCj4gLQlpZiAoIWtleV9maWxlX2VudikKPiAtCQlmcmVlKGtleV9maWxlX2xvYyk7Cj4gLQo+ IC0JcmV0dXJuIHJldDsKPiArCXJldHVybiBjaGFtZWxpdW1fcmVhZF9wb3J0X21hcHBpbmdzKGNo YW1lbGl1bSwgZHJtX2ZkKTsKPiDCoH0KPiDCoAo+IMKgLyoqCj4gZGlmZiAtLWdpdCBhL2xpYi9p Z3RfY29yZS5jIGIvbGliL2lndF9jb3JlLmMKPiBpbmRleCA5YTVlZDQwZS4uMWJhNzkzNjEgMTAw NjQ0Cj4gLS0tIGEvbGliL2lndF9jb3JlLmMKPiArKysgYi9saWIvaWd0X2NvcmUuYwo+IEBAIC01 Nyw2ICs1Nyw3IEBACj4gwqAjaW5jbHVkZSA8bGltaXRzLmg+Cj4gwqAjaW5jbHVkZSA8bG9jYWxl Lmg+Cj4gwqAjaW5jbHVkZSA8dXdpbGRtYXQvdXdpbGRtYXQuaD4KPiArI2luY2x1ZGUgPGdsaWIu aD4KPiDCoAo+IMKgI2luY2x1ZGUgImRybXRlc3QuaCIKPiDCoCNpbmNsdWRlICJpbnRlbF9jaGlw c2V0LmgiCj4gQEAgLTIyNSw2ICsyMjYsMjMgQEAKPiDCoCAqIC0gJ2Jhc2ljKixhZHZhbmNlZCon IG1hdGNoIGFueSBzdWJ0ZXN0IHN0YXJ0aW5nIGJhc2ljIG9yIGFkdmFuY2VkCj4gwqAgKiAtICcq LCFiYXNpYyonIG1hdGNoIGFueSBzdWJ0ZXN0IG5vdCBzdGFydGluZyBiYXNpYwo+IMKgICogLSAn YmFzaWMqLCFiYXNpYy1yZW5kZXIqJyBtYXRjaCBhbnkgc3VidGVzdCBzdGFydGluZyBiYXNpYyBi dXQKPiBub3Qgc3RhcnRpbmcgYmFzaWMtcmVuZGVyCj4gKyAqCj4gKyAqICMgQ29uZmlndXJhdGlv bgo+ICsgKgo+ICsgKiBTb21lIG9mIElHVCdzIGJlaGF2aW9yIGNhbiBiZSBjb25maWd1cmVkIHRo cm91Z2ggYSBjb25maWd1cmF0aW9uCj4gZmlsZS4KPiArICogQnkgZGVmYXVsdCwgdGhpcyBmaWxl IGlzIGV4cGVjdGVkIHRvIGV4aXN0IGluIH4vLmlndHJjIC4gVGhlCj4gZGlyZWN0b3J5IGZvcgo+ ICsgKiB0aGlzIGNhbiBiZSBvdmVycmlkZW4gYnkgc2V0dGluZyB0aGUgZW52aXJvbm1lbnQgdmFy aWFibGUKPiAlSUdUX0NPTkZJR19QQVRILgo+ICsgKiBBbiBleGFtcGxlIGNvbmZpZ3VyYXRpb24g Zm9sbG93czoKPiArICoKPiArICogfFs8IS0tIGxhbmd1YWdlPSJwbGFpbiIgLS0+Cj4gKyAqCSMg VGhlIGZvbGxvd2luZyBzZWN0aW9uIGlzIHVzZWQgZm9yIGNvbmZpZ3VyaW5nIHRoZSBEZXZpY2UK PiBVbmRlciBUZXN0Lgo+ICsgKgkjIEl0IGlzIG5vdCBtYW5kYXRvcnkgYW5kIGFsbG93cyBvdmVy cmlkaW5nIGRlZmF1bHQKPiB2YWx1ZXMuCj4gKyAqCVtEVVRdCj4gKyAqCVN1c3BlbmRSZXN1bWVE ZWxheT0xMAo+ICsgKiBdfAo+ICsgKgo+ICsgKiBTb21lIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24g b3B0aW9ucyBtYXkgYmUgdXNlZCBieSBzcGVjaWZpYyBwYXJ0cwo+IG9mIElHVCwKPiArICogc3Vj aCBhcyB0aG9zZSByZWxhdGVkIHRvIENoYW1lbGl1bSBzdXBwb3J0Lgo+IMKgICovCj4gwqAKPiDC oHN0YXRpYyB1bnNpZ25lZCBpbnQgZXhpdF9oYW5kbGVyX2NvdW50Owo+IEBAIC0yNzEsNiArMjg5 LDggQEAgc3RhdGljIHN0cnVjdCB7Cj4gwqB9IGxvZ19idWZmZXI7Cj4gwqBzdGF0aWMgcHRocmVh ZF9tdXRleF90IGxvZ19idWZmZXJfbXV0ZXggPSBQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSOwo+ IMKgCj4gK0dLZXlGaWxlICppZ3Rfa2V5X2ZpbGU7Cj4gKwo+IMKgY29uc3QgY2hhciAqaWd0X3Rl c3RfbmFtZSh2b2lkKQo+IMKgewo+IMKgCXJldHVybiBjb21tYW5kX3N0cjsKPiBAQCAtNTkzLDYg KzYxMywyNSBAQCBzdGF0aWMgdm9pZCBvb21fYWRqdXN0X2Zvcl9kb29tKHZvaWQpCj4gwqAKPiDC oH0KPiDCoAo+ICtzdGF0aWMgaW50IGNvbmZpZ19wYXJzZSh2b2lkKQo+ICt7Cj4gKwlHRXJyb3Ig KmVycm9yID0gTlVMTDsKPiArCWludCByYzsKPiArCj4gKwlpZiAoIWlndF9rZXlfZmlsZSkKPiAr CQlyZXR1cm4gMDsKPiArCj4gKwlyYyA9IGdfa2V5X2ZpbGVfZ2V0X2ludGVnZXIoaWd0X2tleV9m aWxlLCAiRFVUIiwKPiAiU3VzcGVuZFJlc3VtZURlbGF5IiwKPiArCQkJCcKgwqDCoMKgJmVycm9y KTsKPiArCWlmIChlcnJvciAmJiBlcnJvci0+Y29kZSA9PSBHX0tFWV9GSUxFX0VSUk9SX0lOVkFM SURfVkFMVUUpCj4gKwkJcmV0dXJuIC0yOwo+ICsKPiArCWlmIChyYyAhPSAwKQo+ICsJCWlndF9z ZXRfYXV0b3Jlc3VtZV9kZWxheShyYyk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gwqBz dGF0aWMgaW50IGNvbW1vbl9pbml0KGludCAqYXJnYywgY2hhciAqKmFyZ3YsCj4gwqAJCcKgwqDC oMKgwqDCoMKgY29uc3QgY2hhciAqZXh0cmFfc2hvcnRfb3B0cywKPiDCoAkJwqDCoMKgwqDCoMKg wqBjb25zdCBzdHJ1Y3Qgb3B0aW9uICpleHRyYV9sb25nX29wdHMsCj4gQEAgLTYxNiw2ICs2NTUs OSBAQCBzdGF0aWMgaW50IGNvbW1vbl9pbml0KGludCAqYXJnYywgY2hhciAqKmFyZ3YsCj4gwqAJ aW50IGV4dHJhX29wdF9jb3VudDsKPiDCoAlpbnQgYWxsX29wdF9jb3VudDsKPiDCoAlpbnQgcmV0 ID0gMDsKPiArCWNoYXIgKmtleV9maWxlX2xvYyA9IE5VTEw7Cj4gKwljaGFyICprZXlfZmlsZV9l bnYgPSBOVUxMOwo+ICsJR0Vycm9yICplcnJvciA9IE5VTEw7Cj4gwqAJY29uc3QgY2hhciAqZW52 Owo+IMKgCj4gwqAJaWYgKCFpc2F0dHkoU1RET1VUX0ZJTEVOTykgfHwgZ2V0ZW52KCJJR1RfUExB SU5fT1VUUFVUIikpCj4gQEAgLTczNyw3ICs3NzksMzEgQEAgc3RhdGljIGludCBjb21tb25faW5p dChpbnQgKmFyZ2MsIGNoYXIgKiphcmd2LAo+IMKgCQl9Cj4gwqAJfQo+IMKgCj4gKwlrZXlfZmls ZV9lbnYgPSBnZXRlbnYoIklHVF9DT05GSUdfUEFUSCIpOwo+ICsJaWYgKGtleV9maWxlX2Vudikg ewo+ICsJCWtleV9maWxlX2xvYyA9IGtleV9maWxlX2VudjsKPiArCX0gZWxzZSB7Cj4gKwkJa2V5 X2ZpbGVfbG9jID0gbWFsbG9jKDEwMCk7Cj4gKwkJc25wcmludGYoa2V5X2ZpbGVfbG9jLCAxMDAs ICIlcy8uaWd0cmMiLAo+IGdfZ2V0X2hvbWVfZGlyKCkpOwo+ICsJfQo+ICsKPiArCWlndF9rZXlf ZmlsZSA9IGdfa2V5X2ZpbGVfbmV3KCk7Cj4gKwlyZXQgPSBnX2tleV9maWxlX2xvYWRfZnJvbV9m aWxlKGlndF9rZXlfZmlsZSwga2V5X2ZpbGVfbG9jLAo+ICsJCQkJCUdfS0VZX0ZJTEVfTk9ORSwg JmVycm9yKTsKPiArCWlmIChlcnJvciAmJiBlcnJvci0+Y29kZSA9PSBHX0tFWV9GSUxFX0VSUk9S KSB7Cj4gKwkJZ19rZXlfZmlsZV9mcmVlKGlndF9rZXlfZmlsZSk7Cj4gKwkJaWd0X2tleV9maWxl ID0gTlVMTDsKPiArCQlyZXQgPSAtMjsKPiArCj4gKwkJZ290byBvdXQ7Cj4gKwl9Cj4gKwo+ICsJ cmV0ID0gY29uZmlnX3BhcnNlKCk7Cj4gKwo+IMKgb3V0Ogo+ICsJaWYgKCFrZXlfZmlsZV9lbnYg JiYga2V5X2ZpbGVfbG9jKQo+ICsJCWZyZWUoa2V5X2ZpbGVfbG9jKTsKPiArCj4gwqAJZnJlZShz aG9ydF9vcHRzKTsKPiDCoAlmcmVlKGNvbWJpbmVkX29wdHMpOwo+IMKgCj4gQEAgLTEzNDUsNiAr MTQxMSw5IEBAIHZvaWQgaWd0X2V4aXQodm9pZCkKPiDCoHsKPiDCoAlpZ3RfZXhpdF9jYWxsZWQg PSB0cnVlOwo+IMKgCj4gKwlpZiAoaWd0X2tleV9maWxlKQo+ICsJCWdfa2V5X2ZpbGVfZnJlZShp Z3Rfa2V5X2ZpbGUpOwo+ICsKPiDCoAlpZiAocnVuX3NpbmdsZV9zdWJ0ZXN0ICYmICFydW5fc2lu Z2xlX3N1YnRlc3RfZm91bmQpIHsKPiDCoAkJaWd0X3dhcm4oIlVua25vd24gc3VidGVzdDogJXNc biIsCj4gcnVuX3NpbmdsZV9zdWJ0ZXN0KTsKPiDCoAkJZXhpdChJR1RfRVhJVF9JTlZBTElEKTsK PiBkaWZmIC0tZ2l0IGEvbGliL2lndF9jb3JlLmggYi9saWIvaWd0X2NvcmUuaAo+IGluZGV4IGEy ZWQ5NzIwLi4wNzM5Y2E4MyAxMDA2NDQKPiAtLS0gYS9saWIvaWd0X2NvcmUuaAo+ICsrKyBiL2xp Yi9pZ3RfY29yZS5oCj4gQEAgLTQwLDYgKzQwLDcgQEAKPiDCoCNpbmNsdWRlIDxzdGRhcmcuaD4K PiDCoCNpbmNsdWRlIDxnZXRvcHQuaD4KPiDCoCNpbmNsdWRlIDx1bmlzdGQuaD4KPiArI2luY2x1 ZGUgPGdsaWIuaD4KPiDCoAo+IMKgI2lmbmRlZiBJR1RfTE9HX0RPTUFJTgo+IMKgI2RlZmluZSBJ R1RfTE9HX0RPTUFJTiAoTlVMTCkKPiBAQCAtNDgsNiArNDksNyBAQAo+IMKgCj4gwqBleHRlcm4g Y29uc3QgY2hhciogX19pZ3RfdGVzdF9kZXNjcmlwdGlvbiBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSk7 Cj4gwqBleHRlcm4gYm9vbCBfX2lndF9wbGFpbl9vdXRwdXQ7Cj4gK2V4dGVybiBHS2V5RmlsZSAq aWd0X2tleV9maWxlOwo+IMKgCj4gwqAKPiDCoC8qKgo+IGRpZmYgLS1naXQgYS90ZXN0cy9NYWtl ZmlsZS5hbSBiL3Rlc3RzL01ha2VmaWxlLmFtCj4gaW5kZXggYjA1MTM2NGMuLmY5ZDExZTZjIDEw MDY0NAo+IC0tLSBhL3Rlc3RzL01ha2VmaWxlLmFtCj4gKysrIGIvdGVzdHMvTWFrZWZpbGUuYW0K PiBAQCAtNzIsOSArNzIsOSBAQCBBTV9DRkxBR1MgPSAkKERSTV9DRkxBR1MpICQoQ1dBUk5GTEFH UykgLVduby0KPiB1bnVzZWQtcmVzdWx0ICQoREVCVUdfQ0ZMQUdTKVwKPiDCoAkkKExJQlVOV0lO RF9DRkxBR1MpICQoV0VSUk9SX0NGTEFHUykgXAo+IMKgCSQoTlVMTCkKPiDCoAo+IC1MREFERCA9 IC4uL2xpYi9saWJpbnRlbF90b29scy5sYSAkKEdMSUJfTElCUykgJChYTUxSUENfTElCUykKPiAr TERBREQgPSAuLi9saWIvbGliaW50ZWxfdG9vbHMubGEgJChYTUxSUENfTElCUykKPiDCoAo+IC1B TV9DRkxBR1MgKz0gJChDQUlST19DRkxBR1MpICQoTElCVURFVl9DRkxBR1MpICQoR0xJQl9DRkxB R1MpCj4gK0FNX0NGTEFHUyArPSAkKENBSVJPX0NGTEFHUykgJChMSUJVREVWX0NGTEFHUykKPiDC oEFNX0xERkxBR1MgPSAtV2wsLS1hcy1uZWVkZWQKPiDCoAo+IMKgZHJtX2ltcG9ydF9leHBvcnRf Q0ZMQUdTID0gJChBTV9DRkxBR1MpICQoVEhSRUFEX0NGTEFHUykKPiBkaWZmIC0tZ2l0IGEvdGVz dHMvY2hhbWVsaXVtLmMgYi90ZXN0cy9jaGFtZWxpdW0uYwo+IGluZGV4IDYyNDdkNTM3Li5lMzA2 NzY2NCAxMDA2NDQKPiAtLS0gYS90ZXN0cy9jaGFtZWxpdW0uYwo+ICsrKyBiL3Rlc3RzL2NoYW1l bGl1bS5jCj4gQEAgLTQyLDcgKzQyLDYgQEAgdHlwZWRlZiBzdHJ1Y3Qgewo+IMKgfSBkYXRhX3Q7 Cj4gwqAKPiDCoCNkZWZpbmUgSE9UUExVR19USU1FT1VUIDIwIC8qIHNlY29uZHMgKi8KPiAtI2Rl ZmluZSBTVVNQRU5EX1JFU1VNRV9ERUxBWSAyMCAvKiBzZWNvbmRzICovCj4gwqAKPiDCoCNkZWZp bmUgSFBEX1NUT1JNX1BVTFNFX0lOVEVSVkFMX0RQIDEwMCAvKiBtcyAqLwo+IMKgI2RlZmluZSBI UERfU1RPUk1fUFVMU0VfSU5URVJWQUxfSERNSSAyMDAgLyogbXMgKi8KPiBAQCAtMjI1LDIxICsy MjQsMjEgQEAgdHJ5X3N1c3BlbmRfcmVzdW1lX2hwZChkYXRhX3QgKmRhdGEsIHN0cnVjdAo+IGNo YW1lbGl1bV9wb3J0ICpwb3J0LAo+IMKgCQnCoMKgwqDCoMKgwqDCoGVudW0gaWd0X3N1c3BlbmRf c3RhdGUgc3RhdGUsIGVudW0KPiBpZ3Rfc3VzcGVuZF90ZXN0IHRlc3QsCj4gwqAJCcKgwqDCoMKg wqDCoMKgc3RydWN0IHVkZXZfbW9uaXRvciAqbW9uLCBib29sIGNvbm5lY3RlZCkKPiDCoHsKPiAr CWludCBkZWxheTsKPiDCoAlpbnQgcDsKPiDCoAo+IC0JaWd0X3NldF9hdXRvcmVzdW1lX2RlbGF5 KFNVU1BFTkRfUkVTVU1FX0RFTEFZKTsKPiDCoAlpZ3RfZmx1c2hfaG90cGx1Z3MobW9uKTsKPiDC oAo+ICsJZGVsYXkgPSBpZ3RfZ2V0X2F1dG9yZXN1bWVfZGVsYXkoc3RhdGUpICogMTAwMCAvIDI7 Cj4gKwo+IMKgCWlmIChwb3J0KSB7Cj4gLQkJY2hhbWVsaXVtX3NjaGVkdWxlX2hwZF90b2dnbGUo ZGF0YS0+Y2hhbWVsaXVtLCBwb3J0LAo+IC0JCQkJCcKgwqDCoMKgwqDCoFNVU1BFTkRfUkVTVU1F X0RFTEFZICoKPiAxMDAwIC8gMiwKPiArCQljaGFtZWxpdW1fc2NoZWR1bGVfaHBkX3RvZ2dsZShk YXRhLT5jaGFtZWxpdW0sIHBvcnQsCj4gZGVsYXksCj4gwqAJCQkJCcKgwqDCoMKgwqDCoCFjb25u ZWN0ZWQpOwo+IMKgCX0gZWxzZSB7Cj4gwqAJCWZvciAocCA9IDA7IHAgPCBkYXRhLT5wb3J0X2Nv dW50OyBwKyspIHsKPiDCoAkJCXBvcnQgPSBkYXRhLT5wb3J0c1twXTsKPiDCoAkJCWNoYW1lbGl1 bV9zY2hlZHVsZV9ocGRfdG9nZ2xlKGRhdGEtCj4gPmNoYW1lbGl1bSwgcG9ydCwKPiAtCQkJCQkJ wqDCoMKgwqDCoMKgU1VTUEVORF9SRVNVTUUKPiBfREVMQVkgKiAxMDAwIC8gMiwKPiAtCQkJCQkJ wqDCoMKgwqDCoMKgIWNvbm5lY3RlZCk7Cj4gKwkJCQkJCcKgwqDCoMKgwqDCoGRlbGF5LAo+ICFj b25uZWN0ZWQpOwo+IMKgCQl9Cj4gwqAKPiDCoAkJcG9ydCA9IE5VTEw7Cj4gZGlmZiAtLWdpdCBh L3Rvb2xzL01ha2VmaWxlLmFtIGIvdG9vbHMvTWFrZWZpbGUuYW0KPiBpbmRleCAxOGE2N2VmYi4u YzQwZTc1YzcgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvTWFrZWZpbGUuYW0KPiArKysgYi90b29scy9N YWtlZmlsZS5hbQo+IEBAIC05LDggKzksOCBAQCBlbmRpZgo+IMKgCj4gwqBpZiBIQVZFX1VERVYK PiDCoGJpbl9QUk9HUkFNUyArPSBpbnRlbF9kcF9jb21wbGlhbmNlCj4gLWludGVsX2RwX2NvbXBs aWFuY2VfQ0ZMQUdTID0gJChBTV9DRkxBR1MpICQoR0xJQl9DRkxBR1MpCj4gLWludGVsX2RwX2Nv bXBsaWFuY2VfTERBREQgPSAkKHRvcF9idWlsZGRpcikvbGliL2xpYmludGVsX3Rvb2xzLmxhCj4g JChHTElCX0xJQlMpCj4gK2ludGVsX2RwX2NvbXBsaWFuY2VfQ0ZMQUdTID0gJChBTV9DRkxBR1Mp Cj4gK2ludGVsX2RwX2NvbXBsaWFuY2VfTERBREQgPSAkKHRvcF9idWlsZGRpcikvbGliL2xpYmlu dGVsX3Rvb2xzLmxhCj4gwqBlbmRpZgo+IMKgCj4gwqBTVUJESVJTID0gbnVsbF9zdGF0ZV9nZW4g cmVnaXN0ZXJzCi0tIApDaGVlcnMsCglMeXVkZQpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK