From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v3 02/15] drm: Centralize format information Date: Thu, 9 Jun 2016 15:23:17 +0300 Message-ID: <20160609122316.GD4329@intel.com> References: <1465428739-26529-1-git-send-email-laurent.pinchart@ideasonboard.com> <1465428739-26529-3-git-send-email-laurent.pinchart@ideasonboard.com> <20160609085223.GM3363@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 260CD6E5C2 for ; Thu, 9 Jun 2016 12:23:21 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20160609085223.GM3363@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Daniel Vetter , Tomi Valkeinen , Laurent Pinchart , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBKdW4gMDksIDIwMTYgYXQgMTA6NTI6MjNBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIEp1biAwOSwgMjAxNiBhdCAwMjozMjowNkFNICswMzAwLCBMYXVyZW50 IFBpbmNoYXJ0IHdyb3RlOgo+ID4gVmFyaW91cyBwaWVjZXMgb2YgaW5mb3JtYXRpb24gYWJvdXQg RFJNIGZvcm1hdHMgKG51bWJlciBvZiBwbGFuZXMsIGNvbG9yCj4gPiBkZXB0aCwgY2hyb21hIHN1 YnNhbXBsaW5nLCAuLi4pIGFyZSBzY2F0dGVyZWQgYWNyb3NzIGRpZmZlcmVudCBoZWxwZXIKPiA+ IGZ1bmN0aW9ucyBpbiB0aGUgRFJNIGNvcmUuIENhbGxlcnMgb2YgdGhvc2UgZnVuY3Rpb25zIG9m dGVuIG5lZWQgdG8KPiA+IGFjY2VzcyBtb3JlIHRoYW4gYSBzaW5nbGUgcGFyYW1ldGVyIG9mIHRo ZSBmb3JtYXQsIGxlYWRpbmcgdG8KPiA+IGluZWZmaWNpZW5jaWVzIGR1ZSB0byBtdWx0aXBsZSBs b29rdXBzLgo+ID4gCj4gPiBDZW50cmFsaXplIGFsbCBmb3JtYXQgaW5mb3JtYXRpb24gaW4gYSBk YXRhIHN0cnVjdHVyZSBhbmQgY3JlYXRlIGEKPiA+IGZ1bmN0aW9uIHRvIGxvb2sgdXAgaW5mb3Jt YXRpb24gYmFzZWQgb24gdGhlIGZvcm1hdCA0Q0MuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IExh dXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KPiA+IC0t LQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZm91cmNjLmMgfCA4NCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gIGluY2x1ZGUvZHJtL2RybV9mb3VyY2Mu aCAgICAgfCAxOSArKysrKysrKysrCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMDMgaW5zZXJ0aW9u cygrKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mb3VyY2MuYyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fZm91cmNjLmMKPiA+IGluZGV4IDA2NDVjODVkNWY5NS4uNDdi OWFiZDc0M2JlIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mb3VyY2MuYwo+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mb3VyY2MuYwo+ID4gQEAgLTYyLDYgKzYyLDkw IEBAIGNvbnN0IGNoYXIgKmRybV9nZXRfZm9ybWF0X25hbWUodWludDMyX3QgZm9ybWF0KQo+ID4g IEVYUE9SVF9TWU1CT0woZHJtX2dldF9mb3JtYXRfbmFtZSk7Cj4gPiAgCj4gPiAgLyoqCj4gPiAr ICogZHJtX2Zvcm1hdF9pbmZvIC0gcXVlcnkgaW5mb3JtYXRpb24gZm9yIGEgZ2l2ZW4gZm9ybWF0 Cj4gPiArICogQGZvcm1hdDogcGl4ZWwgZm9ybWF0IChEUk1fRk9STUFUXyopCj4gPiArICoKPiA+ ICsgKiBSZXR1cm5zOgo+ID4gKyAqIFRoZSBpbnN0YW5jZSBvZiBzdHJ1Y3QgZHJtX2Zvcm1hdF9p bmZvIHRoYXQgZGVzY3JpYmVzIHRoZSBwaXhlbCBmb3JtYXQsIG9yCj4gPiArICogTlVMTCBpZiB0 aGUgZm9ybWF0IGlzIHVuc3VwcG9ydGVkLgo+ID4gKyAqLwo+ID4gK2NvbnN0IHN0cnVjdCBkcm1f Zm9ybWF0X2luZm8gKmRybV9mb3JtYXRfaW5mbyh1MzIgZm9ybWF0KQo+IAo+IEJpa2VzaGVkIG9u IHlvdXIgcGl4ZWwgZm9ybWF0IGRlc2NyaXB0aW9uIHRhYmxlLiBJIHRoaW5rIHRoZSBhcHByb2Fj aCBJJ3ZlCj4gc2VlbiBpbiBnYWxsaXVtL21lc2EgdG8gZGVzY3JpYmUgcGl4ZWwgZm9ybWF0cyBp cyBhIGxvdCBtb3JlIGdlbmVyaWMsIGFuZAo+IHdlIG1pZ2h0IGFzIHdlbGwgYWRvcHQgaXQgd2hl biB3ZSBjaGFuZ2UuIElkZWEgaXMgdG8gaGF2ZSBhIGJsb2NrIHNpemUKPiBtZWFzdXJlIGluIHBp eGVscyAoYm90aCBoIGFuZCB2KSwgYW5kIHRoZW4gY3BwIGlzIGJ5dGVzX3Blcl9ibG9jay4gVGhp cyBpcwo+IGVzc2VudGlhbGx5IHdoYXQgeW91IGhhdmUgd2l0aCBoc3ViIGFuZCB2c3ViIGFscmVh ZHksIGV4Y2VwdCBjb25mdXNpbmcKPiBuYW1lcywgbW9yZSBpbGwtZGVmaW5lZCAoc2luY2UgaXQg b25seSBtYWtlcyBzZW5zZSBmb3IgeXV2KSBhbmQgbGVzcwo+IGdlbmVyaWMuIEEgZmV3IGV4YW1w bGVzOgoKSSB0aGluayB5b3UgaGF2ZSB5b3VyIGNvbmZ1c2lvbiBiYWNrd2FyZHMuIENhbGxpbmcg c29tZXRoaW5nIGEgYmxvY2sgaW4KcGxhbmFyIGZvcm1hdHMgd291bGQgYmUgbW9yZSBjb25mdXNp bmcuIFRoZSBvbmx5IHRoaW5nIHRoYXQgcmVhbGx5Cm1hdHRlcnMgaXMgdGhlIHJlbGF0aXZlIHBv c2l0aW9uIG9mIHRoZSBzYW1wbGVzIGJldHdlZW4gdGhlIHBsYW5lcy4KU28gdGhlcmUgcmVhbGx5 IGlzIG5vICJibG9jayIgaW4gdGhlcmUuCgo+IAloX2Jsb2Nrc2l6ZQl2X2Jsb2Nrc2l6ZQlieXRl c19wZXJfYmxvY2sgKHBlci1wbGFuZSkKPiBZVVY0MTAJNAkJNAkJezQsIDEsIDF9Cj4gWVVWNDEx CTQJCTEJCXs0LCAxLCAxfQo+IAo+IGhzdWIgPSBoX2Jsb2Nrc2l6ZSAvIGJ5dGVzX3Blcl9ibG9j a1tVL1YgcGxhbmVdCj4gdnN1YiA9IHZfYmxvY2tzaXplIC8gYnl0ZXNfcGVyX2Jsb2NrW1UvViBw bGFuZV0KPiAKPiAqX2Jsb2Nrc2l6ZSBpcyBpbiBwaXhlbHMKPiAKPiBbbm90IGVudGlyZWx5IHN1 cmUgb24gdGhlIHByZWNpc2UgZGF0YSwgYnV0IHRoYXQncyBraW5kYSB0aGUgcG9pbnQuXQo+IAo+ IE9mYyBzaG91bGQgbWF5YmUgY2hlY2sgdGhhdCB0aG9zZSBoZWxwZXJzIGFyZSBvbmx5IGNhbGxl ZCBvbiB5dXYgcGxhbmFyCj4gZm9ybWF0cywgdG9vLiBUaGlzIHdheSB3ZSBjb3VsZCBhbHNvIHJl bW92ZSBzb21lIG9mIHRoZSBjb21tZW50cyBpbgo+IGRybV9mb3VyY2MuaCwgb3IgYXQgbGVhc3Qg bWFrZSB0aGUgbW9yZSBjbGVhci4gQW5vdGhlciBiZW5lZml0IGlzIHRoYXQKPiB3aXRoIHRoaXMg aXQncyBwb3NzaWJsZSB0byB3cml0ZSBlbnRpcmVseSBnZW5lcmljIHNpemUvc3RyaWRlIGNoZWNr aW5nCj4gZnVuY3Rpb25zCj4gCj4gT2ggYW5kIGlmIHdlIGdvIHdpdGggdGhpcywgc29tZSBhc2Np aWFydCBmb3Igd2hhdCdzIG1lYW50IChpbiBzcGhpbngvcnN0LAo+IHRoYXQgd2lsbCBoYXBwZW4g aW4gNC44KSB3b3VsZCBiZSBhd2Vzb21lLgo+IC1EYW5pZWwKPiAKPiA+ICt7Cj4gPiArCXN0YXRp YyBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvIGZvcm1hdHNbXSA9IHsgCj4gPiArCQl7IC5m b3JtYXQgPSBEUk1fRk9STUFUX0M4LAkJLmRlcHRoID0gOCwgIC5udW1fcGxhbmVzID0gMSwgLmNw cCA9IHsgMSwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9LAo+ID4gKwkJeyAuZm9ybWF0 ID0gRFJNX0ZPUk1BVF9SR0IzMzIsCQkuZGVwdGggPSA4LCAgLm51bV9wbGFuZXMgPSAxLCAuY3Bw ID0geyAxLCAwLCAwIH0sIC5oc3ViID0gMSwgLnZzdWIgPSAxIH0sCj4gPiArCQl7IC5mb3JtYXQg PSBEUk1fRk9STUFUX0JHUjIzMywJCS5kZXB0aCA9IDgsICAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDEsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfWFJHQjQ0NDQsCS5kZXB0aCA9IDEyLCAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDIsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfWEJHUjQ0NDQsCS5kZXB0aCA9IDEyLCAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDIsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfUkdCWDQ0NDQsCS5kZXB0aCA9IDEyLCAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDIsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfQkdSWDQ0NDQsCS5kZXB0aCA9IDEyLCAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDIsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfQVJHQjQ0NDQsCS5kZXB0aCA9IDEyLCAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDIsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfQUJHUjQ0NDQsCS5kZXB0aCA9IDEyLCAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDIsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfUkdCQTQ0NDQsCS5kZXB0aCA9IDEyLCAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDIsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfQkdSQTQ0NDQsCS5kZXB0aCA9IDEyLCAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDIsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfWFJHQjE1NTUsCS5kZXB0aCA9IDE1LCAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDIsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfWEJHUjE1NTUsCS5kZXB0aCA9IDE1LCAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDIsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfUkdCWDU1NTEsCS5kZXB0aCA9IDE1LCAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDIsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfQkdSWDU1NTEsCS5kZXB0aCA9IDE1LCAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDIsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfQVJHQjE1NTUsCS5kZXB0aCA9IDE1LCAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDIsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfQUJHUjE1NTUsCS5kZXB0aCA9IDE1LCAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDIsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfUkdCQTU1NTEsCS5kZXB0aCA9IDE1LCAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDIsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfQkdSQTU1NTEsCS5kZXB0aCA9IDE1LCAubnVtX3BsYW5lcyA9IDEsIC5jcHAg PSB7IDIsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9 IERSTV9GT1JNQVRfUkdCNTY1LAkJLmRlcHRoID0gMTYsIC5udW1fcGxhbmVzID0gMSwgLmNwcCA9 IHsgMiwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9LAo+ID4gKwkJeyAuZm9ybWF0ID0g RFJNX0ZPUk1BVF9CR1I1NjUsCQkuZGVwdGggPSAxNiwgLm51bV9wbGFuZXMgPSAxLCAuY3BwID0g eyAyLCAwLCAwIH0sIC5oc3ViID0gMSwgLnZzdWIgPSAxIH0sCj4gPiArCQl7IC5mb3JtYXQgPSBE Uk1fRk9STUFUX1JHQjg4OCwJCS5kZXB0aCA9IDI0LCAubnVtX3BsYW5lcyA9IDEsIC5jcHAgPSB7 IDMsIDAsIDAgfSwgLmhzdWIgPSAxLCAudnN1YiA9IDEgfSwKPiA+ICsJCXsgLmZvcm1hdCA9IERS TV9GT1JNQVRfQkdSODg4LAkJLmRlcHRoID0gMjQsIC5udW1fcGxhbmVzID0gMSwgLmNwcCA9IHsg MywgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9LAo+ID4gKwkJeyAuZm9ybWF0ID0gRFJN X0ZPUk1BVF9YUkdCODg4OCwJLmRlcHRoID0gMjQsIC5udW1fcGxhbmVzID0gMSwgLmNwcCA9IHsg NCwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9LAo+ID4gKwkJeyAuZm9ybWF0ID0gRFJN X0ZPUk1BVF9YQkdSODg4OCwJLmRlcHRoID0gMjQsIC5udW1fcGxhbmVzID0gMSwgLmNwcCA9IHsg NCwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9LAo+ID4gKwkJeyAuZm9ybWF0ID0gRFJN X0ZPUk1BVF9SR0JYODg4OCwJLmRlcHRoID0gMjQsIC5udW1fcGxhbmVzID0gMSwgLmNwcCA9IHsg NCwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9LAo+ID4gKwkJeyAuZm9ybWF0ID0gRFJN X0ZPUk1BVF9CR1JYODg4OCwJLmRlcHRoID0gMjQsIC5udW1fcGxhbmVzID0gMSwgLmNwcCA9IHsg NCwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9LAo+ID4gKwkJeyAuZm9ybWF0ID0gRFJN X0ZPUk1BVF9YUkdCMjEwMTAxMCwJLmRlcHRoID0gMzAsIC5udW1fcGxhbmVzID0gMSwgLmNwcCA9 IHsgNCwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9LAo+ID4gKwkJeyAuZm9ybWF0ID0g RFJNX0ZPUk1BVF9YQkdSMjEwMTAxMCwJLmRlcHRoID0gMzAsIC5udW1fcGxhbmVzID0gMSwgLmNw cCA9IHsgNCwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9LAo+ID4gKwkJeyAuZm9ybWF0 ID0gRFJNX0ZPUk1BVF9SR0JYMTAxMDEwMiwJLmRlcHRoID0gMzAsIC5udW1fcGxhbmVzID0gMSwg LmNwcCA9IHsgNCwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9LAo+ID4gKwkJeyAuZm9y bWF0ID0gRFJNX0ZPUk1BVF9CR1JYMTAxMDEwMiwJLmRlcHRoID0gMzAsIC5udW1fcGxhbmVzID0g MSwgLmNwcCA9IHsgNCwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9LAo+ID4gKwkJeyAu Zm9ybWF0ID0gRFJNX0ZPUk1BVF9BUkdCMjEwMTAxMCwJLmRlcHRoID0gMzAsIC5udW1fcGxhbmVz ID0gMSwgLmNwcCA9IHsgNCwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9LAo+ID4gKwkJ eyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9BQkdSMjEwMTAxMCwJLmRlcHRoID0gMzAsIC5udW1fcGxh bmVzID0gMSwgLmNwcCA9IHsgNCwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9LAo+ID4g KwkJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9SR0JBMTAxMDEwMiwJLmRlcHRoID0gMzAsIC5udW1f cGxhbmVzID0gMSwgLmNwcCA9IHsgNCwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9LAo+ ID4gKwkJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9CR1JBMTAxMDEwMiwJLmRlcHRoID0gMzAsIC5u dW1fcGxhbmVzID0gMSwgLmNwcCA9IHsgNCwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9 LAo+ID4gKwkJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9BUkdCODg4OCwJLmRlcHRoID0gMzIsIC5u dW1fcGxhbmVzID0gMSwgLmNwcCA9IHsgNCwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9 LAo+ID4gKwkJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9BQkdSODg4OCwJLmRlcHRoID0gMzIsIC5u dW1fcGxhbmVzID0gMSwgLmNwcCA9IHsgNCwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9 LAo+ID4gKwkJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9SR0JBODg4OCwJLmRlcHRoID0gMzIsIC5u dW1fcGxhbmVzID0gMSwgLmNwcCA9IHsgNCwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9 LAo+ID4gKwkJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9CR1JBODg4OCwJLmRlcHRoID0gMzIsIC5u dW1fcGxhbmVzID0gMSwgLmNwcCA9IHsgNCwgMCwgMCB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9 LAo+ID4gKwkJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9ZVVY0MTAsCQkuZGVwdGggPSAwLCAgLm51 bV9wbGFuZXMgPSAzLCAuY3BwID0geyAxLCAxLCAxIH0sIC5oc3ViID0gNCwgLnZzdWIgPSA0IH0s Cj4gPiArCQl7IC5mb3JtYXQgPSBEUk1fRk9STUFUX1lWVTQxMCwJCS5kZXB0aCA9IDAsICAubnVt X3BsYW5lcyA9IDMsIC5jcHAgPSB7IDEsIDEsIDEgfSwgLmhzdWIgPSA0LCAudnN1YiA9IDQgfSwK PiA+ICsJCXsgLmZvcm1hdCA9IERSTV9GT1JNQVRfWVVWNDExLAkJLmRlcHRoID0gMCwgIC5udW1f cGxhbmVzID0gMywgLmNwcCA9IHsgMSwgMSwgMSB9LCAuaHN1YiA9IDQsIC52c3ViID0gMSB9LAo+ ID4gKwkJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9ZVlU0MTEsCQkuZGVwdGggPSAwLCAgLm51bV9w bGFuZXMgPSAzLCAuY3BwID0geyAxLCAxLCAxIH0sIC5oc3ViID0gNCwgLnZzdWIgPSAxIH0sCj4g PiArCQl7IC5mb3JtYXQgPSBEUk1fRk9STUFUX1lVVjQyMCwJCS5kZXB0aCA9IDAsICAubnVtX3Bs YW5lcyA9IDMsIC5jcHAgPSB7IDEsIDEsIDEgfSwgLmhzdWIgPSAyLCAudnN1YiA9IDIgfSwKPiA+ ICsJCXsgLmZvcm1hdCA9IERSTV9GT1JNQVRfWVZVNDIwLAkJLmRlcHRoID0gMCwgIC5udW1fcGxh bmVzID0gMywgLmNwcCA9IHsgMSwgMSwgMSB9LCAuaHN1YiA9IDIsIC52c3ViID0gMiB9LAo+ID4g KwkJeyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9ZVVY0MjIsCQkuZGVwdGggPSAwLCAgLm51bV9wbGFu ZXMgPSAzLCAuY3BwID0geyAxLCAxLCAxIH0sIC5oc3ViID0gMiwgLnZzdWIgPSAxIH0sCj4gPiAr CQl7IC5mb3JtYXQgPSBEUk1fRk9STUFUX1lWVTQyMiwJCS5kZXB0aCA9IDAsICAubnVtX3BsYW5l cyA9IDMsIC5jcHAgPSB7IDEsIDEsIDEgfSwgLmhzdWIgPSAyLCAudnN1YiA9IDEgfSwKPiA+ICsJ CXsgLmZvcm1hdCA9IERSTV9GT1JNQVRfWVVWNDQ0LAkJLmRlcHRoID0gMCwgIC5udW1fcGxhbmVz ID0gMywgLmNwcCA9IHsgMSwgMSwgMSB9LCAuaHN1YiA9IDEsIC52c3ViID0gMSB9LAo+ID4gKwkJ eyAuZm9ybWF0ID0gRFJNX0ZPUk1BVF9ZVlU0NDQsCQkuZGVwdGggPSAwLCAgLm51bV9wbGFuZXMg PSAzLCAuY3BwID0geyAxLCAxLCAxIH0sIC5oc3ViID0gMSwgLnZzdWIgPSAxIH0sCj4gPiArCQl7 IC5mb3JtYXQgPSBEUk1fRk9STUFUX05WMTIsCQkuZGVwdGggPSAwLCAgLm51bV9wbGFuZXMgPSAy LCAuY3BwID0geyAxLCAyLCAwIH0sIC5oc3ViID0gMiwgLnZzdWIgPSAyIH0sCj4gPiArCQl7IC5m b3JtYXQgPSBEUk1fRk9STUFUX05WMjEsCQkuZGVwdGggPSAwLCAgLm51bV9wbGFuZXMgPSAyLCAu Y3BwID0geyAxLCAyLCAwIH0sIC5oc3ViID0gMiwgLnZzdWIgPSAyIH0sCj4gPiArCQl7IC5mb3Jt YXQgPSBEUk1fRk9STUFUX05WMTYsCQkuZGVwdGggPSAwLCAgLm51bV9wbGFuZXMgPSAyLCAuY3Bw ID0geyAxLCAyLCAwIH0sIC5oc3ViID0gMiwgLnZzdWIgPSAxIH0sCj4gPiArCQl7IC5mb3JtYXQg PSBEUk1fRk9STUFUX05WNjEsCQkuZGVwdGggPSAwLCAgLm51bV9wbGFuZXMgPSAyLCAuY3BwID0g eyAxLCAyLCAwIH0sIC5oc3ViID0gMiwgLnZzdWIgPSAxIH0sCj4gPiArCQl7IC5mb3JtYXQgPSBE Uk1fRk9STUFUX05WMjQsCQkuZGVwdGggPSAwLCAgLm51bV9wbGFuZXMgPSAyLCAuY3BwID0geyAx LCAyLCAwIH0sIC5oc3ViID0gMSwgLnZzdWIgPSAxIH0sCj4gPiArCQl7IC5mb3JtYXQgPSBEUk1f Rk9STUFUX05WNDIsCQkuZGVwdGggPSAwLCAgLm51bV9wbGFuZXMgPSAyLCAuY3BwID0geyAxLCAy LCAwIH0sIC5oc3ViID0gMSwgLnZzdWIgPSAxIH0sCj4gPiArCQl7IC5mb3JtYXQgPSBEUk1fRk9S TUFUX1lVWVYsCQkuZGVwdGggPSAwLCAgLm51bV9wbGFuZXMgPSAxLCAuY3BwID0geyAyLCAwLCAw IH0sIC5oc3ViID0gMiwgLnZzdWIgPSAxIH0sCj4gPiArCQl7IC5mb3JtYXQgPSBEUk1fRk9STUFU X1lWWVUsCQkuZGVwdGggPSAwLCAgLm51bV9wbGFuZXMgPSAxLCAuY3BwID0geyAyLCAwLCAwIH0s IC5oc3ViID0gMiwgLnZzdWIgPSAxIH0sCj4gPiArCQl7IC5mb3JtYXQgPSBEUk1fRk9STUFUX1VZ VlksCQkuZGVwdGggPSAwLCAgLm51bV9wbGFuZXMgPSAxLCAuY3BwID0geyAyLCAwLCAwIH0sIC5o c3ViID0gMiwgLnZzdWIgPSAxIH0sCj4gPiArCQl7IC5mb3JtYXQgPSBEUk1fRk9STUFUX1ZZVVks CQkuZGVwdGggPSAwLCAgLm51bV9wbGFuZXMgPSAxLCAuY3BwID0geyAyLCAwLCAwIH0sIC5oc3Vi ID0gMiwgLnZzdWIgPSAxIH0sCj4gPiArCQl7IC5mb3JtYXQgPSBEUk1fRk9STUFUX0FZVVYsCQku ZGVwdGggPSAwLCAgLm51bV9wbGFuZXMgPSAxLCAuY3BwID0geyA0LCAwLCAwIH0sIC5oc3ViID0g MSwgLnZzdWIgPSAxIH0sCj4gPiArCX07Cj4gPiArCj4gPiArCXVuc2lnbmVkIGludCBpOwo+ID4g Kwo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShmb3JtYXRzKTsgKytpKSB7Cj4gPiAr CQlpZiAoZm9ybWF0c1tpXS5mb3JtYXQgPT0gZm9ybWF0KQo+ID4gKwkJCXJldHVybiAmZm9ybWF0 c1tpXTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlyZXR1cm4gTlVMTDsKPiA+ICt9Cj4gPiArRVhQT1JU X1NZTUJPTChkcm1fZm9ybWF0X2luZm8pOwo+ID4gKwo+ID4gKy8qKgo+ID4gICAqIGRybV9mYl9n ZXRfYnBwX2RlcHRoIC0gZ2V0IHRoZSBicHAvZGVwdGggdmFsdWVzIGZvciBmb3JtYXQKPiA+ICAg KiBAZm9ybWF0OiBwaXhlbCBmb3JtYXQgKERSTV9GT1JNQVRfKikKPiA+ICAgKiBAZGVwdGg6IHN0 b3JhZ2UgZm9yIHRoZSBkZXB0aCB2YWx1ZQo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2Ry bV9mb3VyY2MuaCBiL2luY2x1ZGUvZHJtL2RybV9mb3VyY2MuaAo+ID4gaW5kZXggN2Y5MGEzOTZj ZjJiLi5iMDc3ZGY1MDdiNTEgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZm91cmNj LmgKPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9mb3VyY2MuaAo+ID4gQEAgLTI1LDYgKzI1LDI1 IEBACj4gPiAgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gPiAgI2luY2x1ZGUgPHVhcGkvZHJt L2RybV9mb3VyY2MuaD4KPiA+ICAKPiA+ICsvKioKPiA+ICsgKiBzdHJ1Y3QgZHJtX2Zvcm1hdF9p bmZvIC0gaW5mb3JtYXRpb24gYWJvdXQgYSBEUk0gZm9ybWF0Cj4gPiArICogQGZvcm1hdDogNEND IGZvcm1hdCBpZGVudGlmaWVyIChEUk1fRk9STUFUXyopCj4gPiArICogQGRlcHRoOiBjb2xvciBk ZXB0aCAobnVtYmVyIG9mIGJpdHMgcGVyIHBpeGVsIGV4Y2x1ZGluZyBwYWRkaW5nIGJpdHMpCj4g PiArICogQG51bV9wbGFuZXM6IG51bWJlciBvZiBjb2xvciBwbGFuZXMgKDEgdG8gMykKPiA+ICsg KiBAY3BwOiBudW1iZXIgb2YgYnl0ZXMgcGVyIHBpeGVsIChwZXIgcGxhbmUpCj4gPiArICogQGhz dWI6IGhvcml6b250YWwgY2hyb21hIHN1YnNhbXBsaW5nIGZhY3Rvcgo+ID4gKyAqIEB2c3ViOiB2 ZXJ0aWNhbCBjaHJvbWEgc3Vic2FtcGxpbmcgZmFjdG9yCj4gPiArICovCj4gPiArc3RydWN0IGRy bV9mb3JtYXRfaW5mbyB7Cj4gPiArCXUzMiBmb3JtYXQ7Cj4gPiArCXU4IGRlcHRoOwo+ID4gKwl1 OCBudW1fcGxhbmVzOwo+ID4gKwl1OCBjcHBbM107Cj4gPiArCXU4IGhzdWI7Cj4gPiArCXU4IHZz dWI7Cj4gPiArfTsKPiA+ICsKPiA+ICtjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICpkcm1f Zm9ybWF0X2luZm8odTMyIGZvcm1hdCk7Cj4gPiAgdm9pZCBkcm1fZmJfZ2V0X2JwcF9kZXB0aCh1 aW50MzJfdCBmb3JtYXQsIHVuc2lnbmVkIGludCAqZGVwdGgsIGludCAqYnBwKTsKPiA+ICBpbnQg ZHJtX2Zvcm1hdF9udW1fcGxhbmVzKHVpbnQzMl90IGZvcm1hdCk7Cj4gPiAgaW50IGRybV9mb3Jt YXRfcGxhbmVfY3BwKHVpbnQzMl90IGZvcm1hdCwgaW50IHBsYW5lKTsKPiA+IC0tIAo+ID4gUmVn YXJkcywKPiA+IAo+ID4gTGF1cmVudCBQaW5jaGFydAo+ID4gCj4gPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gZHJpLWRldmVsIG1haWxpbmcgbGlz dAo+ID4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPiAKPiAtLSAKPiBEYW5p ZWwgVmV0dGVyCj4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gaHR0cDov L2Jsb2cuZmZ3bGwuY2gKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=