PCFkb2N0eXBlIGh0bWwgcHVibGljICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4KPGh0bWw+CjxoZWFkPgogICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KICAgPG1ldGEgbmFtZT0iR2VuZXJhdG9yIiBjb250ZW50PSJNaWNyb3NvZnQgV29yZCA5NyI+CiAgIDxtZXRhIG5hbWU9IkdFTkVSQVRPUiIgY29udGVudD0iTW96aWxsYS80LjUgW2VuXSAoV2luOTU7IEkpIFtOZXRzY2FwZV0iPgogICA8bWV0YSBuYW1lPSJBdXRob3IiIGNvbnRlbnQ9IkVSSUNIIEdBTU1BIj4KICAgPHRpdGxlPkpVbml0OiBBIENvb2uScyBUb3VyPC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KCjxoMT4KPGZvbnQgY29sb3I9IiMzM0ZGMzMiPko8L2ZvbnQ+PGZvbnQgY29sb3I9IiNDQzAwMDAiPlU8L2ZvbnQ+bml0IEEgQ29vaydzClRvdXI8L2gxPgo8YnI+Tm90ZTogdGhpcyBhcnRpY2xlIGlzIGJhc2VkIG9uIEpVbml0IDMuOC54Lgo8aHIgV0lEVEg9IjEwMCUiPgo8cD48Yj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0rMT4xLiBJbnRyb2R1Y3Rpb248L2ZvbnQ+PC9mb250PjwvYj4KPHA+PGZvbnQgc2l6ZT0tMT5JbiBhbiBlYXJsaWVyIGFydGljbGUgKHNlZSBUZXN0IEluZmVjdGVkOiBQcm9ncmFtbWVycwpMb3ZlIFdyaXRpbmcgVGVzdHMsIEphdmEgUmVwb3J0LCBKdWx5IDE5OTgsIFZvbHVtZSAzLCBOdW1iZXIgNyksIHdlIGRlc2NyaWJlZApob3cgdG8gdXNlIGEgc2ltcGxlIGZyYW1ld29yayB0byB3cml0ZSByZXBlYXRhYmxlIHRlc3RzLiBJbiB0aGlzIGFydGljbGUsCndlIHdpbGwgdGFrZSBhIHBlZWsgdW5kZXIgdGhlIGNvdmVycyBhbmQgc2hvdyB5b3UgaG93IHRoZSBmcmFtZXdvcmsgaXRzZWxmCmlzIGNvbnN0cnVjdGVkLjwvZm9udD4KPHA+PGZvbnQgc2l6ZT0tMT5XZSBjYXJlZnVsbHkgc3R1ZGllZCB0aGUgSlVuaXQgZnJhbWV3b3JrIGFuZCByZWZsZWN0ZWQKb24gaG93IHdlIGNvbnN0cnVjdGVkIGl0LiBXZSBmb3VuZCBsZXNzb25zIGF0IG1hbnkgZGlmZmVyZW50IGxldmVscy4gSW4KdGhpcyBhcnRpY2xlIHdlIHdpbGwgdHJ5IGNvbW11bmljYXRlIHRoZW0gYWxsIGF0IG9uY2UsIGEgaG9wZWxlc3MgdGFzaywKYnV0IGF0IGxlYXN0IHdlIHdpbGwgZG8gaXQgaW4gdGhlIGNvbnRleHQgb2Ygc2hvd2luZyB5b3UgdGhlIGRlc2lnbiBhbmQKY29uc3RydWN0aW9uIG9mIGEgcGllY2Ugb2Ygc29mdHdhcmUgd2l0aCBwcm92ZW4gdmFsdWUuPC9mb250Pgo8cD48Zm9udCBzaXplPS0xPldlIG9wZW4gd2l0aCBhIGRpc2N1c3Npb24gb2YgdGhlIGdvYWxzIG9mIHRoZSBmcmFtZXdvcmsuClRoZSBnb2FscyB3aWxsIHJlYXBwZWFyIGluIG1hbnkgc21hbGwgZGV0YWlscyBkdXJpbmcgdGhlIHByZXNlbnRhdGlvbiBvZgp0aGUgZnJhbWV3b3JrIGl0c2VsZi4gRm9sbG93aW5nIHRoaXMsIHdlIHByZXNlbnQgdGhlIGRlc2lnbiBhbmQgaW1wbGVtZW50YXRpb24Kb2YgdGhlIGZyYW1ld29yay4gVGhlIGRlc2lnbiB3aWxsIGJlIGRlc2NyaWJlZCBpbiB0ZXJtcyBvZiBwYXR0ZXJucyAoc3VycHJpc2UsCnN1cnByaXNlKSwgdGhlIGltcGxlbWVudGF0aW9uIGFzIGEgbGl0ZXJhdGUgcHJvZ3JhbS4gV2UgY29uY2x1ZGUgd2l0aCBhCmZldyBjaG9pY2UgdGhvdWdodHMgYWJvdXQgZnJhbWV3b3JrIGRldmVsb3BtZW50LjwvZm9udD4KPHA+PGI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9KzE+Mi4gR29hbHM8L2ZvbnQ+PC9mb250PjwvYj4KPHA+PGZvbnQgc2l6ZT0tMT5XaGF0IGFyZSB0aGUgZ29hbHMgb2YgSlVuaXQ/PC9mb250Pgo8cD48Zm9udCBzaXplPS0xPkZpcnN0LCB3ZSBoYXZlIHRvIGdldCBiYWNrIHRvIHRoZSBhc3N1bXB0aW9ucyBvZiBkZXZlbG9wbWVudC4KSWYgYSBwcm9ncmFtIGZlYXR1cmUgbGFja3MgYW4gYXV0b21hdGVkIHRlc3QsIHdlIGFzc3VtZSBpdCBkb2VzbpJ0IHdvcmsuClRoaXMgc2VlbXMgbXVjaCBzYWZlciB0aGFuIHRoZSBwcmV2YWlsaW5nIGFzc3VtcHRpb24sIHRoYXQgaWYgYSBkZXZlbG9wZXIKYXNzdXJlcyB1cyBhIHByb2dyYW0gZmVhdHVyZSB3b3JrcywgdGhlbiBpdCB3b3JrcyBub3cgYW5kIGZvcmV2ZXIuPC9mb250Pgo8cD48Zm9udCBzaXplPS0xPkZyb20gdGhpcyBwZXJzcGVjdGl2ZSwgZGV2ZWxvcGVycyBhcmVuknQgZG9uZSB3aGVuIHRoZXkKd3JpdGUgYW5kIGRlYnVnIHRoZSBjb2RlLCB0aGV5IG11c3QgYWxzbyB3cml0ZSB0ZXN0cyB0aGF0IGRlbW9uc3RyYXRlIHRoYXQKdGhlIHByb2dyYW0gd29ya3MuIEhvd2V2ZXIsIGV2ZXJ5Ym9keSBpcyB0b28gYnVzeSwgdGhleSBoYXZlIHRvbyBtdWNoIHRvCmRvLCB0aGV5IGRvbpJ0IGhhdmUgZW5vdWdoIHRpbWUsIHRvIHNjcmV3IGFyb3VuZCB3aXRoIHRlc3RpbmcuIEkgaGF2ZSB0b28KbXVjaCBjb2RlIHRvIHdyaXRlIGFscmVhZHksIGhvdyBhbSBJIHN1cHBvc2VkIHdyaXRlIHRlc3QgY29kZSwgdG9vPyBBbnN3ZXIKbWUgdGhhdCwgTXIuIEhhcmQtY2FzZSBQcm9qZWN0IE1hbmFnZXIuPC9mb250Pgo8cD48Zm9udCBzaXplPS0xPlNvLCB0aGUgbnVtYmVyIG9uZSBnb2FsIGlzIHRvIHdyaXRlIGEgZnJhbWV3b3JrIHdpdGhpbgp3aGljaCB3ZSBoYXZlIHNvbWUgZ2xpbW1lciBvZiBob3BlIHRoYXQgZGV2ZWxvcGVycyB3aWxsIGFjdHVhbGx5IHdyaXRlCnRlc3RzLiBUaGUgZnJhbWV3b3JrIGhhcyB0byB1c2UgZmFtaWxpYXIgdG9vbHMsIHNvIHRoZXJlIGlzIGxpdHRsZSBuZXcKdG8gbGVhcm4uIEl0IGhhcyB0byByZXF1aXJlIG5vIG1vcmUgd29yayB0aGFuIGFic29sdXRlbHkgbmVjZXNzYXJ5IHRvIHdyaXRlCmEgbmV3IHRlc3QuIEl0IGhhcyB0byBlbGltaW5hdGUgZHVwbGljYXRlZCBlZmZvcnQuPC9mb250Pgo8cD48Zm9udCBzaXplPS0xPklmIHRoaXMgd2FzIGFsbCB0ZXN0cyBoYWQgdG8gZG8sIHlvdSB3b3VsZCBiZSBkb25lIGp1c3QKYnkgd3JpdGluZyBleHByZXNzaW9ucyBpbiBhIGRlYnVnZ2VyLiBIb3dldmVyLCB0aGlzIGlzbpJ0IHN1ZmZpY2llbnQgZm9yCnRlc3RpbmcuIFRlbGxpbmcgbWUgdGhhdCB5b3VyIHByb2dyYW0gd29ya3Mgbm93IGRvZXNuknQgaGVscCBtZSwgYmVjYXVzZQppdCBkb2VzbpJ0IGFzc3VyZSBtZSB0aGF0IHlvdXIgcHJvZ3JhbSB3aWxsIHdvcmsgb25lIG1pbnV0ZSBmcm9tIG5vdyBhZnRlcgpJIGludGVncmF0ZSwgYW5kIGl0IGRvZXNuknQgYXNzdXJlIG1lIHRoYXQgeW91ciBwcm9ncmFtIHdpbGwgc3RpbGwgd29yawppbiBmaXZlIHllYXJzLCB3aGVuIHlvdSBhcmUgbG9uZyBnb25lLjwvZm9udD4KPHA+PGZvbnQgc2l6ZT0tMT5TbywgdGhlIHNlY29uZCBnb2FsIG9mIHRlc3RpbmcgaXMgY3JlYXRpbmcgdGVzdHMgdGhhdApyZXRhaW4gdGhlaXIgdmFsdWUgb3ZlciB0aW1lLiBTb21lb25lIG90aGVyIHRoYW4gdGhlIG9yaWdpbmFsIGF1dGhvciBoYXMKdG8gYmUgYWJsZSB0byBleGVjdXRlIHRoZSB0ZXN0cyBhbmQgaW50ZXJwcmV0IHRoZSByZXN1bHRzLiBJdCBzaG91bGQgYmUKcG9zc2libGUgdG8gY29tYmluZSB0ZXN0cyBmcm9tIHZhcmlvdXMgYXV0aG9ycyBhbmQgcnVuIHRoZW0gdG9nZXRoZXIgd2l0aG91dApmZWFyIG9mIGludGVyZmVyZW5jZS48L2ZvbnQ+CjxwPjxmb250IHNpemU9LTE+RmluYWxseSwgaXQgaGFzIHRvIGJlIHBvc3NpYmxlIHRvIGxldmVyYWdlIGV4aXN0aW5nIHRlc3RzCnRvIGNyZWF0ZSBuZXcgb25lcy4gQ3JlYXRpbmcgYSBzZXR1cCBvciBmaXh0dXJlIGlzIGV4cGVuc2l2ZSBhbmQgYSBmcmFtZXdvcmsKaGFzIHRvIGVuYWJsZSByZXVzaW5nIGZpeHR1cmVzIHRvIHJ1biBkaWZmZXJlbnQgdGVzdHMuIE9oLCBpcyB0aGF0IGFsbD88L2ZvbnQ+CjxwPjxiPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPSsxPjMuIFRoZSBEZXNpZ24gb2YgSlVuaXQ8L2ZvbnQ+PC9mb250PjwvYj4KPHA+PGZvbnQgc2l6ZT0tMT5UaGUgZGVzaWduIG9mIEpVbml0IHdpbGwgYmUgcHJlc2VudGVkIGluIGEgc3R5bGUgZmlyc3QKdXNlZCBpbiAoc2VlICJQYXR0ZXJucyBHZW5lcmF0ZSBBcmNoaXRlY3R1cmVzIiwgS2VudCBCZWNrIGFuZCBSYWxwaCBKb2huc29uLApFQ09PUCA5NCkuIFRoZSBpZGVhIGlzIHRvIGV4cGxhaW4gdGhlIGRlc2lnbiBvZiBhIHN5c3RlbSBieSBzdGFydGluZyB3aXRoCm5vdGhpbmcgYW5kIGFwcGx5aW5nIHBhdHRlcm5zLCBvbmUgYWZ0ZXIgYW5vdGhlciwgdW50aWwgeW91IGhhdmUgdGhlIGFyY2hpdGVjdHVyZQpvZiB0aGUgc3lzdGVtLiBXZSB3aWxsIHByZXNlbnQgdGhlIGFyY2hpdGVjdHVyYWwgcHJvYmxlbSB0byBiZSBzb2x2ZWQsCnN1bW1hcml6ZSB0aGUgcGF0dGVybiB0aGF0IHNvbHZlcyBpdCwgYW5kIHRoZW4gc2hvdyBob3cgdGhlIHBhdHRlcm4gd2FzCmFwcGxpZWQgdG8gSlVuaXQuPC9mb250Pgo8cD48Yj48aT48Zm9udCBmYWNlPSJBcmlhbCI+My4xIEdldHRpbmcgc3RhcnRlZC0gVGVzdENhc2U8L2ZvbnQ+PC9pPjwvYj4KPHA+PGZvbnQgc2l6ZT0tMT5GaXJzdCB3ZSBoYXZlIHRvIG1ha2UgYW4gb2JqZWN0IHRvIHJlcHJlc2VudCBvdXIgYmFzaWMKY29uY2VwdCwgdGhlIFRlc3RDYXNlLiBEZXZlbG9wZXJzIG9mdGVuIGhhdmUgdGVzdHMgY2FzZXMgaW4gbWluZCwgYnV0IHRoZXkKcmVhbGl6ZSB0aGVtIGluIG1hbnkgZGlmZmVyZW50IHdheXMtPC9mb250Pgo8dWw+CjxsaT4KPGZvbnQgc2l6ZT0tMT5wcmludCBzdGF0ZW1lbnRzLDwvZm9udD48L2xpPgoKPGxpPgo8Zm9udCBzaXplPS0xPmRlYnVnZ2VyIGV4cHJlc3Npb25zLDwvZm9udD48L2xpPgoKPGxpPgo8Zm9udCBzaXplPS0xPnRlc3Qgc2NyaXB0cy48L2ZvbnQ+PC9saT4KPC91bD4KPGZvbnQgc2l6ZT0tMT5JZiB3ZSB3YW50IHRvIG1ha2UgbWFuaXB1bGF0aW5nIHRlc3RzIGVhc3ksIHdlIGhhdmUgdG8gbWFrZQp0aGVtIG9iamVjdHMuIFRoaXMgdGFrZXMgYSB0ZXN0IHRoYXQgd2FzIG9ubHkgaW1wbGljaXQgaW4gdGhlIGRldmVsb3BlcpJzCm1pbmQgYW5kIG1ha2VzIGl0IGNvbmNyZXRlLCBzdXBwb3J0aW5nIG91ciBnb2FsIG9mIGNyZWF0aW5nIHRlc3RzIHRoYXQKcmV0YWluIHRoZWlyIHZhbHVlIG92ZXIgdGltZS4gQXQgdGhlIHNhbWUgdGltZSwgb2JqZWN0IGRldmVsb3BlcnMgYXJlIHVzZWQKdG8sIHdlbGwsIGRldmVsb3Bpbmcgd2l0aCBvYmplY3RzLCBzbyB0aGUgZGVjaXNpb24gdG8gbWFrZSB0ZXN0cyBpbnRvIG9iamVjdHMKc3VwcG9ydHMgb3VyIGdvYWwgb2YgbWFraW5nIHRlc3Qgd3JpdGluZyBtb3JlIGludml0aW5nIChvciBhdCBsZWFzdCBsZXNzCmltcG9zaW5nKS48L2ZvbnQ+CjxwPjxmb250IHNpemU9LTE+VGhlIENvbW1hbmQgcGF0dGVybiAoc2VlIEdhbW1hLCBFLiwgZXQgYWwuIERlc2lnbiBQYXR0ZXJuczoKRWxlbWVudHMgb2YgUmV1c2FibGUgT2JqZWN0LU9yaWVudGVkIFNvZnR3YXJlLCBBZGRpc29uLVdlc2xleSwgUmVhZGluZywKTUEsIDE5OTUpIGZpdHMgb3VyIG5lZWRzIHF1aXRlIG5pY2VseS4gUXVvdGluZyBmcm9tIHRoZSBpbnRlbnQsICJFbmNhcHN1bGF0ZQphIHJlcXVlc3QgYXMgYW4gb2JqZWN0LCB0aGVyZWJ5IGxldHRpbmcgeW91hSBxdWV1ZSBvciBsb2cgcmVxdWVzdHOFIiBDb21tYW5kCnRlbGxzIHVzIHRvIGNyZWF0ZSBhbiBvYmplY3QgZm9yIGFuIG9wZXJhdGlvbiBhbmQgZ2l2ZSBpdCBhIG1ldGhvZCAiZXhlY3V0ZSIuCkhlcmUgaXMgdGhlIGNvZGUgZm9yIHRoZSBjbGFzcyBkZWZpbml0aW9uIG9mIFRlc3RDYXNlOjwvZm9udD4KPGRpcj4KPGRpcj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj5wdWJsaWMgYWJzdHJhY3QgY2xhc3MgPGI+VGVzdENhc2U8L2I+CmltcGxlbWVudHMgVGVzdCB7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyCFPC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPn08L2ZvbnQ+PC9mb250PjwvZGlyPgo8L2Rpcj4KPGZvbnQgc2l6ZT0tMT5CZWNhdXNlIHdlIGV4cGVjdCB0aGlzIGNsYXNzIHRvIGJlIHJldXNlZCB0aHJvdWdoIGluaGVyaXRhbmNlLAp3ZSBkZWNsYXJlIGl0ICJwdWJsaWMgYWJzdHJhY3QiLiBGb3Igbm93LCBpZ25vcmUgdGhlIGZhY3QgdGhhdCBpdCBpbXBsZW1lbnRzCnRoZSBUZXN0IGludGVyZmFjZS4gRm9yIHRoZSBwdXJwb3NlcyBvZiBvdXIgY3VycmVudCBkZXNpZ24sIHlvdSBjYW4gdGhpbmsKb2YgVGVzdENhc2UgYXMgYSBsb25lIGNsYXNzLjwvZm9udD4KPHA+PGZvbnQgc2l6ZT0tMT5FdmVyeSBUZXN0Q2FzZSBpcyBjcmVhdGVkIHdpdGggYSBuYW1lLCBzbyBpZiBhIHRlc3QgZmFpbHMsCnlvdSBjYW4gaWRlbnRpZnkgd2hpY2ggdGVzdCBmYWlsZWQuPC9mb250Pgo8ZGlyPgo8ZGlyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPnB1YmxpYyBhYnN0cmFjdCBjbGFzcyA8Yj5UZXN0Q2FzZTwvYj4KaW1wbGVtZW50cyBUZXN0IHs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHByaXZhdGUgZmluYWwgU3RyaW5nCmZOYW1lOzwvZm9udD48L2ZvbnQ+CjxwPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBwdWJsaWMgPGI+VGVzdENhc2U8L2I+KFN0cmluZwpuYW1lKSB7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwpmTmFtZT0gbmFtZTs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08L2ZvbnQ+PC9mb250Pgo8cD48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj4mbmJzcDsmbmJzcDsmbmJzcDsgcHVibGljIGFic3RyYWN0CnZvaWQgPGI+cnVuPC9iPigpOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKhTwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj59PC9mb250PjwvZm9udD48L2Rpcj4KPC9kaXI+Cjxmb250IHNpemU9LTE+VG8gaWxsdXN0cmF0ZSB0aGUgZXZvbHV0aW9uIG9mIEpVbml0LCB3ZSB1c2UgZGlhZ3JhbXMgdGhhdApzaG93IHNuYXBzaG90cyBvZiB0aGUgYXJjaGl0ZWN0dXJlLiBUaGUgbm90YXRpb24gd2UgdXNlIGlzIHNpbXBsZS4gSXQgYW5ub3RhdGVzCmNsYXNzZXMgd2l0aCBzaGFkZWQgYm94ZXMgY29udGFpbmluZyB0aGUgYXNzb2NpYXRlZCBwYXR0ZXJuLiBXaGVuIHRoZSByb2xlCm9mIHRoZSBjbGFzcyBpbiB0aGUgcGF0dGVybiBpcyBvYnZpb3VzIHRoZW4gb25seSB0aGUgcGF0dGVybiBuYW1lIGlzIHNob3duLgpJZiB0aGUgcm9sZSBpc26SdCBjbGVhciB0aGVuIHRoZSBzaGFkZWQgYm94IGlzIGF1Z21lbnRlZCBieSB0aGUgbmFtZSBvZgp0aGUgcGFydGljaXBhbnQgdGhpcyBjbGFzcyBjb3JyZXNwb25kcyB0by4gVGhpcyBub3RhdGlvbiBtaW5pbWl6ZXMgdGhlCmNsdXR0ZXIgaW4gZGlhZ3JhbXMgYW5kIHdhcyBmaXJzdCBzaG93biBpbiAoc2VlIEdhbW1hLCBFLiwgQXBwbHlpbmcgRGVzaWduClBhdHRlcm5zIGluIEphdmEsIGluIEphdmEgR2VtcywgU0lHUyBSZWZlcmVuY2UgTGlicmFyeSwgMTk5NykgRmlndXJlIDEKc2hvd3MgdGhpcyBub3RhdGlvbiBhcHBsaWVkIHRvIFRlc3RDYXNlLiBTaW5jZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgc2luZ2xlCmNsYXNzIGFuZCB0aGVyZSBjYW4gYmUgbm8gYW1iaWd1aXRpZXMganVzdCB0aGUgcGF0dGVybiBuYW1lIGlzIHNob3duLjwvZm9udD4KPGNlbnRlcj4KPHA+PGltZyBTUkM9IkltYWdlMS5naWYiIGhlaWdodD05MiB3aWR0aD0yMzg+CjxwPjxmb250IHNpemU9LTE+PGI+RmlndXJlIDE8L2I+IFRlc3RDYXNlIGFwcGxpZXMgQ29tbWFuZDwvZm9udD48L2NlbnRlcj4KCjxwPjxiPjxpPjxmb250IGZhY2U9IkFyaWFsIj4zLjIgQmxhbmtzIHRvIGZpbGwgaW4tIHJ1bigpPC9mb250PjwvaT48L2I+CjxwPjxmb250IHNpemU9LTE+VGhlIG5leHQgcHJvYmxlbSB0byBzb2x2ZSBpcyBnaXZpbmcgdGhlIGRldmVsb3BlciBhIGNvbnZlbmllbnQKInBsYWNlIiB0byBwdXQgdGhlaXIgZml4dHVyZSBjb2RlIGFuZCB0aGVpciB0ZXN0IGNvZGUuIFRoZSBkZWNsYXJhdGlvbgpvZiBUZXN0Q2FzZSBhcyBhYnN0cmFjdCBzYXlzIHRoYXQgdGhlIGRldmVsb3BlciBpcyBleHBlY3RlZCB0byByZXVzZSBUZXN0Q2FzZQpieSBzdWJjbGFzc2luZy4gSG93ZXZlciwgaWYgYWxsIHdlIGNvdWxkIGRvIHdhcyBwcm92aWRlIGEgc3VwZXJjbGFzcyB3aXRoCm9uZSB2YXJpYWJsZSBhbmQgbm8gYmVoYXZpb3IsIHdlIHdvdWxkbpJ0IGJlIGRvaW5nIG11Y2ggdG8gc2F0aXNmeSBvdXIKZmlyc3QgZ29hbCwgbWFraW5nIHRlc3RzIGVhc2llciB0byB3cml0ZS48L2ZvbnQ+CjxwPjxmb250IHNpemU9LTE+Rm9ydHVuYXRlbHksIHRoZXJlIGlzIGEgY29tbW9uIHN0cnVjdHVyZSB0byBhbGwgdGVzdHMtCnRoZXkgc2V0IHVwIGEgdGVzdCBmaXh0dXJlLCBydW4gc29tZSBjb2RlIGFnYWluc3QgdGhlIGZpeHR1cmUsIGNoZWNrIHNvbWUKcmVzdWx0cywgYW5kIHRoZW4gY2xlYW4gdXAgdGhlIGZpeHR1cmUuIFRoaXMgbWVhbnMgdGhhdCBlYWNoIHRlc3Qgd2lsbApydW4gd2l0aCBhIGZyZXNoIGZpeHR1cmUgYW5kIHRoZSByZXN1bHRzIG9mIG9uZSB0ZXN0IGNhbpJ0IGluZmx1ZW5jZSB0aGUKcmVzdWx0IG9mIGFub3RoZXIuIFRoaXMgc3VwcG9ydHMgdGhlIGdvYWwgb2YgbWF4aW1pemluZyB0aGUgdmFsdWUgb2YgdGhlCnRlc3RzLjwvZm9udD4KPHA+PGZvbnQgc2l6ZT0tMT5UZW1wbGF0ZSBNZXRob2QgYWRkcmVzc2VzIG91ciBwcm9ibGVtIHF1aXRlIG5pY2VseS4gUXVvdGluZwpmcm9tIHRoZSBpbnRlbnQsICJEZWZpbmUgdGhlIHNrZWxldG9uIG9mIGFuIGFsZ29yaXRobSBpbiBhbiBvcGVyYXRpb24sCmRlZmVycmluZyBzb21lIHN0ZXBzIHRvIHN1YmNsYXNzZXMuIFRlbXBsYXRlIE1ldGhvZCBsZXRzIHN1YmNsYXNzZXMgcmVkZWZpbmUKY2VydGFpbiBzdGVwcyBvZiBhbiBhbGdvcml0aG0gd2l0aG91dCBjaGFuZ2luZyB0aGUgYWxnb3JpdGhtknMgc3RydWN0dXJlLiIKVGhpcyBpcyBleGFjdGx5IHJpZ2h0LiBXZSB3YW50IHRoZSBkZXZlbG9wZXIgdG8gYmUgYWJsZSB0byBzZXBhcmF0ZWx5IGNvbnNpZGVyCmhvdyB0byB3cml0ZSB0aGUgZml4dHVyZSAoc2V0IHVwIGFuZCB0ZWFyIGRvd24pIGNvZGUgYW5kIGhvdyB0byB3cml0ZSB0aGUKdGVzdGluZyBjb2RlLiBUaGUgZXhlY3V0aW9uIG9mIHRoaXMgc2VxdWVuY2UsIGhvd2V2ZXIsIHdpbGwgcmVtYWluIHRoZQpzYW1lIGZvciBhbGwgdGVzdHMsIG5vIG1hdHRlciBob3cgdGhlIGZpeHR1cmUgY29kZSBpcyB3cml0dGVuIG9yIGhvdyB0aGUKdGVzdGluZyBjb2RlIGlzIHdyaXR0ZW4uPC9mb250Pgo8cD48Zm9udCBzaXplPS0xPkhlcmUgaXMgdGhlIHRlbXBsYXRlIG1ldGhvZDo8L2ZvbnQ+CjxkaXI+CjxkaXI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+cHVibGljIHZvaWQgPGI+cnVuPC9iPigpIHs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHNldFVwKCk7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBydW5UZXN0KCk7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyB0ZWFyRG93bigpOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj59PC9mb250PjwvZm9udD48L2Rpcj4KPC9kaXI+Cjxmb250IHNpemU9LTE+VGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIG9mIHRoZXNlIG1ldGhvZHMgZG8gbm90aGluZzo8L2ZvbnQ+CjxkaXI+CjxkaXI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+cHJvdGVjdGVkIHZvaWQgPGI+cnVuVGVzdDwvYj4oKSB7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPn08L2ZvbnQ+PC9mb250Pgo8cD48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj5wcm90ZWN0ZWQgdm9pZCA8Yj5zZXRVcDwvYj4oKSB7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPn08L2ZvbnQ+PC9mb250Pgo8cD48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj5wcm90ZWN0ZWQgdm9pZCA8Yj50ZWFyRG93bjwvYj4oKSB7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPn08L2ZvbnQ+PC9mb250PjwvZGlyPgo8L2Rpcj4KPGZvbnQgc2l6ZT0tMT5TaW5jZSBzZXRVcCBhbmQgdGVhckRvd24gYXJlIGludGVuZGVkIHRvIGJlIG92ZXJyaWRkZW4gYnV0CndpbGwgYmUgY2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsgd2UgZGVjbGFyZSB0aGVtIGFzIHByb3RlY3RlZC4gVGhlIHNlY29uZApzbmFwc2hvdCBvZiBvdXIgdG91ciBpcyBkZXBpY3RlZCBpbiBGaWd1cmUgMi48L2ZvbnQ+CjxjZW50ZXI+CjxwPjxpbWcgU1JDPSJJbWFnZTIuZ2lmIiBoZWlnaHQ9MTQyIHdpZHRoPTI3MD4KPHA+PGZvbnQgc2l6ZT0tMT48Yj5GaWd1cmUgMjwvYj4gVGVzdENhc2UucnVuKCkgYXBwbGllcyBUZW1wbGF0ZSBNZXRob2Q8L2ZvbnQ+PC9jZW50ZXI+Cgo8cD48Yj48aT48Zm9udCBmYWNlPSJBcmlhbCI+My4zIFJlcG9ydGluZyByZXN1bHRzLSBUZXN0UmVzdWx0PC9mb250PjwvaT48L2I+CjxwPjxmb250IHNpemU9LTE+SWYgYSBUZXN0Q2FzZSBydW5zIGluIGEgZm9yZXN0LCBkb2VzIGFueW9uZSBjYXJlIGFib3V0CnRoZSByZXN1bHQ/IFN1cmUtIHlvdSBydW4gdGVzdHMgdG8gbWFrZSBzdXJlIHRoZXkgcnVuLiBBZnRlciB0aGUgdGVzdCBoYXMKcnVuLCB5b3Ugd2FudCBhIHJlY29yZCwgYSBzdW1tYXJ5IG9mIHdoYXQgZGlkIGFuZCBkaWRuknQgd29yay48L2ZvbnQ+CjxwPjxmb250IHNpemU9LTE+SWYgdGVzdHMgaGFkIGVxdWFsIGNoYW5jZXMgb2Ygc3VjY2VlZGluZyBvciBmYWlsaW5nLCBvcgppZiB3ZSBvbmx5IGV2ZXIgcmFuIG9uZSB0ZXN0LCB3ZSBjb3VsZCBqdXN0IHNldCBhIGZsYWcgaW4gdGhlIFRlc3RDYXNlCm9iamVjdCBhbmQgZ28gbG9vayBhdCB0aGUgZmxhZyB3aGVuIHRoZSB0ZXN0IGNvbXBsZXRlZC4gSG93ZXZlciwgdGVzdHMKYXJlIChpbnRlbmRlZCB0byBiZSkgaGlnaGx5IGFzeW1tZXRyaWMtIHRoZXkgdXN1YWxseSB3b3JrLiBUaGVyZWZvcmUsIHdlCm9ubHkgd2FudCB0byByZWNvcmQgdGhlIGZhaWx1cmVzIGFuZCBhIGhpZ2hseSBjb25kZW5zZWQgc3VtbWFyeSBvZiB0aGUKc3VjY2Vzc2VzLjwvZm9udD4KPHA+PGZvbnQgc2l6ZT0tMT5UaGUgU21hbGx0YWxrIEJlc3QgUHJhY3RpY2UgUGF0dGVybnMgKHNlZSBCZWNrLCBLLiBTbWFsbHRhbGsKQmVzdCBQcmFjdGljZSBQYXR0ZXJucywgUHJlbnRpY2UgSGFsbCwgMTk5NikgaGFzIGEgcGF0dGVybiB0aGF0IGlzIGFwcGxpY2FibGUuCkl0IGlzIGNhbGxlZCA8aT5Db2xsZWN0aW5nIFBhcmFtZXRlcjwvaT4uIEl0IHN1Z2dlc3RzIHRoYXQgd2hlbiB5b3UgbmVlZAp0byBjb2xsZWN0IHJlc3VsdHMgb3ZlciBzZXZlcmFsIG1ldGhvZHMsIHlvdSBzaG91bGQgYWRkIGEgcGFyYW1ldGVyIHRvCnRoZSBtZXRob2QgYW5kIHBhc3MgYW4gb2JqZWN0IHRoYXQgd2lsbCBjb2xsZWN0IHRoZSByZXN1bHRzIGZvciB5b3UuIFdlCmNyZWF0ZSBhIG5ldyBvYmplY3QsIFRlc3RSZXN1bHQsIHRvIGNvbGxlY3QgdGhlIHJlc3VsdHMgb2YgcnVubmluZyB0ZXN0cy48L2ZvbnQ+CjxkaXI+CjxkaXI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+cHVibGljIGNsYXNzIDxiPlRlc3RSZXN1bHQ8L2I+IGV4dGVuZHMKT2JqZWN0IHs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHByb3RlY3RlZCBpbnQgZlJ1blRlc3RzOzwvZm9udD48L2ZvbnQ+CjxwPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBwdWJsaWMgPGI+VGVzdFJlc3VsdDwvYj4oKQp7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwpmUnVuVGVzdHM9IDA7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyB9PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPn08L2ZvbnQ+PC9mb250PjwvZGlyPgo8L2Rpcj4KPGZvbnQgc2l6ZT0tMT5UaGlzIHNpbXBsZSB2ZXJzaW9uIG9mIFRlc3RSZXN1bHQgb25seSBjb3VudHMgdGhlIG51bWJlcgpvZiB0ZXN0cyBydW4uIFRvIHVzZSBpdCwgd2UgaGF2ZSB0byBhZGQgYSBwYXJhbWV0ZXIgdG8gdGhlIFRlc3RDYXNlLnJ1bigpCm1ldGhvZCBhbmQgbm90aWZ5IHRoZSBUZXN0UmVzdWx0IHRoYXQgdGhlIHRlc3QgaXMgcnVubmluZzo8L2ZvbnQ+CjxkaXI+CjxkaXI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+cHVibGljIHZvaWQgPGI+cnVuPC9iPihUZXN0UmVzdWx0CnJlc3VsdCkgezwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj4mbmJzcDsmbmJzcDsmbmJzcDsgcmVzdWx0LnN0YXJ0VGVzdCh0aGlzKTs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHNldFVwKCk7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBydW5UZXN0KCk7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyB0ZWFyRG93bigpOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj59PC9mb250PjwvZm9udD48L2Rpcj4KPC9kaXI+Cjxmb250IHNpemU9LTE+QW5kIHRoZSBUZXN0UmVzdWx0IGhhcyB0byBrZWVwIHRyYWNrIG9mIHRoZSBudW1iZXIgb2YgdGVzdHMKcnVuOjwvZm9udD4KPGRpcj4KPGRpcj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj5wdWJsaWMgc3luY2hyb25pemVkIHZvaWQgPGI+c3RhcnRUZXN0PC9iPihUZXN0CnRlc3QpIHs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGZSdW5UZXN0cysrOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj59PC9mb250PjwvZm9udD48L2Rpcj4KPC9kaXI+Cjxmb250IHNpemU9LTE+V2UgZGVjbGFyZSB0aGUgVGVzdFJlc3VsdCBtZXRob2Qgc3RhcnRUZXN0IGFzIHN5bmNocm9uaXplZApzbyB0aGF0IGEgc2luZ2xlIFRlc3RSZXN1bHQgY2FuIGNvbGxlY3QgdGhlIHJlc3VsdHMgc2FmZWx5IHdoZW4gdGhlIHRlc3RzCmFyZSBydW4gaW4gZGlmZmVyZW50IHRocmVhZHMuIEZpbmFsbHksIHdlIHdhbnQgdG8gcmV0YWluIHRoZSBzaW1wbGUgZXh0ZXJuYWwKaW50ZXJmYWNlIG9mIFRlc3RDYXNlLCBzbyB3ZSBjcmVhdGUgYSBuby1wYXJhbWV0ZXIgdmVyc2lvbiBvZiBydW4oKSB0aGF0CmNyZWF0ZXMgaXRzIG93biBUZXN0UmVzdWx0OjwvZm9udD4KPGRpcj4KPGRpcj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj5wdWJsaWMgVGVzdFJlc3VsdCA8Yj5ydW48L2I+KCkgezwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj4mbmJzcDsmbmJzcDsmbmJzcDsgVGVzdFJlc3VsdCByZXN1bHQ9CmNyZWF0ZVJlc3VsdCgpOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj4mbmJzcDsmbmJzcDsmbmJzcDsgcnVuKHJlc3VsdCk7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gcmVzdWx0OzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj59PC9mb250PjwvZm9udD4KPHA+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+cHJvdGVjdGVkIFRlc3RSZXN1bHQgPGI+Y3JlYXRlUmVzdWx0PC9iPigpCns8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiBuZXcgVGVzdFJlc3VsdCgpOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj59PC9mb250PjwvZm9udD48L2Rpcj4KPC9kaXI+Cjxmb250IHNpemU9LTE+RmlndXJlIDMgc2hvd3Mgb3VyIG5leHQgZGVzaWduIHNuYXBzaG90LjwvZm9udD4KPGNlbnRlcj4KPHA+PGltZyBTUkM9IkltYWdlMy5naWYiIGhlaWdodD0xNDkgd2lkdGg9MzI1Pgo8cD48Zm9udCBzaXplPS0xPkZpZ3VyZSAzOiBUZXN0UmVzdWx0IGFwcGxpZXMgQ29sbGVjdGluZyBQYXJhbWV0ZXI8L2ZvbnQ+PC9jZW50ZXI+Cgo8cD48Zm9udCBzaXplPS0xPklmIHRlc3RzIGFsd2F5cyByYW4gY29ycmVjdGx5LCB0aGVuIHdlIHdvdWxkbpJ0IGhhdmUgdG8Kd3JpdGUgdGhlbS4gVGVzdHMgYXJlIGludGVyZXN0aW5nIHdoZW4gdGhleSBmYWlsLCBlc3BlY2lhbGx5IGlmIHdlIGRpZG6SdApleHBlY3QgdGhlbSB0byBmYWlsLiBXaGF0knMgbW9yZSwgdGVzdHMgY2FuIGZhaWwgaW4gd2F5cyB0aGF0IHdlIGV4cGVjdCwKZm9yIGV4YW1wbGUgYnkgY29tcHV0aW5nIGFuIGluY29ycmVjdCByZXN1bHQsIG9yIHRoZXkgY2FuIGZhaWwgaW4gbW9yZQpzcGVjdGFjdWxhciB3YXlzLCBmb3IgZXhhbXBsZSBieSB3cml0aW5nIG91dHNpZGUgdGhlIGJvdW5kcyBvZiBhbiBhcnJheS4KTm8gbWF0dGVyIGhvdyB0aGUgdGVzdCBmYWlscyB3ZSB3YW50IHRvIGV4ZWN1dGUgdGhlIGZvbGxvd2luZyB0ZXN0cy48L2ZvbnQ+CjxwPjxmb250IHNpemU9LTE+SlVuaXQgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIDxpPmZhaWx1cmVzPC9pPiBhbmQgPGk+ZXJyb3JzPC9pPi4KVGhlIHBvc3NpYmlsaXR5IG9mIGEgZmFpbHVyZSBpcyBhbnRpY2lwYXRlZCBhbmQgY2hlY2tlZCBmb3Igd2l0aCBhc3NlcnRpb25zLgpFcnJvcnMgYXJlIHVuYW50aWNpcGF0ZWQgcHJvYmxlbXMgbGlrZSBhbiBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24uCkZhaWx1cmVzIGFyZSBzaWduYWxlZCB3aXRoIGFuIEFzc2VydGlvbkZhaWxlZEVycm9yIGVycm9yLiBUbyBkaXN0aW5ndWlzaAphbiB1bmFudGljaXBhdGVkIGVycm9yIGZyb20gYSBmYWlsdXJlLCBmYWlsdXJlcyBhcmUgY2F1Z2h0IGluIGFuIGV4dHJhCmNhdGNoIGNsYXVzZSAoMSkuIFRoZSBzZWNvbmQgY2xhdXNlICgyKSBjYXRjaGVzIGFsbCBvdGhlciBleGNlcHRpb25zIGFuZAplbnN1cmVzIHRoYXQgb3VyIHRlc3QgcnVuIGNvbnRpbnVlcy4uPC9mb250Pgo8ZGlyPgo8ZGlyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPnB1YmxpYyB2b2lkIDxiPnJ1bjwvYj4oVGVzdFJlc3VsdApyZXN1bHQpIHs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJlc3VsdC5zdGFydFRlc3QodGhpcyk7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBzZXRVcCgpOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj4mbmJzcDsmbmJzcDsmbmJzcDsgdHJ5IHs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7CnJ1blRlc3QoKTs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNhdGNoIChBc3NlcnRpb25GYWlsZWRFcnJvcgplKSB7IC8vMTwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKcmVzdWx0LmFkZEZhaWx1cmUodGhpcywgZSk7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyB9PC9mb250PjwvZm9udD4KPHA+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNhdGNoIChUaHJvd2FibGUKZSkgeyAvLyAyPC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwpyZXN1bHQuYWRkRXJyb3IodGhpcywgZSk7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyB9PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBmaW5hbGx5IHs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7CnRlYXJEb3duKCk7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyB9PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPn08L2ZvbnQ+PC9mb250PjwvZGlyPgo8L2Rpcj4KPGZvbnQgc2l6ZT0tMT5BbiBBc3NlcnRpb25GYWlsZWRFcnJvciBpcyB0cmlnZ2VyZWQgYnkgdGhlIGFzc2VydCBtZXRob2RzCnByb3ZpZGVkIGJ5IFRlc3RDYXNlLiBKVW5pdCBwcm92aWRlcyBhIHNldCBvZiBhc3NlcnQgbWV0aG9kcyBmb3IgZGlmZmVyZW50CnB1cnBvc2VzLiBIZXJlIGlzIHRoZSBzaW1wbGVzdCBvbmU6PC9mb250Pgo8ZGlyPgo8ZGlyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPnByb3RlY3RlZCB2b2lkIDxiPmFzc2VydFRydWU8L2I+KGJvb2xlYW4KY29uZGl0aW9uKSB7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoIWNvbmRpdGlvbik8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7CnRocm93IG5ldyBBc3NlcnRpb25GYWlsZWRFcnJvcigpOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj59PC9mb250PjwvZm9udD48L2Rpcj4KPC9kaXI+Cjxmb250IHNpemU9LTE+VGhlIEFzc2VydGlvbkZhaWxlZEVycm9yIGlzIG5vdCBtZWFudCB0byBiZSBjYXVnaHQgYnkgdGhlCmNsaWVudCAoYSB0ZXN0aW5nIG1ldGhvZCBpbnNpZGUgYSBUZXN0Q2FzZSkgYnV0IGluc2lkZSB0aGUgVGVtcGxhdGUgTWV0aG9kClRlc3RDYXNlLnJ1bigpLiBXZSB0aGVyZWZvcmUgZGVyaXZlIEFzc2VydGlvbkZhaWxlZEVycm9yIGZyb20gRXJyb3IuPC9mb250Pgo8ZGlyPgo8ZGlyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPnB1YmxpYyBjbGFzcyA8Yj5Bc3NlcnRpb25GYWlsZWRFcnJvcjwvYj4KZXh0ZW5kcyBFcnJvciB7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBwdWJsaWMgQXNzZXJ0aW9uRmFpbGVkRXJyb3IKKCkge308L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+fTwvZm9udD48L2ZvbnQ+PC9kaXI+CjwvZGlyPgo8Zm9udCBzaXplPS0xPlRoZSBtZXRob2RzIHRvIGNvbGxlY3QgdGhlIGVycm9ycyBpbiBUZXN0UmVzdWx0IGFyZSBzaG93bgpiZWxvdzo8L2ZvbnQ+CjxkaXI+CjxkaXI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+cHVibGljIHN5bmNocm9uaXplZCB2b2lkIDxiPmFkZEVycm9yPC9iPihUZXN0CnRlc3QsIFRocm93YWJsZSB0KSB7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBmRXJyb3JzLmFkZEVsZW1lbnQobmV3ClRlc3RGYWlsdXJlKHRlc3QsIHQpKTs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+fTwvZm9udD48L2ZvbnQ+CjxwPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPnB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCA8Yj5hZGRGYWlsdXJlPC9iPihUZXN0CnRlc3QsIFRocm93YWJsZSB0KSB7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBmRmFpbHVyZXMuYWRkRWxlbWVudChuZXcKVGVzdEZhaWx1cmUodGVzdCwgdCkpOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj59PC9mb250PjwvZm9udD48L2Rpcj4KPC9kaXI+Cjxmb250IHNpemU9LTE+VGVzdEZhaWx1cmUgaXMgYSBsaXR0bGUgZnJhbWV3b3JrIGludGVybmFsIGhlbHBlciBjbGFzcyB0bwpiaW5kIHRvZ2V0aGVyIHRoZSBmYWlsZWQgdGVzdCBhbmQgdGhlIHNpZ25hbGVkIGV4Y2VwdGlvbiBmb3IgbGF0ZXIgcmVwb3J0aW5nLjwvZm9udD4KPGRpcj4KPGRpcj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj5wdWJsaWMgY2xhc3MgPGI+VGVzdEZhaWx1cmU8L2I+IGV4dGVuZHMKT2JqZWN0IHs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHByb3RlY3RlZCBUZXN0CmZGYWlsZWRUZXN0OzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj4mbmJzcDsmbmJzcDsmbmJzcDsgcHJvdGVjdGVkIFRocm93YWJsZQpmVGhyb3duRXhjZXB0aW9uOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj59PC9mb250PjwvZm9udD48L2Rpcj4KPC9kaXI+Cjxmb250IHNpemU9LTE+VGhlIGNhbm9uaWNhbCBmb3JtIG9mIGNvbGxlY3RpbmcgcGFyYW1ldGVyIHJlcXVpcmVzIHVzIHRvCnBhc3MgdGhlIGNvbGxlY3RpbmcgcGFyYW1ldGVyIHRvIGVhY2ggbWV0aG9kLiBJZiB3ZSBmb2xsb3dlZCB0aGlzIGFkdmljZSwKZWFjaCBvZiB0aGUgdGVzdGluZyBtZXRob2RzIHdvdWxkIHJlcXVpcmUgYSBwYXJhbWV0ZXIgZm9yIHRoZSBUZXN0UmVzdWx0LgpUaGlzIHJlc3VsdHMgaW4gYSAicG9sbHV0aW9uIiBvZiB0aGVzZSBtZXRob2Qgc2lnbmF0dXJlcy4gQXMgYSBiZW5ldm9sZW50CnNpZGUgZWZmZWN0IG9mIHVzaW5nIGV4Y2VwdGlvbnMgdG8gc2lnbmFsIGZhaWx1cmVzIHdlIGNhbiBhdm9pZCB0aGlzIHNpZ25hdHVyZQpwb2xsdXRpb24uIEEgdGVzdCBjYXNlIG1ldGhvZCwgb3IgYSBoZWxwZXIgbWV0aG9kIGNhbGxlZCBmcm9tIGl0LCBjYW4gdGhyb3cKYW4gZXhjZXB0aW9uIHdpdGhvdXQgaGF2aW5nIHRvIGtub3cgYWJvdXQgdGhlIFRlc3RSZXN1bHQuIEFzIGEgcmVmcmVzaGVyCmhlcmUgaXMgYSBzYW1wbGUgdGVzdCBtZXRob2QgZnJvbSBvdXIgTW9uZXlUZXN0IHN1aXRlLiBJdCBpbGx1c3RyYXRlcyBob3cKYSB0ZXN0aW5nIG1ldGhvZCBkb2VzbpJ0IGhhdmUgdG8ga25vdyBhbnl0aGluZyBhYm91dCBhIFRlc3RSZXN1bHQ6PC9mb250Pgo8ZGlyPgo8ZGlyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPnB1YmxpYyB2b2lkIDxiPnRlc3RNb25leUVxdWFsczwvYj4oKQp7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBhc3NlcnRUcnVlKCFmMTJDSEYuZXF1YWxzKG51bGwpKTs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGFzc2VydEVxdWFscyhmMTJDSEYsCmYxMkNIRik7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBhc3NlcnRFcXVhbHMoZjEyQ0hGLApuZXcgTW9uZXkoMTIsICJDSEYiKSk7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBhc3NlcnRUcnVlKCFmMTJDSEYuZXF1YWxzKGYxNENIRikpOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj59PC9mb250PjwvZm9udD48L2Rpcj4KPC9kaXI+Cjxmb250IHNpemU9LTE+SlVuaXQgY29tZXMgd2l0aCBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb25zIG9mIFRlc3RSZXN1bHQuClRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGNvdW50cyB0aGUgbnVtYmVyIG9mIGZhaWx1cmVzIGFuZCBlcnJvcnMgYW5kCmNvbGxlY3RzIHRoZSByZXN1bHRzLiBUZXh0VGVzdFJlc3VsdCBjb2xsZWN0cyB0aGUgcmVzdWx0cyBhbmQgcHJlc2VudHMKdGhlbSBpbiBhIHRleHR1YWwgZm9ybS4gRmluYWxseSwgVUlUZXN0UmVzdWx0IGlzIHVzZWQgYnkgdGhlIGdyYXBoaWNhbAp2ZXJzaW9uIG9mIHRoZSBKVW5pdCBUZXN0IFJ1bm5lciB0byB1cGRhdGUgdGhlIGdyYXBoaWNhbCB0ZXN0IHN0YXR1cy48L2ZvbnQ+CjxwPjxmb250IHNpemU9LTE+VGVzdFJlc3VsdCBpcyBhbiBleHRlbnNpb24gcG9pbnQgb2YgdGhlIGZyYW1ld29yay4gQ2xpZW50cwpjYW4gZGVmaW5lIHRoZWlyIG93biBjdXN0b20gVGVzdFJlc3VsdCBjbGFzc2VzLCBmb3IgZXhhbXBsZSwgYW4gSFRNTFRlc3RSZXN1bHQKcmVwb3J0cyB0aGUgcmVzdWx0cyBhcyBhbiBIVE1MIGRvY3VtZW50LjwvZm9udD4KPHA+PGI+PGk+PGZvbnQgZmFjZT0iQXJpYWwiPjMuNCBObyBzdHVwaWQgc3ViY2xhc3NlcyAtIFRlc3RDYXNlIGFnYWluPC9mb250PjwvaT48L2I+CjxwPjxmb250IHNpemU9LTE+V2UgaGF2ZSBhcHBsaWVkIENvbW1hbmQgdG8gcmVwcmVzZW50IGEgdGVzdC4gQ29tbWFuZCByZWxpZXMKb24gYSBzaW5nbGUgbWV0aG9kIGxpa2UgZXhlY3V0ZSgpIChjYWxsZWQgcnVuKCkgaW4gVGVzdENhc2UpIHRvIGludm9rZQppdC4gVGhpcyBzaW1wbGUgaW50ZXJmYWNlIGFsbG93cyB1cyB0byBpbnZva2UgZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucwpvZiBhIGNvbW1hbmQgdGhyb3VnaCB0aGUgc2FtZSBpbnRlcmZhY2UuPC9mb250Pgo8cD48Zm9udCBzaXplPS0xPldlIG5lZWQgYW4gaW50ZXJmYWNlIHRvIGdlbmVyaWNhbGx5IHJ1biBvdXIgdGVzdHMuIEhvd2V2ZXIsCmFsbCB0ZXN0IGNhc2VzIGFyZSBpbXBsZW1lbnRlZCBhcyBkaWZmZXJlbnQgbWV0aG9kcyBpbiB0aGUgc2FtZSBjbGFzcy4KVGhpcyBhdm9pZHMgdGhlIHVubmVjZXNzYXJ5IHByb2xpZmVyYXRpb24gb2YgY2xhc3Nlcy4gQSBnaXZlbiB0ZXN0IGNhc2UKY2xhc3MgbWF5IGltcGxlbWVudCBtYW55IGRpZmZlcmVudCBtZXRob2RzLCBlYWNoIGRlZmluaW5nIGEgc2luZ2xlIHRlc3QKY2FzZS4gRWFjaCB0ZXN0IGNhc2UgaGFzIGEgZGVzY3JpcHRpdmUgbmFtZSBsaWtlIHRlc3RNb25leUVxdWFscyBvciB0ZXN0TW9uZXlBZGQuClRoZSB0ZXN0IGNhc2VzIGRvbpJ0IGNvbmZvcm0gdG8gYSBzaW1wbGUgY29tbWFuZCBpbnRlcmZhY2UuIERpZmZlcmVudCBpbnN0YW5jZXMKb2YgdGhlIHNhbWUgQ29tbWFuZCBjbGFzcyBuZWVkIHRvIGJlIGludm9rZWQgd2l0aCBkaWZmZXJlbnQgbWV0aG9kcy4gVGhlcmVmb3JlCm91ciBuZXh0IHByb2JsZW0gaXMgbWFrZSBhbGwgdGhlIHRlc3QgY2FzZXMgbG9vayB0aGUgc2FtZSBmcm9tIHRoZSBwb2ludApvZiB2aWV3IG9mIHRoZSBpbnZva2VyIG9mIHRoZSB0ZXN0LjwvZm9udD4KPHA+PGZvbnQgc2l6ZT0tMT5SZXZpZXdpbmcgdGhlIHByb2JsZW1zIGFkZHJlc3NlZCBieSBhdmFpbGFibGUgZGVzaWduIHBhdHRlcm5zLAp0aGUgQWRhcHRlciBwYXR0ZXJuIHNwcmluZ3MgdG8gbWluZC4gQWRhcHRlciBoYXMgdGhlIGZvbGxvd2luZyBpbnRlbnQgIkNvbnZlcnQKdGhlIGludGVyZmFjZSBvZiBhIGNsYXNzIGludG8gYW5vdGhlciBpbnRlcmZhY2UgY2xpZW50cyBleHBlY3QiLiBUaGlzIHNvdW5kcwpsaWtlIGEgZ29vZCBtYXRjaC4gQWRhcHRlciB0ZWxscyB1cyBkaWZmZXJlbnQgd2F5cyB0byBkbyB0aGlzLiBPbmUgb2YgdGhlbQppcyBhIGNsYXNzIGFkYXB0ZXIsIHdoaWNoIHVzZXMgc3ViY2xhc3NpbmcgdG8gYWRhcHQgdGhlIGludGVyZmFjZS4gRm9yCmV4YW1wbGUsIHRvIGFkYXB0IHRlc3RNb25leUVxdWFscyB0byBydW5UZXN0IHdlIGltcGxlbWVudCBhIHN1YmNsYXNzIG9mCk1vbmV5VGVzdCBhbmQgb3ZlcnJpZGUgcnVuVGVzdCB0byBpbnZva2UgdGVzdE1vbmV5RXF1YWxzLjwvZm9udD4KPGRpcj4KPGRpcj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj5wdWJsaWMgY2xhc3MgPGI+VGVzdE1vbmV5RXF1YWxzPC9iPgpleHRlbmRzIE1vbmV5VGVzdCB7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBwdWJsaWMgVGVzdE1vbmV5RXF1YWxzKCkKeyBzdXBlcigidGVzdE1vbmV5RXF1YWxzIik7IH08L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHByb3RlY3RlZCB2b2lkCnJ1blRlc3QgKCkgeyB0ZXN0TW9uZXlFcXVhbHMoKTsgfTwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj59PC9mb250PjwvZm9udD48L2Rpcj4KPC9kaXI+Cjxmb250IHNpemU9LTE+VGhlIHVzZSBvZiBzdWJjbGFzc2luZyByZXF1aXJlcyB1cyB0byBpbXBsZW1lbnQgYSBzdWJjbGFzcwpmb3IgZWFjaCB0ZXN0IGNhc2UuIFRoaXMgcHV0cyBhbiBhZGRpdGlvbmFsIGJ1cmRlbiBvbiB0aGUgdGVzdGVyLiBUaGlzCmlzIGFnYWluc3QgdGhlIEpVbml0IGdvYWwgdGhhdCB0aGUgZnJhbWV3b3JrIHNob3VsZCBtYWtlIGl0IGFzIHNpbXBsZSBhcwpwb3NzaWJsZSB0byBhZGQgYSB0ZXN0IGNhc2UuIEluIGFkZGl0aW9uLCBjcmVhdGluZyBhIHN1YmNsYXNzIGZvciBlYWNoCnRlc3RpbmcgbWV0aG9kIHJlc3VsdHMgaW4gY2xhc3MgYmxvYXQuIE1hbnkgY2xhc3NlcyB3aXRoIG9ubHkgYSBzaW5nbGUKbWV0aG9kIGFyZSBub3Qgd29ydGggdGhlaXIgY29zdHMgYW5kIGl0IHdpbGwgYmUgZGlmZmljdWx0IHRvIGNvbWUgdXAgd2l0aAptZWFuaW5nZnVsIG5hbWVzLjwvZm9udD4KPHA+PGZvbnQgc2l6ZT0tMT5KYXZhIHByb3ZpZGVzIGFub255bW91cyBpbm5lciBjbGFzc2VzIHdoaWNoIHByb3ZpZGUgYW4KaW50ZXJlc3RpbmcgSmF2YS1zcGVjaWZpYyBzb2x1dGlvbiB0byB0aGUgY2xhc3MgbmFtaW5nIHByb2JsZW0uIFdpdGggYW5vbnltb3VzCmlubmVyIGNsYXNzZXMgd2UgY2FuIGNyZWF0ZSBhbiBBZGFwdGVyIHdpdGhvdXQgaGF2aW5nIHRvIGludmVudCBhIGNsYXNzCm5hbWU6PC9mb250Pgo8ZGlyPgo8ZGlyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPlRlc3RDYXNlIHRlc3Q9IG5ldyBNb25leVRlc3QoInRlc3RNb25leUVxdWFscwoiKSB7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBwcm90ZWN0ZWQgdm9pZApydW5UZXN0KCkgeyB0ZXN0TW9uZXlFcXVhbHMoKTsgfTwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj59OzwvZm9udD48L2ZvbnQ+PC9kaXI+CjwvZGlyPgo8Zm9udCBzaXplPS0xPlRoaXMgaXMgbXVjaCBtb3JlIGNvbnZlbmllbnQgdGhhbiBmdWxsIHN1YmNsYXNzaW5nLiBJdCBwcmVzZXJ2ZXMKY29tcGlsZS10aW1lIHR5cGUgY2hlY2tpbmcgYXQgdGhlIGNvc3Qgb2Ygc29tZSBidXJkZW4gb24gdGhlIGRldmVsb3Blci4KU21hbGx0YWxrIEJlc3QgUHJhY3RpY2UgUGF0dGVybnMgZGVzY3JpYmVzIGFub3RoZXIgc29sdXRpb24gZm9yIHRoZSBwcm9ibGVtCm9mIGRpZmZlcmVudCBpbnN0YW5jZXMgYmVoYXZpbmcgZGlmZmVyZW50bHkgdW5kZXIgdGhlIGNvbW1vbiBoZWFkaW5nIG9mPGk+CnBsdWdnYWJsZSBiZWhhdmlvcjwvaT4uIFRoZSBpZGVhIGlzIHRvIHVzZSBhIHNpbmdsZSBjbGFzcyB3aGljaCBjYW4gYmUKcGFyYW1ldGVyaXplZCB0byBwZXJmb3JtIGRpZmZlcmVudCBsb2dpYyB3aXRob3V0IHJlcXVpcmluZyBzdWJjbGFzc2luZy48L2ZvbnQ+CjxwPjxmb250IHNpemU9LTE+VGhlIHNpbXBsZXN0IGZvcm0gb2YgcGx1Z2dhYmxlIGJlaGF2aW9yIGlzIHRoZSA8aT5QbHVnZ2FibGUKU2VsZWN0b3I8L2k+LiBQbHVnZ2FibGUgU2VsZWN0b3Igc3RvcmVzIGEgU21hbGx0YWxrIG1ldGhvZCBzZWxlY3RvciBpbgphbiBpbnN0YW5jZSB2YXJpYWJsZS4gVGhpcyBpZGVhIGlzIG5vdCBsaW1pdGVkIHRvIFNtYWxsdGFsay4gSXQgaXMgYWxzbwphcHBsaWNhYmxlIHRvIEphdmEuIEluIEphdmEgdGhlcmUgaXMgbm8gbm90aW9uIG9mIGEgbWV0aG9kIHNlbGVjdG9yLiBIb3dldmVyLAp0aGUgSmF2YSByZWZsZWN0aW9uIEFQSSBhbGxvd3MgdXMgdG8gaW52b2tlIGEgbWV0aG9kIGZyb20gYSBzdHJpbmcgcmVwcmVzZW50aW5nCnRoZSBtZXRob2SScyBuYW1lLiBXZSBjYW4gdXNlIHRoaXMgZmVhdHVyZSB0byBpbXBsZW1lbnQgYSBwbHVnZ2FibGUgc2VsZWN0b3IKaW4gSmF2YS4gQXMgYW4gYXNpZGUsIHdlIHVzdWFsbHkgZG9uknQgdXNlIHJlZmxlY3Rpb24gaW4gb3JkaW5hcnkgYXBwbGljYXRpb24KY29kZS4gSW4gb3VyIGNhc2Ugd2UgYXJlIGRlYWxpbmcgd2l0aCBhbiBpbmZyYXN0cnVjdHVyZSBmcmFtZXdvcmsgYW5kIGl0CmlzIHRoZXJlZm9yZSBPSyB0byB3ZWFyIHRoZSByZWZsZWN0aW9uIGhhdC48L2ZvbnQ+CjxwPjxmb250IHNpemU9LTE+SlVuaXQgb2ZmZXJzIHRoZSBjbGllbnQgdGhlIGNob2ljZSBvZiB1c2luZyBwbHVnZ2FibGUKc2VsZWN0b3Igb3IgaW1wbGVtZW50aW5nIGFuIGFub255bW91cyBhZGFwdGVyIGNsYXNzIGFzIHNob3duIGFib3ZlLiBUbwpkbyBzbywgd2UgcHJvdmlkZSB0aGUgcGx1Z2dhYmxlIHNlbGVjdG9yIGFzIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uCm9mIHRoZSBydW5UZXN0IG1ldGhvZC4gSW4gdGhpcyBjYXNlIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IGNhc2UgaGFzIHRvIGNvcnJlc3BvbmQKdG8gdGhlIG5hbWUgb2YgYSB0ZXN0IG1ldGhvZC4gV2UgdXNlIHJlZmxlY3Rpb24gdG8gaW52b2tlIHRoZSBtZXRob2QgYXMKc2hvd24gYmVsb3cuIEZpcnN0IHdlIGxvb2sgdXAgdGhlIE1ldGhvZCBvYmplY3QuIE9uY2Ugd2UgaGF2ZSB0aGUgbWV0aG9kCm9iamVjdCB3ZSBjYW4gaW52b2tlIGl0IGFuZCBwYXNzIGl0cyBhcmd1bWVudHMuIFNpbmNlIG91ciB0ZXN0IG1ldGhvZHMKdGFrZSBubyBhcmd1bWVudHMgd2UgY2FuIHBhc3MgYW4gZW1wdHkgYXJndW1lbnQgYXJyYXk6PC9mb250Pgo8ZGlyPgo8ZGlyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPnByb3RlY3RlZCB2b2lkIDxiPnJ1blRlc3Q8L2I+KCkgdGhyb3dzClRocm93YWJsZSB7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBNZXRob2QgcnVuTWV0aG9kPQpudWxsOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj4mbmJzcDsmbmJzcDsmbmJzcDsgdHJ5IHs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7CnJ1bk1ldGhvZD0gZ2V0Q2xhc3MoKS5nZXRNZXRob2QoZk5hbWUsIG5ldyBDbGFzc1swXSk7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyB9IGNhdGNoIChOb1N1Y2hNZXRob2RFeGNlcHRpb24KZSkgezwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKYXNzZXJ0VHJ1ZSgiTWV0aG9kIFwiIitmTmFtZSsiXCIgbm90IGZvdW5kIiwgZmFsc2UpOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj4mbmJzcDsmbmJzcDsmbmJzcDsgfTwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj4mbmJzcDsmbmJzcDsmbmJzcDsgdHJ5IHs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7CnJ1bk1ldGhvZC5pbnZva2UodGhpcywgbmV3IENsYXNzWzBdKTs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8vIGNhdGNoIEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24KYW5kIElsbGVnYWxBY2Nlc3NFeGNlcHRpb248L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+fTwvZm9udD48L2ZvbnQ+PC9kaXI+CjwvZGlyPgo8Zm9udCBzaXplPS0xPlRoZSBKREsgMS4xIHJlZmxlY3Rpb24gQVBJIG9ubHkgYWxsb3dzIHVzIHRvIGZpbmQgcHVibGljCm1ldGhvZHMuIEZvciB0aGlzIHJlYXNvbiB5b3UgaGF2ZSB0byBkZWNsYXJlIHRoZSB0ZXN0IG1ldGhvZHMgYXMgcHVibGljLApvdGhlcndpc2UgeW91IHdpbGwgZ2V0IGEgTm9TdWNoTWV0aG9kRXhjZXB0aW9uLjwvZm9udD4KPHA+PGZvbnQgc2l6ZT0tMT5IZXJlIGlzIHRoZSBuZXh0IGRlc2lnbiBzbmFwc2hvdCwgd2l0aCBBZGFwdGVyIGFuZCBQbHVnZ2FibGUKU2VsZWN0b3IgYWRkZWQuPC9mb250Pgo8Y2VudGVyPgo8cD48aW1nIFNSQz0iSW1hZ2U0LmdpZiIgaGVpZ2h0PTI3MSB3aWR0aD0yNzg+CjxwPjxmb250IHNpemU9LTE+RmlndXJlIDQ6IFRlc3RDYXNlIGFwcGxpZXMgZWl0aGVyIEFkYXB0ZXIgd2l0aCBhbiBhbm9ueW1vdXMKaW5uZXIgY2xhc3Mgb3IgUGx1Z2dhYmxlIFNlbGVjdG9yPC9mb250PjwvY2VudGVyPgoKPHA+PGI+PGk+PGZvbnQgZmFjZT0iQXJpYWwiPjMuNSBEb26SdCBjYXJlIGFib3V0IG9uZSBvciBtYW55IC0gVGVzdFN1aXRlPC9mb250PjwvaT48L2I+CjxwPjxmb250IHNpemU9LTE+VG8gZ2V0IGNvbmZpZGVuY2UgaW4gdGhlIHN0YXRlIG9mIGEgc3lzdGVtIHdlIG5lZWQgdG8KcnVuIG1hbnkgdGVzdHMuIFVwIHRvIHRoaXMgcG9pbnQgSlVuaXQgY2FuIHJ1biBhIHNpbmdsZSB0ZXN0IGNhc2UgYW5kIHJlcG9ydAp0aGUgcmVzdWx0IGluIGEgVGVzdFJlc3VsdC4gT3VyIG5leHQgY2hhbGxlbmdlIGlzIHRvIGV4dGVuZCBpdCBzbyB0aGF0Cml0IGNhbiBydW4gbWFueSBkaWZmZXJlbnQgdGVzdHMuIFRoaXMgcHJvYmxlbSBjYW4gYmUgc29sdmVkIGVhc2lseSB3aGVuCnRoZSBpbnZva2VyIG9mIHRoZSB0ZXN0cyBkb2VzbpJ0IGhhdmUgdG8gY2FyZSBhYm91dCB3aGV0aGVyIGl0IHJ1bnMgb25lCm9yIG1hbnkgdGVzdCBjYXNlcy4gQSBwb3B1bGFyIHBhdHRlcm4gdG8gcHVsbCBvdXQgaW4gc3VjaCBhIHNpdHVhdGlvbiBpcwpDb21wb3NpdGUuIFRvIHF1b3RlIGl0cyBpbnRlbnQgIkNvbXBvc2Ugb2JqZWN0cyBpbnRvIHRyZWUgc3RydWN0dXJlcyB0bwpyZXByZXNlbnQgcGFydC13aG9sZSBoaWVyYXJjaGllcy4gQ29tcG9zaXRlIGxldHMgY2xpZW50cyB0cmVhdCBpbmRpdmlkdWFsCm9iamVjdHMgYW5kIGNvbXBvc2l0aW9ucyBvZiBvYmplY3RzIHVuaWZvcm1seS4iIFRoZSBwb2ludCBhYm91dCBwYXJ0LXdob2xlCmhpZXJhcmNoaWVzIGlzIG9mIGludGVyZXN0IGhlcmUuIFdlIHdhbnQgdG8gc3VwcG9ydCBzdWl0ZXMgb2Ygc3VpdGVzIG9mCnN1aXRlcyBvZiB0ZXN0cy48L2ZvbnQ+CjxwPjxmb250IHNpemU9LTE+Q29tcG9zaXRlIGludHJvZHVjZXMgdGhlIGZvbGxvd2luZyBwYXJ0aWNpcGFudHM6PC9mb250Pgo8dWw+CjxsaT4KPGZvbnQgc2l6ZT0tMT5Db21wb25lbnQ6IGRlY2xhcmVzIHRoZSBpbnRlcmZhY2Ugd2Ugd2FudCB0byB1c2UgdG8gaW50ZXJhY3QKd2l0aCBvdXIgdGVzdHMuPC9mb250PjwvbGk+Cgo8bGk+Cjxmb250IHNpemU9LTE+Q29tcG9zaXRlOiBpbXBsZW1lbnRzIHRoaXMgaW50ZXJmYWNlIGFuZCBtYWludGFpbnMgYSBjb2xsZWN0aW9uCm9mIHRlc3RzLjwvZm9udD48L2xpPgoKPGxpPgo8Zm9udCBzaXplPS0xPkxlYWY6IHJlcHJlc2VudHMgYSB0ZXN0IGNhc2UgaW4gYSBjb21wb3NpdGlvbiB0aGF0IGNvbmZvcm1zCnRvIHRoZSBDb21wb25lbnQgaW50ZXJmYWNlLjwvZm9udD48L2xpPgo8L3VsPgo8Zm9udCBzaXplPS0xPlRoZSBwYXR0ZXJuIHRlbGxzIHVzIHRvIGludHJvZHVjZSBhbiBhYnN0cmFjdCBjbGFzcyB3aGljaApkZWZpbmVzIHRoZSBjb21tb24gaW50ZXJmYWNlIGZvciBzaW5nbGUgYW5kIGNvbXBvc2l0ZSBvYmplY3RzLiBUaGUgcHJpbWFyeQpwdXJwb3NlIG9mIHRoZSBjbGFzcyBpcyB0byBkZWZpbmUgYW4gaW50ZXJmYWNlLiBXaGVuIGFwcGx5aW5nIENvbXBvc2l0ZQppbiBKYXZhIHdlIHByZWZlciB0byBkZWZpbmUgYW4gaW50ZXJmYWNlIGFuZCBub3QgYW4gYWJzdHJhY3QgY2xhc3MuIFVzaW5nCmFuIGludGVyZmFjZSBhdm9pZHMgY29tbWl0dGluZyBKVW5pdCB0byBhIHNwZWNpZmljIGJhc2UgY2xhc3MgZm9yIHRlc3RzLgpBbGwgdGhhdCBpcyByZXF1aXJlZCBpcyB0aGF0IHRoZSB0ZXN0cyBjb25mb3JtIHRvIHRoaXMgaW50ZXJmYWNlLiBXZSB0aGVyZWZvcmUKdHdlYWsgdGhlIHBhdHRlcm4gZGVzY3JpcHRpb24gYW5kIGludHJvZHVjZSBhIFRlc3QgaW50ZXJmYWNlOjwvZm9udD4KPGRpcj4KPGRpcj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj5wdWJsaWMgaW50ZXJmYWNlIDxiPlRlc3Q8L2I+IHs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHB1YmxpYyBhYnN0cmFjdAp2b2lkIHJ1bihUZXN0UmVzdWx0IHJlc3VsdCk7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPn08L2ZvbnQ+PC9mb250PjwvZGlyPgo8L2Rpcj4KPGZvbnQgc2l6ZT0tMT5UZXN0Q2FzZSBjb3JyZXNwb25kcyB0byBhIExlYWYgaW4gQ29tcG9zaXRlIGFuZCBpbXBsZW1lbnRzCnRoaXMgaW50ZXJmYWNlIGFzIHdlIGhhdmUgc2VlbiBhYm92ZS48L2ZvbnQ+CjxwPjxmb250IHNpemU9LTE+TmV4dCwgd2UgaW50cm9kdWNlIHRoZSBDb21wb3NpdGUgcGFydGljaXBhbnQuIFdlIG5hbWUKdGhlIGNsYXNzIFRlc3RTdWl0ZS4gQSBUZXN0U3VpdGUga2VlcHMgaXRzIGNoaWxkIHRlc3RzIGluIGEgVmVjdG9yOjwvZm9udD4KPGRpcj4KPGRpcj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj5wdWJsaWMgY2xhc3MgPGI+VGVzdFN1aXRlPC9iPiBpbXBsZW1lbnRzCjxiPlRlc3Q8L2I+Cns8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHByaXZhdGUgVmVjdG9yCmZUZXN0cz0gbmV3IFZlY3RvcigpOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj59PC9mb250PjwvZm9udD48L2Rpcj4KPC9kaXI+Cjxmb250IHNpemU9LTE+VGhlIHJ1bigpIG1ldGhvZCBkZWxlZ2F0ZXMgdG8gaXRzIGNoaWxkcmVuOjwvZm9udD4KPGRpcj4KPGRpcj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj5wdWJsaWMgdm9pZCA8Yj5ydW48L2I+KFRlc3RSZXN1bHQKcmVzdWx0KSB7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBmb3IgKEVudW1lcmF0aW9uCmU9IGZUZXN0cy5lbGVtZW50cygpOyBlLmhhc01vcmVFbGVtZW50cygpOyApIHs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ClRlc3QgdGVzdD0gKFRlc3QpZS5uZXh0RWxlbWVudCgpOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKdGVzdC5ydW4ocmVzdWx0KTs8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+fTwvZm9udD48L2ZvbnQ+PC9kaXI+CjwvZGlyPgoKPGNlbnRlcj48aW1nIFNSQz0iSW1hZ2U1LmdpZiIgaGVpZ2h0PTI0MSB3aWR0aD01NjI+CjxwPjxmb250IHNpemU9LTE+RmlndXJlIDU6IFRlc3RTdWl0ZSBhcHBsaWVzIENvbXBvc2l0ZTwvZm9udD48L2NlbnRlcj4KCjxwPjxmb250IHNpemU9LTE+RmluYWxseSwgY2xpZW50cyBoYXZlIHRvIGJlIGFibGUgdG8gYWRkIHRlc3RzIHRvIGEgc3VpdGUsCnRoZXkgY2FuIGRvIHNvIHdpdGggdGhlIG1ldGhvZCBhZGRUZXN0OjwvZm9udD4KPGRpcj4KPGRpcj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj5wdWJsaWMgdm9pZCA8Yj5hZGRUZXN0PC9iPihUZXN0IHRlc3QpCns8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IGZUZXN0cy5hZGRFbGVtZW50KHRlc3QpOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj59PC9mb250PjwvZm9udD48L2Rpcj4KPC9kaXI+Cjxmb250IHNpemU9LTE+Tm90aWNlIGhvdyBhbGwgb2YgdGhlIGFib3ZlIGNvZGUgb25seSBkZXBlbmRzIG9uIHRoZSBUZXN0CmludGVyZmFjZS4gU2luY2UgYm90aCBUZXN0Q2FzZSBhbmQgVGVzdFN1aXRlIGNvbmZvcm0gdG8gdGhlIFRlc3QgaW50ZXJmYWNlCndlIGNhbiByZWN1cnNpdmVseSBjb21wb3NlIHN1aXRlcyBvZiB0ZXN0IHN1aXRlcy4gQWxsIGRldmVsb3BlcnMgY2FuIGNyZWF0ZQp0aGVpciBvd24gVGVzdFN1aXRlcy4gV2UgY2FuIHJ1biB0aGVtIGFsbCBieSBjcmVhdGluZyBhIFRlc3RTdWl0ZSBjb21wb3NlZApvZiB0aG9zZSBzdWl0ZXMuPC9mb250Pgo8cD48Zm9udCBzaXplPS0xPkhlcmUgaXMgYW4gZXhhbXBsZSBvZiBjcmVhdGluZyBhIFRlc3RTdWl0ZTo8L2ZvbnQ+CjxkaXI+CjxkaXI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+cHVibGljIHN0YXRpYyBUZXN0IDxiPnN1aXRlPC9iPigpCns8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IFRlc3RTdWl0ZSBzdWl0ZT0KbmV3IFRlc3RTdWl0ZSgpOzwvZm9udD48L2ZvbnQ+Cjxicj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0tMj4mbmJzcDsmbmJzcDsmbmJzcDsgc3VpdGUuYWRkVGVzdChuZXcKTW9uZXlUZXN0KCJ0ZXN0TW9uZXlFcXVhbHMiKSk7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPiZuYnNwOyZuYnNwOyZuYnNwOyBzdWl0ZS5hZGRUZXN0KG5ldwpNb25leVRlc3QoInRlc3RTaW1wbGVBZGQiKSk7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPn08L2ZvbnQ+PC9mb250PjwvZGlyPgo8L2Rpcj4KPGZvbnQgc2l6ZT0tMT5UaGlzIHdvcmtzIGZpbmUsIGJ1dCBpdCByZXF1aXJlcyB1cyB0byBhZGQgYWxsIHRoZSB0ZXN0cwp0byBhIHN1aXRlIG1hbnVhbGx5LiBFYXJseSBhZG9wdGVycyBvZiBKVW5pdCB0b2xkIHVzIHRoaXMgd2FzIHN0dXBpZC4gV2hlbmV2ZXIKeW91IHdyaXRlIGEgbmV3IHRlc3QgY2FzZSB5b3UgaGF2ZSB0byByZW1lbWJlciB0byBhZGQgaXQgdG8gYSBzdGF0aWMgc3VpdGUoKQptZXRob2QsIG90aGVyd2lzZSBpdCB3aWxsIG5vdCBiZSBydW4uIFdlIGFkZGVkIGEgY29udmVuaWVuY2UgY29uc3RydWN0b3IKdG8gVGVzdFN1aXRlIHdoaWNoIHRha2VzIHRoZSB0ZXN0IGNhc2UgY2xhc3MgYXMgYW4gYXJndW1lbnQuIEl0cyBwdXJwb3NlCmlzIHRvIGV4dHJhY3QgdGhlIHRlc3QgbWV0aG9kcyBhbmQgY3JlYXRlIGEgc3VpdGUgY29udGFpbmluZyB0aGVtLiBUaGUKdGVzdCBtZXRob2RzIG11c3QgZm9sbG93IHRoZSBzaW1wbGUgY29udmVudGlvbiB0aGF0IHRoZXkgc3RhcnQgd2l0aCB0aGUKcHJlZml4ICJ0ZXN0IiBhbmQgdGFrZSBubyBhcmd1bWVudHMuIFRoZSBjb252ZW5pZW5jZSBjb25zdHJ1Y3RvciB1c2VzIHRoaXMKY29udmVudGlvbiwgY29uc3RydWN0aW5nIHRoZSB0ZXN0IG9iamVjdHMgYnkgdXNpbmcgcmVmbGVjdGlvbiB0byBmaW5kIHRoZQp0ZXN0aW5nIG1ldGhvZHMuIFVzaW5nIHRoaXMgY29uc3RydWN0b3IgdGhlIGFib3ZlIGNvZGUgaXMgc2ltcGxpZmllZCB0bzo8L2ZvbnQ+CjxkaXI+CjxkaXI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+cHVibGljIHN0YXRpYyBUZXN0IDxiPnN1aXRlPC9iPigpCns8L2ZvbnQ+PC9mb250Pgo8YnI+PGZvbnQgZmFjZT0iQXJpYWwiPjxmb250IHNpemU9LTI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiBuZXcgVGVzdFN1aXRlKE1vbmV5VGVzdC5jbGFzcyk7PC9mb250PjwvZm9udD4KPGJyPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPS0yPn08L2ZvbnQ+PC9mb250PjwvZGlyPgo8L2Rpcj4KPGZvbnQgc2l6ZT0tMT5UaGUgb3JpZ2luYWwgd2F5IGlzIHN0aWxsIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHRvIHJ1biBhIHN1YnNldApvZiB0aGUgdGVzdCBjYXNlcyBvbmx5LjwvZm9udD4KPHA+PGI+PGk+PGZvbnQgZmFjZT0iQXJpYWwiPjMuNiBTdW1tYXJ5PC9mb250PjwvaT48L2I+CjxwPjxmb250IHNpemU9LTE+V2UgYXJlIGF0IHRoZSBlbmQgb2Ygb3VyIGNvb2uScyB0b3VyIHRocm91Z2ggSlVuaXQuIFRoZQpmb2xsb3dpbmcgZmlndXJlIHNob3dzIHRoZSBkZXNpZ24gb2YgSlVuaXQgYXQgYSBnbGFuY2UgZXhwbGFpbmVkIHdpdGggcGF0dGVybnMuPC9mb250Pgo8Y2VudGVyPgo8cD48aW1nIFNSQz0iSW1hZ2U2LmdpZiIgaGVpZ2h0PTM5NCB3aWR0aD02MDU+CjxwPjxmb250IHNpemU9LTE+RmlndXJlIDY6IEpVbml0IFBhdHRlcm5zIFN1bW1hcnk8L2ZvbnQ+PC9jZW50ZXI+Cgo8cD48Zm9udCBzaXplPS0xPk5vdGljZSBob3cgVGVzdENhc2UsIHRoZSBjZW50cmFsIGFic3RyYWN0aW9uIGluIHRoZSBmcmFtZXdvcmssCmlzIGludm9sdmVkIGluIGZvdXIgcGF0dGVybnMuIFBpY3R1cmVzIG9mIG1hdHVyZSBvYmplY3QgZGVzaWducyBzaG93IHRoaXMKc2FtZSAicGF0dGVybiBkZW5zaXR5Ii4gVGhlIHN0YXIgb2YgdGhlIGRlc2lnbiBoYXMgYSByaWNoIHNldCBvZiByZWxhdGlvbnNoaXBzCndpdGggdGhlIHN1cHBvcnRpbmcgcGxheWVycy48L2ZvbnQ+CjxwPjxmb250IHNpemU9LTE+SGVyZSBpcyBhbm90aGVyIHdheSBvZiBsb29raW5nIGF0IGFsbCBvZiB0aGUgcGF0dGVybnMKaW4gSlVuaXQuIEluIHRoaXMgc3Rvcnlib2FyZCB5b3Ugc2VlIGFuIGFic3RyYWN0IHJlcHJlc2VudGF0aW9uIG9mIHRoZQplZmZlY3Qgb2YgZWFjaCBvZiB0aGUgcGF0dGVybnMgaW4gdHVybi4gU28sIHRoZSBDb21tYW5kIHBhdHRlcm4gY3JlYXRlcwp0aGUgVGVzdENhc2UgY2xhc3MsIHRoZSBUZW1wbGF0ZSBNZXRob2QgcGF0dGVybiBjcmVhdGVzIHRoZSBydW4gbWV0aG9kLAphbmQgc28gb24uIChUaGUgbm90YXRpb24gb2YgdGhlIHN0b3J5Ym9hcmQgaXMgdGhlIG5vdGF0aW9uIG9mIGZpZ3VyZSA2CndpdGggYWxsIHRoZSB0ZXh0IGRlbGV0ZWQpLjwvZm9udD4KPGNlbnRlcj4KPHA+PGltZyBTUkM9IkltYWdlNy5naWYiIGhlaWdodD0yMzEgd2lkdGg9NzkyPgo8cD48Zm9udCBzaXplPS0xPkZpZ3VyZSA3OiBKVW5pdCBQYXR0ZXJuIFN0b3J5Ym9hcmQ8L2ZvbnQ+PC9jZW50ZXI+Cgo8cD48Zm9udCBzaXplPS0xPk9uZSBwb2ludCB0byBub3RpY2UgYWJvdXQgdGhlIHN0b3J5Ym9hcmQgaXMgaG93IHRoZSBjb21wbGV4aXR5Cm9mIHRoZSBwaWN0dXJlIGp1bXBzIHdoZW4gd2UgYXBwbHkgQ29tcG9zaXRlLiBUaGlzIGlzIHBpY3RvcmlhbCBjb3Jyb2JvcmF0aW9uCmZvciBvdXIgaW50dWl0aW9uIHRoYXQgQ29tcG9zaXRlIGlzIGEgcG93ZXJmdWwgcGF0dGVybiwgYnV0IHRoYXQgaXQgImNvbXBsaWNhdGVzCnRoZSBwaWN0dXJlLiIgSXQgc2hvdWxkIHRoZXJlZm9yZSBiZSB1c2VkIHdpdGggY2F1dGlvbi48L2ZvbnQ+CjxwPjxiPjxmb250IGZhY2U9IkFyaWFsIj48Zm9udCBzaXplPSsxPjQuIENvbmNsdXNpb248L2ZvbnQ+PC9mb250PjwvYj4KPHA+PGZvbnQgc2l6ZT0tMT5UbyBjb25jbHVkZSwgbGV0knMgbWFrZSBzb21lIGdlbmVyYWwgb2JzZXJ2YXRpb25zOjwvZm9udD4KPHVsPgo8bGk+CjxpPjxmb250IHNpemU9LTE+UGF0dGVybnM8L2ZvbnQ+PC9pPjwvbGk+Cgo8YnI+PGZvbnQgc2l6ZT0tMT5XZSBmb3VuZCBkaXNjdXNzaW5nIHRoZSBkZXNpZ24gaW4gdGVybXMgb2YgcGF0dGVybnMgdG8KYmUgaW52YWx1YWJsZSwgYm90aCBhcyB3ZSB3ZXJlIGRldmVsb3BpbmcgdGhlIGZyYW1ld29yayBhbmQgYXMgd2UgdHJ5IHRvCmV4cGxhaW4gaXQgdG8gb3RoZXJzLiBZb3UgYXJlIG5vdyBpbiBhIHBlcmZlY3QgcG9zaXRpb24gdG8ganVkZ2Ugd2hldGhlcgpkZXNjcmliaW5nIGEgZnJhbWV3b3JrIHdpdGggcGF0dGVybnMgaXMgZWZmZWN0aXZlLiBJZiB5b3UgbGlrZWQgdGhlIGRpc2N1c3Npb24KYWJvdmUsIHRyeSB0aGUgc2FtZSBzdHlsZSBvZiBwcmVzZW50YXRpb24gZm9yIHlvdXIgb3duIHN5c3RlbS48L2ZvbnQ+CjxsaT4KPGk+PGZvbnQgc2l6ZT0tMT5QYXR0ZXJuIGRlbnNpdHk8L2ZvbnQ+PC9pPjwvbGk+Cgo8YnI+PGZvbnQgc2l6ZT0tMT5UaGVyZSBpcyBhIGhpZ2ggcGF0dGVybiAiZGVuc2l0eSIgYXJvdW5kIFRlc3RDYXNlLCB3aGljaAppcyB0aGUga2V5IGFic3RyYWN0aW9uIG9mIEpVbml0LiBEZXNpZ25zIHdpdGggaGlnaCBwYXR0ZXJuIGRlbnNpdHkgYXJlCmVhc2llciB0byB1c2UgYnV0IGhhcmRlciB0byBjaGFuZ2UuIFdlIGhhdmUgZm91bmQgdGhhdCBzdWNoIGEgaGlnaCBwYXR0ZXJuCmRlbnNpdHkgYXJvdW5kIGtleSBhYnN0cmFjdGlvbnMgaXMgY29tbW9uIGZvciBtYXR1cmUgZnJhbWV3b3Jrcy4gVGhlIG9wcG9zaXRlCnNob3VsZCBiZSB0cnVlIG9mIGltbWF0dXJlIGZyYW1ld29ya3MgLSB0aGV5IHNob3VsZCBoYXZlIGxvdyBwYXR0ZXJuIGRlbnNpdHkuCk9uY2UgeW91IGRpc2NvdmVyIHdoYXQgcHJvYmxlbSB5b3UgYXJlIHJlYWxseSBzb2x2aW5nLCB0aGVuIHlvdSBjYW4gYmVnaW4KdG8gImNvbXByZXNzIiB0aGUgc29sdXRpb24sIGxlYWRpbmcgdG8gYSBkZW5zZXIgYW5kIGRlbnNlciBmaWVsZCBvZiBwYXR0ZXJucwp3aGVyZSB0aGV5IHByb3ZpZGUgbGV2ZXJhZ2UuPC9mb250Pgo8bGk+CjxpPjxmb250IHNpemU9LTE+RWF0IHlvdXIgb3duIGRvZyBmb29kPC9mb250PjwvaT48L2xpPgoKPGJyPjxmb250IHNpemU9LTE+QXMgc29vbiBhcyB3ZSBoYWQgdGhlIGJhc2UgdW5pdCB0ZXN0aW5nIGZ1bmN0aW9uYWxpdHkKaW1wbGVtZW50ZWQsIHdlIGFwcGxpZWQgaXQgb3Vyc2VsdmVzLiBBIFRlc3RUZXN0IHZlcmlmaWVzIHRoYXQgdGhlIGZyYW1ld29yawpyZXBvcnRzIHRoZSBjb3JyZWN0IHJlc3VsdHMgZm9yIGVycm9ycywgc3VjY2Vzc2VzLCBhbmQgZmFpbHVyZXMuIFdlIGZvdW5kCnRoaXMgaW52YWx1YWJsZSBhcyB3ZSBjb250aW51ZWQgdG8gZXZvbHZlIHRoZSBkZXNpZ24gb2YgdGhlIGZyYW1ld29yay4KV2UgZm91bmQgdGhhdCB0aGUgbW9zdCBjaGFsbGVuZ2luZyBhcHBsaWNhdGlvbiBvZiBKVW5pdCB3YXMgdGVzdGluZyBpdHMKb3duIGJlaGF2aW9yLjwvZm9udD4KPGxpPgo8aT48Zm9udCBzaXplPS0xPkludGVyc2VjdGlvbiwgbm90IHVuaW9uPC9mb250PjwvaT48L2xpPgoKPGJyPjxmb250IHNpemU9LTE+VGhlcmUgaXMgYSB0ZW1wdGF0aW9uIGluIGZyYW1ld29yayBkZXZlbG9wbWVudCB0byBpbmNsdWRlCmV2ZXJ5IGZlYXR1cmUgeW91IGNhbi4gQWZ0ZXIgYWxsLCB5b3Ugd2FudCB0byBtYWtlIHRoZSBmcmFtZXdvcmsgYXMgdmFsdWFibGUKYXMgcG9zc2libGUuIEhvd2V2ZXIsIHRoZXJlIGlzIGEgY291bnRlcmFjdGluZyBmb3JjZS0gZGV2ZWxvcGVycyBoYXZlIHRvCmRlY2lkZSB0byB1c2UgeW91ciBmcmFtZXdvcmsuIFRoZSBmZXdlciBmZWF0dXJlcyB0aGUgZnJhbWV3b3JrIGhhcywgdGhlCmVhc2llciBpdCBpcyB0byBsZWFybiwgdGhlIG1vcmUgbGlrZWx5IGEgZGV2ZWxvcGVyIHdpbGwgdXNlIGl0LiBKVW5pdCBpcwp3cml0dGVuIGluIHRoaXMgc3R5bGUuIEl0IGltcGxlbWVudHMgb25seSB0aG9zZSBmZWF0dXJlcyBhYnNvbHV0ZWx5IGVzc2VudGlhbAp0byBydW5uaW5nIHRlc3RzLSBydW5uaW5nIHN1aXRlcyBvZiB0ZXN0cywgaXNvbGF0aW5nIHRoZSBleGVjdXRpb24gb2YgdGVzdHMKZnJvbSBlYWNoIG90aGVyLCBhbmQgcnVubmluZyB0ZXN0cyBhdXRvbWF0aWNhbGx5LiBTdXJlLCB3ZSBjb3VsZG6SdCByZXNpc3QKYWRkaW5nIHNvbWUgZmVhdHVyZXMgYnV0IHdlIHdlcmUgY2FyZWZ1bCB0byBwdXQgdGhlbSBpbnRvIHRoZWlyIG93biBleHRlbnNpb25zCnBhY2thZ2UgKHRlc3QuZXh0ZW5zaW9ucykuIEEgbm90YWJsZSBtZW1iZXIgb2YgdGhpcyBwYWNrYWdlIGlzIGEgVGVzdERlY29yYXRvcgphbGxvd2luZyBleGVjdXRpb24gb2YgYWRkaXRpb25hbCBjb2RlIGJlZm9yZSBhbmQgYWZ0ZXIgYSB0ZXN0LjwvZm9udD4KPGxpPgo8aT48Zm9udCBzaXplPS0xPkZyYW1ld29yayB3cml0ZXJzIHJlYWQgdGhlaXIgY29kZTwvZm9udD48L2k+PC9saT4KCjxicj48Zm9udCBzaXplPS0xPldlIHNwZW50IGZhciBtb3JlIHRpbWUgcmVhZGluZyB0aGUgSlVuaXQgY29kZSB0aGFuIHdlCnNwZW50IHdyaXRpbmcgaXQsIGFuZCBuZWFybHkgYXMgbXVjaCB0aW1lIHJlbW92aW5nIGR1cGxpY2F0ZSBmdW5jdGlvbmFsaXR5CmFzIHdlIHNwZW50IGFkZGluZyBuZXcgZnVuY3Rpb25hbGl0eS4gV2UgZXhwZXJpbWVudGVkIGFnZ3Jlc3NpdmVseSB3aXRoCnRoZSBkZXNpZ24sIGFkZGluZyBuZXcgY2xhc3NlcyBhbmQgbW92aW5nIHJlc3BvbnNpYmlsaXR5IGFyb3VuZCBpbiBhcyBtYW55CmRpZmZlcmVudCB3YXlzIGFzIHdlIGNvdWxkIGltYWdpbmUuIFdlIHdlcmUgcmV3YXJkZWQgKGFuZCBhcmUgc3RpbGwgYmVpbmcKcmV3YXJkZWQpIGZvciBvdXIgbW9ub21hbmlhIGJ5IGEgY29udGludW91cyBmbG93IG9mIGluc2lnaHRzIGludG8gSlVuaXQsCnRlc3RpbmcsIG9iamVjdCBkZXNpZ24sIGZyYW1ld29yayBkZXZlbG9wbWVudCwgYW5kIG9wcG9ydHVuaXRpZXMgZm9yIGZ1cnRoZXIKYXJ0aWNsZXMuPC9mb250PjwvdWw+Cjxmb250IHNpemU9LTE+VGhlIGxhdGVzdCB2ZXJzaW9uIG9mIEpVbml0IGNhbiBiZSBkb3dubG9hZGVkIGZyb20gaHR0cDovL3d3dy5qdW5pdC5vcmcuPC9mb250Pgo8cD48Yj48Zm9udCBmYWNlPSJBcmlhbCI+PGZvbnQgc2l6ZT0rMT41LiBBY2tub3dsZWRnZW1lbnRzPC9mb250PjwvZm9udD48L2I+CjxwPjxmb250IHNpemU9LTE+VGhhbmtzIHRvIEpvaG4gVmxpc3NpZGVzLCBSYWxwaCBKb2huc29uLCBhbmQgTmljayBFZGdhcgpmb3IgY2FyZWZ1bCByZWFkaW5nIGFuZCBnZW50bGUgY29ycmVjdGlvbi48L2ZvbnQ+CjwvYm9keT4KPC9odG1sPgo=