PGh0bWw+PGhlYWQ+CjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZGVmYXVsdF9zdHlsZS5jc3MiPgo8dGl0bGU+RWNsaXBzZS5vcmcgY29uc29ydGl1bTwvdGl0bGU+PC9oZWFkPgo8Ym9keT4KPHRhYmxlIGJvcmRlcj0wIGNlbGxzcGFjaW5nPTUgY2VsbHBhZGRpbmc9MiB3aWR0aD0iMTAwJSIgPgogIDx0cj4gCiAgICA8dGQgYWxpZ249bGVmdCB3aWR0aD0iNzIlIj4gPGZvbnQgY2xhc3M9aW5kZXh0b3A+IGVjbGlwc2Uub3JnIGJ5bGF3czwvZm9udD4gCiAgICAgIDxicj4KICAgICAgPGZvbnQgY2xhc3M9aW5kZXhzdWI+IHRoZSBvcGVuIGNvbW11bml0eSBkcml2aW5nIHRoZSBlY2xpcHNlIHBsYXRmb3JtPC9mb250PiA8L3RkPgogICAgPHRkIHdpZHRoPSIyOCUiPjxpbWcgc3JjPSIuLi9pbWFnZXMvSWRlYS5qcGciIGhlaWdodD04NiB3aWR0aD0xMjA+PC90ZD4KICA8L3RyPgo8L3RhYmxlPgo8dGFibGUgYm9yZGVyPTAgY2VsbHNwYWNpbmc9NSBjZWxscGFkZGluZz0yIHdpZHRoPSIxMDAlIiA+CiAgPHRyPiAKICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMwMDgwQzAiPjxiPjxmb250IGNvbG9yPSIjRkZGRkZGIiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EiPmVjbGlwc2Uub3JnIAogICAgICBieWxhd3M8L2ZvbnQ+PC9iPjwvdGQ+CiAgPC90cj4KICA8dHI+IAogICAgPHRkPiAKICAgICAgPGgzPjEuMCYjOTtNZW1iZXJzaGlwIGluIEVjbGlwc2Uub3JnPC9oMz4KCjxQPk1lbWJlcnMgYXJlIHRob3NlIHBlcnNvbnMgb3IgZW50aXRpZXMgd2hvIGNhbiBtYWtlIHN1YnN0YW50aWFsIGNvbnRyaWJ1dGlvbnMgaW4gdGVybXMgb2YgdGltZSwgdGVjaG5vbG9neSwga25vd2xlZGdlLCBvciBpbmR1c3RyeSBleHBlcnRpc2UgdG8gRWNsaXBzZS5vcmcgYW5kIHNoYXJlIGluIHRoZSBFY2xpcHNlLm9yZyB2aXNpb24uICBUaGF0IHZpc2lvbiBpcyB0byBjcmVhdGUgYW4gb3BlbiBwbGF0Zm9ybSBmb3IgdG9vbCBpbnRlZ3JhdGlvbiAoJnF1b3Q7Q29kZSBCYXNlJnF1b3Q7KSBidWlsdCBieSBhbiBvcGVuIGNvbW11bml0eSBvZiB0b29sIHByb3ZpZGVycywgb3BlcmF0aW5nIHVuZGVyIGFuIG9wZW4gc291cmNlIG1vZGVsLCB3aXRoIGEgQ29tbW9uIFB1YmxpYyBMaWNlbnNlIHRoYXQgZ3JhbnRzIHJveWFsdHkgZnJlZSBhbmQgd29ybGQgd2lkZSByZS1kaXN0cmlidXRpb24gcmlnaHRzIGluIHRoZSBDb2RlIEJhc2UuICBNZW1iZXJzIHdpbGwgYmUgZXh0ZW5kZWQgYWRkaXRpb25hbCBwcml2aWxlZ2VzIGluIEVjbGlwc2Uub3JnIG5vdCBhdmFpbGFibGUgdG8gdGhlIGdlbmVyYWwgY29tbXVuaXR5LiAgPC9QPgoKPFA+VG8gYmUgYSBNZW1iZXIsIHRoZSBwZXJzb24gb3IgZW50aXR5IG11c3QgY29tcGxldGUgYSB3cml0dGVuIG1lbWJlcnNoaXAgYXBwbGljYXRpb24gaW4gc3VjaCBmb3JtIGFzIHNoYWxsIGJlIGFkb3B0ZWQgYnkgdGhlIEVjbGlwc2Uub3JnIEJvYXJkICh0aGUgJnF1b3Q7Qm9hcmQmcXVvdDspLiAgVGhlIG5vbWluYXRpb24gYW5kIGNvbnRlbnQgb2YgdGhlIG1lbWJlcnNoaXAgYXBwbGljYXRpb24gbXVzdCBiZSBpbmNsdWRlZCBpbiBhIG5vdGljZSB0byB0aGUgU3Rld2FyZHMsIGF0IGxlYXN0IHRlbiAoMTApIGRheXMgcHJpb3IgdG8gYW55IHZvdGUgb24gdGhlIGFwcGxpY2FudCdzIGFkbWlzc2lvbiwgd2hpY2ggbm90aWNlIG1heSBiZSBieSBlbGVjdHJvbmljIG1lYW5zLiAgTWVtYmVycyBhcmUgYXBwcm92ZWQgZm9yIGFkbWlzc2lvbiBieSBhIHR3by10aGlyZHMgKDIvMykgbWFqb3JpdHkgb2YgYWxsIGV4aXN0aW5nIFN0ZXdhcmRzLiAgTWVtYmVyc2hpcCBzaGFsbCBvbmx5IGJlY29tZSBlZmZlY3RpdmUgb25jZSB0aGUgYXBwbGljYW50IGhhcyBleGVjdXRlZCB0aGUgTWVtYmVyc2hpcCBBZ3JlZW1lbnQgaW4gc3VjaCBmb3JtIGFzIHNoYWxsIGJlIGFkb3B0ZWQgYnkgdGhlIEJvYXJkLjwvUD4KCjxoMz4yLjAmIzk7RWNsaXBzZS5vcmcgQm9hcmQ8L2gzPgoKPFA+VGhlIEJvYXJkIHNoYWxsIGJlIGNvbXByaXNlZCBvZiBTdGV3YXJkcywgYSBDaGFpcnBlcnNvbiwgYSBTZWNyZXRhcnksIFByb2plY3QgTGVhZGVycyAsIGFuZCBBc3NvY2lhdGVzLiAgVGhlIEJvYXJkIHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlc3RhYmxpc2hpbmcgdGhlIHBvbGljaWVzIGFuZCBwcmFjdGljZXMgb2YgRWNsaXBzZS5vcmcuICBUaGUgQm9hcmQgc2hhbGwgaGF2ZSBubyBhdXRob3JpdHkgdG8gYmluZCBvciBtYWtlIG9ibGlnYXRpb25zIG9uIGJlaGFsZiBvZiB0aGUgTWVtYmVycy48L1A+Cgo8aDQ+Mi4xJiM5O1N0ZXdhcmRzPC9oND4KCjxQPlN0ZXdhcmRzIGFyZSBub21pbmF0ZWQgYnkgdGhlIE1lbWJlcnMgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBNZW1iZXJzaGlwIEFncmVlbWVudCBhbmQgc2hhbGwgYmUgYXBwcm92ZWQgZm9yIGFkbWlzc2lvbiB0byB0aGUgQm9hcmQgYnkgYSBtYWpvcml0eSBvZiB0aGUgZXhpc3RpbmcgU3Rld2FyZHMuICBFYWNoIE1lbWJlciBzaGFsbCBiZSByZXByZXNlbnRlZCBieSBvbmUgKDEpIFN0ZXdhcmQgYXMgZGVmaW5lZCBpbiB0aGUgTWVtYmVyc2hpcCBBZ3JlZW1lbnQuICA8L1A+CjxQPlN0ZXdhcmRzIHNoYWxsIHNlcnZlIGZvciBhIHRlcm0gb2YgdHdvICgyKSB5ZWFycy4gIEF0IHRoZSBlbmQgb2YgdGhpcyB0ZXJtLCB0aGUgaW5kaXZpZHVhbCBtYXkgYmUgbm9taW5hdGVkIGFnYWluIG9yIHRoZSBNZW1iZXIgbWF5IG5vbWluYXRlIGEgbmV3IGluZGl2aWR1YWwuPC9QPgoKPFA+QSBNZW1iZXIgbWF5IHdpdGhkcmF3IHRoZWlyIFN0ZXdhcmQgYXQgdGhlaXIgZGlzY3JldGlvbiBhdCBhbnkgdGltZSBieSB3cml0dGVuIG5vdGljZSB0byB0aGUgU2VjcmV0YXJ5IG9yIENoYWlycGVyc29uLiAgVGhlIE1lbWJlciBtYXkgdGhlbiBwdXQgZm9yd2FyZCBhIG5vbWluYXRpb24gZm9yIGEgbmV3IFN0ZXdhcmQuPC9QPgoKPFA+QSBTdGV3YXJkIGNhbiB3aXRoZHJhdyBmcm9tIHRoZSBCb2FyZCBhdCBhbnkgdGltZSBieSB3cml0dGVuIG5vdGljZSB0byB0aGUgU2VjcmV0YXJ5IG9yIENoYWlycGVyc29uLjwvUD4KCjxQPlN0ZXdhcmRzIGhhdmUgcmVzcG9uc2liaWxpdHkgZm9yIGVzdGFibGlzaGluZyB0aGUgcG9saWNpZXMgYW5kIHByYWN0aWNlcyBvZiBFY2xpcHNlLm9yZyAuIFRoZSBTdGV3YXJkcyByZXZpZXcgYW5kIGFwcHJvdmUgdGVjaG5pY2FsIGFuZCBvcGVyYXRpb25hbCBwbGFucy48L1A+Cgo8UD5UaGUgcmlnaHQgb2YgYSBTdGV3YXJkIHRvIGNhc3QgYSB2b3RlIGF0IG1lZXRpbmdzIG9mIHRoZSBCb2FyZCBtYXkgYmUgc3VzcGVuZGVkIGJ5IGEgdHdvLXRoaXJkcyAoMi8zKSBtYWpvcml0eSB2b3RlIGFuZCByZXNvbHV0aW9uIG9mIGFsbCByZW1haW5pbmcgU3Rld2FyZHMgaWYgdGhlIEJvYXJkIGNvbmNsdWRlcyB0aGF0IHRoZSBNZW1iZXIgd2hpY2ggdGhlIFN0ZXdhcmQgaXMgcmVwcmVzZW50aW5nIGhhcyBmYWlsZWQgdG8gaG9ub3IgcHJvbWlzZXMgb2Ygc3VwcG9ydCBvciByZXNvdXJjZXMuPC9QPgoKPGg0PjIuMiYjOTtBc3NvY2lhdGVzPC9oND4KCjxQPkFzc29jaWF0ZXMgc2hhbGwgYmUgbm9taW5hdGVkIGJ5LCAgYW5kIGFwcHJvdmVkIGJ5IGEgbWFqb3JpdHkgdm90ZSBvZiwgdGhlIFN0ZXdhcmRzIGFuZCBzaGFsbCByZXByZXNlbnQgYXJlYXMgb2YgdGVjaG5pY2FsLCBhY2FkZW1pYywgb3IgYnVzaW5lc3MgZGlzY2lwbGluZXMgY29tcGxpbWVudGFyeSB0byB0aGUgRWNsaXBzZS5vcmcgdmlzaW9uLiAgQXNzb2NpYXRlcyBtYXkgcGFydGljaXBhdGUgaW4gbWVldGluZ3MgYW5kIGRlbGliZXJhdGlvbnMgb2YgdGhlIEJvYXJkIGJ1dCBhcmUgbm90IGVudGl0bGVkIHRvIGEgdm90ZSBhdCB0aG9zZSBtZWV0aW5ncyB1bmxlc3MgIHRoZSBBc3NvY2lhdGUgaXMgYWxzbyBhIFN0ZXdhcmQuPC9QPgoKPFA+QXNzb2NpYXRlcyBzaGFsbCBzZXJ2ZSBmb3IgYSB0ZXJtIG9mIG9uZSAoMSkgeWVhci4gIEF0IHRoZSBlbmQgb2YgdGhpcyB0ZXJtLCB0aGUgaW5kaXZpZHVhbCBtYXkgYmUgbm9taW5hdGVkIGFnYWluLjwvUD4KCjxQPkFzc29jaWF0ZXMgc2VydmUgYXQgdGhlIHBsZWFzdXJlIG9mIHRoZSBTdGV3YXJkcyBhbmQgY2FuIGJlIHJlbW92ZWQgYXQgYW55IHRpbWUgYnkgbWFqb3JpdHkgdm90ZSBvZiB0aGUgU3Rld2FyZHMuPC9QPgoKPFA+QW4gQXNzb2NpYXRlIGNhbiB3aXRoZHJhdyBmcm9tIHRoZSBCb2FyZCBhdCBhbnkgdGltZSBieSB3cml0dGVuIG5vdGljZSB0byB0aGUgU2VjcmV0YXJ5IG9yIENoYWlycGVyc29uLjwvUD4KCjxoND4yLjMmIzk7UHJvamVjdCBMZWFkZXJzPC9oND4KCjxQPlByb2plY3QgTGVhZGVycyBhcmUgbm9taW5hdGVkIGJ5LCBhbmQgYXBwcm92ZWQgYnkgYSBtYWpvcml0eSB2b3RlIG9mLCB0aGUgU3Rld2FyZHMgdG8gbWFuYWdlIHByb2plY3RzLiAgUHJvamVjdCBMZWFkZXJzIG1heSBwYXJ0aWNpcGF0ZSBpbiBtZWV0aW5ncyBhbmQgZGVsaWJlcmF0aW9ucyBvZiB0aGUgQm9hcmQuICBQcm9qZWN0IExlYWRlcnMgYXJlIG5vdCBlbnRpdGxlZCB0byBhIHZvdGUgdW5sZXNzIHRoZSBQcm9qZWN0IExlYWRlciBpcyBhbHNvIGEgU3Rld2FyZC48L1A+Cgo8UD5BIFByb2plY3QgTGVhZGVyIGNhbiB3aXRoZHJhdyBmcm9tIHRoZSBCb2FyZCBhdCBhbnkgdGltZSBieSB3cml0dGVuIG5vdGljZSB0byB0aGUgU2VjcmV0YXJ5IG9yIENoYWlycGVyc29uLiAgSG93ZXZlciwgYSBQcm9qZWN0IExlYWRlciB3aG8gd2l0aGRyYXdzIGZyb20gdGhlIEJvYXJkIG11c3QgYWxzbyB3aXRoZHJhdyBhcyBjaGFpcnBlcnNvbiBvZiB0aGUgUHJvamVjdCBNYW5hZ2VtZW50IENvbW1pdHRlZSB0aGV5IHdlcmUgbGVhZGluZy48L1A+Cgo8aDQ+Mi40JiM5O0NoYWlycGVyc29uPC9oND4KCjxQPkEgQ2hhaXJwZXJzb24gZm9yIHRoZSBCb2FyZCBzaGFsbCBiZSBub21pbmF0ZWQgYnkgb25lIG9yIG1vcmUgb2YgdGhlIFN0ZXdhcmRzIGFuZCBzaGFsbCBiZSBhcHBvaW50ZWQgYnkgbWFqb3JpdHkgdm90ZSBvZiBhbGwgZXhpc3RpbmcgU3Rld2FyZHMuICBUaGUgQ2hhaXJwZXJzb24gc2hhbGwgaGF2ZSB0aGUgcmlnaHRzIGFuZCByZXNwb25zaWJpbGl0aWVzIGRlZmluZWQgaGVyZWluLiAgVGhlIENoYWlycGVyc29uIHNoYWxsIHBhcnRpY2lwYXRlIGluIG1lZXRpbmdzIGFuZCBkZWxpYmVyYXRpb25zIG9mIHRoZSBCb2FyZC4gIFRoZSBDaGFpcnBlcnNvbiBzaGFsbCBiZSBlbnRpdGxlZCB0byBjYXN0IGEgc2luZ2xlIHZvdGUgd2hlcmUgdGhlcmUgaXMgYSB0aWUgYW1vbmcgdGhlIFN0ZXdhcmRzLiAgVW5kZXIgbm8gb3RoZXIgY2lyY3Vtc3RhbmNlcyBpcyB0aGUgQ2hhaXJwZXJzb24gZW50aXRsZWQgdG8gYSB2b3RlIGV4Y2VwdCB0byBicmVhayBhIHRpZS4gIFRoZSBDaGFpcnBlcnNvbiBtYXkgbm90IGJlIGEgU3Rld2FyZC48L1A+Cgo8UD5UaGUgQ2hhaXJwZXJzb24gc2hhbGwgcHJlc2lkZSBvdmVyIGFsbCBtZWV0aW5ncyBvZiB0aGUgQm9hcmQgYW5kIGF0IHRoZSBBbm51YWwgRGV2ZWxvcGVycyBNZWV0aW5nLiAgVGhlIENoYWlycGVyc29uIHNoYWxsIGxlYWQgdGhlIEV4ZWN1dGl2ZSBDb21taXR0ZWUuICBUaGUgQ2hhaXJwZXJzb24sIG9yIGhpcy9oZXIgZGVzaWduYXRlLCBzaGFsbCBhY3QgYXMgdGhlIG9mZmljaWFsIHNwb2tlc3BlcnNvbiBmb3IgRWNsaXBzZS5vcmcuICBUaGUgQ2hhaXJwZXJzb24gIHNoYWxsICBoYXZlIHJlc3BvbnNpYmlsaXR5IGZvciAgZ2VuZXJhbCBhbmQgYWN0aXZlIG1hbmFnZW1lbnQgb2YgdGhlIGFmZmFpcnMgb2YgZWNsaXBzZS5vcmcuIFRoZSBDaGFpcnBlcnNvbiBzaGFsbCBwZXJmb3JtIHN1Y2ggb3RoZXIgZHV0aWVzIGFuZCByZXNwb25zaWJpbGl0aWVzIGFzIGRlZmluZWQgYnkgdGhlIEJvYXJkIGZyb20gdGltZSB0byB0aW1lLjwvUD4KCjxQPlRoZSBDaGFpcnBlcnNvbiBzaGFsbCBzZXJ2ZSBmb3IgYSB0ZXJtIG9mIHR3byAoMikgeWVhcnMuICBBdCB0aGUgZW5kIG9mIHRoaXMgdGVybSwgdGhlIGluZGl2aWR1YWwgbWF5IGJlIG5vbWluYXRlZCBhZ2FpbiBvciB0aGUgU3Rld2FyZHMgY2FuIG5vbWluYXRlIGEgbmV3IGluZGl2aWR1YWwuPC9QPgoKPFA+VGhlIENoYWlycGVyc29uIHNlcnZlcyBhdCB0aGUgcGxlYXN1cmUgb2YgdGhlIFN0ZXdhcmRzIGFuZCBjYW4gYmUgcmVtb3ZlZCBhdCBhbnkgdGltZSBieSBhIG1ham9yaXR5IHZvdGUgb2YgYWxsIGV4aXN0aW5nIFN0ZXdhcmRzPC9QPgoKPFA+VGhlIENoYWlycGVyc29uIGNhbiB3aXRoZHJhdyBmcm9tIHRoZSBCb2FyZCBhdCBhbnkgdGltZSBieSB3cml0dGVuIG5vdGljZSB0byB0aGUgU2VjcmV0YXJ5LjwvUD4KCjxoND4yLjUmIzk7U2VjcmV0YXJ5PC9oND4KCjxQPkEgU2VjcmV0YXJ5IGZvciB0aGUgQm9hcmQgc2hhbGwgYmUgbm9taW5hdGVkIGJ5IG9uZSBvciBtb3JlIG9mIHRoZSBTdGV3YXJkcyBhbmQgc2hhbGwgYmUgYXBwb2ludGVkIGJ5IG1ham9yaXR5IHZvdGUgb2YgdGhlIFN0ZXdhcmRzLiAgVGhlIFNlY3JldGFyeSBzaGFsbCBoYXZlIHRoZSByaWdodHMgYW5kIHJlc3BvbnNpYmlsaXRpZXMgZGVmaW5lZCBoZXJlaW4uICBUaGUgU2VjcmV0YXJ5IHNoYWxsIHBhcnRpY2lwYXRlIGluIG1lZXRpbmdzIGFuZCBkZWxpYmVyYXRpb25zIG9mIHRoZSBCb2FyZC4gIFRoZSBTZWNyZXRhcnkgc2hhbGwgbm90IGJlIGVudGl0bGVkIHRvIGEgdm90ZSB1bmxlc3MgdGhlIFNlY3JldGFyeSBpcyBhbHNvIGEgU3Rld2FyZC48L1A+Cgo8UD5UaGUgU2VjcmV0YXJ5IHNoYWxsIGtlZXAgYWNjdXJhdGUgcmVjb3JkcyBvZiBwcm9jZWVkaW5ncyBvZiBhbGwgbWVldGluZ3Mgb2YgdGhlIEJvYXJkLiAgVGhlIFNlY3JldGFyeSBzaGFsbCBnaXZlIGFsbCBub3RpY2VzIHJlcXVpcmVkIGJ5IHRoZXNlIEJ5bGF3cyBhbmQgdGhlIE1lbWJlcnNoaXAgQWdyZWVtZW50LiAgVGhlIFNlY3JldGFyeSBzaGFsbCBoYXZlIGdlbmVyYWwgY2hhcmdlIG9mIHRoZSBtZW1iZXJzaGlwIHJlY29yZHMgb2YgRWNsaXBzZS5vcmcgYW5kIHNoYWxsIGtlZXAgYSByZWNvcmQgb2YgdGhlIE1lbWJlcnMgc2hvd2luZyB0aGUgbmFtZSwgYWRkcmVzcywgdGVsZXBob25lIG51bWJlciwgZmFjc2ltaWxlIG51bWJlciBhbmQgZWxlY3Ryb25pYyBtYWlsIGFkZHJlc3Mgb2YgZWFjaCBCb2FyZCBwYXJ0aWNpcGFudC4gVGhlIFNlY3JldGFyeSBzaGFsbCBzaWduIHN1Y2ggaW5zdHJ1bWVudHMgYXMgbWF5IHJlcXVpcmUgaGlzIG9yIGhlciBzaWduYXR1cmUgYW5kLCBpbiBnZW5lcmFsLCBzaGFsbCBwZXJmb3JtIGFsbCBkdXRpZXMgYXMgbWF5IGJlIGFzc2lnbmVkIHRvIGhpbSBvciBoZXIgZnJvbSB0aW1lIHRvIHRpbWUgYnkgdGhlIENoYWlycGVyc29uLiAgPC9QPgoKPFA+VGhlIFNlY3JldGFyeSBzaGFsbCBzZXJ2ZSBmb3IgYSB0ZXJtIG9mIHR3byAoMikgeWVhcnMuICBBdCB0aGUgZW5kIG9mIHRoaXMgdGVybSwgdGhlIGluZGl2aWR1YWwgbWF5IGJlIG5vbWluYXRlZCBhZ2FpbiBvciB0aGUgU3Rld2FyZHMgY2FuIG5vbWluYXRlIGEgbmV3IGluZGl2aWR1YWwuPC9QPgoKPFA+VGhlIFNlY3JldGFyeSBzZXJ2ZXMgYXQgdGhlIHBsZWFzdXJlIG9mIHRoZSBTdGV3YXJkcyBhbmQgY2FuIGJlIHJlbW92ZWQgYXQgYW55IHRpbWUgYnkgbWFqb3JpdHkgIHZvdGUgb2YgYWxsIGV4aXN0aW5nIFN0ZXdhcmRzPC9QPgoKPFA+VGhlIFNlY3JldGFyeSBjYW4gd2l0aGRyYXcgZnJvbSB0aGUgQm9hcmQgYXQgYW55IHRpbWUgYnkgd3JpdHRlbiBub3RpY2UgdG8gdGhlIENoYWlycGVyc29uLjwvUD4KCjxoMz4zLjAmIzk7TWVldGluZ3Mgb2YgdGhlIEJvYXJkPC9oMz4KCjxoND4zLjEmIzk7UGxhY2Ugb2YgTWVldGluZ3MuIDwvaDQ+Cgo8UD5NZWV0aW5ncyBvZiB0aGUgQm9hcmQgc2hhbGwgYmUgaGVsZCBhdCBzdWNoIHBsYWNlIGFuZCB0aW1lIGFzIGRlc2lnbmF0ZWQgYnkgdGhlIENoYWlycGVyc29uLiAgTWVldGluZ3MgbWF5IGJlIGhlbGQgaW4gcGVyc29uIG9yIGVsZWN0cm9uaWNhbGx5LjwvUD4KCjxoND4zLjImIzk7QW5udWFsIEdlbmVyYWwgTWVldGluZy4gPC9oND4KCjxQPkEgbWVldGluZyBvZiB0aGUgU3Rld2FyZHMgc2hhbGwgYmUgaGVsZCBhbm51YWxseSBhdCBzdWNoIHRpbWUgYXMgdGhlIENoYWlycGVyc29uIG1heSBkZXRlcm1pbmUgd2hpY2ggc2hhbGwgYmUgbm90IG1vcmUgdGhhbiBmaWZ0ZWVuICgxNSkgbW9udGhzIGFmdGVyIHRoZSBkYXRlIG9mIHRoZSBsYXN0IGFubnVhbCBnZW5lcmFsIG1lZXRpbmcsIGF0IHdoaWNoIGFubnVhbCBnZW5lcmFsIG1lZXRpbmcgdGhlIFN0ZXdhcmRzIHNoYWxsLCBpbiB5ZWFycyB3aGVyZSB0aGVyZSBpcyBhbiBleHBpcmF0aW9uIG9mIHRlcm0sIGVsZWN0IGEgQ2hhaXJwZXJzb24gYW5kIFNlY3JldGFyeSBhbmQgY29uZHVjdCBvdGhlciBkZWxpYmVyYXRpb25zLiA8L1A+Cgo8aDQ+My4zJiM5O1JlZ3VsYXIgYW5kIC8gb3IgU3BlY2lhbCBNZWV0aW5ncy4gPC9oND4KCjxQPlJlZ3VsYXIgYW5kIC8gb3Igc3BlY2lhbCBtZWV0aW5ncyBvZiB0aGUgQm9hcmQgc2hhbGwgYmUgaGVsZCB3aGVuIGRpcmVjdGVkIGJ5IHRoZSBDaGFpcnBlcnNvbiBvciB3aGVuIHJlcXVlc3RlZCBpbiB3cml0aW5nIGJ5IG5vdCBsZXNzIHRoYW4gdHdlbnR5LWZpdmUgcGVyY2VudCAoMjUlKSBvZiBhbGwgU3Rld2FyZHMgZW50aXRsZWQgdG8gdm90ZSBhdCB0aGUgbWVldGluZy4gVGhlIGNhbGwgZm9yIHRoZSBtZWV0aW5nIHNoYWxsIGJlIGlzc3VlZCBieSB0aGUgU2VjcmV0YXJ5LCB1bmxlc3MgdGhlIENoYWlycGVyc29uIG9yIFN0ZXdhcmRzIHJlcXVlc3RpbmcgdGhlIG1lZXRpbmcgc2hhbGwgZGVzaWduYXRlIGFub3RoZXIgcGVyc29uIHRvIGRvIHNvLjwvUD4KCjxoND4zLjQmIzk7Tm90aWNlLiA8L2g0PgoKPFA+V3JpdHRlbiBub3RpY2Ugc3RhdGluZyB0aGUgcGxhY2UsIGRhdGUgYW5kIGhvdXIgb2YgdGhlIG1lZXRpbmcgYW5kLCBpbiB0aGUgY2FzZSBvZiBhIHNwZWNpYWwgbWVldGluZywgdGhlIHB1cnBvc2Ugb3IgcHVycG9zZXMgZm9yIHdoaWNoIHRoZSBtZWV0aW5nIGlzIGNhbGxlZCwgc2hhbGwgYmUgZGVsaXZlcmVkIG5vdCBsZXNzIHRoYW4gZml2ZSAoNSkgbm9yIG1vcmUgdGhhbiBzaXh0eSAoNjApIGRheXMgYmVmb3JlIHRoZSBkYXRlIG9mIHRoZSBtZWV0aW5nLiAgU3VjaCBub3RpY2UgbWF5IGJlIGdpdmVuIGJ5IGVtYWlsIHRvIHRoZSBlbWFpbCBhZGRyZXNzIG9mIHJlY29yZCBmb3IgdGhlIEJvYXJkIG1lbWJlci4gIDwvUD4KCjxoND4zLjUmIzk7UmVjb3JkIG9mIFN0ZXdhcmRzIEhhdmluZyBWb3RpbmcgUmlnaHRzLiA8L2g0PgoKPFA+VGhlIFNlY3JldGFyeSBzaGFsbCBwcmVwYXJlIGFuZCBtYWtlLCBhdCBsZWFzdCB0ZW4gKDEwKSBkYXlzIGJlZm9yZSBlYWNoIG1lZXRpbmcgKGZpdmUgKDUpIGRheXMgaW4gdGhlIGNhc2Ugb2YgU3BlY2lhbCBNZWV0aW5ncykgb2YgdGhlIEJvYXJkLCBhIGNvbXBsZXRlIGxpc3Qgb2YgdGhlIFN0ZXdhcmRzIGVudGl0bGVkIHRvIHZvdGUgYXQgc3VjaCBtZWV0aW5nLCBhcnJhbmdlZCBpbiBhbHBoYWJldGljYWwgb3JkZXIsIGFuZCBzaG93aW5nIHRoZSBuYW1lLCBhZGRyZXNzLCB0ZWxlcGhvbmUgbnVtYmVyLCBmYWNzaW1pbGUgbnVtYmVyIGFuZCBlbGVjdHJvbmljIG1haWwgYWRkcmVzcyBvZiBlYWNoIFN0ZXdhcmQuPC9QPgoKPGg0PjMuNiYjOTtNaW51dGVzIDwvaDQ+CjxQPlRoZSBTZWNyZXRhcnkgc2hhbGwgcG9zdCB0aGUgbWludXRlcyBvZiB0aGUgQm9hcmQgdG8gdGhlIEVjbGlwc2Uub3JnIHdlYiBzaXRlIHdpdGhpbiA2MCBkYXlzIG9mIHRoZSBCb2FyZCBtZWV0aW5nLjwvUD4KCjxoND4zLjcmIzk7UXVvcnVtIDwvaDQ+Cgo8UD5FeGNlcHQgYXMgb3RoZXJ3aXNlIHJlcXVpcmVkIGJ5IHRoZXNlIEJ5bGF3cyBvciB0aGUgTWVtYmVyc2hpcCBBZ3JlZW1lbnQsIG9uZS10aGlyZCAoMS8zKSBvZiB0aGUgU3Rld2FyZHMgZW50aXRsZWQgdG8gdm90ZSwgcmVwcmVzZW50ZWQgaW4gcGVyc29uLCBvciB0aHJvdWdoIHJlZ2lzdGVyZWQgZWxlY3Ryb25pYyBtZWFucywgc2hhbGwgY29uc3RpdHV0ZSBhIHF1b3J1bSBhdCBhIEJvYXJkIG1lZXRpbmcuICBJZiBhIHF1b3J1bSBpcyBwcmVzZW50LCB0aGUgYWZmaXJtYXRpdmUgdm90ZSBvZiBhIG1ham9yaXR5IG9mIHRoZSBTdGV3YXJkcyByZXByZXNlbnRlZCBhdCB0aGUgbWVldGluZyBhbmQgZW50aXRsZWQgdG8gdm90ZSBvbiB0aGUgc3ViamVjdCBtYXR0ZXIgc2hhbGwgYmUgdGhlIGFjdCBvZiB0aGUgU3Rld2FyZHMsIHVubGVzcyB0aGUgdm90ZSBvZiBhIGdyZWF0ZXIgbnVtYmVyIGlzIHJlcXVpcmVkIGJ5IHRoZSBNZW1iZXJzaGlwIEFncmVlbWVudCBvciBieSB0aGVzZSBCeWxhd3MuPC9QPgoKPGg0PjMuOCYjOTtWb3RpbmcuPC9oND4KCjxQPkVhY2ggU3Rld2FyZCBzaGFsbCBiZSBlbnRpdGxlZCB0byBvbmUgKDEpIHZvdGUgb24gZWFjaCBtYXR0ZXIgc3VibWl0dGVkIHRvIGEgdm90ZSBhdCBhIG1lZXRpbmcgb2YgdGhlIFN0ZXdhcmRzLCBleGNlcHQgYXMgbWF5IG90aGVyd2lzZSBiZSBwcm92aWRlZCBpbiB0aGUgTWVtYmVyc2hpcCBBZ3JlZW1lbnQuICBBIFN0ZXdhcmQgbWF5IHZvdGUgZWl0aGVyIGluIHBlcnNvbiBvciBlbGVjdHJvbmljYWxseSBieSBlbWFpbCBzZW50IGZyb20gdGhlIFN0ZXdhcmSScyByZWdpc3RlcmVkIGVsZWN0cm9uaWMgbWFpbCBhZGRyZXNzLiBBIFN0ZXdhcmQgY2Fubm90IGRlbGVnYXRlIHRoaXMgdm90aW5nIHJlc3BvbnNpYmlsaXR5LjwvUD4KCjxoMz40LjAmIzk7Q29tbWl0dGVlczwvaDM+CjxoND40LjEmIzk7UHJvamVjdCBNYW5hZ2VtZW50IENvbW1pdHRlZXMuICA8L2g0PgoKPFA+VGhlIFN0ZXdhcmRzIG1heSwgYnkgbWFqb3JpdHkgdm90ZSBhbmQgcmVzb2x1dGlvbiwgZXN0YWJsaXNoIG9uZSBvciBtb3JlIHByb2plY3RzIHdoaWNoIHNoYWxsIGluY2x1ZGUgdGhlIGFkb3B0aW9uIG9mIGEgY2hhcnRlciBmb3IgdGhlIHByb2plY3QgYW5kIHRoZSBhcHBvaW50bWVudCBvZiBhIFByb2plY3QgTGVhZGVyLiAgVGhlIFByb2plY3QgTGVhZGVyIHNoYWxsIGVzdGFibGlzaCBhbmQgYWN0IGFzIGNoYWlycGVyc29uIGZvciBhIFByb2plY3QgTWFuYWdlbWVudCBDb21taXR0ZWUuICA8L1A+CjxQPkVhY2ggUHJvamVjdCBNYW5hZ2VtZW50IENvbW1pdHRlZSBzaGFsbCBiZSByZXNwb25zaWJsZSBmb3IgdGhlIGFjdGl2ZSBtYW5hZ2VtZW50IG9mIG9uZSBwcm9qZWN0IGlkZW50aWZpZWQgYnkgcmVzb2x1dGlvbiBvZiB0aGUgU3Rld2FyZHMgd2hpY2ggbWF5IGluY2x1ZGUsIHdpdGhvdXQgbGltaXRhdGlvbiwgdGhlIGNyZWF0aW9uIG9yIG1haW50ZW5hbmNlIG9mICJvcGVuLXNvdXJjZSIgc29mdHdhcmUgZm9yIGRpc3RyaWJ1dGlvbiB0byB0aGUgcHVibGljIHVuZGVyIHRoZSBDb21tb24gUHVibGljIExpY2Vuc2UuICBTdWJqZWN0IHRvIHRoZSBkaXJlY3Rpb24gb2YgdGhlIFN0ZXdhcmRzLCB0aGUgY2hhaXJwZXJzb24gb2YgZWFjaCBQcm9qZWN0IE1hbmFnZW1lbnQgQ29tbWl0dGVlIHNoYWxsIGJlIHByaW1hcmlseSByZXNwb25zaWJsZSBmb3IgdGhlIHByb2plY3QgbWFuYWdlZCBieSBzdWNoIGNvbW1pdHRlZSwgYW5kIGhlIG9yIHNoZSBzaGFsbCBlc3RhYmxpc2ggcnVsZXMgYW5kIHByb2NlZHVyZXMgZm9yIHRoZSBkYXktdG8tZGF5IG1hbmFnZW1lbnQgb2YgdGhlIHByb2plY3QgKGFuZCBhbnkgc3ViLXByb2plY3RzKSBmb3Igd2hpY2ggdGhlIGNvbW1pdHRlZSBpcyByZXNwb25zaWJsZS48L1A+CjxQPlRoZSBTdGV3YXJkcyBtYXksIGJ5IG1ham9yaXR5IHZvdGUgYW5kIHJlc29sdXRpb24sIHRlcm1pbmF0ZSBhIFByb2plY3QgYXQgYW55IHRpbWUuICBUaGUgU3Rld2FyZHMgbWF5LCBieSBtYWpvcml0eSB2b3RlIGFuZCByZXNvbHV0aW9uLCByZXBsYWNlIGEgUHJvamVjdCBMZWFkZXIgb3IgdGhlIGVudGlyZSBQcm9qZWN0IE1hbmFnZW1lbnQgQ29tbWl0dGVlLjwvUD4KCjxoND40LjImIzk7RXhlY3V0aXZlIENvbW1pdHRlZTwvaDQ+Cgo8UD5UaGUgU3Rld2FyZHMgbWF5LCBieSBtYWpvcml0eSB2b3RlIGFuZCByZXNvbHV0aW9uLCBlc3RhYmxpc2ggYW4gRXhlY3V0aXZlIENvbW1pdHRlZSBjb25zaXN0aW5nIG9mIHRoZSBDaGFpcnBlcnNvbiwgdGhlIFByb2plY3QgTGVhZGVycywgYW5kIG9uZSBvciBtb3JlIG90aGVyIHBlcnNvbnMgYXMgbmVjZXNzYXJ5IGFuZCBhcHByb3ByaWF0ZS4gIFRoZSBDaGFpcnBlcnNvbiBzaGFsbCBzZXJ2ZSBhcyB0aGUgY2hhaXJwZXJzb24gZm9yIHRoZSBFeGVjdXRpdmUgQ29tbWl0dGVlIGFuZCBtYXkgYXBwb2ludCBvdGhlciBtZW1iZXJzIHRvIHRoZSBFeGVjdXRpdmUgQ29tbWl0dGVlLCBhcyB0aGUgQ2hhaXJwZXJzb24gZGVlbXMgbmVjZXNzYXJ5IGFuZCBhcHByb3ByaWF0ZS48L1A+CjxQPlRoZSBFeGVjdXRpdmUgQ29tbWl0dGVlIHdpbGwgcmVwcmVzZW50IHRoZSB3b3JraW5nIHRlYW0gZm9yIHRoZSBkYXktdG8tZGF5IG9wZXJhdGlvbnMgb2YgRWNsaXBzZS5vcmcuICBUaGUgU3Rld2FyZHMgd291bGQgc3BlY2lmeSB0aGUgc3BlY2lmaWMgcm9sZXMsIHJlc3BvbnNpYmlsaXRpZXMsIGF1dGhvcml0aWVzLCBhbmQgcmVzdHJpY3Rpb25zIG9mIHRoZSBFeGVjdXRpdmUgQ29tbWl0dGVlIGJ5IG1ham9yaXR5IHZvdGUgYW5kIHJlc29sdXRpb24gYXQgdGhlIHRpbWUgdGhlIEV4ZWN1dGl2ZSBDb21taXR0ZWUgaXMgZXN0YWJsaXNoZWQuICBUaGUgRXhlY3V0aXZlIENvbW1pdHRlZSBpcyBub3QgZW1wb3dlcmVkIHdpdGggdGhvc2UgcmVzcG9uc2liaWxpdGllcyB0aGF0IHJlcXVpcmUgc3BlY2lmaWMgcGVyZm9ybWFuY2UgYnkgdGhlIFN0ZXdhcmRzIHVuZGVyIHRoZSBNZW1iZXJzaGlwIEFncmVlbWVudCBvciB1bmRlciB0aGVzZSBCeWxhd3MuPC9QPgo8UD5UaGUgRXhlY3V0aXZlIENvbW1pdHRlZSBzaGFsbCBjb250aW51ZSB1bnRpbCBzdWNoIHRpbWUgYXMgaXQgaXMgdGVybWluYXRlZC4gIFRoZSBTdGV3YXJkcyBvZiBFY2xpcHNlLm9yZyBtYXksIGJ5IG1ham9yaXR5IHZvdGUgYW5kIHJlc29sdXRpb24sIHRlcm1pbmF0ZSB0aGUgRXhlY3V0aXZlIENvbW1pdHRlZSBhdCBhbnkgdGltZS48L1A+Cgo8aDQ+NC4zJiM5O090aGVyIENvbW1pdHRlZXM8L2g0PgoKPFA+VGhlIFN0ZXdhcmRzIG1heSwgYnkgbWFqb3JpdHkgdm90ZSBhbmQgcmVzb2x1dGlvbiwgZXN0YWJsaXNoIHN1Y2ggb3RoZXIgY29tbWl0dGVlcywgYXMgbmVjZXNzYXJ5IGFuZCBhcHByb3ByaWF0ZS48L1A+CjxQPlRoZSBTdGV3YXJkcyB3b3VsZCBzcGVjaWZ5IHRoZSBwdXJwb3NlLCBzY29wZSwgcm9sZXMsIHJlc3BvbnNpYmlsaXRpZXMsIGF1dGhvcml0aWVzLCBhbmQgcmVzdHJpY3Rpb25zIG9mIHRoZSBjb21taXR0ZWUgYnkgbWFqb3JpdHkgdm90ZSBhbmQgcmVzb2x1dGlvbiBhdCB0aGUgdGltZSB0aGUgY29tbWl0dGVlIGlzIGVzdGFibGlzaGVkLiAgVGhlIGNvbW1pdHRlZSBpcyBub3QgZW1wb3dlcmVkIHdpdGggdGhvc2UgcmVzcG9uc2liaWxpdGllcyB0aGF0IHJlcXVpcmUgc3BlY2lmaWMgcGVyZm9ybWFuY2UgYnkgdGhlIFN0ZXdhcmRzIHVuZGVyIHRoZSBNZW1iZXJzaGlwIEFncmVlbWVudCBvciB1bmRlciB0aGVzZSBCeWxhd3MuPC9QPgo8UD5UaGUgb3RoZXIgY29tbWl0dGVlKHMpIHNoYWxsIGNvbnRpbnVlIGZvciB0aGUgdGltZSBkZXRlcm1pbmVkIGJ5IHRoZSBTdGV3YXJkcyBhdCB0aGUgdGltZSB0aGUgY29tbWl0dGVlIHdhcyBlc3RhYmxpc2hlZCBvciB1bnRpbCBvdGhlcndpc2UgdGVybWluYXRlZCBieSB0aGUgU3Rld2FyZHMuICBUaGUgU3Rld2FyZHMgbWF5LCBieSBtYWpvcml0eSB2b3RlIGFuZCByZXNvbHV0aW9uLCB0ZXJtaW5hdGUgdGhlIG90aGVyIGNvbW1pdHRlZShzKSBhdCBhbnkgdGltZS48L1A+Cgo8aDM+NS4wJiM5O0FubnVhbCBEZXZlbG9wZXJzIENvbmZlcmVuY2U8L2gzPgoKPGg0PjUuMSYjOTtQdXJwb3NlPC9oND4KCjxQPlRoZSBwdXJwb3NlIG9mIHRoZSBBbm51YWwgRGV2ZWxvcGVycyBDb25mZXJlbmNlIGlzIHRvIHByb3ZpZGUgYW4gb3Bwb3J0dW5pdHkgZm9yIGRldmVsb3BlcnMgb2YgdGhlIENvZGUgQmFzZSAgYW5kIHRvb2xzIGJ1aWx0IG9uIHRoZSBDb2RlIEJhc2UgdG8gY29udmVuZSBhbmQgZGlzY3VzcyBjb21tb24gaW50ZXJlc3RzIGFuZCBpc3N1ZXMgcmVsYXRlZCB0byB0aGUgcHJvamVjdHMgb2YgRWNsaXBzZS5vcmcuICA8L1A+Cgo8aDQ+NS4yJiM5O1BsYWNlIGFuZCBUaW1lIG9mIHRoZSBDb25mZXJlbmNlPC9oND4KCjxQPlRoZSBBbm51YWwgRGV2ZWxvcGVycyBDb25mZXJlbmNlIHdpbGwgYmUgaGVsZCBhdCBzdWNoIHRpbWUgYW5kIHBsYWNlIGFzIGRlc2lnbmF0ZWQgYnkgdGhlIEJvYXJkLiAgVGhlIGNvbmZlcmVuY2UgbWF5IGJlIGhlbGQgZWxlY3Ryb25pY2FsbHkuPC9QPgoKPGg0PjUuMyYjOTtOb3RpY2Ugb2YgdGhlIEFubnVhbCBEZXZlbG9wZXJzIENvbmZlcmVuY2U8L2g0PgoKPFA+Tm90aWNlIG9mIHRoZSBBbm51YWwgRGV2ZWxvcGVycyBDb25mZXJlbmNlIHNoYWxsIGJlIHNlbnQgYnkgZWxlY3Ryb25pYyBtYWlsIHRvIHRob3NlIHBlcnNvbnMgd2l0aCBlbWFpbCBhZGRyZXNzZXMgcmVnaXN0ZXJlZCB3aXRoIEVjbGlwc2Uub3JnIHdobyBoYXZlIGNvbnNlbnRlZCB0byByZWNlaXZlIHN1Y2ggaW5mb3JtYXRpb24uICBUaGUgbm90aWNlIHNoYWxsIGFsc28gYmUgcG9zdGVkIG9uIHRoZSBFY2xpcHNlLm9yZyB3ZWIgc2l0ZS48L1A+Cgo8aDM+Ni4wJiM5O0FtZW5kbWVudDwvaDM+Cgo8UD5UaGVzZSBCeWxhd3MgbWF5IGJlIGFsdGVyZWQsIGFtZW5kZWQsIHJlcGVhbGVkLCBvciByZXBsYWNlZCBieSB2b3RlIGFuZCByZXNvbHV0aW9uIGFwcHJvdmVkIGJ5IHR3by10aGlyZHMgKDIvMykgb2YgdGhlIFN0ZXdhcmRzLiAgTm8gYWx0ZXJhdGlvbiwgYW1lbmRtZW50IG9yIHJlcGVhbCBvZiB0aGVzZSBCeWxhd3Mgc2hhbGwgYmUgZWZmZWN0aXZlIHVubGVzcyBhbmQgdW50aWwgdGhlIFNlY3JldGFyeSBhdHRlbXB0cywgaW4gZ29vZCBmYWl0aCwgdG8gZ2l2ZSBub3RpY2UgdG8gdGhlIE1lbWJlcnMgb2Ygc3VjaCBhbHRlcmF0aW9uLCBhbWVuZG1lbnQgb3IgcmVwZWFsIGF0IGxlYXN0IGZpZnRlZW4gKDE1KSBkYXlzIHByaW9yIHRvIHRoZSBlZmZlY3RpdmUgZGF0ZSBvZiBzdWNoIGFsdGVyYXRpb24sIGFtZW5kbWVudCBvciByZXBlYWwsIHdoaWNoIG5vdGljZSBtYXkgYmUgYnkgZWxlY3Ryb25pYyBtZWFucy4gIEFueSBzdWNoIEFtZW5kbWVudHMgc2hhbGwgYmUgcHJvc3BlY3RpdmUgb25seS48L1A+CjxociB3aWR0aD0iODUlIj4KICAgICAgPHA+PGEgaHJlZj0ibWFpbi5odG1sIj5SZXR1cm4gdG8gdGhlIGVjbGlwc2Uub3JnIGNvbnNvcnRpdW0gbWFpbiBwYWdlPC9hPjwvcD4KICAgICAgPC90ZD4KICA8L3RyPgogIDwvdGFibGU+CiZuYnNwOwoKJm5ic3A7CjwvYm9keT48L2h0bWw+Cg==