PD9waHAgIAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL2FwcC5jbGFzcy5waHAiKTsJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbmF2LmNsYXNzLnBocCIpOyAJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbWVudS5jbGFzcy5waHAiKTsgCSRBcHAgCT0gbmV3IEFwcCgpOwkkTmF2CT0gbmV3IE5hdigpOwkkTWVudSAJPSBuZXcgTWVudSgpOwkJaW5jbHVkZSgkQXBwLT5nZXRQcm9qZWN0Q29tbW9uKCkpOyAgICAjIEFsbCBvbiB0aGUgc2FtZSBsaW5lIHRvIHVuY2x1dHRlciB0aGUgdXNlcidzIGRlc2t0b3AnCgokcGFnZVRpdGxlIAkJPSAiIjsKJHBhZ2VLZXl3b3Jkcwk9ICIiOwokcGFnZUF1dGhvcgkJPSAiIjsKCm9iX3N0YXJ0KCk7Cj8+CiAgICA8ZGl2IGlkPSJtYWluY29udGVudCI+Cgk8ZGl2IGlkPSJtaWRjb2x1bW4iPgoKPGgxPkJ1Y2ttaW5zdGVyLCBDb21wb25lbnQKICBBc3NlbWJseSBQcm9qZWN0PC9oMT4KCjxoMj4KSW50cm9kdWN0aW9uPC9oMj4KCjw/cGhwCmluY2x1ZGVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9wcm9qZWN0cy9mcmFnbWVudHMvcHJvcG9zYWwtcGFnZS1oZWFkZXIucGhwIik7CmdlbmVyYXRlX2hlYWRlcigiQnVja21pbnN0ZXIgQ29tcG9uZW50IEFzc2VtYmx5Iik7Cj8+Cgo8cD5UaGUgQnVja21pbnN0ZXIsIENvbXBvbmVudCBBc3NlbWJseSBQcm9qZWN0IGlzIGEgcHJvcG9zZWQgb3BlbiBzb3VyY2UgcHJvamVjdCB1bmRlciB0aGUgPGEgaHJlZj0KIi90ZWNobm9sb2d5LyI+RWNsaXBzZSBUZWNobm9sb2d5IFByb2plY3Q8L2E+LjwvcD4KCjxwPlRoaXMgcHJvcG9zYWwgaXMgaW4gdGhlIFByb2plY3QgUHJvcG9zYWwgUGhhc2UgKGFzIGRlZmluZWQgaW4KdGhlIDxhIGhyZWY9Ii9wcm9qZWN0cy9kZXZfcHJvY2Vzcy8iPgpFY2xpcHNlIERldmVsb3BtZW50IFByb2Nlc3M8L2E+IGRvY3VtZW50KSBhbmQgaXMgd3JpdHRlbiB0byBkZWNsYXJlIGl0cyBpbnRlbnQgYW5kIHNjb3BlLiBUaGlzIHByb3Bvc2FsIGlzIHdyaXR0ZW4gdG8gc29saWNpdCBhZGRpdGlvbmFsIHBhcnRpY2lwYXRpb24gYW5kIGlucHV0IGZyb20gdGhlIEVjbGlwc2UgY29tbXVuaXR5LiBZb3UgYXJlIGludml0ZWQgdG8gY29tbWVudCBvbiBhbmQvb3Igam9pbiB0aGUgcHJvamVjdC4gUGxlYXNlIHNlbmQgYWxsIGZlZWRiYWNrIHRvIHRoZQo8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL25ld3Nwb3J0YWwvdGhyZWFkLnBocD9ncm91cD1lY2xpcHNlLnRlY2hub2xvZ3kuYnVja21pbnN0ZXIiPmVjbGlwc2UudGVjaG5vbG9neS5idWNrbWluc3RlcjwvYT4gbmV3c2dyb3VwLjwvcD4KCjxoMj4KT3ZlcnZpZXc8L2gyPgoKRGV2ZWxvcGVycyBhcmUgaW5jcmVhc2luZ2x5IHdvcmtpbmcgd2l0aCBjb21wbGV4IGNvbXBvbmVudCBzdHJ1Y3R1cmVzIGNvbXByaXNpbmcKY29kZSBhcnRpZmFjdHMgZnJvbSBhIHZhcmlldHkgb2Ygc291cmNlcyBpbXBsZW1lbnRlZCBpbiBkaXNwYXJhdGUgdGVjaG5vbG9naWVzLgpUaGUgRWNsaXBzZSBQbHVnLUluIERldmVsb3BtZW50IEVudmlyb25tZW50IChQREUpIGN1cnJlbnRseSBwcm92aWRlcyBhbgpvdXRzdGFuZGluZyBmcmFtZXdvcmsgZm9yIGRldmVsb3BpbmcgY29tcG9uZW50aXplZCBwbHVnLWlucyBhbmQgZmVhdHVyZS1zZXRzLgpIb3dldmVyLCBFY2xpcHNlIHByb3ZpZGVzIG9ubHkgbGltaXRlZCBzdXBwb3J0IGZvciBtYXRlcmlhbGl6aW5nIGEgd29ya3NwYWNll2kuZS4Kc28gdGhhdCBhbGwgY29tcG9uZW50IGRlcGVuZGVuY2llcyBhcmUgZnVsZmlsbGVkl2EgcHJvYmxlbSB3aGljaCBpcwpwYXJ0aWN1bGFybHkgYWN1dGUgaW4gdGVhbS1iYXNlZCBkZXZlbG9wbWVudC4gTW9yZW92ZXIsIHRoZSBQREWScyBjb21wb25lbnQKbWFuYWdlbWVudCBzdXBwb3J0IGlzIGF2YWlsYWJsZSBvbmx5IHRvIGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYXMgRWNsaXBzZQpwbHVnLWlucywgd2hpY2ggbGltaXRzIGl0cyBhcHBsaWNhYmlsaXR5IHRvIG90aGVyIHR5cGVzIG9mIGRldmVsb3BtZW50IHByb2plY3RzLgo8cD5UaGUgb2JqZWN0aXZlIG9mIHRoZSBCdWNrbWluc3RlciwgQ29tcG9uZW50IEFzc2VtYmx5IFByb2plY3Qgd2lsbCBiZSB0byBsZXZlcmFnZSBhbmQgZXh0ZW5kIHRoZQpFY2xpcHNlIHBsYXRmb3JtIHRvIGJyaW5nIG1peGVkLWNvbXBvbmVudCBkZXZlbG9wbWVudCBjb21wYXJhYmxlIHRvIEVjbGlwc2UKcGx1Zy1pbiBkZXZlbG9wbWVudCBpbiB0ZXJtcyBvZiBlZmZpY2llbmN5IGFuZCBlYXNlIG9mIHVzZSwgYXMgd2VsbCBhcyB0byBleHRlbmQKdGhlIEVjbGlwc2UgY29tcG9uZW50IGRlcGVuZGVuY3kgbW9kZWwgdG8gYWxsb3cgY29tcG9uZW50IG1hdGVyaWFsaXphdGlvbiBiYXNlZApvbiBtYXRjaCBydWxlcy4gQnVja21pbnN0ZXIgd2lsbCBhY2NvbXBsaXNoIHRoaXMgb2JqZWN0aXZlIGJ5IGludHJvZHVjaW5nIGEKcHJvamVjdC1hZ25vc3RpYyB3YXkgb2YgZGVzY3JpYmluZyB0aGUgY29tcG9uZW50IHN0cnVjdHVyZSBhbmQgZGVwZW5kZW5jaWVzIG9mCmFuIGFyYml0cmFyaWx5IGNvbXBsZXggZGV2ZWxvcG1lbnQgcHJvamVjdCwgcGx1cyBhIG1lY2hhbmlzbSBmb3IgbWF0ZXJpYWxpemluZwphbGwgY29ycmVzcG9uZGluZyBzb3VyY2UgYW5kIGJpbmFyeSBhcnRpZmFjdHMuPC9wPgo8cD5CdWNrbWluc3RlciB3aWxsIGJlIGltcGxlbWVudGVkIGFzIGEgc2V0IG9mIEVjbGlwc2UgcGx1Zy1pbnMgdGhhdCBjb21wbGVtZW50CmV4aXN0aW5nIEVjbGlwc2UgaW5mcmFzdHJ1Y3R1cmUuIEZ1bmN0aW9uYWxpdHkgd2l0aGluIHRoZSBwcm9qZWN0knMgaW5pdGlhbApmdW5jdGlvbmFsIHNjb3BlIHdpbGwgaW5jbHVkZSB0aGUgZm9sbG93aW5nOjwvcD4KPHVsPgogIDxsaT48Yj5Db21wbGV4IGRlcGVuZGVuY3kgcmVzb2x1dGlvbjwvYj4sIHByb3ZpZGluZyByZWN1cnNpdmUgcmVzb2x1dGlvbiBvZgogICAgZGVwZW5kZW5jaWVzIGxldmVyYWdpbmcgZXhpc3RpbmcgRWNsaXBzZSAmcXVvdDtUZWFtIFByb3ZpZGVycywmcXVvdDsgd2l0aAogICAgdGhlIGFkZGl0aW9uIG9mIG5ldyByZXRyaWV2ZXJzLCBmb3IgZXhlbXBsYXJ5IHB1cnBvc2VzLCBjb3ZlcmluZyBzb3VyY2UgYW5kCiAgICBiaW5hcnkgYXJ0aWZhY3RzIHRoYXQgYXJlIG5vdCB2ZXJzaW9uLWNvbnRyb2xsZWQgaW4gYSB0cmFkaXRpb25hbCBzZW5zZS4KICAgIFJlc29sdXRpb24gd2lsbCB1c2UgYSB2YXJpZXR5IG9mIHZlcnNpb25pbmcgc2NoZW1lcyBhbmQgd2lsbCBiZSBiYXNlZCBvbgogICAgbWF0Y2ggcnVsZXMgc2ltaWxhciB0byB0aG9zZSBmb3VuZCBpbiB0aGUgRWNsaXBzZSBwbHVnLWluIGZyYW1ld29yay4gVGhpcwogICAgd2lsbCBhbGxvdyBjb21wYXJpc29uIG9mIGN1cnJlbnQgYW5kIHByaW9yIGRlcGVuZGVuY3kgcmVzb2x1dGlvbnMgdG8gc3VwcG9ydAogICAgdXBkYXRlIGltcGFjdCBhbmFseXNlcy4gPC9saT4KICA8bGk+PGI+VW5pZm9ybSBjb21wb25lbnQgZGVwZW5kZW5jeSBmb3JtYXQ8L2I+LCB1c2luZyBhIGNvbXBvbmVudC10eXBlCiAgICBhZ25vc3RpYyBtZWNoYW5pc20gZm9yIGRlc2NyaWJpbmcgY29tcG9uZW50cyBhbmQgdGhlaXIgcmVzcGVjdGl2ZSB0YXJnZXRzCiAgICBhbmQgZGVwZW5kZW5jeSByZXF1aXJlbWVudHMuIE1vc3QgRWNsaXBzZSBwcm9qZWN0cywgYW5kIG1hbnkgb3RoZXIgY29tcG9uZW50CiAgICB0eXBlcywgaGF2ZSBzb21lIGxldmVsIG9mIGRlcGVuZGVuY3kgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgbGV2ZXJhZ2VkLgogICAgRXh0ZW5zaW9ucyBjYW4gYmUgYWRkZWQgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIHN0cmF0ZWdpZXMgZm9yIGRlcGVuZGVuY3kKICAgIHBhdHRlcm4gcmVjb2duaXRpb24uIDwvbGk+CiAgPGxpPjxiPkludGVsbGlnZW50IHJldHJpZXZhbCBtZWNoYW5pc21zPC9iPiwgbGV2ZXJhZ2luZyB0aGUgRWNsaXBzZSAmcXVvdDtUZWFtCiAgICBQcm9qZWN0IFNldCZxdW90OyBtZWNoYW5pc20gYnkgc2VwYXJhdGluZyB0aGUgYmlsbCBvZiBtYXRlcmlhbCBuZWVkZWQgZm9yIGEKICAgIGdpdmVuIGNvbmZpZ3VyYXRpb24gZnJvbSBpdHMgYWN0dWFsIG1hdGVyaWFsaXphdGlvbi4gVGhpcyBpcyBpbXBvcnRhbnQgc2luY2UKICAgIGRlcGVuZGVuY2llcyBtYXkgYXBwb2ludCBzb2Z0d2FyZSB0aGF0IGlzIGxvY2FsbHkgaW5zdGFsbGVkIG9uIG9uZSBtYWNoaW5lCiAgICBidXQgbGFja2luZyBvbiBhbm90aGVyLiBUaGUgYmlsbCBvZiBtYXRlcmlhbHMgaXMgdHlwaWNhbGx5IHNoYXJlZCBiZXR3ZWVuCiAgICB0ZWFtIG1lbWJlcnMsIGFsdGhvdWdoIHRoZSBtYXRlcmlhbGl6YXRpb24gaW5mb3JtYXRpb24gbWF5IHZhcnkuPC9saT4KICA8bGk+PGI+RmxleGlibGUgcHJvamVjdCB3b3Jrc3BhY2UgYmluZGluZzwvYj4sIGFsbG93aW5nIGNvbXBvbmVudHMKICAgIG1hdGVyaWFsaXplZCBvbiBkaXNjIHRvIGJlIGJvdW5kIHRvIGEgd29ya3NwYWNlIGluIGRpZmZlcmVudCB3YXlzLCBpbmNsdWRpbmcKICAgICZxdW90O1Byb3h5IFByb2plY3RzJnF1b3Q7IGNvbnNpc3Rpbmcgb2YgbGlua3MgdG8gcGh5c2ljYWwgYXJ0aWZhY3RzIGFuZAogICAgYXV0by1nZW5lcmF0ZWQgRWNsaXBzZSBwcm9qZWN0IGluZm9ybWF0aW9uLiBUaGVzZSBjYXBhYmlsaXRpZXMgYXJlIGhlbHBmdWwKICAgIHdoZW4gc2hhcmluZyBjb2RlIG9yIG90aGVyIGFydGlmYWN0cyB0aGF0IGFyZSBub3QgZWNsaXBzZSBwcm9qZWN0cy48L2xpPgo8L3VsPgo8cD5UaGUgQnVja21pbnN0ZXIgUHJvamVjdJJzIGluaXRpYWwgc2NvcGUgd2lsbCBmb2N1cyBwcmltYXJpbHkgb24KbWF0ZXJpYWxpemF0aW9uIG9mIGNvbXBvbmVudHMgYmFzZWQgb24gZGVwZW5kZW5jaWVzIGFuZCBydWxlcywgYWx0aG91Z2ggdGhpcwpzY29wZSBtYXkgYmUgZXhwYW5kZWQgb3ZlciB0aW1lLCB0byB0aGUgZXh0ZW50IGFwcHJvcHJpYXRlIGFuZCBjb25zaXN0ZW50IHdpdGgKaXRzIG9iamVjdGl2ZXMuIE9uZSBvZiBhIG51bWJlciBvZiByZXF1aXJlbWVudHMgdGhhdCBtYXkgYmUgYWRkcmVzc2VkIGluIHRoZQpmdXR1cmUgaXMgdGlnaHRlciBpbnRlZ3JhdGlvbiB3aXRoIEVjbGlwc2UgYnVpbGQgc3lzdGVtcy4gRm9yIGV4YW1wbGUsIHRoaXMKd291bGQgYWxsb3cgZnVsZmlsbG1lbnQgb2YgcHJlLWJ1aWx0IGFydGlmYWN0cyBieSBhY3R1YWxseSBidWlsZGluZyBzb3VyY2UKYXJ0aWZhY3RzIGFuZCB0aGVuIGNhY2hpbmcgdGhlIHJlc3VsdHMgZm9yIGdyb3VwIGFjY2Vzcy4KCgoKCgoKCgo8aDI+UHJvamVjdAogIE9yZ2FuaXphdGlvbjwvaDI+CgoKCgpXZSBwcm9wb3NlIHRoYXQgdGhpcyBwcm9qZWN0IGJlIHVuZGVydGFrZW4gYXMgYSBUZWNobm9sb2d5IHN1YnByb2plY3QgcmF0aGVyCnRoYW4gcGFydCBvZiB0aGUgRWNsaXBzZSBQbGF0Zm9ybSBQcm9qZWN0LiBCZWluZyBhIFRlY2hub2xvZ3kgc3VicHJvamVjdCBnaXZlcwp0aGUgcHJvamVjdCByb29tIHRvIGV4cGVyaW1lbnQgd2l0aCB0aGUgdGVjaG5vbG9neSB3aXRob3V0IGRpc3J1cHRpb24gdG8gdGhlCm1haW5saW5lIEVjbGlwc2UgZGV2ZWxvcGVycyBhbmQgdXNlcnMuCjxwPlRoZSBCdWNrbWluc3RlciBQcm9qZWN0IHdpbGwgYXNzaXN0IGluIHRoZSB3b3JraW5nIHdpdGggY29tcGxleCwKbXVsdGktc291cmNlZCBjb21wb25lbnQgc3RydWN0dXJlcywgd2hpY2ggaXMgb2YgaW5jcmVhc2luZyBpbnRlcmVzdCB0byBvcGVuCnNvdXJjZSBjb25zb3J0aWEsIGNvbW1lcmNpYWwgdmVuZG9ycyBhbmQgaW50ZXJuYWwgdXNlcnMgYW5kIGRldmVsb3BlcnMgb2Ygb3Blbgpzb3VyY2UgcGFja2FnZXMgYW5kIGRpc3RyaWJ1dGlvbnMuIEFjY29yZGluZ2x5LCBpdCB3aWxsIGJlIHZpdGFsbHkgaW1wb3J0YW50IHRvCmluY2x1ZGUgaW4gdGhpcyBwcm9qZWN0IGluZGl2aWR1YWxzIHdobyBhcmUgYWN0aXZlIHBhcnRpY2lwYW50cyBpbiBvciBjb25zdW1lcnMKb2Ygb3RoZXIgb3BlbiBzb3VyY2UgcHJvamVjdHMgYW5kIGNhbiB0aGVyZWZvcmUgcmVwcmVzZW50IGEgcmFuZ2Ugb2YgZXhwZXJpZW5jZXMKYW5kIHJlcXVpcmVtZW50cy48L3A+CjxwPkl0IHdpbGwgYWxzbyBiZSBpbXBvcnRhbnQgdG8gcmV0YWluIGFzIG11Y2ggY29udGludWl0eSBhcyBwb3NzaWJsZSB3aXRoIHRoZQpleGlzdGluZyBFY2xpcHNlIFBsYXRmb3JtOyB0aGVyZWZvcmUsIHdlIHdpbGwgcmVhY2ggb3V0IHRvIGV4aXN0aW5nIFBsYXRmb3JtCmNvbW1pdHRlcnMgZm9yIGFkdmljZSBhbmQgZm9yIGluY2x1c2lvbiBpbiB0aGlzIHByb2plY3QuPC9wPgo8cD5GaW5hbGx5LCBzaW5jZSBUZWNobm9sb2d5IFN1Yi1wcm9qZWN0cyBhcmUgbm90IG1lYW50IHRvIGJlIG9uZ29pbmcsIHdlCmZvcmVzZWUgdGhyZWUgcG9zc2libGUgZXZvbHV0aW9uYXJ5IHBhdGhzIGZvciB0aGUgc3VicHJvamVjdDo8L3A+CjxvbD4KICA8bGk+VGhlIHByb2plY3QgaXMgbWVyZ2VkIGJhY2sgaW50byB0aGUgbWFpbmxpbmUgRWNsaXBzZSBQbGF0Zm9ybSB0b3AtbGV2ZWwKICAgIHByb2plY3QuPC9saT4KICA8bGk+VGhlIHByb2plY3QgaXMgbW92ZWQgdG8gYSBwZXJtYW5lbnQgc3RhdGUgYXMgYSBUb29scyBQbGF0Zm9ybSBwcm9qZWN0LiA8L2xpPgogIDxsaT5UaGUgdGVjaG5vbG9neSBwcm92ZXMgdG8gYmUgaW5zdWZmaWNpZW50IGZvciBFY2xpcHNlIGFuZCB0aGUgd29yayBpcyBzZXQKICAgIGFzaWRlLiA8L2xpPgo8L29sPgo8cD5UaGVzZSBwYXRocyBhcmUgbm90IG11dHVhbGx5IGV4Y2x1c2l2ZS4gU29tZSBjb21iaW5hdGlvbiBvZiBzb21lIG9yIGFsbCBvZgp0aGVzZSBwYXRocyBtYXkgYmUgdGhlIHJlc3VsdCBvZiB0aGUgd29yayBkb25lIGluIHRoaXMgcHJvamVjdC4KCgoKCgoKCgo8aDI+CkludGVyZXN0ZWQgUGFydGllczwvaDI+CgoKCgpUaGlzIHNlY3Rpb24gY2FwdHVyZXMgdGhlIGxpc3Qgb2YgY29tcGFuaWVzIHRoYXQgaGF2ZSBleHByZXNzZWQgaW50ZXJlc3QgaW4gdGhlCnByb2plY3QgYW5kL29yIGl0cyBjb21wb25lbnRzLCBhbmQgYXMgc3VjaCB3aWxsIGJlIHVwZGF0ZWQgcGVyaW9kaWNhbGx5IHRvCnJlZmxlY3QgdGhlIGdyb3dpbmcgaW50ZXJlc3QgaW4gdGhpcyBwcm9qZWN0Lgo8cD5UaGUgQnVja21pbnN0ZXIgUHJvamVjdCBpcyBiZWluZyBwcm9wb3NlZCBieSBPYmplY3RXZWIgaW4gYXNzb2NpYXRpb24gd2l0aAppdHMgaW5kaXZpZHVhbCBtZW1iZXJzIGxpc3RlZCBiZWxvdy4gV2UgYW50aWNpcGF0ZSBhZGRpbmcgbWVtYmVycyB0byB0aGUKQnVja21pbnN0ZXIgUHJvamVjdCB0ZWFtIGluIGNvbmp1bmN0aW9uIHdpdGggYXBwcm92YWwgYW5kIGxhdW5jaCBvZiB0aGUgcHJvamVjdC48L3A+Cjx1bD4KICA8bGk+SW5kaXZpZHVhbHMgZnJvbSBhIHZhcmlldHkgb2YgY29tbWVyY2lhbCBzb2Z0d2FyZSB2ZW5kb3JzIGFuZCBlbmQtdXNlcgogICAgb3JnYW5pemF0aW9ucywgaW5jbHVkaW5nIG9yZ2FuaXphdGlvbnMgdGhhdCBhcmUgbWVtYmVycyBvZiBPYmplY3RXZWIsIGhhdmUKICAgIGV4cHJlc3NlZCBhbiBpbnRlcmVzdCBpbiBwYXJ0aWNpcGF0aW5nIGluIHRoZSBwcm9qZWN0LjwvbGk+CiAgPGxpPkFkZGl0aW9uYWwgcGFydGljaXBhbnRzIGZyb20gdGhlIEVjbGlwc2UgY29tbXVuaXR5IGF0IGxhcmdlIGFyZSBhbHNvCiAgICBpbnZpdGVkIHRvIHBhcnRpY2lwYXRlLiA8L2xpPgo8L3VsPgo8cD48Yj5TcG9uc29yaW5nIE9yZ2FuaXphdGlvbjwvYj48L3A+Cjx1bD4KICA8bGk+T2JqZWN0V2ViPC9saT4KPC91bD4KPHA+PGI+SW5pdGlhbCBDb21taXR0ZXJzPC9iPjwvcD4KPHVsPgogIDxsaT5NaXRjaCBTb25pZXM8L2xpPgogIDxsaT5UaG9tYXMgSGFsbGdyZW48L2xpPgogIDxsaT5LZW5uZXRoIE9sd2luZzwvbGk+CiAgPGxpPlBvbnR1cyBSeWRpbjwvbGk+CjwvdWw+CgoKCgo8L2Rpdj4KPC9kaXY+Cjw/cGhwCgkjIFBhc3RlIHlvdXIgSFRNTCBjb250ZW50IGJldHdlZW4gdGhlIEVPSFRNTCBtYXJrZXJzIQkKCSRodG1sID0gb2JfZ2V0X2NvbnRlbnRzKCk7CglvYl9lbmRfY2xlYW4oKTsKCgkjIEdlbmVyYXRlIHRoZSB3ZWIgcGFnZQoJJEFwcC0+Z2VuZXJhdGVQYWdlKCR0aGVtZSwgJE1lbnUsICROYXYsICRwYWdlQXV0aG9yLCAkcGFnZUtleXdvcmRzLCAkcGFnZVRpdGxlLCAkaHRtbCk7Cj8+Cgo=