RGVhciBJc2FhYywKCkkndmUgYWxzbyBhc2tlZCB0aGlzIG9uIHRoZSBmcmVlUlRPUyBmb3J1bXMu IFRoZXkndmUgYXNrZWQgbWUgdG8gc2VuZCBteQpjb2RlIHRvIHRoZW0gc28gdGhleSBjb3VsZCBy ZXNvbHZlIHRoZSBpc3N1ZS4gVGhpcyB3YXMgdGhlaXIgcmVwbHk6CgoqIklmIEkgcnVuIHlvdXIg cHJvamVjdCBhcyB5b3Ugc2VudCBpdCB0aGVuIEkgZ2V0IHRoZSBzYW1lIHByb2JsZW0geW91IGRv LgpIb3dldmVyIGlmIEkgZGVmaW5lIE1QTEFCX0RTUElDX1BPUlQgaW4gdGhlIHByb2plY3Qgb3B0 aW9ucyB0aGVuIEkgZmluZCB0aGUKZmlyc3QgdGFzayBzdGFydHMgYXMgZXhwZWN0ZWQuIioKClJp Z2h0IG5vdyBJIGFtIHVuYWJsZSB0byBjaGVjayBpZiB0aGlzIHdvcmtzLCBidXQgdGhpcyBzdXBw b3NlZGx5IHNvbHZlcwp0aGUgcHJvYmxlbS4gIEknbSBzZW5kaW5nIHlvdSB0aGlzIHNvIHlvdSBk b24ndCB3YXN0ZSB5b3VyIHRpbWUgd2l0aApkZWJ1Z2dpbmcgb3Igc2VhcmNoaW5nIGZvciBlcnJv cnMuIEknbGwgYmUgYWJsZSB0byB0cnkgdGhpcyBvdXQgdG9tb3Jyb3cuCkJ1dCBJIGFscmVhZHkg a25vdyAgaXMgdGhhdCBJIGRvbid0IGtub3cgaG93IHRvIGRlZmluZSB0aGlzIGluIHRoZSBwcm9q ZWN0Cm9wdGlvbnMgaW4gTVBMQUJYLgoKClRoYW5rcyBmb3IgeW91ciBhdHRlbnRpb24gYW5kIGhl bHAhCgpGZWtldGUgVGFtw6FzCgoKCk9uIE1vbiwgT2N0IDEzLCAyMDE0IGF0IDM6MTIgUE0sIElz YWFjIE1hcmlubyBCYXZhcmVzY28gPAppc2FhY2JhdmFyZXNjb0B5YWhvby5jb20uYnI+IHdyb3Rl OgoKPiBUaGlzIGhvb2sgdHJpZ2dlcnMgaWYgRnJlZVJUT1MgY2FuJ3QgYWxsb2NhdGUgYSBzdGFj ayBiZWNhdXNlIG9mIG5vdAo+IGVub3VnaCBtZW1vcnkuCj4KPiBUaGUgc3RhY2sgb3ZlcmZsb3cg SSBtZW50aW9uZWQgaGFwcGVucyB3aGVuIHlvdSBhbGxvY2F0ZSBhIHRvbyBzbWFsbAo+IHN0YWNr IGFuZCB0aGUgdGFzayB1c2VzIHRvbyBtdWNoIG9mIGl0LiBJZiB0aGF0IGhhcHBlbnMgeW91IG11 c3QgY2hvb3NlCj4gYSBsYXJnZXIgc3RhY2sgYXQgY29tcGlsZSB0aW1lLgo+Cj4gUGxlYXNlIHRy eSB3aXRoIGxhcmdlciBzdGFja3MsIHRoZSBiaWdnZXIgdGhlIGJlc3QuIElmIHRoZSBQSUMga2Vl cHMKPiByZXNldHRpbmcsIHRoZW4gdGhlIHByb2JsZW0gaXMgZWxzZXdoZXJlLgo+Cj4KPiBCZXN0 IHJlZ2FyZHMsCj4KPiBJc2FhYwo+Cj4KPiBPbiAxMy8xMC8yMDE0IDA5OjI0LCBUYW3DoXMgRmVr ZXRlIHdyb3RlOgo+ID4gSSBoYXZlIGRlZmluZWQ6ICNkZWZpbmUgY29uZmlnVVNFX01BTExPQ19G QUlMRURfSE9PSyAgICAgICAgICAgIDEKPiA+Cj4gPiBhbmQgaGF2ZSB0aGUgdkFwcGxpY2F0aW9u TWFsbG9jRmFpbGVkSG9vayBpbiBteSBtYWluIGZ1bmN0aW9uLiBJIHRoaW5rCj4gdGhhdAo+ID4g aWYgaXQgd291bGQgYmUgYSBzdGFjayBwcm9ibGVtIGkgd291bGQgZW5kIHVwIGluIHRoZSB3aGls ZSBsb29wLiBJbiB0aGUKPiA+IGRlYnVnZ2VyIEkgbmV2ZXIgZ2V0IHRoZXJlLgo+ID4KPiA+IE1h eWJlIHRoaXMgaW5mbyB3aWxsIGhlbHA6Cj4gPiBXaGVuIGRlYnVnZ2luZywgdGhlIHByb2dyYW0g ZW50ZXJzIHRoZSBmdW5jdGlvbiB4UG9ydFN0YXJ0U2NoZWR1bGVyLiBJCj4gZ2V0Cj4gPiBsb3N0 IHdoZW4gdGhlIHByb2dyYW0gZW50ZXJzIHRoZSBwb3J0UkVTVE9SRV9DT05URVhUKCkgZnVuY3Rp b24gaW5zaWRlCj4gPiB4UG9ydFN0YXJ0U2NoZWR1bGVyLgo+ID4KPiA+Cj4gPiB2b2lkIHZBcHBs aWNhdGlvbk1hbGxvY0ZhaWxlZEhvb2sodm9pZCkKPiA+IHsKPiA+ICAgICBwb3J0RElTQUJMRV9J TlRFUlJVUFRTKCk7Cj4gPiAgICAgd2hpbGUoMSk7Cj4gPiB9Cj4gPgo+ID4gVGhhbmsgeW91IGlu IGFkdmFuY2UgZm9yIHRoZSBoZWxwIHNvIGZhciEKPiA+IFRvbWkKPiA+Cj4gPiBPbiBNb24sIE9j dCAxMywgMjAxNCBhdCAyOjEyIFBNLCBJc2FhYyBNYXJpbm8gQmF2YXJlc2NvIDwKPiA+IGlzYWFj YmF2YXJlc2NvQHlhaG9vLmNvbS5icj4gd3JvdGU6Cj4gPgo+ID4+IFJpZ2h0IG5vdyBJIGNhbm5v dCBjaGVjayB5b3VyIGNvZGUsIGJ1dCBJIHJlbWVtYmVyZWQgYW5vdGhlciBwb2ludDoKPiA+PiBW ZXJpZnkgdGhlIHN0YWNrcyB0byBzZWUgaWYgdGhleSBhcmUgbm90IGJlaW5nIG92ZXJmbG93bi4K PiA+Pgo+ID4+IEJlc3QgcmVnYXJkcywKPiA+Pgo+ID4+IElzYWFjCj4gPj4KPiA+Pgo+ID4+IE9u IDEzLzEwLzIwMTQgMDg6MjksIFRhbcOhcyBGZWtldGUgd3JvdGU6Cj4gPj4+IFRoYW5rIHlvdSBm b3IgeW91ciByZXBseS4KPiA+Pj4KPiA+Pj4gTXkgd2F0Y2hkb2cgdGltZXIgaXMgb2ZmLgo+ID4+ Pgo+ID4+PiBJbiBvdGhlciBwYXJ0cyBvZiBteSBjb2RlIEkgZGlkbnQgZW5hYmxlIGFueSBpbnRl cnJ1cHRzLgo+ID4+Pgo+ID4+PiBJJ20gbm90IHN1cmUgaG93IHRvIGNoZWNrLCBpZiB0aGVyZSBp cyBhY2Nlc3MgdG8gbWVtb3J5IHVzaW5nCj4gPj4gdW5pbml0aWFsaXplZAo+ID4+PiBXIHJlZ2lz dGVycyBhcyBwb2ludGVycy4KPiA+Pj4KPiA+Pj4gSSd2ZSBhdHRhY2hlZCB0aGUgZmlsZXMuIEkg dXNlIGludGVybmFsIG9zY2lsbGF0b3IgYW5kIG1ha2UgYSA4ME1IeiBvdXQKPiA+PiBvZgo+ID4+ PiBpdCB0byBoYXZlIDQwIG1pcHMuIFRoYXQgaXMgdGhlIHBsbF9zZXR1cCBhbmQgSSdtIHVzaW5n IGl0IGluIG15IG1haW4uYwo+ID4+IGFzCj4gPj4+IGEgZnVuY3Rpb24uCj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IE9uIE1vbiwgT2N0 IDEzLCAyMDE0IGF0IDE6MDEgUE0sIElzYWFjIE1hcmlubyBCYXZhcmVzY28gPAo+ID4+PiBpc2Fh Y2JhdmFyZXNjb0B5YWhvby5jb20uYnI+IHdyb3RlOgo+ID4+Pgo+ID4+Pj4gU3RhcnQgd2l0aCB0 aGUgb2J2aW91cywgZGlkIHlvdSBlbmFibGUgdGhlIFdhdGNoZG9nPyBBbmQgaWYgZW5hYmxlZCwK PiBhcmUKPiA+Pj4+IHlvdSByZXNldHRpbmcgaXQgcmVndWxhcmx5Pwo+ID4+Pj4KPiA+Pj4+IFNl Y29uZCwgZG8geW91IGhhdmUgc29tZSBpbnRlcnJ1cHQgZW5hYmxlZCBmb3Igd2hhdCB5b3UgZGlk bid0IGNyZWF0ZQo+IGEKPiA+Pj4+IGhhbmRsZXI/Cj4gPj4+Pgo+ID4+Pj4gQW5vdGhlciBpc3N1 ZSB0aGF0IGNhbiBjYXVzZSBQSUMyNC9kc1BJQyBkZXZpY2VzIHRvIHJlc2V0IGlzIGFjY2Vzc2lu Zwo+ID4+Pj4gbWVtb3J5IHVzaW5nIHVuaW5pdGlhbGl6ZWQgVyByZWdpc3RlcnMgYXMgcG9pbnRl cnMuCj4gPj4+Pgo+ID4+Pj4KPiA+Pj4+IElmIHlvdXIgY29kZSBpcyB0aGF0IHNpbXBsZSwgY291 bGQgeW91IGF0dGFjaCBpdCBpbiBpdHMgZW50aXJldHk/IFRoZQo+ID4+Pj4gZnVzZXMgY29uZmln dXJhdGlvbiBtYXkgYWxzbyBoZWxwLCBsaWtld2lzZSwgeW91ciBGcmVlUlRPU0NvbmZpZy5oCj4g ZmlsZQo+ID4+Pj4gY291bGQgZ2l2ZSBzb21lIGluc2lnaHQuCj4gPj4+Pgo+ID4+Pj4KPiA+Pj4+ IEJlc3QgcmVnYXJkcywKPiA+Pj4+Cj4gPj4+PiBJc2FhYwo+ID4+Pj4KPiA+Pj4+Cj4gPj4+PiBP biAxMy8xMC8yMDE0IDA3OjIzLCBUYW3DoXMgRmVrZXRlIHdyb3RlOgo+ID4+Pj4+IERlYXIgUGlj TGlzdCAhCj4gPj4+Pj4KPiA+Pj4+PiBJbSB1c2luZyBGcmVlUlRPUyB3aXRoIG1wbGFieCB3aXRo IGRzcGljMzNmajEyOG1jODAyIG1pY3JvY29udHJvbGxlci4KPiA+Pj4+Pgo+ID4+Pj4+IEkgbWFr ZSBhIHZlcnkgc2ltcGxlIHRhc2sgaW4gRnJlZVJUT1MgYW5kIGV2ZXJ5dGhpbmcgY29tcGlsZXMg d2l0aG91dAo+ID4+Pj4+IGVycm9ycy4KPiA+Pj4+Pgo+ID4+Pj4+IFdoZW4gSSdtIGluIGRlYnVn IG1vZGUgYW5kIHRoZSBwcm9ibGVtIGlzIHRoYXQgdGhlIG1pY3JvY29udHJvbGxlciBpcwo+ID4+ Pj4+IHJlc2V0dGluZyBpdHNlbGYuCj4gPj4+Pj4KPiA+Pj4+PiBObyBzb3VyY2UgY29kZSBsaW5l cyB3ZXJlIGZvdW5kIGF0IGN1cnJlbnQgUEMgMHgwMAo+ID4+Pj4+IE5vIHNvdXJjZSBjb2RlIGxp bmVzIHdlcmUgZm91bmQgYXQgY3VycmVudCBQQyAweDI5ZQo+ID4+Pj4+Cj4gPj4+Pj4gdGhlIHNp bXBsZSB0YXNrIGlzIDoKPiA+Pj4+Pgo+ID4+Pj4+IHZvaWQgc2VuZF90YXNrKHZvaWQgKnApewo+ ID4+Pj4+ICAgICB3aGlsZSAoMSkKPiA+Pj4+PiAgICAgewo+ID4+Pj4+Cj4gPj4+Pj4gICAgICAg ICBBPUErMTsKPiA+Pj4+PiAgICAgICAgIHZUYXNrRGVsYXkoNTAwKTsKPiA+Pj4+PiAgICAgfQo+ ID4+Pj4+Cj4gPj4+Pj4gfQo+ID4+Pj4+Cj4gPj4+Pj4KPiA+Pj4+PiBXaGVuIGluIGRlYnVnIG1v ZGUgSSBzaG91bGQgc2VlIHRoZSB2YXJpYWJsZSBBIGluY3JlbWVudGVkIGJ5IDEgZXZlcnkKPiA+ PiA1MDAKPiA+Pj4+PiBtaWxsaXNlY29uZHMuIFRoZSBwcm9ibGVtIGlzIHRoYXQgdGhlIG1pY3Jv Y29udHJvbGxlciByZXNldHMgaXRzZWxmCj4gYXQKPiA+Pj4+PiBhZGRyZXNzIDB4MjllICBhbmQg c3RhcnQgYWdhaW4gYXQgYWRkcmVzcyAweDAgYW5kIGRvZXNudCBjcmVhdGVzIHRoZQo+ID4+Pj4g dGFzay4KPiA+Pj4+PiBUaGUgc2ltcGxlIG1haW4gZnVuY3Rpb246Cj4gPj4+Pj4KPiA+Pj4+PiBp bnQgbWFpbiAodm9pZCkKPiA+Pj4+PiB7Cj4gPj4+Pj4gcGxsX3NldHVwKCk7IC8vIHNldCBpbnRl cm5hbCBvc2NpbGxhdG9yIHRvIDgwTUh6LS0+NDBNSVBTIEZDWT1Gb3NjLzIKPiA+Pj4+PiB4VGFz a0NyZWF0ZShzZW5kX3Rhc2ssICJzZW5kX3Rhc2siLCAxNiwgTlVMTCwgMSwgTlVMTCk7Cj4gPj4+ Pj4gdlRhc2tTdGFydFNjaGVkdWxlcigpOwo+ID4+Pj4+IHJldHVybiAwOwo+ID4+Pj4+IH0KPiA+ Pj4+Pgo+ID4+Pj4+Cj4gPj4+Pj4gVGhhbmsgeW91IGZvciBhbnkgaGVscCBvciBzdWdnZXN0aW9u cy4KPiA+Pj4+Pgo+ID4+Pj4+IFJlZ2FyZHM6Cj4gPj4+Pj4gRmVrZXRlIFRhbcOhcwo+ID4+Pj4+ Cj4gPj4+Pj4KPiA+Pj4+Pgo+ID4+Pj4KPiA+Pj4+IC0tCj4gPj4+PiBodHRwOi8vd3d3LnBpY2xp c3QuY29tL3RlY2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlCj4gPj4+PiBW aWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdAo+ID4+Pj4gaHR0cDovL21haWxt YW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QKPiA+Pj4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+Cj4gPj4gLS0KPiA+PiBodHRwOi8vd3d3LnBpY2xpc3QuY29tL3RlY2hyZWYvcGljbGlzdCBQ SUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlCj4gPj4gVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlw IG9wdGlvbnMgYXQKPiA+PiBodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlzdGluZm8v cGljbGlzdAo+ID4+Cj4gPgo+ID4KPgo+IC0tCj4gaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNo cmVmL3BpY2xpc3QgUElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQo+IFZpZXcvY2hhbmdlIHlvdXIg bWVtYmVyc2hpcCBvcHRpb25zIGF0Cj4gaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xp c3RpbmZvL3BpY2xpc3QKPgoKCgotLSAKInRoZXJlIGlzIG5vIHNwb29uIgotLSAKaHR0cDovL3d3 dy5waWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3QgUElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQpW aWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdApodHRwOi8vbWFpbG1hbi5taXQu ZWR1L21haWxtYW4vbGlzdGluZm8vcGljbGlzdAo= .