Re: dependency hell OR it should not be this hard
guy keren <[email protected]> Mon, 12 Aug 2019 09:54:50 +0300
| Newsgroups | gmane.linux.region.israel |
|---|---|
| Message-ID | <[email protected]> |
CnRoaXMgaXMgc29mdHdhcmUuIHNvZnR3YXJlIGhhcyBidWdzLgoKc29mdHdhcmUgcGFja2FnaW5n IG9ubHkgc2VlbXMgc2ltcGxlIC0gYnV0IGluIGZhY3QgaXMgcmVhbGx5IG5vdCwgCmJlY2F1c2Ug b2YgdGhlIGV4cG9uZW50aWFsIGFtb3VudCBvZiBjb21iaW5hdGlvbnMgdGhhdCBzaW1wbHkgY2Fu J3QgYmUgCmV4aGF1c3RpdmVseSB0ZXN0ZWQsIGFuZCBiZWNhdXNlIGl0IGRlcGVuZHMgb24gY29k ZSB3cml0dGVuIGJ5IHRob3VzYW5kcyAKb2YgdW5yZWxhdGVkIGRldmVsb3BlcnMsIHRoYXQgd29y ayBvbiB0aGVpciBvd24gc29mdHdhcmUsIG5vdCBvbiB0aGUgCiJsaW51eCBkaXNyaWJ1dGlvbiIu CgpzbyBvY2Nhc2lvbmFsbHkgeW91IHdpbGwgaGF2ZSBwcm9ibGVtcyB0aGF0IHlvdSdsbCBuZWVk IHRvIGZpeC4gaG93IApvZnRlbj8gaXQncyByZWFsbHkgYSBtYXR0ZXIgb2YgbHVjaywgZmFjdG9y ZWQgYnkgdGhlIGFtb3VudCBvZiAKY29uZmlndXJhdGlvbiBjaGFuZ2VzIHlvdSBkbyBvbiB5b3Vy IHN5c3RlbS4KCi0tZ3V5CgoKT24gMTIvMDgvMjAxOSA5OjQ1IEFNLCBKZXJlbXkgSG95bGFuZCB3 cm90ZToKPiBKdXN0IHRvIGNvbW1lbnQgb24geW91ciBvcmlnaW5hbCBwb3N0Lgo+IERvbid0IHRo aW5rIGZvciBvbmUgbW9tZW50IHRoYXQgdGhpbmdzIGFyZSBhbnkgYmV0dGVyIGluIFdpbmRvd3Mu Cj4gVGhlIGRpZmZlcmVuY2Ugd2l0aCBBUFQgaXNzdWVzIGlzIHRoYXQgdGhlcmUgL2lzL8Kgc29t ZXRoaW5nIHlvdSBjYW4gZG8gCj4gYWJvdXQgaXQsIGFuZCB1bHRpbWF0ZWx5LCB0aGUgcHJvYmxl bSBpcyByZXNvbHZhYmxlIGJ5IHlvdS4KPiBJbiBXaW5kb3dzIHRoaW5ncyBsb29rIGEgbG90IHBy ZXR0aWVyLCBidXQgSSBoYXZlIG9mdGVuIGhhZCBhbiBpbnN0YWxsZXIgCj4gZmFpbCB3aXRoIG5v IHJlYXNvbiBnaXZlbiBhbmQgdGhlbiBhdXRvbWF0aWNhbGx5IHJvbGwtYmFjayB3aXRoIG5vIHJl Y291cnNlLgo+IFRoZSBzb2x1dGlvbnMgdGhlcmUgb2Z0ZW4gcmVxdWlyZWQgbWFudWFsIGVkaXRp bmcgb2YgdGhlIHJlZ2lzdHJ5Lgo+IEkgcHJlZmVyIEFQVCBhbnkgZGF5Lgo+IAo+IE9uIE1vbiwg MTIgQXVnIDIwMTkgYXQgMDg6MTgsIFNobG9tbyBTb2xvbW9uIDxzaGxvbW8uc29sb21vbkBnbWFp bC5jb20gCj4gPG1haWx0bzpzaGxvbW8uc29sb21vbkBnbWFpbC5jb20+PiB3cm90ZToKPiAKPiAg ICAgVGhhbmtzIGZvciB5b3VyIFZFUlkgZGV0YWlsZWQgcmVwbHkuIFNvbWUgb2YgaXQgd2FzICJv dmVyIG15IGhlYWQiLCBidXQKPiAgICAgcmVsZXZhbnQgYW5kIHRydWUgLSBhbHRob3VnaCBJIHBl cnNvbmFsbHkgbGlrZSBhbmQgdXNlIEtERSBkZXNwaXRlIGl0Cj4gICAgIGJlaW5nIHF1aXRlIGJs b2F0ZWQgZm9yIG1hbnkgeWVhcnMgbm93Lgo+IAo+ICAgICBBcyBhbiBhc2lkZSAtIEkgZ290IHJp ZCBvZiBLTWFpbCwgQWtvbmFkaSBhbmQgYWxsIHRoZWlyICJmcmllbmRzIiB5ZWFycwo+ICAgICBh Z28uIEl0J3MgaGFyZCB0byBiZWxpZXZlIHRoYXQgYW4gZW1haWwgcHJvZ3JhbSBoYXMgYWJvdXQg ODAKPiAgICAgZGVwZW5kZW5jaWVzIGFuZCAic3VnZ2VzdHMiIGFub3RoZXIgMjAgcGFja2FnZXMh ISEKPiAKPiAgICAgQXMgSSB3cm90ZSwgSSBpbnRlbnRpb25hbGx5IGRpZCBub3QgaW5jbHVkZSB0 b28gbWFueSBkZXRhaWxzIGFib3V0IHRoZQo+ICAgICBwcm9ibGVtIHNpbmNlIEkgd2FzIG5vdCBy ZWFsbHkgbG9va2luZyBmb3IgYSBzb2x1dGlvbi4KPiAKPiAgICAgVGhlIHNob3J0IHZlcnNpb24g LSB0aGlzIHNlZW1lZCB0byBiZSBjYXVzZWQgYnkgYSBicm9rZW4gZGVwZW5kZW5jeSBhbmQKPiAg ICAgbmVpdGhlciBhcHQtZ2V0IG9yIGRwa2cgd2VyZSBhYmxlIHRvIHNvbHZlIHRoaXMgdW50aWwg SSBtYW51YWxseQo+ICAgICBkZWxldGVkIGEgZmV3IHBvc3QtaW5zdGFsbCBzY3JpcHRzLiBTbyB0 aGUgImJsYW1lIiBzaG91bGQgcHJvYmFibHkgZmFsbAo+ICAgICBvbiB0aGUgd2F5IGFwdC1nZXQg YW5kIGRwa2cgaGFuZGxlIGRlcGVuZGVuY2llcyBhbmQvb3Igc3VjaCBzY3JpcHRzLAo+ICAgICBh bmQgbm90IHNvIG11Y2ggb24gdGhlIEt1YnVudHUgbWFpbnRhaW5lcnMuCj4gCj4gICAgIEFsdGhv dWdoIEkgZGlkIHNhdmUgdGhlIHJlbGV2YW50IGFwdCBhbmQgZHBrZyBsb2dzLCBJIGRvbid0IHRo aW5rCj4gICAgIHRoYXQgY29udGFjdGluZyB0aGUgS3VidW50dSBtYWludGFpbmVycyB3aWxsIGhl bHAgYmVjYXVzZSB0aGV5IHdpbGwKPiAgICAgcHJvYmFibHkgImJsYW1lIiB0aGUgc29mdHdhcmUg ZGV2ZWxvcGVycyB3aG8gcGFja2FnZWQgdGhlIG1vbm9kZXZlbG9wCj4gICAgIElERSAoYW5kIHBy b3ZpZGVkIHRoZXJlIG93biBQUEEpIC0gd2hpY2ggbmV2ZXIgd29ya2VkIGZvciBtZSBpbiB0aGUK PiAgICAgZmlyc3QgcGxhY2Ugc28gSSBwcm9iYWJseSBzaG91bGQgaGF2ZSB1bmluc3RhbGxlZCBp dCBtb250aHMgYWdvIDotKS4KPiAKPiAKPiAKPiAgICAgT24gU3VuLCAxMSBBdWcgMjAxOSAyMTox NzozOSAtMDQwMAo+ICAgICBTdGV2ZSBMaXR0IDxzbGl0dEB0cm91Ymxlc2hvb3RlcnMuY29tCj4g ICAgIDxtYWlsdG86c2xpdHRAdHJvdWJsZXNob290ZXJzLmNvbT4+IHdyb3RlOgo+IAo+ICAgICAg PiBPbiBTdW4sIDExIEF1ZyAyMDE5IDA5OjA1OjI0ICswMzAwCj4gICAgICA+IFNobG9tbyBTb2xv bW9uIDxzaGxvbW8uc29sb21vbkBnbWFpbC5jb20KPiAgICAgPG1haWx0bzpzaGxvbW8uc29sb21v bkBnbWFpbC5jb20+PiB3cm90ZToKPiAgICAgID4KPiAgICAgID4gPiBMZXQgbWUgc3RhcnQgYnkg c2F5aW5nIHRoYXQgSSdtIG5vdCBsb29raW5nIGZvciBhIHNvbHV0aW9uIC0gSQo+ICAgICAgPiA+ IHNvbHZlZCBteSBwcm9ibGVtLiBJJ20ganVzdCBhbmdyeSBhbmQgbGV0dGluZyBvZmYgc29tZSBz dGVhbS4KPiAgICAgID4KPiAgICAgID4gW3NuaXAgc3VjY2Vzc2Z1bCBhdHRlbXB0cyB1c2luZyBh IH4xMCBzdGVwIGFwdC9kcGtnIHdpdGNoJ3MgYnJld10KPiAgICAgID4KPiAgICAgID4gSSBmZWVs IHlvdXIgcGFpbi4gUHJvYmFibHkgd2UgYWxsIGRvLgo+ICAgICAgPgo+ICAgICAgPiBBbmQgaXQn cyBsaWtlbHkgdGhlIGJldHRlciBwZW9wbGUgdG8gbGV0IG9mZiBzdGVhbSBhdCB3b3VsZCBiZToK PiAgICAgID4KPiAgICAgID4gMSkgVGhlIG1haW50YWluZXJzIG9mIHlvdXIgZGlzdHJvCj4gICAg ICA+Cj4gICAgICA+IDIpIFRoZSBtYWludGFpbmVycyBvZiB5b3VyICJEZXNrdG9wIEVudmlyb25t ZW50IiwgaWYgYW55Cj4gICAgICA+Cj4gICAgICA+IDMpIFRoZSBhdXRob3JzIG9mIHRoZSBzb2Z0 d2FyZSBjb25jZXJuZWQKPiAgICAgID4KPiAgICAgID4KPiAgICAgID4gRElTVFJPOgo+ICAgICAg Pgo+ICAgICAgPiBZb3VyIGNvbXBsYWludCBpc24ndCB2ZXJ5IGRldGFpbGVkLCBidXQgdGhlIGZh Y3QgdGhhdCB5b3UgbmVlZGVkIGFwdAo+ICAgICAgPiB0byBmaXggaXQgc3VnZ2VzdHMgeW91J3Jl IHVzaW5nIGEgRGViaWFuIGRlcml2ZWQgZGlzdHJvLiBNb3N0IERlYmlhbgo+ICAgICAgPiBleHRl bnNpb24gZGlzdHJvcywgc3VjaCBhcyBVYnVudHUsIE1pbnQgYW5kIEtub3BwaXgsIGFkZAo+ICAg ICAgPiBoeXBlcmNvbXBsZXhpdHkgaW4gb3JkZXIgdG8gbWFrZSB0aGVtIG1vcmUgbWFnaWNhbGx5 ICJ3ZSBkbyBpdCBhbGwKPiAgICAgID4gZm9yIHlvdSIgYW5kICJ1c2VyIGZyaWVuZGx5Iiwgb3Ig anVzdCB0byBtYWtlIHRoaW5ncyBsb29rIHByZXR0eS4KPiAgICAgID4KPiAgICAgID4gRGViaWFu IGl0c2VsZiwgb25jZSBhIHNpbXBsaXN0aWMgZGlzdHJvLCBoYXMgYmVlbiBzbG93bHkKPiAgICAg Y29tcGxleGlmeWluZwo+ICAgICAgPiBpdHNlbGYsIGZpcnN0IGJ5IGRlZmF1bHRpbmcgdG8gc2Vs ZWN0aW5nIG9mIHRoYXQgYmFsbCBvZgo+ICAgICAgPiBjb25mdXNpb24gR25vbWUzLCB3aGljaCBp dHNlbGYgaGFzIGJlZW4gY29tcGxleGlmeWluZyBhdCBhIHJlbWFya2FibGUKPiAgICAgID4gcmF0 ZSwgYW5kIHRoZW4gYnkgcGxlZGdpbmcgYWxsZWdpYW5jZSB0byBzeXN0ZW1kOiBUaGUgdWx0aW1h dGUKPiAgICAgYmFsbCBvZgo+ICAgICAgPiBjb25mdXNpb24uCj4gICAgICA+Cj4gICAgICA+IEFi b3V0IHRoZSBvbmx5IGFwdCBwYWNrYWdlZCBkaXN0cm8gSSBjb3VsZCByZWNvbW1lbmQgdG9kYXks IGZyb20gYQo+ICAgICAgPiBkZXBlbmRlbmN5LXNhbml0eSBwb2ludCBvZiB2aWV3LCB3b3VsZCBi ZSBEZXZ1YW4sIHdoaWNoIHJlamVjdGVkCj4gICAgICA+IGJvdGggR25vbWUzIGFuZCBzeXN0ZW1k Lgo+ICAgICAgPgo+ICAgICAgPiBJIGZpbmQgaXQgYW11c2luZyB0aGF0IERlYmlhbidzIHNvbHV0 aW9uIHRvIHN1YnN0aXR1dGluZyBhCj4gICAgIG5vbi1zeXN0ZW1kCj4gICAgICA+IGluaXQgc3lz dGVtIGludm9sdmVzIGEgbWFueS1zdGVwIHJhaW5kYW5jZSB3aGVyZSB5b3UgcGluIHRoaXMgcGFj a2FnZQo+ICAgICAgPiBhbmQgaG9sZCBiYWNrIHRoYXQgcGFja2FnZS4KPiAgICAgID4KPiAgICAg ID4gT2YgY291cnNlLCBSZWRoYXQgYW5kIFJlZGhhdC1kZXJpdmVkIGRpc3Ryb3MgYXJlIHdvcnNl Lgo+ICAgICAgPgo+ICAgICAgPiBUZWxsIHlvdXIgZGlzdHJvIG1haW50YWluZXJzIHRvIHF1aXQg bWFraW5nIHBhY2thZ2UgcmVjb21tZW5kcyBpbnRvCj4gICAgICA+IGhhcmQgcmVxdWlyZW1lbnRz LCBhbmQgdG8gZmluZCBiZXR0ZXIgc29sdXRpb25zIHRoYW4gc2VjcmV0IGFwdAo+ICAgICAgPiBt ZWV0aW5ncyB3aXRoIHNlY3JldCBkcGtnIGhhbmRzaGFrZXMsIG9yIGVsc2UgY29uc2lkZXIgbm90 IHBhY2thZ2luZwo+ICAgICAgPiBpdCBhdCBhbGwuIFRoZXJlIGFyZSB1c3VhbGx5IHN1YnN0aXR1 dGVzIGFuZCBlcXVpdmFsZW50cy4KPiAgICAgID4KPiAgICAgID4KPiAgICAgID4gREVTS1RPUCBF TlZJUk9OTUVOVFM6Cj4gICAgICA+Cj4gICAgICA+IERlc2t0b3AgZW52aXJvbm1lbnRzLCB3aGlj aCBiaW5kIGEgd2luZG93IG1hbmFnZXIgYW5kIGEgYnVuY2ggb2YKPiAgICAgID4gYXBwbGljYXRp b25zIHRvZ2V0aGVyLCBpbmNsdWRpbmcgYWxsIHNvcnRzIG9mIGludGVyZGVwZW5kZW5jaWVzIGFu ZAo+ICAgICAgPiBwcm9taXNjdW91cyBjb21tdW5pY2F0aW9ucyBpbnNpZGUgYW5kIG91dHNpZGUg b2YgZGJ1cywgd2VyZSBvYnZpb3VzbHkKPiAgICAgID4gYSBiYWQgaWRlYSBmcm9tIHRoZSBiZWdp bm5pbmcsIGZvciBwZW9wbGUgd2hvIHdhbnQgdG8gY29udHJvbCB0aGVpcgo+ICAgICAgPiBjb21w dXRlcnMgcmF0aGVyIHRoYW4gdGhlIG90aGVyIHdheSBhcm91bmQuCj4gICAgICA+Cj4gICAgICA+ IElmIHlvdSB1c2UgYSBkZXNrdG9wIGVudmlyb25tZW50LCB3cml0ZSB0byB0aGVtIGFuZCB0ZWxs IHRoZW0gdG8KPiAgICAgID4gcmVkdWNlIHByb21pc2N1b3VzIGNvbW11bmljYXRpb24gYW5kIGRl cGVuZGVuY2llcy4gVGhleSdsbCBsYXVnaCBhdAo+ICAgICAgPiB5b3UsIG9mIGNvdXJzZTogVGhl aXIgcHVycG9zZSBvbiB0aGlzIGVhcnRoIGlzIHRvIGNyZWF0ZSBvYnNjZW5lbHkKPiAgICAgID4g aW50ZXJkZXBlbmRlbnQgYmxhY2sgYm94ZXMuCj4gICAgICA+Cj4gICAgICA+IFlvdSBjYW4gYXZv aWQgYSBsb3Qgb2YgdGhpcyBieSBnb2luZyBiYWNrIHRvIGEgd2luZG93IG1hbmFnZXIgYW5kCj4g ICAgICA+IHNlbGVjdGluZyB5b3VyIGFwcGxpY2F0aW9ucyBhLWxhLWNhcnRlLCB0cnlpbmcgbWln aHRpbHkgbm90IHRvCj4gICAgIGluY2x1ZGUKPiAgICAgID4gZGVza3RvcCBlbnZpcm9ubWVudCBh cHBzLiBJZiBlbm91Z2ggcGVvcGxlIHdlcmUgdG8gZG8gdGhpcyAobm90IHZlcnkKPiAgICAgID4g bGlrZWx5LCBtb3N0IHBlb3BsZSBhcmUgd2VkZGVkIHRvIHRoZWlyICJ3ZSBkbyBpdCBhbGwgZm9y IHlvdSIKPiAgICAgID4gZW52aXJvbm1lbnRzKSwgdGhlICJkZXNrdG9wIGVudmlyb25tZW50cyIg bWlnaHQgY2F0Y2ggb24gYW5kIHB1dCBtb3JlCj4gICAgICA+IG9mIGEgcHJpb3JpdHkgb24gbW9k dWxhcml0eSBhbmQgdGhpbiBpbnRlcmZhY2VzIChvciBubyBpbnRlcmZhY2VzCj4gICAgICA+IHdo ZXJlIG5vdCBuZWVkZWQpLgo+ICAgICAgPgo+ICAgICAgPiBJIGtpY2tlZCBLREUgYW5kIGV2ZXJ5 IEtERSBhcHAgYW5kIGxpYnJhcnkgb2ZmIG15IGNvbXB1dGVyIGluCj4gICAgICA+IDIwMTItMjAx MywgYW5kIGxpdmVkIHRvIHRlbGwgYWJvdXQgaXQuIEkndmUgbmV2ZXIgdXNlZCBHbm9tZTMsIGFu ZAo+ICAgICAgPiBzbG93bHkgYnV0IHN1cmVseSBJJ3ZlIGJlZW4ga2lja2luZyBpdHMgYXBwcyBh bmQgbGlicmFyaWVzIG9mZiBteQo+ICAgICAgPiBjb21wdXRlci4gTm93IEkgYm9zcyBteSBjb21w dXRlciBhcm91bmQsIG5vdCB0aGUgb3RoZXIgd2F5IGFyb3VuZC4KPiAgICAgID4KPiAgICAgID4K PiAgICAgID4gVEhFIFNPRlRXQVJFIEFVVEhPUlM6Cj4gICAgICA+Cj4gICAgICA+IFRydWUgc3Rv cnkuIFdoZW4gdXNpbmcgUHl0aG9uIHdyaXRpbmcgYSBwaWVjZSBvZiBmcmVlIHNvZnR3YXJlCj4g ICAgICA+IGludGVuZGVkIHRvIGJlIHVzZWQgYnkgb3RoZXJzLCBJIG5lZWRlZCBvbmUgbWlub3Ig YnV0IG5vdCBvYnZpb3VzIGhvdwo+ICAgICAgPiB0byBjb2RlIGZ1bmN0aW9uYWxpdHkuIFNvIEkg YXNrZWQgaG93IHRvIGNvZGUgaXQgb24gdGhlIFB5dGhvbiBJUkMKPiAgICAgID4gY2hhbm5lbC4g Tm90IG9uZSBhbnN3ZXIsIGJ1dCB0aHJlZSBvciBmb3VyIHBlb3BsZSB0b2xkIG1lIHRvIHVzZSBz b21lCj4gICAgICA+IGdpbm9ybW91cyBsaWJyYXJ5LCBpdHNlbGYgaGF2aW5nIGxvdHMgb2YgZGVw ZW5kZW5jaWVzLCB0aGF0IHdhcyBub3QKPiAgICAgID4gcGFydCBvZiB0aGUgc3RhbmRhcmQgUHl0 aG9uIGRpc3RyaWJ1dGlvbi4KPiAgICAgID4KPiAgICAgID4gSSBleHBsYWluZWQgdGhhdCBJIGRp ZG4ndCBuZWVkIGFsbCB0aGF0IHN0dWZmLCBJIGp1c3QgbmVlZGVkIHRoaXMgb25lCj4gICAgICA+ IGZ1bmN0aW9uYWxpdHkuIEkgZGlkbid0IHdhbnQgbXkgdXNlcnMgdG8gaGF2ZSB0byBpbnRlZ3Jh dGUgdGhpcwo+ICAgICAgPiBsaWJyYXJ5IGludG8gdGhlaXIgc3lzdGVtcy4gIk5vIHByb2JsZW0i LCBvbmUgb2YgdGhlIElSQyBkZW5pemVucwo+ICAgICAgPiBwcm9jbGFpbWVkLCAidGhhdCdzIHdo YXQgdGhlIFB5dGhvbiA8d2hhdGV2ZXI+IGlzIGZvcjogWW91IGNhbiBidWlsZAo+ICAgICAgPiB5 b3VyIG93biBQeXRob24gaW50ZXJwcmV0ZXIgZm9yIHlvdXIgb25lIGFwcGxpY2F0aW9uLCBhbmQg c2hpcCB0aGUKPiAgICAgID4gaW50ZXJwcmV0ZXIgYWxvbmcgd2l0aCB0aGUgYXBwIi4gTG9vayBh dCB5b3VyIGNvbXB1dGVyJ3MgY2xvY2s6IFRoaXMKPiAgICAgID4gaXMgbm90IGFuIEFwcmlsIEZv b2xzIGpva2UsIHRoaXMgaGFwcGVuZWQuCj4gICAgICA+Cj4gICAgICA+IElmIGNvdXJzZSBJIHNh aWQgIm5vIiwgYW5kIHRoZW4gdGhlIHJlYWwgYWJ1c2UgaGFwcGVuZWQsIHdpdGggdGhlCj4gICAg ICA+IHVzdWFsICJkb24ndCByZWludmVudCB0aGUgd2hlZWwiIGFuZCAic2NhcmVkIHRvIGxlYXJu IG5ldyB0aGluZ3MiIGFuZAo+ICAgICAgPiBhIG5ldyBjcmVhdGl2ZSBkaXNzOiAiUmVhbCBwcm9n cmFtbWVycyB0cnkgbmV3IHBhY2thZ2VzIGp1c3QgdG8gZ2V0Cj4gICAgICA+IGZhbWlsaWFyIHdp dGggdGhlbSwgaXQncyBhIHJlYWwgb3Bwb3J0dW5pdHkhIgo+ICAgICAgPgo+ICAgICAgPiBVbmZv cnR1bmF0ZWx5LCB0aGVzZSBndXlzIHdlcmVuJ3QgdW51c3VhbC4gV2F5IHRvbyBtYW55IHByb2dy YW1tZXJzLAo+ICAgICAgPiBpbiB0aGUgbmFtZSBvZiBhdm9pZGluZyByZWludmVudGluZyB0aGUg d2hlZWwsIGludGVncmF0ZSBzb21lYm9keQo+ICAgICAgPiBlbHNlJ3Mgd2hlZWwsIHdoZW4gYWxs IHRoZXkgbmVlZGVkIHdhcyBhbiBlYXNpbHkgYXZhaWxhYmxlIHNpbmdsZQo+ICAgICAgPiBzcG9r ZS4gWW91IGtub3cgd2hvIHN1ZmZlcnM/IFRoZSBkaXN0cm8gbWFpbnRhaW5lcnMgYW5kIHRoZSB1 c2Vycy4KPiAgICAgID4KPiAgICAgID4gQWxsIHRvbyBtYW55IGRldmVsb3BlcnMgcHV0IGFic29s dXRlbHkgemVybyBwcmlvcml0eSBvbiBzaW1wbGljaXR5Lgo+ICAgICAgPiBUaGUgc2xpZ2h0ZXN0 IGltcHJvdmVtZW50IGluICJwcmV0dHkiLCBvciB0aGUgc2xpZ2h0ZXN0ICJpbXByb3ZlbWVudCIK PiAgICAgID4gdG8ga2VlcCB0aGUgdXNlciBmcm9tIGhhdmluZyB0byB1c2UgYSB0ZXh0IGVkaXRv ciwgaXMgcGVyZmVjdAo+ICAgICAgPiBqdXN0aWZpY2F0aW9uIHRvIGJyaW5nIGluIGEgZ2FyZ2Fu dHVhbiBzb2Z0d2FyZSBsaWJyYXJ5IHdpdGggcG9vcmx5Cj4gICAgICA+IGRvY3VtZW50ZWQgQVBJ LCBsb3RzIG9mIGNoaWxkIGRlcGVuZGVuY2llcywgZ3JhbmRjaGlsZCBkZXBlbmRlbmNpZXMsCj4g ICAgICA+IGFuZCB3aG8ga25vd3MgaG93IGZhciBkb3duIHRoZSB0cmVlIGl0IGdvZXMuIEFuZCBh dCBhbnkgZ2l2ZW4gdGltZSwKPiAgICAgID4gYXQgbGVhc3Qgb25lIGRlcGVuZGVuY3kgb2YgdGhh dCBzb2Z0d2FyZSBkZXBlbmRlbmN5IHRyZWUgZ2V0cwo+ICAgICBidWdneSBvcgo+ICAgICAgPiBn b2VzIHVubWFpbnRhaW5lZCBvciBzZXRzIGEgZGVwZW5kZW5jeSBvbiBzb21ldGhpbmcgc28gbW9k ZXJuIGl0Cj4gICAgIHdvbid0Cj4gICAgICA+IHdvcmsgd2l0aCB5b3VyIGRpc3RybywgYW5kIHlv dSBnZXQgdG8gdXNlIGEgMTAgc3RlcCBhcHQvZHBrZwo+ICAgICAgPiBjaG9yZW9ncmFwaHkuCj4g ICAgICA+Cj4gICAgICA+IFRlbGwgdGhlIHNvZnR3YXJlIGF1dGhvcnMgeW91ciBvYmplY3Rpb25z IHRvIGdyYXR1aXRvdXMgZGVwZW5kZW5jeQo+ICAgICAgPiBpbmNsdXNpb25zLCBhcyB3ZWxsIGFz IHVubmVjZXNzYXJ5IGFuZCB1bmhlbHBmdWwgY29tbXVuaWNhdGlvbnMgd2l0aAo+ICAgICAgPiBi YXJlbHkgcmVsYXRlZCBzb2Z0d2FyZS4gVGVsbCB0aGVtIHlvdSBjaG9vc2Ugc29mdHdhcmUgdG8g d29yayBhbmQKPiAgICAgID4ga2VlcCBvbiB3b3JraW5nLCBub3QgdG8gYmUgcHJldHR5IG9yIHNw YXJlIHlvdSBmcm9tIHVzaW5nIGFuIGVkaXRvci4KPiAgICAgID4KPiAgICAgID4gQW5kIHRoZW4g ZG8gd2hhdCB5b3UgdG9sZCB0aGVtOiBXaGVuIGV2YWx1YXRpbmcgZnJlZSBzb2Z0d2FyZQo+ICAg ICAgPiBhbHRlcm5hdGl2ZXMsIHNpZ25pZmljYW50bHkgZG93bnZvdGUgdGhvc2Ugd2l0aCB0b28g bWFueSwgb3IKPiAgICAgID4gdW5uZWNlc3NhcnksIGRlcGVuZGVuY2llcy4gQW5kIGlmIHRoZSBz aW1wbGVyIHNvZnR3YXJlIGxhY2tzIGEKPiAgICAgZmVhdHVyZQo+ICAgICAgPiB5b3UgbmVlZCwg eW91IGNhbiB1c3VhbGx5IGtsdWRnZSBpdCB0b2dldGhlciB3aXRoIGEgY291cGxlCj4gICAgICA+ IHNoZWxsc2NyaXB0cyBhbmQgbWF5YmUgc29tZSBQeXRob24vUGVybC9SdWJ5L0x1YS9hd2svZ3Jl cC9zZWQuIFdlIGFsbAo+ICAgICAgPiBoYXRlIHRvIGtsdWRnZSwgYnV0IEkgdGhpbmsgdGhlIHVs dGltYXRlIGtsdWRnZSBpcyBzb21lIGNvbmNlaXRlZAo+ICAgICAgPiBkZXZlbG9wZXIgcmVxdWly aW5nIDEwMEsgbGluZXMgb2YgaW1wb3J0ZWQgY29kZSB0byBnaXZlIGEgY291cGxlCj4gICAgICA+ IGZlYXR1cmVzIGhlIGNvdWxkIGhhdmUgZG9uZSBpbiAxMDAgbGluZXMgb2Ygc2VsZi13cml0dGVu IGNvZGUsIGlmCj4gICAgICA+IGhlJ2QgYm90aGVyZWQuCj4gICAgICA+Cj4gICAgICA+IEkgY29w aWVkIHRoZSBHb0xVRyBtYWlsaW5nIGxpc3QgYmVjYXVzZSBpdCdzIG15IGhvbWUtdG93biBMVUcs Cj4gICAgIGFuZCB0aGUKPiAgICAgID4gRGV2dWFuIG1haWxpbmcgbGlzdCBiZWNhdXNlIHRoZXkn cmUgdGhlIG9uZSBkaXJlY3QgRGViaWFuIGZvcmsKPiAgICAgID4gdGhhdCBlc2NoZXdzIHVubmVj ZXNzYXJ5IGRlcGVuZGVuY2llcyBhbmQgaW50ZXJtb2R1bGFyCj4gICAgIGNvbW11bmljYXRpb25z Lgo+ICAgICAgPiBOb3RpY2UgdGhhdCBzb21lIGZvcmtzIGFuZCBleHRlbnNpb25zIG9mIERldnVh biBhbHNvIGtlZXAgY29tcGxleGl0eQo+ICAgICAgPiB0byBhIG1pbmltdW0uCj4gICAgICA+Cj4g ICAgICA+IFN0ZXZlVAo+ICAgICAgPgo+ICAgICAgPiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwo+ICAgICAgPiBMaW51eC1pbCBtYWlsaW5nIGxpc3QKPiAg ICAgID4gTGludXgtaWxAY3MuaHVqaS5hYy5pbCA8bWFpbHRvOkxpbnV4LWlsQGNzLmh1amkuYWMu aWw+Cj4gICAgICA+IGh0dHA6Ly9tYWlsbWFuLmNzLmh1amkuYWMuaWwvbWFpbG1hbi9saXN0aW5m by9saW51eC1pbAo+IAo+IAo+IAo+ICAgICAtLSAKPiAgICAgU2hsb21vIFNvbG9tb24KPiAgICAg aHR0cDovL3RoZS1zb2xvbW9ucy5uZXQKPiAgICAgQ2xhd3MgTWFpbCAzLjE2LjAgLSBLdWJ1bnR1 IDE4LjA0Cj4gCj4gICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4gICAgIExpbnV4LWlsIG1haWxpbmcgbGlzdAo+ICAgICBMaW51eC1pbEBjcy5odWpp LmFjLmlsIDxtYWlsdG86TGludXgtaWxAY3MuaHVqaS5hYy5pbD4KPiAgICAgaHR0cDovL21haWxt YW4uY3MuaHVqaS5hYy5pbC9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWlsCj4gCj4gCj4gCj4gLS0g Cj4gLS0KPiBKZXJlbXkgSG95bGFuZAo+IGpob3lsYW5kQGdtYWlsLmNvbSA8bWFpbHRvOmpob3ls YW5kQGdtYWlsLmNvbT4KPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+IExpbnV4LWlsIG1haWxpbmcgbGlzdAo+IExpbnV4LWlsQGNzLmh1amkuYWMu aWwKPiBodHRwOi8vbWFpbG1hbi5jcy5odWppLmFjLmlsL21haWxtYW4vbGlzdGluZm8vbGludXgt aWwKPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpM aW51eC1pbCBtYWlsaW5nIGxpc3QKTGludXgtaWxAY3MuaHVqaS5hYy5pbApodHRwOi8vbWFpbG1h bi5jcy5odWppLmFjLmlsL21haWxtYW4vbGlzdGluZm8vbGludXgtaWwK