飞鸟集 英文版
U3RyYXkgYmlyZHMocmFiaW5kcmFuYXRowqAgdGFnb3JlKTEuIFN0cmF5IGJpcmRzIG9mIHN1bW1lciBjb21lIHRvIG15IHdpbmRvdyB0byBzaW5nIGFuZCBmbHkgYXdheS5BbmQgeWVsbG93IGxlYXZlcyBvZiBhdXR1bW4sIHdoaWNoIGhhdmUgbm8gc29uZ3MsIGZsdXR0ZXIgYW5kIGZhbGwgdGhlcmUgd2l0aCBhIHNpZ24u44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CA44CAIDIuTyBUcm91cGUgb2YgbGl0dGxlIHZhZ3JhbnRzIG9mIHRoZSB3b3JsZCwgbGVhdmUgeW91ciBmb290cHJpbnRzIGluIG15IHdvcmRzLjMuVGhlIHdvcmxkIHB1dHMgb2ZmIGl0cyBtYXNrIG9mIHZhc3RuZXNzIHRvIGl0cyBsb3Zlci5JdCBiZWNvbWVzIHNtYWxsIGFzIG9uZSBzb25nLCBhcyBvbmUga2lzcyBvZiB0aGUgZXRlcm5hbC40LiBJdCBpcyB0aGUgdGVhcnMgb2YgdGhlIGVhcnRoIHRoYXQga2VlcCBoZXJlIHNtaWxlcyBpbiBibG9vbS41LlRoZSBtaWdodHkgZGVzZXJ0IGlzIGJ1cm5pbmcgZm9yIHRoZSBsb3ZlIG9mIGEgYmxhZGVvZiBncmFzcyB3aG8gc2hha2VzIGhlciBoZWFkIGFuZCBsYXVnaHMgYW5kIGZsaWVzIGF3YXkuNi5JZiB5b3Ugc2hlZCB0ZWFycyB3aGVuIHlvdSBtaXNzIHRoZSBzdW4sIHlvdSBhbHNvIG1pc3MgdGhlIHN0YXJzLjcuVGhlIHNhbmRzIGluIHlvdXIgd2F5IGJlZyBmb3IgeW91ciBzb25nIGFuZCB5b3VyIG1vdmVtZW50LCBkYW5jaW5nd2F0ZXIuIFdpbGwgeW91IGNhcnJ5IHRoZSBidXJkZW4gb2YgdGhlaXIgbGFtZW5lc3M4LkhlciB3aXNoZnVsIGZhY2UgaGF1bnRzIG15IGRyZWFtcyBsaWtlIHRoZSByYWluIGF0IG5pZ2h0LjkuIE9uY2Ugd2UgZHJlYW10IHRoYXQgd2Ugd2VyZSBzdHJhbmdlcnMuV2Ugd2FrZSB1cCB0byBmaW5kIHRoYXQgd2Ugd2VyZSBkZWFyIHRvIGVhY2ggb3RoZXIuMTAuIFNvcnJvdyBpcyBodXNoZWQgaW50byBwZWFjZSBpbiBteSBoZWFydCBsaWtlIHRoZSBldmVuaW5nIGFtb25nIHRoZSBzaWxlbnQgdHJlZXMuMTEuIFNvbWUgdW5zZWVuIGZpbmdlcnMsIGxpa2UgYW4gaWRsZSBicmVlemUsIGFyZSBwbGF5aW5nIHVwb24gbXkgaGVhcnQgdGhlIG11c2ljIG9mIHRoZSByaXBwbGVzLjEyLldoYXQgbGFuZ3VhZ2UgaXMgdGhpbmUsIE8gc2VhVGhlIGxhbmd1YWdlIG9mIGV0ZXJuYWwgcXVlc3Rpb24uV2hhdCBsYW5ndWFnZSBpcyB0aHkgYW5zd2VyLCBPIHNreVRoZSBsYW5ndWFnZSBvZiBldGVybmFsIHNpbGVuY2UuMTMuIExpc3RlbiwgbXkgaGVhcnQsIHRvIHRoZSB3aGlzcGVycyBvZiB0aGUgd29ybGQgd2l0aCB3aGljaCBpdCBtYWtlcyBsb3ZlIHRvIHlvdS4xNC5UaGUgbXlzdGVyeSBvZiBjcmVhdGlvbiBpcyBsaWtlIHRoZSBkYXJrbmVzcyBvZiBuaWdodC0taXQgaXMgZ3JlYXQuRGVsdXNpb25zIG9mIGtub3dsZWRnZSBhcmUgbGlrZSB0aGUgZm9nIG9mIHRoZSBtb3JuaW5nLjE1LkRvIG5vdCBzZWF0IHlvdXIgbG92ZSB1cG9uIGEgcHJlY2lwaWNlIGJlY2F1c2UgaXQgaXMgaGlnaC4xNi5JIHNpdCBhdCBteSB3aW5kb3cgdGhpcyBtb3JuaW5nIHdoZXJlIHRoZSB3b3JsZCBsaWtlIGEgcGFzc2VyLWJ5IHN0b3BzIGZvciBhIG1vbWVudCwgbm9kcyB0byBtZSBhbmQgZ29lcy4xNy5UaGVyZSBsaXR0bGUgdGhvdWdodHMgYXJlIHRoZSBydXN0bGUgb2YgbGVhdmVzOyB0aGV5IGhhdmUgdGhlaXIgd2hpc3BlciBvZiBqb3kgaW4gbXkgbWluZC4xOC5XaGF0IHlvdSBhcmUgeW91IGRvIG5vdCBzZWUsIHdoYXQgeW91IHNlZSBpcyB5b3VyIHNoYWRvdy4xOS5NeSB3aXNoZXMgYXJlIGZvb2xzLCB0aGV5IHNob3V0IGFjcm9zcyB0aHkgc29uZywgbXkgTWFzdGVyLiBMZXQgbWUgYnV0IGxpc3Rlbi4yMC5JIGNhbm5vdCBjaG9vc2UgdGhlIGJlc3QuIFRoZSBiZXN0IGNob29zZXMgbWUuMjEuVGhleSB0aHJvdyB0aGVpciBzaGFkb3dzIGJlZm9yZSB0aGVtIHdobyBjYXJyeSB0aGVpciBsYW50ZXJuIG9uIHRoZWlyIGJhY2suMjIuVGhhdCBJIGV4aXN0IGlzIGEgcGVycGV0dWFsIHN1cnByaXNlIHdoaWNoIGlzIGxpZmUuMjMuV2UsIHRoZSBydXN0bGluZyBsZWF2ZXMsIGhhdmUgYSB2b2ljZSB0aGF0IGFuc3dlcnMgdGhlIHN0b3JtcyxidXQgd2hvIGFyZSB5b3Ugc28gc2lsZW50SSBhbSBhIG1lcmUgZmxvd2VyLjI0LlJlc3QgYmVsb25ncyB0byB0aGUgd29yayBhcyB0aGUgZXllbGlkcyB0byB0aGUgZXllcy4yNS5NYW4gaXMgYSBib3JuIGNoaWxkLCBoaXMgcG93ZXIgaXMgdGhlIHBvd2VyIG9mIGdyb3d0aC4yNi5Hb2QgZXhwZWN0cyBhbnN3ZXJzIGZvciB0aGUgZmxvd2VycyBoZSBzZW5kcyB1cywgbm90IGZvciB0aGUgc3VuIHRoZSBlYXJ0aC4yNy5UaGUgbGlnaHQgdGhhdCBwbGF5cywgbGlrZSBhIG5ha2VkIGNoaWxkLCBhbW9uZyB0aGUgZ3JlZW4gbGVhdmVzIGhhcHBpbHkga25vd3Mgbm90IHRoYXQgbWFuIGNhbiBsaWUuMjguTyBCZWF1dHksIGZpbmQgdGh5c2VsZiBpbiBsb3ZlLCBub3QgaW4gdGhlIGZsYXR0ZXJ5IG9mIHRoeSBtaXJyb3IuMjkuTXkgaGVhcnQgYmVhdHMgaGVyIHdhdmVzIGF0IHRoZSBzaG9yZSBvZiB0aGUgd29ybGQgYW5kIHdyaXRlcyB1cG9uaXQgaGVyIHNpZ25hdHVyZSBpbiB0ZWFycyB3aXRoIHRoZSB3b3JkcywgSSBsb3ZlIHRoZWUuMzAuTW9vbiwgZm9yIHdoYXQgZG8geW91IHdhaXRUbyBzYWx1dGUgdGhlIHN1biBmb3Igd2hvbSBJIG11c3QgbWFrZSB3YXkuMzEuVGhlIHRyZWVzIGNvbWUgdXAgdG8gbXkgd2luZG93IGxpa2UgdGhlIHllYXJuaW5nIHZvaWNlIG9mIHRoZSBkdW1iIGVhcnRoLjMyLkhpcyBvd24gbW9ybmluZ3MgYXJlIG5ldyBzdXJwcmlzZXMgdG8gR29kLjMzLkxpZmUgZmluZHMgaXRzIHdlYWx0aCBieSB0aGUgY2xhaW1zIG9mIHRoZSB3b3JsZCwgYW5kIGl0cyB3b3J0aCBieSB0aGUgY2xhaW1zIG9mIGxvdmUuMzQuVGhlIGRyeSByaXZlci1iZWQgZmluZHMgbm8gdGhhbmtzIGZvciBpdHMgcGFzdC4zNS5UaGUgYmlyZCB3aXNoZXMgaXQgd2VyZSBhIGNsb3VkLlRoZSBjbG91ZCB3aXNoZXMgaXQgd2VyZSBhIGJpcmQuMzYuVGhlIHdhdGVyZmFsbCBzaW5nLCBJIGZpbmQgbXkgc29uZywgd2hlbiBJIGZpbmQgbXkgZnJlZWRvbS4zNy5JIGNhbm5vdCB0ZWxsIHdoeSB0aGlzIGhlYXJ0IGxhbmd1aXNoZXMgaW4gc2lsZW5jZS5JdCBpcyBmb3Igc21hbGwgbmVlZHMgaXQgbmV2ZXIgYXNrcywgb3Iga25vd3Mgb3IgcmVtZW1iZXJzLjM4LldvbWFuLCB3aGVuIHlvdSBtb3ZlIGFib3V0IGluIHlvdXIgaG91c2Vob2xkIHNlcnZpY2UgeW91ciBsaW1icyBzaW5nIGxpa2UgYSBoaWxsIHN0cmVhbSBhbW9uZyBpdHMgcGViYmxlcy4zOS5UaGUgc3VuIGdvZXMgdG8gY3Jvc3MgdGhlIFdlc3Rlcm4gc2VhLCBsZWF2aW5nIGl0cyBsYXN0IHNhbHV0YXRpb24gdG8gdGhlIEVhc3QuNDAuRG8gbm90IGJsYW1lIHlvdXIgZm9vZCBiZWNhdXNlIHlvdSBoYXZlIG5vIGFwcGV0aXRlLjQxLiBUaGUgdHJlZXMsIGxpa2UgdGhlIGxvbmdpbmdzIG9mIHRoZSBlYXJ0aCwgc3RhbmQgYXRpcHRvZSB0byBwZWVwIGF0IHRoZSBoZWF2ZW4uNDIuWW91IHNtaWxlZCBhbmQgdGFsa2VkIHRvIG1lIG9mIG5vdGhpbmcgYW5kIEkgZmVsdCB0aGF0IGZvciB0aGlzIEkgaGFkIGJlZW4gd2FpdGluZyBsb25nLjQzLlRoZSBmaXNoIGluIHRoZSB3YXRlciBpcyBzaWxlbnQsIHRoZSBhbmltYWwgb24gdGhlIGVhcnRoIGlzIG5vaXN5LHRoZSBiaXJkIGluIHRoZSBhaXIgaXMgc2luZ2luZy5CdXQgTWFuIGhhcyBpbiBoaW0gdGhlIHNpbGVuY2Ugb2YgdGhlIHNlYSwgdGhlIG5vaXNlIG9mIHRoZSBlYXJ0aCBhbmQgdGhlIG11c2ljIG9mIHRoZSBhaXIuNDQuVGhlIHdvcmxkIHJ1c2hlcyBvbiBvdmVyIHRoZSBzdHJpbmdzIG9mIHRoZSBsaW5nZXJpbmcgaGVhcnQgbWFraW5nIHRoZSBtdXNpYyBvZiBzYWRuZXNzLjQ1LkhlIGhhcyBtYWRlIGhpcyB3ZWFwb25zIGhpcyBnb2RzLldoZW4gaGlzIHdlYXBvbnMgd2luIGhlIGlzIGRlZmVhdGVkIGhpbXNlbGYuNDYuR29kIGZpbmRzIGhpbXNlbGYgYnkgY3JlYXRpbmcuNDcuIFNoYWRvdywgd2l0aCBoZXIgdmVpbCBkcmF3biwgZm9sbG93cyBMaWdodCBpbiBzZWNyZXQgbWVla25lc3Msd2l0aCBoZXIgc2lsZW50IHN0ZXBzIG9mIGxvdmUuNDguVGhlIHN0YXJzIGFyZSBub3QgYWZyYWlkIHRvIGFwcGVhciBsaWtlIGZpcmVmbGllcy40OS5JIHRoYW5rIHRoZWUgdGhhdCBJIGFtIG5vbmUgb2YgdGhlIHdoZWVscyBvZiBwb3dlciBidXQgSSBhbSBvbmUgd2l0aCB0aGUgbGl2aW5nIGNyZWF0dXJlcyB0aGF0IGFyZSBjcnVzaGVkIGJ5IGl0LjUwLlRoZSBtaW5kLCBzaGFycCBidXQgbm90IGJyb2FkLCBzdGlja3MgYXQgZXZlcnkgcG9pbnQgYnV0IGRvZXMgbm90IG1vdmUuNTEuWW91IGlkb2wgaXMgc2hhdHRlcmVkIGluIHRoZSBkdXN0IHRvIHByb3ZlIHRoYXQgR29kJ3MgZHVzdCBpcyBncmVhdGVyIHRoYW4geW91ciBpZG9sLjUyLk1hbiBkb2VzIG5vdCByZXZlYWwgaGltc2VsZiBpbiBoaXMgaGlzdG9yeSwgaGUgc3RydWdnbGVzIHVwIHRocm91Z2ggaXQuNTMuV2hpbGUgdGhlIGdsYXNzIGxhbXAgcmVidWtlcyB0aGUgZWFydGhlbiBmb3IgY2FsbGluZyBpdCBjb3VzaW4gdGhlIG1vb24gcmlzZXMsIGFuZCB0aGUgZ2xhc3MgbGFtcCwgd2l0aCBhIGJsYW5kIHNtaWxlLCBjYWxscyBoZXIsLS0tTXkgZGVhciwgZGVhciBzaXN0ZXIuNTQuTGlrZSB0aGUgbWVldGluZyBvZiB0aGUgc2VhZ3VsbHMgYW5kIHRoZSB3YXZlcyB3ZSBtZWV0IGFuZCBjb21lIG5lYXIuVGhlIHNlYWd1bGxzIGZseSBvZmYsIHRoZSB3YXZlcyByb2xsIGF3YXkgYW5kIHdlIGRlcGFydC41NS5NeSBkYXkgaXMgZG9uZSwgYW5kIEkgYW0gbGlrZSBhIGJvYXQgZHJhd24gb24gdGhlIGJlYWNoLCBsaXN0ZW5pbmcgdG8gdGhlIGRhbmNlLW11c2ljIG9mIHRoZSB0aWRlIGluIHRoZSBldmVuaW5nLjU2LmxpZmUgaXMgZ2l2ZW4gdG8gdXMsIHdlIGVhcm4gaXQgYnkgZ2l2aW5nIGl0LjU3LldlIGNvbWUgbmVhcmVzdCB0byB0aGUgZ3JlYXQgd2hlbiB3ZSBhcmUgZ3JlYXQgaW4gaHVtaWxpdHkuNTguVGhlIHNwYXJyb3cgaXMgc29ycnkgZm9yIHRoZSBwZWFjb2NrIGF0IHRoZSBidXJkZW4gb2YgaXRzIHRhaWwuNTkuTmV2ZXIgYmUgYWZyYWlkIG9mIHRoZSBtb21lbnRzLS10aHVzIHNpbmdzIHRoZSB2b2ljZSBvZiB0aGUgZXZlcmxhc3RpbmcuNjAuVGhlIGh1cnJpY2FuZSBzZWVrcyB0aGUgc2hvcnRlc3Qgcm9hZCBieSB0aGUgbm8tcm9hZCwgYW5kIHN1ZGRlbmx5IGVuZHMgaXRzIHNlYXJjaCBpbiB0aGUgTm93aGVyZS42MS5UYWtlIG15IHdpbmUgaW4gbXkgb3duIGN1cCwgZnJpZW5kLkl0IGxvc2VzIGl0cyB3cmVhdGggb2YgZm9hbSB3aGVuIHBvdXJlZCBpbnRvIHRoYXQgb2Ygb3RoZXJzLjYyLlRoZSBwZXJmZWN0IGRlY2tzIGl0c2VsZiBpbiBiZWF1dHkgZm9yIHRoZSBsb3ZlIG9mIHRoZSBJbXBlcmZlY3QuNjMuR29kIHNheXMgdG8gbWFuLCBJIGhlYWwgeW91IHRoZXJlZm9yZSBJIGh1cnQsIGxvdmUgeW91IHRoZXJlZm9yZSBwdW5pc2guNjQuVGhhbmsgdGhlIGZsYW1lIGZvciBpdHMgbGlnaHQsIGJ1dCBkbyBub3QgZm9yZ2V0IHRoZSBsYW1waG9sZGVyIHN0YW5kaW5nIGluIHRoZSBzaGFkZSB3aXRoIGNvbnN0YW5jeSBvZiBwYXRpZW5jZS42NS5UaW55IGdyYXNzLCB5b3VyIHN0ZXBzIGFyZSBzbWFsbCwgYnV0IHlvdSBwb3NzZXNzIHRoZSBlYXJ0aCB1bmRlciB5b3VyIHRyZWFkLjY2LlRoZSBpbmZhbnQgZmxvd2VyIG9wZW5zIGl0cyBidWQgYW5kIGNyaWVzLCBEZWFyIFdvcmxkLCBwbGVhc2UgZG8gbm90IGZhZGUuNjcuR29kIGdyb3dzIHdlYXJ5IG9mIGdyZWF0IGtpbmdkb21zLCBidXQgbmV2ZXIgb2YgbGl0dGxlIGZsb3dlcnMuNjguV3JvbmcgY2Fubm90IGFmZm9yZCBkZWZlYXQgYnV0IFJpZ2h0IGNhbi42OS5JIGdpdmUgbXkgd2hvbGUgd2F0ZXIgaW4gam95LGl0IGlzIGVub3VnaCBmb3IgdGhlIHRoaXJzdHkuNzAuV2hlcmUgaXMgdGhlIGZvdW50YWluIHRoYXQgdGhyb3dzIHVwIHRoZXNlIGZsb3dlcnMgaW4gYSBjZWFzZWxlc3Mgb3V0YnJlYWsgb2YgZWNzdGFzeTcxLlRoZSB3b29kY3V0dGVyJ3MgYXhlIGJlZ2dlZCBmb3IgaXRzIGhhbmRsZSBmcm9tIHRoZSB0cmVlLlRoZSB0cmVlIGdhdmUgaXQuNzIuSW4gbXkgc29saXR1ZGUgb2YgaGVhcnQgSSBmZWVsIHRoZSBzaWdoIG9mIHRoaXMgd2lkb3dlZCBldmVuaW5nIHZlaWxlZCB3aXRoIG1pc3QgYW5kIHJhaW4uNzMuQ2hhc3RpdHkgaXMgYSB3ZWFsdGggdGhhdCBjb21lcyBmcm9tIGFidW5kYW5jZSBvZiBsb3ZlLjc0LlRoZSBtaXN0LCBsaWtlIGxvdmUsIHBsYXlzIHVwb24gdGhlIGhlYXJ0IG9mIHRoZSBoaWxscyBhbmQgYnJpbmcgb3V0IHN1cnByaXNlcyBvZiBiZWF1dHkuNzUuV2UgcmVhZCB0aGUgd29ybGQgd3JvbmcgYW5kIHNheSB0aGF0IGl0IGRlY2VpdmVzIHVzLjc2LlRoZSBwb2V0IHdpbmQgaXMgb3V0IG92ZXIgdGhlIHNlYSBhbmQgdGhlIGZvcmVzdCB0byBzZWVrIGhpcyBvd24gdm9pY2UuNzcuRXZlcnkgY2hpbGQgY29tZXMgd2l0aCB0aGUgbWVzc2FnZSB0aGF0IEdvZCBpcyBub3QgeWV0IGRpc2NvdXJhZ2VkIG9mIG1hbi43OC5UaGUgZ3Jhc3Mgc2Vla3MgaGVyIGNyb3dkIGluIHRoZSBlYXJ0aC5UaGUgdHJlZSBzZWVrcyBoaXMgc29saXR1ZGUgb2YgdGhlIHNreS43OS5NYW4gYmFycmljYWRlcyBhZ2FpbnN0IGhpbXNlbGYuODAuWW91ciB2b2ljZSwgbXkgZnJpZW5kLCB3YW5kZXJzIGluIG15IGhlYXJ0LCBsaWtlIHRoZSBtdWZmbGVkIHNvdW5kIG9mIHRoZSBzZWEgYW1vbmcgdGhlc2UgbGlzdGVuaW5nIHBpbmVzLjgxLldoYXQgaXMgdGhpcyB1bnNlZW4gZmxhbWUgb2YgZGFya25lc3Mgd2hvc2Ugc3BhcmtzIGFyZSB0aGUgc3RhcnM4Mi5MZXQgbGlmZSBiZSBiZWF1dGlmdWwgbGlrZSBzdW1tZXIgZmxvd2VycyBhbmQgZGVhdGggbGlrZSBhdXR1bW4gbGVhdmVzLjgzLkhlIHdobyB3YW50cyB0byBkbyBnb29kIGtub2NrcyBhdCB0aGUgZ2F0ZTsgaGUgd2hvIGxvdmVzIGZpbmRzIHRoZSBnYXRlIG9wZW4uODQuSW4gZGVhdGggdGhlIG1hbnkgYmVjb21lcyBvbmU7IGluIGxpZmUgdGhlIG9uZSBiZWNvbWVzIG1hbnkuUmVsaWdpb24gd2lsbCBiZSBvbmUgd2hlbiBHb2QgaXMgZGVhZC44NS5UaGUgYXJ0aXN0IGlzIHRoZSBsb3ZlciBvZiBOYXR1cmUsIHRoZXJlZm9yZSBoZSBpcyBoZXIgc2xhdmUgYW5kIGhlciBtYXN0ZXIuODYuSG93IGZhciBhcmUgeW91IGZyb20gbWUsIE8gRnJ1aXRJIGFtIGhpZGRlbiBpbiB5b3VyIGhlYXJ0LCBPIEZsb3dlci44Ny5UaGlzIGxvbmdpbmcgaXMgZm9yIHRoZSBvbmUgd2hvIGlzIGZlbHQgaW4gdGhlIGRhcmssIGJ1dCBub3Qgc2VlbiBpbiB0aGUgZGF5Ljg4LllvdSBhcmUgdGhlIGJpZyBkcm9wIG9mIGRldyB1bmRlciB0aGUgbG90dXMgbGVhZiwgSSBhbSB0aGUgc21hbGxlciBvbmUgb24gaXRzIHVwcGVyIHNpZGUsIHNhaWQgdGhlIGRld2Ryb3AgdG8gdGhlIGxha2UuODkuVGhlIHNjYWJiYXJkIGlzIGNvbnRlbnQgdG8gYmUgZHVsbCB3aGVuIGl0IHByb3RlY3RzIHRoZSBrZWVubmVzcyBvZiB0aGUgc3dvcmQuOTAuSW4gZGFya25lc3MgdGhlIE9uZSBhcHBlYXJzIGFzIHVuaWZvcm07IGluIHRoZSBsaWdodCB0aGUgT25lIGFwcGVhcnMgYXMgbWFuaWZvbGQuOTEuVGhlIGdyZWF0IGVhcnRoIG1ha2VzIGhlcnNlbGYgaG9zcGl0YWJsZSB3aXRoIHRoZSBoZWxwIG9mIHRoZSBncmFzcy45Mi5UaGUgYmlydGggYW5kIGRlYXRoIG9mIHRoZSBsZWF2ZXMgYXJlIHRoZSByYXBpZCB3aGlybHMgb2YgdGhlIGVkZHkgd2hvc2Ugd2lkZXIgY2lyY2xlcyBtb3ZlIHNsb3dseSBhbW9uZyBzdGFycy45My4gUG93ZXIgc2FpZCB0byB0aGUgd29ybGQsIFlvdSBhcmUgbWluZS5UaGUgd29ybGQga2VwdCBpdCBwcmlzb25lciBvbiBoZXIgdGhyb25lLkxvdmUgc2FpZCB0byB0aGUgd29ybGQsIEkgYW0gdGhpbmUuVGhlIHdvcmxkIGdhdmUgaXQgdGhlIGZyZWVkb20gb2YgaGVyIGhvdXNlLjk0LlRoZSBtaXN0IGlzIGxpa2UgdGhlIGVhcnRoJ3MgZGVzaXJlLkl0IGhpZGVzIHRoZSBzdW4gZm9yIHdob20gc2hlIGNyaWVzLjk1LkJlIHN0aWxsLCBteSBoZWFydCwgdGhlc2UgZ3JlYXQgdHJlZXMgYXJlIHByYXllcnMuOTYuVGhlIG5vaXNlIG9mIHRoZSBtb21lbnQgc2NvZmZzIGF0IHRoZSBtdXNpYyBvZiB0aGUgRXRlcm5hbC45Ny5JIHRoaW5rIG9mIG90aGVyIGFnZXMgdGhhdCBmbG9hdGVkIHVwb24gdGhlIHN0cmVhbSBvZiBsaWZlIGFuZCBsb3ZlIGFuZCBkZWF0aCBhbmQgYXJlIGZvcmdvdHRlbiwgYW5kIEkgZmVlbCB0aGUgZnJlZWRvbSBvZiBwYXNzaW5nIGF3YXkuOTguVGhlIHNhZG5lc3Mgb2YgbXkgc291bCBpcyBoZXIgYnJpZGUncyB2ZWlsLkl0IHdhaXRzIHRvIGJlIGxpZnRlZCBpbiB0aGUgbmlnaHQuOTkuRGVhdGgncyBzdGFtcCBnaXZlcyB2YWx1ZSB0byB0aGUgY29pbiBvZiBsaWZlOyBtYWtpbmcgaXQgcG9zc2libGUgdG8gYnV5IHdpdGggbGlmZSB3aGF0IGlzIHRydWx5IHByZWNpb3VzLjEwMC5UaGUgY2xvdWQgc3Rvb2QgaHVtYmx5IGluIGEgY29ybmVyIG9mIHRoZSBza3kuVGhlIG1vcm5pbmcgY3Jvd25lZCBpdCB3aXRoIHNwbGVuZG91ci4xMDEuVGhlIGR1c3QgcmVjZWl2ZXMgaW5zdWx0IGFuZCBpbiByZXR1cm4gb2ZmZXJzIGhlciBmbG93ZXJzLjEwMi5EbyBub3QgbGluZ2VyIHRvIGdhdGhlciBmbG93ZXJzIHRvIGtlZXAgdGhlbSwgYnV0IHdhbGsgb24sIGZvciBmbG93ZXJzIHdpbGwga2VlcCB0aGVtc2VsdmVzIGJsb29taW5nIGFsbCB5b3VyIHdheS4xMDMuUm9vdHMgYXJlIHRoZSBicmFuY2hlcyBkb3duIGluIHRoZSBlYXJ0aC5CcmFuY2hlcyBhcmUgcm9vdHMgaW4gdGhlIGFpci4xMDQuVGhlIG11c2ljIG9mIHRoZSBmYXItYXdheSBzdW1tZXIgZmx1dHRlcnMgYXJvdW5kIHRoZSBBdXR1bW4gc2Vla2luZyBpdHMgZm9ybWVyIG5lc3QuMTA1LkRvIG5vdCBpbnN1bHQgeW91ciBmcmllbmQgYnkgbGVuZGluZyBoaW0gbWVyaXRzIGZyb20geW91ciBvd24gcG9ja2V0LjEwNi5UaGUgdG91Y2ggb2YgdGhlIG5hbWVsZXNzIGRheXMgY2xpbmdzIHRvIG15IGhlYXJ0IGxpa2UgbW9zc2VzIHJvdW5kIHRoZSBvbGQgdHJlZS4xMDcuVGhlIGVjaG8gbW9ja3MgaGVyIG9yaWdpbiB0byBwcm92ZSBzaGUgaXMgdGhlIG9yaWdpbmFsLjEwOC5Hb2QgaXMgYXNoYW1lZCB3aGVuIHRoZSBwcm9zcGVyb3VzIGJvYXN0cyBvZiBIaXMgc3BlY2lhbCBmYXZvdXIuMTA5LkkgY2FzdCBteSBvd24gc2hhZG93IHVwb24gbXkgcGF0aCwgYmVjYXVzZSBJIGhhdmUgYSBsYW1wIHRoYXQgaGFzIG5vdCBiZWVuIGxpZ2h0ZWQuMTEwLk1hbiBnb2VzIGludG8gdGhlIG5vaXN5IGNyb3dlZCB0byBkcm93biBoaXMgb3duIGNsYW1vdXIgb2Ygc2lsZW5jZS4xMTEuVGhhdCB3aGljaCBlbmRzIGluIGV4aGF1c3Rpb24gaXMgZGVhdGgsIGJ1dCB0aGUgcGVyZmVjdCBlbmRpbmcgaXMgaW4gdGhlIGVuZGxlc3MuMTEyLlRoZSBzdW4gaGFzIGhpcyBzaW1wbGUgcm9kZSBvZiBsaWdodC4gVGhlIGNsb3VkcyBhcmUgZGVja2VkIHdpdGggZ29yZ2VvdXNuZXNzLjExMy5UaGUgaGlsbHMgYXJlIGxpa2Ugc2hvdXRzIG9mIGNoaWxkcmVuIHdobyByYWlzZSB0aGVpciBhcm1zLCB0cnlpbmcgdG8gY2F0Y2ggc3RhcnMuMTE0LlRoZSByb2FkIGlzIGxvbmVseSBpbiBpdHMgY3Jvd2QgZm9yIGl0IGlzIG5vdCBsb3ZlZC4xMTUuVGhlIHBvd2VyIHRoYXQgYm9hc3RzIG9mIGl0cyBtaXNjaGllZnMgaXMgbGF1Z2hlZCBhdCBieSB0aGUgeWVsbG93IGxlYXZlcyB0aGF0IGZhbGwsIGFuZCBjbG91ZHMgdGhhdCBwYXNzIGJ5LjExNi5UaGUgZWFydGggaHVtcyB0byBtZSB0b2RheSBpbiB0aGUgc3VuLCBsaWtlIGEgd29tYW4gYXQgaGVyIHNwaW5uaW5nLHNvbWUgYmFsbGFkIG9mIHRoZSBhbmNpZW50IHRpbWUgaW4gYSBmb3Jnb3R0ZW4gdG9uZ3VlLjExNy50aGUgZ3Jhc3MtYmxhZGUgaXMgd29ydGh5IG9mIHRoZSBncmVhdCB3b3JsZCB3aGVyZSBpdCBncm93cy4xMTguRHJlYW0gaXMgYSB3aWZlIHdobyBtdXN0IHRhbGssU2xlZXAgaXMgYSBodXNiYW5kIHdobyBzaWxlbnRseSBzdWZmZXJzLjExOS5UaGUgbmlnaHQga2lzc2VzIHRoZSBmYWRpbmcgZGF5IHdoaXNwZXJpbmcgdG8gaGlzIGVhciwgSSBhbSBkZWF0aCx5b3VyIG1vdGhlci4gSSBhbSB0byBnaXZlIHlvdSBmcmVzaCBiaXJ0aC4xMjAuSSBmZWVsIHRoeSBiZWF1dHksIGRhcmsgbmlnaHQsIGxpa2UgdGhhdCBvZiB0aGUgbG92ZWQgd29tYW4gd2hlbiBzaGUgaGFzIHB1dCBvdXQgdGhlIGxhbXAuMTIxLkkgY2FycnkgaW4gbXkgd29ybGQgdGhhdCBmbG91cmlzaGVzIHRoZSB3b3JsZHMgdGhhdCBoYXZlIGZhaWxlZC4xMjIuRGVhciBmcmllbmQsIEkgZmVlbCB0aGUgc2lsZW5jZSBvZiB5b3VyIGdyZWF0IHRob3VnaHRzIG9mIG1hbnkgYSBkZWVwZW5pbmcgZXZlbnRpZGUgb24gdGhpcyBiZWFjaCB3aGVuIEkgbGlzdGVuIHRvIHRoZXNlIHdhdmVzLjEyMy5UaGUgYmlyZCB0aGlua3MgaXQgaXMgYW4gYWN0IG9mIGtpbmRuZXNzIHRvIGdpdmUgdGhlIGZpc2ggYSBsaWZlIGluIHRoZSBhaXIuMTI0LkluIHRoZSBtb29uIHRob3Ugc2VuZGVzdCB0aHkgbG92ZSBsZXR0ZXJzIHRvIG1lLCBJIGxlYXZlIG15IGFuc3dlcnMgaW4gdGVhcnMgdXBvbiB0aGUgZ3Jhc3MuMTI1LlRoZSBncmVhdCBpcyBhIGJvcm4gY2hpbGQ7IHdoZW4gaGUgZGllcyBoZSBnaXZlcyBoaXMgZ3JlYXQgY2hpbGRob29kdG8gdGhlIHdvcmxkLjEyNi5Ob3QgaGFtbWVyLXN0cm9rZXMsIGJ1dCBkYW5jZSBvZiB0aGUgd2F0ZXIgc2luZ3MgdGhlIHBlYmJsZXMgaW50byBwZXJmZWN0aW9uLjEyNy5CZWVzIHNpcCBob25leSBmcm9tIGZsb3dlcnMgYW5kIGh1bSB0aGVpciB0aGFua3Mgd2hlbiB0aGV5IGxlYXZlLlRoZSBnYXVkeSBidXR0ZXJmbHkgaXMgc3VyZSB0aGF0IHRoZSBmbG93ZXJzIG93ZSB0aGFua3MgdG8gaGltLjEyOC5UbyBiZSBvdXRzcG9rZW4gaXMgZWFzeSB3aGVuIHlvdSBkbyBub3Qgd2FpdCB0byBzcGVhayB0aGUgY29tcGxldGUgdHJ1dGguMTI5LkFza3MgdGhlIFBvc3NpYmxlIHRvIHRoZSBJbXBvc3NpYmxlLFdoZXJlIGlzIHlvdXIgZHdlbGxpbmctcGxhY2VJbiB0aGUgZHJlYW1zIG9mIHRoZSBpbXBvdGVudCwgY29tZXMgdGhlIGFuc3dlci4xMzAuSWYgeW91IHNodXQgeW91ciBkb29yIHRvIGFsbCBlcnJvcnMgdHJ1dGggd2lsbCBiZSBzaHV0IG91dC4xMzEuSSBoZWFyIHNvbWUgcnVzdGxlIG9mIHRoaW5ncyBiZWhpbmQgbXkgc2FkbmVzcyBvZiBoZWFydCwtLS1JIGNhbm5vdCBzZWUgdGhlbS4xMzIuTGVpc3VyZSBpbiBpdHMgYWN0aXZpdHkgaXMgd29yay5UaGUgc3RpbGxuZXNzIG9mIHRoZSBzZWEgc3RpcnMgaW4gd2F2ZXMuMTMzLlRoZSBsZWFmIGJlY29tZXMgZmxvd2VyIHdoZW4gaXQgbG92ZXMuVGhlIGZsb3dlciBiZWNvbWVzIGZydWl0IHdoZW4gaXQgd29yc2hpcHMuMTM0LlRoZSByb290cyBiZWxvdyB0aGUgZWFydGggY2xhaW0gbm8gcmV3YXJkcyBmb3IgbWFraW5nIHRoZSBicmFuY2hlcyBmcnVpdGZ1bC4xMzUuVGhpcyByYWlueSBldmVuaW5nIHRoZSB3aW5kIGlzIHJlc3RsZXNzLkkgbG9vayBhdCB0aGUgc3dheWluZyBicmFuY2hlcyBhbmQgcG9uZGVyIG92ZXIgdGhlIGdyZWF0bmVzcyBvZiBhbGwgdGhpbmdzLjEzNi5TdG9ybSBvZiBtaWRuaWdodCwgbGlrZSBhIGdpYW50IGNoaWxkIGF3YWtlbmVkIGluIHRoZSB1bnRpbWVseSBkYXJrLCBoYXMgYmVndW4gdG8gcGxheSBhbmQgc2hvdXQuMTM3LlRob3UgcmFpc2VzdCB0aHkgd2F2ZXMgdmFpbmx5IHRvIGZvbGxvdyB0aHkgbG92ZXIsIE8gc2VhLCB0aG91IGxvbmVseSBicmlkZSBvZiB0aGUgc3Rvcm0uMTM4LkkgYW0gYXNoYW1lZCBvZiBteSBlbXB0aW5lc3MsIHNhaWQgdGhlIFdvcmQgdG8gdGhlIFdvcmsuSSBrbm93IGhvdyBwb29yIEkgYW0gd2hlbiBJIHNlZSB5b3UsIHNhaWQgdGhlIFdvcmsgdG8gdGhlIFdvcmQuMTM5LlRpbWUgaXMgdGhlIHdlYWx0aCBvZiBjaGFuZ2UsIGJ1dCB0aGUgY2xvY2sgaW4gaXRzIHBhcm9keSBtYWtlcyBpdCBtZXJlIGNoYW5nZSBhbmQgbm8gd2VhbHRoLjE0MC5UcnV0aCBpbiBoZXIgZHJlc3MgZmluZHMgZmFjdHMgdG9vIHRpZ2h0LkluIGZpY3Rpb24gc2hlIG1vdmVzIHdpdGggZWFzZS4xNDEuV2hlbiBJIHRyYXZlbGxlZCB0byBoZXJlIGFuZCB0byB0aGVyZSwgSSB3YXMgdGlyZWQgb2YgdGhlZSwgTyBSb2FkLGJ1dCBub3cgd2hlbiB0aG91IGxlYWRlc3QgbWUgdG8gZXZlcnl3aGVyZSBJIGFtIHdlZGRlZCB0byB0aGVlIGluIGxvdmUuMTQyLkxldCBtZSB0aGluayB0aGF0IHRoZXJlIGlzIG9uZSBhbW9uZyB0aG9zZSBzdGFycyB0aGF0IGd1aWRlcyBteSBsaWZlIHRocm91Z2ggdGhlIGRhcmsgdW5rbm93bi4xNDMuV29tYW4sIHdpdGggdGhlIGdyYWNlIG9mIHlvdXIgZmluZ2VycyB5b3UgdG91Y2hlZCBteSB0aGluZ3MgYW5kIG9yZGVyIGNhbWUgb3V0IGxpa2UgbXVzaWMuMTQ0Lk9uZSBzYWQgdm9pY2UgaGFzIGl0cyBuZXN0IGFtb25nIHRoZSBydWlucyBvZiB0aGUgeWVhcnMuSXQgc2luZ3MgdG8gbWUgaW4gdGhlIG5pZ2h0LCAtLS1JIGxvdmVkIHlvdS4xNDUuVGhlIGZsYW1pbmcgZmlyZSB3YXJucyBtZSBvZmYgYnkgaXRzIG93biBnbG93LlNhdmUgbWUgZnJvbSB0aGUgZHlpbmcgZW1iZXJzIGhpZGRlbiB1bmRlciBhc2hlcy4xNDYuSSBoYXZlIG15IHN0YXJzIGluIHRoZSBza3kuQnV0IG9oIGZvciBteSBsaXR0bGUgbGFtcCB1bmxpdCBpbiBteSBob3VzZS4xNDcuVGhlIGR1c3Qgb2YgdGhlIGRlYWQgd29yZHMgY2xpbmdzIHRvIHRoZWUuV2FzaCB0aHkgc291bCB3aXRoIHNpbGVuY2UuMTQ4LkdhcHMgYXJlIGxlZnQgaW4gbGlmZSB0aHJvdWdoIHdoaWNoIGNvbWVzIHRoZSBzYWQgbXVzaWMgb2YgZGVhdGguMTQ5LlRoZSB3b3JsZCBoYXMgb3BlbmVkIGl0cyBoZWFydCBvZiBsaWdodCBpbiB0aGUgbW9ybmluZy5Db21lIG91dCwgbXkgaGVhcnQsIHdpdGggdGh5IGxvdmUgdG8gbWVldCBpdC4xNTAuTXkgdGhvdWdodHMgc2hpbW1lciB3aXRoIHRoZXNlIHNoaW1tZXJpbmcgbGVhdmVzIGFuZCBteSBoZWFydCBzaW5nc3dpdGggdGhlIHRvdWNoIG9mIHRoaXMgc3VubGlnaHQ7IG15IGxpZmUgaXMgZ2xhZCB0byBiZSBmbG9hdGluZyB3aXRoYWxsIHRoaW5ncyBpbnRvIHRoZSBibHVlIG9mIHNwYWNlLCBpbnRvIHRoZSBkYXJrIG9mIHRpbWUuMTUxLkdvZCdzIGdyZWF0IHBvd2VyIGlzIGluIHRoZSBnZW50bGUgYnJlZXplLCBub3QgaW4gdGhlIHN0b3JtLjE1Mi5UaGlzIGlzIGEgZHJlYW0gaW4gd2hpY2ggdGhpbmdzIGFyZSBhbGwgbG9vc2UgYW5kIHRoZXkgb3BwcmVzcy5JIHNoYWxsIGZpbmQgdGhlbSBnYXRoZXJlZCBpbiB0aGVlIHdoZW4gSSBhd2FrZSBhbmQgc2hhbGwgYmUgZnJlZS4xNTMuV2hvIGlzIHRoZXJlIHRvIHRha2UgdXAgbXkgZHV0aWVzPyBhc2tlZCB0aGUgc2V0dGluZyBzdW4uSSBzaGFsbCBkbyB3aGF0IEkgY2FuLCBteSBNYXN0ZXIsIHNhaWQgdGhlIGVhcnRoZW4gbGFtcC4xNTQuQnkgcGx1Y2tpbmcgaGVyIHBldGFscyB5b3UgZG8gbm90IGdhdGhlciB0aGUgYmVhdXR5IG9mIHRoZSBmbG93ZXIuMTU1LiBTaWxlbmNlIHdpbGwgY2FycnkgeW91ciB2b2ljZSBsaWtlIHRoZSBuZXN0IHRoYXQgaG9sZHMgdGhlIHNsZWVwaW5nIGJpcmRzLjE1Ni5UaGUgR3JlYXQgd2Fsa3Mgd2l0aCB0aGUgU21hbGwgd2l0aG91dCBmZWFyLlRoZSBNaWRkbGluZyBrZWVwcyBhbG9vZi4xNTcsVGhlIG5pZ2h0IG9wZW5zIHRoZSBmbG93ZXJzIGluIHNlY3JldCBhbmQgYWxsb3dzIHRoZSBkYXkgdG8gZ2V0IHRoYW5rcy4xNTguUG93ZXIgdGFrZXMgYXMgaW5ncmF0aXR1ZGUgdGhlIHdyaXRoaW5ncyBvZiBpdHMgdmljdGltcy4xNTkuV2hlbiB3ZSByZWpvaWNlIGluIG91ciBmdWxuZXNzLCB0aGVuIHdlIGNhbiBwYXJ0IHdpdGggb3VyIGZydWl0cyB3aXRoIGpveS4xNjAuVGhlIHJhaW5kcm9wcyBraXNzZWQgdGhlIGVhcnRoIGFuZCB3aGlzcGVyZWQsIC0tLSBXZSBhcmUgdGh5IGhvbWVzaWNrIGNoaWxkcmVuLCBtb3RoZXIsIGNvbWUgYmFjayB0byB0aGVlIGZyb20gdGhlIGhlYXZlbi4xNjEuVGhlIGNvYndlYiBwcmV0ZW5kcyB0byBjYXRjaCBkZXdkcm9wcyBhbmQgY2F0Y2hlcyBmbGllcy4xNjIuTG92ZSEgV2hlbiB5b3UgY29tZSB3aXRoIHRoZSBidXJuaW5nIGxhbXAgb2YgcGFpbiBpbiB5b3VyIGhhbmQsSSBjYW4gc2VlIHlvdXIgZmFjZSBhbmQga25vdyB5b3UgYXMgYmxpc3MuMTYzLlRoZSBsZWFuZWQgc2F5IHRoYXQgeW91ciBsaWdodHMgd2lsbCBvbmUgZGF5IGJlIG5vIG1vcmUsIHNhaWQgdGhlIGZpcmVmbHkgdG8gdGhlIHN0YXJzLlRoZSBzdGFycyBtYWRlIG5vIGFuc3dlci4xNjQuSW4gdGhlIGR1c2sgb2YgdGhlIGV2ZW5pbmcgdGhlIGJpcmQgb2Ygc29tZSBlYXJseSBkYXduIGNvbWVzIHRvIHRoZSBuZXN0IG9mIG15IHNpbGVuY2UuMTY1LlRob3VnaHRzIHBhc3MgaW4gbXkgbWluZCBsaWtlIGZsb2NrcyBvZiBsdWNrcyBpbiB0aGUgc2t5LkkgaGVhciB0aGUgdm9pY2Ugb2YgdGhlaXIgd2luZ3MuMTY2LlRoZSBjYW5hbCBsb3ZlcyB0byB0aGluayB0aGF0IHJpdmVycyBleGlzdCBzb2xlbHkgdG8gc3VwcGx5IGl0IHdpdGggd2F0ZXIuMTY3LlRoZSB3b3JsZCBoYXMga2lzc2VkIG15IHNvdWwgd2l0aCBpdHMgcGFpbiwgYXNraW5nIGZvciBpdHMgcmV0dXJuIGluIHNvbmdzLjE2OC5UaGF0IHdoaWNoIG9wcHJlc3NlcyBtZSwgaXMgaXQgbXkgc291bCB0cnlpbmcgdG8gY29tZSBvdXQgaW4gdGhlIG9wZW4sb3IgdGhlIHNvdWwgb2YgdGhlIHdvcmxkIGtub2NraW5nIGF0IG15IGhlYXJ0IGZvciBpdHMgZW50cmFuY2U/MTY5LlRob3VnaHQgZmVlZHMgaXRzZWxmIHdpdGggaXRzIG93biB3b3JkcyBhbmQgZ3Jvd3MuMTcwLkkgaGF2ZSBkaXBwZWQgdGhlIHZlc3NlbCBvZiBteSBoZWFydCBpbnRvIHRoaXMgc2lsZW50IGhvdXI7IGl0IGhhc2ZpbGxlZCB3aXRoIGxvdmUuMTcxLkVpdGhlciB5b3UgaGF2ZSB3b3JrIG9yIHlvdSBoYXZlIG5vdC5XaGVuIHlvdSBoYXZlIHRvIHNheSwgIkxldCB1cyBkbyBzb21ldGhpbmciLCB0aGVuIGJlZ2lucyBtaXNjaGllZi4xNzIuVGhlIHN1bmZsb3dlciBibHVzaGVkIHRvIG93biB0aGUgbmFtZWxlc3MgZmxvd2VyIGFzIGhlciBraW4uVGhlIHN1biByb3NlIGFuZCBzbWlsZWQgb24gaXQsIHNheWluZywgIkFyZSB5b3Ugd2VsbCwgbXkgZGFybGluZz8iMTczLldobyBkcml2ZXMgbWUgZm9yd2FyZCBsaWtlIGZhdGU/IFRoZSBNeXNlbGYgc3RyaWRpbmcgb24gbXkgYmFjay4xNzQuVGhlIGNsb3VkcyBmaWxsIHRoZSB3YXRlcmN1cHMgb2YgdGhlIHJpdmVyLCBoaWRpbmcgdGhlbXNlbHZlcyBpbiB0aGUgZGlzdGFudCBoaWxscy4xNzUuSSBzcGlsbCB3YXRlciBmcm9tIG15IHdhdGVyIGphciBhcyBJIHdhbGsgb24gbXkgd2F5LFZlcnkgbGl0dGxlIHJlbWFpbnMgZm9yIG15IGhvbWUuMTc2LlRoZSB3YXRlciBpbiBhIHZlc3NlbCBpcyBzcGFya2xpbmc7IHRoZSB3YXRlciBpbiB0aGUgc2VhIGlzIGRhcmsuVGhlIHNtYWxsIHRydXRoIGhhcyB3b3JkcyB0aGF0IGFyZSBjbGVhcjsgdGhlIGdyZWF0IHRydXRoIGhhcyBncmVhdCBzaWxlbmNlLjE3Ny5Zb3VyIHNtaWxlIHdhcyB0aGUgZmxvd2VycyBvZiB5b3VyIG93biBmaWVsZHMsIHlvdXIgdGFsayB3YXMgdGhlIHJ1c3RsZW9mIHlvdXIgb3duIG1vdW50YWluIHBpbmVzLCBidXQgeW91ciBoZWFydCB3YXMgdGhlIHdvbWFuIHRoYXQgd2UgYWxsIGtub3cuMTc4Lkl0IGlzIHRoZSBsaXR0bGUgdGhpbmdzIHRoYXQgSSBsZWF2ZSBiZWhpbmQgZm9yIG15IGxvdmVkIG9uZXMsIC0tLWdyZWF0IHRoaW5ncyBhcmUgZm9yIGV2ZXJ5b25lLjE3OS5Xb21hbiwgdGhvdSBoYXN0IGVuY2lyY2xlZCB0aGUgd29ybGQgcyBoZWFydCB3aXRoIHRoZSBkZXB0aCBvZiB0aHkgdGVhcnMgYXMgdGhlIHNlYSBoYXMgdGhlIGVhcnRoLjE4MC5UaGUgc3Vuc2hpbmUgZ3JlZXRzIG1lIHdpdGggYSBzbWlsZS5UaGUgcmFpbiwgaGlzIHNhZCBzaXN0ZXIsIHRhbGtzIHRvIG15IGhlYXJ0LjE4MS5NeSBmbG93ZXIgb2YgdGhlIGRheSBkcm9wcGVkIGl0cyBwZXRhbHMgZm9yZ290dGVuLkluIHRoZSBldmVuaW5nIGl0IHJpcGVucyBpbnRvIGEgZ29sZGVuIGZydWl0IG9mIG1lbW9yeS4xODIuSSBhbSBsaWtlIHRoZSByb2FkIGluIHRoZSBuaWdodCBsaXN0ZW5pbmcgdG8gdGhlIGZvb3RmYWxscyBvZiBpdHMgbWVtb3JpZXMgaW4gc2lsZW5jZS4xODMuVGhlIGV2ZW5pbmcgc2t5IHRvIG1lIGlzIGxpa2UgYSB3aW5kb3csIGFuZCBhIGxpZ2h0ZWQgbGFtcCxhbmQgYSB3YWl0aW5nIGJlaGluZCBpdC4xODQuSGUgd2hvIGlzIHRvbyBidXN5IGRvaW5nIGdvb2QgZmluZHMgbm8gdGltZSB0byBiZSBnb29kLjE4NS5JIGFtIHRoZSBhdXR1bW4gY2xvdWQsIGVtcHR5IG9mIHJhaW4sIHNlZSBteSBmdWxuZXNzIGluIHRoZSBmaWVsZCBvZiByaXBlbmVkIHJpY2UuMTg2LlRoZXkgaGF0ZWQgYW5kIGtpbGxlZCBhbmQgbWVuIHByYWlzZWQgdGhlbS5CdXQgR29kIGluIHNoYW1lIGhhc3RlbnMgdG8gaGlkZSBpdHMgbWVtb3J5IHVuZGVyIHRoZSBncmVlbiBncmFzcy4xODcuVG9lcyBhcmUgdGhlIGZpbmdlcnMgdGhhdCBoYXZlIGZvcnNha2VuIHRoZWlyIHBhc3QuMTg4LkRhcmtuZXNzIHRyYXZlbHMgdG93YXJkcyBsaWdodCwgYnV0IGJsaW5kbmVzcyB0b3dhcmRzIGRlYXRoLjE4OS5UaGUgcGV0IGRvZyBzdXNwZWN0cyB0aGUgdW5pdmVyc2UgZm9yIHNjaGVtaW5nIHRvIHRha2UgaXRzIHBsYWNlLjE5MC5TaXQgc3RpbGwsIG15IGhlYXJ0LCBkbyBub3QgcmFpc2UgeW91ciBkdXN0LkxldCB0aGUgd29ybGQgZmluZCBpdHMgd2F5IHRvIHlvdS4xOTEuVGhlIGJvdyB3aGlzcGVycyB0byB0aGUgYXJyb3cgYmVmb3JlIGl0IHNwZWVkcyBmb3J0aC0tWW91ciBmcmVlZG9tIGlzIG1pbmUuMTkyLldvbWFuLCBpbiB5b3VyIGxhdWdodGVyIHlvdSBoYXZlIHRoZSBtdXNpYyBvZiB0aGUgZm91bnRhaW4gb2YgbGlmZS4xOTMuQSBtaW5kIGFsbCBsb2dpYyBpcyBsaWtlIGEga25pZmUgYWxsIGJsYWRlLkl0IG1ha2VzIHRoZSBoYW5kIGJsZWVkIHRoYXQgdXNlcyBpdC4xOTQuR29kIGxvdmVzIG1hbidzIGxhbXAgbGlnaHRzIGJldHRlciB0aGFuIGhpcyBvd24gZ3JlYXQgc3RhcnMuMTk1LlRoaXMgd29ybGQgaXMgdGhlIHdvcmxkIG9mIHdpbGQgc3Rvcm1zIGtlcHQgdGFtZSB3aXRoIHRoZSBtdXNpYyBvZiBiZWF1dHkuMTk2Lk15IGhlYXJ0IGlzIGxpa2UgdGhlIGdvbGRlbiBjYXNrZXQgb2YgdGh5IGtpc3MsY2xvdWQgdG8gdGhlIHN1bi4xOTcuQnkgdG91Y2hpbmcgeW91IG1heSBraWxsLCBieSBrZWVwaW5nIGF3YXkgeW91IG1heSBwb3NzZXNzLjE5OC5UaGUgY3JpY2tldCdzIGNoaXJwIGFuZCB0aGUgcGF0dGVyIG9mIHJhaW4gY29tZSB0byBtZSB0aHJvdWdoIHRoZSBkYXJrLGxpa2UgdGhlIHJ1c3RsZSBvZiBkcmVhbXMgZnJvbSBteSBwYXN0IHlvdXRoLjE5OS5JIGhhdmUgbG9zdCBteSBkZXdkcm9wLGxvc3QgYWxsIGl0cyBzdGFycy4yMDAuVGhlIGJ1cm5pbmcgbG9nIGJ1cnN0cyBpbiBmbGFtZSBhbmQgY3JpZXMsIC0tLSAiVGhpcyBpcyBteSBmbG93ZXIsIG15IGRlYXRoLiIyMDEuVGhlIHdhc3AgdGhpbmtzIHRoYXQgdGhlIGhvbmV5aGl2ZSBvZiB0aGUgbmVpZ2hib3VyaW5nIGJlZXMgaXMgdG9vIHNtYWxsLkhpcyBuZWlnaGJvdXJzIGFzayBoaW0gdG8gYnVpbGQgb25lIHN0aWxsIHNtYWxsZXIuMjAySSBjYW5ub3Qga2VlcCB5b3VyIHdhdmVzLCBMZXQgbWUga2VlcCB5b3VyIGZvb3RwcmludHMgaW4gbXkgaGVhcnQuMjAzLlRoZSBkYXksIHdpdGggdGhlIG5vaXNlIG9mIHRoaXMgbGl0dGxlIGVhcnRoLCBkcm93bnMgdGhlIHNpbGVuY2Ugb2YgYWxsIHdvcmxkcy4yMDQuVGhlIHNvbmcgZmVlbHMgdGhlIGluZmluaXRlIGluIHRoZSBhaXIsIHRoZSBwaWN0dXJlIGluIHRoZSBlYXJ0aCx0aGUgcG9lbSBpbiB0aGUgYWlyIGFuZCB0aGUgZWFydGg7Rm9yIGl0cyB3b3JkcyBoYXZlIG1lYW5pbmcgdGhhdCB3YWxrcyBhbmQgbXVzaWMgdGhhdCBzb2Fycy4yMDUuV2hlbiB0aGUgc3VuIGdvZXMgZG93biB0byB0aGUgV2VzdCwgdGhlIEVhc3Qgb2YgaGlzIG1vcm5pbmcgc3RhbmRzIGJlZm9yZSBoaW0gaW4gc2lsZW5jZS4yMDYuTGV0IG1lIG5vdCBwdXQgbXlzZWxmIHdyb25nbHkgdG8gbXkgd29ybGQgYW5kIHNldCBpdCBhZ2FpbnN0IG1lLjIwNy5QcmFpc2Ugc2hhbWVzIG1lLCBmb3IgSSBzZWNyZXRseSBiZWcgZm9yIGl0LjIwOC5MZXQgbXkgZG9pbmcgbm90aGluZyB3aGVuIEkgaGF2ZSBub3RoaW5nIHRvIGRvIGJlY29tZSB1bnRyb3VibGVkIGluIGl0cyBkZXB0aCBvZiBwZWFjZSBsaWtlIHRoZSBldmVuaW5nIGluIHRoZSBzZWFzaG9yZSB3aGVuIHRoZSB3YXRlciBpcyBzaWxlbnQuMjA5Lk1haWRlbiwgeW91ciBzaW1wbGljaXR5LCBsaWtlIHRoZSBibHVlbmVzcyBvZiB0aGUgbGFrZSwgcmV2ZWFscyB5b3VyIGRlcHRoIG9mIHRydXRoLjIxMC5UaGUgYmVzdCBkb2VzIG5vdCBjb21lIGFsb25lLkl0IGNvbWVzIHdpdGggdGhlIGNvbXBhbnkgb2YgdGhlIGFsbC4yMTEuR29kJ3MgcmlnaHQgaGFuZCBpcyBnZW50bGUsIGJ1dCB0ZXJyaWJsZSBpcyBoaXMgbGVmdCBoYW5kLjIxMi5NeSBldmVuaW5nIGNhbWUgYW1vbmcgdGhlIGFsaWVuIHRyZWVzIGFuZCBzcG9rZSBpbiBhIGxhbmd1YWdlIHdoaWNoIG15IG1vcm5pbmcgc3RhcnMgZGlkIG5vdCBrbm93LjIxMy5OaWdodCdzIGRhcmtuZXNzIGlzIGEgYmFnIHRoYXQgYnVyc3RzIHdpdGggdGhlIGdvbGQgb2YgdGhlIGRhd24uMjE0Lk91ciBkZXNpcmUgbGVuZHMgdGhlIGNvbG91cnMgb2YgdGhlIHJhaW5ib3cgdG8gdGhlIG1lcmUgbWlzdHMgYW5kIHZhcG91cnMgb2YgbGlmZS4yMTUuR29kIHdhaXRzIHRvIHdpbiBiYWNrIGhpcyBvd24gZmxvd2VycyBhcyBnaWZ0cyBmcm9tIG1hbidzIGhhbmRzLjIxNi5NeSBzYWQgdGhvdWdodHMgdGVhc2UgbWUgYXNraW5nIG1lIHRoZWlyIG93biBuYW1lcy4yMTcuVGhlIHNlcnZpY2Ugb2YgdGhlIGZydWl0IGlzIHByZWNpb3VzLCB0aGUgc2VydmljZSBvZiB0aGUgZmxvd2VyIGlzIHN3ZWV0LCBidXQgbGV0IG15IHNlcnZpY2UgYmUgdGhlIHNlcnZpY2Ugb2YgdGhlIGxlYXZlcyBpbiBpdHMgc2hhZGUgb2YgaHVtYmxlIGRldm90aW9uLjIxOC5NeSBoZWFydCBoYXMgc3ByZWFkIGl0cyBzYWlscyB0byB0aGUgaWRsZSB3aW5kcyBmb3IgdGhlIHNoYWRvd3lpc2xhbmQgb2YgQW55d2hlcmUuMjE5Lk1lbiBhcmUgY3J1ZWwsIGJ1dCBNYW4gaXMga2luZC4yMjAuTWFrZSBtZSB0aHkgY3VwIGFuZCBsZXQgbXkgZnVsbmVzcyBiZSBmb3IgdGhlZSBhbmQgZm9yIHRoaW5lLjIyMS5UaGUgc3Rvcm0gaXMgbGlrZSB0aGUgY3J5IG9mIHNvbWUgZ29kIGluIHBhaW4gd2hvc2UgbG92ZSB0aGUgZWFydGggcmVmdXNlcy4yMjIuVGhlIHdvcmxkIGRvZXMgbm90IGxlYWsgYmVjYXVzZSBkZWF0aCBpcyBub3QgYSBjcmFjay4yMjMuTGlmZSBoYXMgYmVjb21lIHJpY2hlciBieSB0aGUgbG92ZSB0aGF0IGhhcyBiZWVuIGxvc3QuMjI0Lk15IGZyaWVuZCwgeW91ciBncmVhdCBoZWFydCBzaG9uZSB3aXRoIHRoZSBzdW5yaXNlIG9mIHRoZSBFYXN0IGxpa2UgdGhlIHNub3d5IHN1bW1pdCBvZiBhIGxvbmVseSBoaWxsIGluIHRoZSBkYXduLjIyNS5UaGUgZm91bnRhaW4gb2YgZGVhdGggbWFrZXMgdGhlIHN0aWxsIHdhdGVyIG9mIGxpZmUgcGxheS4yMjYuVGhvc2Ugd2hvIGhhdmUgZXZlcnl0aGluZyBidXQgdGhlZSwgbXkgR29kLCBsYXVnaCBhdCB0aG9zZSB3aG8gaGF2ZSBub3RoaW5nIGJ1dCB0aHlzZWxmLjIyNy5UaGUgbW92ZW1lbnQgb2YgbGlmZSBoYXMgaXRzIHJlc3QgaW4gaXRzIG93biBtdXNpYy4yMjguS2lja3Mgb25seSByYWlzZSBkdXN0IGFuZCBub3QgY3JvcHMgZnJvbSB0aGUgZWFydGguMjI5Lk91ciBuYW1lcyBhcmUgdGhlIGxpZ2h0IHRoYXQgZ2xvd3Mgb24gdGhlIHNlYSB3YXZlcyBhdCBuaWdodCBhbmQgdGhlbiBkaWVzIHdpdGhvdXQgbGVhdmluZyBpdHMgc2lnbmF0dXJlLjIzMC5MZXQgaGltIG9ubHkgc2VlIHRoZSB0aG9ybnMgd2hvIGhhcyBleWVzIHRvIHNlZSB0aGUgcm9zZS4yMzEuU2V0IHRoZSBiaXJkJ3Mgd2luZ3Mgd2l0aCBnb2xkIGFuZCBpdCB3aWxsIG5ldmVyIGFnYWluIHNvYXIgaW4gdGhlIHNreS4yMzIuVGhlIHNhbWUgbG90dXMgb2Ygb3VyIGNsaW1lIGJsb29tcyBoZXJlIGluIHRoZSBhbGllbiB3YXRlciB3aXRoIHRoZSBzYW1lIHN3ZWV0bmVzcywgdW5kZXIgYW5vdGhlciBuYW1lLjIzMy5JbiBoZWFydCdzIHBlcnNwZWN0aXZlIHRoZSBkaXN0YW5jZSBsb29tcyBsYXJnZS4yMzQuVGhlIG1vb24gaGFzIGhlciBsaWdodCBhbGwgb3ZlciB0aGUgc2t5LCBoZXIgZGFyayBzcG90cyB0byBoZXJzZWxmLjIzNS5EbyBub3Qgc2F5LCAiSXQgaXMgbW9ybmluZywiIGFuZCBkaXNtaXNzIGl0IHdpdGggYSBtYW5lIG9mIHllc3RlcmRheS5TZWUgaXQgZm9yIHRoZSBmaXJzdCB0aW1lIGFzIGEgbmV3LWJvcm4gY2hpbGQgdGhhdCBoYXMgbm8gbmFtZS4yMzYuU21va2UgYm9hc3RzIHRvIHRoZSBza3ksIGFuZCBBc2hlcyB0byB0aGUgZWFydGgsIHRoYXQgdGhleSBhcmUgYnJvdGhlcnMgdG8gdGhlIGZpcmUuMjM3LlRoZSByYWluZHJvcCB3aGlzcGVyZWQgdG8gdGhlIGphc21pbmUsICJLZWVwIG1lIGluIHlvdXIgaGVhcnQgZm9yIGV2ZXIuIlRoZSBqYXNtaW5lIHNpZ2hlZCwgIkFsYXMsIiBhbmQgZHJvcHBlZCB0byB0aGUgZ3JvdW5kLjIzOC5UaW1pZCB0aG91Z2h0cywgZG8gbm90IGJlIGFmcmFpZCBvZiBtZS4gSSBhbSBhIHBvZXQuMjM5LlRoZSBkaW0gc2lsZW5jZSBvZiBteSBtaW5kIHNlZW1zIGZpbGxlZCB3aXRoIGNyaWNrZXRzJyBjaGlycCAtLS10aGUgZ3JleSB0d2lsaWdodCBvZiBzb3VuZC4yNDAuUm9ja2V0cywgeW91ciBpbnN1bHQgdG8gdGhlIHN0YXJzIGZvbGxvd3MgeW91cnNlbGYgYmFjayB0byB0aGUgZWFydGguMjQxLlRob3UgaGFzdCBsZWQgbWUgdGhyb3VnaCBteSBjcm93ZGVkIHRyYXZlbHMgb2YgdGhlIGRheSB0byBteSBldmVuaW5nJ3Nsb25lbGluZXNzLkkgd2FpdCBmb3IgaXRzIG1lYW5pbmcgdGhyb3VnaCB0aGUgc3RpbGxuZXNzIG9mIHRoZSBuaWdodC4yNDIuVGhpcyBsaWZlIGlzIHRoZSBjcm9zc2luZyBvZiBhIHNlYSwgd2hlcmUgd2UgbWVldCBpbiB0aGUgc2FtZSBuYXJyb3cgc2hpcC5JbiBkZWF0aCB3ZSByZWFjaCB0aGUgc2hvcmUgYW5kIGdvIHRvIG91ciBkaWZmZXJlbnQgd29ybGRzLjI0My5UaGUgc3RyZWFtIG9mIHRydXRoIGZsb3dzIHRocm91Z2ggaXRzIGNoYW5uZWxzIG9mIG1pc3Rha2VzLjI0NC5NeSBoZWFydCBpcyBob21lc2ljayB0b2RheSBmb3IgdGhlIG9uZSBzd2VldCBob3VyIGFjcm9zcyB0aGUgc2VhIG9mIHRpbWUuMjQ1LlRoZSBiaXJkLXNvbmcgaXMgdGhlIGVjaG8gb2YgdGhlIG1vcm5pbmcgbGlnaHQgYmFjayBmcm9tIHRoZSBlYXJ0aC4yNDYuQXJlIHlvdSB0b28gcHJvdWQgdG8ga2lzcyBtZT8yNDcuSG93IG1heSBJIHNpbmcgdG8gdGhlZSBhbmQgd29yc2hpcCwgTyBTdW4/QnkgdGhlIHNpbXBsZSBzaWxlbmNlIG9mIHRoeSBwdXJpdHksMjQ4Lk1hbiBpcyB3b3JzZSB0aGFuIGFuIGFuaW1hbCB3aGVuIGhlIGlzIGFuIGFuaW1hbC4yNDkuRGFyayBjbG91ZHMgYmVjb21lIGhlYXZlbidzIGZsb3dlcnMgd2hlbiBraXNzZWQgYnkgbGlnaHQuMjUwLkxldCBub3QgdGhlIHN3b3JkLWJsYWRlIG1vY2sgaXRzIGhhbmRsZSBmb3IgYmVpbmcgYmx1bnQuMjUxLlRoZSBuaWdodCdzIHNpbGVuY2UsIGxpa2UgYSBkZWVwIGxhbXAsIGlzIGJ1cm5pbmcgd2l0aCB0aGUgbGlnaHQgb2ZpdHMgbWlsa3kgd2F5LjI1Mi5Bcm91bmQgdGhlIHN1bm55IGlzbGFuZCBvZiBMaWZlIHN3ZWxscyBkYXkgYW5kIG5pZ2h0IGRlYXRoJ3NsaW1pdGxlc3Mgc29uZyBvZiB0aGUgc2VhLjI1My5JcyBub3QgdGhpcyBtb3VudGFpbiBsaWtlIGEgZmxvd2VyLCB3aXRoIGl0cyBwZXRhbHMgb2YgaGlsbCwgZHJpbmtpbmd0aGUgc3VubGlnaHQ/MjU0LlRoZSByZWFsIHdpdGggaXRzIG1lYW5pbmcgcmVhZCB3cm9uZyBhbmQgZW1waGFzaXMgbWlzcGxhY2VkIGlzIHRoZSB1bnJlYWwuMjU1LkZpbmQgeW91ciBiZWF1dHksIG15IGhlYXJ0LCBmcm9tIHRoZSB3b3JsZCdzIG1vdmVtZW50LCBsaWtlIHRoZSBib2F0IHRoYXQgaGFzIHRoZSBncmFjZSBvZiB0aGUgd2luZCBhbmQgdGhlIHdhdGVyLjI1Ni5UaGUgZXllcyBhcmUgbm90IHByb3VkIG9mIHRoZWlyIHNpZ2h0IGJ1dCBvZiB0aGVpciBleWVnbGFzc2VzLjI1Ny5JIGxpdmUgaW4gdGhpcyBsaXR0bGUgd29ybGQgb2YgbWluZSBhbmQgYW0gYWZyYWlkIHRvIG1ha2UgaXQgdGhlbGVhc3QgbGVzcy4gTGlmZSBtZSBpbnRvIHRoeSB3b3JsZCBhbmQgbGV0IG1lIGhhdmUgdGhlIGZyZWVkb20gZ2xhZGx5dG8gbG9zZSBteSBhbGwuMjU4LlRoZSBmYWxzZSBjYW4gbmV2ZXIgZ3JvdyBpbnRvIHRydXRoIGJ5IGdyb3dpbmcgaW4gcG93ZXIuMjU5Lk15IGhlYXJ0LCB3aXRoIGl0cyBsYXBwaW5nIHdhdmVzIG9mIHNvbiwgbG9uZ3MgdG8gY2FyZXNzIHRoaXMgZ3JlZW53b3JsZCBvZiB0aGUgc3VubnkgZGF5LjI2MC5XYXlzaWRlIGdyYXNzLCBsb3ZlIHRoZSBzdGFyLCB0aGVuIHlvdXIgZHJlYW1zIHdpbGwgY29tZSBvdXQgaW4gZmxvd2Vycy4yNjEuTGV0IHlvdXIgbXVzaWMsIGxpa2UgYSBzd29yZCwgcGllcmNlIHRoZSBub2lzZSBvZiB0aGUgbWFya2V0IHRvIGl0cyBoZWFydC4yNjIuVGhlIHRyZW1ibGluZyBsZWF2ZXMgb2YgdGhpcyB0cmVlIHRvdWNoIG15IGhlYXJ0IGxpa2UgdGhlIGZpbmdlcnMgb2ZhbiBpbmZhbnQgY2hpbGQuMjYzLlRoZSBsaXR0bGUgZmxvd2VyIGxpZXMgaW4gdGhlIGR1c3QuSXQgc291Z2h0IHRoZSBwYXRoIG9mIHRoZSBidXR0ZXJmbHkuMjY0LkkgYW0gaW4gdGhlIHdvcmxkIG9mIHRoZSByb2Fkcy5UaGUgbmlnaHQgY29tZXMuIE9wZW4gdGh5IGdhdGUsIHRob3Ugd29ybGQgb2YgdGhlIGhvbWUuMjY1LkkgaGF2ZSBzdW5nIHRoZSBzb25ncyBvZiB0aHkgZGF5LkluIHRoZSBldmVuaW5nIGxldCBtZSBjYXJyeSB0aHkgbGFtcCB0aHJvdWdoIHRoZSBzdG9ybXkgcGF0aC4yNjYuSSBkbyBub3QgYXNrIHRoZWUgaW50byB0aGUgaG91c2UuQ29tZSBpbnRvIG15IGluZmluaXRlIGxvbmVsaW5lc3MsIG15IExvdmVyLjI2Ny5EZWF0aCBiZWxvbmdzIHRvIGxpZmUgYXMgYmlydGggZG9lcy5UaGUgd2FsayBpcyBpbiB0aGUgcmFpc2luZyBvZiB0aGUgZm9vdCBhcyBpbiB0aGUgbGF5aW5nIG9mIGl0IGRvd24uMjY4LkkgaGF2ZSBsZWFybnQgdGhlIHNpbXBsZSBtZWFuaW5nIG9mIHRoeSB3aGlzcGVycyBpbiBmbG93ZXJzIGFuZCBzdW5zaGluZS0tLXRlYWNoIG1lIHRvIGtub3cgdGh5IHdvcmRzIGluIHBhaW4gYW5kIGRlYXRoLjI2OS5UaGUgbmlnaHQncyBmbG93ZXIgd2FzIGxhdGUgd2hlbiB0aGUgbW9ybmluZyBraXNzZWQgaGVyLCBzaGUgc2hpdmVyZWRhbmQgc2lnaGVkIGFuZCBkcm9wcGVkIHRvIHRoZSBncm91bmQuMjcwLlRocm91Z2ggdGhlIHNhZG5lc3Mgb2YgYWxsIHRoaW5ncyBJIGhlYXIgdGhlIGNyb29uaW5nIG9mIHRoZSBFdGVybmFsIE1vdGhlci4yNzEuSSBjYW1lIHRvIHlvdXIgc2hvcmUgYXMgYSBzdHJhbmdlciwgSSBsaXZlZCBpbiB5b3VyIGhvdXNlIGFzIGEgZ3Vlc3QsSSBsZWF2ZSB5b3VyIGRvb3IgYXMgYSBmcmllbmQsIG15IGVhcnRoLjI3Mi5MZXQgbXkgdGhvdWdodHMgY29tZSB0byB5b3UsIHdoZW4gSSBhbSBnb25lLCBsaWtlIHRoZSBhZnRlciBnbG93IG9mc3Vuc2V0IGF0IHRoZSBtYXJnaW4gb2Ygc3RhcnJ5IHNpbGVuY2UuMjczLkxpZ2h0IGluIG15IGhlYXJ0IHRoZSBldmVuaW5nIHN0YXIgb2YgcmVzdCBhbmQgdGhlbiBsZXQgdGhlIG5pZ2h0d2hpc3BlciB0byBtZSBvZiBsb3ZlLjI3NC5JIGFtIGEgY2hpbGQgaW4gdGhlIGRhcmsuSSBzdHJldGNoIG15IGhhbmRzIHRocm91Z2ggdGhlIGNvdmVybGV0IG9mIG5pZ2h0IGZvciB0aGVlLCBNb3RoZXIuMjc1LlRoZSBkYXkgb2Ygd29yayBpcyBkb25lLiBIaWRlIG15IGZhY2UgaW4geW91ciBhcm1zLCBNb3RoZXIuIExldCBtZSBkcmVhbS4yNzYuVGhlIGxhbXAgb2YgbWVldGluZyBidXJucyBsb25nOyBpdCBnb2VzIG91dCBpbiBhIG1vbWVudCBhdCB0aGUgcGFydGluZy4yNzcuT25lIHdvcmQga2VlcCBmb3IgbWUgaW4gdGh5IHNpbGVuY2UsIE8gV29ybGQsIHdoZW4gSSBhbSBkZWFkLEkgaGF2ZSBsb3ZlZC4yNzguV2UgbGl2ZSBpbiB0aGlzIHdvcmxkIHdoZW4gd2UgbG92ZSBpdC4yNzkuTGV0IHRoZSBkZWFkIGhhdmUgdGhlIGltbW9ydGFsaXR5IG9mIGZhbWUsIGJ1dCB0aGUgbGl2aW5nIHRoZSBpbW1vcnRhbGl0eSBvZiBsb3ZlLjI4MC5JIGhhdmUgc2VlbiB0aGVlIGFzIHRoZSBoYWxmLWF3YWtlbmVkIGNoaWxkIHNlZXMgaGlzIG1vdGhlciBpbiB0aGUgZHVzayBvZiB0aGUgZGF3biBhbmQgdGhlbiBzbWlsZXMgYW5kIHNsZWVwcyBhZ2Fpbi4yODEuSSBzaGFsbCBkaWUgYWdhaW4gYW5kIGFnYWluIHRvIGtub3cgdGhhdCBsaWZlIGlzIGluZXhoYXVzdGlibGUuMjgyLldoaWxlIEkgd2FzIHBhc3Npbmcgd2l0aCB0aGUgY3Jvd2QgaW4gdGhlIHJvYWQgSSBzYXcgdGh5IHNtaWxlIGZyb20gdGhlIGJhbGNvbnkgYW5kIEkgc2FuZyBhbmQgZm9yZ290IGFsbCBub2lzZS4yODMuTG92ZSBpcyBsaWZlIGluIGl0cyBmdWxuZXNzIGxpa2UgdGhlIGN1cCB3aXRoIGl0cyB3aW5lLjI4NC5UaGV5IGxpZ2h0IHRoZWlyIG93biBsYW1wcyBhbmQgc2luZyB0aGVpciBvd24gd29yZHMgaW4gdGhlaXIgdGVtcGxlcy5CdXQgdGhlIGJpcmRzIHNpbmcgdGh5IG5hbWUgaW4gdGhpbmUgb3duIG1vcm5pbmcgbGlnaHQsIC0tLSBmb3IgdGh5IG5hbWUgaXMgam95LjI4NS5MZWFkIG1lIGluIHRoZSBjZW50cmUgb2YgdGh5IHNpbGVuY2UgdG8gZmlsbCBteSBoZWFydCB3aXRoIHNvbmdzLjI4Ni5MZXQgdGhlbSBsaXZlIHdobyBjaG9vc2UgaW4gdGhlaXIgb3duIGhpc3Npbmcgd29ybGQgb2YgZmlyZXdvcmtzLk15IGhlYXJ0IGxvbmcgcyBmb3IgdGh5IHN0YXJzLCBteSBHb2QuMjg3LkxvdmUncyBwYWluIHNhbmcgcm91bmQgbXkgbGlmZSBsaWtlIHRoZSB1bnBsdW1iZWQgc2VhLCBhbmQgbG92ZSdzIGpveSBzYW5nIGxpa2UgYmlyZHMgaW4gaXRzIGZsb3dlcmluZyBncm92ZXMuMjg4LlB1dCBvdXQgdGhlIGxhbXAgd2hlbiB0aG91IHdpc2hlc3QuSSBzaGFsbCBrbm93IHRoeSBkYXJrbmVzcyBhbmQgc2hhbGwgbG92ZSBpdC4yODkuV2hlbiBJIHN0YW5kIGJlZm9yZSB0aGVlIGF0IHRoZSBkYXkgcyBlbmQgdGhvdSBzaGFsdCBzZWUgbXkgc2NhcnMgYW5kIGtub3cgdGhhdCBJIGhhZCBteSB3b3VuZHMgYW5kIGFsc28gbXkgaGVhbGluZy4yOTAuU29tZSBkYXkgSSBzaGFsbCBzaW5nIHRvIHRoZWUgaW4gdGhlIHN1bnJpc2Ugb2Ygc29tZSBvdGhlciB3b3JsZCwgSSBoYXZlIHNlZW4gdGhlZSBiZWZvcmUgaW4gdGhlIGxpZ2h0IG9mIHRoZSBlYXJ0aCwgaW4gdGhlIGxvdmUgb2YgbWFuLjI5MS5DbG91ZHMgY29tZSBmbG9hdGluZyBpbnRvIG15IGxpZmUgZnJvbSBvdGhlciBkYXlzIG5vIGxvbmdlciB0byBzaGVkIHJhaW4gb3IgdXNoZXIgc3Rvcm0gYnV0IHRvIGdpdmUgY29sb3VyIHRvIG15IHN1bnNldCBza3kuMjkyLlRydXRoIHJhaXNlcyBhZ2FpbnN0IGl0c2VsZiB0aGUgc3Rvcm0gdGhhdCBzY2F0dGVycyBpdHMgc2VlZHMgYnJvYWRjYXN0LjI5My5UaGUgc3Rvcm0gb2YgdGhlIGxhc3QgbmlnaHQgaGFzIGNyb3duZWQgdGhpcyBtb3JuaW5nIHdpdGggZ29sZGVuIHBlYWNlLjI5NC5UcnV0aCBzZWVtcyB0byBjb21lIHdpdGggaXRzIGZpbmFsIHdvcmQ7IGFuZCB0aGUgZmluYWwgd29yZCBnaXZlcyBiaXJ0aCB0byBpdHMgbmV4dC4yOTUuQmxlc3NlZCBpcyBoZSB3aG9zZSBmYW1lIGRvZXMgbm90IG91dHNoaW5lIGhpcyB0cnV0aC4yOTYuU3dlZXRuZXNzIG9mIHRoeSBuYW1lIGZpbGxzIG15IGhlYXJ0IHdoZW4gSSBmb3JnZXQgbWluZS0tLWxpa2UgdGh5IG1vcm5pbmcgc3VuIHdoZW4gdGhlIG1pc3QgaXMgbWVsdGVkLjI5Ny5UaGUgc2lsZW50IG5pZ2h0IGhhcyB0aGUgYmVhdXR5IG9mIHRoZSBtb3RoZXIgYW5kIHRoZSBjbGFtb3JvdXMgZGF5IG9mIHRoZSBjaGlsZC4yOTguVGhlIHdvcmxkIGxvdmVkIG1hbiB3aGVuIGhlIHNtaWxlZC4gVGhlIHdvcmxkIGJlY2FtZSBhZnJhaWQgb2YgaGltd2hlbiBoZSBsYXVnaGVkLjI5OS5Hb2Qgd2FpdHMgZm9yIG1hbiB0byByZWdhaW4gaGlzIGNoaWxkaG9vZCBpbiB3aXNkb20uMzAwLkxldCBtZSBmZWVsIHRoaXMgd29ybGQgYXMgdGh5IGxvdmUgdGFraW5nIGZvcm0sIHRoZW4gbXkgb3ZlIHdpbGwgaGVscCBpdC4zMDEuVGh5IHN1bnNoaW5lIHNtaWxlcyB1cG9uIHRoZSB3aW50ZXIgZGF5cyBvZiBteSBoZWFydCwgbmV2ZXIgZG91YnRpbmcgb2YgaXRzIHNwcmluZyBmbG93ZXJzLjMwMi5Hb2Qga2lzc2VzIHRoZSBmaW5pdGUgaW4gaGlzIGxvdmUgYW5kIG1hbiB0aGUgaW5maW5pdGUuMzAzLlRob3UgY3Jvc3Nlc3QgZGVzZXJ0IGxhbmRzIG9mIGJhcnJlbiB5ZWFycyB0byByZWFjaCB0aGUgbW9tZW50IG9mIGZ1bGZpbG1lbnQuMzA0LkdvZCdzIHNpbGVuY2UgcmlwZW5zIG1hbidzIHRob3VnaHRzIGludG8gc3BlZWNoLjMwNS5UaG91IHdpbHQgZmluZCwgRXRlcm5hbCBUcmF2ZWxsZXIsIG1hcmtzIG9mIHRoeSBmb290c3RlcHMgYWNyb3NzIG15IHNvbmdzLjMwNi5MZXQgbWUgbm90IHNoYW1lIHRoZWUsIEZhdGhlciwgd2hvIGRpc3BsYXllc3QgdGh5IGdsb3J5IGluIHRoeSBjaGlsZHJlbi4zMDcuQ2hlZXJsZXNzIGlzIHRoZSBkYXksIHRoZSBsaWdodCB1bmRlciBmcm93bmluZyBjbG91ZHMgaXMgbGlrZSBhcHVuaXNoZWQgY2hpbGQgd2l0aCB0cmFjZXMgb2YgdGVhcnMgb24gaXRzIHBhbGUgY2hlZWtzLCBhbmQgdGhlIGNyeSBvZnRoZSB3aW5kIGlzIGxpa2UgdGhlIGNyeSBvZiBhIHdvdW5kZWQgd29ybGQuIEJ1dCBJIGtub3cgSSBhbSB0cmF2ZWxsaW5ndG8gbWVldCBteSBGcmllbmQuMzA4LlRvbmlnaHQgdGhlcmUgaXMgYSBzdGlyIGFtb25nIHRoZSBwYWxtIGxlYXZlcywgYSBzd2VsbCBpbiB0aGUgc2VhLEZ1bGwgTW9vbiwgbGlrZSB0aGUgaGVhcnQgdGhyb2Igb2YgdGhlIHdvcmxkLiBGcm9tIHdoYXQgdW5rbm93biBza3kgaGFzdHRob3UgY2FycmllZCBpbiB0aHkgc2lsZW5jZSB0aGUgYWNoaW5nIHNlY3JldCBvZiBsb3ZlPzMwOS5JIGRyZWFtIG9mIGEgc3RhciwgYW4gaXNsYW5kIG9mIGxpZ2h0LCB3aGVyZSBJIHNoYWxsIGJlIGJvcm4gYW5kIGludGhlIGRlcHRoIG9mIGl0cyBxdWlja2VuaW5nIGxlaXN1cmUgbXkgbGlmZSB3aWxsIHJpcGVuIGl0cyB3b3JrcyBsaWtldGhlIHJpY2UtZmllbGQgaW4gdGhlIGF1dHVtbiBzdW4uMzEwLlRoZSBzbWVsbCBvZiB0aGUgd2V0IGVhcnRoIGluIHRoZSByYWluIHJpc2VzIGxpa2UgYSBncmVhdCBjaGFudCBvZnByYWlzZSBmcm9tIHRoZSB2b2ljZWxlc3MgbXVsdGl0dWRlIG9mIHRoZSBpbnNpZ25pZmljYW50LjMxMS5UaGF0IGxvdmUgY2FuIGV2ZXIgbG9zZSBpcyBhIGZhY3QgdGhhdCB3ZSBjYW5ub3QgYWNjZXB0IGFzIHRydXRoLjMxMi5XZSBzaGFsbCBrbm93IHNvbWUgZGF5IHRoYXQgZGVhdGggY2FuIG5ldmVyIHJvYiB1cyBvZiB0aGF0IHdoaWNoIG91ciBzb3VsIGhhcyBnYWluZWQsIGZvciBoZXIgZ2FpbnMgYXJlIG9uZSB3aXRoIGhlcnNlbGYuMzEzLkdvZCBjb21lcyB0byBtZSBpbiB0aGUgZHVzayBvZiBteSBldmVuaW5nIHdpdGggdGhlIGZsb3dlcnMgZnJvbSBteSBwYXN0IGtlcHQgZnJlc2ggaW4gaGlzIGJhc2tldC4zMTQuV2hlbiBhbGwgdGhlIHN0cmluZ3Mgb2YgbXkgbGlmZSB3aWxsIGJlIHR1bmVkLCBteSBNYXN0ZXIsIHRoZW4gYXQgZXZlcnkgdG91Y2ggb2YgdGhpbmUgd2lsbCBjb21lIG91dCB0aGUgbXVzaWMgb2YgbG92ZS4zMTUuTGV0IG1lIGxpdmUgdHJ1bHksIG15IExvcmQsIHNvIHRoYXQgZGVhdGggdG8gbWUgYmVjb21lIHRydWUuMzE2Lk1hbidzIGhpc3RvcnkgaXMgd2FpdGluZyBpbiBwYXRpZW5jZSBmb3IgdGhlIHRyaXVtcGggb2YgdGhlIGluc3VsdGVkIG1hbi4zMTcuSSBmZWVsIHRoeSBnYXplIHVwb24gbXkgaGVhcnQgdGhpcyBtb21lbnQgbGlrZSB0aGUgc3Vubnkgc2lsZW5jZSBvZnRoZSBtb3JuaW5nIHVwb24gdGhlIGxvbmVseSBmaWVsZCB3aG9zZSBoYXJ2ZXN0IGlzIG92ZXIuMzE4LkkgbG9uZyBmb3IgdGhlIElzbGFuZCBvZiBTb25ncyBhY3Jvc3MgdGhpcyBoZWF2aW5nIFNlYSBvZiBTaG91dHMuMzE5LlRoZSBwcmVsdWRlIG9mIHRoZSBuaWdodCBpcyBjb21tZW5jZWQgaW4gdGhlIG11c2ljIG9mIHRoZSBzdW5zZXQsaW4gaXRzIHNvbGVtbiBoeW1uIHRvIHRoZSBpbmVmZmFibGUgZGFyay4zMjAuSSBoYXZlIHNjYWxlZCB0aGUgcGVhayBhbmQgZm91bmQgbm8gc2hlbHRlciBpbiBmYW1lJ3MgYmxlYWsgYW5kIGJhcnJlbmhlaWdodC4gTGVhZCBtZSwgbXkgR3VpZGUsIGJlZm9yZSB0aGUgbGlnaHQgZmFkZXMsIGludG8gdGhlIHZhbGxleSBvZnF1aWV0IHdoZXJlIGxpZmUncyBoYXJ2ZXN0IG1lbGxvd3MgaW50byBnb2xkZW4gd2lzZG9tLjMyMS5UaGluZ3MgbG9vayBwaGFudGFzdGljIGluIHRoaXMgZGltbmVzcyBvZiB0aGUgZHVzay0tLXRoZSBzcGlyZXMgd2hvc2ViYXNlcyBhcmUgbG9zdCBpbiB0aGUgZGFyayBhbmQgdHJlZSB0b3BzIGxpa2UgYmxvdHMgb2YgaW5rLiBJIHNoYWxsIHdhaXRmb3IgdGhlIG1vcm5pbmcgYW5kIHdha2UgdXAgdG8gc2VlIHRoeSBjaXR5IGluIHRoZSBsaWdodC4zMjIuIEkgaGF2ZSBzdWZmZXJlZCBhbmQgZGVzcGFpcmVkIGFuZCBrbm93biBkZWF0aCBhbmQgSSBhbSBnbGFkIHRoYXQgSSBhbSBpbiB0aGlzIGdyZWF0IHdvcmxkLjMyMy5UaGVyZSBhcmUgdHJhY3RzIGluIG15IGxpZmUgdGhhdCBhcmUgYmFyZSBhbmQgc2lsZW50LiBUaGV5IGFyZSB0aGVvcGVuIHNwYWNlcyB3aGVyZSBteSBidXN5IGRheXMgaGFkIHRoZWlyIGxpZ2h0IGFuZCBhaXIuMzI0LlJlbGVhc2UgbWUgZnJvbSBteSB1bmZ1bGZpbGxlZCBwYXN0IGNsaW5naW5nIHRvIG1lIGZyb20gYmVoaW5kIG1ha2luZ2RlYXRoIGRpZmZpY3VsdC4zMjUuTGV0IHRoaXMgYmUgbXkgbGFzdCB3b3JkLCB0aGF0IEkgdHJ1c3QgdGh5IGxvdmUuPGJyPjxpbWcgc3JjPSJQdWJsaWMvVXBsb2Fkcy8yMDE4MDEvMTUxNjI2OTQyMC5qcGciID4=