SSBoYXZlIGRlZmluZWQ6ICNkZWZpbmUgY29uZmlnVVNFX01BTExPQ19GQUlMRURfSE9PSyAgICAg ICAgICAgIDEKCmFuZCBoYXZlIHRoZSB2QXBwbGljYXRpb25NYWxsb2NGYWlsZWRIb29rIGluIG15 IG1haW4gZnVuY3Rpb24uIEkgdGhpbmsgdGhhdAppZiBpdCB3b3VsZCBiZSBhIHN0YWNrIHByb2Js ZW0gaSB3b3VsZCBlbmQgdXAgaW4gdGhlIHdoaWxlIGxvb3AuIEluIHRoZQpkZWJ1Z2dlciBJIG5l dmVyIGdldCB0aGVyZS4KCk1heWJlIHRoaXMgaW5mbyB3aWxsIGhlbHA6CldoZW4gZGVidWdnaW5n LCB0aGUgcHJvZ3JhbSBlbnRlcnMgdGhlIGZ1bmN0aW9uIHhQb3J0U3RhcnRTY2hlZHVsZXIuIEkg Z2V0Cmxvc3Qgd2hlbiB0aGUgcHJvZ3JhbSBlbnRlcnMgdGhlIHBvcnRSRVNUT1JFX0NPTlRFWFQo KSBmdW5jdGlvbiBpbnNpZGUKeFBvcnRTdGFydFNjaGVkdWxlci4KCgp2b2lkIHZBcHBsaWNhdGlv bk1hbGxvY0ZhaWxlZEhvb2sodm9pZCkKewogICAgcG9ydERJU0FCTEVfSU5URVJSVVBUUygpOwog ICAgd2hpbGUoMSk7Cn0KClRoYW5rIHlvdSBpbiBhZHZhbmNlIGZvciB0aGUgaGVscCBzbyBmYXIh ClRvbWkKCk9uIE1vbiwgT2N0IDEzLCAyMDE0IGF0IDI6MTIgUE0sIElzYWFjIE1hcmlubyBCYXZh cmVzY28gPAppc2FhY2JhdmFyZXNjb0B5YWhvby5jb20uYnI+IHdyb3RlOgoKPiBSaWdodCBub3cg SSBjYW5ub3QgY2hlY2sgeW91ciBjb2RlLCBidXQgSSByZW1lbWJlcmVkIGFub3RoZXIgcG9pbnQ6 Cj4gVmVyaWZ5IHRoZSBzdGFja3MgdG8gc2VlIGlmIHRoZXkgYXJlIG5vdCBiZWluZyBvdmVyZmxv d24uCj4KPiBCZXN0IHJlZ2FyZHMsCj4KPiBJc2FhYwo+Cj4KPiBPbiAxMy8xMC8yMDE0IDA4OjI5 LCBUYW3DoXMgRmVrZXRlIHdyb3RlOgo+ID4gVGhhbmsgeW91IGZvciB5b3VyIHJlcGx5Lgo+ID4K PiA+IE15IHdhdGNoZG9nIHRpbWVyIGlzIG9mZi4KPiA+Cj4gPiBJbiBvdGhlciBwYXJ0cyBvZiBt eSBjb2RlIEkgZGlkbnQgZW5hYmxlIGFueSBpbnRlcnJ1cHRzLgo+ID4KPiA+IEknbSBub3Qgc3Vy ZSBob3cgdG8gY2hlY2ssIGlmIHRoZXJlIGlzIGFjY2VzcyB0byBtZW1vcnkgdXNpbmcKPiB1bmlu aXRpYWxpemVkCj4gPiBXIHJlZ2lzdGVycyBhcyBwb2ludGVycy4KPiA+Cj4gPiBJJ3ZlIGF0dGFj aGVkIHRoZSBmaWxlcy4gSSB1c2UgaW50ZXJuYWwgb3NjaWxsYXRvciBhbmQgbWFrZSBhIDgwTUh6 IG91dAo+IG9mCj4gPiBpdCB0byBoYXZlIDQwIG1pcHMuIFRoYXQgaXMgdGhlIHBsbF9zZXR1cCBh bmQgSSdtIHVzaW5nIGl0IGluIG15IG1haW4uYwo+IGFzCj4gPiBhIGZ1bmN0aW9uLgo+ID4KPiA+ Cj4gPgo+ID4KPiA+Cj4gPgo+ID4KPiA+Cj4gPgo+ID4gT24gTW9uLCBPY3QgMTMsIDIwMTQgYXQg MTowMSBQTSwgSXNhYWMgTWFyaW5vIEJhdmFyZXNjbyA8Cj4gPiBpc2FhY2JhdmFyZXNjb0B5YWhv by5jb20uYnI+IHdyb3RlOgo+ID4KPiA+PiBTdGFydCB3aXRoIHRoZSBvYnZpb3VzLCBkaWQgeW91 IGVuYWJsZSB0aGUgV2F0Y2hkb2c/IEFuZCBpZiBlbmFibGVkLCBhcmUKPiA+PiB5b3UgcmVzZXR0 aW5nIGl0IHJlZ3VsYXJseT8KPiA+Pgo+ID4+IFNlY29uZCwgZG8geW91IGhhdmUgc29tZSBpbnRl cnJ1cHQgZW5hYmxlZCBmb3Igd2hhdCB5b3UgZGlkbid0IGNyZWF0ZSBhCj4gPj4gaGFuZGxlcj8K PiA+Pgo+ID4+IEFub3RoZXIgaXNzdWUgdGhhdCBjYW4gY2F1c2UgUElDMjQvZHNQSUMgZGV2aWNl cyB0byByZXNldCBpcyBhY2Nlc3NpbmcKPiA+PiBtZW1vcnkgdXNpbmcgdW5pbml0aWFsaXplZCBX IHJlZ2lzdGVycyBhcyBwb2ludGVycy4KPiA+Pgo+ID4+Cj4gPj4gSWYgeW91ciBjb2RlIGlzIHRo YXQgc2ltcGxlLCBjb3VsZCB5b3UgYXR0YWNoIGl0IGluIGl0cyBlbnRpcmV0eT8gVGhlCj4gPj4g ZnVzZXMgY29uZmlndXJhdGlvbiBtYXkgYWxzbyBoZWxwLCBsaWtld2lzZSwgeW91ciBGcmVlUlRP U0NvbmZpZy5oIGZpbGUKPiA+PiBjb3VsZCBnaXZlIHNvbWUgaW5zaWdodC4KPiA+Pgo+ID4+Cj4g Pj4gQmVzdCByZWdhcmRzLAo+ID4+Cj4gPj4gSXNhYWMKPiA+Pgo+ID4+Cj4gPj4gT24gMTMvMTAv MjAxNCAwNzoyMywgVGFtw6FzIEZla2V0ZSB3cm90ZToKPiA+Pj4gRGVhciBQaWNMaXN0ICEKPiA+ Pj4KPiA+Pj4gSW0gdXNpbmcgRnJlZVJUT1Mgd2l0aCBtcGxhYnggd2l0aCBkc3BpYzMzZmoxMjht YzgwMiBtaWNyb2NvbnRyb2xsZXIuCj4gPj4+Cj4gPj4+IEkgbWFrZSBhIHZlcnkgc2ltcGxlIHRh c2sgaW4gRnJlZVJUT1MgYW5kIGV2ZXJ5dGhpbmcgY29tcGlsZXMgd2l0aG91dAo+ID4+PiBlcnJv cnMuCj4gPj4+Cj4gPj4+IFdoZW4gSSdtIGluIGRlYnVnIG1vZGUgYW5kIHRoZSBwcm9ibGVtIGlz IHRoYXQgdGhlIG1pY3JvY29udHJvbGxlciBpcwo+ID4+PiByZXNldHRpbmcgaXRzZWxmLgo+ID4+ Pgo+ID4+PiBObyBzb3VyY2UgY29kZSBsaW5lcyB3ZXJlIGZvdW5kIGF0IGN1cnJlbnQgUEMgMHgw MAo+ID4+PiBObyBzb3VyY2UgY29kZSBsaW5lcyB3ZXJlIGZvdW5kIGF0IGN1cnJlbnQgUEMgMHgy OWUKPiA+Pj4KPiA+Pj4gdGhlIHNpbXBsZSB0YXNrIGlzIDoKPiA+Pj4KPiA+Pj4gdm9pZCBzZW5k X3Rhc2sodm9pZCAqcCl7Cj4gPj4+ICAgICB3aGlsZSAoMSkKPiA+Pj4gICAgIHsKPiA+Pj4KPiA+ Pj4gICAgICAgICBBPUErMTsKPiA+Pj4gICAgICAgICB2VGFza0RlbGF5KDUwMCk7Cj4gPj4+ICAg ICB9Cj4gPj4+Cj4gPj4+IH0KPiA+Pj4KPiA+Pj4KPiA+Pj4gV2hlbiBpbiBkZWJ1ZyBtb2RlIEkg c2hvdWxkIHNlZSB0aGUgdmFyaWFibGUgQSBpbmNyZW1lbnRlZCBieSAxIGV2ZXJ5Cj4gNTAwCj4g Pj4+IG1pbGxpc2Vjb25kcy4gVGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgbWljcm9jb250cm9sbGVy IHJlc2V0cyBpdHNlbGYgYXQKPiA+Pj4gYWRkcmVzcyAweDI5ZSAgYW5kIHN0YXJ0IGFnYWluIGF0 IGFkZHJlc3MgMHgwIGFuZCBkb2VzbnQgY3JlYXRlcyB0aGUKPiA+PiB0YXNrLgo+ID4+PiBUaGUg c2ltcGxlIG1haW4gZnVuY3Rpb246Cj4gPj4+Cj4gPj4+IGludCBtYWluICh2b2lkKQo+ID4+PiB7 Cj4gPj4+IHBsbF9zZXR1cCgpOyAvLyBzZXQgaW50ZXJuYWwgb3NjaWxsYXRvciB0byA4ME1Iei0t PjQwTUlQUyBGQ1k9Rm9zYy8yCj4gPj4+IHhUYXNrQ3JlYXRlKHNlbmRfdGFzaywgInNlbmRfdGFz ayIsIDE2LCBOVUxMLCAxLCBOVUxMKTsKPiA+Pj4gdlRhc2tTdGFydFNjaGVkdWxlcigpOwo+ID4+ PiByZXR1cm4gMDsKPiA+Pj4gfQo+ID4+Pgo+ID4+Pgo+ID4+PiBUaGFuayB5b3UgZm9yIGFueSBo ZWxwIG9yIHN1Z2dlc3Rpb25zLgo+ID4+Pgo+ID4+PiBSZWdhcmRzOgo+ID4+PiBGZWtldGUgVGFt w6FzCj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4KPiA+Pgo+ID4+IC0tCj4gPj4gaHR0cDovL3d3dy5w aWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3QgUElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQo+ID4+ IFZpZXcvY2hhbmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0Cj4gPj4gaHR0cDovL21haWxt YW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QKPiA+Pgo+ID4KPiA+Cj4gPgo+ID4K Pgo+IC0tCj4gaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3QgUElDL1NYIEZB USAmIGxpc3QgYXJjaGl2ZQo+IFZpZXcvY2hhbmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0 Cj4gaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QKPgoKCgot LSAKInRoZXJlIGlzIG5vIHNwb29uIgotLSAKaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVm L3BpY2xpc3QgUElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQpWaWV3L2NoYW5nZSB5b3VyIG1lbWJl cnNoaXAgb3B0aW9ucyBhdApodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlzdGluZm8v cGljbGlzdAo= .