PCFET0NUWVBFIHJlZmVudHJ5IFBVQkxJQyAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFYzLjEvL0VOIiBbCjwhRU5USVRZIHZlcnNpb24gU1lTVEVNICJ2ZXJzaW9uLnNnbWwiPgo8IUVOVElUWSBjb25mZGlyIFNZU1RFTSAiY29uZmRpci5zZ21sIj4KXT4KPCEtLQogICAgJElkJAogICAKICAgIENvcHlyaWdodCCpIDIwMDMgS2VpdGggUGFja2FyZAogICAKICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGRpc3RyaWJ1dGUsIGFuZCBzZWxsIHRoaXMgc29mdHdhcmUgYW5kIGl0cwogICAgZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2UgaXMgaGVyZWJ5IGdyYW50ZWQgd2l0aG91dCBmZWUsIHByb3ZpZGVkIHRoYXQKICAgIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzIGFuZCB0aGF0IGJvdGggdGhhdAogICAgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gc3VwcG9ydGluZwogICAgZG9jdW1lbnRhdGlvbiwgYW5kIHRoYXQgdGhlIG5hbWUgb2YgS2VpdGggUGFja2FyZCBub3QgYmUgdXNlZCBpbgogICAgYWR2ZXJ0aXNpbmcgb3IgcHVibGljaXR5IHBlcnRhaW5pbmcgdG8gZGlzdHJpYnV0aW9uIG9mIHRoZSBzb2Z0d2FyZSB3aXRob3V0CiAgICBzcGVjaWZpYywgd3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLiAgS2VpdGggUGFja2FyZCBtYWtlcyBubwogICAgcmVwcmVzZW50YXRpb25zIGFib3V0IHRoZSBzdWl0YWJpbGl0eSBvZiB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZS4gIEl0CiAgICBpcyBwcm92aWRlZCAiYXMgaXMiIHdpdGhvdXQgZXhwcmVzcyBvciBpbXBsaWVkIHdhcnJhbnR5LgogICAKICAgIEtFSVRIIFBBQ0tBUkQgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUsCiAgICBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MsIElOIE5PCiAgICBFVkVOVCBTSEFMTCBLRUlUSCBQQUNLQVJEIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIElORElSRUNUIE9SCiAgICBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVTRSwKICAgIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIKICAgIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IKICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuCi0tPgo8cmVmZW50cnk+CjxyZWZtZXRhPgogIDxyZWZlbnRyeXRpdGxlPmZvbnRzLWNvbmY8L3JlZmVudHJ5dGl0bGU+CiAgPG1hbnZvbG51bT41PC9tYW52b2xudW0+CjwvcmVmbWV0YT4KPHJlZm5hbWVkaXY+Cgk8cmVmbmFtZT5mb250cy5jb25mPC9yZWZuYW1lPgoJPHJlZnB1cnBvc2U+Rm9udCBjb25maWd1cmF0aW9uIGZpbGVzPC9yZWZwdXJwb3NlPgo8L3JlZm5hbWVkaXY+CjxyZWZzeW5vcHNpc2Rpdj4KPHN5bm9wc2lzPgogICAmY29uZmRpcjsvZm9udHMuY29uZgogICAmY29uZmRpcjsvZm9udHMuZHRkCiAgIH4vLmZvbnRzLmNvbmYKPC9zeW5vcHNpcz4KPC9yZWZzeW5vcHNpc2Rpdj4KPHJlZnNlY3QxPjx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CiAgPHBhcmE+CkZvbnRjb25maWcgaXMgYSBsaWJyYXJ5IGRlc2lnbmVkIHRvIHByb3ZpZGUgc3lzdGVtLXdpZGUgZm9udCBjb25maWd1cmF0aW9uLApjdXN0b21pemF0aW9uIGFuZCBhcHBsaWNhdGlvbiBhY2Nlc3MuCiAgPC9wYXJhPgo8L3JlZnNlY3QxPgo8cmVmc2VjdDE+PHRpdGxlPkZ1bmN0aW9uYWwgT3ZlcnZpZXc8L3RpdGxlPgogIDxwYXJhPgpGb250Y29uZmlnIGNvbnRhaW5zIHR3byBlc3NlbnRpYWwgbW9kdWxlcywgdGhlIGNvbmZpZ3VyYXRpb24gbW9kdWxlIHdoaWNoCmJ1aWxkcyBhbiBpbnRlcm5hbCBjb25maWd1cmF0aW9uIGZyb20gWE1MIGZpbGVzIGFuZCB0aGUgbWF0Y2hpbmcgbW9kdWxlCndoaWNoIGFjY2VwdHMgZm9udCBwYXR0ZXJucyBhbmQgcmV0dXJucyB0aGUgbmVhcmVzdCBtYXRjaGluZyBmb250LgogIDwvcGFyYT4KICA8cmVmc2VjdDI+PHRpdGxlPkZvbnQgQ29uZmlndXJhdGlvbjwvdGl0bGU+CiAgICA8cGFyYT4KVGhlIGNvbmZpZ3VyYXRpb24gbW9kdWxlIGNvbnNpc3RzIG9mIHRoZSBGY0NvbmZpZyBkYXRhdHlwZSwgbGliZXhwYXQgYW5kCkZjQ29uZmlnUGFyc2Ugd2hpY2ggd2Fsa3Mgb3ZlciBhbiBYTUwgdHJlZSBhbmQgYW1tZW5kcyBhIGNvbmZpZ3VyYXRpb24gd2l0aApkYXRhIGZvdW5kIHdpdGhpbi4gIEZyb20gYW4gZXh0ZXJuYWwgcGVyc3BlY3RpdmUsIGNvbmZpZ3VyYXRpb24gb2YgdGhlCmxpYnJhcnkgY29uc2lzdHMgb2YgZ2VuZXJhdGluZyBhIHZhbGlkIFhNTCB0cmVlIGFuZCBmZWVkaW5nIHRoYXQgdG8KRmNDb25maWdQYXJzZS4gIFRoZSBvbmx5IG90aGVyIG1lY2hhbmlzbSBwcm92aWRlZCB0byBhcHBsaWNhdGlvbnMgZm9yCmNoYW5naW5nIHRoZSBydW5uaW5nIGNvbmZpZ3VyYXRpb24gaXMgdG8gYWRkIGZvbnRzIGFuZCBkaXJlY3RvcmllcyB0byB0aGUKbGlzdCBvZiBhcHBsaWNhdGlvbi1wcm92aWRlZCBmb250IGZpbGVzLiAgCiAgICA8L3BhcmE+PHBhcmE+ClRoZSBpbnRlbnQgaXMgdG8gbWFrZSBmb250IGNvbmZpZ3VyYXRpb25zIHJlbGF0aXZlbHkgc3RhdGljLCBhbmQgc2hhcmVkIGJ5CmFzIG1hbnkgYXBwbGljYXRpb25zIGFzIHBvc3NpYmxlLiAgSXQgaXMgaG9wZWQgdGhhdCB0aGlzIHdpbGwgbGVhZCB0byBtb3JlCnN0YWJsZSBmb250IHNlbGVjdGlvbiB3aGVuIHBhc3NpbmcgbmFtZXMgZnJvbSBvbmUgYXBwbGljYXRpb24gdG8gYW5vdGhlci4KWE1MIHdhcyBjaG9zZW4gYXMgYSBjb25maWd1cmF0aW9uIGZpbGUgZm9ybWF0IGJlY2F1c2UgaXQgcHJvdmlkZXMgYSBmb3JtYXQKd2hpY2ggaXMgZWFzeSBmb3IgZXh0ZXJuYWwgYWdlbnRzIHRvIGVkaXQgd2hpbGUgcmV0YWluaW5nIHRoZSBjb3JyZWN0CnN0cnVjdHVyZSBhbmQgc3ludGF4LgogICAgPC9wYXJhPjxwYXJhPgpGb250IGNvbmZpZ3VyYXRpb24gaXMgc2VwYXJhdGUgZnJvbSBmb250IG1hdGNoaW5nOyBhcHBsaWNhdGlvbnMgbmVlZGluZyB0bwpkbyB0aGVpciBvd24gbWF0Y2hpbmcgY2FuIGFjY2VzcyB0aGUgYXZhaWxhYmxlIGZvbnRzIGZyb20gdGhlIGxpYnJhcnkgYW5kCnBlcmZvcm0gcHJpdmF0ZSBtYXRjaGluZy4gIFRoZSBpbnRlbnQgaXMgdG8gcGVybWl0IGFwcGxpY2F0aW9ucyB0byBwaWNrIGFuZApjaG9vc2UgYXBwcm9wcmlhdGUgZnVuY3Rpb25hbGl0eSBmcm9tIHRoZSBsaWJyYXJ5IGluc3RlYWQgb2YgZm9yY2luZyB0aGVtIHRvCmNob29zZSBiZXR3ZWVuIHRoaXMgbGlicmFyeSBhbmQgYSBwcml2YXRlIGNvbmZpZ3VyYXRpb24gbWVjaGFuaXNtLiAgVGhlIGhvcGUKaXMgdGhhdCB0aGlzIHdpbGwgZW5zdXJlIHRoYXQgY29uZmlndXJhdGlvbiBvZiBmb250cyBmb3IgYWxsIGFwcGxpY2F0aW9ucwpjYW4gYmUgY2VudHJhbGl6ZWQgaW4gb25lIHBsYWNlLiAgQ2VudHJhbGl6aW5nIGZvbnQgY29uZmlndXJhdGlvbiB3aWxsCnNpbXBsaWZ5IGFuZCByZWd1bGFyaXplIGZvbnQgaW5zdGFsbGF0aW9uIGFuZCBjdXN0b21pemF0aW9uLgogICAgPC9wYXJhPgogIDwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPgogICAgPHRpdGxlPkZvbnQgUHJvcGVydGllczwvdGl0bGU+CiAgICA8cGFyYT4KV2hpbGUgZm9udCBwYXR0ZXJucyBtYXkgY29udGFpbiBlc3NlbnRpYWxseSBhbnkgcHJvcGVydGllcywgdGhlcmUgYXJlIHNvbWUKd2VsbCBrbm93biBwcm9wZXJ0aWVzIHdpdGggYXNzb2NpYXRlZCB0eXBlcy4gIEZvbnRjb25maWcgdXNlcyBzb21lIG9mIHRoZXNlCnByb3BlcnRpZXMgZm9yIGZvbnQgbWF0Y2hpbmcgYW5kIGZvbnQgY29tcGxldGlvbi4gIE90aGVycyBhcmUgcHJvdmlkZWQgYXMgYQpjb252ZW5pZW5jZSBmb3IgdGhlIGFwcGxpY2F0aW9ucyByZW5kZXJpbmcgbWVjaGFuaXNtLgogICAgPC9wYXJhPgogICAgPHByb2dyYW1saXN0aW5nPgogIFByb3BlcnR5ICAgICAgICBUeXBlICAgIERlc2NyaXB0aW9uCiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmYW1pbHkgICAgICAgICAgU3RyaW5nICBGb250IGZhbWlseSBuYW1lCiAgc3R5bGUgICAgICAgICAgIFN0cmluZyAgRm9udCBzdHlsZS4gT3ZlcnJpZGVzIHdlaWdodCBhbmQgc2xhbnQKICBzbGFudCAgICAgICAgICAgSW50ICAgICBJdGFsaWMsIG9ibGlxdWUgb3Igcm9tYW4KICB3ZWlnaHQgICAgICAgICAgSW50ICAgICBMaWdodCwgbWVkaXVtLCBkZW1pYm9sZCwgYm9sZCBvciBibGFjawogIHNpemUgICAgICAgICAgICBEb3VibGUgIFBvaW50IHNpemUKICBhc3BlY3QgICAgICAgICAgRG91YmxlICBTdHJldGNoZXMgZ2x5cGhzIGhvcml6b250YWxseSBiZWZvcmUgaGludGluZwogIHBpeGVsc2l6ZSAgICAgICBEb3VibGUgIFBpeGVsIHNpemUKICBzcGFjaW5nICAgICAgICAgSW50ICAgICBQcm9wb3J0aW9uYWwsIGR1YWwtd2lkdGgsIG1vbm9zcGFjZSBvciBjaGFyY2VsbAogIGZvdW5kcnkgICAgICAgICBTdHJpbmcgIEZvbnQgZm91bmRyeSBuYW1lCiAgYW50aWFsaWFzICAgICAgIEJvb2wgICAgV2hldGhlciBnbHlwaHMgY2FuIGJlIGFudGlhbGlhc2VkCiAgaGludGluZyAgICAgICAgIEJvb2wgICAgV2hldGhlciB0aGUgcmFzdGVyaXplciBzaG91bGQgdXNlIGhpbnRpbmcKICB2ZXJ0aWNhbGxheW91dCAgQm9vbCAgICBVc2UgdmVydGljYWwgbGF5b3V0CiAgYXV0b2hpbnQgICAgICAgIEJvb2wgICAgVXNlIGF1dG9oaW50ZXIgaW5zdGVhZCBvZiBub3JtYWwgaGludGVyCiAgZ2xvYmFsYWR2YW5jZSAgIEJvb2wgICAgVXNlIGZvbnQgZ2xvYmFsIGFkdmFuY2UgZGF0YQogIGZpbGUgICAgICAgICAgICBTdHJpbmcgIFRoZSBmaWxlbmFtZSBob2xkaW5nIHRoZSBmb250CiAgaW5kZXggICAgICAgICAgIEludCAgICAgVGhlIGluZGV4IG9mIHRoZSBmb250IHdpdGhpbiB0aGUgZmlsZQogIGZ0ZmFjZSAgICAgICAgICBGVF9GYWNlIFVzZSB0aGUgc3BlY2lmaWVkIEZyZWVUeXBlIGZhY2Ugb2JqZWN0CiAgcmFzdGVyaXplciAgICAgIFN0cmluZyAgV2hpY2ggcmFzdGVyaXplciBpcyBpbiB1c2UKICBvdXRsaW5lICAgICAgICAgQm9vbCAgICBXaGV0aGVyIHRoZSBnbHlwaHMgYXJlIG91dGxpbmVzCiAgc2NhbGFibGUgICAgICAgIEJvb2wgICAgV2hldGhlciBnbHlwaHMgY2FuIGJlIHNjYWxlZAogIHNjYWxlICAgICAgICAgICBEb3VibGUgIFNjYWxlIGZhY3RvciBmb3IgcG9pbnQtPnBpeGVsIGNvbnZlcnNpb25zCiAgZHBpICAgICAgICAgICAgIERvdWJsZSAgVGFyZ2V0IGRvdHMgcGVyIGluY2gKICByZ2JhICAgICAgICAgICAgSW50ICAgICB1bmtub3duLCByZ2IsIGJnciwgdnJnYiwgdmJnciwKICAgICAgICAgICAgICAgICAgICAgICAgICBub25lIC0gc3VicGl4ZWwgZ2VvbWV0cnkKICBtaW5zcGFjZSAgICAgICAgQm9vbCAgICBFbGltaW5hdGUgbGVhZGluZyBmcm9tIGxpbmUgc3BhY2luZwogIGNoYXJzZXQgICAgICAgICBDaGFyU2V0IFVuaWNvZGUgY2hhcnMgZW5jb2RlZCBieSB0aGUgZm9udAogIGxhbmcgICAgICAgICAgICBTdHJpbmcgIExpc3Qgb2YgUkZDLTMwNjYtc3R5bGUgbGFuZ3VhZ2VzIHRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgICBmb250IHN1cHBvcnRzCiAgICA8L3Byb2dyYW1saXN0aW5nPgogIDwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPgogIDx0aXRsZT5Gb250IE1hdGNoaW5nPC90aXRsZT4KICAgIDxwYXJhPgpGb250Y29uZmlnIHBlcmZvcm1zIG1hdGNoaW5nIGJ5IG1lYXN1cmluZyB0aGUgZGlzdGFuY2UgZnJvbSBhIHByb3ZpZGVkCnBhdHRlcm4gdG8gYWxsIG9mIHRoZSBhdmFpbGFibGUgZm9udHMgaW4gdGhlIHN5c3RlbS4gIFRoZSBjbG9zZXN0IG1hdGNoaW5nCmZvbnQgaXMgc2VsZWN0ZWQuICBUaGlzIGVuc3VyZXMgdGhhdCBhIGZvbnQgd2lsbCBhbHdheXMgYmUgcmV0dXJuZWQsIGJ1dApkb2Vzbid0IGVuc3VyZSB0aGF0IGl0IGlzIGFueXRoaW5nIGxpa2UgdGhlIHJlcXVlc3RlZCBwYXR0ZXJuLgogICAgPC9wYXJhPjxwYXJhPiAKRm9udCBtYXRjaGluZyBzdGFydHMgd2l0aCBhbiBhcHBsaWNhdGlvbiBjb25zdHJ1Y3RlZCBwYXR0ZXJuLiAgVGhlIGRlc2lyZWQKYXR0cmlidXRlcyBvZiB0aGUgcmVzdWx0aW5nIGZvbnQgYXJlIGNvbGxlY3RlZCB0b2dldGhlciBpbiBhIHBhdHRlcm4uICBFYWNoCnByb3BlcnR5IG9mIHRoZSBwYXR0ZXJuIGNhbiBjb250YWluIG9uZSBvciBtb3JlIHZhbHVlczsgdGhlc2UgYXJlIGxpc3RlZCBpbgpwcmlvcml0eSBvcmRlcjsgbWF0Y2hlcyBlYXJsaWVyIGluIHRoZSBsaXN0IGFyZSBjb25zaWRlcmVkICJjbG9zZXIiIHRoYW4KbWF0Y2hlcyBsYXRlciBpbiB0aGUgbGlzdC4KICAgIDwvcGFyYT48cGFyYT4KVGhlIGluaXRpYWwgcGF0dGVybiBpcyBtb2RpZmllZCBieSBhcHBseWluZyB0aGUgbGlzdCBvZiBlZGl0aW5nIGluc3RydWN0aW9ucwpzcGVjaWZpYyB0byBwYXR0ZXJucyBmb3VuZCBpbiB0aGUgY29uZmlndXJhdGlvbjsgZWFjaCBjb25zaXN0cyBvZiBhIG1hdGNoCnByZWRpY2F0ZSBhbmQgYSBzZXQgb2YgZWRpdGluZyBvcGVyYXRpb25zLiAgVGhleSBhcmUgZXhlY3V0ZWQgaW4gdGhlIG9yZGVyCnRoZXkgYXBwZWFyZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uICBFYWNoIG1hdGNoIGNhdXNlcyB0aGUgYXNzb2NpYXRlZApzZXF1ZW5jZSBvZiBlZGl0aW5nIG9wZXJhdGlvbnMgdG8gYmUgYXBwbGllZC4KICAgIDwvcGFyYT48cGFyYT4KQWZ0ZXIgdGhlIHBhdHRlcm4gaGFzIGJlZW4gZWRpdGVkLCBhIHNlcXVlbmNlIG9mIGRlZmF1bHQgc3Vic3RpdHV0aW9ucyBhcmUKcGVyZm9ybWVkIHRvIGNhbm9uaWNhbGl6ZSB0aGUgc2V0IG9mIGF2YWlsYWJsZSBwcm9wZXJ0aWVzOyB0aGlzIGF2b2lkcyB0aGUKbmVlZCBmb3IgdGhlIGxvd2VyIGxheWVycyB0byBjb25zdGFudGx5IHByb3ZpZGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHZhcmlvdXMKZm9udCBwcm9wZXJ0aWVzIGR1cmluZyByZW5kZXJpbmcuCiAgICA8L3BhcmE+PHBhcmE+ClRoZSBjYW5vbmljYWwgZm9udCBwYXR0ZXJuIGlzIGZpbmFsbHkgbWF0Y2hlZCBhZ2FpbnN0IGFsbCBhdmFpbGFibGUgZm9udHMuClRoZSBkaXN0YW5jZSBmcm9tIHRoZSBwYXR0ZXJuIHRvIHRoZSBmb250IGlzIG1lYXN1cmVkIGZvciBlYWNoIG9mIHNldmVyYWwKcHJvcGVydGllczogZm91bmRyeSwgY2hhcnNldCwgZmFtaWx5LCBsYW5nLCBzcGFjaW5nLCBwaXhlbHNpemUsIHN0eWxlLApzbGFudCwgd2VpZ2h0LCBhbnRpYWxpYXMsIHJhc3Rlcml6ZXIgYW5kIG91dGxpbmUuICBUaGlzIGxpc3QgaXMgaW4gcHJpb3JpdHkKb3JkZXIgLS0gcmVzdWx0cyBvZiBjb21wYXJpbmcgZWFybGllciBlbGVtZW50cyBvZiB0aGlzIGxpc3Qgd2VpZ2ggbW9yZQpoZWF2aWx5IHRoYW4gbGF0ZXIgZWxlbWVudHMuCiAgICA8L3BhcmE+PHBhcmE+ClRoZXJlIGlzIG9uZSBzcGVjaWFsIGNhc2UgdG8gdGhpcyBydWxlOyBmYW1pbHkgbmFtZXMgYXJlIHNwbGl0IGludG8gdHdvCmJpbmRpbmdzOyBzdHJvbmcgYW5kIHdlYWsuICBTdHJvbmcgZmFtaWx5IG5hbWVzIGFyZSBnaXZlbiBncmVhdGVyIHByZWNlZGVuY2UKaW4gdGhlIG1hdGNoIHRoYW4gbGFuZyBlbGVtZW50cyB3aGlsZSB3ZWFrIGZhbWlseSBuYW1lcyBhcmUgZ2l2ZW4gbG93ZXIKcHJlY2VkZW5jZSB0aGFuIGxhbmcgZWxlbWVudHMuICBUaGlzIHBlcm1pdHMgdGhlIGRvY3VtZW50IGxhbmd1YWdlIHRvIGRyaXZlCmZvbnQgc2VsZWN0aW9uIHdoZW4gYW55IGRvY3VtZW50IHNwZWNpZmllZCBmb250IGlzIHVuYXZhaWxhYmxlLgogICAgPC9wYXJhPjxwYXJhPgpUaGUgcGF0dGVybiByZXByZXNlbnRpbmcgdGhhdCBmb250IGlzIGF1Z21lbnRlZCB0byBpbmNsdWRlIGFueSBwcm9wZXJ0aWVzCmZvdW5kIGluIHRoZSBwYXR0ZXJuIGJ1dCBub3QgZm91bmQgaW4gdGhlIGZvbnQgaXRzZWxmOyB0aGlzIHBlcm1pdHMgdGhlCmFwcGxpY2F0aW9uIHRvIHBhc3MgcmVuZGVyaW5nIGluc3RydWN0aW9ucyBvciBhbnkgb3RoZXIgZGF0YSB0aHJvdWdoIHRoZQptYXRjaGluZyBzeXN0ZW0uICBGaW5hbGx5LCB0aGUgbGlzdCBvZiBlZGl0aW5nIGluc3RydWN0aW9ucyBzcGVjaWZpYyB0bwpmb250cyBmb3VuZCBpbiB0aGUgY29uZmlndXJhdGlvbiBhcmUgYXBwbGllZCB0byB0aGUgcGF0dGVybi4gIFRoaXMgbW9kaWZpZWQKcGF0dGVybiBpcyByZXR1cm5lZCB0byB0aGUgYXBwbGljYXRpb24uCiAgICA8L3BhcmE+PHBhcmE+ClRoZSByZXR1cm4gdmFsdWUgY29udGFpbnMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBsb2NhdGUgYW5kIHJhc3Rlcml6ZSB0aGUKZm9udCwgaW5jbHVkaW5nIHRoZSBmaWxlIG5hbWUsIHBpeGVsIHNpemUgYW5kIG90aGVyIHJlbmRlcmluZyBkYXRhLiAgQXMKbm9uZSBvZiB0aGUgaW5mb3JtYXRpb24gaW52b2x2ZWQgcGVydGFpbnMgdG8gdGhlIEZyZWVUeXBlIGxpYnJhcnksCmFwcGxpY2F0aW9ucyBhcmUgZnJlZSB0byB1c2UgYW55IHJhc3Rlcml6YXRpb24gZW5naW5lIG9yIGV2ZW4gdG8gdGFrZQp0aGUgaWRlbnRpZmllZCBmb250IGZpbGUgYW5kIGFjY2VzcyBpdCBkaXJlY3RseS4KICAgIDwvcGFyYT48cGFyYT4KVGhlIG1hdGNoL2VkaXQgc2VxdWVuY2VzIGluIHRoZSBjb25maWd1cmF0aW9uIGFyZSBwZXJmb3JtZWQgaW4gdHdvIHBhc3NlcwpiZWNhdXNlIHRoZXJlIGFyZSBlc3NlbnRpYWxseSB0d28gZGlmZmVyZW50IG9wZXJhdGlvbnMgbmVjZXNzYXJ5IC0tIHRoZQpmaXJzdCBpcyB0byBtb2RpZnkgaG93IGZvbnRzIGFyZSBzZWxlY3RlZDsgYWxpYXNpbmcgZmFtaWxpZXMgYW5kIGFkZGluZwpzdWl0YWJsZSBkZWZhdWx0cy4gIFRoZSBzZWNvbmQgaXMgdG8gbW9kaWZ5IGhvdyB0aGUgc2VsZWN0ZWQgZm9udHMgYXJlCnJhc3Rlcml6ZWQuICBUaG9zZSBtdXN0IGFwcGx5IHRvIHRoZSBzZWxlY3RlZCBmb250LCBub3QgdGhlIG9yaWdpbmFsIHBhdHRlcm4KYXMgZmFsc2UgbWF0Y2hlcyB3aWxsIG9mdGVuIG9jY3VyLgogICAgPC9wYXJhPgogIDwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPjx0aXRsZT5Gb250IE5hbWVzPC90aXRsZT4KICAgIDxwYXJhPgpGb250Y29uZmlnIHByb3ZpZGVzIGEgdGV4dHVhbCByZXByZXNlbnRhdGlvbiBmb3IgcGF0dGVybnMgdGhhdCB0aGUgbGlicmFyeQpjYW4gYm90aCBhY2NlcHQgYW5kIGdlbmVyYXRlLiAgVGhlIHJlcHJlc2VudGF0aW9uIGlzIGluIHRocmVlIHBhcnRzLCBmaXJzdCBhCmxpc3Qgb2YgZmFtaWx5IG5hbWVzLCBzZWNvbmQgYSBsaXN0IG9mIHBvaW50IHNpemVzIGFuZCBmaW5hbGx5IGEgbGlzdCBvZgphZGRpdGlvbmFsIHByb3BlcnRpZXM6CiAgICA8L3BhcmE+CiAgICA8cHJvZ3JhbWxpc3Rpbmc+CgkmbHQ7ZmFtaWxpZXMmZ3Q7LSZsdDtwb2ludCBzaXplcyZndDs6Jmx0O25hbWUxJmd0Oz0mbHQ7dmFsdWVzMSZndDs6Jmx0O25hbWUyJmd0Oz0mbHQ7dmFsdWVzMiZndDsuLi4KICAgIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgICA8cGFyYT4KVmFsdWVzIGluIGEgbGlzdCBhcmUgc2VwYXJhdGVkIHdpdGggY29tbWFzLiAgVGhlIG5hbWUgbmVlZG4ndCBpbmNsdWRlIGVpdGhlcgpmYW1pbGllcyBvciBwb2ludCBzaXplczsgdGhleSBjYW4gYmUgZWxpZGVkLiAgSW4gYWRkaXRpb24sIHRoZXJlIGFyZQpzeW1ib2xpYyBjb25zdGFudHMgdGhhdCBzaW11bHRhbmVvdXNseSBpbmRpY2F0ZSBib3RoIGEgbmFtZSBhbmQgYSB2YWx1ZS4KSGVyZSBhcmUgc29tZSBleGFtcGxlczoKICAgIDwvcGFyYT4KICAgIDxwcm9ncmFtbGlzdGluZz4KICBOYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lYW5pbmcKICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgVGltZXMtMTIgICAgICAgICAgICAgICAgICAgICAgICAxMiBwb2ludCBUaW1lcyBSb21hbgogIFRpbWVzLTEyOmJvbGQgICAgICAgICAgICAgICAgICAgMTIgcG9pbnQgVGltZXMgQm9sZAogIENvdXJpZXI6aXRhbGljICAgICAgICAgICAgICAgICAgQ291cmllciBJdGFsaWMgaW4gdGhlIGRlZmF1bHQgc2l6ZQogIE1vbm9zcGFjZTptYXRyaXg9MSAuMSAwIDEgICAgICAgVGhlIHVzZXJzIHByZWZlcnJlZCBtb25vc3BhY2UgZm9udAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBhcnRpZmljaWFsIG9ibGlxdWluZwogICAgPC9wcm9ncmFtbGlzdGluZz4KICA8L3JlZnNlY3QyPgo8L3JlZnNlY3QxPgo8cmVmc2VjdDE+PHRpdGxlPkxhbmcgVGFnczwvdGl0bGU+CiAgPHBhcmE+CkVhY2ggZm9udCBpbiB0aGUgZGF0YWJhc2UgY29udGFpbnMgYSBsaXN0IG9mIGxhbmd1YWdlcyBpdCBzdXBwb3J0cy4gIFRoaXMgaXMKY29tcHV0ZWQgYnkgY29tcGFyaW5nIHRoZSBVbmljb2RlIGNvdmVyYWdlIG9mIHRoZSBmb250IHdpdGggdGhlIG9ydGhvZ3JhcGh5Cm9mIGVhY2ggbGFuZ3VhZ2UuICBMYW5ndWFnZXMgYXJlIHRhZ2dlZCB1c2luZyBhbiBSRkMtMzA2NiBjb21wYXRpYmxlIG5hbWluZwphbmQgb2NjdXIgaW4gdHdvIHBhcnRzIC0tIHRoZSBJU082MzkgbGFuZ3VhZ2UgdGFnIGZvbGxvd2VkIGEgaHlwaGVuIGFuZCB0aGVuCmJ5IHRoZSBJU08gMzE2NiBjb3VudHJ5IGNvZGUuICBUaGUgaHlwaGVuIGFuZCBjb3VudHJ5IGNvZGUgbWF5IGJlIGVsaWRlZC4KICA8L3BhcmE+PHBhcmE+CkZvbnRjb25maWcgaGFzIG9ydGhvZ3JhcGhpZXMgZm9yIHNldmVyYWwgbGFuZ3VhZ2VzIGJ1aWx0IGludG8gdGhlIGxpYnJhcnkuCk5vIHByb3Zpc2lvbiBoYXMgYmVlbiBtYWRlIGZvciBhZGRpbmcgbmV3IG9uZXMgYXNpZGUgZnJvbSByZWJ1aWxkaW5nIHRoZQpsaWJyYXJ5LiAgSXQgY3VycmVudGx5IHN1cHBvcnRzIDEyMiBvZiB0aGUgMTM5IGxhbmd1YWdlcyBuYW1lZCBpbiBJU08gNjM5LTEsCjE0MSBvZiB0aGUgbGFuZ3VhZ2VzIHdpdGggdHdvLWxldHRlciBjb2RlcyBmcm9tIElTTyA2MzktMiBhbmQgYW5vdGhlciAzMApsYW5ndWFnZXMgd2l0aCBvbmx5IHRocmVlLWxldHRlciBjb2Rlcy4KICA8L3BhcmE+CjwvcmVmc2VjdDE+CjxyZWZzZWN0MT48dGl0bGU+Q29uZmlndXJhdGlvbiBGaWxlIEZvcm1hdDwvdGl0bGU+CiAgPHBhcmE+CkNvbmZpZ3VyYXRpb24gZmlsZXMgZm9yIGZvbnRjb25maWcgYXJlIHN0b3JlZCBpbiBYTUwgZm9ybWF0OyB0aGlzCmZvcm1hdCBtYWtlcyBleHRlcm5hbCBjb25maWd1cmF0aW9uIHRvb2xzIGVhc2llciB0byB3cml0ZSBhbmQgZW5zdXJlcyB0aGF0CnRoZXkgd2lsbCBnZW5lcmF0ZSBzeW50YWN0aWNhbGx5IGNvcnJlY3QgY29uZmlndXJhdGlvbiBmaWxlcy4gIEFzIFhNTApmaWxlcyBhcmUgcGxhaW4gdGV4dCwgdGhleSBjYW4gYWxzbyBiZSBtYW5pcHVsYXRlZCBieSB0aGUgZXhwZXJ0IHVzZXIgdXNpbmcKYSB0ZXh0IGVkaXRvci4KICA8L3BhcmE+PHBhcmE+ClRoZSBmb250Y29uZmlnIGRvY3VtZW50IHR5cGUgZGVmaW5pdGlvbiByZXNpZGVzIGluIHRoZSBleHRlcm5hbCBlbnRpdHkKImZvbnRzLmR0ZCI7IHRoaXMgaXMgbm9ybWFsbHkgc3RvcmVkIGluIHRoZSBkZWZhdWx0IGZvbnQgY29uZmlndXJhdGlvbgpkaXJlY3RvcnkgKCZjb25mZGlyOykuICBFYWNoIGNvbmZpZ3VyYXRpb24gZmlsZSBzaG91bGQgY29udGFpbiB0aGUKZm9sbG93aW5nIHN0cnVjdHVyZToKICAgIDxwcm9ncmFtbGlzdGluZz4KCSZsdDs/eG1sIHZlcnNpb249IjEuMCI/Jmd0OwoJJmx0OyFET0NUWVBFIGZvbnRjb25maWcgU1lTVEVNICJmb250cy5kdGQiJmd0OwoJJmx0O2ZvbnRjb25maWcmZ3Q7CgkuLi4KCSZsdDsvZm9udGNvbmZpZyZndDsKICAgIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgPC9wYXJhPgo8cmVmc2VjdDI+PHRpdGxlPjxsaXRlcmFsPiZsdDtmb250Y29uZmlnJmd0OzwvbGl0ZXJhbD48L3RpdGxlPjxwYXJhPgpUaGlzIGlzIHRoZSB0b3AgbGV2ZWwgZWxlbWVudCBmb3IgYSBmb250IGNvbmZpZ3VyYXRpb24gYW5kIGNhbiBjb250YWluCjxzZ21sdGFnPmRpcjwvPiwgPHNnbWx0YWc+Y2FjaGU8Lz4sIDxzZ21sdGFnPmluY2x1ZGU8Lz4sIDxzZ21sdGFnPm1hdGNoPC8+IGFuZCA8c2dtbHRhZz5hbGlhczwvPiBlbGVtZW50cyBpbiBhbnkgb3JkZXIuCiAgPC9wYXJhPjwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPjx0aXRsZT48c2dtbHRhZz5kaXI8Lz48L3RpdGxlPjxwYXJhPgpUaGlzIGVsZW1lbnQgY29udGFpbnMgYSBkaXJlY3RvcnkgbmFtZSB3aGljaCB3aWxsIGJlIHNjYW5uZWQgZm9yIGZvbnQgZmlsZXMKdG8gaW5jbHVkZSBpbiB0aGUgc2V0IG9mIGF2YWlsYWJsZSBmb250cy4KICA8L3BhcmE+PC9yZWZzZWN0Mj4KICA8cmVmc2VjdDI+PHRpdGxlPjxzZ21sdGFnPmNhY2hlPC8+PC90aXRsZT48cGFyYT4KVGhpcyBlbGVtZW50IGNvbnRhaW5zIGEgZmlsZSBuYW1lIGZvciB0aGUgcGVyLXVzZXIgY2FjaGUgb2YgZm9udAppbmZvcm1hdGlvbi4gIElmIGl0IHN0YXJ0cyB3aXRoICd+JywgaXQgcmVmZXJzIHRvIGEgZmlsZSBpbiB0aGUgdXNlcnMKaG9tZSBkaXJlY3RvcnkuICBUaGlzIGZpbGUgaXMgdXNlZCB0byBob2xkIGluZm9ybWF0aW9uIGFib3V0IGZvbnRzIHRoYXQKaXNuJ3QgcHJlc2VudCBpbiB0aGUgcGVyLWRpcmVjdG9yeSBjYWNoZSBmaWxlcy4gIEl0IGlzIGF1dG9tYXRpY2FsbHkKbWFpbnRhaW5lZCBieSB0aGUgZm9udGNvbmZpZyBsaWJyYXJ5LiAgVGhlIGRlZmF1bHQgZm9yIHRoaXMgZmlsZSAKaXMgYGB+Ly5mb250cy5jYWNoZS08c2dtbHRhZz52ZXJzaW9uPC8+JycsIHdoZXJlIDxzZ21sdGFnPnZlcnNpb248Lz4gaXMgdGhlIGZvbnQgY29uZmlndXJhdGlvbgpmaWxlIHZlcnNpb24gbnVtYmVyIChjdXJyZW50bHkgMSkuCiAgPC9wYXJhPjwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPjx0aXRsZT48c2dtbHRhZz5pbmNsdWRlIGlnbm9yZV9taXNzaW5nPSJubyI8Lz48L3RpdGxlPjxwYXJhPgpUaGlzIGVsZW1lbnQgY29udGFpbnMgdGhlIG5hbWUgb2YgYW4gYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIGZpbGUuICBXaGVuCnRoZSBYTUwgZGF0YXR5cGUgaXMgdHJhdmVyc2VkIGJ5IEZjQ29uZmlnUGFyc2UsIHRoZSBjb250ZW50cyBvZiB0aGUgZmlsZQp3aWxsIGFsc28gYmUgaW5jb3Jwb3JhdGVkIGludG8gdGhlIGNvbmZpZ3VyYXRpb24gYnkgcGFzc2luZyB0aGUgZmlsZW5hbWUgdG8KRmNDb25maWdMb2FkQW5kUGFyc2UuICBJZiAnaWdub3JlX21pc3NpbmcnIGlzIHNldCB0byAieWVzIiBpbnN0ZWFkIG9mIHRoZQpkZWZhdWx0ICJubyIsIGEgbWlzc2luZyBmaWxlIHdpbGwgZWxpY2l0IG5vIHdhcm5pbmcgbWVzc2FnZSBmcm9tIHRoZSBsaWJyYXJ5LgogIDwvcGFyYT48L3JlZnNlY3QyPgogIDxyZWZzZWN0Mj48dGl0bGU+PHNnbWx0YWc+Y29uZmlnPC8+PC90aXRsZT48cGFyYT4KVGhpcyBlbGVtZW50IHByb3ZpZGVzIGEgcGxhY2UgdG8gY29uc29sb2RhdGUgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uCmluZm9ybWF0aW9uLiAgPHNnbWx0YWc+Y29uZmlnPC8+IGNhbiBjb250YWluIDxzZ21sdGFnPmJsYW5rPC8+IGFuZCA8c2dtbHRhZz5yZXNjYW48Lz4gZWxlbWVudHMgaW4gYW55Cm9yZGVyLgogIDwvcGFyYT48L3JlZnNlY3QyPgogIDxyZWZzZWN0Mj48dGl0bGU+PHNnbWx0YWc+Ymxhbms8Lz48L3RpdGxlPjxwYXJhPgpGb250cyBvZnRlbiBpbmNsdWRlICJicm9rZW4iIGdseXBocyB3aGljaCBhcHBlYXIgaW4gdGhlIGVuY29kaW5nIGJ1dCBhcmUKZHJhd24gYXMgYmxhbmtzIG9uIHRoZSBzY3JlZW4uICBXaXRoaW4gdGhlIDxzZ21sdGFnPmJsYW5rPC8+IGVsZW1lbnQsIHBsYWNlIGVhY2gKVW5pY29kZSBjaGFyYWN0ZXJzIHdoaWNoIGlzIHN1cHBvc2VkIHRvIGJlIGJsYW5rIGluIGFuIDxzZ21sdGFnPmludDwvPiBlbGVtZW50LgpDaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhpcyBzZXQgd2hpY2ggYXJlIGRyYXduIGFzIGJsYW5rIHdpbGwgYmUgZWxpZGVkIGZyb20KdGhlIHNldCBvZiBjaGFyYWN0ZXJzIHN1cHBvcnRlZCBieSB0aGUgZm9udC4KICA8L3BhcmE+PC9yZWZzZWN0Mj4KICA8cmVmc2VjdDI+PHRpdGxlPjxzZ21sdGFnPnJlc2NhbjwvPjwvdGl0bGU+PHBhcmE+ClRoZSA8c2dtbHRhZz5yZXNjYW48Lz4gZWxlbWVudCBob2xkcyBhbiA8c2dtbHRhZz5pbnQ8Lz4gZWxlbWVudCB3aGljaCBpbmRpY2F0ZXMgdGhlIGRlZmF1bHQKaW50ZXJ2YWwgYmV0d2VlbiBhdXRvbWF0aWMgY2hlY2tzIGZvciBmb250IGNvbmZpZ3VyYXRpb24gY2hhbmdlcy4KRm9udGNvbmZpZyB3aWxsIHZhbGlkYXRlIGFsbCBvZiB0aGUgY29uZmlndXJhdGlvbiBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgYW5kCmF1dG9tYXRpY2FsbHkgcmVidWlsZCB0aGUgaW50ZXJuYWwgZGF0YXN0cnVjdHVyZXMgd2hlbiB0aGlzIGludGVydmFsIHBhc3Nlcy4KICA8L3BhcmE+PC9yZWZzZWN0Mj4KICA8cmVmc2VjdDI+PHRpdGxlPjxzZ21sdGFnPm1hdGNoIHRhcmdldD0icGF0dGVybiI8Lz48L3RpdGxlPjxwYXJhPgpUaGlzIGVsZW1lbnQgaG9sZHMgZmlyc3QgYSAocG9zc2libHkgZW1wdHkpIGxpc3Qgb2YgPHNnbWx0YWc+dGVzdDwvPiBlbGVtZW50cyBhbmQgdGhlbgphIChwb3NzaWJseSBlbXB0eSkgbGlzdCBvZiA8c2dtbHRhZz5lZGl0PC8+IGVsZW1lbnRzLiAgUGF0dGVybnMgd2hpY2ggbWF0Y2ggYWxsIG9mIHRoZQp0ZXN0cyBhcmUgc3ViamVjdGVkIHRvIGFsbCB0aGUgZWRpdHMuICBJZiAndGFyZ2V0JyBpcyBzZXQgdG8gImZvbnQiIGluc3RlYWQKb2YgdGhlIGRlZmF1bHQgInBhdHRlcm4iLCB0aGVuIHRoaXMgZWxlbWVudCBhcHBsaWVzIHRvIHRoZSBmb250IG5hbWUKcmVzdWx0aW5nIGZyb20gYSBtYXRjaCByYXRoZXIgdGhhbiBhIGZvbnQgcGF0dGVybiB0byBiZSBtYXRjaGVkLgogIDwvcGFyYT48L3JlZnNlY3QyPgogIDxyZWZzZWN0Mj48dGl0bGU+PHNnbWx0YWc+dGVzdCBxdWFsPSJhbnkiIG5hbWU9InByb3BlcnR5IiBjb21wYXJlPSJlcSI8Lz48L3RpdGxlPjxwYXJhPgpUaGlzIGVsZW1lbnQgY29udGFpbnMgYSBzaW5nbGUgdmFsdWUgd2hpY2ggaXMgY29tcGFyZWQgd2l0aCB0aGUgcGF0dGVybgpwcm9wZXJ0eSAicHJvcGVydHkiIChzdWJzdGl0dXRlIGFueSBvZiB0aGUgcHJvcGVydHkgbmFtZXMgc2VlbiAKYWJvdmUpLiAnY29tcGFyZScgY2FuIGJlIG9uZSBvZiAiZXEiLCAibm90X2VxIiwgImxlc3MiLCAibGVzc19lcSIsICJtb3JlIiwgb3IKIm1vcmVfZXEiLiAgJ3F1YWwnIG1heSBlaXRoZXIgYmUgdGhlIGRlZmF1bHQsICJhbnkiLCBpbiB3aGljaCBjYXNlIHRoZSBtYXRjaApzdWNjZWVkcyBpZiBhbnkgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm9wZXJ0eSBtYXRjaGVzIHRoZSB0ZXN0IHZhbHVlLCBvcgoiYWxsIiwgaW4gd2hpY2ggY2FzZSBhbGwgb2YgdGhlIHZhbHVlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHByb3BlcnR5IG11c3QKbWF0Y2ggdGhlIHRlc3QgdmFsdWUuCiAgPC9wYXJhPjwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPjx0aXRsZT48c2dtbHRhZz5lZGl0IG5hbWU9InByb3BlcnR5IiBtb2RlPSJhc3NpZ24iIGJpbmRpbmc9IndlYWsiPC8+PC90aXRsZT48cGFyYT4KVGhpcyBlbGVtZW50IGNvbnRhaW5zIGEgbGlzdCBvZiBleHByZXNzaW9uIGVsZW1lbnRzIChhbnkgb2YgdGhlIHZhbHVlIG9yCm9wZXJhdG9yIGVsZW1lbnRzKS4gIFRoZSBleHByZXNzaW9uIGVsZW1lbnRzIGFyZSBldmFsdWF0ZWQgYXQgcnVuLXRpbWUgYW5kCm1vZGlmeSB0aGUgcHJvcGVydHkgInByb3BlcnR5Ii4gIFRoZSBtb2RpZmljYXRpb24gZGVwZW5kcyBvbiB3aGV0aGVyCiJwcm9wZXJ0eSIgd2FzIG1hdGNoZWQgYnkgb25lIG9mIHRoZSBhc3NvY2lhdGVkIDxzZ21sdGFnPnRlc3Q8Lz4gZWxlbWVudHMsIGlmIHNvLCB0aGUKbW9kaWZpY2F0aW9uIG1heSBhZmZlY3QgdGhlIGZpcnN0IG1hdGNoZWQgdmFsdWUuICBBbnkgdmFsdWVzIGluc2VydGVkIGludG8KdGhlIHByb3BlcnR5IGFyZSBnaXZlbiB0aGUgaW5kaWNhdGVkIGJpbmRpbmcuICdtb2RlJyBpcyBvbmUgb2Y6CiAgICA8cHJvZ3JhbWxpc3Rpbmc+CiAgTW9kZSAgICAgICAgICAgICAgICAgICAgV2l0aCBNYXRjaCAgICAgICAgICAgICAgV2l0aG91dCBNYXRjaAogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICJhc3NpZ24iICAgICAgICAgICAgICAgIFJlcGxhY2UgbWF0Y2hpbmcgdmFsdWUgIFJlcGxhY2UgYWxsIHZhbHVlcwogICJhc3NpZ25fcmVwbGFjZSIgICAgICAgIFJlcGxhY2UgYWxsIHZhbHVlcyAgICAgIFJlcGxhY2UgYWxsIHZhbHVlcwogICJwcmVwZW5kIiAgICAgICAgICAgICAgIEluc2VydCBiZWZvcmUgbWF0Y2hpbmcgIEluc2VydCBhdCBoZWFkIG9mIGxpc3QKICAicHJlcGVuZF9maXJzdCIgICAgICAgICBJbnNlcnQgYXQgaGVhZCBvZiBsaXN0ICBJbnNlcnQgYXQgaGVhZCBvZiBsaXN0CiAgImFwcGVuZCIgICAgICAgICAgICAgICAgQXBwZW5kIGFmdGVyIG1hdGNoaW5nICAgQXBwZW5kIGF0IGVuZCBvZiBsaXN0CiAgImFwcGVuZF9sYXN0IiAgICAgICAgICAgQXBwZW5kIGF0IGVuZCBvZiBsaXN0ICAgQXBwZW5kIGF0IGVuZCBvZiBsaXN0CiAgICA8L3Byb2dyYW1saXN0aW5nPgogIDwvcGFyYT48L3JlZnNlY3QyPgogIDxyZWZzZWN0Mj48dGl0bGU+PHNnbWx0YWc+aW50PC8+LCA8c2dtbHRhZz5kb3VibGU8Lz4sIDxzZ21sdGFnPnN0cmluZzwvPiwgPHNnbWx0YWc+Ym9vbDwvPjwvdGl0bGU+PHBhcmE+ClRoZXNlIGVsZW1lbnRzIGhvbGQgYSBzaW5nbGUgdmFsdWUgb2YgdGhlIGluZGljYXRlZCB0eXBlLiAgPHNnbWx0YWc+Ym9vbDwvPgplbGVtZW50cyBob2xkIGVpdGhlciB0cnVlIG9yIGZhbHNlLiAgQW4gaW1wb3J0YW50IGxpbWl0YXRpb24gZXhpc3RzIGluCnRoZSBwYXJzaW5nIG9mIGZsb2F0aW5nIHBvaW50IG51bWJlcnMgLS0gZm9udGNvbmZpZyByZXF1aXJlcyB0aGF0CnRoZSBtYW50aXNzYSBzdGFydCB3aXRoIGEgZGlnaXQsIG5vdCBhIGRlY2ltYWwgcG9pbnQsIHNvIGluc2VydCBhIGxlYWRpbmcKemVybyBmb3IgcHVyZWx5IGZyYWN0aW9uYWwgdmFsdWVzIChlLmcuIHVzZSAwLjUgaW5zdGVhZCBvZiAuNSBhbmQgLTAuNQppbnN0ZWFkIG9mIC0uNSkuCiAgPC9wYXJhPjwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPjx0aXRsZT48c2dtbHRhZz5tYXRyaXg8Lz48L3RpdGxlPjxwYXJhPgpUaGlzIGVsZW1lbnQgaG9sZHMgdGhlIGZvdXIgPHNnbWx0YWc+ZG91YmxlPC8+IGVsZW1lbnRzIG9mIGFuIGFmZmluZQp0cmFuc2Zvcm1hdGlvbi4KICA8L3BhcmE+PC9yZWZzZWN0Mj4KICA8cmVmc2VjdDI+PHRpdGxlPjxzZ21sdGFnPm5hbWU8Lz48L3RpdGxlPjxwYXJhPgpIb2xkcyBhIHByb3BlcnR5IG5hbWUuICBFdmFsdWF0ZXMgdG8gdGhlIGZpcnN0IHZhbHVlIGZyb20gdGhlIHByb3BlcnR5IG9mCnRoZSBmb250LCBub3QgdGhlIHBhdHRlcm4uCiAgPC9wYXJhPjwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPjx0aXRsZT48c2dtbHRhZz5jb25zdDwvPjwvdGl0bGU+PHBhcmE+CkhvbGRzIHRoZSBuYW1lIG9mIGEgY29uc3RhbnQ7IHRoZXNlIGFyZSBhbHdheXMgaW50ZWdlcnMgYW5kIHNlcnZlIGFzCnN5bWJvbGljIG5hbWVzIGZvciBjb21tb24gZm9udCB2YWx1ZXM6CiAgICA8cHJvZ3JhbWxpc3Rpbmc+CiAgQ29uc3RhbnQgICAgICAgIFByb3BlcnR5ICAgICAgICBWYWx1ZQogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBsaWdodCAgICAgICAgICAgd2VpZ2h0ICAgICAgICAgIDAKICBtZWRpdW0gICAgICAgICAgd2VpZ2h0ICAgICAgICAgIDEwMAogIGRlbWlib2xkICAgICAgICB3ZWlnaHQgICAgICAgICAgMTgwCiAgYm9sZCAgICAgICAgICAgIHdlaWdodCAgICAgICAgICAyMDAKICBibGFjayAgICAgICAgICAgd2VpZ2h0ICAgICAgICAgIDIxMAogIHJvbWFuICAgICAgICAgICBzbGFudCAgICAgICAgICAgMAogIGl0YWxpYyAgICAgICAgICBzbGFudCAgICAgICAgICAgMTAwCiAgb2JsaXF1ZSAgICAgICAgIHNsYW50ICAgICAgICAgICAxMTAKICBwcm9wb3J0aW9uYWwgICAgc3BhY2luZyAgICAgICAgIDAKICBkdWFsICAgICAgICAgICAgc3BhY2luZyAgICAgICAgIDkwCiAgbW9ubyAgICAgICAgICAgIHNwYWNpbmcgICAgICAgICAxMDAKICBjaGFyY2VsbCAgICAgICAgc3BhY2luZyAgICAgICAgIDExMAogIHVua25vd24gICAgICAgICByZ2JhICAgICAgICAgICAgMAogIHJnYiAgICAgICAgICAgICByZ2JhICAgICAgICAgICAgMQogIGJnciAgICAgICAgICAgICByZ2JhICAgICAgICAgICAgMgogIHZyZ2IgICAgICAgICAgICByZ2JhICAgICAgICAgICAgMwogIHZiZ3IgICAgICAgICAgICByZ2JhICAgICAgICAgICAgNAogIG5vbmUgICAgICAgICAgICByZ2JhICAgICAgICAgICAgNQogICAgPC9wcm9ncmFtbGlzdGluZz4KICAgICAgPC9wYXJhPgogICAgPC9yZWZzZWN0Mj4KICA8cmVmc2VjdDI+CiAgICAgIDx0aXRsZT48c2dtbHRhZz5vcjwvPiwgPHNnbWx0YWc+YW5kPC8+LCA8c2dtbHRhZz5wbHVzPC8+LCA8c2dtbHRhZz5taW51czwvPiwgPHNnbWx0YWc+dGltZXM8Lz4sIDxzZ21sdGFnPmRpdmlkZTwvPjwvdGl0bGU+CiAgICAgIDxwYXJhPgpUaGVzZSBlbGVtZW50cyBwZXJmb3JtIHRoZSBzcGVjaWZpZWQgb3BlcmF0aW9uIG9uIGEgbGlzdCBvZiBleHByZXNzaW9uCmVsZW1lbnRzLiAgPHNnbWx0YWc+b3I8Lz4gYW5kIDxzZ21sdGFnPmFuZDwvPiBhcmUgYm9vbGVhbiwgbm90IGJpdHdpc2UuCiAgICAgIDwvcGFyYT4KICAgIDwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPgogICAgPHRpdGxlPjxzZ21sdGFnPmVxPC8+LCA8c2dtbHRhZz5ub3RfZXE8Lz4sIDxzZ21sdGFnPmxlc3M8Lz4sIDxzZ21sdGFnPmxlc3NfZXE8Lz4sIDxzZ21sdGFnPm1vcmU8Lz4sIDxzZ21sdGFnPm1vcmVfZXE8Lz48L3RpdGxlPgogICAgPHBhcmE+ClRoZXNlIGVsZW1lbnRzIGNvbXBhcmUgdHdvIHZhbHVlcywgcHJvZHVjaW5nIGEgYm9vbGVhbiByZXN1bHQuCiAgPC9wYXJhPjwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPjx0aXRsZT48c2dtbHRhZz5ub3Q8Lz48L3RpdGxlPjxwYXJhPgpJbnZlcnRzIHRoZSBib29sZWFuIHNlbnNlIG9mIGl0cyBvbmUgZXhwcmVzc2lvbiBlbGVtZW50CiAgPC9wYXJhPjwvcmVmc2VjdDI+CiAgPHJlZnNlY3QyPjx0aXRsZT48c2dtbHRhZz5pZjwvPjwvdGl0bGU+PHBhcmE+ClRoaXMgZWxlbWVudCB0YWtlcyB0aHJlZSBleHByZXNzaW9uIGVsZW1lbnRzOyBpZiB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IGlzCnRydWUsIGl0IHByb2R1Y2VzIHRoZSB2YWx1ZSBvZiB0aGUgc2Vjb25kLCBvdGhlcndpc2UgaXQgcHJvZHVjZXMgdGhlIHZhbHVlCm9mIHRoZSB0aGlyZC4KICA8L3BhcmE+PC9yZWZzZWN0Mj4KICA8cmVmc2VjdDI+PHRpdGxlPjxzZ21sdGFnPmFsaWFzPC8+PC90aXRsZT48cGFyYT4KQWxpYXMgZWxlbWVudHMgcHJvdmlkZSBhIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgdGhlIHNldCBvZiBjb21tb24gbWF0Y2gKb3BlcmF0aW9ucyBuZWVkZWQgdG8gc3Vic3RpdHV0ZSBvbmUgZm9udCBmYW1pbHkgZm9yIGFub3RoZXIuICBUaGV5IGNvbnRhaW4gYQo8c2dtbHRhZz5mYW1pbHk8Lz4gZWxlbWVudCBmb2xsb3dlZCBieSBvcHRpb25hbCA8c2dtbHRhZz5wcmVmZXI8Lz4sIDxzZ21sdGFnPmFjY2VwdDwvPiBhbmQgPHNnbWx0YWc+ZGVmYXVsdDwvPgplbGVtZW50cy4gIEZvbnRzIG1hdGNoaW5nIHRoZSA8c2dtbHRhZz5mYW1pbHk8Lz4gZWxlbWVudCBhcmUgZWRpdGVkIHRvIHByZXBlbmQgdGhlCmxpc3Qgb2YgPHNnbWx0YWc+cHJlZmVyPC8+ZWQgZmFtaWxpZXMgYmVmb3JlIHRoZSBtYXRjaGluZyA8c2dtbHRhZz5mYW1pbHk8Lz4sIGFwcGVuZCB0aGUKPHNnbWx0YWc+YWNjZXB0PC8+YWJsZSBmYW1pbHlzIGFmdGVyIHRoZSBtYXRjaGluZyA8c2dtbHRhZz5mYW1pbHk8Lz4gYW5kIGFwcGVuZCB0aGUgPHNnbWx0YWc+ZGVmYXVsdDwvPgpmYW1pbGllcyB0byB0aGUgZW5kIG9mIHRoZSBmYW1pbHkgbGlzdC4KICA8L3BhcmE+PC9yZWZzZWN0Mj4KICA8cmVmc2VjdDI+PHRpdGxlPjxzZ21sdGFnPmZhbWlseTwvPjwvdGl0bGU+PHBhcmE+CkhvbGRzIGEgc2luZ2xlIGZvbnQgZmFtaWx5IG5hbWUKICA8L3BhcmE+PC9yZWZzZWN0Mj4KICA8cmVmc2VjdDI+PHRpdGxlPjxzZ21sdGFnPnByZWZlcjwvPiwgPHNnbWx0YWc+YWNjZXB0PC8+LCA8c2dtbHRhZz5kZWZhdWx0PC8+PC90aXRsZT48cGFyYT4KVGhlc2UgaG9sZCBhIGxpc3Qgb2YgPHNnbWx0YWc+ZmFtaWx5PC8+IGVsZW1lbnRzIHRvIGJlIHVzZWQgYnkgdGhlIDxzZ21sdGFnPmFsaWFzPC8+IGVsZW1lbnQuCjxzZ21sdGFnPi9hcnRpY2xlPC8+CiAgPC9wYXJhPjwvcmVmc2VjdDI+CjwvcmVmc2VjdDE+CjxyZWZzZWN0MT48dGl0bGU+RVhBTVBMRSBDT05GSUdVUkFUSU9OIEZJTEU8L3RpdGxlPgogIDxyZWZzZWN0Mj48dGl0bGU+U3lzdGVtIGNvbmZpZ3VyYXRpb24gZmlsZTwvdGl0bGU+CiAgICA8cGFyYT4KVGhpcyBpcyBhbiBleGFtcGxlIG9mIGEgc3lzdGVtLXdpZGUgY29uZmlndXJhdGlvbiBmaWxlCiAgICA8L3BhcmE+CiAgICA8cHJvZ3JhbWxpc3Rpbmc+CiZsdDs/eG1sIHZlcnNpb249IjEuMCI/Jmd0OwombHQ7IURPQ1RZUEUgZm9udGNvbmZpZyBTWVNURU0gImZvbnRzLmR0ZCImZ3Q7CiZsdDshLS0gJmNvbmZkaXI7L2ZvbnRzLmNvbmYgZmlsZSB0byBjb25maWd1cmUgc3lzdGVtIGZvbnQgYWNjZXNzIC0tJmd0OwombHQ7Zm9udGNvbmZpZyZndDsKJmx0OyEtLSAKCUZpbmQgZm9udHMgaW4gdGhlc2UgZGlyZWN0b3JpZXMKLS0mZ3Q7CiZsdDtkaXImZ3Q7L3Vzci9YMTFSNi9saWIvWDExL2ZvbnRzL3RydWV0eXBlJmx0Oy9kaXImZ3Q7CiZsdDtkaXImZ3Q7L3Vzci9YMTFSNi9saWIvWDExL2ZvbnRzL1R5cGUxJmx0Oy9kaXImZ3Q7CgombHQ7IS0tCglBY2NlcHQgZGVwcmVjYXRlZCAnbW9ubycgYWxpYXMsIHJlcGxhY2luZyBpdCB3aXRoICdtb25vc3BhY2UnCi0tJmd0OwombHQ7bWF0Y2ggdGFyZ2V0PSJwYXR0ZXJuIiZndDsKCSZsdDt0ZXN0IHF1YWw9ImFueSIgbmFtZT0iZmFtaWx5IiZndDsmbHQ7c3RyaW5nJmd0O21vbm8mbHQ7L3N0cmluZyZndDsmbHQ7L3Rlc3QmZ3Q7CgkmbHQ7ZWRpdCBuYW1lPSJmYW1pbHkiIG1vZGU9ImFzc2lnbiImZ3Q7Jmx0O3N0cmluZyZndDttb25vc3BhY2UmbHQ7L3N0cmluZyZndDsmbHQ7L2VkaXQmZ3Q7CiZsdDsvbWF0Y2gmZ3Q7CgombHQ7IS0tCglOYW1lcyBub3QgaW5jbHVkaW5nIGFueSB3ZWxsIGtub3duIGFsaWFzIGFyZSBnaXZlbiAnc2FucycKLS0mZ3Q7CiZsdDttYXRjaCB0YXJnZXQ9InBhdHRlcm4iJmd0OwoJJmx0O3Rlc3QgcXVhbD0iYWxsIiBuYW1lPSJmYW1pbHkiIG1vZGU9Im5vdF9lcSImZ3Q7c2FucyZsdDsvdGVzdCZndDsKCSZsdDt0ZXN0IHF1YWw9ImFsbCIgbmFtZT0iZmFtaWx5IiBtb2RlPSJub3RfZXEiJmd0O3NlcmlmJmx0Oy90ZXN0Jmd0OwoJJmx0O3Rlc3QgcXVhbD0iYWxsIiBuYW1lPSJmYW1pbHkiIG1vZGU9Im5vdF9lcSImZ3Q7bW9ub3NwYWNlJmx0Oy90ZXN0Jmd0OwoJJmx0O2VkaXQgbmFtZT0iZmFtaWx5IiBtb2RlPSJhcHBlbmRfbGFzdCImZ3Q7Jmx0O3N0cmluZyZndDtzYW5zJmx0Oy9zdHJpbmcmZ3Q7Jmx0Oy9lZGl0Jmd0OwombHQ7L21hdGNoJmd0OwoKJmx0OyEtLQoJTG9hZCBwZXItdXNlciBjdXN0b21pemF0aW9uIGZpbGUsIGJ1dCBkb24ndCBjb21wbGFpbgoJaWYgaXQgZG9lc24ndCBleGlzdAotLSZndDsKJmx0O2luY2x1ZGUgaWdub3JlX21pc3Npbmc9InllcyImZ3Q7fi8uZm9udHMuY29uZiZsdDsvaW5jbHVkZSZndDsKCiZsdDshLS0KCUFsaWFzIHdlbGwga25vd24gZm9udCBuYW1lcyB0byBhdmFpbGFibGUgVHJ1ZVR5cGUgZm9udHMuCglUaGVzZSBzdWJzdGl0dXRlIFRydWVUeXBlIGZhY2VzIGZvciBzaW1pbGFyIFR5cGUxCglmYWNlcyB0byBpbXByb3ZlIHNjcmVlbiBhcHBlYXJhbmNlLgotLSZndDsKJmx0O2FsaWFzJmd0OwoJJmx0O2ZhbWlseSZndDtUaW1lcyZsdDsvZmFtaWx5Jmd0OwoJJmx0O3ByZWZlciZndDsmbHQ7ZmFtaWx5Jmd0O1RpbWVzIE5ldyBSb21hbiZsdDsvZmFtaWx5Jmd0OyZsdDsvcHJlZmVyJmd0OwoJJmx0O2RlZmF1bHQmZ3Q7Jmx0O2ZhbWlseSZndDtzZXJpZiZsdDsvZmFtaWx5Jmd0OyZsdDsvZGVmYXVsdCZndDsKJmx0Oy9hbGlhcyZndDsKJmx0O2FsaWFzJmd0OwoJJmx0O2ZhbWlseSZndDtIZWx2ZXRpY2EmbHQ7L2ZhbWlseSZndDsKCSZsdDtwcmVmZXImZ3Q7Jmx0O2ZhbWlseSZndDtWZXJkYW5hJmx0Oy9mYW1pbHkmZ3Q7Jmx0Oy9wcmVmZXImZ3Q7CgkmbHQ7ZGVmYXVsdCZndDsmbHQ7ZmFtaWx5Jmd0O3NhbnMmbHQ7L2ZhbWlseSZndDsmbHQ7L2RlZmF1bHQmZ3Q7CiZsdDsvYWxpYXMmZ3Q7CiZsdDthbGlhcyZndDsKCSZsdDtmYW1pbHkmZ3Q7Q291cmllciZsdDsvZmFtaWx5Jmd0OwoJJmx0O3ByZWZlciZndDsmbHQ7ZmFtaWx5Jmd0O0NvdXJpZXIgTmV3Jmx0Oy9mYW1pbHkmZ3Q7Jmx0Oy9wcmVmZXImZ3Q7CgkmbHQ7ZGVmYXVsdCZndDsmbHQ7ZmFtaWx5Jmd0O21vbm9zcGFjZSZsdDsvZmFtaWx5Jmd0OyZsdDsvZGVmYXVsdCZndDsKJmx0Oy9hbGlhcyZndDsKCiZsdDshLS0KCVByb3ZpZGUgcmVxdWlyZWQgYWxpYXNlcyBmb3Igc3RhbmRhcmQgbmFtZXMKCURvIHRoZXNlIGFmdGVyIHRoZSB1c2VycyBjb25maWd1cmF0aW9uIGZpbGUgc28gdGhhdAoJYW55IGFsaWFzZXMgdGhlcmUgYXJlIHVzZWQgcHJlZmVyZW50aWFsbHkKLS0mZ3Q7CiZsdDthbGlhcyZndDsKCSZsdDtmYW1pbHkmZ3Q7c2VyaWYmbHQ7L2ZhbWlseSZndDsKCSZsdDtwcmVmZXImZ3Q7Jmx0O2ZhbWlseSZndDtUaW1lcyBOZXcgUm9tYW4mbHQ7L2ZhbWlseSZndDsmbHQ7L3ByZWZlciZndDsKJmx0Oy9hbGlhcyZndDsKJmx0O2FsaWFzJmd0OwoJJmx0O2ZhbWlseSZndDtzYW5zJmx0Oy9mYW1pbHkmZ3Q7CgkmbHQ7cHJlZmVyJmd0OyZsdDtmYW1pbHkmZ3Q7VmVyZGFuYSZsdDsvZmFtaWx5Jmd0OyZsdDsvcHJlZmVyJmd0OwombHQ7L2FsaWFzJmd0OwombHQ7YWxpYXMmZ3Q7CgkmbHQ7ZmFtaWx5Jmd0O21vbm9zcGFjZSZsdDsvZmFtaWx5Jmd0OwoJJmx0O3ByZWZlciZndDsmbHQ7ZmFtaWx5Jmd0O0FuZGFsZSBNb25vJmx0Oy9mYW1pbHkmZ3Q7Jmx0Oy9wcmVmZXImZ3Q7CiZsdDsvYWxpYXMmZ3Q7CiZsdDsvZm9udGNvbmZpZyZndDsKICAgIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgPC9yZWZzZWN0Mj4KICA8cmVmc2VjdDI+PHRpdGxlPlVzZXIgY29uZmlndXJhdGlvbiBmaWxlPC90aXRsZT4KICAgIDxwYXJhPgpUaGlzIGlzIGFuIGV4YW1wbGUgb2YgYSBwZXItdXNlciBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCBsaXZlcyBpbgp+Ly5mb250cy5jb25mCiAgICA8L3BhcmE+CiAgICA8cHJvZ3JhbWxpc3Rpbmc+CiZsdDs/eG1sIHZlcnNpb249IjEuMCI/Jmd0OwombHQ7IURPQ1RZUEUgZm9udGNvbmZpZyBTWVNURU0gImZvbnRzLmR0ZCImZ3Q7CiZsdDshLS0gfi8uZm9udHMuY29uZiBmb3IgcGVyLXVzZXIgZm9udCBjb25maWd1cmF0aW9uIC0tJmd0OwombHQ7Zm9udGNvbmZpZyZndDsKCiZsdDshLS0KCVByaXZhdGUgZm9udCBkaXJlY3RvcnkKLS0mZ3Q7CiZsdDtkaXImZ3Q7fi9taXNjL2ZvbnRzJmx0Oy9kaXImZ3Q7CgombHQ7IS0tCgl1c2UgcmdiIHN1Yi1waXhlbCBvcmRlcmluZyB0byBpbXByb3ZlIGdseXBoIGFwcGVhcmFuY2Ugb24KCUxDRCBzY3JlZW5zLiAgQ2hhbmdlcyBhZmZlY3RpbmcgcmVuZGVyaW5nLCBidXQgbm90IG1hdGNoaW5nCglzaG91bGQgYWx3YXlzIHVzZSB0YXJnZXQ9ImZvbnQiLgotLSZndDsKJmx0O21hdGNoIHRhcmdldD0iZm9udCImZ3Q7CgkmbHQ7ZWRpdCBuYW1lPSJyZ2JhIiBtb2RlPSJhc3NpZ24iJmd0OyZsdDtjb25zdCZndDtyZ2ImbHQ7L2NvbnN0Jmd0OyZsdDsvZWRpdCZndDsKJmx0Oy9tYXRjaCZndDsKJmx0Oy9mb250Y29uZmlnJmd0OwogICAgPC9wcm9ncmFtbGlzdGluZz4KICA8L3JlZnNlY3QyPgo8L3JlZnNlY3QxPgo8cmVmc2VjdDE+PHRpdGxlPkZpbGVzPC90aXRsZT4KICA8cGFyYT4KPGVtcGhhc2lzPmZvbnRzLmNvbmY8L2VtcGhhc2lzPgpjb250YWlucyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGZvciB0aGUgZm9udGNvbmZpZyBsaWJyYXJ5CmNvbnNpc3Rpbmcgb2YgZGlyZWN0b3JpZXMgdG8gbG9vayBhdCBmb3IgZm9udCBpbmZvcm1hdGlvbiBhcyB3ZWxsIGFzCmluc3RydWN0aW9ucyBvbiBlZGl0aW5nIHByb2dyYW0gc3BlY2lmaWVkIGZvbnQgcGF0dGVybnMgYmVmb3JlIGF0dGVtcHRpbmcgdG8KbWF0Y2ggdGhlIGF2YWlsYWJsZSBmb250cy4gIEl0IGlzIGluIHhtbCBmb3JtYXQuCiAgPC9wYXJhPgogIDxwYXJhPgo8ZW1waGFzaXM+Zm9udHMuZHRkPC9lbXBoYXNpcz4KaXMgYSBEVEQgdGhhdCBkZXNjcmliZXMgdGhlIGZvcm1hdCBvZiB0aGUgY29uZmlndXJhdGlvbiBmaWxlcy4KICA8L3BhcmE+CiAgPHBhcmE+CjxlbXBoYXNpcz5+Ly5mb250cy5jb25mPC9lbXBoYXNpcz4KaXMgdGhlIGNvbnZlbnRpb25hbCBsb2NhdGlvbiBmb3IgcGVyLXVzZXIgZm9udCBjb25maWd1cmF0aW9uLCBhbHRob3VnaCB0aGUKYWN0dWFsIGxvY2F0aW9uIGlzIHNwZWNpZmllZCBpbiB0aGUgZ2xvYmFsIGZvbnRzLmNvbmYgZmlsZS4KICA8L3BhcmE+CiAgPHBhcmE+CjxlbXBoYXNpcz4gfi8uZm9udHMuY2FjaGUtKjwvZW1waGFzaXM+CmlzIHRoZSBjb252ZW50aW9uYWwgcmVwb3NpdG9yeSBvZiBmb250IGluZm9ybWF0aW9uIHRoYXQgaXNuJ3QgZm91bmQgaW4gdGhlCnBlci1kaXJlY3RvcnkgY2FjaGVzLiAgVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgbWFpbnRhaW5lZCBieSBmb250Y29uZmlnLgogIDwvcGFyYT4KPC9yZWZzZWN0MT4KPHJlZnNlY3QxPjx0aXRsZT5WZXJzaW9uPC90aXRsZT4KCSAgICA8cGFyYT4KRm9udGNvbmZpZyB2ZXJzaW9uICZ2ZXJzaW9uOwoJICAgIDwvcGFyYT4KPC9yZWZzZWN0MT4KPC9yZWZlbnRyeT4K