VGhlIHF1ZXN0aW9uIGFzIEkgaGF2ZSBuZXZlciBiZWVuIHRvIE5ldyBaZWFsYW5kIG9yIEF1c3Ry aWEgLGRvIHlvdSBoYXZlCm1vdW50YWlucyB3aGVyZSB5b3UgY291bGQgZHJpdmUgeW91ciBmb3Vy IHdoZWVsIGRyaXZlIHZlaGljbGUgdG8uIFRoZW4geW91CndvdWxkIHRha2UgYSBzaG92ZWwgYW5k IGZpbGwgdGhlIGJhY2sgZW5kIG9mIHlvdXIgdHJ1Y2sgd2l0aCBzbm93IGFuZCBkcml2ZQpiYWNr IHRvIHRoZSBsb3dlciBlbGV2YXRpb25zIGFuZCBwdXQgdGhlIHNub3cgaW4geW91ciBmcm9udCB5 YXJkLiBJIGhhdmUKYWN0dWFsbHkgc2VlbiBwZW9wbGUgZG8gdGhpcyBpbiBzb3V0aGVybiBDYWxp Zm9ybmlhIGEgZmV3IHllYXJzIGJhY2suVGhlCnRyaWNrIGlzIHRvIG1ha2UgaXQgYmFjayB0byB5 b3VyIGhvdXNlIGJlZm9yZSBpdCBtZWx0cy4gTWljaGFlbAoKT24gVHVlLCBEZWMgNiwgMjAxNiBh dCAzOjU2IFBNLCBEYXZpZCBDIEJyb3duIDxkY2IuaG9tZUBnbWFpbC5jb20+IHdyb3RlOgoKPiBU aGUgc2ltcGxlIGZhY3QgaXMgdGhhdCBpZiB5b3UgcHJvamVjdCBzbm93IGludG8gYW4gZW52aXJv bm1lbnQgIHRoYXQgaXMKPiBhYm92ZSBmcmVlemluZyBpdCB3aWxsIG1lbHQuICBTaW1wbGUgcGh5 c2ljcyB3aGljaCBpcyBib3JuZSBvdXQgYnkKPiBleHBlcmllbmNlIGluIHRoZSBub3J0aCB3ZXN0 IG9mIEVuZ2xhbmQuICBXZSBvZnRlbiBoYXZlIHNub3cgZmFsbGluZyBpbm8gYQo+IHdhbSBlbnZp cm9ubWVudCBhbmQgd2UganVzdCBnZXQgaG9ycmlibGUgc2x1c2guICBOYXN0eSBicm93biBpbiBj b2xvdXIgYW5kCj4gbW9yZSBzbGlwcGVyeSB0aGFuIGljZQo+Cj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gRGF2aWQgQyBCcm93bgo+IDQzIEJpbmdzIFJvYWQK PiBXaGFsZXkgQnJpZGdlCj4gSGlnaCBQZWFrICAgICAgICAgICAgICAgICAgICAgICAgICAgUGhv bmU6IDAxNjYzIDczMzIzNgo+IERlcmJ5c2hpcmUgICAgICAgICAgICAgICAgZU1haWw6IGRjYi5o b21lQGdtYWlsLmNvbQo+IFNLMjMgN05EICAgICAgICAgIHdlYjogd3d3LmJpbmdzLWtub3dsZS5j by51ay9kY2IKPiA8aHR0cDovL3d3dy5qYi5tYW4uYWMudWsvfmRjYj4KPgo+Cj4KPiAqU2VudCBm cm9tIG15IGV0Y2gtYS1za2V0Y2gqCj4KPiBPbiA2IERlY2VtYmVyIDIwMTYgYXQgMDg6NTgsIFJ1 c3NlbGxNYyA8YXBwdGVjaG56QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiA+IFRoaXMgaXMgYSBnb29k IGV4YW1wbGUgb2Ygd2h5IGl0J3Mgd29ydGggcG9zdGluZyBxdWVzdGlvbnMgbGlrZSB0aGlzIHRv Cj4gdGhlCj4gPiBQSUNMbWluZCBkZXNwaXRlIHRoZSBuZXQgYmVpbmcgInN1Z2dlc3Rpb25zIHJp Y2giLgo+ID4KPiA+ID4+PuKAiwo+ID4gPiBEYXZpZCBDIEJyb3duOgo+ID4gPj4+PiBTdXJlbHkg eW91IG5lZWQgYW1iaWVudCB0byBiZSBiZWxvdyBmcmVlemluZyBvciB5b3VyIHNub3cgd2lsbCBt ZWx0Cj4gYXMKPiA+ID4+Pj4gZmFzdCBhcyBpdCBmb3Jtcz8KPiA+Cj4gPiA+Pj4gIk1DSCIKPiA+ IOKAiz4+4oCLCj4gPiA+IFRoZSBza2kgY291cnNlcyBzZWVtIHRvIG5vdCBoYXZlIHRoYXQgaXNz dWUuCj4gPiA+Pj4gTWF5YmUgaXQncyBkdWUgdG8gdGhlIHZvbHVtZSBvZiBzbm93IHRoZXkgcHJv ZHVjZS7igIsKPiA+Cj4gPgo+ID4g4oCLPj4KPiA+IERhdmlkIEMgQnJvd24gPGRjYi5ob21lQGdt YWlsLmNvbT4gd3JvdGU6Cj4gPgo+ID4gPiBOby4gIFRoZSBza2kgcmVzb3J0cyBkbyBoYXZlIHRo YXQgcHJvYmxlbS4gIFRoZSB1c3VhbCBzaXR1YXRpb24gaXMgYW4KPiA+ID4gYW50aWN5Y2xvbmUg d2hlbiBpdCBpcyB2ZXJ5IGNvbGQgYnV0IHRoZXJlIGlzIG5vIHByZWNpcGl0YXRpb24uICBTbyB0 aGUKPiA+ID4gc25vdyBtYWNoaW5lIHByb3ZpZGVzIHRoZSBtaXNzaW5nIHByZWNpcGl0YXRpb24K PiA+ID4KPiA+ID4gSGVyZSB3ZXN0ZXJuIFVLIHdlIG9mdGVuIGhhdmUgdGhlIG9wcG9zaXRlIHNp dHVhdGlvbi4gIFNub3cgZmFsbGluZwo+IGludG8KPiA+IGEKPiA+ID4gd2FybSBlbnZpcm9ubWVu dCBhbmQgbWVsdGluZyBhcyBpdCBoaXRzIHRoZSBncm91bmQKPiA+ID4g4oCLCj4gPiA+Cj4gPgo+ ID4g4oCLV2hpbGUgSSBkbyBub3Qga25vdyB3aGF0IHdvcmtzLCBhbmQgaGFkIHN1Z2dlc3RlZCBJ IG1heSBuZWVkIGFuZCBtYXliZQo+ID4gY291bGQgY3JlYXRlIGNvbGQgYWlyIGF0IHRoZSBvdXRw dXQsIGEgZmV3IGxpbmVzIG9mIHRvICYgZnJvIGhlbHAgdG8KPiA+IHByb3ZpZGUgc29tZSBvYnZp b3VzIG9ubHkgaW4gcmV0cm9zcGVjdCBiYWNrZ3JvdW5kLiDigIsKPiA+Cj4gPiDigItUaGUgZGll IGdyaW5kZXIgTUFZIGJlIGEgZ29vZCBzb3VyY2Ugb2YgYW1iaWVudCBjb29saW5nIHdpdGggdGhl Cj4gZXhwYW5zaW9uCj4gPiBub3p6bGUgdXNlZCBmb3Igc25vdyBtYWtpbmcuIOKAiwo+ID4KPiA+ IOKAi01lbHRpbmcgaW4gd2FybSBhaXIgaXMgYW4gaXNzdWUgaWYgZW5lcmd5IGlucHV0IHJhdGUg aXMgbm90Cj4gc2lnbmlmaWNhbnRseQo+ID4gbG93ZXIgdGhhbiBmb3JtYXRpb24gcmF0ZS4KPiA+ IEkgZG9uJ3Qga25vdyBpZiBJIGNhbiBnZXQgcGFydGljbGUgc2l6ZSBpbmNyZWFzZSB3aXRoIGFn Z2xvbWVyYXRpb24gb3IKPiA+IG1heWJlIGV2ZW4gc2VlZGluZyAod2l0aCBlZyBzbW9rZSBvciBn bGNvbCB2YXBvdXIgb3IgLi4uPykKPiA+IFdvdWxkIGJlIHJhcGlkbHnigIsgZ2V0dGluZyBhYm92 ZSB0aGUgc2ltcGxlLWZ1biBsZXZlbCBJIGhhZCBob3BlZCBmb3IuCj4gPiBJIGNhbiBib3Jyb3cg YSAiZm9nIG1hY2hpbmUiIC0gbm9uIHNub3cgdHlwZS4KPiA+Cj4gPiAiU25vd2luZyIgaW50byBh IGZyaWRnZSBvciBmcmVlemVyIGR1cmluZyBpbml0aWFsIGludmVzdGlnYXRpb24gd291bGQKPiBo ZWxwCj4gPiByZW1vdmUgb25lIHZhcmlhYmxlLiBNYXliZS4KPiA+Cj4gPgo+ID4KPiA+IOKAiyAg ICAgICAgICAgIFJ1c3NlbGwKPiA+IOKAiwo+ID4gLS0KPiA+IGh0dHA6Ly93d3cucGljbGlzdC5j b20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKPiA+IFZpZXcvY2hh bmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0Cj4gPiBodHRwOi8vbWFpbG1hbi5taXQuZWR1 L21haWxtYW4vbGlzdGluZm8vcGljbGlzdAo+ID4KPiAtLQo+IGh0dHA6Ly93d3cucGljbGlzdC5j b20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKPiBWaWV3L2NoYW5n ZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdAo+IGh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFp bG1hbi9saXN0aW5mby9waWNsaXN0Cj4KLS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJl Zi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1i ZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZv L3BpY2xpc3QK .