PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+CjxodG1sPgo8aGVhZD4KPHRpdGxlPk5ldEJlYW5zIEMvQysrIERldmVsb3BtZW50IFBhY2sgNS41LjEgdXBkYXRlIDEgUmVsZWFzZSBOb3RlczwvdGl0bGU+CjxtZXRhIG5hbWU9IkRFU0NSSVBUSU9OIiBjb250ZW50PSJSZWxlYXNlIG5vdGVzIGZvciB0aGUgTmV0QmVhbnMgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayA1LjUiPgogPC9oZWFkPgogPGJvZHk+CiA8IS0tIEJlZ2luIENvbnRlbnQgQXJlYSAtLT4KPGEgbmFtZT0idG9wIj48L2E+CjxoMT5OZXRCZWFucyYjODQ4MjsgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayA1LjUuMSB1cGRhdGUgMSBSZWxlYXNlIE5vdGVzPC9oMT4KPHA+V2VsY29tZSB0byBOZXRCZWFucyBDL0MrKyBEZXZlbG9wbWVudCBQYWNrLjwvcD4KCjxwPk5ldEJlYW5zJiM4NDgyOyBDL0MrKyBEZXZlbG9wbWVudCBQYWNrIDUuNS4xIHVwZGF0ZSAxIGxldHMgeW91IGRldmVsb3AgQy9DKysgCmFwcGxpY2F0aW9ucyBmb3IgdGhlIE1pY3Jvc29mdCBXaW5kb3dzLCBMaW51eCwgCmFuZCBTb2xhcmlzIE9wZXJhdGluZyBTeXN0ZW1zIHdpdGggdGhlIE5ldEJlYW5zIElERS4KPC9wPgo8cD4KTmV0QmVhbnMgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayA1LjUuMSB1cGRhdGUgMSBpcyBjb21wYXRpYmxlIHdpdGggdGhlIE5ldEJlYW5zIElERQo1LjUuMSBhbmQgTmV0QmVhbnMgSURFIDUuNS4KPC9wPgo8cD48Yj5Db250ZW50czwvYj48L3A+Cjx1bD4KCjxsaT48YSBocmVmPSIjc3lzdGVtX3JlcXVpcmVtZW50cyI+U3lzdGVtIFJlcXVpcmVtZW50czwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI2NvbmZpZ3VyYXRpb24iPkNvbmZpZ3VyYXRpb24gSW5mb3JtYXRpb248L2E+PC9saT4KPGxpPjxhIGhyZWY9IiNrbm93bl9pc3N1ZXMiPktub3duIElzc3VlczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI2RvY3VtZW50YXRpb24iPkRvY3VtZW50YXRpb248L2E+PC9saT4KPC91bD4KPGJsb2NrcXVvdGU+CjxwPjxiPk5vdGU6IDwvYj5JZiB5b3UgYXJlIGxvb2tpbmcgZm9yIGluZm9ybWF0aW9uIGFib3V0IGluc3RhbGxpbmcgdGhlIApzb2Z0d2FyZSwgc2VlIHRoZSA8YSBocmVmPSJjbmQtaW5zdGFsbC5odG1sIj5OZXRCZWFucyBDL0MrKyBEZXZlbG9wbWVudCBQYWNrCjUuNS4xIHVwZGF0ZSAxIEluc3RhbGxhdGlvbiAKYW5kIFNldHVwIEluc3RydWN0aW9uczwvYT4uPC9wPgoKPC9ibG9ja3F1b3RlPgo8aDI+PGEgbmFtZT0ic3lzdGVtX3JlcXVpcmVtZW50cyI+U3lzdGVtIFJlcXVpcmVtZW50czwvYT48L2gyPgo8YmxvY2txdW90ZT4KPCEtLTxhIG5hbWU9InJlcV9vcyI+PC9hPi0tPgo8aDUgc3R5bGU9ImJvcmRlci1ib3R0b206IDBwdCBub25lOyI+U3VwcG9ydGVkIE9wZXJhdGluZyBTeXN0ZW1zPC9oNT4KPHA+TmV0QmVhbnMgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayA1LjUuMSB1cGRhdGUgMSBydW5zIG9uIG9wZXJhdGluZyBzeXN0ZW1zIHRoYXQgCnN1cHBvcnQgdGhlIEphdmEgVk0uIApOZXRCZWFucyBDL0MrKyBEZXZlbG9wbWVudCBQYWNrIDUuNS4xIHVwZGF0ZSAxIGhhcyBiZWVuIAp0ZXN0ZWQgb24gdGhlIGZvbGxvd2luZwpvcGVyYXRpbmcgc3lzdGVtczoKPHVsPgo8bGk+TWljcm9zb2Z0IFdpbmRvd3MgWFAgUHJvZmVzc2lvbmFsIFNQMjwvbGk+CjxsaT5SZWQgSGF0IEZlZG9yYSBDb3JlIDM8L2xpPgo8bGk+U29sYXJpcyYjODQ4MjsgMTAgT3BlcmF0aW5nIFN5c3RlbSAoU29sYXJpcyBPUykgKFNQQVJDriBhbmQgeDg2L3g2NCAKUGxhdGZvcm0gRWRpdGlvbik8L2xpPgo8bGk+TWFjIE9TIFggVmVyc2lvbiAxMC40IGFuZCBsYXRlcjwvbGk+CjwvdWw+CjwvcD4KPHA+TmV0QmVhbnMgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayBhbHNvIHJ1bnMgb24gdGhlIGZvbGxvd2luZyBwbGF0Zm9ybXM6Cjx1bD4KPGxpPk1pY3Jvc29mdCBXaW5kb3dzIDIwMDAgUHJvZmVzc2lvbmFsIFNQNDwvbGk+Cgo8bGk+U29sYXJpcyYjODQ4MjsgOCBPUyAoU1BBUkMmIzE3NCBhbmQgeDg2L3g2NCBQbGF0Zm9ybSBFZGl0aW9uKSBhbmQgU29sYXJpcyYjODQ4MjsgOSBPUyAoU1BBUkMmIzE3NCBhbmQgeDg2L3g2NCBQbGF0Zm9ybSBFZGl0aW9uKTwvbGk+CjxsaT5WYXJpb3VzIG90aGVyIExpbnV4IGRpc3RyaWJ1dGlvbnM8L2xpPgo8L3VsPgogPC9wPgoKPGEgbmFtZT0ibWluX2h3Ij48L2E+CjxoNSBzdHlsZT0iYm9yZGVyLWJvdHRvbTogMHB0IG5vbmU7Ij5NaW5pbXVtIEhhcmR3YXJlIENvbmZpZ3VyYXRpb248L2g1Pgo8YnI+Cgo8ZGl2IGNsYXNzPSJncmV5Ym94Ij4KPHA+PGI+Tm90ZTo8L2I+IFRoZSBOZXRCZWFucyBJREUncyBtaW5pbXVtIHNjcmVlbiByZXNvbHV0aW9uIGlzIDEwMjR4NzY4IHBpeGVscy48L3A+CjwvZGl2Pgo8YnI+Cjx1bD4KPGxpPjxiPk1pY3Jvc29mdCBXaW5kb3dzIG9wZXJhdGluZyBzeXN0ZW1zPC9iPjoKPHVsPgo8bGk+PGI+UHJvY2Vzc29yOiA8L2I+NTAwIE1IeiBJbnRlbCBQZW50aXVtIElJSSB3b3Jrc3RhdGlvbiBvciBlcXVpdmFsZW50PC9saT4KPGxpPjxiPk1lbW9yeTogPC9iPjUxMiBNQjwvbGk+Cgo8bGk+PGI+RGlzayBzcGFjZTogPC9iPjg1MCBNQiBvZiBmcmVlIGRpc2sgc3BhY2UgPC9saT4KPC91bD4KPGJyPgo8L2xpPgo8bGk+PGI+TGludXggb3BlcmF0aW5nIHN5c3RlbTwvYj46Cjx1bD4KPGxpPjxiPlByb2Nlc3NvcjogPC9iPjUwMCBNSHogSW50ZWwgUGVudGl1bSBJSUkgd29ya3N0YXRpb24gb3IgZXF1aXZhbGVudDwvbGk+CjxsaT48Yj5NZW1vcnk6IDwvYj41MTIgTUI8L2xpPgo8bGk+PGI+RGlzayBzcGFjZTogPC9iPjQ1MCBNQiBvZiBmcmVlIGRpc2sgc3BhY2U8L2xpPgoKPC91bD4KPGJyPgo8L2xpPgo8bGk+PGI+U29sYXJpcyBPUyAoU1BBUkMpPC9iPjoKPHVsPgo8bGk+PGI+UHJvY2Vzc29yOiA8L2I+IFVsdHJhU1BBUkMgSUkgNDUwIE1IejwvbGk+CjxsaT48Yj5NZW1vcnk6IDwvYj41MTIgTUI8L2xpPgo8bGk+PGI+RGlzayBzcGFjZTogPC9iPjQ1MCBNQiBvZiBmcmVlIGRpc2sgc3BhY2U8L2xpPgo8L3VsPgoKPGJyPgo8L2xpPgo8bGk+PGI+U29sYXJpcyBPUyAoeDg2L3g2NCBQbGF0Zm9ybSBFZGl0aW9uKTwvYj46Cjx1bD4KPGxpPjxiPlByb2Nlc3NvcjogPC9iPkFNRCBPcHRlcm9uIDEwMCBTZXJpZXMgMS44IEdIejwvbGk+CjxsaT48Yj5NZW1vcnk6IDwvYj41MTIgTUI8L2xpPgo8bGk+PGI+RGlzayBzcGFjZTogPC9iPjQ1MCBNQiBvZiBmcmVlIGRpc2sgc3BhY2U8L2xpPgo8L3VsPgoKPGJyPgo8L2xpPgo8bGk+PGI+TWFjaW50b3NoIE9TIFggb3BlcmF0aW5nIHN5c3RlbTwvYj46Cjx1bD4KPGxpPjxiPlByb2Nlc3NvcjogPC9iPlBvd2VyUEMgRzQ8L2xpPgo8bGk+PGI+TWVtb3J5OiA8L2I+NTEyIE1CPC9saT4KPGxpPjxiPkRpc2sgc3BhY2U6IDwvYj40NTAgTUIgb2YgZnJlZSBkaXNrIHNwYWNlPC9saT4KPC91bD4KPGJyPgo8L2xpPgo8L3VsPgo8YSBuYW1lPSJyZXFfaHciPjwvYT4KPGg1IHN0eWxlPSJib3JkZXItYm90dG9tOiAwcHQgbm9uZTsiPlJlY29tbWVuZGVkIEhhcmR3YXJlIENvbmZpZ3VyYXRpb248L2g1PgoKPHVsPgo8bGk+PGI+TWljcm9zb2Z0IFdpbmRvd3Mgb3BlcmF0aW5nIHN5c3RlbXM8L2I+Ogo8dWw+CjxsaT48Yj5Qcm9jZXNzb3I6IDwvYj4xLjQgR0h6IEludGVsIFBlbnRpdW0gSUlJIHdvcmtzdGF0aW9uIG9yIGVxdWl2YWxlbnQ8L2xpPgo8bGk+PGI+TWVtb3J5OiA8L2I+MSBHQjwvbGk+CjxsaT48Yj5EaXNrIHNwYWNlOiA8L2I+MSBHQiBvZiBmcmVlIGRpc2sgc3BhY2U8L2xpPgo8L3VsPgo8YnI+CjwvbGk+CjxsaT48Yj5MaW51eCBvcGVyYXRpbmcgc3lzdGVtPC9iPjoKCjx1bD4KPGxpPjxiPlByb2Nlc3NvcjogPC9iPjEuNCBHSHogSW50ZWwgUGVudGl1bSBJSUkgb3IgZXF1aXZhbGVudDwvbGk+CjxsaT48Yj5NZW1vcnk6IDwvYj4xIEdCPC9saT4KPGxpPjxiPkRpc2sgc3BhY2U6IDwvYj44NTAgTUIgb2YgZnJlZSBkaXNrIHNwYWNlPC9saT4KPC91bD4KPGJyPgo8L2xpPgo8bGk+PGI+U29sYXJpcyYjODQ4MjsgT1MgKFNQQVJDJiMxNzQ7KTwvYj46Cgo8dWw+CjxsaT48Yj5Qcm9jZXNzb3I6IDwvYj5VbHRyYVNQQVJDIElJSWkgMSBHSHo8L2xpPgo8bGk+PGI+TWVtb3J5OiA8L2I+MSBHQjwvbGk+CjxsaT48Yj5EaXNrIHNwYWNlOiA8L2I+ODUwIE1CIG9mIGZyZWUgZGlzayBzcGFjZTwvbGk+CjwvdWw+Cjxicj4KPC9saT4KPGxpPjxiPlNvbGFyaXMmIzg0ODI7IE9TICh4ODYveDY0IHBsYXRmb3JtIGVkaXRpb24pPC9iPjoKCjx1bD4KPGxpPjxiPlByb2Nlc3NvcjogPC9iPkFNRCBPcHRlcm9uIDEwMCBTZXJpZXMgMS44IEdIejwvbGk+CjxsaT48Yj5NZW1vcnk6IDwvYj4xIEdCPC9saT4KPGxpPjxiPkRpc2sgc3BhY2U6IDwvYj44NTAgTUIgb2YgZnJlZSBkaXNrIHNwYWNlPC9saT4KPC91bD4KPGJyPgo8L2xpPgo8L3VsPgo8L2xpPgo8L3VsPgo8YSBuYW1lPSJyZXFfc3ciPjwvYT4KPGg1IHN0eWxlPSJib3JkZXItYm90dG9tOiAwcHQgbm9uZTsiPlJlcXVpcmVkIFNvZnR3YXJlPC9oNT4KPHA+TmV0QmVhbnMgSURFIDUuNS4xIG9yIE5ldEJlYW5zIElERSA1LjUgbXVzdCBiZSBpbnN0YWxsZWQgYmVmb3JlIHlvdSBhdHRlbXB0IHRvIGluc3RhbGwgCk5ldEJlYW5zIEMvQysrIERldmVsb3BtZW50IFBhY2sgNS41LjEgdXBkYXRlIDEuCjwvcD4KPHA+TmV0QmVhbnMgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayA1LjUuMSB1cGRhdGUgMSBydW5zIG9uIHRoZSBKYXZhIDIgUGxhdGZvcm0gU3RhbmRhcmQgCkVkaXRpb24gRGV2ZWxvcG1lbnQgS2l0IDUuMCBVcGRhdGUgMSBvciBoaWdoZXIgKEpESyAxLjUuMF8wMSBvciAKaGlnaGVyKSwgb3IgSkRLIDYuMCwgd2hpY2ggY29uc2lzdHMgb2YgdGhlIEphdmEgUnVudGltZSBFbnZpcm9ubWVudCBwbHVzIApkZXZlbG9wZXIgdG9vbHMgZm9yIGNvbXBpbGluZywgZGVidWdnaW5nLCBhbmQgcnVubmluZyBhcHBsaWNhdGlvbnMgd3JpdHRlbiBpbiAKdGhlIEphdmEgbGFuZ3VhZ2UuIDwvcD4KPHA+CllvdSBjYW4gZG93bmxvYWQgdGhlIEpESyBmb3IgeW91ciBwbGF0Zm9ybSBmcm9tIDxhCmhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vajJzZS8xLjUuMC8iPmh0dHA6Ly9qYXZhLnN1bi5jb20vajJzZS8xLjUuMC88L2E+Lgo8L3A+CjwvYmxvY2txdW90ZT4KPGJyPgo8cCBhbGlnbj0iY2VudGVyIj48YSBocmVmPSIjdG9wIj50b3A8L2E+PC9wPgo8aDI+PGEgbmFtZT0iY29uZmlndXJhdGlvbiI+Q29uZmlndXJhdGlvbiBJbmZvcm1hdGlvbjwvYT48L2gyPgo8cD5UaGUgTmV0QmVhbnMgSURFIGhhcyBhIGRlZmF1bHQgaGVhcCBzaXplIG9mIDEyOCBNQi4gTmV0QmVhbnMgQy9DKysgRGV2ZWxvcG1lbnQgClBhY2sgcnVucyB3ZWxsIHdpdGggdGhpcyBkZWZhdWx0IHNldHRpbmcgd2hlbiB5b3UgYXJlIGRldmVsb3Bpbmcgc21hbGwgcHJvamVjdHMgIAp3aXRoIHVwIHRvIDUwMCBzb3VyY2UgYW5kIGhlYWRlciBmaWxlcy4KPC9wPgo8cD5XaGVuIHlvdSBhcmUgZGV2ZWxvcGluZyBsYXJnZXIgcHJvamVjdHMsIHlvdSB3aWxsIG5lZWQgdG8gaW5jcmVhc2UgdGhlIGhlYXAgc2l6ZS4KSWYgeW91IGdldCBhbiBPdXRPZk1lbW9yeSBleGNlcHRpb24gd2hlbiBkZXZlbG9waW5nIGEgbGFyZ2UgcHJvamVjdCwgdGhlIGhlYXAgc2l6ZSBpcwphIGxpa2VseSBjYXVzZS4KPC9wPgo8cD4KWW91IGNhbiBzZXQgdGhlIGhlYXAgc2l6ZSBmb3IgdGhlIEphdmEgVmlydHVhbCBNYWNoaW5lIChKVk0pKiAgCm9uIHdoaWNoIHRoZSBOZXRCZWFucyBJREUgcnVucyBpbiB0aGUgPHR0Pm5ldGJlYW5zLmNvbmY8L3R0PiAKZmlsZS4gCjxwPjxiPlRvIGNoYW5nZSB0aGUgaGVhcCBzaXplOjwvYj48L3A+CjxvbD4KPGxpPkNvcHkgdGhlIDx0dD5uZXRiZWFucy5jb25mPC90dD4gZnJvbSB0aGUgPHR0PmV0YzwvdHQ+IApmb2xkZXIgaW4gdGhlIE5ldEJlYW5zIAppbnN0YWxsYXRpb24gZGlyZWN0b3J5CmludG8geW91ciBOZXRCZWFucyB1c2VyIGRpcmVjdG9yeSAoPHR0PiRIT01FLy5uZXRiZWFucy81LjUuMTwvdHQ+KS4gPC9saT4KPGxpPkluIHRoZSA8dHQ+bmV0YmVhbnMuY29uZjwvdHQ+IGZpbGUgaW4geW91ciB1c2VyIGRpcmVjdG9yeSwgZWRpdCB0aGUgPHR0Pi1KLVhteDwvdHQ+IApjb21tYW5kIGxpbmUgSmF2YSBzdGFydHVwIHN3aXRjaCAoYm9sZGVkIGJlbG93KSBpbiB0aGUgPHR0Pm5ldGJlYW5zLmNvbmY8L3R0PiBmaWxlLCAKYW5kIHRoZW4gcmVzdGFydCB0aGUgSURFLiAKPHByZT4KIyBjb21tYW5kIGxpbmUgc3dpdGNoZXMKbmV0YmVhbnNfZGVmYXVsdF9vcHRpb25zPSItSi1YbXMzMm0gPGI+LUotWG14MTI4bTwvYj4gLUotWFg6UGVybVNpemU9MzJtIAotSi1YWDpNYXhQZXJtU2l6ZT05Nm0gLUotWHZlcmlmeTpub25lIC1KLURhcHBsZS5sYWYudXNlU2NyZWVuTWVudUJhcj10cnVlIgo8L3ByZT48L2xpPgo8L29sPjxwPgpUaGUgcmVjb21tZW5kZWQgaGVhcCBzaXplcyBmb3IgTmV0QmVhbnMgQy9DKysgCkRldmVsb3BtZW50IFBhY2sgZm9yIG1lZGl1bSBhbmQgbGFyZ2UgYXBwbGljYXRpb25zIGFyZToKPHVsPgo8bGk+Rm9yIGRldmVsb3BpbmcgbWVkaXVtIGFwcGxpY2F0aW9ucyAoNTAwLTIwMDAgCnNvdXJjZSBhbmQgaGVhZGVyIGZpbGVzKSBvbiBhIHN5c3RlbSB3aXRoIDEgR0Igb3IgbW9yZSBvZiBSQU06IDUxMiBNQjwvbGk+CjxsaT5Gb3IgZGV2ZWxvcGluZyBsYXJnZSBhcHBsaWNhdGlvbnMgKG1vcmUgdGhhbiAyMDAwIHNvdXJjZSBhbmQgaGVhZGVyIGZpbGVzKSBvbiBhIApzeXN0ZW0gd2l0aCAyIEdCIG9yIG1vcmUgb2YgUkFNKTogMSBHQjwvbGk+CjwvdWw+CjxwPkRvIG5vdCBpbmNyZWFzZSB0aGUgaGVhcCBzaXplIHRvIG1vcmUgdGhhbiAxIEdCLgo8L3A+CjxwPklmIHlvdSBhcmUgcnVubmluZyB0aGUgU3VuIEpWTSwgeW91IGNhbiBhbHNvIGFkZCB0aGUgZ2FyYmFnZSBjb2xsZWN0b3Igc3dpdGNoZXMgPHR0Pi1KLVhYOitVc2VDb25jTWFya1N3ZWVwR0M8L3R0PgooY29uY3VycmVudCBjb2xsZWN0b3IpIGFuZCA8dHQ+LUotWFg6K1VzZVBhck5ld0dDPC90dD4gKHBhcmFsbGVsIGNvbGxlY3RvcikgdG8gdGhlIAo8dHQ+bmV0YmVhbnMuY29uZjwvdHQ+IGZpbGUuIFRoZXNlIG9wdGlvbnMgYWxsb3cgdGhlIGdhcmJhZ2UgY29sbGVjdG9yIHRvIHJ1biBpbgpwYXJhbGxlbCB3aXRoIHRoZSBtYWluIGV4ZWN1dGlvbiBlbmdpbmUuIFRoZXkgbWlnaHQgbm90IGJlIHN1cHBvcnRlZCBieSBub24tU3VuCmltcGxlbWVudGF0aW9ucyBvZiB0aGUgSlZNLgo8L3A+CjxwPkZvciBtb3JlIGluZm9ybWF0aW9uIG9uIE5ldEJlYW5zIHN3aXRjaCBzZXR0aW5ncywgc2VlIHRoZSA8YQpocmVmPSJodHRwczovL25ldGJlYW5zLm9yZy9rYi9hcmNoaXZlL2luZGV4Lmh0bWwiPkNvbmZpZ3VyaW5nIHRoZSBJREUKc2VjdGlvbiBvZiA8aT5Vc2luZyBOZXRCZWFucyBJREUgNS41PC9pPjwvYT4gPGk+KEFyY2hpdmVkIGRvY3VtZW50KTwvaT4KPC9wPgo8cD5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBOZXRCZWFucyBwZXJmb3JtYW5jZSB0dW5pbmcsIHNlZSA8YQpocmVmPSJodHRwOi8vcGVyZm9ybWFuY2UubmV0YmVhbnMub3JnL2hvd3RvL2p2bXN3aXRjaGVzL2luZGV4Lmh0bWwiPjxpPlR1bmluZyBKVk0KU3dpdGNoZXMgZm9yIFBlcmZvcm1hbmNlPC9pPjwvYT4uCjwvcD4KPHA+PGI+KiBOb3RlOjwvYj4gVGhlIHRlcm1zICJKYXZhIFZpcnR1YWwgTWFjaGluZSIgYW5kICJKVk0iIG1lYW4gYSBWaXJ0dWFsIE1hY2hpbmUgZm9yIHRoZSAKSmF2YShUTSkgcGxhdGZvcm0uCjwvcD4KPC9ibG9ja3F1b3RlPgo8YnI+CjxwIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9IiN0b3AiPnRvcDwvYT48L3A+Cjxicj4KPGEgbmFtZT0ia25vd25faXNzdWVzIj48L2E+CjxoMj5Lbm93biBJc3N1ZXM8L2gyPgo8cD5UaGlzIE5ldEJlYW5zIEMvQysrIERldmVsb3BtZW50IFBhY2sgNS41LjEgdXBkYXRlIDEgcmVsZWFzZQpsZXRzIHlvdSBleHBsb3JlIGFuZCBldmFsdWF0ZSBuZXcgZnVuY3Rpb25hbGl0eSBpbiB0aGUgSURFLiBXZSBlbmNvdXJhZ2UgeW91IHRvIGdldCAKaW52b2x2ZWQgYW5kIGdpdmUgdXMgZmVlZGJhY2sgYnkgbG9nZ2luZyBhbnkgaXNzdWVzIHlvdSBlbmNvdW50ZXIgaW4gdGhlIApJc3N1ZSBUcmFja2luZyBzeXN0ZW0gYXQgPGEgaHJlZj0iaHR0cHM6Ly9uZXRiZWFucy5vcmcvY29tbXVuaXR5L2lzc3Vlcy5odG1sIj4KaHR0cHM6Ly9uZXRiZWFucy5vcmcvY29tbXVuaXR5L2lzc3Vlcy5odG1sPC9hPi48L3A+CjxwPlRoZSB1bnJlc29sdmVkIGlzc3VlcyBmb3IgdGhpcyByZWxlYXNlIGFyZSBhcyBmb2xsb3dzOiA8L3A+CiAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9uZXRiZWFucy5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTg5ODgwIj4KCUlzc3VlICM4OTg4MDogUHJvamVjdCBpcyBub3QgcmVwYXJzZWQgd2hlbiBDb21waWxlciBDb2xsZWN0aW9uIGlzIHN3aXRjaGVkPC9hPgoJPGJsb2NrcXVvdGU+CgkgICAgPHA+PGI+RGVzY3JpcHRpb246PC9iPgoJCUlmIHlvdSBzd2l0Y2ggY29tcGlsZXIgY29sbGVjdGlvbnMgZm9yIGEgcHJvamVjdCwgdGhlIHByb2plY3QgaXMgbm90CgkJcmVwYXJzZWQuIEFmdGVyIHRoZSBzd2l0Y2gsIGNvZGUgY29tcGxldGlvbiBhbmQgaHlwZXJsaW5rcyBtaWdodCBub3Qgd29yayBwcm9wZXJseQoJCWZvciB0aGUgcHJvamVjdC4KCSAgICA8L3A+CgkgICAgPHA+PGI+V29ya2Fyb3VuZDo8L2I+CgoJCUNsb3NlIHRoZSBwcm9qZWN0IGFuZCBvcGVuIGl0IGFnYWluLgoJICAgIDwvcD4KCTwvYmxvY2txdW90ZT4KICAgIDwvbGk+CiAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9uZXRiZWFucy5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTc2MTczIj4KCUlzc3VlICM3NjE3MzogTm8gYXV0b21hdGljIGZsdXNoIG9mIG91dHB1dCBiZWZvcmUgaW5wdXQ8L2E+Cgk8YmxvY2txdW90ZT4KCSAgICA8cD48Yj5EZXNjcmlwdGlvbjo8L2I+CiAgICAgICAgICAgICAgICBJZiBhIHByb2plY3RzIGRlZmF1bHQgQ29uc29sZSBUeXBlIHByb3BlcnR5IGlzIGNoYW5nZWQgCmZyb20gRXh0ZXJuYWwgVGVybWluYWwKdG8gT3V0cHV0IFdpbmRvdyAob3V0cHV0IG9ubHkpLCB0aGVuIG5vIGlucHV0IGNhbiBiZSB0eXBlZCBpbnRvIHRoZSAKT3V0cHV0IHdpbmRvdy4KCSAgICA8L3A+CgkgICAgPHA+PGI+V29ya2Fyb3VuZDo8L2I+CgkJSW4gdGhlIFJ1bm5pbmcgY2F0ZWdvcnkgb2YgdGhlIHByb2plY3QgcHJvcGVydGllcywgY2hhbmdlIHRoZQoJCWRlZmF1bHQgQ29uc29sZSBUeXBlIHByb3BlcnR5IG9ubHkgZm9yIG91dHB1dC1vbmx5IGFwcGxpY2F0aW9ucy4KCSAgICA8L3A+Cgk8L2Jsb2NrcXVvdGU+CiAgICA8L2xpPgogICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbmV0YmVhbnMub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD04OTM0MyI+CglJc3N1ZSAjODkzNDM6IFBhdXNlIGRvZXNuJ3Qgd29yayBvbiBXaW5kb3dzIHdoZW4gcHJvZ3JhbSB3YWl0cyB1c2VyIGlucHV0PC9hPgoKCTxibG9ja3F1b3RlPgoJICAgIDxwPjxiPkRlc2NyaXB0aW9uOjwvYj4KCQlDbGlja2luZyBQYXVzZSB3aGlsZSBhIHByb2dyYW0gaXMgd2FpdGluZyBmb3IgaW5wdXQgZG9lcyAKCQlub3Qgc3RvcCB0aGUgcHJvZ3JhbS4gUGF1c2Ugd29ya3Mgb25seSBhZnRlciB5b3Ugc3VwcGx5IHRoZSBpbnB1dC4KCSAgICA8L3A+CgkgICAgPHA+PGI+V29ya2Fyb3VuZDo8L2I+CgkJTm8gd29ya2Fyb3VuZC4KCSAgICA8L3A+Cgk8L2Jsb2NrcXVvdGU+CiAgICA8L2xpPgogICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbmV0YmVhbnMub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD05MDEyMCI+CglJc3N1ZSAjOTAxMjA6ICJwYXVzZSIgKG9uIFdpbmRvd3MpIGRvZXMgbm90IHdvcmsgb24gYSBjb3JuZXIgY2FzZTwvYT4KCTxibG9ja3F1b3RlPgoJICAgIDxwPjxiPkRlc2NyaXB0aW9uOjwvYj4KCQlCZXNpZGVzIDxhIGhyZWY9Imh0dHBzOi8vbmV0YmVhbnMub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD04OTM0MyI+CgkJODkzNDM8L2E+LCB0aGVyZSBhcmUgc2V2ZXJhbCBvdGhlciBjYXNlcyB3aGVuIFBhdXNlIGRvZXMgbm90IHdvcmsgb24KCQlXaW5kb3dzLiBPbmUgY2FzZSBpcyBpbiB2ZXJ5IHRpZ2h0IGxvb3BzLgoJICAgIDwvcD4KCgkgICAgPHA+PGI+V29ya2Fyb3VuZDo8L2I+CgkJTm8gd29ya2Fyb3VuZC4KCSAgICA8L3A+Cgk8L2Jsb2NrcXVvdGU+CiAgICA8L2xpPgoKICAgIDxsaT48YSBocmVmPSJodHRwczovL25ldGJlYW5zLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9OTAyMjIiPgoJSXNzdWUgIzkwMjIyOiBCcmVha3BvaW50cyBkb24ndCB0YWtlIGltbWVkaWF0ZSBlZmZlY3Qgd2hpbGUgcnVubmluZzwvYT4KCTxibG9ja3F1b3RlPgoKCSAgICA8cD48Yj5EZXNjcmlwdGlvbjo8L2I+CgkJSWYgYSBicmVha3BvaW50IGlzIHNldCBvbiBhIHJ1bm5pbmcgcHJvY2VzcywgdGhlIGJyZWFrcG9pbnQgaXMgbm90CgkJcGFzc2VkIHRvIDx0dD5nZGI8L3R0PiB1bnRpbCB0aGUgbmV4dCB0aW1lIHRoZSBwcm9jZXNzIGlzIHN0b3BwZWQuCgkgICAgPC9wPgoJICAgIDxwPjxiPldvcmthcm91bmQ6PC9iPgoJCVBhdXNlIHRoZSBwcm9jZXNzLCBzZXQgdGhlIGJyZWFrcG9pbnQsIGFuZCBjb250aW51ZS4KCSAgICA8L3A+Cgk8L2Jsb2NrcXVvdGU+CiAgICA8L2xpPgogICAKICAgIDwvdWw+CiAgICA8L2Jsb2NrcXVvdGU+CjxoMj48YSBuYW1lPSJkb2N1bWVudGF0aW9uIj48L2E+RG9jdW1lbnRhdGlvbjwvaDI+CjxwPgogICAgRG9jdW1lbnRhdGlvbiBmb3IgdGhlIE5ldEJlYW5zIEMvQysrIERldmVsb3BtZW50IFBhY2sgNS41LjEgdXBkYXRlIDEgcmVsZWFzZSBpcyBwcm92aWRlZCBpbiAKICAgIHRoZSBmb3JtIG9mIHdlYi1iYXNlZCBndWlkZXMgYW5kIHRoZSBJREUncyBoZWxwIHN5c3RlbS4gWW91IGNhbiB1c2UgdGhlIAogICAgZm9sbG93aW5nIGRvY3VtZW50cyB0byBnZXQgc3RhcnRlZDoKICAgICA8dWw+CiAgICAgICAgPGxpPjxhIGhyZWY9ImNuZC1pbnN0YWxsLmh0bWwiPk5ldEJlYW5zIEMvQysrIERldmVsb3BtZW50IFBhY2sgNS41LjEKICAgICAgICB1cGRhdGUgMSAKICAgICAgICBJbnN0YWxsYXRpb24gYW5kIFNldHVwIEluc3RydWN0aW9uczwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL25ldGJlYW5zLm9yZy9rYi9hcmNoaXZlL2luZGV4Lmh0bWwiPk5ldEJlYW5zCiAgICAgICAgQy9DKysgRGV2ZWxvcG1lbnQgUGFjayA1LjUuMSB1cGRhdGUgMSBRdWljayBTdGFydCBHdWlkZTwvYT4gPGk+KEFyY2hpdmVkKTwvaT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL25ldGJlYW5zLm9yZy9rYi9hcmNoaXZlL2luZGV4Lmh0bWwiPgogICAgICAgIE5ldEJlYW5zIDUuNS4xIERvY3VtZW50YXRpb248L2E+IDxpPihBcmNoaXZlZCk8L2k+PC9saT4KICAgICAgICA8L3VsPgoKCgo8L2JvZHk+CjwvaHRtbD4KCgoKCgo=