Sm9lICYgU2VyZ2V5LAoKVGhhbmsgeW91IGZvciB5b3VyIHJlcGxpZXMuCgpJIGRvd25sb2FkZWQg dGhlIFNJTiB3YXZlIGdlbmVyYXRvciBjb2RlIGZyb20gdGhlIGZvbGxvd2luZyBsaW5rOgoKaHR0 cDovL3d3dy5nNGpudC5jb20vUElDX0REUy56aXAKCkkgaGFkIGEgbG9vayBhdCBpdCwgYnV0IGl0 IGlzIGltcGxlbWVudGluZyBhIFNJTiB3YXZlIGFuZCB0aGVyZSBpcyBub3RoaW5nIGluIHRoYXQg Y29kZSBkZWFsaW5nIHNwZWNpZmljYWxseSB3aXRoIGEgU1dFRVAgYWNyb3NzIGEgc3RhcnQgYW5k IGVuZCBmcmVxdWVuY3kgd2l0aGluIGEgZ2l2ZW4gdGltZSB3aW5kb3cuCgpJIHdvdWxkIGFsc28g bGlrZSB0byBtYWtlIGl0IGNsZWFyIHRoYXQgRERTIGlzIHRoZSAiTkNPIiAoTnVtZXJpY2FsbHkg Q29udHJvbGxlZCBPc2NpbGxhdG9yKSBvZiB0aGUgUElDMTZGMTUweC1zZXJpZXMuICBFdmVuIHRo ZSBQREYgeW91IHJlZmVyZW5jZWQgZm9yIG1lIHN0YXRlczoKCiJBIEREUyBpcyBubyBtb3JlIHRo YW4gYSBjb3VudGVyIHRoYXQgaXMgaW5jcmVtZW50ZWQgYnkgYSBmaXhlZCB2YWx1ZSBmb3IgZWFj aCBjbG9jayBpbnB1dCwgcm9sbHMtb3ZlciB3aGVuIGl0IHJlYWNoZXMgbWF4aW11bSBhbmQgc3Rh cnRzIGNvdW50aW5nIGFnYWluLiIKClRoYXQgaXMgaW5kZWVkIHdoYXQgdGhlIE5DTyBvZiBhIFBJ QzE2RjE1MDMgb3IgMTZGMTUwOCBpcyBhbmQgZG9lcy4gIEFuZCB0aGF0IGlzIHdoeSBJIG9yZGVy ZWQgc2FtcGxlcyBvZiB0aG9zZSBjaGlwcy4gIEkgcHJvYmFibHkgd2lsbCBlbmQgdXAgdXNpbmcg dGhlIDE1MDggYmVjYXVzZSBpdCBoYXMgbW9yZSBJL08gcGlucywgcnVubmluZyBpdCBvZmYgdGhl IEhQSU5UT1NDIG9mIDE2TUh6ICgyJSB2YXJpYW5jZSwgd2hpY2ggaXMgYWNjZXB0YWJsZSkuICBU aGF0IG1lYW5zIG1vc3QgaW5zdHJ1Y3Rpb25zIGV4ZWN1dGUgaW4gMjUwbnMuCgotIC0gLSAtIC0g LSAtIAoKRGVubnksCgpUaGFuayB5b3UgZm9yIHlvdXIgZGV0YWlsZWQgcmVwbHkuCgpBcyB0byB1 c2luZyBhIEhMTCBsYW5ndWFnZSwgdGhhdCBwb2ludCBpcyByYXRoZXIgbW9vdCB3aXRoIG1lIHNl ZWluZyBJIG9ubHkga25vdyBBc3NlbWJseSwgbm90IEMuICBTbyBpbiBteSBtaW5kLCB0aGVyZSBy ZWFsbHkgaXMgbm8gZGViYXRlIGFib3V0IGl0LgoKSSd2ZSBiZWVuIHVzaW5nIEF1ZGFjaXR5IHRv IG1lYXN1cmUgaW5kaXZpZHVhbCBwdWxzZXMgc28gSSBrbm93IGhvdyBpdCBzbW9vdGhseSBzd2Vl cHMuICBSaWdodCBub3csIEkgYW0gbWVhc3VyaW5nIHRoZSBmb2xsb3dpbmcgc3dlZXA6CgpTdGFy dDogNTAwSHoKRW5kOiAxMjAwSHoKVGltZSBXaW5kb3c6IDQwMG1zCgpBdCB0aGUgbG93IGVuZCwg SSBzZWUgdGhlIHB1bHNlIGFjdHVhbGx5IHN0YXJ0cyBvZmYgYXQgNTA0SHouICBJdCByZXBlYXRz IDIgY3ljbGVzIGF0IDUwNEh6IHRoZW4ganVtcHMgdG8gNTEwSHogZm9yIGEgc2luZ2xlIGN5Y2xl LCB0aGVuIGp1bXBzIHRvIDUxNUh6IGZvciAyIGN5Y2xlcywgdGhlbiB0byA1MjJIeiBmb3IgMyBj eWNsZXMsIG9uZSBjeWNsZSBhdCA1MjlIeiwgdGhlbiAzIGN5Y2xlcyBvZiA1MzVIeiwgYW5kIHNv IG9uLiAgVGhlIHJlcGVhdHMgb2YgdGhlIHNhbWUgZnJlcXVlbmN5IHNsb3dseSBpbmNyZWFzZSBh cyB0aGUgZnJlcXVlbmN5IGluY3JlYXNlcywgd2hpY2ggbWFrZXMgc2Vuc2Ugc2VlaW5nIHRoYXQg dGhlIDUwMEh6IHB1bHNlcyBhcmUgd2lkZXIgdGhhbiB0aGUgaGlnaGVyIGZyZXF1ZW5jeSBwdWxz ZXMuICBIb3dldmVyLCB0aGVyZSBhcmUgYSBsb3Qgb2YgZnJlcXVlbmN5IGp1bXBzIHRoYXQgYXJl IG9ubHkgYSBzaW5nbGUgY3ljbGUsIG5vbi1yZXBlYXRpbmcuCgpJJ3ZlIG9ubHkgbWVhc3VyZWQg MTQ1IHB1bHNlcyBzbyBmYXIgKHJvdWdobHkgMjAwbXMgb2YgdGhlIDQwMG1zIHRvdGFsKSwgYW5k IGFtIG5vdyBhdCA5NTJIei4gIFJlcGVhdHMgbmVhciB0aGF0IGhpZ2hlciBmcmVxdWVuY3kgYXZl cmFnZSB0byBiZSA2LgoKU28gZm9yIG1lIHRvIHNtb290aGx5IHJhbXAvc3dlZXAgdGhlIGZyZXF1 ZW5jeSB1cCBmcm9tIDUwMEh6IGFsbCB0aGUgd2F5IHRvIDEyMDBIeiB3b3VsZCBtZWFuIHRvIHNv bWV3aGF0IGZvbGxvdyB3aGF0IEF1ZGFjaXR5IGlzIGRvaW5nLgoKSSd2ZSBzcGVudCBzZXZlcmFs IGRheXMsIGFjdHVhbGx5LCBHb29nbGluZyBmb3J1bXMsIGJsb2dzLCBQSUMgYm9va3MsIHRoZSBN aWNyb2NoaXAgc2l0ZSwgZXRjLCBidXQgdGhlcmUgaXNu4oCZdCBhIHNpbmdsZSBiaXQgb2YgQXNz ZW1ibHkgY29kZSB0byBiZSBmb3VuZCB3aGVyZSBzb21lb25lIGhhcyBpbXBsZW1lbnRlZCBhIGZy ZXF1ZW5jeSBzd2VlcCBsaWtlIEkgc2VlayB0byBkby4gIEkndmUgZXZlbiBzZWFyY2hlZCBmb3Ig QyBjb2RlLCBidXQgaGF2ZSBjb21lIHVwIGVtcHR5IGhhbmRlZCB0aGVyZSB0b28uICBObyBkb3Vi dCBzb21lb25lIG91dCB0aGVyZSBoYXMgYWNjb21wbGlzaGVkIGl0IGJ1dCBzaW1wbHkgaGFzIGRl Y2lkZWQgbm90IHRvIHNoYXJlIHRoZWlyIGNvZGUgd2l0aCB0aGUgd29ybGQuCgpPbmNlIEkgZ2V0 IHRoZSA1MDAgdG8gMTIwMEh6IHN3ZWVwIGFuYWx5emVkIEkgd2lsbCBwb3N0IGEgbGluayB0byB0 aGUgRXhjZWwgZmlsZSBmb3IgeW91ciByZXZpZXcgYW5kIGZ1cnRoZXIgZGlzY3Vzc2lvbi4gIFRo YXQgd2lsbCBvZiBjb3Vyc2UgcGVydGFpbiBvbmx5IHRvIGEgc2luZ2xlIHN3ZWVwIChhbmQgSSB3 aXNoIHRvIGltcGxlbWVudCBzZXZlcmFsKSwgYnV0IGlmIHRoZSBhbmFseXNpcyB5aWVsZHMgYSBn b29kIHNvbHV0aW9uIGluIEFzc2VtYmx5LCB0aGVuIGl0IHNob3VsZG4ndCBiZSBhIGRpZmZpY3Vs dCB0YXNrIHRvIGltcGxlbWVudCBhbnkgb3RoZXIgc3dlZXAgYWZ0ZXIgdGhhdCAoc3dlZXAgdXAg b3IgZG93bikuCgpUaGFuayB5b3UsCgpKYW1lcyBXYWdlcwoKCgoKLS0gCmh0dHA6Ly93d3cucGlj bGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9j aGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9t YWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK .