From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [3/8] dt-bindings: phy: tegra-xusb-padctl: Add nvidia,usb3-port-fake entry From: jckuo Message-Id: <386de525-bbce-c19f-12aa-8d48934dfedc@nvidia.com> Date: Fri, 15 Feb 2019 09:39:47 +0800 To: Nagarjuna Kristam , Thierry Reding Cc: balbi@kernel.org, gregkh@linuxfoundation.org, jonathanh@nvidia.com, linux-tegra@vger.kernel.org, linux-usb@vger.kernel.org, ChihMin Cheng , "Wang-Kai \(WK\) Tsai" , Ashutosh Jha , "Bing-Han \(BH\) Hsieh" List-ID: VGhlcmUgd29uJ3QgYmUgYSBjYXNlIHRoYXQgYWxsIG9mIHRoZSBzdXBlci1zcGVlZCBwb3J0cyBh cmUgaW4gdXNlZCBidXQgCm5vbmUgb2YgdGhlIHBvcnRzIGNhbiBiZSBwYWlyZWQgd2l0aCB0aGUg T1RHIGNhcGFibGUgVVNCMiBwb3J0LiAKVDIxMC9UMjEwQjAxKGFrYSBUMjE0KSBoYXMgNCBzdXBl ci1zcGVlZCBwb3J0cyBhbmQgNCBVU0IyIHBvcnRzLiBBIFVTQiAKMy4wIGNvbm5lY3Rpb24gKGVp dGhlciBob3N0IHJvbGUgb3IgZGV2aWNlIHJvbGUpIG11c3QgaGF2ZSBvbmUgCnN1cGVyLXNwZWVk IHBvcnQgcGFpciB3aXRoIG9uZSBVU0IyIHBvcnQuIElmIGEgcGxhdGZvcm0gaGFzIGFuIFVTQiAy LjAgCk9URyBjb25uZWN0b3IsIHRoZXJlIG11c3QgYmUgYXQgbGVhc3Qgb25lIHN1cGVyLXNwZWVk IHBvcnQgdW51c2VkLgoKVG8gbWFrZSBYVVNCIGRldmljZSBtb2RlIHdvcmtpbmcgd2l0aCB0aGUg VVNCIDIuMCBPVEcgY29ubmVjdG9yLCBkcml2ZXIgCmp1c3QgaGF2ZSB0bzoKMS4gcGFpciB0aGUg ZGVzaWduYXRlZCB1bnVzZWQgc3VwZXItc3BlZWQgcG9ydCB3aXRoIHRoZSBVU0IyIHBvcnQgdGhh dCAKaGFzIE9URyBjYXBhYmlsaXR5LgoyLiByZW1vdmUgQ0xBTVBfRU5fRUFSTFkvQ0xBTVBfRU4v VkNPUkVfRE9XTiBzaWduYWxzLgoKUGxlYXNlIG5vdGUgdGhlIGNvcnJlc3BvbmRpbmcgVVBIWSBs YW5lIG9mIHRoZSBkZXNpZ25hdGVkIHVudXNlZCAKc3VwZXItc3BlZWQgcG9ydCBjYW4gc3RpbGwg YmUgdXNlZCBieSBhbm90aGVyIElQIChQQ0lFIG9yIFNBVEEpLgoKQWdyZWUgdGhhdCBpdCdkIGJl IGJldHRlciB0byBrZWVwIHRoZSBjb21wbGV4aXR5IHdpdGhpbiBkcml2ZXIsIHJhdGhlciAKdGhh biBjb25mdXNpbmcgZGV2aWNlIHRyZWUgYXV0aG9ycy4gVGhhbmtzIFRoaWVycnkuCgpUaGFua3Ms CkpDCgoKT24gMi8xNC8xOSAxMTowMSBQTSwgTmFnYXJqdW5hIEtyaXN0YW0gd3JvdGU6Cj4KPiBP biAxNC0wMi0yMDE5IDE0OjI5LCBUaGllcnJ5IFJlZGluZyB3cm90ZToKPj4gT24gVGh1LCBGZWIg MTQsIDIwMTkgYXQgMTA6NTg6MTNBTSArMDUzMCwgTmFnYXJqdW5hIEtyaXN0YW0gd3JvdGU6Cj4+ Pgo+Pj4gT24gMTMtMDItMjAxOSAxODo0NiwgVGhpZXJyeSBSZWRpbmcgd3JvdGU6Cj4+Pj4gT24g V2VkLCBGZWIgMTMsIDIwMTkgYXQgMDE6NTY6MjRQTSArMDEwMCwgVGhpZXJyeSBSZWRpbmcgd3Jv dGU6Cj4+Pj4+IE9uIFdlZCwgRmViIDEzLCAyMDE5IGF0IDA0OjA4OjE1UE0gKzA1MzAsIE5hZ2Fy anVuYSBLcmlzdGFtIHdyb3RlOgo+Pj4+Pj4KPj4+Pj4+IE9uIDA0LTAyLTIwMTkgMTc6MTgsIFRo aWVycnkgUmVkaW5nIHdyb3RlOgo+Pj4+Pj4+IE9uIFRodSwgSmFuIDAzLCAyMDE5IGF0IDAzOjM0 OjU0UE0gKzA1MzAsIE5hZ2FyanVuYSBLcmlzdGFtIHdyb3RlOgo+Pj4+Pj4+PiBBZGQgYmluZGlu ZyBkZXRhaWxzIHJlZ2FyZGluZyBudmlkaWEsdXNiMy1wb3J0LWZha2UKPj4+Pj4+Pj4KPj4+Pj4+ Pj4gU2lnbmVkLW9mZi1ieTogTmFnYXJqdW5hIEtyaXN0YW0gPG5rcmlzdGFtQG52aWRpYS5jb20+ Cj4+Pj4+Pj4+IC0tLQo+Pj4+Pj4+PiAgIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5n cy9waHkvbnZpZGlhLHRlZ3JhMTI0LXh1c2ItcGFkY3RsLnR4dCB8IDMgKysrCj4+Pj4+Pj4+ICAg MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBkaWZmIC0t Z2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9udmlkaWEsdGVncmEx MjQteHVzYi1wYWRjdGwudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Bo eS9udmlkaWEsdGVncmExMjQteHVzYi1wYWRjdGwudHh0Cj4+Pj4+Pj4+IGluZGV4IDM3NDJjMTUu LjIxYTU1NDEgMTAwNjQ0Cj4+Pj4+Pj4+IC0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9i aW5kaW5ncy9waHkvbnZpZGlhLHRlZ3JhMTI0LXh1c2ItcGFkY3RsLnR4dAo+Pj4+Pj4+PiArKysg Yi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L252aWRpYSx0ZWdyYTEyNC14 dXNiLXBhZGN0bC50eHQKPj4+Pj4+Pj4gQEAgLTE1OCw2ICsxNTgsOSBAQCBPcHRpb25hbCBwcm9w ZXJ0aWVzOgo+Pj4+Pj4+PiAgICAgaXMgaW50ZXJuYWwuIEluIHRoZSBhYnNlbmNlIG9mIHRoaXMg cHJvcGVydHkgdGhlIHBvcnQgaXMgY29uc2lkZXJlZCB0byBiZQo+Pj4+Pj4+PiAgICAgZXh0ZXJu YWwuCj4+Pj4+Pj4+ICAgLSB2YnVzLXN1cHBseTogcGhhbmRsZSB0byBhIHJlZ3VsYXRvciBzdXBw bHlpbmcgdGhlIFZCVVMgdm9sdGFnZS4KPj4+Pj4+Pj4gKy0gbnZpZGlhLHVzYjMtcG9ydC1mYWtl OiBBIGludGVnZXIgcHJvcGVydHkgd2hvc2UgcHJlc2Vuc2UgaW5mb3JtcyB0aGF0IGEKPj4+Pj4+ Pj4gKyAgZmFrZSBVU0IzIHBvcnQgbmVlZHMgdG8gYmUgbWFwcGVkIGZvciBjb3JyZXNwb25kaW5n IFVTQjIgcG9ydC4gVGhpcyBlbnRyeQo+Pj4+Pj4+PiArICBpcyBhcHBsaWNhYmxlIG9ubHkgZm9y IFRlZ3JhMjEwIGJhc2VkIHBsYXRmb3JtcyB3aGljaCBoYXMgVVNCMiBvbmx5IHBvcnRzLgo+Pj4+ Pj4+IFlvdSBkb24ndCBwcm92aWRlIGEgcmF0aW9uYWxlIGZvIHdoeSB0aGlzIGZha2UgVVNCMyBw b3J0IG5lZWRzIHRvIGJlCj4+Pj4+Pj4gc3BlY2lmaWVkLiBEb2Vzbid0IHRoZSBPVEcgcG9ydCB3 b3JrIHdpdGhvdXQgdGhlIGZha2UgVVNCMyBwb3J0PyBXaHkKPj4+Pj4+PiBkb2VzIGl0IG5lZWQg dG8gYmUgc3BlY2lmaWVkIGFuZCB3aGljaCBvbmUgc2hvdWxkIGJlIHVzZWQgYXMgZmFrZT8KPj4+ Pj4+Pgo+Pj4+Pj4gWWVzLCBvbiBUZWdyYTIxMCBiYXNlZCBwbGF0Zm9ybXMsIFVTQjIgb25seSBk ZXZpY2UvT1RHIHBvcnRzIGRvbid0IHdvcmsKPj4+Pj4+Cj4+Pj4+Pj4gWW91IG1lbnRpb24gZWxz ZXdoZXJlIHRoYXQgYW4gdW51c2VkIFVTQjMgcG9ydCBpcyB1c2VkIG9uIEpldHNvbiBUWDEsCj4+ Pj4+Pj4gYnV0IHdoYXQgaWYgdGhlcmUgYXJlIG5vIHVudXNlZCBwb3J0cyBvbiBhIHBsYXRmb3Jt PyBDYW4gd2UgdXNlIGFueQo+Pj4+Pj4+IFVTQjMgcG9ydCBmb3IgdGhpcyBwdXJwb3NlPwo+Pj4+ Pj4+Cj4+Pj4+PiBJZiB3ZSBkb250IGhhdmUgYW55IHVudXNlZCBwb3J0LCB3ZSBjYW5ub3QgZ2V0 IGRldmljZSBtb2RlIHdvcmtpbmcgb24gVVNCMiBvbmx5IHBvcnQuCj4+Pj4+PiBXZSBjYW5ub3Qg dXNlIGFueSBVU0IzIHBvcnQsIHdlIG5lZWQgdG8gdXNlIGFuIHVuLXVzZWQgVVNCMyBwb3J0LCBz byB0aGF0IHdlIGNhbgo+Pj4+Pj4gZmFrZSB0aGF0IGNvcnJlc3BvbmRpbmcgVVNCMiBvbmx5IHBv cnQgYXMgVVNCMiBhbmQgVVNCMyBwb3J0Lgo+Pj4+PiBIbS4uLiBzZWVtcyB0byBtZSBsaWtlIHdl IHNob3VsZCBiZSBhYmxlIHRvIGRvIHRoaXMgd2l0aG91dCBhbiBleHRyYQo+Pj4+PiBkZXZpY2Ug dHJlZSBwcm9wZXJ0eS4gU3VyZWx5IHdlIGNhbiBkZXRlcm1pbmUgYXQgcnVudGltZSB3aGljaCBv ZiB0aGUKPj4+Pj4gcG9ydHMgYXJlIGFjdHVhbGx5IHVudXNlZCBhbmQgcGljayBvbmU/IElmIGl0 IGRvZXNuJ3QgbWF0dGVyIHdoaWNoIG9uZSwKPj4+Pj4gd2UgY2FuIGp1c3QgcGljayB0aGUgZmly c3Qgb25lIHRoYXQncyB1bnVzZWQsIG9yIGFuIHVudXNlZCBvbmUgYXQKPj4+Pj4gcmFuZG9tLgo+ Pj4+IEl0J3Mgc2xpZ2h0bHkgbW9yZSBjb21wbGljYXRlZCB0aGFuIEkgdGhvdWdodCBiZWNhdXNl IHRoZXJlJ3MgYW4KPj4+PiBvcHRpbWl6YXRpb24gaW4gdGVncmFfeHVzYl9hZGRfdXNiM19wb3J0 KCkgdGhhdCB3aWxsIGNhdXNlIG9ubHkgdXNlZAo+Pj4+IHBvcnRzIHRvIGdldCByZWdpc3RlcmVk LiBCdXQgSSB0aGluayB3ZSBjYW4gZG8gc29tZXRoaW5nIGxpa2UgdGhpcwo+Pj4+ICh1bnRlc3Rl ZCkgdG8gZ2V0IGhvbGQgb2YgYW4gdW51c2VkIG9uZSwgc2luY2Ugd2Ugb25seSBuZWVkIHRoZSBp bmRleAo+Pj4+IG9mIHRoZSBwb3J0Ogo+Pj4+Cj4+Pj4gCXN0YXRpYyBpbnQgdGVncmFfeHVzYl9m aW5kX3VudXNlZF91c2IzX3BvcnQoc3RydWN0IHRlZ3JhX3h1c2JfcGFkY3RsICpwYWRjdGwpCj4+ Pj4gCXsKPj4+PiAJCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnA7Cj4+Pj4gCQl1bnNpZ25lZCBpbnQg aTsKPj4+Pgo+Pj4+IAkJZm9yIChpID0gMDsgaSA8IHBhZGN0bC0+c29jLT5wb3J0cy51c2IzLmNv dW50OyBpKyspIHsKPj4+PiAJCQlucCA9IHRlZ3JhX3h1c2JfZmluZF9wb3J0X25vZGUocGFkY3Rs LCAidXNiMyIsIGkpOwo+Pj4+IAkJCWlmICghbnAgfHwgIW9mX2RldmljZV9pc19hdmFpbGFibGUo bnApKQo+Pj4+IAkJCQlyZXR1cm4gaW5kZXg7Cj4+Pj4gCQl9Cj4+Pj4KPj4+PiAJCXJldHVybiAt RU5PREVWOwo+Pj4+IAl9Cj4+Pj4KPj4+PiBUaGllcnJ5Cj4+Pj4KPj4+IEl0IG5vdCBqdXN0IGFi b3V0IHVuLXVzZWQgVVNCMyBwb3J0LCB3ZSBuZWVkIHRvIGZpbmQgd2hpY2ggdXNiMiBwb3J0Cj4+ PiBpcyByZWdpc3RlcmVkIGFzIG90Zy9kZXZpY2UgYW5kIHRoZW4gY2hlY2sgaWYgaXQgZG9lc25v dCBoYXZlIGFueQo+Pj4gY29tcGFuaW9uIHVzYjMgcG9ydC4gT24gdGhpcyBjb25kaXRpb24gd2Ug bmVlZCB0byBhc3NpZ24gdW51c2VkIHVzYjMKPj4+IHBvcnQgYXMgZmFrZSBwb3J0Lgo+PiBZZWFo LCB3ZSBzaG91bGQgb25seSBiZSBydW5uaW5nIHRoaXMgY29kZSBmb3IgdGhlIE9URyBwb3J0IGlu IHRoZSBmaXJzdAo+PiBwbGFjZS4gT25jZSB3ZSBrbm93IHdoaWNoIG9uZSB0aGUgT1RHIHBvcnQg aXMgaXQncyBlYXN5IHRvIGNoZWNrIHdoZXRoZXIKPj4gaXQgaGFzIGEgVVNCMyBjb21wYW5pb24g cG9ydC4KPj4KPj4+IEFib3ZlIGlzIHBvc3NpYmxlLCBob3dldmVyIHBvcnRfZmFrZSBuZWVkIGlz IG11c3QgZm9yIFQyMTAgYW5kIG9ubHkKPj4+IGZvciBkZXZpY2UgbW9kZSBvcGVyYXRpb24gYW5k IG5vdCBmb3Igb3RoZXIgU09DIG9yIFVTQiBtb2RlLgo+Pj4gU28gc2hhbGwgaSBwbGFjZSBTT0Mg ZGF0YSh0ZWdyYTIxMF94dXNiX3BhZGN0bF9zb2MpIHRvIHJlYWQgaWYgcG9ydAo+Pj4gZmFrZSBp cyBuZWVkZWQgPwo+PiBZZWFoLCBzb21ldGhpbmcgbGlrZSAibmVlZHNfdXNiM19mb3Jfb3RnIiBz aG91bGQgZG8gdGhlIHRyaWNrLgo+Pgo+PiBTbyB0byBjb25maXJtIHdoZXRoZXIgSSB1bmRlcnN0 YW5kIHRoaXMgY29ycmVjdGx5OiBpZiB3ZSB3YW50IHRvIGRvIFVTQjIKPj4gYW5kIFVTQjMgZGV2 aWNlIG1vZGUsIHRoZW4gd2UnZCB1c3VhbGx5IGhhdmUgYSBVU0IyL1VTQjMgcG9ydCBjb21ibywg aW4KPj4gd2hpY2ggY2FzZSB3ZSB3b3VsZG4ndCBuZWVkIGEgZmFrZSBVU0IzIHBvcnQuIEJ1dCBp ZiB3ZSBoYXZlIGEgVVNCMiBvbmx5Cj4+IE9URyBwb3J0LCB0aGVuIHdlIG5lZWQgdG8gcHJvZ3Jh bSByZWdpc3RlcnMgZm9yIHRoZSBVU0IzIHBvcnQgaW4gb3JkZXIKPj4gdG8gbWFrZSBVU0IyIG9u bHkgT1RHIHdvcmssIGJ1dCBvbmx5IG9uIFRlZ3JhMjEwLiBXaXRoIFRlZ3JhMTg2IGFuZAo+PiBs YXRlciB3ZSBkb24ndCBuZWVkIHRoaXMgd29yayBhcm91bmQ/Cj4+Cj4+PiBJZiB5ZXMsIGFuZCBu byB1bi11c2VkIHBvcnQgYXZhaWxhYmxlLCB3aWxsIG1hcmsgY2FzZSBhcyB3YXJuaW5nKG5vdAo+ Pj4gZXJyb3IpIGFuZCBtYWtlIHByb2JlKHRlZ3JhX3h1c2JfcGFkY3RsX3Byb2JlKSBzdWNjZXNz IGlycmVzcGVjdGl2ZSBvZgo+Pj4gdGhpcy4gU2luY2UgcG9ydCBjYW4gYmUgb3RnIGJ1dCBjYW4g YmUgZGVzaWduZWQgdG8gdXNlIG9ubHkgZm9yIEhvc3QKPj4+IG1vZGUuCj4+IFllcywgc291bmRz IGdvb2QuIE9yIHBlcmhhcHMgd2UgY2FuIHVzZSB0aGUgbW9kZSBwcm9wZXJ0eSB0byBkZXRlcm1p bmUKPj4gd2hldGhlciBvciBub3QgdGhpcyBzaG91bGQgYmUgYSBmYXRhbCBlcnJvcj8gRm9yIGV4 YW1wbGUgaWYgd2UndmUgZ290IGFuCj4+IE9URyBwb3J0IGJ1dCBpdCBpcyBkZXNpZ25lZCB0byBi ZSB1c2VkIG9ubHkgaW4gaG9zdCBtb2RlLCB0aGVuIHdlIGNvdWxkCj4+IHJlcXVpcmUgdGhlIG1v ZGUgdG8gYmUgc2V0IHRvICJob3N0Ii4gSWYgaXQgaXMgc2V0IHRvICJwZXJpcGhlcmFsIiBvcgo+ PiAib3RnIiBhbmQgd2UgZG9uJ3QgZmluZCBhbiB1bi11c2VkIFVTQjMgcG9ydCB0byB1c2UgYXMg ZmFrZSwgaXQgY291bGQKPj4gc3RpbGwgYmUgYSBmYXRhbCBlcnJvciBzbyB0aGF0IHBlb3BsZSBj YW4gZml4IHRoZWlyIGRldmljZSB0cmVlLiBSaWdodD8KPj4KPj4+IEkgYW0gbm90IHN1cmUgaWYg YWJvdmUgY29tcGxpY2F0aW9uIGlzIGJldHRlciB0aGFuIGFuIGR0IGVudHJ5Lgo+PiBJIHVuZGVy c3RhbmQgdGhhdCB0aGlzIG1heSBzZWVtIGxpa2UgYSBsb3Qgb2YgY29tcGxpY2F0aW9uLCBidXQg dGhlcmUKPj4gYXJlIHR3byByZWFzb25zIHdoeSBJIHRoaW5rIGl0J3Mgd29ydGggaXQuIE9uIG9u ZSBoYW5kIHdlIGRvbid0IHdhbnQgdG8KPj4gYWRkIHJlZHVuZGFudCBpbmZvcm1hdGlvbiB0byBk ZXZpY2UgdHJlZS4gRXZlcnl0aGluZyB0aGF0IGNhbiBhbHJlYWR5IGJlCj4+IGRlcml2ZWQgZnJv bSB0aGUgY29tcGF0aWJsZSBzdHJpbmcgZG9lc24ndCBuZWVkIHRvIGJlIGV4cGxpY2l0bHkgYWRk ZWQKPj4gaW4gZGV2aWNlIHRyZWUgdmlhIGV4dHJhIHByb3BlcnRpZXMuIEluIHRoaXMgY2FzZSB3 ZSBrbm93IHRoYXQgVGVncmEyMTAKPj4gaGFzIHRoaXMgYnVnIGFuZCB3ZSBjYW4gaWRlbnRpZnkg dGhlIG5lZWQgZm9yIHRoZSB3b3JrYXJvdW5kIGJ5IGxvb2tpbmcKPj4gYXQgdGhlIGNvbXBhdGli bGUgc3RyaW5nLiBTaW1pbGFybHkgd2Uga25vdyBleGFjdGx5IHdoYXQgdG8gZG8gaW4gb3JkZXIK Pj4gdG8gd29yayBhcm91bmQgdGhlIHByb2JsZW0gKGkuZS4gZmluZCBhbiB1bnVzZWQgcG9ydCBh bmQgdXNlIGl0IGFzIHRoZQo+PiBmYWtlIGNvbXBhbmlvbiBwb3J0KS4KPj4KPj4gT24gdGhlIG90 aGVyIGhhbmQgSSB0aGluayB0aGF0IHRoaXMgbW92ZXMgdGhlIGNvbXBsZXhpdHkgd2hlcmUgaXQK Pj4gYmVsb25nczogaW4gdGhlIGRyaXZlci4gSWYgd2UgZG9jdW1lbnQgdGhpcyBiZWhhdmlvdXIg aW4gdGhlIGRldmljZQo+PiB0cmVlIGJpbmRpbmdzLCB3ZSBuZWVkIHRvIGJlIHZlcnkgZXhwbGlj aXQgYWJvdXQgd2hhdCB0aGlzIG1lYW5zIGFuZAo+PiB2ZXJ5IGNhcmVmdWwgYWJvdXQgaG93IHRv IHdvcmQgaXQgc28gYXMgbm90IHRvIGNvbmZ1c2UgcmVhZGVycy4gSXQncwo+PiBhbHNvIG5vdCBl bnRpcmVseSB0cml2aWFsIGZvciBkZXZpY2UgdHJlZSBhdXRob3JzIHRvIGNvbWUgdXAgd2l0aCB0 aGUKPj4gZmFrZSBwb3J0IGluZGV4LiBUaGV5IGhhdmUgdG8gY2FyZWZ1bGx5IGNoZWNrIHRoZSBk ZXNpZ24gdG8gc2VlIHdoaWNoCj4+IG9uZSBpcyB1bnVzZWQuIFRoZSBkcml2ZXIgY2FuIGRvIGEg bXVjaCBiZXR0ZXIgam9iIGF0IHRoYXQsIGFuZCB0aGVuCj4+IHdlIGRvbid0IGhhdmUgdG8gYnVy ZGVuIHRoZSBkZXZpY2UgdHJlZSBhdXRob3JzIHdpdGggdGhhdCB0YXNrLgo+Pgo+IFRoYW5rcyBm b3IgZGV0YWlscywgY29uc2lkZXJpbmcgdGhlIG5lZWQgZm9yIHRlZ3JhIDIxMCBvbmx5LCB3aWxs IHB1dAo+IGxvZ2ljIHRvIHVwZGF0ZSBwb3J0X2Zha2UgYXMgdGVncmEyMTAgc3BlY2lmaWMgY29k ZSBoYW5kbGluZyBkdXJpbmcgcG9ydAo+IGVuYWJsZSBBUEkKPgo+IC0gTmFnYXJqdW5hCj4+IFRo aWVycnkKPj4K