VGhlIGxpdHRsZSBudW1iZXJzIG9uIHRoZSBtZXRlciBjb3VudCB0aGUgZmxhc2hlcyBmb3IgbWUg YW5kIEkgbWFpbCB0aG9zZQpudW1iZXJzIHRvIHRoZSB1dGlsaXR5IGNvbXBhbnkgc28gdGhleSBh bHdheXMgY29ycmVsYXRlLgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpEYXZpZCBDIEJyb3duCjQzIEJpbmdzIFJvYWQKV2hhbGV5IEJyaWRnZQpIaWdoIFBlYWsg ICAgICAgICAgICAgICAgICAgICAgICAgICBQaG9uZTogMDE2NjMgNzMzMjM2CkRlcmJ5c2hpcmUg ICAgICAgICAgICAgICAgZU1haWw6IGRjYi5ob21lQGdtYWlsLmNvbQpTSzIzIDdORCAgICAgICAg ICB3ZWI6IHd3dy5iaW5ncy1rbm93bGUuY28udWsvZGNiCjxodHRwOi8vd3d3LmpiLm1hbi5hYy51 ay9+ZGNiPgoKCgoqU2VudCBmcm9tIG15IGV0Y2gtYS1za2V0Y2gqCgpPbiAyMCBGZWJydWFyeSAy MDE4IGF0IDIwOjE5LCBKb2huIEdhcmRuZXIgPGdvZmxvM0BnbWFpbC5jb20+IHdyb3RlOgoKPiBJ J2QgYmUgdGVtcHRlZCB0byBzaW1wbHkgY291bnQgdGhlIGZsYXNoZXMgcGVyIGJpbGxpbmcgcGVy aW9kCj4KPiAmIGNvcnJlbGF0ZSB0aGF0IG1ldHJpYyB3aXRoIHRoZSBVdGlsaXR5J3MgY2xhaW0u Li4gICA6KQo+Cj4gRGVwZW5kcyBvbiB3aGF0IHlvdSdyZSB1cCB0bywgIEkgZ3Vlc3MuCj4KPiAg Li4uCj4KPgo+IE9uIDIvMjAvMTgsIFJ1c3NlbGxNYyA8YXBwdGVjaG56QGdtYWlsLmNvbT4gd3Jv dGU6Cj4gPiBPbiAyMSBGZWJydWFyeSAyMDE4IGF0IDAxOjQ5LCBEYXZpZCBDIEJyb3duIDxkY2Iu aG9tZUBnbWFpbC5jb20+IHdyb3RlOgo+ID4KPiA+Cj4gPj4gSSBhbnRpY2lwYXRlIG5vIHByb2Js ZW0gaW4gc3Vic3RhbnRpYWxseSBleGNsdWRpbmcgYSBzdWJzdGFudGlhbCBhbW91bnQKPiBvZgo+ ID4+IHRoZSBhbWJpZW50IGxpZ2h0LiAgIFRoZSBwaG90byBlbGVtZW50IHdpbGwgYmUgbW91bnRl ZCBpbiBhIHNtYWxsIGJveCBhbgo+ID4+IHBlZXIgb3V0IHRocm91Z2ggYSBob2xlLiAgVGhlIGJv eCB3aWxsIGJlIHRhcGVkIHRvIHRoZSBtZXRlciB3aXRoIHRoZQo+IGhvbGUKPiA+PiBvdmVyIHRo ZSBMRUQKPiA+Pgo+ID4KPiA+IOKAi1NvdW5kcyBnb29kLiBCb3ggZm9ybXMg4oCLdGhlIGV4dGVu ZGVkIG9wYXF1ZSBjb3Zlci4KPiA+Cj4gPgo+ID4+IFNpbmNlIHlvdSBhcmUgZmFyIGFuZCBhd2F5 IG1vcmUgbGVhcm5lZCB0aGFuIEkgYW0sCj4gPgo+ID4KPiA+IOKAi0F2b2lkaW5nIGFuIG92ZXJs eSBleHRlbmRlZCBuZWdhdGl2ZS1zZWxmLWNvbXBhcmlzb24gbWF0Y2ggLSB3ZSBib3RoCj4gPiBs ZWFybmVkIG1vc3Qgb2Ygd2hhdCB3ZSBrbm93IGZyb20gZXhwb3N1cmUgdG8gdGhlIHJlYWwgd29y bGQsIHNvIGFyZQo+IGFib3V0LAo+ID4gYXMgZmFyIGFzIEkgY2FuIHNlZSB+fj0gbGVhcm5lZC4g V2hpY2ggaXMgbm90IGFuIGlzc3VlIGhlcmUuCj4gPiDigIsKPiA+Cj4gPj4gSSBhbSB3b3JyaWVk IHRoYXQgeW91Cj4gPj4g4oCLIOKAiwo+ID4+IHRoaW5rIHRoYXQgdGhpcyBpcyBhIGRpZmZpY3Vs dCBwcm9qZWN0Lgo+ID4KPiA+Cj4gPiDigItNb3JlICJhbm5veWluZyIuCj4gPiBJJ2QgaGF2ZSB0 byBnZXQgbXkgbWluZCBiYWNrIGFyb3VuZCB3aGF0IHRoZSBpc3N1ZXMgd2VyZSwgYnV0IGZvciBw b3dlciwKPiA+IG5vdCBlbmVyZ3ksIGRpc3BsYXksIHRoZSBsb25nZXIgcGVyaW9kcyBhdCBsb3dl ciBwb3dlciBlbmQgdXAgbWFraW5nIGl0Cj4gPiBoYXJkIHlvIHByb3ZpZGUgYSBwb3dlciBkaXNw bGF5IHRoYXQgcmVhc29uYWJseSBhY2N1cmF0ZWx5IHRyYWNrcyBvcgo+ID4gZGlzcGxheXMgdHJ1 ZSDigItwb3dlci4gQXMgSSBzYWlkLCB3b3JrIHRocm91Z2ggYW4gZXhhbXBsZSBhbmQgc2VlIGhv dyBpdAo+ID4gY29tZXMgb3V0LiBBIHNpbXBsZSBwcm9ncmFtIGluIHRoZSBsYW5ndWFnZSBvZiB5 b3VyIGNob2ljZSB3b3VsZCBzdWZmaWNlLAo+ID4gYnV0IGZvciB0aGluZ3MgbGlrZSB0aGlzIGEg c3ByZWFkc2hlZXQgbWF5IGJlIGVhc2llciAoc29tZSBkaXNhZ3JlZSkuCj4gPiBTb21ldGhpbmcg bGlrZSBhIGJhc2UgbG9hZCBvZiBzYXkgIT0gMzAwIFdhdHRzIGFuZCBhZGRpbmcgYSAxNTAwIFcg a2V0dGxlCj4gPiBmb3IgMyBtaW51dGVzLiBIb3cgZG9lcyB0aGF0IHdvcmsgaW4gcHJhY3RpY2Uu Cj4gPgo+ID4gVGhpcyBtYXkgbWF0Y2ggeW91ciBleGlzdGluZyB0aGlua2luZy4gT3Igbm90Lgo+ ID4gQSB1c2VmdWwgbWV0cmljIG1heSBiZSB0aGF0IHJhdGhlciB0aGFuIHRoaW5raW5nIG9mIDEg V2ggcGVyIDMuNiBzIHlvdQo+IHVzZQo+ID4gMzYwMCBXcyBwZXIgZmxhc2guIFRoZW4gd2hlbiBw b3dlciBpcyBmbHVjdHVhdGluZyB5b3UgZXN0YWJsaXNoIG1lYW4gVwo+IG92ZXIKPiA+IGEgdGlt ZSBzbGljZSAtIHNheSAxIHMsIGFuZCB0aGF0IHRlbGxzIHlvdSBob3cgbXVjaCBvZiB0aGUgMzYw MCBXcyB5b3UKPiBoYXZlCj4gPiB1c2VkLgo+ID4gZWcgMzAwIFcgZm9yIDNzID0gOTAwIFdzCj4g PiAyMDBXIGZvciA1UyA9IDEwMDAgV3MsIDE5MDAgV3MgdG90YWwsIDE3MDAgV3MgdGlsbCBmbGFz aCBkdWUKPiA+IDE3MCBXIC0+IGZsYXNoIHdpbGwgYmUgaW4gMTBzLgo+ID4gT3IgMTcwMFcsIGZs YXNoIHdpbGwgYmUgaW4gMXMuCj4gPgo+ID4gSSB3YXMgc2VuZGluZyAiY3VycmVudCBXYXR0cyIg dmlhIGEgc2VyaWFsIGxpbmsgYW5kIHJlY2FsbCBmaW5kaW5nIHRoYXQKPiA+ICJnYWxsb3Bpbmci IHdhcyBlYXN5IHRvIGFjaGlldmUuCj4gPgo+ID4KPiA+IFJ1c3NlbGwKPiA+IC0tCj4gPiBodHRw Oi8vd3d3LnBpY2xpc3QuY29tL3RlY2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNo aXZlCj4gPiBWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdAo+ID4gaHR0cDov L21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QKPiA+Cj4KPiAtLQo+IGh0 dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFy Y2hpdmUKPiBWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdAo+IGh0dHA6Ly9t YWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9waWNsaXN0Cj4KLS0gCmh0dHA6Ly93d3cu cGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmll dy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVk dS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK .