From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: Re: [PATCH] drm/amdgpu: fix vm size and block size for VMPT (v3) Date: Tue, 4 Apr 2017 22:27:53 -0400 Message-ID: References: <1491014612-12448-1-git-send-email-Jerry.Zhang@amd.com> <58E4523D.8080005@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <58E4523D.8080005-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Zhang, Jerry (Junwei)" Cc: "Deucher, Alexander" , "Koenig, Christian" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" T24gVHVlLCBBcHIgNCwgMjAxNyBhdCAxMDoxMSBQTSwgWmhhbmcsIEplcnJ5IChKdW53ZWkpCjxK ZXJyeS5aaGFuZ0BhbWQuY29tPiB3cm90ZToKPiBPbiAwNC8wNC8yMDE3IDAzOjM0IEFNLCBEZXVj aGVyLCBBbGV4YW5kZXIgd3JvdGU6Cj4+Pgo+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0K Pj4+IEZyb206IEp1bndlaSBaaGFuZyBbbWFpbHRvOkplcnJ5LlpoYW5nQGFtZC5jb21dCj4+PiBT ZW50OiBGcmlkYXksIE1hcmNoIDMxLCAyMDE3IDEwOjQ0IFBNCj4+PiBUbzogRGV1Y2hlciwgQWxl eGFuZGVyOyBLb2VuaWcsIENocmlzdGlhbgo+Pj4gQ2M6IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnOyBaaGFuZywgSmVycnkKPj4+IFN1YmplY3Q6IFtQQVRDSF0gZHJtL2FtZGdwdTogZml4 IHZtIHNpemUgYW5kIGJsb2NrIHNpemUgZm9yIFZNUFQgKHYzKQo+Pj4KPj4+IEZyb206ICJaaGFu ZywgSmVycnkiIDxKZXJyeS5aaGFuZ0BhbWQuY29tPgo+Pj4KPj4+IHYyOiBzZXQgYm90aCBvZiB0 aGVtIGluIGdtYwo+Pj4gdjM6IG1vdmUgdm0gc2l6ZSBhbmQgYmxvY2sgc2l6ZSBpbiB2bSBtYW5h Z2VyCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogSnVud2VpIFpoYW5nIDxKZXJyeS5aaGFuZ0BhbWQu Y29tPgo+Pj4gLS0tCj4+PiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rldmlj ZS5jIHwgIDggLS0tLS0tLS0KPj4+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf dm0uYyAgICAgfCAyMiArKysrKysrKysrKystLS0tLS0tLS0KPj4+IC0KPj4+ICBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaCAgICAgfCAgNCArKystCj4+PiAgZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZ2Z4aHViX3YxXzAuYyAgIHwgIDIgKy0KPj4+ICBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZfMC5jICAgICAgfCAxMCArKysrKysrKy0tCj4+PiAgZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYyAgICAgIHwgIDkgKysrKysrKy0tCj4+ PiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuYyAgICAgIHwgIDkgKysrKysr Ky0tCj4+PiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYyAgICAgIHwgMjEg KysrKysrKysrKysrKy0tLS0tLS0tCj4+PiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbW1o dWJfdjFfMC5jICAgIHwgIDIgKy0KPj4+ICA5IGZpbGVzIGNoYW5nZWQsIDUyIGluc2VydGlvbnMo KyksIDM1IGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKPj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2RldmljZS5jCj4+PiBpbmRleCBmYmI0YWZiLi4xZDBjNzQyIDEwMDY0NAo+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCj4+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKPj4+IEBAIC0xMDQx LDE0ICsxMDQxLDYgQEAgc3RhdGljIGJvb2wgYW1kZ3B1X2NoZWNrX3BvdF9hcmd1bWVudChpbnQg YXJnKQo+Pj4KPj4+ICBzdGF0aWMgdm9pZCBhbWRncHVfZ2V0X2Jsb2NrX3NpemUoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCj4+PiAgewo+Pj4gLSAgICAgLyogZnJvbSBBSSwgYXNpYyBzdGFy dHMgdG8gc3VwcG9ydCBtdWx0aXBsZSBsZXZlbCBWTVBUICovCj4+PiAtICAgICBpZiAoYWRldi0+ YXNpY190eXBlID49IENISVBfVkVHQTEwKSB7Cj4+PiAtICAgICAgICAgICAgIGlmIChhbWRncHVf dm1fYmxvY2tfc2l6ZSAhPSA5KQo+Pj4gLSAgICAgICAgICAgICAgICAgICAgIGRldl93YXJuKGFk ZXYtPmRldiwKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTXVsdGktVk1QVCBs aW1pdHMgYmxvY2sgc2l6ZSB0byBvbmUKPj4+IHBhZ2UhXG4iKTsKPj4+IC0gICAgICAgICAgICAg YW1kZ3B1X3ZtX2Jsb2NrX3NpemUgPSA5Owo+Pj4gLSAgICAgICAgICAgICByZXR1cm47Cj4+PiAt ICAgICB9Cj4+PiAgICAgICAgLyogZGVmaW5lcyBudW1iZXIgb2YgYml0cyBpbiBwYWdlIHRhYmxl IHZlcnN1cyBwYWdlIGRpcmVjdG9yeSwKPj4+ICAgICAgICAgKiBhIHBhZ2UgaXMgNEtCIHNvIHdl IGhhdmUgMTIgYml0cyBvZmZzZXQsIG1pbmltdW0gOSBiaXRzIGluIHRoZQo+Pj4gICAgICAgICAq IHBhZ2UgdGFibGUgYW5kIHRoZSByZW1haW5pbmcgYml0cyBhcmUgaW4gdGhlIHBhZ2UgZGlyZWN0 b3J5ICovCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3ZtLmMKPj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPj4+IGlu ZGV4IDQzYWRjNGIuLjQ2ZDNmMWEgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdm0uYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3ZtLmMKPj4+IEBAIC0xMDAsMTMgKzEwMCwxNCBAQCBzdGF0aWMgdW5zaWduZWQgYW1k Z3B1X3ZtX251bV9lbnRyaWVzKHN0cnVjdAo+Pj4gYW1kZ3B1X2RldmljZSAqYWRldiwKPj4+ICAg ICAgICBpZiAobGV2ZWwgPT0gMCkKPj4+ICAgICAgICAgICAgICAgIC8qIEZvciB0aGUgcm9vdCBk aXJlY3RvcnkgKi8KPj4+ICAgICAgICAgICAgICAgIHJldHVybiBhZGV2LT52bV9tYW5hZ2VyLm1h eF9wZm4gPj4KPj4+IC0gICAgICAgICAgICAgICAgICAgICAoYW1kZ3B1X3ZtX2Jsb2NrX3NpemUg KiBhZGV2LQo+Pj4gPnZtX21hbmFnZXIubnVtX2xldmVsKTsKPj4+ICsgICAgICAgICAgICAgICAg ICAgICAoYWRldi0+dm1fbWFuYWdlci5ibG9ja19zaXplICoKPj4+ICsgICAgICAgICAgICAgICAg ICAgICAgYWRldi0+dm1fbWFuYWdlci5udW1fbGV2ZWwpOwo+Pj4gICAgICAgIGVsc2UgaWYgKGxl dmVsID09IGFkZXYtPnZtX21hbmFnZXIubnVtX2xldmVsKQo+Pj4gICAgICAgICAgICAgICAgLyog Rm9yIHRoZSBwYWdlIHRhYmxlcyBvbiB0aGUgbGVhdmVzICovCj4+PiAtICAgICAgICAgICAgIHJl dHVybiBBTURHUFVfVk1fUFRFX0NPVU5UOwo+Pj4gKyAgICAgICAgICAgICByZXR1cm4gQU1ER1BV X1ZNX1BURV9DT1VOVChhZGV2KTsKPj4+ICAgICAgICBlbHNlCj4+PiAgICAgICAgICAgICAgICAv KiBFdmVyeXRoaW5nIGluIGJldHdlZW4gKi8KPj4+IC0gICAgICAgICAgICAgcmV0dXJuIDEgPDwg YW1kZ3B1X3ZtX2Jsb2NrX3NpemU7Cj4+PiArICAgICAgICAgICAgIHJldHVybiAxIDw8IGFkZXYt PnZtX21hbmFnZXIuYmxvY2tfc2l6ZTsKPj4+ICB9Cj4+Pgo+Pj4gIC8qKgo+Pj4gQEAgLTI3MSw3 ICsyNzIsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92bV9hbGxvY19sZXZlbHMoc3RydWN0Cj4+PiBh bWRncHVfZGV2aWNlICphZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgbGV2ZWwpCj4+PiAgewo+Pj4gICAgICAgIHVuc2lnbmVkIHNoaWZ0ID0gKGFkZXYt PnZtX21hbmFnZXIubnVtX2xldmVsIC0gbGV2ZWwpICoKPj4+IC0gICAgICAgICAgICAgYW1kZ3B1 X3ZtX2Jsb2NrX3NpemU7Cj4+PiArICAgICAgICAgICAgIGFkZXYtPnZtX21hbmFnZXIuYmxvY2tf c2l6ZTsKPj4+ICAgICAgICB1bnNpZ25lZCBwdF9pZHgsIGZyb20sIHRvOwo+Pj4gICAgICAgIGlu dCByOwo+Pj4KPj4+IEBAIC05NzAsNyArOTcxLDcgQEAgc3RhdGljIHN0cnVjdCBhbWRncHVfYm8g KmFtZGdwdV92bV9nZXRfcHQoc3RydWN0Cj4+PiBhbWRncHVfcHRlX3VwZGF0ZV9wYXJhbXMgKnAs Cj4+PiAgICAgICAgdW5zaWduZWQgaWR4LCBsZXZlbCA9IHAtPmFkZXYtPnZtX21hbmFnZXIubnVt X2xldmVsOwo+Pj4KPj4+ICAgICAgICB3aGlsZSAoZW50cnktPmVudHJpZXMpIHsKPj4+IC0gICAg ICAgICAgICAgaWR4ID0gYWRkciA+PiAoYW1kZ3B1X3ZtX2Jsb2NrX3NpemUgKiBsZXZlbC0tKTsK Pj4+ICsgICAgICAgICAgICAgaWR4ID0gYWRkciA+PiAocC0+YWRldi0+dm1fbWFuYWdlci5ibG9j a19zaXplICogbGV2ZWwtLSk7Cj4+PiAgICAgICAgICAgICAgICBpZHggJT0gYW1kZ3B1X2JvX3Np emUoZW50cnktPmJvKSAvIDg7Cj4+PiAgICAgICAgICAgICAgICBlbnRyeSA9ICZlbnRyeS0+ZW50 cmllc1tpZHhdOwo+Pj4gICAgICAgIH0KPj4+IEBAIC05OTcsNyArOTk4LDggQEAgc3RhdGljIHZv aWQgYW1kZ3B1X3ZtX3VwZGF0ZV9wdGVzKHN0cnVjdAo+Pj4gYW1kZ3B1X3B0ZV91cGRhdGVfcGFy YW1zICpwYXJhbXMsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRf dCBzdGFydCwgdWludDY0X3QgZW5kLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDY0X3QgZHN0LCB1aW50NjRfdCBmbGFncykKPj4+ICB7Cj4+PiAtICAgICBjb25zdCB1 aW50NjRfdCBtYXNrID0gQU1ER1BVX1ZNX1BURV9DT1VOVCAtIDE7Cj4+PiArICAgICBzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IHBhcmFtcy0+YWRldjsKPj4+ICsgICAgIGNvbnN0IHVpbnQ2 NF90IG1hc2sgPSBBTURHUFVfVk1fUFRFX0NPVU5UKGFkZXYpIC0gMTsKPj4+Cj4+PiAgICAgICAg dWludDY0X3QgY3VyX3BlX3N0YXJ0LCBjdXJfbnB0ZXMsIGN1cl9kc3Q7Cj4+PiAgICAgICAgdWlu dDY0X3QgYWRkcjsgLyogbmV4dCBHUFUgYWRkcmVzcyB0byBiZSB1cGRhdGVkICovCj4+PiBAQCAt MTAyMSw3ICsxMDIzLDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X3ZtX3VwZGF0ZV9wdGVzKHN0cnVj dAo+Pj4gYW1kZ3B1X3B0ZV91cGRhdGVfcGFyYW1zICpwYXJhbXMsCj4+PiAgICAgICAgaWYgKChh ZGRyICYgfm1hc2spID09IChlbmQgJiB+bWFzaykpCj4+PiAgICAgICAgICAgICAgICBucHRlcyA9 IGVuZCAtIGFkZHI7Cj4+PiAgICAgICAgZWxzZQo+Pj4gLSAgICAgICAgICAgICBucHRlcyA9IEFN REdQVV9WTV9QVEVfQ09VTlQgLSAoYWRkciAmIG1hc2spOwo+Pj4gKyAgICAgICAgICAgICBucHRl cyA9IEFNREdQVV9WTV9QVEVfQ09VTlQoYWRldikgLSAoYWRkciAmIG1hc2spOwo+Pj4KPj4+ICAg ICAgICBjdXJfcGVfc3RhcnQgPSBhbWRncHVfYm9fZ3B1X29mZnNldChwdCk7Cj4+PiAgICAgICAg Y3VyX3BlX3N0YXJ0ICs9IChhZGRyICYgbWFzaykgKiA4Owo+Pj4gQEAgLTEwNDksNyArMTA1MSw3 IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV92bV91cGRhdGVfcHRlcyhzdHJ1Y3QKPj4+IGFtZGdwdV9w dGVfdXBkYXRlX3BhcmFtcyAqcGFyYW1zLAo+Pj4gICAgICAgICAgICAgICAgaWYgKChhZGRyICYg fm1hc2spID09IChlbmQgJiB+bWFzaykpCj4+PiAgICAgICAgICAgICAgICAgICAgICAgIG5wdGVz ID0gZW5kIC0gYWRkcjsKPj4+ICAgICAgICAgICAgICAgIGVsc2UKPj4+IC0gICAgICAgICAgICAg ICAgICAgICBucHRlcyA9IEFNREdQVV9WTV9QVEVfQ09VTlQgLSAoYWRkciAmIG1hc2spOwo+Pj4g KyAgICAgICAgICAgICAgICAgICAgIG5wdGVzID0gQU1ER1BVX1ZNX1BURV9DT1VOVChhZGV2KSAt IChhZGRyICYKPj4+IG1hc2spOwo+Pj4KPj4+ICAgICAgICAgICAgICAgIG5leHRfcGVfc3RhcnQg PSBhbWRncHVfYm9fZ3B1X29mZnNldChwdCk7Cj4+PiAgICAgICAgICAgICAgICBuZXh0X3BlX3N0 YXJ0ICs9IChhZGRyICYgbWFzaykgKiA4Owo+Pj4gQEAgLTExOTYsNyArMTE5OCw3IEBAIHN0YXRp YyBpbnQgYW1kZ3B1X3ZtX2JvX3VwZGF0ZV9tYXBwaW5nKHN0cnVjdAo+Pj4gYW1kZ3B1X2Rldmlj ZSAqYWRldiwKPj4+ICAgICAgICAgKiByZXNlcnZlIHNwYWNlIGZvciBvbmUgY29tbWFuZCBldmVy eSAoMSA8PCBCTE9DS19TSVpFKQo+Pj4gICAgICAgICAqICBlbnRyaWVzIG9yIDJrIGR3b3JkcyAo d2hhdGV2ZXIgaXMgc21hbGxlcikKPj4+ICAgICAgICAgKi8KPj4+IC0gICAgIG5jbWRzID0gKG5w dGVzID4+IG1pbihhbWRncHVfdm1fYmxvY2tfc2l6ZSwgMTEpKSArIDE7Cj4+PiArICAgICBuY21k cyA9IChucHRlcyA+PiBtaW4oYWRldi0+dm1fbWFuYWdlci5ibG9ja19zaXplLCAxMSkpICsgMTsK Pj4+Cj4+PiAgICAgICAgLyogcGFkZGluZywgZXRjLiAqLwo+Pj4gICAgICAgIG5kdyA9IDY0Owo+ Pj4gQEAgLTIwNjcsNyArMjA2OSw3IEBAIHZvaWQgYW1kZ3B1X3ZtX2JvX2ludmFsaWRhdGUoc3Ry dWN0Cj4+PiBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4gIGludCBhbWRncHVfdm1faW5pdChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0pCj4+PiAgewo+Pj4g ICAgICAgIGNvbnN0IHVuc2lnbmVkIGFsaWduID0gbWluKEFNREdQVV9WTV9QVEJfQUxJR05fU0la RSwKPj4+IC0gICAgICAgICAgICAgQU1ER1BVX1ZNX1BURV9DT1VOVCAqIDgpOwo+Pj4gKyAgICAg ICAgICAgICBBTURHUFVfVk1fUFRFX0NPVU5UKGFkZXYpICogOCk7Cj4+PiAgICAgICAgdW5zaWdu ZWQgcmluZ19pbnN0YW5jZTsKPj4+ICAgICAgICBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmc7Cj4+ PiAgICAgICAgc3RydWN0IGFtZF9zY2hlZF9ycSAqcnE7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmgKPj4+IGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3ZtLmgKPj4+IGluZGV4IDEwMmIxZjcuLjEyNDIyNjQgMTAwNjQ0Cj4+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaAo+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmgKPj4+IEBAIC00NSw3ICs0NSw3 IEBACj4+PiAgI2RlZmluZSBBTURHUFVfVk1fTUFYX1VQREFURV9TSVpFICAgIDB4M0ZGRkYKPj4+ Cj4+PiAgLyogbnVtYmVyIG9mIGVudHJpZXMgaW4gcGFnZSB0YWJsZSAqLwo+Pj4gLSNkZWZpbmUg QU1ER1BVX1ZNX1BURV9DT1VOVCAoMSA8PCBhbWRncHVfdm1fYmxvY2tfc2l6ZSkKPj4+ICsjZGVm aW5lIEFNREdQVV9WTV9QVEVfQ09VTlQoYWRldikgKDEgPDwgYWRldi0KPj4+ID52bV9tYW5hZ2Vy LmJsb2NrX3NpemUpCj4+Cj4+Cj4+IEZvciBzYWZldHksIHB1dCBwYXJlbnMgYXJvdW5kIGFkZXYu ICBFLmcuLAo+PiAjZGVmaW5lIEFNREdQVV9WTV9QVEVfQ09VTlQoYWRldikgKDEgPDwgKGFkZXYp LT52bV9tYW5hZ2VyLmJsb2NrX3NpemUpCj4KPgo+IFllYWgsIHRoYW5rcyB0byBwb2ludCBpdCBv dXQuCj4KPj4KPj4gV2l0aCB0aGF0IGZpeGVkOgo+PiBSZXZpZXdlZC1ieTogQWxleCBEZXVjaGVy IDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgo+Pgo+PiBBcyBhIGZvbGxvdyBvbiBwYXRjaCwg aXQgd291bGQgYmUgbmljZSB0byBhZGQgc29tZSByZWFzb25hYmxlIGNsYW1waW5nIGluCj4+IHRo ZQo+PiBnbWMgZmlsZXMgc28gd2UgY2FuIHN0aWxsIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHNldHRp bmdzIGFuZCBub3QgY2F1c2UgdG9vCj4+IG11Y2gKPj4gcHJvYmxlbSB3aXRoIG11bHRpcGxlIGFz aWNzIGluIHRoZSBzYW1lIHN5c3RlbS4KPgo+Cj4gQ291bGQgeW91IGVsYWJvcmF0ZSBpdCBhIGJp dCBtb3JlLCBhYm91dCAiY2xhbXBpbmciPwoKZS5nLiwgc2V0dGluZyBhbWRncHVfdm1fYmxvY2tf c2l6ZSB0byAtMSAoYXV0bykgYnQgZGVmYXVsdCBhbmQgc2V0dGluZwphIHJlYXNvbmFibGUgZGVm YXVsdCBmb3IgZWFjaCBnbWMgaWYgaXQncyBzZXQgdG8gMCwgb3Igb3ZlcnJpZGluZyBpZgppdCdz IG5vdCBzZXQgdG8gLTEuICBUaGF0IHdheSB3ZSBjYW4gaGF2ZSBkaWZmZXJlbnQgZGVmYXVsdHMg b24gZWFjaApmYW1pbHkgYW5kIHN0aWxsIG92ZXJyaWRlIGZvciB0ZXN0aW5nL2RlYnVnZ2luZy4K CkFsZXgKCgo+Cj4gSmVycnkKPgo+Pgo+PiBBbGV4Cj4+Cj4+Pgo+Pj4gIC8qIFBUQnMgKFBhZ2Ug VGFibGUgQmxvY2tzKSBuZWVkIHRvIGJlIGFsaWduZWQgdG8gMzJLICovCj4+PiAgI2RlZmluZSBB TURHUFVfVk1fUFRCX0FMSUdOX1NJWkUgICAzMjc2OAo+Pj4gQEAgLTE1NSw2ICsxNTUsOCBAQCBz dHJ1Y3QgYW1kZ3B1X3ZtX21hbmFnZXIgewo+Pj4KPj4+ICAgICAgICB1aW50NjRfdCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWF4X3BmbjsKPj4+ICAgICAgICB1aW50MzJfdCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtX2xldmVsOwo+Pj4gKyAgICAgdWludDY0X3Qg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZtX3NpemU7Cj4+PiArICAgICB1aW50MzJf dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfc2l6ZTsKPj4+ICAgICAgICAv KiB2cmFtIGJhc2UgYWRkcmVzcyBmb3IgcGFnZSB0YWJsZSBlbnRyeSAgKi8KPj4+ICAgICAgICB1 NjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnJhbV9iYXNlX29mZnNldDsK Pj4+ICAgICAgICAvKiBpcyB2bSBlbmFibGVkPyAqLwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2dmeGh1Yl92MV8wLmMKPj4+IGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvZ2Z4aHViX3YxXzAuYwo+Pj4gaW5kZXggMzBlZjMxMi4uOTIyM2MyYiAxMDA2NDQK Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeGh1Yl92MV8wLmMKPj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeGh1Yl92MV8wLmMKPj4+IEBAIC0yMjIs NyArMjIyLDcgQEAgaW50IGdmeGh1Yl92MV8wX2dhcnRfZW5hYmxlKHN0cnVjdCBhbWRncHVfZGV2 aWNlCj4+PiAqYWRldikKPj4+Cj4+PiAgICAgICAgRVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VO QUJMRV9ERUZBVUxULCAxKTsKPj4+ICAgICAgICAgICAgICAgIHRtcCA9IFJFR19TRVRfRklFTEQo dG1wLCBWTV9DT05URVhUMV9DTlRMLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBBR0VfVEFCTEVfQkxPQ0tfU0laRSwKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhbWRncHVfdm1fYmxvY2tfc2l6ZSAtIDkpOwo+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYWRldi0+dm1fbWFuYWdlci5ibG9ja19zaXplIC0gOSk7Cj4+PiAgICAgICAgICAg ICAgICBXUkVHMzIoU09DMTVfUkVHX09GRlNFVChHQywgMCwKPj4+IG1tVk1fQ09OVEVYVDFfQ05U TCkgKyBpLCB0bXApOwo+Pj4gICAgICAgICAgICAgICAgV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQo R0MsIDAsCj4+PiBtbVZNX0NPTlRFWFQxX1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyKSArIGkq MiwgMCk7Cj4+PiAgICAgICAgICAgICAgICBXUkVHMzIoU09DMTVfUkVHX09GRlNFVChHQywgMCwK Pj4+IG1tVk1fQ09OVEVYVDFfUEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIpICsgaSoyLCAwKTsK Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZfMC5jCj4+ PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192Nl8wLmMKPj4+IGluZGV4IGQ5NTg2 NjAuLjMwZDVjNDIgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9n bWNfdjZfMC5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZfMC5j Cj4+PiBAQCAtNTQzLDcgKzU0Myw4IEBAIHN0YXRpYyBpbnQgZ21jX3Y2XzBfZ2FydF9lbmFibGUo c3RydWN0Cj4+PiBhbWRncHVfZGV2aWNlICphZGV2KQo+Pj4gICAgICAgIFdSRUczMihtbVZNX0NP TlRFWFQxX0NOVEwsCj4+PiAgICAgICAgICAgICAgIFZNX0NPTlRFWFQxX0NOVExfX0VOQUJMRV9D T05URVhUX01BU0sgfAo+Pj4gICAgICAgICAgICAgICAoMVVMIDw8IFZNX0NPTlRFWFQxX0NOVExf X1BBR0VfVEFCTEVfREVQVEhfX1NISUZUKSB8Cj4+PiAtICAgICAgICAgICAgKChhbWRncHVfdm1f YmxvY2tfc2l6ZSAtIDkpIDw8Cj4+PiBWTV9DT05URVhUMV9DTlRMX19QQUdFX1RBQkxFX0JMT0NL X1NJWkVfX1NISUZUKSk7Cj4+PiArICAgICAgICAgICAgKChhZGV2LT52bV9tYW5hZ2VyLmJsb2Nr X3NpemUgLSA5KQo+Pj4gKyAgICAgICAgICAgIDw8IFZNX0NPTlRFWFQxX0NOVExfX1BBR0VfVEFC TEVfQkxPQ0tfU0laRV9fU0hJRlQpKTsKPj4+ICAgICAgICBpZiAoYW1kZ3B1X3ZtX2ZhdWx0X3N0 b3AgPT0KPj4+IEFNREdQVV9WTV9GQVVMVF9TVE9QX0FMV0FZUykKPj4+ICAgICAgICAgICAgICAg IGdtY192Nl8wX3NldF9mYXVsdF9lbmFibGVfZGVmYXVsdChhZGV2LCBmYWxzZSk7Cj4+PiAgICAg ICAgZWxzZQo+Pj4gQEAgLTg0OCw3ICs4NDksMTIgQEAgc3RhdGljIGludCBnbWNfdjZfMF9zd19p bml0KHZvaWQgKmhhbmRsZSkKPj4+ICAgICAgICBpZiAocikKPj4+ICAgICAgICAgICAgICAgIHJl dHVybiByOwo+Pj4KPj4+IC0gICAgIGFkZXYtPnZtX21hbmFnZXIubWF4X3BmbiA9IGFtZGdwdV92 bV9zaXplIDw8IDE4Owo+Pj4gKyAgICAgYWRldi0+dm1fbWFuYWdlci52bV9zaXplID0gYW1kZ3B1 X3ZtX3NpemU7Cj4+PiArICAgICBhZGV2LT52bV9tYW5hZ2VyLmJsb2NrX3NpemUgPSBhbWRncHVf dm1fYmxvY2tfc2l6ZTsKPj4+ICsgICAgIGFkZXYtPnZtX21hbmFnZXIubWF4X3BmbiA9IGFkZXYt PnZtX21hbmFnZXIudm1fc2l6ZSA8PCAxODsKPj4+ICsKPj4+ICsgICAgIERSTV9JTkZPKCJ2bSBz aXplIGlzICVkIEdCLCBibG9jayBzaXplIGlzICVkLWJpdFxuIiwKPj4+ICsgICAgICAgICAgICAg YWRldi0+dm1fbWFuYWdlci52bV9zaXplLCBhZGV2LQo+Pj4gPnZtX21hbmFnZXIuYmxvY2tfc2l6 ZSk7Cj4+Pgo+Pj4gICAgICAgIGFkZXYtPm1jLm1jX21hc2sgPSAweGZmZmZmZmZmZmZVTEw7Cj4+ Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMK Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYwo+Pj4gaW5kZXggMGMw YTYwMS4uOTQyN2M3ZCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2dtY192N18wLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18w LmMKPj4+IEBAIC02MzksNyArNjM5LDcgQEAgc3RhdGljIGludCBnbWNfdjdfMF9nYXJ0X2VuYWJs ZShzdHJ1Y3QKPj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4+PiAgICAgICAgdG1wID0gUkVHX1NF VF9GSUVMRCh0bXAsIFZNX0NPTlRFWFQxX0NOVEwsCj4+PiBFTkFCTEVfQ09OVEVYVCwgMSk7Cj4+ PiAgICAgICAgdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNX0NPTlRFWFQxX0NOVEwsCj4+PiBQ QUdFX1RBQkxFX0RFUFRILCAxKTsKPj4+ICAgICAgICB0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwg Vk1fQ09OVEVYVDFfQ05UTCwKPj4+IFBBR0VfVEFCTEVfQkxPQ0tfU0laRSwKPj4+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgYW1kZ3B1X3ZtX2Jsb2NrX3NpemUgLSA5KTsKPj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgYWRldi0+dm1fbWFuYWdlci5ibG9ja19zaXplIC0gOSk7Cj4+PiAg ICAgICAgV1JFRzMyKG1tVk1fQ09OVEVYVDFfQ05UTCwgdG1wKTsKPj4+ICAgICAgICBpZiAoYW1k Z3B1X3ZtX2ZhdWx0X3N0b3AgPT0KPj4+IEFNREdQVV9WTV9GQVVMVF9TVE9QX0FMV0FZUykKPj4+ ICAgICAgICAgICAgICAgIGdtY192N18wX3NldF9mYXVsdF9lbmFibGVfZGVmYXVsdChhZGV2LCBm YWxzZSk7Cj4+PiBAQCAtOTk4LDcgKzk5OCwxMiBAQCBzdGF0aWMgaW50IGdtY192N18wX3N3X2lu aXQodm9pZCAqaGFuZGxlKQo+Pj4gICAgICAgICAqIEN1cnJlbnRseSBzZXQgdG8gNEdCICgoMSA8 PCAyMCkgNGsgcGFnZXMpLgo+Pj4gICAgICAgICAqIE1heCBHUFVWTSBzaXplIGZvciBjYXltYW4g YW5kIFNJIGlzIDQwIGJpdHMuCj4+PiAgICAgICAgICovCj4+PiAtICAgICBhZGV2LT52bV9tYW5h Z2VyLm1heF9wZm4gPSBhbWRncHVfdm1fc2l6ZSA8PCAxODsKPj4+ICsgICAgIGFkZXYtPnZtX21h bmFnZXIudm1fc2l6ZSA9IGFtZGdwdV92bV9zaXplOwo+Pj4gKyAgICAgYWRldi0+dm1fbWFuYWdl ci5ibG9ja19zaXplID0gYW1kZ3B1X3ZtX2Jsb2NrX3NpemU7Cj4+PiArICAgICBhZGV2LT52bV9t YW5hZ2VyLm1heF9wZm4gPSBhZGV2LT52bV9tYW5hZ2VyLnZtX3NpemUgPDwgMTg7Cj4+PiArCj4+ PiArICAgICBEUk1fSU5GTygidm0gc2l6ZSBpcyAlZCBHQiwgYmxvY2sgc2l6ZSBpcyAlZC1iaXRc biIsCj4+PiArICAgICAgICAgICAgIGFkZXYtPnZtX21hbmFnZXIudm1fc2l6ZSwgYWRldi0KPj4+ ID52bV9tYW5hZ2VyLmJsb2NrX3NpemUpOwo+Pj4KPj4+ICAgICAgICAvKiBTZXQgdGhlIGludGVy bmFsIE1DIGFkZHJlc3MgbWFzawo+Pj4gICAgICAgICAqIFRoaXMgaXMgdGhlIG1heCBhZGRyZXNz IG9mIHRoZSBHUFUncwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2dtY192OF8wLmMKPj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuYwo+ Pj4gaW5kZXggZDE5ZDFjNS4uMTY3NDJiZSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2dtY192OF8wLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2dtY192OF8wLmMKPj4+IEBAIC04NDgsNyArODQ4LDcgQEAgc3RhdGljIGludCBnbWNfdjhf MF9nYXJ0X2VuYWJsZShzdHJ1Y3QKPj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4+PiAgICAgICAg dG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNX0NPTlRFWFQxX0NOVEwsCj4+PiBXUklURV9QUk9U RUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxULCAxKTsKPj4+ICAgICAgICB0bXAgPSBSRUdfU0VU X0ZJRUxEKHRtcCwgVk1fQ09OVEVYVDFfQ05UTCwKPj4+IEVYRUNVVEVfUFJPVEVDVElPTl9GQVVM VF9FTkFCTEVfREVGQVVMVCwgMSk7Cj4+PiAgICAgICAgdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAs IFZNX0NPTlRFWFQxX0NOVEwsCj4+PiBQQUdFX1RBQkxFX0JMT0NLX1NJWkUsCj4+PiAtICAgICAg ICAgICAgICAgICAgICAgICAgIGFtZGdwdV92bV9ibG9ja19zaXplIC0gOSk7Cj4+PiArICAgICAg ICAgICAgICAgICAgICAgICAgIGFkZXYtPnZtX21hbmFnZXIuYmxvY2tfc2l6ZSAtIDkpOwo+Pj4g ICAgICAgIFdSRUczMihtbVZNX0NPTlRFWFQxX0NOVEwsIHRtcCk7Cj4+PiAgICAgICAgaWYgKGFt ZGdwdV92bV9mYXVsdF9zdG9wID09Cj4+PiBBTURHUFVfVk1fRkFVTFRfU1RPUF9BTFdBWVMpCj4+ PiAgICAgICAgICAgICAgICBnbWNfdjhfMF9zZXRfZmF1bHRfZW5hYmxlX2RlZmF1bHQoYWRldiwg ZmFsc2UpOwo+Pj4gQEAgLTEwODIsNyArMTA4MiwxMiBAQCBzdGF0aWMgaW50IGdtY192OF8wX3N3 X2luaXQodm9pZCAqaGFuZGxlKQo+Pj4gICAgICAgICAqIEN1cnJlbnRseSBzZXQgdG8gNEdCICgo MSA8PCAyMCkgNGsgcGFnZXMpLgo+Pj4gICAgICAgICAqIE1heCBHUFVWTSBzaXplIGZvciBjYXlt YW4gYW5kIFNJIGlzIDQwIGJpdHMuCj4+PiAgICAgICAgICovCj4+PiAtICAgICBhZGV2LT52bV9t YW5hZ2VyLm1heF9wZm4gPSBhbWRncHVfdm1fc2l6ZSA8PCAxODsKPj4+ICsgICAgIGFkZXYtPnZt X21hbmFnZXIudm1fc2l6ZSA9IGFtZGdwdV92bV9zaXplOwo+Pj4gKyAgICAgYWRldi0+dm1fbWFu YWdlci5ibG9ja19zaXplID0gYW1kZ3B1X3ZtX2Jsb2NrX3NpemU7Cj4+PiArICAgICBhZGV2LT52 bV9tYW5hZ2VyLm1heF9wZm4gPSBhZGV2LT52bV9tYW5hZ2VyLnZtX3NpemUgPDwgMTg7Cj4+PiAr Cj4+PiArICAgICBEUk1fSU5GTygidm0gc2l6ZSBpcyAlZCBHQiwgYmxvY2sgc2l6ZSBpcyAlZC1i aXRcbiIsCj4+PiArICAgICAgICAgICAgIGFkZXYtPnZtX21hbmFnZXIudm1fc2l6ZSwgYWRldi0K Pj4+ID52bV9tYW5hZ2VyLmJsb2NrX3NpemUpOwo+Pj4KPj4+ICAgICAgICAvKiBTZXQgdGhlIGlu dGVybmFsIE1DIGFkZHJlc3MgbWFzawo+Pj4gICAgICAgICAqIFRoaXMgaXMgdGhlIG1heCBhZGRy ZXNzIG9mIHRoZSBHUFUncwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2dtY192OV8wLmMKPj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAu Ywo+Pj4gaW5kZXggZGY2OWFhZS4uMjE4MGVkYiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2dtY192OV8wLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2dtY192OV8wLmMKPj4+IEBAIC01NDMsMTEgKzU0MywyMyBAQCBzdGF0aWMgaW50IGdt Y192OV8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQo+Pj4KPj4+ICAgICAgICBpZiAoYWRldi0+Zmxh Z3MgJiBBTURfSVNfQVBVKSB7Cj4+PiAgICAgICAgICAgICAgICBhZGV2LT5tYy52cmFtX3R5cGUg PSBBTURHUFVfVlJBTV9UWVBFX1VOS05PV047Cj4+PiArICAgICAgICAgICAgIGFkZXYtPnZtX21h bmFnZXIudm1fc2l6ZSA9IGFtZGdwdV92bV9zaXplOwo+Pj4gKyAgICAgICAgICAgICBhZGV2LT52 bV9tYW5hZ2VyLmJsb2NrX3NpemUgPSBhbWRncHVfdm1fYmxvY2tfc2l6ZTsKPj4+ICAgICAgICB9 IGVsc2Ugewo+Pj4gICAgICAgICAgICAgICAgLyogWFhYIERvbid0IGtub3cgaG93IHRvIGdldCBW UkFNIHR5cGUgeWV0LiAqLwo+Pj4gICAgICAgICAgICAgICAgYWRldi0+bWMudnJhbV90eXBlID0g QU1ER1BVX1ZSQU1fVFlQRV9IQk07Cj4+PiArICAgICAgICAgICAgIC8qCj4+PiArICAgICAgICAg ICAgICAqIFRvIGZ1bGZpbGwgNC1sZXZlbCBwYWdlIHN1cHBvcnQsCj4+PiArICAgICAgICAgICAg ICAqIHZtIHNpemUgaXMgMjU2VEIgKDQ4Yml0KSwgbWF4aW11bSBzaXplIG9mIFZlZ2ExMCwKPj4+ ICsgICAgICAgICAgICAgICogYmxvY2sgc2l6ZSA1MTIgKDliaXQpCj4+PiArICAgICAgICAgICAg ICAqLwo+Pj4gKyAgICAgICAgICAgICBhZGV2LT52bV9tYW5hZ2VyLnZtX3NpemUgPSAxVSA8PCAx ODsKPj4+ICsgICAgICAgICAgICAgYWRldi0+dm1fbWFuYWdlci5ibG9ja19zaXplID0gOTsKPj4+ ICAgICAgICB9Cj4+Pgo+Pj4gKyAgICAgRFJNX0lORk8oInZtIHNpemUgaXMgJWQgR0IsIGJsb2Nr IHNpemUgaXMgJWQtYml0XG4iLAo+Pj4gKyAgICAgICAgICAgICBhZGV2LT52bV9tYW5hZ2VyLnZt X3NpemUsIGFkZXYtCj4+PiA+dm1fbWFuYWdlci5ibG9ja19zaXplKTsKPj4+ICsKPj4+ICAgICAg ICAvKiBUaGlzIGludGVycnVwdCBpcyBWTUMgcGFnZSBmYXVsdC4qLwo+Pj4gICAgICAgIHIgPSBh bWRncHVfaXJxX2FkZF9pZChhZGV2LCBBTURHUFVfSUhfQ0xJRU5USURfVk1DLCAwLAo+Pj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhZGV2LT5tYy52bV9mYXVsdCk7Cj4+PiBAQCAt NTU3LDE0ICs1NjksNyBAQCBzdGF0aWMgaW50IGdtY192OV8wX3N3X2luaXQodm9pZCAqaGFuZGxl KQo+Pj4gICAgICAgIGlmIChyKQo+Pj4gICAgICAgICAgICAgICAgcmV0dXJuIHI7Cj4+Pgo+Pj4g LSAgICAgLyogQmVjYXVzZSBvZiBmb3VyIGxldmVsIFZNUFRzLCB2bSBzaXplIGlzIGF0IGxlYXN0 IDUxMkdCLgo+Pj4gLSAgICAgICogVGhlIG1heGltdW0gc2l6ZSBpcyAyNTZUQiAoNDhiaXQpLgo+ Pj4gLSAgICAgICovCj4+PiAtICAgICBpZiAoYW1kZ3B1X3ZtX3NpemUgPCA1MTIpIHsKPj4+IC0g ICAgICAgICAgICAgRFJNX1dBUk4oIlZNIHNpemUgaXMgYXQgbGVhc3QgNTEyR0IhXG4iKTsKPj4+ IC0gICAgICAgICAgICAgYW1kZ3B1X3ZtX3NpemUgPSA1MTI7Cj4+PiAtICAgICB9Cj4+PiAtICAg ICBhZGV2LT52bV9tYW5hZ2VyLm1heF9wZm4gPSAodWludDY0X3QpYW1kZ3B1X3ZtX3NpemUgPDwg MTg7Cj4+PiArICAgICBhZGV2LT52bV9tYW5hZ2VyLm1heF9wZm4gPSBhZGV2LT52bV9tYW5hZ2Vy LnZtX3NpemUgPDwgMTg7Cj4+Pgo+Pj4gICAgICAgIC8qIFNldCB0aGUgaW50ZXJuYWwgTUMgYWRk cmVzcyBtYXNrCj4+PiAgICAgICAgICogVGhpcyBpcyB0aGUgbWF4IGFkZHJlc3Mgb2YgdGhlIEdQ VSdzCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbW1odWJfdjFf MC5jCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHViX3YxXzAuYwo+Pj4gaW5k ZXggMjY2YTBmNC4uMmNjMWQ1OCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L21taHViX3YxXzAuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv bW1odWJfdjFfMC5jCj4+PiBAQCAtMjQyLDcgKzI0Miw3IEBAIGludCBtbWh1Yl92MV8wX2dhcnRf ZW5hYmxlKHN0cnVjdCBhbWRncHVfZGV2aWNlCj4+PiAqYWRldikKPj4+Cj4+PiAgICAgICAgRVhF Q1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxULCAxKTsKPj4+ICAgICAgICAgICAg ICAgIHRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTV9DT05URVhUMV9DTlRMLAo+Pj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBBR0VfVEFCTEVfQkxPQ0tfU0laRSwKPj4+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFtZGdwdV92bV9ibG9ja19zaXplIC0gOSk7Cj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGV2LT52bV9tYW5hZ2VyLmJsb2NrX3NpemUg LSA5KTsKPj4+ICAgICAgICAgICAgICAgIFdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKE1NSFVCLCAw LAo+Pj4gbW1WTV9DT05URVhUMV9DTlRMKSArIGksIHRtcCk7Cj4+PiAgICAgICAgICAgICAgICBX UkVHMzIoU09DMTVfUkVHX09GRlNFVChNTUhVQiwgMCwKPj4+IG1tVk1fQ09OVEVYVDFfUEFHRV9U QUJMRV9TVEFSVF9BRERSX0xPMzIpICsgaSoyLCAwKTsKPj4+ICAgICAgICAgICAgICAgIFdSRUcz MihTT0MxNV9SRUdfT0ZGU0VUKE1NSFVCLCAwLAo+Pj4gbW1WTV9DT05URVhUMV9QQUdFX1RBQkxF X1NUQVJUX0FERFJfSEkzMikgKyBpKjIsIDApOwo+Pj4gLS0KPj4+IDEuOS4xCj4+Cj4+Cj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBhbWQtZ2Z4IG1h aWxpbmcgbGlzdAo+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=