VGhlc2UgdGhpbmdzIGFyZSB2ZXJ5IGZhc2NpbmF0aW5nIGFuZCB0aGV5IHR3aXN0IHRoZSBtaW5k IGFyb3VuZCBjb25jZXB0cyB3aGljaCB3ZSByZWFsbHkgY2Fubm90IGNvbmNlaXZlLiBUaW1lbGVz cyBhbmQgc3BhY2VsZXNzIGFyZSByYXRoZXIgaW50aW1pZGF0aW5nIHRvIG15IHRoaW5raW5nLiBI b3cgaW4gdGhlIHdvcmxkIGRvIHdlIHRyeSB0byB1bmRlcnN0YW5kIHRoZXNlIHRoaW5ncy4gKEkg cXVpdCBkcnVncyB5ZWFycyBhZ28pLiBJIHRob3VnaHQgdGhlIGlkZWEgcHJlc2VudGVkIGJ5IGFu b3RoZXIgbWVtYmVyIGFib3V0IGluZmx1ZW5jZSBhdCBhIGRpc3RhbmNlIGRlcGVuZGVudCBvbiB3 YXZlbGVuZ3RoIGFuZCAvIG9yIGVuZXJneSB3YXMgc29tZWhvdyBsb2dpY2FsIGJ1dCByZWFsaXR5 IHNlZW1zIGZhciBzdHJhbmdlciBJIGd1ZXNzLiBBIG11Y2ggYmV0dGVyIHVuZGVyc3RhbmRpbmcg bWF5IGNvbWUgYnV0IHVuZm9ydHVuYXRlbHkgZm9yIG1lIHByb2JhYmx5IGFmdGVyIEkgaGF2ZSBs ZWZ0IHRoaXMgZWFydGhseSByZWFsbS4gQXJycnJnaC4gQnV0IGF0IHdoaWNoIHBvaW50IEkgZG9u J3QgdGhpbmsgSSB3aWxsIGJlIGNvbmNlcm5lZC4gQW5kIGhvcGVmdWxseSB3aWxsIGhhdmUgdGhv c2UgdW5kZXJzdGFuZGluZ3MuIApKSAoKIC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCkZyb206 IHBpY2xpc3QtYm91bmNlc0BtaXQuZWR1IFttYWlsdG86cGljbGlzdC1ib3VuY2VzQG1pdC5lZHVd IE9uIEJlaGFsZiBPZiBSdXNzZWxsTWMKU2VudDogRnJpZGF5LCBOb3ZlbWJlciAyLCAyMDE4IDc6 MzYgUE0KVG86IE1pY3JvY29udHJvbGxlciBkaXNjdXNzaW9uIGxpc3QgLSBQdWJsaWMuIDxwaWNs aXN0QG1pdC5lZHU+ClN1YmplY3Q6IEZ3ZDogW0VFXSBEaWQgeW91IGV2ZXIgd29uZGVyPwoKLS0t LS0tLS0tLSBGb3J3YXJkZWQgbWVzc2FnZSAtLS0tLS0tLS0KRnJvbTogUnVzc2VsbE1jIDxhcHB0 ZWNobnpAZ21haWwuY29tPgpEYXRlOiBTYXQsIDMgTm92IDIwMTggYXQgMTA6MDMKU3ViamVjdDog UmU6IFtFRV0gRGlkIHlvdSBldmVyIHdvbmRlcj8KVG86IE1pY3JvY29udHJvbGxlciBkaXNjdXNz aW9uIGxpc3QgLSBQdWJsaWMuIDxwaWNsaXN0QG1pdC5lZHU+CgoKT24gU2F0LCAzIE5vdiAyMDE4 IGF0IDA0OjI4LCBEYXZpZCBWYW4gSG9ybiA8IGRhdmlkLnZhbmhvcm5AYmFja2NvdW50cnlhY2Nl c3MuY29tPiB3cm90ZToKCj4gU28gZXZlbiB0aGUgcGhvdG9ucyBvZiByYWRpbyB3aXRoIHdhdmVs ZW5ndGhzIG9mIGh1bmRyZWRzIG9mIG1ldGVycyAKPiBhcmUgZGltZW5zaW9ubGVzcyBwb2ludHM/ Cj4KCkFueXRoaW5nIHRyYXZlbGxpbmcgYXQgbGlnaHQgc3BlZWQgaGFzIG5vIG1hc3MgaWYgaXQg bmV2ZXIgaGFkIGFueSwgb3IgaW5maW5pdGUgbWFzcyBpZiBpdCBldmVyIGhhZCBhbnkuLgpBcyBh bnl0aGluZyBhcHByb2FjaGVzIGxpZ2h0IHNwZWVkIHRpbWUgc2xvd3MsIGFuZCBjZWFzZXMgdG8g YWx0ZXIgYXQgbGlnaHQgc3BlZWQuCkFzIGFueXRoaW5nIGFwcHJvYWNoZXMgbGlnaHQgc3BlZWQg c3BhY2UgInNocmlua3MiLCBhbmQgc3BhdGlhbCBkaW1lbnNpb25zIGJlY29tZSB6ZXJvIGF0IGxp Z2h0IHNwZWVkLgoKUGhvdG9ucyBoYXZlIG5vICJtYXNzIiBbdG1dLiAoWW91IGtub3cgdGhlIHJl c3QpLgpQaG90b25zIHRyYXZlbCBhdCAidGhlIHNwZWVkIG9mIGxpZ2h0IiBbdG1dLgpGb3IgcGhv dG9ucyBleGlzdGVuY2UgaXMgdGltZWxlc3MgJiAic3BhY2VsZXNzIgoKSGVuY2U6ICpBTEwqIHBo b3RvbnMgaHVkZGxlIHRvZ2V0aGVyIGluIGEgdGltZWxlc3Mgc3BhY2VsZXNzIGdyb3VwIHdhaXRp bmcgdGhlIGVuZCBvZiBhbGwgdGhpbmdzLgpXZSBtYXkgdGhpbmsgb3RoZXJ3aXNlLCBidXQsIHdo YXQgZG8gd2Uga25vdz8gKFJlYWxseSEpCgpUd28gcGhvdG9ucywgb25lIGxlYXZpbmcgQWxwaGEg Y2VudGF1cmkgcHJveGltYSwgYW5kIHRoZSBvdGhlciBsZWF2aW5nIFNvbCAic2ltdWx0YW5lb3Vz bHkiIGxlYXZlIHRvZ2V0aGVyLCBhcnJpdmUgYXQgZWcgVGVycmEgdG9nZXRoZXIsIGRvIHNvIGlu c3RhbnRhbmVvdXNseSwgYW5kIGhhdmUgbmV2ZXIgbW92ZWQsIGlmIHlvdSBhc2sgdGhlaXIgb3Bp bmlvbi4gV2hpY2ggaXMgZGlmZmljdWx0IGFzIGl0IHBlcnR1cmJzIHRoZW0gZ3JlYXRseS4gRXZl biB0aG91Z2ggdGhleSBhcHBlYXIgdW5tb3ZlZCBieSB0aGUgZXhwZXJpZW5jZSwgb3IgbGFjayBv ZiBpdC4KClBob3RvbnMsIGFuZCB0aGVpciBOZXV0cmlubyBjb3VzaW5zLCBhcmUgZG93bnJpZ2h0 IHdlaXJkLiBTbyBpcyBldmVyeXRoaW5nIGVsc2UsIGJ1dCBpdCdzIHVzdWFsbHkgbGVzcyBvYnZp b3VzLgoKVGhyZWUgcXVhcmtzIGZvciBNdXN0ZXIgTWFyay4gRG9uJ3QgdHJ5IHlvdXIgc3RyYW5n ZSBjaGFybSBvZmZlbnNpdmUgb24gbWUuCllvdSdsbCBiZSBoZWFkIG92ZXIgaGVlbHMgaW4gbm8g dGltZSAob3IgdmVyeSBsaXR0bGUpLgoxMiBxdWFya3MgdG8gcnVsZSB0aGVtIGFsbCwgMTIgLi4u IC4KRG9uJ3QgZXZlbiBzdGFydCAhCgogICAgICAgIFJ1c3NlbGwKCgogRnJvbTogcGljbGlzdC1i b3VuY2VzQG1pdC5lZHUgPHBpY2xpc3QtYm91bmNlc0BtaXQuZWR1PiBPbiBCZWhhbGYgT2YgRGF2 aWQgQyBCcm93bgoKPgo+IFBob3RvbnMgYXJlIG1hc3MgbGVzcyBwb2ludCBwYXJ0aWNsZXMgc28g dGhleSBkb24ndCBoYXZlIGEgdm9sdW1lIGFuZAo+IGNlcnRhaW5seSBkb24ndCBlbmNsb3NlIGFu eSBzcGFjZS4gICAgICBJdCBpcyBzb3J0IG9mIG1lYW5pbmdmdWwgdG8gc3BlYWsKPiBvZiB0aGUg cmFkaXVzIG9mIGEgcGhvdG9uIGFzIGl0cyBpbnRlcmFjdGlvbiByYW5nZS4gIFRoaXMgc2NhbGVz IHdpdGggCj4gaXRzIHdhdmVsZW5ndGgsIHNvICJsaWdodCAib2YgbG9uZ2VyIHdhdmVsZW5ndGgg aXMgbW9yZSBsaWtlbHkgdG8gCj4gaW50ZXJhY3Qgd2l0aCBhIGNvbmR1Y3RpdmUgbWF0ZXJpYWwg dGhhbiAibGlnaHQiIG9mIGEgc2hvcnRlciAKPiB3YXZlbGVuZ3RoLiBJbiB0aGlzIHdheSB5b3Ug Y291bGQgc2F5IHRoZSDigJxzaXpl4oCdIG9mIHBob3RvbiBpcyAKPiBiYXNpY2FsbHkgaXRzIHdh dmVsZW5ndGggX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gRGF2 aWQgQyBCcm93bgo+Cj4KLS0KaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3Qg UElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZSBWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0 aW9ucyBhdCBodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlzdGluZm8vcGljbGlzdAoK LS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBs aXN0IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDov L21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK .