From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Stuebner Subject: Re: Boundary between pinctrl and peripheral settings Date: Mon, 22 May 2017 18:29:28 +0200 Message-ID: <2621764.2a2E3U2WOa@phil> References: <1719598.F3JUalFtig@phil> <5983290.MocaVmHgjo@phil> <97536e9f-7ad9-032b-d2dd-921f97464123@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <97536e9f-7ad9-032b-d2dd-921f97464123-TNX95d0MmH7DzftRWevZcw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+glpar-linux-rockchip=m.gmane.org-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org To: "David.Wu" , linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org Cc: Kever Yang , Doug Anderson List-Id: linux-rockchip.vger.kernel.org SGkgRGF2aWQsCgpbSSd2ZSBkcm9wcGVkIExpbnVzIFdhbGxlaWosIHNvIHdlIGRvbid0IHNwYW0g aGltIHdpdGggb3VyIGRpc2N1c3Npb25zIDotKSAuCiBJJ3ZlIGtlcHQgdGhlIGxpc3QgdGhvdWdo LCBzbyBwZW9wbGUgY2FuIHJlYWQgdXAgb24gaXQgaWYgbmVjZXNzYXJ5IF0KCkFtIE1vbnRhZywg MjIuIE1haSAyMDE3LCAyMTo1ODowMCBDRVNUIHNjaHJpZWIgRGF2aWQuV3U6Cj4g5ZyoIDIwMTcv NS8xOSAxNzoxMywgSGVpa28gU3R1ZWJuZXIg5YaZ6YGTOgo+ID4+IElmIGEgcGluLXJvdXRpbmcg Y29udGFpbnMgYSBmZXcgcGlucyBhcyBnbWFjLCBuZWVkIGFsbCB0aGUgcGlucyAocGluLAo+ID4+ IHBpbmZ1bmMpIHRvIGJlIGNvbmZpZ3VyZWQgY29ycmVjdGx5IGZyb20gRFQsIHRoZW4gdGhlIGNv cnJlc3BvbmRpbmcgR1JGCj4gPj4gc2V0dGluZyBpcyBjb25maWd1cmVkLgo+ID4+IElmIGNvbmZp Z3VyZWQgZ3JmLXNldHRpbmcgcGVyIHBpbiwgYXNzdW1pbmcgdGhhdCBvbmUgb2YgdGhlIHBpbidz Cj4gPj4gcGluZnVuYyBpcyB3cm9uZywgaXQgbWF5IGNhdXNlIHBpbi1yb3V0aW5nIG5vdCB0byBi ZSBlZmZlY3RpdmUgb3Igd3JvbmcuCj4gPiAKPiA+IEkgc3RpbGwgdGhpbmsgaXQgc2hvdWxkIGJl IGVub3VnaCB0byB3YXRjaCBmb3Igb25lIHBpbiBvZiBhIHNwZWNpZmMgZ3JvdXAKPiA+IHRvIGJl IHNldCB0byBpdHMgc3BlY2lhbCBwaW5tdXggZnVuY3Rpb24uIElmIHRoZSBwaW5tdXggc2V0dGlu ZyBpcyB3cm9uZwo+ID4gZm9yIHRoYXQgcGluIHRoZSBpcCBibG9jayB3b24ndCB3b3JrIGNvcnJl Y3RseSBhbnl3YXkgKGluZGVwZW5kZW50IG9mCj4gPiBpdHMgaW5uZXItc29jIHJvdXRpbmcpLgo+ ID4gCj4gPiBPdXIgcGluY3RybCBncm91cHMgYWxzbyBhcmUgZGVmaW5lZCBvbiBhIGdsb2JhbCBw ZXItc29jIGxldmVsCj4gPiAocmszMzk5LmR0c2kgZXRjKSBhbmQgdGh1cyBpZiB0aGV5IGFyZSBy ZWFsbHkgd3JvbmcsIGEgbG90IG9mIHBlb3BsZSB3aWxsCj4gPiBjb21wbGFpbiBhbnl3YXkgOy0p IC4KPiA+IAo+ID4gU28gZm9yIGV4YW1wbGUganVzdCB0YWtlCj4gPiB1YXJ0MmRiZ2Ffc2luLCB1 YXJ0MmRiZ2Jfc2luLCB1YXJ0MmRiZ2Nfc2luIG9uIHJrMzM5OQo+ID4gYXMgcGlucyB0byB3YXRj aCwgc29tZSB0aGluZyBsaWtlCj4gPiAKPiA+IHN0cnVjdCByazMzOTlfcGlucm91dGluZ1tdID0g ewo+ID4gCXsKPiA+IAkJLyogdWFydDJkYmdhICovCj4gPiAJCS5iYW5rID0gNCwKPiA+IAkJLnBp biA9IDgsCj4gPiAJCS5mdW5jID0gMiwKPiA+IAkJLnJvdXRlX29mZnNldCA9IDB4MGUyMWMsCj4g PiAJCS5yb3V0ZV92YWwgPSAoMyA8PCAoMTArMTYpKSwKPiA+IAl9LCB7Cj4gPiAJCS8qIHVhcnQy ZGJnYiAqLwo+ID4gCQkuYmFuayA9IDQsCj4gPiAJCS5waW4gPSAxNiwKPiA+IAkJLmZ1bmMgPSAy LAo+ID4gCQkucm91dGVfb2Zmc2V0ID0gMHgwZTIxYywKPiA+IAkJLnJvdXRlX3ZhbCA9ICgzIDw8 ICgxMCsxNikgfCAxIDw8IDEwKSwKPiA+IAl9LAo+ID4gLi4uCj4gPiB9Owo+ID4gCj4gPiBUaGF0 IHdheSB5b3UgY2FuIGp1c3QgaG9vayBpdCBpbnRvIHRoZSByb2NrY2hpcF9zZXRfbXV4IGZ1bmN0 aW9uIHNpbWlsYXIKPiA+IHRvIHRoZSByZWNhbGMgc3R1ZmYsIHdpdGhvdXQgdG8gbXVjaCB0cm91 YmxlLgo+ID4KPiBUaGUgZ21hY19tMV9zZWwgaXMgZGlmZmVyZW50LCBpdCBuZWVkIHRvIGNvbmZp Z3VyZSBib3RoIGJpdFsxMF0gYW5kIAo+IGJpdFsyXSB3aXRoIHZhbHVlOjEsIHVzZWQgYWZ0ZXIg b3B0aW1pemF0aW9uLiBUaGUgZ21hY19tMSBhZnRlciAKPiBvcHRpbWl6YXRpb24gbmVlZCB0byBj b25maWd1cmUgYWxsIHBpbnMgaW9tdXggb2YgZ21hY19tMSBhbmQgdHggcGlucyAKPiBpb211eCBv ZiBnbWFjX20wLiBUaGUgdHggcGlucyBpb211eCBvZiBnbWFjX20wIGlzIGFsc28gcmVxdWlyZWQs c28gaXQgaXMgCj4gY29uZmxpY3Qgb2YgZ21hY19tMSBhZnRlciBvcHRpbWl6YXRpb24uIEJlc2lk ZXMsIHdlIGRvbid0IG5lZWQgdG8gdXNlIAo+IG0xLCBiZWNhdXNlIG0xICdzIHNpZ25hbCBpcyBi YWQsIGRvbid0IHRoaW5rIGFib3V0IGl0LCBidXQKPiBnbWFjX20xIGFmdGVyIG9wdGltaXphdGlv biBpcyBvYmxpZ2F0b3J5LgoKSSdtIG5vdCBzdXJlIEkgdW5kZXJzdGFuZCB0aGUgcGFyYWdyYXBo IGFib3ZlLiBFc3BlY2lhbGx5IHdoYXQgaXMgdGhlCiJvcHRpbWl6YXRpb24iIHRoaW5nLgoKQnV0 IGlmIEkgdW5kZXJzdGFuZCB5b3UgY29ycmVjdGx5LCB0aGF0IHN0aWxsIGxlYXZlcyB1cyB3aXRo IG9ubHkgMiBzZXR0aW5ncy4KZ21hYy1tMCBhbmQgZ21hYy1tMS1vcHRpbWl6ZWQgKG9yIHdoYXRl dmVyIHdlIHdhbnQgdG8gY2FsbCBpdCkuCgpGb3IgZ21hYy1tMCBqdXN0IGhvb2sgaXQgb250byBt YWNfcnhkMCwgd2hpY2ggaXMgb25seSB1c2VkIG9uIG0wOwpqdXN0IHVzZSBhbnkgb2YgdGhlIGdt YWMtbTEgcGlucyBmb3IgdGhhdCBnbWFjLW0xLW9wdGltaXplZCBzdGF0ZTsKYW5kIGFzIHlvIHdy b3RlIGp1c3QgaWdub3JlIHRoZSBnbWFjLW0xIHN0YXRlLCBhcyBpdCBpcyBiYWQgYW55d2F5LgoK CkhlaWtvCgoKPiA+PiBTbyBpIHRoaW5rIHRoZSBzbWFsbGVzdCBjZWxsIGlzIGEgZ3JvdXAsIHdo aWNoIGNvbnRhaW5zIHRoZSBwaW5zIGZvciB0aGUKPiA+PiBwaW4tcm91dGluZy4KPiA+IAo+ID4g VGhvdWdoIHRoYXQgY3JlYXRlcyBtb3JlIEFCSSBiZXR3ZWVuIGtlcm5lbCBhbmQgZGV2aWNldHJl ZSAocGluZ3JvdXAKPiA+IG5hbWVzKSwgd2hpY2ggd2lsbCBtb3N0IGxpa2VseSBiaXRlIHVzIHNv bWUgdGltZSBpbiB0aGUgZnV0dXJlLiBBbHNvIEknZAo+ID4gbGlrZSB0byBrZWVwIHRoZXNlIGRl cGVuZGVuY2llcyBhcyBtaW5pbWFsIGFzIHBvc3NpYmxlLCBhcyBkZXBlbmRpbmcgb24KPiA+IGhv dyBtdWNoIG1vcmUgZnVubnkgaW52ZW50aW9ucyB3ZSBhY2N1bXVsYXRlLCB3ZSBtaWdodCB3YW50 IHRvIHJlc3RydWN0dXJlCj4gPiAob3Igc3BsaXQpIHRoZSBkcml2ZXIgYXQgc29tZSBsYXRlciBw b2ludCAtIHdpdGhvdXQgYnJlYWtpbmcgZGV2aWNldHJlZXMuCj4gPiAKPiA+IAo+ID4gSGVpa28K PiA+IAo+ID4gCj4gPj4g5ZyoIDIwMTcvNS8xOCAxNjo0OCwgSGVpa28gU3TDvGJuZXIg5YaZ6YGT Ogo+ID4+PiBIaSBLZXZlciwgRGF2aWQsCj4gPj4+Cj4gPj4+IEFtIERvbm5lcnN0YWcsIDE4LiBN YWkgMjAxNywgMTY6MjE6MDkgQ0VTVCBzY2hyaWViIEtldmVyIFlhbmc6Cj4gPj4+PiBIaSBIZWlr bywgTGludXMsCj4gPj4+PiAgICAgICBJcyB0aGVyZSBhbnkgbmV3cyB0byBoYW5kbGUgdGhpcyBr aW5kIG9mIElPTVVYPwo+ID4+Pgo+ID4+PiBJIHdhcyB0YWxraW5nIHdpdGggRGF2aWQgV3UgYWJv dXQgdGhhdCBhIHNob3J0IHdoaWxlIGFnbyBhcyB3ZWxsIDotKSAuCj4gPj4+Cj4gPj4+ICBGcm9t IHdoYXQgSSd2ZSBoZWFyZWQsIGluIHRoZSBmdXR1cmUgc29jcyBtYXkgYmUgYWJsZSB0byBzZWxl Y3QgdGhhdAo+ID4+PiByb3V0aW5nIHRoZW1zZWxmcyBiYXNlZCBvbiB0aGUgaW9tdXggYW5kIGhh dmluZyBoYWQgdGltZSB0byBwb25kZXIKPiA+Pj4gdGhlIHdob2xlIGlzc3VlIGZvciBzb21lIHRp bWUgbm93LCBJIGRvIGd1ZXNzIHNvbWUgc29ydCBvZiBsaXN0IHdvdWxkIGJlCj4gPj4+IHRoZSBs ZWFzdCBpbnRydXNpdmUgc29sdXRpb24uCj4gPj4+Cj4gPj4+IEl0IHNlZW1zIHdlJ3JlIHRhbGtp bmcgYWJvdXQgb25seSBhIGhhbmRmdWwgb2Ygc3VjaCByb3V0aW5ncyBwZXIgc29jLAo+ID4+PiBz byBJIGd1ZXNzIGhhdmluZyB0aGUgaW9tdXggc2V0dGluZyBjaGVjayBhIGxpc3QKPiA+Pj4KPiA+ Pj4gCShwaW4sIHBpbmZ1bmMpIC0+IGdyZi1zZXR0aW5nIGZvciB0aGUgcGluLXJvdXRpbmcKPiA+ Pj4KPiA+Pj4gcmVhbGx5IGlzIHRoZSBsZWFzdCBpbnRydXNpdmUgdGhpbmcgdG8gZG8gLSBhcyBp b211eCBzZXR0aW5ncyByZWFsbHkKPiA+Pj4gYXJlbid0IGNoYW5nZWQgdGhhdCBvZnRlbiBvbiBh IHJ1bm5pbmcgZGV2aWNlIGFuZCBhZGRpbmcgbW9yZQo+ID4+PiBzdHVmZiBvbiB0b3Agd291bGQg anVzdCBjb21wbGljYXRlIGV2ZXJ5dGhpbmcuCj4gPj4+Cj4gPj4+Cj4gPj4+IEhlaWtvCj4gPj4+ Cj4gPj4+Cj4gPj4+PiBUaGFua3MsCj4gPj4+PiAtIEtldmVyCj4gPj4+Pgo+ID4+Pj4gT24gMDgv MDUvMjAxNiAwNzozNiBBTSwgSGVpa28gU3TDvGJuZXIgd3JvdGU6Cj4gPj4+Pj4gSGkgTGludXMs Cj4gPj4+Pj4KPiA+Pj4+Pgo+ID4+Pj4+IG9uIHRoZSByazMzOTkgd2UgZm91bmQgYW4gaW50ZXJl c3RpbmcgbmV3IGZlYXR1cmUgYW5kIHdvdWxkIGxpa2UgdG8gZ2V0Cj4gPj4+Pj4gc29tZSBpbnB1 dCBmcm9tIHRoZSBwaW5jdHJsIGV4cGVydCA6LSkgLCBhcyBEb3VnIGFuZCBtZSBjdXJyZW50bHkg YXJlIG9mCj4gPj4+Pj4gZGlmZmVyaW5nIG9waW5pb25zIG9uIHdoZXJlIHNwZWNpZmljIGNvbnRy b2wgZWxlbWVudHMgYmVsb25nLgo+ID4+Pj4+Cj4gPj4+Pj4KPiA+Pj4+PiBJbiBhIG51dHNoZWxs IG9uIHRoZSByazMzOTkgc29tZSB0aGluZ3MgbGlrZSBvbmUgc3BlY2lmaWMgdWFydCBjYW4gdXNl Cj4gPj4+Pj4gbXVsdGlwbGUgcGlucyB0byBvdXRwdXQgZGF0YSwgYnV0IGNvbnRyb2wgb2YgdGhh dCBzZWVtcyB0byBiZSBzcGxpdC4gVGhlCj4gPj4+Pj4gYWN0dWFsIHBpbiBjb25maWcgaXMgaWRl bnRpY2FsIGZvciBhbGwgcGlucyAtIGVhY2ggbmVlZHMgdG8gYmUgY29uZmlndXJlZAo+ID4+Pj4+ IHRvIGZ1bmN0aW9uIDIsIHB1bGxzIHNldCBldGMuIFRoZW4gc29tZXdoZXJlIGJldHdlZW4gdGhl IHBpbiBpby1jZWxscyBhbmQKPiA+Pj4+PiB0aGUgdWFydCBpdCBzZWVtcyB0byBoYXZlIHNvbWUg c29ydCBvZiBzd2l0Y2ggdG8gZGVjaWRlIHRvIHdoaWNoIHBpbiB0bwo+ID4+Pj4+IGFjdHVhbGx5 IHJvdXRlIHRoZSBkYXRhLgo+ID4+Pj4+Cj4gPj4+Pj4KPiA+Pj4+PiArLS0tLS0tLSsgICAgKy0t LS0tLS0tKyAgLy0gR1BJTzRfQjEgKHBpbm11eCAyKQo+ID4+Pj4+Cj4gPj4+Pj4gfCB1YXJ0MiB8 IC0tIHwgc3dpdGNoIHwgLS0tIEdQSU80X0MxIChwaW5tdXggMikKPiA+Pj4+Pgo+ID4+Pj4+ICst LS0tLS0tKyAgICArLS0tLS0tLS0rICBcLSBHUElPNF9DNCAocGlubXV4IDIpCj4gPj4+Pj4gKHN3 aXRjaCBzZWxlY3RzIG9uZSBvZiB0aGUgMyBwaW5zIHRvIGFjdHVhbGx5IG91dHB1dCBkYXRhIHRv KQo+ID4+Pj4+Cj4gPj4+Pj4KPiA+Pj4+PiBTbyB0aGUgcXVlc3Rpb24gbm93IGlzLCBzaG91bGQg dGhlIHBpbmN0cmwgZHJpdmVyIGFsc28gZmxpcCB0aGF0IHN3aXRjaCB0bwo+ID4+Pj4+IHRoZSBj b3JyZWN0IHBvc2l0aW9uIGl0c2VsZiB3aGVuIHBpbi1mdW5jdGlvbiAyIG9mIHNheSBncGlvNF9i cSBnZXRzCj4gPj4+Pj4gc2VsZWN0ZWQgb3IgaXMgdGhhdCByb3V0aW5nIG91dHNpZGUgb2YgcGlu Y3RybCdzIHNjb3BlPwo+ID4+Pj4+Cj4gPj4+Pj4gLS0tLS0KPiA+Pj4+Pgo+ID4+Pj4+IEkgaG9w ZSB0byBoYXZlIHByZXNlbnRlZCB0aGUgY29yZSBpc3N1ZSBhYm92ZSBzb21ld2hhdCBuZXV0cmFs bHksIGJlbG93Cj4gPj4+Pj4gYXJlCj4gPj4+Pj4gbXkgcGVyc29uYWwgd29ycmllcyBhYm91dCBk b2luZyB0aGF0IGluIHBpbmN0cmwgOi0pIC4KPiA+Pj4+Pgo+ID4+Pj4+Cj4gPj4+Pj4gQXBhcnQg ZnJvbSBpdCBmZWVsaW5nICJib2x0ZWQtb24iIHRvIG1lLCBJIGhhdmUgdHdvIG1haW4gd29ycmll cyB3aXRoIHRoYXQKPiA+Pj4+PiBhcHByb2FjaDoKPiA+Pj4+PiAoMSkgUmlnaHQgbm93IHRoZSB1 bnVzZWQgcGlucyBhcmUgcmVhbGx5IHVudXNlZCBvbiB0aGUgc2FtZSBpb211eCwgc28gd2hlbgo+ ID4+Pj4+IGZsaXBwaW5nIHRoZSBzd2l0Y2ggaXQgZXNzZW50aWFsbHkgZG9lcwo+ID4+Pj4+Cj4g Pj4+Pj4gICAgdWFydC1zb3V0ICAgIHVudXNlZAo+ID4+Pj4+Cj4gPj4+Pj4gICAgIHwoaW9tdXgy KSAgICB8KGlvbXV4MikKPiA+Pj4+Pgo+ID4+Pj4+ICstLS0tLS0tLS0tKyArLS0tLS0tLS0tLSsK PiA+Pj4+Pgo+ID4+Pj4+IHwgZ3BpbzRfYjAgfCB8IGdwaW80X2MwIHwKPiA+Pj4+Pgo+ID4+Pj4+ ICstLS0tLS0tLS0tKyArLS0tLS0tLS0tLSsKPiA+Pj4+Pgo+ID4+Pj4+IGdvaW5nIHRvCj4gPj4+ Pj4KPiA+Pj4+PiAgICB1bnVzZWQgICAgICAgdWFydC1zb3V0Cj4gPj4+Pj4KPiA+Pj4+PiAgICAg fChpb211eDIpICAgIHwoaW9tdXgyKQo+ID4+Pj4+Cj4gPj4+Pj4gKy0tLS0tLS0tLS0rICstLS0t LS0tLS0tKwo+ID4+Pj4+Cj4gPj4+Pj4gfCBncGlvNF9iMCB8IHwgZ3BpbzRfYzAgfAo+ID4+Pj4+ Cj4gPj4+Pj4gKy0tLS0tLS0tLS0rICstLS0tLS0tLS0tKwo+ID4+Pj4+Cj4gPj4+Pj4gYnV0IG5v dGhpbmcga2VlcHMgZGVzaWduZXJzIGZyb20gZG9pbmcKPiA+Pj4+Pgo+ID4+Pj4+ICAgIHVhcnQt c291dCAgICBzcGVjaWFsMQo+ID4+Pj4+Cj4gPj4+Pj4gICAgIHwoaW9tdXgyKSAgICB8KGlvbXV4 MikKPiA+Pj4+Pgo+ID4+Pj4+ICstLS0tLS0tLS0tKyArLS0tLS0tLS0tLSsKPiA+Pj4+Pgo+ID4+ Pj4+IHwgZ3BpbzRfYjAgfCB8IGdwaW80X2MwIHwKPiA+Pj4+Pgo+ID4+Pj4+ICstLS0tLS0tLS0t KyArLS0tLS0tLS0tLSsKPiA+Pj4+Pgo+ID4+Pj4+IGdvaW5nIHRvCj4gPj4+Pj4KPiA+Pj4+PiAg ICBzcGVjaWFsMiAgICAgdWFydC1zb3V0Cj4gPj4+Pj4KPiA+Pj4+PiAgICAgfChpb211eDIpICAg IHwoaW9tdXgyKQo+ID4+Pj4+Cj4gPj4+Pj4gKy0tLS0tLS0tLS0rICstLS0tLS0tLS0tKwo+ID4+ Pj4+Cj4gPj4+Pj4gfCBncGlvNF9iMCB8IHwgZ3BpbzRfYzAgfAo+ID4+Pj4+Cj4gPj4+Pj4gKy0t LS0tLS0tLS0rICstLS0tLS0tLS0tKwo+ID4+Pj4+Cj4gPj4+Pj4gc29tZXdoZXJlIGRvd24gdGhl IHJvYWQsIHNvIHJlbHlpbmcgb24gZm9sbG93aW5nIHRoZSBzZWxlY3RlZCBpb211eCBmZWVscwo+ ID4+Pj4+IG5vdCBmdXR1cmUgcHJvb2YuCj4gPj4+Pj4KPiA+Pj4+PiAoMikgTG9va2luZyBhdCBb MF0gd2UgYWxyZWFkeSBoYXZlIGEgc2ltaWxhciBjYXNlLCB3aGVyZSB3ZSBjb25maWd1cmUgdGhl Cj4gPj4+Pj4gcGlucyBmb3IgcmdtaWkgYnV0IHN0aWxsIHRlbGwgdGhlIGdtYWMgY29udHJvbGxl ciB0aGF0IGl0IGlzIHN1cHBvc2VkIHRvCj4gPj4+Pj4gZG8KPiA+Pj4+PiByZ21paSBpbnN0ZWFk IG9mIHJtaWkuCj4gPj4+Pj4KPiA+Pj4+PiBIZXJlIHRoZSBwaW5tdXggaXMgdGhlIHNhbWUgZm9y IGFsbCBwaW5zLCBybWlpIGp1c3QgdXNlcyBsZXNzIHBpbnMgd2hlbgo+ID4+Pj4+IGNvbXBhcmVk IHRvIHJnbWlpLCBzbyBiaW5kaW5nIHRoYXQgdG8gdGhlIHBpbm11eCBpc24ndCBldmVuIHBvc3Np YmxlLgo+ID4+Pj4+Cj4gPj4+Pj4gQW5kIGRvaW5nIGl0IG9uZSB3YXkgaGVyZSBhbmQgYW5vdGhl ciB3YXkgZm9yIHRoZSBzd2l0Y2ggZmVlbHMgdmVyeQo+ID4+Pj4+IHN0cmFuZ2UuCj4gPj4+Pj4K PiA+Pj4+Pgo+ID4+Pj4+IEkgaG9wZSB0aGlzIG92ZXJseSBsb25nIG1haWwgd2FzIG5vdCB0byBj b25mdXNpbmcgYW5kIGhvcGUgZm9yIHNvbWUgd29yZHMKPiA+Pj4+PiBvZiB3aXNkb20gOy0pCj4g Pj4+Pj4KPiA+Pj4+Pgo+ID4+Pj4+IEJpZyB0aGFua3MKPiA+Pj4+PiBIZWlrbwo+ID4+Pj4+Cj4g Pj4+Pj4KPiA+Pj4+PiBbMF0KPiA+Pj4+PiBodHRwczovL2dpdC5rZXJuZWwub3JnL2NnaXQvbGlu dXgva2VybmVsL2dpdC90b3J2YWxkcy9saW51eC5naXQvdHJlZS9hcmNoLwo+ID4+Pj4+IGFybS9i b290L2R0cy9yazMyODgtbWlxaS5kdHMjbjEzOQo+ID4+Pj4+Cj4gPj4+Pj4KPiA+Pj4+PiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4+Pj4+IExpbnV4 LXJvY2tjaGlwIG1haWxpbmcgbGlzdAo+ID4+Pj4+IExpbnV4LXJvY2tjaGlwQGxpc3RzLmluZnJh ZGVhZC5vcmcKPiA+Pj4+PiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2xpbnV4LXJvY2tjaGlwCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4KPiA+ IAo+ID4gCj4gPiAKPiA+IAo+ID4gCj4gCj4gCj4gCgoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51 eC1yb2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtcm9ja2NoaXAK