PGh0bWw+CjxoZWFkPgo8dGl0bGU+SnVidWxhIDEuMC4wIFJlbGVhc2UvR3JhZHVhdGlvbiBEb2N1bWVudGF0aW9uPC90aXRsZT4KPC9oZWFkPgo8aDE+SnVidWxhIDEuMC4wIFJlbGVhc2UvR3JhZHVhdGlvbiBEb2N1bWVudGF0aW9uPC9oMT4KPGgxPkNvbnRlbnQ8L2gxPgpUaGlzIHBhZ2VzIHByb3ZpZGUgdGhlIHJlcXVpcmVkIGRvY3V3YXJlIGZvciB0aGUgSnVidWxhIDEuMC4wClJlbGVhc2UvR3JhZHVhdGlvbiBSZXZpZXcgYXMgcGFydCBvZiB0aGUgdXBjb21pbmcgSW5kaWdvIFNpbXVsdGFuZW91cwpSZWxlYXNlCjxicj4gQ29udGFjdDogQWNoaW0gTCZvdW1sO3JrZSAoQWNoaW0uTG9lcmtlQGJyZWRleC5kZSkKPGJyPiBSZWxlYXNlIFJldmlldzogSnVuZSAyMDExCjxicj4gQ29tbXVuaWNhdGlvbiBDaGFubmVsczogCjx1bD4KPGxpPkVjbGlwc2UgQnVnemlsbGE8L2xpPgo8bGk+SnVidWxhIE5ld3Nncm91cDwvbGk+CjxsaT5KdWJ1bGEgTWFpbGluZyBMaXN0IGp1YnVsYS1kZXZAZWNsaXBzZS5vcmcKPC91bD4KPGJyPiBQcm9jZXNzIERvY3VtZW50YXRpb24gOgpodHRwOi8vd3d3LmVjbGlwc2Uub3JnL3Byb2plY3RzL2Rldl9wcm9jZXNzL2RldmVsb3BtZW50X3Byb2Nlc3MucGhwCjxoMT5PdmVydmlldzwvaDE+CjxwPkp1YnVsYSBwcm92aWRlcyBhdXRvbWF0ZWQgZnVuY3Rpb25hbCBHVUkgdGVzdGluZyBmb3IgSmF2YSBhbmQgSFRNTAphcHBsaWNhdGlvbnMuIEl0IGlzIGFpbWVkIGF0IHRlYW1zIHdobyB3YW50IHRoZWlyIGF1dG9tYXRlZCB0ZXN0cyB0byBiZSB3cml0dGVuIGJ5IAp0ZXN0IGV4cGVydHMgZnJvbSB0aGUgdXNlciBwZXJzcGVjdGl2ZSwgd2l0aG91dCByZXF1aXJpbmcgYW55IGNvZGluZyBlZmZvcnQuIEp1YnVsYSAKdGVzdHMgaW5jb3Jwb3JhdGUgYmVzdCBwcmFjdGljZXMgZnJvbSBzb2Z0d2FyZSBkZXZlbG9wbWVudCB0byBlbnN1cmUgbG9uZy10ZXJtIAptYWludGFpbmFibGl0eSBvZiB0aGUgYXV0b21hdGVkIHRlc3RzLiAgCjwvcD4KVGVjaG5pY2FsIGRldGFpbHMKPHVsPgo8bGk+U3VwcG9ydHMgU3dpbmcsIFNXVC9SQ1AvR0VGIGFuZCBIVE1MIGFwcGxpY2F0aW9uczwvbGk+CjxsaT5QbGF0Zm9ybSBpbmRlcGVuZGVudCB0ZXN0aW5nIG9uIFdpbmRvd3MsIExpbnV4L1VuaXggYW5kIE1hYzwvbGk+CjxsaT5DbGllbnQtc2VydmVyIGFyY2hpdGVjdHVyZSBmb3IgZGlzdHJpYnV0ZWQgdGVzdGluZzwvbGk+CjxsaT5IZXVyaXN0aWMgb2JqZWN0IHJlY29nbml0aW9uPC9saT4KPGxpPkNvbW1hbmQgbGluZSBjbGllbnQgZm9yIGNvbnRpbnVvdXMgaW50ZWdyYXRpb248L2xpPgo8bGk+VGVzdGluZyBvZiBtdWx0aXBsZSBhcHBsaWNhdGlvbnMgc3VwcG9ydGVkPC9saT4KPGxpPkNvbnRleHQtc2Vuc2l0aXZlIGhlbHAgaW4gY2xpZW50PC9saT4KPGxpPlByb2plY3RzIHN0b3JlZCBpbiBtdWx0aS11c2VyIGRhdGFiYXNlPC9saT4KPGxpPlBvcnRhYmlsaXR5IGFuZCB2ZXJzaW9uIGNvbnRyb2wgdmlhIGV4cG9ydHMgaW4gWE1MIGZvcm1hdDwvbGk+CjwvdWw+Cgo8aDE+RmVhdHVyZXM8L2gxPgpUaGlzIHJlbGVhc2Ugb2YgSnVidWxhIGVuYWJsZXMgZGV2ZWxvcGVycyB0byB2aWV3IGFuZCBkZXZlbG9wIEdVSSBiYXNlZAp0ZXN0cy4gSXQgYWxzbyBhbGxvd3MgaW50ZXJhY3Rpb24gd2l0aCB0aGUgdGVzdCBpbmZyYXN0cnVjdHVyZSBhbmQgCmV4ZWN1dGlvbiBvZiB0ZXN0IHN1aXRlcy4KPGgxPk5vbi1Db2RlIEFzcGVjdHM8L2gxPgpEb2N1bWVudGF0aW9uLCBDaGVhdCBTaGVldHMgYW5kIE9ubGluZSBIZWxwIGhhdmUgYmVlbiBwcm92aWRlZCB0byAKYWxsb3cgYmVnaW5uZXJzIGEgcGFpbmxlc3Mgc3RhcnQuCjxoMT5UZXN0aW5nIGFuZCBQYWNrYWdpbmc8L2gxPgpKdWJ1bGEgaXMgYnVpbGQgdXNpbmcgSHVkc29uLCBNYXZlbiBhbmQgVHljaG8uCjxicj4KU2luY2UgSnVidWxhIGlzIGEgR1VJIHRlc3QgdG9vbCBpdCBpcyB0ZXN0ZWQgYnkgaXRzZWxmLiBUaGVyZSBhcmUgCmN1cnJlbnRseSA2NTAwIGhpZ2ggbGV2ZWwgdGVzdCBzdGVwcyBleGVjdXRlZCBmb3IgYSBjb21wbGV0ZSB0ZXN0LiBUaGlzCnRlc3QgaW5jbHVkZSBoYXBweSBwYXRoIGNoZWNraW5nLCBsb3cgbGV2ZWwgR1VJIGNvbXBvbmVudCBjaGVja2luZyBhbmQKY3Jvc3MgYXBwbGljYXRpb24gY2hlY2tzLiBBbGwgdGVzdHMgYXJlIHBlcmZvcm1lZCBuaWdodGx5IG9uIGZpdmUgdGVzdAppbnN0YW5jZXMgY292ZXJpbmcgTVMgV2luZG93cyBYUCwgVmlzdGEgYW5kIDcsIENlbnRPUyA1LjUgCmFuZCBNYWMgT1NYIDEwLjYuCjxicj4KSnVidWxhIGlzIHBhcnQgb2YgdGhlIEluZGlnbyBSZWxlYXNlIFRyYWluIGFuZCBtYWludGFpbnMgYSBUZXN0aW5nIFBhY2thZ2UKYXQgdGhlIEVQUC4KPGJyPgpUaGUgRVBQIFRlc3RpbmcgcGFja2FnZSBpdHNlbGYgaXMgdGVzdGVkIGJ5IEp1YnVsYS4gVGhlcmUgaXMgYSBwcm9wb3NhbApmcm9tIHRoZSBKdWJ1bGEgdGVhbSB0byBkZXZlbG9wIGFuZCBtYWludGFpbiB0ZXN0cyBmb3Igb3RoZXIgaW50ZXJlc3RlZApFUFAgcGFja2FnZXMuCgo8aDE+Q29tbXVuaXR5IGFuZCBTdXBwb3J0PC9oMT4KQ29tbXVuaXR5IGNvbnRhY3QgaXMgbW9zdGx5IGRvbmUgYnkgZmFjZS10by1mYWNlIGNvbW11bmljYXRpb24uIFdlIGFyZQphdCBhIGxvdCBvZiBjb25mZXJlbmNlcywgRGVtbyBDYW1wcyBhbmQgbG9jYWwgSlVHIG1lZXRpbmdzLgo8YnI+IERldGFpbHM6Cjx1bD4KCTxsaT5FY2xpcHNlIEZvcnVtIGlzIGluIHRoZSBhY3RpdmF0aW9uIHN0YXRlLiBXZSBlbmNvdXJhZ2UgcGVvcGxlCgkJd2hvIGNvbnRhY3QgdXMgYnkgZW1haWwgdG8gdXNlIHRoZSBFY2xpcHNlIEZvcnVtLjwvbGk+Cgk8bGk+VHV0b3JpYWxzIGFuZCBUYWxrcyBzaW5jZSBmYWxsIDIwMTA6CgkJPHVsPgoJCQk8bGk+VHV0b3JpYWwgYXQgRWNsaXBzZUNvbiAyMDExICg4MCBwYXJ0aWNpcGFudHMsIDQ2LzYvMSByYXRpbmcpCgkJCQlZZXMsIHdlIGFyZSBwcm91ZCBvZiB0aGlzIG9uZSE8L2xpPgoJCQk8bGk+VGFsayAmIDQgaG91cnMgdHV0b3JpYWwgYXQgU3R1dHRnYXJ0ZXIgVGVzdCBUYWdlPC9saT4KCQkJPGxpPlRhbGsgYXQgSkFYIDIwMTEKCQkJPGxpPlRhbGsgYXQgSW5kaWdvIERlbW8gQ2FtcHMgaW4gQnJhdW5zY2h3ZWlnIChvcmdhbml6ZWQgYnkgdXMpLAoJCQkJQmVybGluLCBXYWxsZG9yZiwgS2Fzc2VsLCBIYW1idXJnPC9saT4KCQkJPGxpPlRhbGsgYXQgU0VBQ09OIDIwMTE8L2xpPgoJCQk8bGk+VGFsayBhdCBLYXJsc3J1aGVyIEVudHdpY2tsZXJ0YWdlIDIwMTE8L2xpPgoJCQk8bGk+VGFsayBhdCBBZ2lsZSBUZXN0aW5nIERheXM8L2xpPgoJCQk8bGk+U2V2ZXJhbCBUYWxrcyBhdCBKYXZhIFVzZXIgR3JvdXAgTWVldGluZ3M8L2xpPgoJCTwvdWw+PC9saT4KCTxsaT5BcnRpY2VscyBpbiBFY2xpcHNlIE1hZ2F6aW4sIFRlc3RpbmcgJiBFeHBlcmllbmNlLCBTUSBNYWdhemluPC9saT4KCgk8bGk+TWFpbGluZyBMaXN0czoKCQk8dWw+CgkJCTxsaT5qdWJ1bGEtZGV2QGVjbGlwc2Uub3JnOiBBY3R1YWxseSBub3QgbXVjaCB1c2VkIHNpbmNlIHRoZQoJCQkJdGVhbSBwcmVmZXJzIGZhY2UtdG8tZmFjZSBtZWV0aW5ncy4gVGVhbSB3aWxsIHByb3ZpZGUgbWludXRlcyBhcyBvZiBub3cuPC9saT4KCQkJPGxpPkFnaWxlIFRlc3RpbmcsIEFnaWxlIEZ1bmN0aW9uYWwgVGVzdGluZyBUb29scyBAIFlhaG9vIEdyb3VwcwoJCQk8L2xpPgoJCTwvdWw+Cgk8bGk+Q29sbGFib3JhdGlvbnM6CgkJPHVsPgoJCQk8bGk+SG9jaHNjaHVsZSBCcmVtZXJoYXZlbiwgUHJvZi4gRHIgS2FyaW4gVm9zc2ViZXJnOiBUZXN0aW5nCgkJCQlMYWI8L2xpPgoJCQk8bGk+T3N0ZmFsaWEgSG9jaHNjaHVsZSBmJnV1bWw7ciBhbmdld2FuZHRlIFdpc3NlbnNjaGFmdGVuOgoJCQkJU291cmNlIENvZGUgQ29udHJpYnV0aW9uczwvbGk+CgkJCTxsaT4ocGxhbm5lZCkgVmVyaXQgR21iSCAobWFpbnRhaW5lcnMgb2YgVFBUUCk6IEludGVncmF0aW9uIG9mCgkJCQlKdWJ1bGEgVGVzdC1FeGVjdXRpb248L2xpPgoJCTwvdWw+PC9saT4KCgk8bGk+YmxvZy5icmVkZXguZGUgc3luZGljYXRlZCBhdCBQbGFuZXQgRWNsaXBzZTwvbGk+Cgk8bGk+RXhoaWJpdGlvbnM8L2xpPgoJPHVsPgoJCTxsaT5FY2xpcHNlIEJvb3RoIGF0IENlQklUIDIwMTE8L2xpPgoJCTxsaT5FY2xpcHNlIEJvb3RoIGF0IE9PUCAyMDExPC9saT4KCTwvdWw+CjwvdWw+CjxoMj5CdWd6aWxsYTwvaDI+CkN1cnJlbnQgc3RhdGU6Cjxicj4KPGltZyBhbHQ9IkJ1Z3ppbGxhIERpYWdyYW0iIHNyYz0iLi9idWd6aWxsYS5wbmciIHdpZHRoPSI2MDAiPgo8YnI+CjwhLS0gCjxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3JlcG9ydC5jZ2k/eF9heGlzX2ZpZWxkPWJ1Z19zdGF0dXMmeV9heGlzX2ZpZWxkPWJ1Z19zZXZlcml0eSZ6X2F4aXNfZmllbGQ9JnF1ZXJ5X2Zvcm1hdD1yZXBvcnQtdGFibGUmc2hvcnRfZGVzY190eXBlPWFsbHdvcmRzc3Vic3RyJnNob3J0X2Rlc2M9JmNsYXNzaWZpY2F0aW9uPVRlY2hub2xvZ3kmcHJvZHVjdD1KdWJ1bGEmbG9uZ2Rlc2NfdHlwZT1hbGx3b3Jkc3N1YnN0ciZsb25nZGVzYz0mYnVnX2ZpbGVfbG9jX3R5cGU9YWxsd29yZHNzdWJzdHImYnVnX2ZpbGVfbG9jPSZzdGF0dXNfd2hpdGVib2FyZF90eXBlPWFsbHdvcmRzc3Vic3RyJnN0YXR1c193aGl0ZWJvYXJkPSZrZXl3b3Jkc190eXBlPWFsbHdvcmRzJmtleXdvcmRzPSZidWdfc2V2ZXJpdHk9YmxvY2tlciZidWdfc2V2ZXJpdHk9Y3JpdGljYWwmYnVnX3NldmVyaXR5PW1ham9yJmJ1Z19zZXZlcml0eT1ub3JtYWwmYnVnX3NldmVyaXR5PW1pbm9yJmJ1Z19zZXZlcml0eT10cml2aWFsJmVtYWlsdHlwZTE9c3Vic3RyaW5nJmVtYWlsMT0mZW1haWx0eXBlMj1zdWJzdHJpbmcmZW1haWwyPSZidWdfaWRfdHlwZT1hbnlleGFjdCZidWdfaWQ9JnZvdGVzPSZjaGZpZWxkZnJvbT0mY2hmaWVsZHRvPU5vdyZjaGZpZWxkdmFsdWU9JmZvcm1hdD10YWJsZSZhY3Rpb249d3JhcCZmaWVsZDAtMC0wPW5vb3AmdHlwZTAtMC0wPW5vb3AmdmFsdWUwLTAtMD0iPkxpbmsgdG8gQnVnemlsbGEgZW50cmllcywgd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRhYmxlIG9uIGZpbmFsIHZlcnNpb248L2E+CiAtLT4KVGhlcmUgYXJlIGFsc28gMTYgb3BlbiBhbmQgNiByZXNvbHZlZCBlbmhhbmNlbWVudCByZXF1ZXN0cy4KCjxoMT5JUCBJc3N1ZXM8L2gxPgpUaGUgY29tcG9uZW50IGxlYWRlcnNoaXAgdmVyad5lcyB0aGF0Ogo8YnI+Cjx1bD4KCTxsaT50aGUgYWJvdXQg3mxlcyBhbmQgdXNlIGxpY2Vuc2VzIGFyZSBpbiBwbGFjZSBhcyBwZXIgdGhlCgkJR3VpZGVsaW5lcyB0byBMZWdhbCBEb2N1bWVudGF0aW9uLjwvbGk+Cgk8bGk+YWxsIGNvbnRyaWJ1dGlvbnMgKGNvZGUsIGRvY3VtZW50YXRpb24sIGltYWdlcywgZXRjKSBoYXZlIGJlZW4KCQljb21taXR0ZWQgYnkgaW5kaXZpZHVhbHMgd2hvIGFyZSBlaXRoZXIgTWVtYmVycyBvZiB0aGUgRm91bmRhdGlvbiwgb3IKCQloYXZlIHNpZ25lZCB0aGUgYXBwcm9wcmlhdGUgQ29tbWl0dGVyIEFncmVlbWVudC4gSW4gZWl0aGVyIGNhc2UsIHRoZXNlCgkJYXJlIGluZGl2aWR1YWxzIHdobyBoYXZlIHNpZ25lZCwgYW5kIGFyZSBhYmlkaW5nIGJ5LCB0aGUgRWNsaXBzZSBJUAoJCVBvbGljeS48L2xpPgoJPGxpPmFsbCBzaWduad5jYW50IGNvbnRyaWJ1dGlvbnMgaGF2ZSBiZWVuIHJldmlld2VkIGJ5IHRoZQoJCUZvdW5kYXRpb24ncyBsZWdhbCBzdGFmZi48L2xpPgoJPGxpPmFsbCBub24tQ29tbWl0dGVyIGNvZGUgY29udHJpYnV0aW9ucywgaW5jbHVkaW5nIHRoaXJkLXBhcnR5CgkJbGlicmFyaWVzLCBoYXZlIGJlZW4gZG9jdW1lbnRlZCBpbiB0aGUgcmVsZWFzZSBhbmQgcmV2aWV3ZWQgYnkgdGhlCgkJRm91bmRhdGlvbidzIGxlZ2FsIHN0YWZmLjwvbGk+Cgk8bGk+YWxsIENvbnRyaWJ1dGlvbiBRdWVzdGlvbm5haXJlcyBoYXZlIGJlZW4gY29tcGxldGVkLjwvbGk+CjwvdWw+ClRoZSBKdWJ1bGEgSVAgTG9nIGlzIGF2YWlsYWJsZSBmcm9tIDxicj4KPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9wcm9qZWN0cy9pcF9sb2cucGhwP3Byb2plY3RpZD10ZWNobm9sb2d5Lmp1YnVsYSI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9wcm9qZWN0cy9pcF9sb2cucGhwP3Byb2plY3RpZD10ZWNobm9sb2d5Lmp1YnVsYTwvYT4KPGgxPkNvbnRyaWJ1dG9ycyBhbmQgQ29tbWl0dGVyczwvaDE+CkNvbnRyaWJ1dG9yczoKPHRhYmxlPgo8dHI+PHRkPk1hcmMgU3RlZmZlbnM8L3RkPjx0ZD5Pc3RmYWxpYSBIb2Noc2NodWxlIGYmdXVtbDtyIGFuZ2V3YW5kdGUgV2lzc2Vuc2NoYWZ0ZW48L3RkPjwvdHI+Cjx0cj48dGQ+TWFyY2VsIFNhbHZhZ2U8L3RkPjx0ZD5Pc3RmYWxpYSBIb2Noc2NodWxlIGYmdXVtbDtyIGFuZ2V3YW5kdGUgV2lzc2Vuc2NoYWZ0ZW48L3RkPjwvdHI+CjwvdGFibGU+CkNvbW1pdHRlcnM6Cjx0YWJsZT4KPHRyPjx0ZD5aZWIgRm9yZC1SZWl0ejwvdGQ+PHRkPkJSRURFWCBHbWJIPC90ZD48L3RyPgo8dHI+PHRkPkFsZXhhbmRyYSBJbXJpZTwvdGQ+PHRkPkJSRURFWCBHbWJIPC90ZD48L3RyPgo8dHI+PHRkPkFjaGltIEwmb3VtbDtya2U8L3RkPjx0ZD5CUkVERVggR21iSDwvdGQ+PC90cj4KPHRyPjx0ZD5UaW0gV2luc2VsbWFubjwvdGQ+PHRkPkJSRURFWCBHbWJIPC90ZD48L3RyPgo8dHI+PHRkPk1hcmt1cyBUaWVkZTwvdGQ+PHRkPkJSRURFWCBHbWJIPC90ZD48L3RyPgo8L3RhYmxlPgo8aDE+UHJvamVjdCBQbGFuPC9oMT4KVGhlIGN1cnJlbnQgcHJvamVjdCBwbGFuIGlzIGF2YWlsYWJsZSBmcm9tIDxicj4KPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9wcm9qZWN0cy9wcm9qZWN0LXBsYW4ucGhwP3Byb2plY3RpZD10ZWNobm9sb2d5Lmp1YnVsYSI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9wcm9qZWN0cy9wcm9qZWN0LXBsYW4ucGhwP3Byb2plY3RpZD10ZWNobm9sb2d5Lmp1YnVsYTwvYT4KPC9odG1sPg==