SSB3YXMgd29uZGVyaW5nIGFib3V0IHRoaXMsIHRvby4gTmVpbCwgaG93IGRvIHlvdSBrbm93IHRo YXQgdGhlIGNvbXBhcmF0b3IKaXMgb25seSBzd2l0Y2hpbmcgYXQgYXJvdW5kIDEwa0h6PyBEbyB5 b3UgaGF2ZSBoeXN0ZXJlc2lzIG9uIHlvdXIKY29tcGFyYXRvcj8gSXQgY291bGQgYmUgc3dpdGNo aW5nIG11bHRpcGxlIHRpbWVzIHNvIHF1aWNrbHkgdGhhdCB0aGUgb3V0cHV0CmdldHMgYXZlcmFn ZWQgYnkgdGhlIGdhdGUgY2FwYWNpdGFuY2UgYW5kIGluc3RlYWQgb2YgY29tcGxldGUgb24vb2Zm CmN5Y2xlcywgeW91IGFyZSBnZXR0aW5nIGEgcGFydGlhbGx5LW9uIEZFVC4KClNlYW4KCgpPbiBX ZWQsIE5vdiAyNSwgMjAxNSBhdCA0OjI4IFBNLCBSdXNzZWxsTWMgPGFwcHRlY2huekBnbWFpbC5j b20+IHdyb3RlOgoKPiBPbiAyNSBOb3ZlbWJlciAyMDE1IGF0IDE5OjI5LCBOZWlsIDxwaWNkdWRl M0BuYXJ3YW5pLm9yZz4gd3JvdGU6Cj4KPiA+Cj4gPiBpdCdzIGN1cnJlbnRseSBzZXR1cCB0byBk byA0LjFBIHBlYWsgKGFwcHJveCAyLjFtcyksIHRoZW4gMS4xQSBob2xkIGZvcgo+ID4gdXAgdG8g fjIybXMsIGJlZm9yZSBnb2luZyBpbnRvIGlkbGUvb2ZmIHBoYXNlIGFuZCB0aGVuIHN0YXJ0aW5n IGFub3RoZXIKPiA+IGN5Y2xlLiBUaGUgaG9sZCBjeWNsZSBpcyBQV01lZCAoSSdtIHN0aWxsIGNh bGxpbmcgaXQgUFdNLCBidXQgaW4gcmVhbGl0eQo+ID4gSSdtIGN1cnJlbnQgbGltaXRpbmcgYnkg cmFwaWRseSBtb25pdG9yaW5nIHRoZSBvdXRwdXQgb2YgYSBjb21wYXJhdG9yCj4gPiAofjEwIGto eikgYW5kIHRvZ2dsaW5nIHRoZSBNT1NGRVQgb24vb2ZmIGFjY29yZGluZ2x5KS4KPiA+Cj4KPiDi gItJdCBNVVNUIGJlIFBXTSBpZiB5b3UgZG8gbm90IHdhbnQgbGluZWFyIGRpc3NpcGF0aW9uIGlm IEZFVC4KPiBJZiBpdCBpcyBoZWF0c2lua2VkIHRvIGFjdCBhcyBsaW5lYXIgcmVndWxhdG9yIHRo ZW4gdGhhdCdzIE9LLgo+IEFsc28gaW5qZWN0b3Igb24lIGlzIGEgZmFjdG9yIGFuZCB0aGF0IGlz IG5vdCBzdGF0ZWQgaGVyZS4gTWF5YmUgZWFybGllcgo+IG9uLgo+IGVnIHlvdSBoYXZlIDIgbVMg YXQgNEEsIDIyIG1TIGF0IDFBIGJ1dCB1bmtub3duIG9mZiBwZXJpb2QuCj4KPiBBcyBJIGlzIDRB IHdpZGUgb3BlbiBhbmQgMUEgY3VycmVudCBsaW1pdGVkIGluIGxpbmVhciBtb2RlIHlvdSdkIGRy b3AgYWJvdXQKPiA5ViBhY3Jvc3MgRkVUIHNvIGFib3V0IDEwIFdhdHRzIGRpc3NpcGF0aW9uIHJl ZHVjZWQgYnkgJSBvdmVyYWxsIG9uIHRpbWUuCj4KPgo+Cj4gIFJ1c3NlbGwKPiAtLQo+IGh0dHA6 Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hp dmUKPiBWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdAo+IGh0dHA6Ly9tYWls bWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9waWNsaXN0Cj4KLS0gCmh0dHA6Ly93d3cucGlj bGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9j aGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9t YWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK .