PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4KPGh0bWw+CjxoZWFkPgogICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KICAgPG1ldGEgbmFtZT0iQXV0aG9yIiBjb250ZW50PSJJQk0iPgogICA8dGl0bGU+RWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3RlcyAtIFNXVDwvdGl0bGU+CjwvaGVhZD4KPGJvZHk+Cgo8aDE+CkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+ClNXVDwvaDE+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDQ2YiAtIFdlZG5lc2RheSBKdWx5IDE4LCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTY3NTYyIFNJR1NFR1YgaW4gVHJlZSNkZXN0cm95SXRlbSgpCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwNDYgLSBUaHVyc2RheSBKdW5lIDcsIDIwMDcgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxOTE1MDggLSBDb250ZW50IGFzc2lzdCBjYXVzZXMgU1dURXJyb3I6IE5vIG1vcmUgY2FsbGJhY2tzCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwNDVnIC0gRnJpZGF5IEp1bmUgOCwgMjAwNyA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE5MTc0MSAtIGNoZWVzZSBpbiBqYXZhIGVkaXRvcgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDQ1ZiAtIFRodXJzZGF5IEp1bmUgNywgMjAwNyA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE5MTQxMiAtIEZvY3VzSW4gYW5kIEZvY3VzT3V0IGV2ZW50cyBhcmUgcHJvY2Vzc2VkIHdpdGggZGlmZmVyZW50IGNhc2VzIGluIFNoZWxsLgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDQ1ZSAtIFRodXJzZGF5IEp1bmUgNywgMjAwNyA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE5MTM3MiAtIENhbm5vdCB1bm1pbmltaXplIGVjbGlwc2UgZnJvbSBkb2NrCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwNDVkIC0gVGh1cnNkYXkgSnVuZSA3LCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTc5OTQ1IC0gR0MgY29uc3RydWN0b3IgdGhyZWFkIGludmFsaWQgYWNjZXNzIG1pc3NpbmcgZnJvbSBBUEkgSmF2YWRvYyAgCjxicj4xNzk5NDYgLSBHQyBkaXNwb3NlIHRocmVhZCBpbnZhbGlkIGFjY2VzcyBtaXNzaW5nIGZyb20gQVBJIEphdmFkb2MgIAo8YnI+MTkxMDcyIC0gRXhpc3Rpbmcgc2hlbGwgd2luZG93IHRpdGxlIGdldHMgb3ZlcndyaXR0ZW4gIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDQ1YyAtIFR1ZXNkYXkgSnVuZSA1LCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTgwNDgyIC0gU3luY2hyb25pemUgdmlldyBzb21ldGltZXMgZ29lcyBkZWFmdWx0IGNvbG9yIHdoZW4gY3RybCBhZGRpbmcgZmlsZXMKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDA0NWIgLSBGcmlkYXkgSnVuZSAxLCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTkwMjYyIC0gQ0NvbWJvIGRvZXNuJ3QgcmVjZWl2ZSBrZXktZXZlbnRzICAKPGJyPjE5MDQ4MCAtIHJlZ3Jlc3Npb246IEZvY3VzT3V0IG5vdCBmaXJlZCBmb3IgVGV4dHMgaW4gYW4gU1dULkFQUExJQ0FUSU9OX01PREFMIHNoZWxsICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDA0NWEgLSBUaHVyc2RheSBNYXkgMzEsIDIwMDcgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxMjk0NTYgLSBTV1RTcHkgY29kZSBoYXMgbm8gbGljZW5zZSBzcGVjaWZpZWQgIAo8YnI+MTQ5MDQwIC0gQ2hhbmdlIGphdmFkb2MgZm9yIFRhYmxlIGFkZFNlbGVjdGlvbkxpc3RlbmVyICAKPGJyPjE4OTk5MiAtIENvbHVtbiBpbiBwcm9ibGVtIHZpZXcgbm90IHByb3Blcmx5IHJlZnJlc2hlZCB3aGVuIHJlc2l6aW5nIHRoZSBjb2x1bW4gd2lkdGggIAo8L2Jsb2NrcXVvdGU+CjxoMz48YSBOQU1FPSJPdGhlciBjaGFuZ2VzIGluIHRoaXMgYnVpbGQiPjwvYT5PdGhlciBjaGFuZ2VzIGluIHRoaXMgYnVpbGQ8L2gzPgo8dWw+CjxsaT5KYXZhZG9jIGJhc2g8L2xpPgo8bGk+Q29weXJpZ2h0IHVwZGF0ZTwvbGk+CjwvdWw+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDQ1IC0gVGh1cnNkYXkgTWF5IDMxLCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTU4MDQzIC0gW01hY10gUmlnaHQgY2xpY2tpbmcgb24gYXBwIGluIERvY2sgYW5kIHNlbGVjdGluZyBRdWl0IGRvZXMgbm90aGluZyBpZiBmaWxlIG5lZWRzIHRvIGJlIHNhdmVkICAKPGJyPjE3MzU1OSAtIEphdmFkb2MgZm9yIEdDIG1ldGhvZHMgcmVxdWlyaW5nIGFkdmFuY2VkIGdyYXBoaWNzICAKPGJyPjE3ODc1OCAtIFNXVC5NT1ZFTUVOVF8qIG5lZWRzIGJldHRlciBKYXZhZG9jICAKPGJyPjE4NTg2MiAtIEFJWCA1LjMgbW90aWYgLSBDaGFyYWN0ZXJzIGFib3ZlIFx1MDA3ZiBzaG93IGFzICJpc284ODU5IiBpbiBzb21lIHN3dCB3aWRnZXRzICAKPGJyPjE4OTMzOSAtIFNXVCBldmVudCBsb29wIGRvZXNuJ3QgZGlzcGF0Y2ggQXBwbGUgRXZlbnQuICAKPGJyPjE4OTQ2NSAtIEJyb3dzZXIgY2FuIGNyYXNoIG9uIFJIRUwzIGlmIHh1bHJ1bm5lciBpcyBwcmVzZW50IChtb3RpZiBvbmx5KSAgCjxicj4xODk4NjIgLSBMaW5rIHRvIHdyb25nIGZpbGUgb24gU25pcHBldHMgcGFnZSAgCjxicj4xODk5NjAgLSBbYnJvd3Nlcl0gZXhlY3V0aW5nIHdpbmRvdy5wcmludCgpIGRvZXMgbm90IHByaW50ICAKPGJyPjE4OTk3MCAtIEdDIGRyYXdJbWFnZSBmYWlscyBvbiBiaWRpICsgaWNvbiArIGRvdWJsZSBidWZmZXJlZCAgCjxicj4xOTAwMzMgLSBhZGQgbGlicmFyeSBidWlsZCBzdXBwb3J0IGZvciBzMzkwICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDA0NGcgLSBGcmlkYXkgTWF5IDI1LCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTgzNDMwIC0gW0RORF0gRHJhZyBhbmQgRHJvcCBiZXR3ZWVuIGdyb3VwcyBjYXVzZXMgRWNsaXBzZSB0aHJlYWQgdG8gaGFuZyBpbiBDT00uRG9EcmFnRHJvcCgpIGluZGVmaW5pdGVseS4gIAo8YnI+MTg4OTMyIC0gQ2FuJ3QgZW50ZXIgcGF0aHMgaW4gVGV4dCBmaWVsZHMgb24gUmVkIEhhdCBXb3Jrc3RhdGlvbiA1ICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDA0NGYgLSBGcmlkYXkgTWF5IDI1LCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTg4ODU5IC0gW3JlbmRlcl0gY29sb3JlZCBsYWJlbHMgc2hpZnRlZCB0byB0aGUgcmlnaHQgYW5kIG1hcmdpbiBzbWFsbGVyIGJldHdlZW4gaWNvbiBhbmQgdGV4dCAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwNDRlIC0gVGh1cnNkYXkgTWF5IDI0LCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTgxNDEwIC0gW0Jyb3dzZXJdIGJyb3dzZXIgc3RlYWwgZm9jdXMgb24gSUU3ICAKPGJyPjE4NjcyMiAtIEZvcmVncm91bmQgY29sb3Igbm90IHVzZWQgZnJvbSBFcmFzZUl0ZW0gY2FsbGJhY2sgIAo8YnI+MTg3MjczIC0gRGlhbG9nIHBhY2thZ2UgZXhwbG9yZXIgb24gbW92ZSByZW9yZyB1c2VyIGlucHV0IHBhZ2Ugc2Nyb2xsZWQgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDQ0ZCAtIFRodXJzZGF5IE1heSAyNCwgMjAwNyA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE4NTYwNyAtIENhbid0IGNvcHkgYW5kIHBhc3RlIGludG8gZGlhbG9nIHRleHQgZmllbGRzIGZyb20gc29tZSBhcHBsaWNhdGlvbnMKPGJyPjE4Nzk3MSAtIEN1c3RvbSBEcmF3IFRyZWUgYnJpbmdzIGNoZWVzZSB3aGVuIHVzaW5nIEltYWdlIGFuZCBCb2xkICAKPGJyPjE4ODI2NSAtIFRyZWVzIGZsaWNrZXIgd2hlbiBmb2N1cyBjaGFuZ2VzICAKPGJyPjE4ODM4MSAtIFRyZWUgVmlld2VyIENvbGxhcHNlIEV4dHJlbWVseSBTbG93IG9uIFZpc3RhICAKPGJyPjE4ODU2NyAtIFRyZWVFZGl0b3IgY2xvc2VzIENDb21ibyBhZnRlciA1MDBtcyAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwNDRiIC0gVGh1cnNkYXkgTWF5IDE3LCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTg1NTU5IC0gRWNsaXBzZSBjcmFzaGVzIHdpdGggIkpWTSB0ZXJtaW5hdGVkLiBFeGl0IENvZGU9MSAgCjxicj4xODc1NjAgLSBSRUFEX09OTFkgY29tYm9zIG5vdCB0YWxsIGVub3VnaCAgCjxicj4xODc1OTcgLSBCZWdpbkJ1ZmZlcmVkUGFpbnQgZG9lcyBub3Qgd29yayBpbiBSVEwgYW5kIGFkdmFuY2VkICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDA0NGEgLSBXZWRuZXNkYXkgTWF5IDE2LCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTgzNTAzIC0gVGV4dCBmb3JtYXR0aW5nIGZpbmlzaGVzIHRvbyBlYXJseSB3aGVuIHBhc3RlZAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDQ0IC0gV2VkbmVzZGF5IE1heSAxNiwgMjAwNyA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE4NTkxNiAtIFN0eWxlZFRleHQuc2V0U2VsZWN0aW9uRm9yZWdyb3VuZChDb2xvcikgaGFzIG5vIGVmZmVjdCAgCjxicj4xODY4NDMgLSBbT0xFXSBJbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aGlsZSBjbG9zaW5nIGEgZGlhbG9nIAo8YnI+MTg3MjE1IC0gRW5hYmxpbmcgb3duZXIgZHJhdyByZW1vdmVzIGhvcml6b250YWwgc2Nyb2xsYmFyICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDA0MyAtIFdlZG5lc2RheSBNYXkgMTYsIDIwMDcgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo1NTE0MiAtIEhvcml6b250YWwgc2Nyb2xsYmFyIGRpc2FibGVkIHdpdGggZWRpdG9yIGNvbnRlbnQgaG9yaXpvbnRhbGx5IHNjcm9sbGVkICAKPGJyPjY2MTAxIC0gW2Jyb3dzZXJdIEVtYmVkZGVkIGJyb3dzZXIgbWFrZXMgYW5ub3lpbmcgImNsaWNrIiBzb3VuZCAgCjxicj4xODIwODMgLSBSZWRyYXcgYXJ0aWZhY3RzIHVzaW5nIEdseXBoTWV0cmljcyAgCjxicj4xODM1MjggLSBFZGl0b3IgZ29lcyBiZXplcmsgd2hlbiBwYXN0aW5nIEluZGlhbiBzY3JpcHQgIAo8YnI+MTg0OTE2IC0gVmFyaWFibGVzIHZpZXcgbm90IHBhaW50ZWQgY29ycmVjdGx5IGFmdGVyIGNvbHVtbiByZXNpemUgIAo8YnI+MTg0OTUwIC0gY2hlZXNlIGluIHRoZSBjb25zb2xlICAKPGJyPjE4NTIzMSAtIE1hYzogQ2Fubm90IGdldCByaWQgb2YgbmF0aXZlIHRvb2x0aXAgaW4gYSB0YWJsZSB3aXRoIGNvbHVtbnMgIAo8YnI+MTg1OTEwIC0gQ3VzdG9tIGRyYXdpbmcgbGlzdGVuZXJzIHByb2R1Y2UgZGlzcGxheSBhcnRpZmFjdHMgd2hlbiB1c2VkIHdpdGggdmlydHVhbCBUcmVlVmlld2VyICAKPGJyPjE4NjM3OCAtIFRvIGlucHV0IEphcGFuZXNlIGNoYXJhY3RlciBpbiBKYXZhIGVkaXRvciBjYXVzZXMgZG90IGdhcmJhZ2VzIE9OTFkgYXQgZmlyc3QuICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDA0MiAtIFR1ZXNkYXkgTWF5IDE1LCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjc2NTIgLSBzb21lIEdDIGNhbGxzIGFyZSBvZmYgYnkgb25lIHBpeGVsIGluIG1pcnJvcmVkIG1vZGUgIAo8YnI+MTU4MTIyIC0gQklESTogU3R5bGVkVGV4dCBkb2VzIG5vdCBwYWludCBzZWxlY3Rpb24gd2VsbCB3aGVuIG1pcnJvcmVkICAKPGJyPjE4NjU4MCAtIEdDI2RyYXdSb3VuZFJlY3RhbmdsZSBsb29rcyB1Z2x5IG9uIGFkdmFuY2UgbW9kZSAgCjxicj4xODY2MTEgLSBBbHBoYSBjaGFubmVscyBiZWluZyBsb3N0IG9uIFdpbmRvd3MgWFAgY2xhc3NpYyB0aGVtZSAgCjxicj4xODY3NTcgLSBObyBjb250ZXh0IG1lbnVzIGluIHRhYmxlcyAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwNDEgLSBGcmlkYXkgTWF5IDExLCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNzU4MTMgLSBbYnJvd3Nlcl0gU3RhdHVzVGV4dEV2ZW50IG5vdCBmaXJlZCB3aGVuIGhvdmVyaW5nIG92ZXIgbGluayBvbiB0aGUgbWFjICAKPGJyPjEyMDcyNSAtIFtETkRdIERyYWcgYW5kIERyb3AgLSBTbmlwcGV0MTg1IGZhaWxzICAKPGJyPjE1NDAzNiAtIFtCcm93c2VyXSBDYW5ub3QgRWRpdCBhIEh0bWwgSUZyYW1lIHdoaWNoIGlzIGluIHN3dCAgCjxicj4xNjM3MTYgLSBCZW5jaG1hcmsgZGlmZmVyZW5jZSBiZXR3ZWVuIFNXVC1HVEsgTGludXggYW5kIFNXVCB3aW5kb3dzICAKPGJyPjE2NDEyMCAtIFN0eWxlZFRleHQgY2FuIG9wZW4gb3V0IG9mIHN5bmMgd2l0aCBzY3JvbGxiYXIgIAo8YnI+MTc3MTU2IC0gW0Jyb3dzZXJdIFRoZSBqYXZhc2NyaXB0ICd0b3AuY2xvc2UoKSAnIGNyYXNoZXMgZWNsaXBzZSAgCjxicj4xODI1NDcgLSB0cmVlIHRvb2x0aXAgcHJvYmxlbXMgd2l0aCAiYWN0aXZhdGlvbiBmb2xsb3dzIG1vdXNlIiAodHdlYWt1aS94LW1vdXNlKSAgCjxicj4xODM2NDAgLSBDb21ibyBvbiBMaW51eCBtaXNzaW5nLCBkb2Vzbid0IHNob3cgdXAuIEZvcm1EYXRhICAKPGJyPjE4NDExMSAtIFtETkRdIE5vdCBwb3NzaWJsZSB0byBkcmFnIG11bHRpcGxlIGNsYXNzZXMgdG8gYSBuZXcgcGFja2FnZSAgCjxicj4xODQ1OTIgLSBDYWxsaW5nIExpc3Qjc2V0VG9wSW5kZXgoKSBvbiBMaXN0cyBjcmVhdGVkIHdpdGggU1dULlZfU0NST0xMIHNjcmFtYmxlcyB0aGUgd2lkZ2V0ICAKPGJyPjE4NTA4OSAtIENvbXBpbGUgZXJyb3IgaW4gb3JnLmVjbGlwc2Uuc3d0LmV4YW1wbGVzL3BsdWdpbi54bWwgIAo8YnI+MTg1MzEzIC0gSW5jb25zaXN0ZW5jeSB3aXRoIGZvY3VzIG9uIHNlbGVjdGVkIGFjdGlvbiAgCjxicj4xODU1MjkgLSBob3Jpem9udGFsIHNjcm9sbGJhciBtaXNzaW5nIGluIG93bmVyIGRyYXduIHRyZWUgIAo8YnI+MTg1NTMyIC0gd3Jvbmcgc2VsZWN0aW9uIGxlbmd0aCBpbiBvd25lciBkcmF3biB0YWJsZSAgCjxicj4xODU1MzQgLSBUYWJsZSBzZW5kcyBNZW51RGV0ZWN0IHR3aWNlICAKPGJyPjE4NjAyOCAtIEJJREk6IEdDLmdldFN0eWxlKCkgbmV2ZXIgcmV0dXJucyBTV1QuUklHSFRfVE9fTEVGVCBpbiBTV1QuRE9VQkxFX0JVRkZFUkVEIG1vZGUgb24gVmlzdGEgIAo8YnI+MTg2MDM0IC0gTlBFIGluIFNoZWxsLmZpbHRlclByb2MgIAo8YnI+MTg2MDU0IC0gW0RORF0gQ29tYm8gRHJhZy1hbmQtZHJvcCBwZXJmb3JtZWQgdHdpY2UgIAo8YnI+MTg2MzM1IC0gRWNsaXBzZSBhY3RpdmUgd2l0aG91dCBzaGVsbCBhY3RpdmF0aW9uIGV2ZW50cyAgCjxicj4xODY0NDggLSBFeGNlcHRpb25zIHNlbGVjdGluZyB0cmVlIGl0ZW1zICAKPGJyPjE4NjU1NyAtIE5vIERlYWN0aXZhdGUgZXZlbnRzIGZyb20gT05fVE9QIHNoZWxscyAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwNDAgLSBUdWVzZGF5IE1heSA4LCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTUwMzU3IC0gW0xpbnV4XSBbY2Fpcm9dIEdDLnNldEFkdmFuY2UodHJ1ZSkgYW5kIHN1YnNlcXVlbnQgZHJhd2luZyBvZiBpbWFnZXMgZmFpbHMgIAo8YnI+MTc4Nzc5IC0gW3R5cGluZ10gSUFFIGluIEpGYWNlVGV4dFV0aWwuZ2V0UGFydGlhbFRvcEluZGV4KCkgIAo8YnI+MTgwNTExIC0gW3R5cGluZ10gRWRpdG9yIGZsYXNoZXMgd2hlbiBleHRlbmRpbmcgc2VsZWN0aW9uIGJ5IHdvcmQgd2l0aCBDdHJsK1NoaWZ0K1JpZ2h0ICAKPGJyPjE4MTg0MyAtIE9uIE1hYywgV2lkZ2V0LmtFdmVudENvbnRyb2xUcmFjayhpbnQsIGludCwgaW50KSBpbnNlcnRzIHVuYWNjZXB0YWJsZSBkZWxheXMgaW50byBhc3luY0V4ZWMgbWVzc2FnZSBwcm9jZXNzaW5nICAKPGJyPjE4NTI2MyAtIExpbmsgd2lkZ2V0IGNhbGN1bGF0ZXMgaW5jb3JyZWN0IHdpZHRoIHdoZW4gIiYiIGlzIHBhcnQgb2YgdGV4dCAgCjxicj4xODU2MTcgLSBbUHJlc2VudGF0aW9uc10gQUlPQkUgb24gQ1RhYkZvbGRlciBzZXRTZWxlY3Rpb25CYWNrZ3JvdW5kICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAzOWIgLSBXZWRuZXNkYXkgTWF5IDIsIDIwMDcgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxODQyNjYgLSBbVmlld2Vyc10gVHJlZSBvbiBFeHRlbnNpb25zIHBhZ2UgaW5pdGlhbGx5IHNjcm9sbGVkIHRvIHRoZSByaWdodAo8YnI+MTg1MDkwIC0gQ2Fubm90IFN0YXJ0IChWTSBjcmFzaCkKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAzOWEgLSBXZWRuZXNkYXkgTWF5IDIsIDIwMDcgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxODQ5MjIgLSBHVEs6IGNyYXNoIHdoZW4gY2FsbGluZyBUYWJsZS5nZXRJdGVtSGVpZ2h0KCkKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAzOSAtIFR1ZXNkYXkgTWF5IDEsIDIwMDcgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxODQ3NzQgLSBDb3B5LXBhc3RlIGVycm9yIGluIFNXVC5SSUdIVCBqYXZhZG9jICAKPGJyPjE4NDgzNiAtIE1pc3Npbmcgc2hlbGwgYWN0aXZhdGlvbiBldmVudHMKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAzOCAtIE1vbmRheSBBcHJpbCAzMCwgMjAwNyA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEyNzgzOSAtIG1hbnkgQ29udHJvbEV4YW1wbGUgZXhhbXBsZSB3aWRnZXRzIG5ldmVyIGxvc2UgdGhlaXIgYmFja2dyb3VuZCAgCjxicj4xMjc5NzkgLSBiYWNrZ3JvdW5kaW1hZ2UgYnVnIGluIGdub21lICAKPGJyPjEzNjMzMiAtIFNoZWxsLmdldFNpemUgaXMgd3JvbmcgZm9yIG5vbi1kZWNvcmF0ZWQgc2hlbGxzICAKPGJyPjEzNjczOSAtIFNXVCBUYWJsZSBhbHdheXMgaGFzIGxpbmVzIHZpc2libGUgaW4gR1RLICAKPGJyPjE0MTY4NyAtIEJhY2tncm91bmQgd2l0aCBJTkhFUklUX0RFRkFVTFQgaGFzIHdyb25nIG9yaWdpbiBmb3IgY2hpbGRyZW4gIAo8YnI+MTQ5MjA4IC0gTGluayB3aWRnZXQgZm9yZWdyb3VuZCBjb2xvciBub3Qgc2V0ICAKPGJyPjE1MDc1MSAtIEluIEdUSywgc2V0QmFja2dyb3VuZEltYWdlIGFuZCBzZXRCYWNrZ3JvdW5kTW9kZSBmYWlsZWQgd2hlbiBjaGlsZHJlbiBzZXRGb3JlZ3JvdW5kICAKPGJyPjE1MzE5MSAtIHNldHRpbmcgTk9fQkFDS0dST1VORCBzdHlsZSBvbiBDYW52YXMgdHVybnMgaXQgZnVsbHkgYmxhY2sgIAo8YnI+MTUzMTk3IC0gQ2FudmFzJyBwYXJlbnQgZG9lcyBub3QgbG9zZSBiYWNrZ3JvdW5kIGltYWdlICAKPGJyPjE2MDI5MiAtIE5QRSB3aGVuIG9wZW5pbmcgZXhpc3Rpbmcgd29ya3NwYWNlIG9uIE1vdGlmICAKPGJyPjE2Njk1NiAtIFtCcm93c2VyXSBTU0wgU2VjdXJpdHkgUGFuZWwgZG9lc24ndCByZXNwb25zZSBhZnRlciBzaG93biBvbiBYVUxSdW5uZXIxODAxIGF0IFN1U2UgTGludXggMTAgIAo8YnI+MTY3Njg2IC0gQmFja2dyb3VuZC9Gb3JlZ3JvdW5kIENvbG9yIHN0eWxlIGJpdCBub3QgcmVzcGVjdGVkIHdpdGhvdXQgYSBib3JkZXIvc2Nyb2xsIGJhciAgCjxicj4xNjgwMzQgLSBEZWFkbG9jayBpbiBicm93c2VyIGNvbnRyb2wgKElFPykgIAo8YnI+MTY5MjkwIC0gW2Jyb3dzZXJdIERpZmZlcmVudCBiZWhhdm9yIG9mIG9wZW5pbmcgYSBQREYgZmlsZSB3aGVuIHNldHRpbmcgVVJMIGFuZCBjbGlja2luZyB0aGUgVVJMICAKPGJyPjE2OTI5MiAtIFtCcm93c2VyXSBEb3dubG9hZCBzYW1lIGZpbGUgZmFpbHMgYWZ0ZXIgY2FuY2VsIHR3aWNlICAKPGJyPjE2OTI5MyAtIFticm93c2VyXSBBRCBwb3AtdXAgZG9lc24ndCBzaG93IGlmIGZsYXNoIHBsdWctaW4gbm90IGluc3RhbGxlZC4oTm8gT3BlbldpbmRvdyBsaXN0ZW5lcikgIAo8YnI+MTY5NjY0IC0gT24gcGxhdGZvcm1zIG90aGVyIHRoYW4gV2luZG93cywgc2V0dGluZyBiYWNrZ3JvdW5kIGNvbG9yIHRvIENvbXBvc2l0ZXMgaW5zaWRlIFRhYkZvbGRlciBkb2Vzbid0IHdvcmsgYXMgZXhwZWN0ZWQgKGxpa2UgaW4gV2luZG93cykgIAo8YnI+MTcyNzU3IC0gcG9wdXBzIGNsb3NlIG9uIHJlc2l6ZSAgCjxicj4xNzI3OTIgLSBQcmVzc2luZyBDdHJsK1BhZ2VVcCBvciBQYWdlRG93biBpbiBTZWFyY2ggV2luZG93IGNyYXNoZXMgSlZNICAKPGJyPjE3NDQ1NCAtIFN0eWxlZFRleHQgYWR2YW5jZWQgdGV4dCBzZXJ2aWNlcyBub3Qgd29ya2luZyBmb3IgSUJNIEtvcmVhbiBDNEVCICAKPGJyPjE3NTI1OSAtIFNXVEV4Y2VwdGlvbiBzdGFja3RyYWNlIG1pc2xlYWRpbmcgd2hlbiBpbiBEaXNwbGF5LnN5bmNFeGVjICAKPGJyPjE3NjQ5MSAtIE1lc3NhZ2VCb3ggY29uc3VtZXMgMTAwJSBDUFUgb24gTGludXgvR1RLICAKPGJyPjE3NzM3NCAtIFNFR1YgaW4gbGlic3d0LXBpLWd0ay0zMzMwICAKPGJyPjE3ODAwOCAtIE9mZnNldHMgd2hlbiByZW5kZXJpbmcgdGV4dCBpbiBhIHRyZWUvdGFibGUgaXRlbSAgCjxicj4xNzgzODggLSBDVGFiSXRlbSBnZXRzIGNsaXBwZWQgb24gcmlnaHQgaGFuZCBzaWRlICAKPGJyPjE3ODQ5NSAtIFtCcm93c2VyXSBDb250cm9sLU4gZnJvbSBCcm93c2VyIGNhdXNlcyBtdWx0aXBsZSBlcnJvcnMuICAKPGJyPjE3OTEwNSAtIFJldmVydCBDVGFiSXRlbSB1bnNlbGVjdGVkIHRhYiBzZXBhcmF0b3Igc3R5bGUgZm9yIHNpbXBsZSB0YWJzICAKPGJyPjE3OTIwOSAtIEdyYXkgYm94IHN1cnJvdW5kaW5nIGhlbHAgaWNvbiBsb29rcyBhd2Z1bCBpbiBtYW5pZmVzdCBlZGl0b3JzIChMaW51eCkgIAo8YnI+MTc5MjY2IC0gW1ByZXNlbnRhdGlvbnNdIERCQ1MzLjM6IHRhYiBsYWJlbCAiLi4uIiBpc24ndCBhZGRlZCBpbiAzLjAgcHJlc2VudGF0aW9uICAKPGJyPjE3OTQ2NSAtIFtCcm93c2VyXUNyYXNoIG9uIExpbnV4IHdoZW4gdmlzaXRpbmcgd3d3LmNubi5jb20gaW4gc3d0IDMuM202ICAKPGJyPjE4MDYyMSAtIG92ZXJsYXAgaW1hZ2UgdHJhbnNwYXJlbmN5IGZhaWx1cmUgaW4gMTZiaXRzIGNvbG9yIHF1YWxpdHkgIAo8YnI+MTgxOTMxIC0gZG91YmxlLWNsaWNrIGFmdGVyIG9wZW5pbmcgYnJhY2UgZG9lcyBub3Qgc2VsZWN0IGFsbCBibG9jayAgCjxicj4xODI5MDYgLSBUYWJsZSBzZWxlY3Rpb24gd2l0aCBDVFJMK1NISUZUIGRvZXMgbm90IHNlbmQgZXZlbnRzICAKPGJyPjE4MzM2OCAtIFs2NF0gSlZNIGNyYXNoIGR1cmluZyBzdGFydHVwIG9uIExpbnV4IHg4Nl82NCB3aXRoIEkyMDA3MDQxOC0xMDEyICAKPGJyPjE4MzgzMCAtICJYbGliOiB1bmV4cGVjdGVkIGFzeW5jIHJlcGx5IiBhbmQgZGVhZGxvY2sgaW4gR0xYLmdsWE1ha2VDdXJyZW50KGludCwgaW50LCBpbnQpICAKPGJyPjE4NDM4NSAtIFNldEl0ZW1Db3VudCgpIGluIFRhYmxlIGV4dHJlbWx5IHNsb3cgb24gTWFjT1NYIHdoZW4gbG93ZXJpbmcgaXRlbWNvdW50ICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAzNmEgLSBUdWVzZGF5IEFwcmlsIDI0LCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KODI1MDAgLSBUYWJGb2xkZXIgc2hvdWxkIG5vdCB1c2UgUHRDYWxjQ2FudmFzIGluIGdldENsaWVudEFyZWEgIAo8YnI+MTE5MTA5IC0gS2V5RXZlbnQuZG9pdCBkb2VzIG5vdCB3b3JrIGZvciBhIENDb21ibyAgCjxicj4xMzM1OTcgLSBjb2x1bW4gcmVzaXplIGN1cnNvciBzaG93cyBhdCB3cm9uZyBwb3NpdGlvbiAgCjxicj4xNTQxMDEgLSBHVEsgUHJpbnRpbmcgIAo8YnI+MTYyOTQyIC0gW0Jyb3dzZXJdIFRleHRib3ggb24gd2VicGFnZSBsb2NrcyB1cCBhZnRlciBwdXNoaW5nICJCYWNrIiAgCjxicj4xNjkyOTEgLSBbRG5EXSBDb21ibzogSW5jb3JyZWN0IERyYWdTdGFydCB3aGVuIG1vdXNlIGhvdmVyIHN0aWxsIGluc2lkZSBjb21ibyByZWdpb24gIAo8YnI+MTc2MzA3IC0gW0Jyb3dzZXJdIFNXVCBCcm93c2VyIGNyYXNoZXMgRWNsaXBzZSBpZiBwYWdlIGNvbnRlbnRzIHNldCBieSBzZXRUZXh0IGNvbnRhaW5zIGEgbmFtZWQgYW5jaG9yICAKPGJyPjE3OTIwMyAtIFtPU1hdIEdDKFByaW50ZXIpLmdldENsaXBwaW5nKCkgaXMgYWx3YXlzIFswLDAsMCwwXSAgCjxicj4xNzkyMDQgLSBbT1NYXSBQcmludGVyIGluc3RhbmNlIHVudXNhYmxlIGFmdGVyIGNhbmNlbEpvYigpICAKPGJyPjE3OTM2OCAtIE5lZWQgdG8gZHJhdyB0ZXh0IHNlbGVjdGlvbiB1c2luZyBuYXRpdmUgZnVuY3Rpb25hbGl0eSAgCjxicj4xODE5NTYgLSBQcm9ncmFtLmZpbmRQcm9ncmFtKFN0cmluZykgdW5leHBlY3RlZGx5IHJldHVybnMgbnVsbCAgCjxicj4xODI0OTggLSBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5UZXh0IGlzIG5vdCBlZGl0YWJsZSBhbmQgc2V0IGEgX2ZvcmVncm91bmRfIGNvbG9yLCB0aGUgYmFja2dyb3VuZCBjb2xvciBjaGFuZ2VzIHRvIGRlZmF1bHQuICAKPGJyPjE4Mjc0OCAtIFN0eWxlZFRleHQgY2hlZXNlIHdoZW4gcmVkcmF3aW5nIHNlbGVjdGlvbiBpbiBGVUxMX1NFTEVDVElPTiBtb2RlICAKPGJyPjE4Mjc3NyAtIEltYWdlLmdldEltYWdlRGF0YSBjcmFzaGVzIFZNIGluIHdpbjMyLk9TLk1vdmVNZW1vcnkgIAo8YnI+MTgyODEwIC0gW09wZW5HTF0gR0xDYW52YXMuaXNDdXJyZW50KCkgYWx3YXlzIHJldHVybnMgZmFsc2Ugb24gV2luZG93cyAgCjxicj4xODI5OTAgLSBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpbiBtb25pdG9yRW51bVByb2MoKSBpbiBDbGFzcyBEaXNwbGF5ICAKPGJyPjE4Mjk5MSAtIHdpZGdldCBpcyBkaXNwb3NlZCBleGNlcHRpb24gd2hlbiBkaXNwb3NpbmcgVGFibGVFZGl0b3IgIAo8YnI+MTgzMjUzIC0gcHJvdGVjdGVkIG1ldGhvZHMgaW4gd3BmIHZlcnNpb24gb2YgVGV4dFRyYW5zZmVyIGFyZSBwdWJsaWMgaW4gb3RoZXJzICAKPGJyPjE4MzI1NCAtIE1hYzogY2FsbGluZyBUcmVlSXRlbS5zZXRUZXh0IGNhbiBjYXVzZSBhIFNldERhdGEgY2FsbGJhY2sgIAo8YnI+MTgzMjgwIC0gVGFibGVDdXJzb3IucGFpbnQoKSB1c2VzIHN0cmluZyAhPSAiIiwgc2hvdWxkIGJlIHN0cmluZy5sZW5ndGgoKSA+IDAgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDM2IC0gVHVlc2RheSBBcHJpbCAxNywgMjAwNyA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjYxMDIzIC0gW1Byb2dyYW1dIFByb2dyYW0uZ2V0SW1hZ2VEYXRhKCkgcmV0dXJucyBudWxsIGZvciBleGVjdXRhYmxlcyAoKi5leGUgZmlsZXMpICAKPGJyPjgxNDY3IC0gRHJhdzJEIGZhaWxzIHRvIHByaW50IG9uIE1hYyBPU1ggMTAuMwo8YnI+ODY3ODUgLSBbUHJvZ3JhbV0gUHJvZ3JhbS5maW5kUHJvZ3JhbSg8RXh0ZW5zaW9uPikgZG9lc24ndCBmaW5kIEljb25zIGZvciBJY29uSGFuZGxlcnMgIAo8YnI+OTYyNDQgLSBbUHJvZ3JhbV0gUHJvZ3JhbS5maW5kUHJvZ3JhbSBkb2VzIG5vdCBwaWNrIHVwIGN1c3RvbWl6ZWQgYXBwbGljYXRpb25zIGZvciBmaWxlIGV4dGVuc2lvbnMgIAo8YnI+MTQzNzA3IC0gc29ydGVkIFRhYmxlIGNvbHVtbiBiYWNrZ3JvdW5kIG92ZXJyaWRlcyBUYWJsZUl0ZW0gYmFja2dyb3VuZCAgCjxicj4xNDg4OTEgLSBbUHJvZ3JhbV0gUHJvZ3JhbS5nZXRJbWFnZURhdGEoKSBmYWlscyBmb3IgQWRvYmUgQWNyb2JhdCBhbmQgb3RoZXJzLiAgCjxicj4xNTM5MzYgLSBFY2xpcHNlIGZyZWV6ZXMgd2hlbiBvcGVuaW5nIGFuIGVkaXRvciAgCjxicj4xNTY4MTcgLSBCYWNrZ3JvdW5kLUNvbG9yIG9mIFRyZWVJdGVtIHNob3VsZCBvdmVycmlkZSBTb3J0LUNvbHVtbi1Db2xvciAgCjxicj4xNjQ4MjIgLSBjbGlja2luZyBiZWhpbmQgc2VsZWN0ZWQgdGV4dCBpbiBUZXh0IHdpZGdldCBtaXNwbGFjZXMgdGhlIGN1cnNvciAgCjxicj4xNjc3MjggLSBWaXN0YSBoYXMgY2hlZXNlIHdoZW4gcmVzaXppbmcgYSBjb2x1bW4gIAo8YnI+MTc3NDAxIC0gU1dUIHdpbGwgbm90IGJ1aWxkIG9uIFFOWCBOZXV0cmlubyA2LjMgYW5kIGdyZWF0ZXIgIAo8YnI+MTc4Mjk0IC0gVW5zYXRpc2ZpZWRMaW5rRXJyb3I6IG5vIHN3dC1jb20td3BmLTMzMzIgb3Igc3d0LWNvbS13cGYgIAo8YnI+MTc4NjM5IC0gRGF0ZVRpbWUgYW5kIFNwaW5uZXIgcHJlZmVycmVkIGhlaWdodCB3cm9uZyBvbiBWaXN0YSAgCjxicj4xNzg3NDggLSBTb3J0LUNvbHVtbiBkcmF3cyBvdmVyIGN1c3RvbW93bmVyZHJhd24gc2VsZWN0aW9uIGNvbG9yIGluIFRyZWUgIAo8YnI+MTc4NzY2IC0gVG9vbFRpcCBqdW1wcyBhcm91bmQgIAo8YnI+MTgwODE4IC0gW0Jyb3dzZXJdIGdldFdlYkJyb3dzZXIoKSBtZXRob2Qgb2YgU1dULk1vemlsbGEgcmV0dXJucyBudWxsIHdoZW4gY2FsbGVkIGZvciBhIGJyb3dzZXIgZW1iZWRkZWQgd2l0aGluIGEgcGFnZSBvZiBhIE11bHRpUGFnZUVkaXRvciAgCjxicj4xODEzMDIgLSBbTGludXhdIFNXVCBEZWFjdGl2YXRlIGV2ZW50IG5vIGxvbmdlciBmaXJlZCB3aGVuIGEgU2hlbGwgaXMgZGVhY3RpdmF0ZWQgIAo8YnI+MTgxNDA1IC0gW0Jyb3dzZXJdIE9wZW5pbmcgd2ViIHBhZ2Ugd2l0aCBhcHBsZXQgY2F1c2VzIEVjbGlwc2UgdG8gaGFuZyAgCjxicj4xODIwMDEgLSBXaGFja3kgYmVoYXZpb3VyIGluIHRoZSB1cGRhdGUgbWFuYWdlciB3aXRoIFdQRiBkcm9wIG9mIEVjbGlwc2Ugb24gV2luZG93cyBWaXN0YSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMzUgLSBUdWVzZGF5IEFwcmlsIDEwLCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTQ2NTQgLSBbdHlwaW5nXSBTaW5nbGUgbGluZSBzZWxlY3Rpb24gb24gdHJpcGxlLWNsaWNrICAKPGJyPjQzNzQ2IC0gW0RORF0gTnVsbCBUcmFuc2ZlciBmb3IgRE5EIGxpc3RlbmVyIGNhdXNlcyBWTSB0byBoYW5nICAKPGJyPjE0MTU2OSAtIG9wZW5pbmcgVGFibGVFZGl0b3Igb24gcGFydGlhbGx5LXZpc2libGUgaXRlbSBhcHBlYXJzIHR3aWNlICAKPGJyPjE1MTg5MSAtIFRhYmxlLmNvbXB1dGVTaXplIHJldHVybnMgd3JvbmcgdmFsdWUgb24gR1RLICAKPGJyPjE2MjU3OCAtIFtCcm93c2VyXSBDaGFuZ2luZyBzdGF0dXMgbWVzc2FnZSBpbiBVYnVudHUncyBidWlsdC1pbiBGaXJlZm94IGJyb3dzZXIgZG9lc24ndCB3b3JrICAKPGJyPjE2NzMwMSAtIEFkZEZvbnRSZXNvdXJjZUV4IG1pc3NpbmcgZm9yIEFOU0kgaW4gT1MgIAo8YnI+MTc2MTY3IC0gRm9ybSdzIEJ1c3lJbmRpY2F0b3IgaGFuZ3Mgd29ya2JlbmNoIG9uIEdUSyAgCjxicj4xNzYzNzkgLSBbNjRdIE1lbW9yeSBjb3JydXB0aW9uIG9uIFdpbmRvd3MgeDY0IGluIFNXVCB3aGVuIGNhbGxpbmcgR2RpcGx1c1N0YXJ0dXAgIAo8YnI+MTc2NzkyIC0gW09MRV0gb3JnLmVjbGlwc2Uuc3d0LmludGVybmFsLm9sZS53aW4zMi5Db21PYmplY3QgbWlzYmVoYXZpb3IgaW4gbXVsdGl0aHJlYWRlZCBhcHBsaWNhdGlvbiAgCjxicj4xNzcxMjMgLSBEaXNwb3NlZCBUYWJsZUVkaXRvciByZWNpZXZlcyByZXNpemUgZXZlbnQgYW5kIGNyYXNoZXMgIAo8YnI+MTc4NzU3IC0gW2NvbnNpc3RlbmN5XSBUYWJsZUNvbHVtL1RyZWVDb2x1bW5zIGxhc3QgcmVzaXplIGxpc3RlbmVyIGNhbGxlZCB3aGVuIGNvbnRyb2wgaXMgcmVzaXplZCAgCjxicj4xODAwMzEgLSBbYnJvd3Nlcl0gTlBFIGlmIGJyb3dzZXIgZmllbGQgaW4gV2luZG93RXZlbnQgbm90IGZpbGxlZCBpbiAgCjxicj4xODAyMDQgLSBUcmVlIHdpdGggc3R5bGUgU1dULlZJUlRVQUwgfCBTV1QuQ0hFQ0sgZG9lc24ndCBjb3JyZWN0bHkgY2hlY2sgbm9kZXMgd2l0aG91dCBjaGlsZHJlbiAgCjxicj4xODAzNzYgLSBFY2xpcHNlL1NXVCBjcmFzaGVzIHRoZSBKVk0gIAo8YnI+MTgwNTQwIC0gRGVmYXVsdCBiZWhhdmlvdXIgZm9yIEZpbGVEaWFsb2cgZGlmZmVyZW50IG9uIFZpc3RhICAKPGJyPjE4MDYxNSAtIHRvbyBtYW55IHBhaW50IGV2ZW50cyBoYXZlIGJlZW4gc2VudCBvdXQgd2hlbiBrZXkgZG93biBpbiBDYW52YXMgIAo8YnI+MTgwNzczIC0gQ1RhYkZvbGRlcidzIGdldFNlbGVjdGlvbigpIGphdmFkb2NzIGlzIGluY29ycmVjdCAgCjxicj4xODA4MjEgLSBFY2xpcHNlIHdvbid0IHN0YXJ0IGR1ZSB0byBlcnJvciBpbiBTeXN0ZW0uV2luZG93cy5Gb250U3RyZXRjaC5Gcm9tT3BlblR5cGVTdHJldGNoICAKPGJyPjE4MDg2MyAtIFRvcCBtZW51cyBjYW4gYmUgcG9wdWxhdGVkIGJ5IGFjY2VsZXJhdG9ycyBhZnRlciBzaGVsbCBpcyBkaXNhYmxlZCAgCjxicj4xODA5OTcgLSBUcmVlOiBSaWdodCBhbGlnbmVkIGNvbHVtbnMgc3F1aXNoIHRvbyBmYXIgdG8gdGhlIHJpZ2h0LiAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMzQgLSBUdWVzZGF5IE1hcmNoIDI3LCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTUwMDc5IC0gVGFibGUvVHJlZS5nZXRJdGVtKCkgcmV0dXJucyBudWxsIHdoZW4gVGFibGUvVHJlZSBpcyBob3Jpem9udGFsbHkgc2Nyb2xsZWQuICAKPGJyPjE2NjE5OCAtIEltYWdlIHRyYW5zcGFyZW5jeSBwcm9ibGVtIGluIHRyZWUgIAo8YnI+MTcyODMyIC0gR0MuZ2V0Q2xpcHBpbmcoICkgZGlmZmVyZW5jZSBHVEsgLyBXaW5kb3dzICAKPGJyPjE3NDE4MCAtIFRhYmxlLmdldEl0ZW0oUG9pbnQpIGFsd2F5cyByZXR1cm5zIG51bGwgd2hlbiBmaXJzdCBjb2x1bW4gaXMgMCBwaXhlbHMgd2lkZSAgCjxicj4xNzcyMTAgLSBTdGFjayBvdmVyZmxvdyBpbiBTdHlsZWRUZXh0UmVuZGVyZXIKPGJyPjE3ODEzNCAtIFticm93c2VyXSBNb3ppbGxhOiByZWltcGxlbWVudCBob29raW5nIG9mIERPTSBsaXN0ZW5lcnMgICAgCjxicj4xNzg0MjYgLSBbRE5EXSBEcmFnU291cmNlRWZmZWN0IGNyZWF0ZXMgY2hlZXNlICAKPGJyPjE3ODU5NyAtIEVycm9yIE1lc3NhZ2UgaW4gQ29uc29sZSAoZ3RrY2VsbHZpZXcuYykgIAo8YnI+MTc4NzM1IC0gW0RORF0gU3RvcHMgd29ya2luZyBieSBzaW1wbHkgYWRkaW5nIGFuIEVyYXNlSXRlbSBMaXN0ZW5lciBpbiBUcmVlICAKPGJyPjE3ODc2NyAtIENUYWJGb2xkZXIgd2l0aCBTV1QuQk9UVE9NIGRyYXdzIHRvbyBtYW55IHRhYiBib3JkZXJzICAKPGJyPjE3ODgyMCAtIFN1c3BpY2lvdXMgY29kZSBpbiBDVGFiSXRlbS5kcmF3TGVmdFVuc2VsZWN0ZWRCb3JkZXIoKSAgCjxicj4xNzg5MDcgLSBDVGFiSXRlbSBkcmF3cyBleHRyYSB2ZXJ0aWNhbCBzZXBhcmF0b3Igb25lIHBpeGVsIHRvbyBmYXIgYXQgYm90dG9tICAKPGJyPjE3OTE2MSAtIFByb2dyYW0uZmluZFByb2dyYW0oU3RyaW5nIGV4dGVuc2lvbikgc2hvdWxkIGdyYWNlZnVsbHkgaGFuZGxlIGxvbmcgaW5wdXQgIAo8YnI+MTc5MzE0IC0gRXJyb3IgaW4gQklESSBzY3JlZW5zaG90ICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAzM2cgLSBUaHVyc2RheSBNYXJjaCAyMiwgMjAwNyA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE2MDcwMyAtIFRydW5jYXRpb25zIGluIFByZWZlcmVuY2VzIHBhbmVsIG9mIEluc3RhbGwvVXBkYXRlCjxicj4xNzczODkgLSBDVGFiSXRlbTogVGFicyBvbiBib3R0b20gZHJhdyB3aXRoIGEgZGlhZ29uYWwgbGluZSAgCjxicj4xNzg4MTQgLSBUcmVlIFNlbGVjdGlvbiB3ZWlyZCBmb3IgZmlyc3QgY29sdW1uIHdoZW4gY3VzdG9tLW93bmVyLWRyYXduIGlzIHVzZWQKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAzM2YgLSBUaHVyc2RheSBNYXJjaCAyMiwgMjAwNyA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE3ODMyNiAtIExhc3QgdGFiIG9uIHRoZSByaWdodCBvZiBDVGFiRm9sZGVyIGRyYXdzIGJhZGx5LiAgCjxicj4xNzg3MDUgLSBKYXZhZG9jIHdhcm5pbmdzIGluIEkyMDA3MDMyMS0xODAwICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAzM2IgLSBXZWRuZXNkYXkgTWFyY2ggMjEsIDIwMDcgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxNzc4ODUgLSBEQkNTMy4zOiBjb3JydXB0aW9ucyBpbiBlZGl0b3Igb24gV2luZG93c1Zpc3RhICAKPGJyPjE3ODMyNSAtIENvbnRyb2xFeGFtcGxlIFRyZWUgdGFiIGZvcmdldHMgIk1vdmVhYmxlIENvbHVtbnMiIGF0dHJpYnV0ZSAgCjxicj4xNzg0NjYgLSBDb21waWxlciB3YXJuaW5nIGluIEkyMDA3MDMyMC0xNjIwICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAzM2EgLSBXZWRuZXNkYXkgTWFyY2ggMjEsIDIwMDcgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxNzgxODAgLSBTV1QgYnJvd3NlciBpbiBsaW51eCBzaG91bGQgbG9hZCBwbHVnaW5zIHVuZGVyIE1PWl9QTFVHSU5fUEFUSAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDMzIC0gVHVlc2RheSBNYXJjaCAyMCwgMjAwNyA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE3NzkyNyAtIFRyaXBsZS1DbGljayBicm9rZW4gaWYgZHJhZyBzb3VyY2UgaW5zdGFsbGVkIG9uIFN0eWxlZFRleHQgIAo8YnI+MTc4MTE1IC0gSmF2YWRvYyB3YXJuaW5ncyBpbiBJMjAwNzAzMTktMTAwNSAgCjxicj4xNzgxODUgLSBUYWJzIGluIERlYnVnIGNvbmZpZ3VyYXRpb25zIGFyZSBtZXNzZWQgdXAgIAo8YnI+MTc4MzM3IC0gQ3Vyc29yIHNlbGVjdGluZyB0ZXh0IHByb3ZpZGVzIG5vIGZlZWRiYWNrICAKPGJyPjE3ODM2NCAtIFR5cGUtbyBpbiBTbmlwcGV0MjYwICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAzMiAtIFR1ZXNkYXkgTWFyY2ggMjAsIDIwMDcgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo5OTU2NCAtIEFkdmFuY2VkIGdyYXBoaWNzIGRvZXMgbm90IHN1cHBvcnQgbWlycm9yZWQgbW9kZSAgCjxicj4xMzg1NzkgLSBTdHlsZWRUZXh0OiBTdXBwb3J0IGZvciBjdXN0b20gZG91YmxlLWNsaWNrICgrZHJhZykgYmVoYXZpb3IgIAo8YnI+MTYyMDE1IC0gaW5maW5pdGUgbG9vcCBvZiByZXBhaW50IGV2ZW50cyBvbiBjYW52YXMgdmlldyBpbiBwbHVnaW4gIAo8YnI+MTY1MTA2IC0gW2NvbnNpc3RlbmN5XSBDb21iby5zZXRJdGVtcyguLi4pICAKPGJyPjE3MTU2MiAtIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiB3aGVuIHJlc2l6aW5nIGEgc2FzaGZvcm0gd2l0aCBhIHRhYmxlIHdpdGhpbiAgCjxicj4xNzMxMTcgLSBbQnJvd3Nlcl0gYWRkIHN1cHBvcnQgZm9yIGJpbmRpbmcgSmF2YVhQQ09NIHRvIEJyb3dzZXIgIAo8YnI+MTczNTczIC0gRGlzcG9zaW5nIGltYWdlIGR1cmluZyBwcmludGluZyBjcmFzaGVzIFNXVCBvbiBNYWNPUyAgCjxicj4xNzM2NTggLSBUcmFuc2Zvcm0gKyBTV1QuRE9VQkxFX0JVRkZFUkVEICsgU1dULlJJR0hUX1RPX0xFRlQgLSBub3QgZHJhd24gbWlycm9yZWQgIAo8YnI+MTczNjg0IC0gVGFiRm9sZGVyIGRpc3BsYXllZCBpbXByb3Blcmx5IGF0IHNtYWxsIHNpemVzICAKPGJyPjE3NDU2OSAtIEJhc2VsaW5lIGZvciBuZXcgU2VhcmNoIGZpZWxkIHRleHQgZG9lc24ndCBtYXRjaCBNYWMgcGxhdGZvcm0gIAo8YnI+MTc2NzE5IC0gRGlzcGxheS5nZXRBY3RpdmVTaGVsbCgpIHJldHVybnMgZGlmZmVyZW50IHJlc3VsdHMgb24gV2luZG93cyBjb21wYXJlZCB0byBMaW51eCAgCjxicj4xNzc4NTggLSBDb250cmlidXRpb25zIHRvIENUYWJGb2xkZXIsIENUYWJJdGVtOiBhZGQgaGlnaGxpZ2h0LCByZW1vdmUgZWxsaXBzZXMsIGljb24gYWx3YXlzIHNob3dpbmcsIHJpZ2h0IGVkZ2Ugb2YgdGFiIHJvdW5kZWQgIAo8YnI+MTc4MDk4IC0gQ29tcGlsZXIgd2FybmluZ3MgaW4gMy4zTTYgd2FybXVwIGJ1aWxkICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAzMSAtIE1vbmRheSBNYXJjaCAxOSwgMjAwNyA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE1Nzc5NyAtIEltcHJvdmUgamF2YWRvYyBvZiBDb250cm9sI2FkZEtleUxpc3RlbmVyKC4uKSB0byB0ZWxsIGFib3V0IGNoYW5nZWQgdHJhdmVyc2FsIGJlaGF2aW9yICAKPGJyPjE2ODEwNyAtIENUYWJGb2xkZXIgLSBTV1QuQk9SREVSICsgU1dULkZMQVQgPSBjaGVlc2UgIAo8YnI+MTcwMzkzIC0gQ1RhYkZvbGRlciBkaXNwbGF5IGJ1Z3MgIAo8YnI+MTc1ODcwIC0gRWNsaXBzZSBnZXRzIFNJR1NFR1YgIAo8YnI+MTc2MTE1IC0gQ29tYm8gd2l0aCBTV1QuUkVBRF9PTkxZIGRvZXMgbm90IHRyaWdnZXIgTW9kaWZ5RXZlbnQgIAo8YnI+MTc2NDE3IC0gU1dUIFRyZWUjc2V0VG9wSXRlbShUcmVlSXRlbSkgb24gTWFjIE9TIFggZG9lc24ndCB0YWtlIHRoZSBoZWFkZXIgaGVpZ2h0IGludG8gYWNjb3VudCAgCjxicj4xNzY1MTAgLSBTV1QgKHZlcnRpY2FsKSBTY3JvbGxCYXIgb2YgVHJlZSBvbiBNYWMgT1MgWCB3aWxsIG5vdCBmaXJlIFNXVC5TZWxlY3Rpb24gb24gbW91c2Utd2hlZWwgbW92ZW1lbnRzICAKPGJyPjE3NjYwOSAtIGN1c3RvbSBkcmF3biBUYWJsZSB3aXRoIFNXVC5WaXJ0dWFsIGl0ZW1zIHBlcmZvcm1zIHRvIG11Y2ggcGFpbnQtZXZlbnRzICAKPGJyPjE3NzA2NSAtIFRvb2xJdGVtIEltYWdlIG5vdCBwYWludGVkIGRpc2FibGVkIG9uIE1hYyBPUyBYICh3aGVuIHRoZSBUb29sSXRlbSBpcyBzZXQgdG8gYmUgZGlzYWJsZWQpICAKPGJyPjE3NzIyMyAtIFtETkRdIERyb3BUYXJnZXRFZmZlY3QgQVBJICAKPGJyPjE3NzUzMSAtIEN1c3RvbSBkcmF3IHByb2JsZW1zIHdpdGggZm9jdXMgaXRlbSBpbiBUcmVlIGFuZCBUYWJsZSAgCjxicj4xNzc2MTYgLSBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpbiBNb3ppbGxhLkRlYWN0aXZhdGUoKSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMzAgLSBUdWVzZGF5IE1hcmNoIDEzLCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTYzOTM0IC0gW01hY10gRWNsaXBzZSAzLlggb24gTWFjIE9TIFggVHJlZUVkaXRvciBQcm9ibGVtICAKPGJyPjE3NTcwNyAtIHJlbW92aW5nIE1lYXN1cmVJdGVtIGxpc3RlbmVyIGFuZCBjbGVhcmluZyBpdGVtcyBpbnZlcnRzIHRhYmxlICAKPGJyPjE3NjU5NCAtIENyYXNoIHdpdGggYW4gU1dUIHByb2dyYW0gIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDI5IC0gVHVlc2RheSBNYXJjaCA2LCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNzcxNzQgLSBSZXBhcmVudGluZyBzdXBwb3J0IG9uIE1hY09TIFggIAo8YnI+MTA4NDA3IC0gW0NvbnRyaWJ1dGlvbnNdIHdpZGdldHM6IENvbnRleHQgbWVudSB0b28gc21hbGwgYXQgYm9yZGVycyAgCjxicj4xMDg2NTEgLSBEQ1IgLSBBZGQgQVBJIHRvIG1ha2UgYSBzaW5nbGUgbGluZSB0ZXh0IGNvbnRyb2wgYmUgYSBTZWFyY2ggZmllbGQgIAo8YnI+MTExNzE4IC0gRzJYOiBQcmludCBkaWFsb2cgb2YgSGVscCBDb250ZW50cyBkb2Vzbid0IGZ1bmN0aW9uIHByb3Blcmx5IG9uIExpbnV4ICAKPGJyPjE1MTQ1NCAtIGN1c3RvbSBkcmF3IHJlc3VsdGluZyBmcm9tIGNoZWNrYm94IGNsaWNrIGRvZXMgbm90IGFwcGVhciAobW90aWYpICAKPGJyPjE2MjY4NyAtIFNXVF9BV1Q6IENyYXNoIG9uIE1hYyB3aGVuIGRpc3Bvc2luZyBhbmQgdGhlbiBjcmVhdGluZyBhIG5ldyBDb21wb3NpdGUgY29udGFpbmluZyBhbiBlbWJlZGRlZCBGcmFtZSAgCjxicj4xNzQzOTUgLSBbQnJvd3Nlcl0gU1dURXJyb3IgKFhQQ09NIGVycm9yIC0yMTQ3NDY3MjU5KSB3aGVuIHVzaW5nIHRoZSBTV1QgMy4zIEJyb3N3ZXIgd2lkZ2V0IG9uIExpbnV4IHdpdGggTW96aWxsYSAxLjcuOCAgCjxicj4xNzU2OTcgLSB2bSBpcyBjcmFzaGluZyBkdXJpbmcgbWFjIHRlc3RzIGZvciBOMjAwNzAyMjctMDAxMCAgCjxicj4xNzYwMzIgLSBOUEUgaW4gTW96aWxsYSBjcmVhdGUgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDI4IC0gVHVlc2RheSBGZWJydWFyeSAyNywgMjAwNyA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjI4ODQyIC0gTmVlZCBhIHdheSB0byB0dXJuIG9uL29mZiB0aGUgZm9jdXMgcmluZyAgCjxicj4xNzE3NzYgLSBQcmludGluZyBhY3Jvc3MgbXVsdGlwbGUgcGFnZXMgY3JlYXRlcyBpbmNvcnJlY3Qgb3V0cHV0IHdoZW4gYWR2YW5jZWQgZ3JhcGhpY3MgKGFudGlhbGlhc2luZykgaXMgdXNlZCAgCjxicj4xNzMzNzEgLSBbT0xFXSBPbGVDbGllbnRTaXRlIGZhaWxzIG9wZW4gZG9jdW1lbnQgaWYgTWljcm9zb2Z0IFdvcmQgaXMgbm90IGluc3RhbGxlZCAgCjxicj4xNzM3NjQgLSBNYWMgT1MgWCBpY29uIGNoYW5nZXMgZnJvbSAnbmljZScgdG8gJ25hc3R5JyBkdXJpbmcgbGF1bmNoIG9mIDMuM001ICAKPGJyPjE3Mzc4MiAtIFtCcm93c2VyXSBFeGNlc3NpdmUgbWVtb3J5IGZyb20gQnJvd3NlciB3aWRnZXQgb24gR1RLICAKPGJyPjE3NDU0NyAtIFtCcm93c2VyXSBbNjRdIE1vemlsbGEgWFBDT00gYnJva2VuIGluIDMuMi4yICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAyNyAtIFR1ZXNkYXkgRmVicnVhcnkgMjAsIDIwMDcgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0OTA5OCAtIFtPTEVdIFNjcm9sbGJhcnMgKGRvIG5vdCBzaG93L2JlaGF2aW9yIG5vdCBjb25zaXN0ZW50KSBpbiBPbGVFZGl0b3IgZm9yIEV4Y2VsICAKPGJyPjExMjcyNCAtIFtPTEVdIE9sZUNsaWVudFNpdGUuZG9WZXJiIGNhdXNlIEpWTSBjcmFzaCAgCjxicj4xMzI0NDQgLSBUcmVlOiBTZWxlY3Rpb24gbm90IHByb3Blcmx5IHJlZHJhd24gd2hlbiBiYWNrZ3JvdW5kIGltYWdlIHNldCAgCjxicj4xMzMxNjEgLSBUYWJsZS9UcmVlIGluY29uc2lzdGVuY3kgd2l0aCBzb3J0ZWQgY29sdW1uIGJnIGNvbG9yIHdoZW4gYWRkaW5nIFBhaW50SXRlbSBsaXN0ZW5lcnMgIAo8YnI+MTM4MTY1IC0gW09MRV0gQ2Fubm90IG1vdmUgZm9jdXMgdG8gRXhjZWwgd2hlbiBPbGVDbGllbnRTaXRlKC4uLiJFeGNlbC5TaGVldCIpIGlzIHJ1bm5pbmcgIAo8YnI+MTUwOTkwIC0gVGFibGUgc2VsZWN0aW9uIGRyYXdpbmcgaW5jb3JyZWN0bHkgd2hlbiBjdXN0b20gZHJhdyAgCjxicj4xNzA5MDcgLSBSaWdodCBjbGljayBhIHNoZWxsIG9mIFNXVC5OT19GT0NVUyBhbmQgT05fVE9QIHRvIGJyaW5nIHVwIGEgY29udGV4dCBtZW51IHdpbGwgdHJpZ2dlciBhIHNoZWxsIGRlYWN0aXZhdGVkIGV2ZW50ICAKPGJyPjE3MzY2NiAtIEV4cGFuZGJhciB0cmVhdHMgYW55IG1vdXNlIGNsaWNrIGFzIGEgbGVmdCBjbGljayAgCjxicj4xNzQxMzAgLSBUcmFuc3BhcmVudCBQTkcgY29ycnVwdGlvbiB3aXRoIFNXVCAzLjIgIAo8YnI+MTc0NDY3IC0gRHJhZyBzb3VyY2UgaW1hZ2UgZWZmZWN0IGRvZXMgbm90IGFwcGVhciBvbiBPU1ggIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDI2IC0gVHVlc2RheSBGZWJydWFyeSAxMywgMjAwNyA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEzMjMwNCAtIFRhYmxlOiBGVUxMX1NFTEVDVElPTiBmb2N1cyBvdXRsaW5lIHRvbyBzaG9ydCB3aGVuIGJhY2tncm91bmQgaW1hZ2Ugc2V0ICAKPGJyPjEzMjgyOCAtIEludGVybmFsIFdlYiBCcm93c2VyIGRvZXNuJ3Qgd29yayB3aXRoIFNlYU1vbmtleSAxLjAvRmlyZWZveCAxLjUgb24gQU1ENjQgIAo8YnI+MTUzNjY0IC0gRG91YmxlIGNsaWNrIG9uIGZpbmRlciBpY29uIGRvZXMgbm90IGJyaW5nIEVjbGlwc2UgdG8gdGhlIGZvcmVncm91bmQgIAo8YnI+MTcyNTgzIC0gQ2Fpcm8gaW1wbGVtZW50YXRpb24gbmVlZGVkIGZvciBkcmF3QmFja2dyb3VuZCAgCjxicj4xNzI4NDMgLSBbUHJvZ3JhbV0gTm90ZXMgYm9va21hcmsgVVJMIGNhbm5vdCBiZSBsYXVuY2hlZCBieSBzd3QgZm9yIExpbnV4LUdUSyAgCjxicj4xNzMwODkgLSBTV1QgVG9nZ2xlIEJ1dHRvbnMgb24gQ29vbEJhciBrZWVwIHByZXNzZWQuICAKPGJyPjE3MzI3MyAtIHNldExpbmVzVmlzaWJsZSh0cnVlKSBkb2VzIG5vdCB3b3JrIG9uIEZlZG9yYSBDb3JlIDYgIAo8YnI+MTczNDI3IC0gTWlzc2luZyBkb2N1bWVudGF0aW9uIGZvciBTV1QuQ0FOQ0VMIGluIFRleHQgIAo8YnI+MTczNjcwIC0gRGlzYWJsaW5nIENvbnRyb2xzIGRvZXMgbm90IHByZXZlbnQgcG9wdXAgbWVudSBmcm9tIGZ1bmN0aW9uaW5nICAKPGJyPjE3Mzg0NiAtIFRhYmxlJ3MgRlVMTF9TRUxFQ1RJT04gZG9lcyBub3Qgd29yayBjb3JyZWN0bHkgb24gY3VzdG9tIGRyYXcgdGFibGUgd2l0aCBiYWNrZ3JvdW5kIGNvbG9yICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAyNWMgLSBXZWRuZXNkYXkgRmVicnVhcnkgNywgMjAwNyA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE3MjU5MCAtIFtCcm93c2VyXSBjYW4ndCBjb21waWxlIGVtYmVkZGVkIGJyb3dzZXIgd2l0aCBmaXJlZm94IHVzaW5nIE4yMDA3MDIwMS0wMDEwICh2MzMyNCkgIAo8YnI+MTcyODg4IC0gQ2FyZXQgZGlzYXBlYXJzIG9uICdHbyB0byBMaW5lLi4uJyAgCjxicj4xNzI5MTggLSBEcmFnIG5vdCB3b3JraW5nIGluIEkyMDA3MDIwNS0wMDA5ICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAyNWEgLSBUdWVzZGF5IEZlYnJ1YXJ5IDYsIDIwMDcgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyNjYwNSAtIFNXVCBUYWJsZSBNb3VzZSBEb3duIGV2ZW50IG5vdCBmaXJpbmcgcHJvcGVybHkgIAo8YnI+NzkyMTMgLSBTdXBwb3J0IE1vemlsbGEgb24gYWxsIHBsYXRmb3JtcyAoaWYgYWxyZWFkeSBpbnN0YWxsZWQpICAKPGJyPjE0NDcwOSAtIHRvb2xraXQuY3JlYXRlVGV4dCBmb3IgU1dULk1VTFRJIHdpZGdldHMgZG9uJ3QgZHJhdyBhIGJvcmRlciBhcyB0aGV5IHNob3VsZCBvbiBPUyBYICAKPGJyPjE1NDk0NCAtIEhvbGRpbmcgbW91c2UgZG93biBvbiBUYWJsZSBibG9ja3MgRGlzcGxheS5hc3luY0V4ZWMgYW5kIHN5bmNFeGVjICAKPGJyPjE2Njk1OCAtIHN3dCBmaWxlIG9wZW4gZGlhbG9nIGZhaWxzIHRvIG9wZW4gb24gRkM2IHdpdGggZ25vbWUgIAo8YnI+MTcwODc3IC0gRWRpdG9yIHZpZXdwb3J0IG5vdCBjb3JyZWN0IGFmdGVyIHJlc3RhcnQgIAo8YnI+MTcyNzU0IC0gW0RORF0gRHJhZyBuIGRyb3Agb2YgY2xhc3NlcyBzaG91bGRuJ3QgbGV0IHBhY2thZ2Ugbm9kZXMgb3BlbiAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMjUgLSBNb25kYXkgRmVicnVhcnkgNSwgMjAwNyA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE1ODc0NiAtIENhbnZhcyNzY3JvbGwgZm9yY2VzIGFuIHVwZGF0ZSAtIGFueSB3YXkgYXJvdW5kIHRoaXMgYmVzaWRlcyBzZXRSZWRyYXcoZmFsc2UpICAKPGJyPjE2MjI1MyAtIFNXVCBTeXN0ZW1UcmF5IHN1cHBvcnQgb24gT1NYIC0gVHJheUl0ZW1zIG5vdCBhcHBlYXJpbmcgIAo8YnI+MTY2NDgzIC0gW1Byb2dyZXNzXSBSYW5kb20gc2hlbGxzIGNvbWUgdG8gdGhlIGZyb250IHdoZW4gY29tcGFyZSBlZGl0b3Igc2hvd3MgcHJvZ3Jlc3MgZGlhbG9nICAKPGJyPjE2Njc2MCAtIFticm93c2VyXVJlZEhhdCBFTDRVcGRhdGU0LCBzd3QuYnJvd3NlciBjYW5ub3Qgc2hvdyB3aXRoIGluc3RhbGxlZCB4dWxydW5uZXIgMS44LjAuMSAgCjxicj4xNjc3NDQgLSBWaXN0YSBUcmFja2VyIGluY3JlZGlibHkgc2xvdyAgCjxicj4xNjkwNDggLSBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpbiBTY3JvbGxhYmxlIHdoZW4gcGFyZW50PW51bGwgIAo8YnI+MTcwNjIzIC0gW2Jyb3dzZXJdIEZhaWxzIHRvIGZpbmQgeHVscnVubmVyIG9uIDY0LWJpdCBzeXN0ZW1zICAKPGJyPjE3MTY5MSAtIGNvbnRyb2xzIG9uIGhpamFja2VkIHNwbGFzaCBzaGVsbCBkaXNhcHBlYXIgIAo8YnI+MTcxOTk1IC0gU1dUIExhYmVscyBkb2VzIG5vdCBzaG93IGFjY2VsZXJhdG9yIGNoYXJhY3RlcnMgd2hlbiB0aGllciBwYXJlbnQgaXMgYSBUYWJGb2xkZXIgIAo8YnI+MTcyMDAxIC0gSmF2YWRvYyB3YXJuaW5ncyBpbiBOMjAwNzAxMjktMDAxMCAgCjxicj4xNzIxNzUgLSBbRE5EXSBTdHlsZWRUZXh0LmdldFNlbGVjdGlvbigpIG5vdCB2YWxpZCBkdXJpbmcgRG5EPyAgCjxicj4xNzIxNzkgLSBEaXNwbGF5LnBvc3QoRXZlbnQpIHdpdGggU1dULk1vdXNlTW92ZSBtb3ZlcyB0byB3cm9uZyBsb2NhdGlvbiAgCjxicj4xNzIyNjUgLSBbRE5EXSB1bnByZWRpY2FibGUgY2FyZXQgbW90aW9uICAKPGJyPjE3MjUzNyAtIE5vIGNvbG91cmVkIGN1cnNvciBvbiBHVEsgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDI0IC0gVHVlc2RheSBKYW51YXJ5IDMwLCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTYzMzM5IC0gVW5leHBlY3RlZCByZXN1bHRzIHdoZW4gdXNpbmcgZHJhd0ZvY3VzIHdpdGggYWR2YW5jZWQgZ3JhcGhpY3MgaXMgZW5hYmxlZCBhbmQgRE9VQkxFX0JVRkZFUkVEICAKPGJyPjE2ODM4NCAtIFByb2JsZW0gd2l0aCBncmF5ZWQgZGlzYWJsZWQgYnV0dG9uIGltYWdlICAKPGJyPjE3MDU3MSAtIFdhcm5pbmdzIGluIFNXVCBsYXVuY2hlciBzYW1wbGUgIAo8YnI+MTcwOTczIC0gW1Byb2dyYW1dIEVycm9yIHdoZW4gb3BlbmluZyB3b3JkIGFuZCBleGNlbCBkb2N1bWVudHMgIAo8YnI+MTcxMTA1IC0gVmlldyB1c2luZyBTV1RfQVdUIGNyYXNoZXMgb24gTWFjIGlmIG9wZW4gYXQgc3RhcnR1cCAgCjxicj4xNzEyNzggLSBwYXRjaCBmb3Igb3JnLmVjbGlwc2Uuc3d0LndpbjMyLndjZV9wcGMuYXJtL2J1aWxkX2N1c3RvbS54bWwgIAo8YnI+MTcxMzU4IC0gW2Jyb3dzZXJdIGV4Y2VwdGlvbiB0aHJvd24gd2hlbiBKUyBjYWxsICJjb25maXJtIiBpbiBhIGZyYW1lc2V0IHN0cnVjdHVyZSAgCjxicj4xNzE0ODQgLSBqYXZhZG9jIHdhcm5pbmcgaW4gSTIwMDcwMTIzLTEwMzAgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDIzIC0gVHVlc2RheSBKYW51YXJ5IDIzLCAyMDA3IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTAzODk4IC0gSlZFTEFZVDEwIC0gU3Bpbm5lcnMgdGV4dCBkb24ndCB3b3JrIGluIEZpbGxMYXlvdXQgQ3VzdG9taXplIHdpbmRvdyAgCjxicj4xMTg3MDkgLSBTdXBwb3J0IFdpbmRvd3MgbW5lbW9uaWMgKGFuZCBmb2N1cykgaGlkaW5nIG9wdGlvbnMgIAo8YnI+MTI4MjEyIC0gVG9vbHRpcHMgYXBwZWFyIG9mZiByaWdodCBlZGdlIG9mIHNjcmVlbiAgCjxicj4xNDI5NDcgLSBbRE5EXSBDbGFzc2VzIHRvIHByb3ZpZGUgZHJhZyB1bmRlciBmZWVkYmFjayBzaG91bGQgYmUgcHVibGljICAKPGJyPjE1NTgxNyAtIFtWaWV3ZXJzXSBUcmVldmlldyBleHBhbmQvY29sbGFwc2UgaWdub3JlcyBzb21ld2hhdCBxdWljayArIGFuZCAtIGNsaWNrcyAoZG91YmxlY2xpY2tzKSAgCjxicj4xNjY1NDggLSBTYXNoRm9ybSBubyBsb25nZXIgd29ya2luZyBvbiBPU1ggIAo8YnI+MTY2OTIzIC0gU3Bpbm5lci5nZXRTZWxlY3Rpb24oKSByZXR1cm5zIGEgd3JvbmcgdmFsdWUgIAo8YnI+MTY3NjU2IC0gVGV4dCB3aWRnZXQgaGFzIGluY29uc2lzdGVudCBmb250IHNpemVzIG9uIHRoZSBtYWMgIAo8YnI+MTY3NzQ4IC0gUHJvZ3JhbSBjbGFzcyBpbmNvcnJlY3RseSBlc2NhcGVzIGFscmVhZHktZXNjYXBlZCBjaGFyYWN0ZXJzIG9uIE1hYyAgCjxicj4xNjc4MzEgLSBjaGVjayBib3ggdGFibGUgaW1hZ2VzIGNvbnRhaW4gZXh0cmEgcGl4ZWxzICAKPGJyPjE2ODQyOSAtIFN0eWxlZFRleHQ6IHNlbGVjdGlvbiBhbmQgc2Nyb2xsIGJhciB0aHVtYnMgbm90IGNvcnJlY3QgIAo8YnI+MTY4NDQ0IC0gTlBFIHdoZW4gdXNpbmcgbW91c2UgdG8gc2VsZWN0IG5leHQgZWRpdG9yICAKPGJyPjE2ODcwMCAtIFtPcGVuTW9kZXNdIERvdWJsZSBjbGlja3Mgbm90IHdvcmtpbmcgaW4gTjIwMDYxMjIwLTAwMTAgIAo8YnI+MTY4ODIxIC0gRWNsaXBzZSB3aWxsIGNyYXNoIHdpdGggbWVzc2FnZSAiV2lkZ2V0IGlzIGRpc3Bvc2VkIi4gIAo8YnI+MTcwNzg1IC0gVGFibGUgSGVhZGVycyBnZXR0aW5nIHJhbmRvbSBpbWFnZXMgb24gVmlzdGEgd2hlbiBjeWNsaW5nIHRocm91Z2ggc29ydCBpbmRpY2F0b3IgIAo8YnI+MTcwODEzIC0gZ2V0U2VsZWN0aW9uKCkgbWV0aG9kIGZvciBWSVJUVUFMIFRyZWUgcmV0dXJucyBtYXguIGVpZ2h0IGl0ZW1zICAKPGJyPjE3MDg0OSAtIFByb3ZpZGUgYW4gQVBJIGZvciBjdXN0b20gY29udHJvbHMgdG8gZGV0ZWN0IGEgZHJhZyBvcGVyYXRpb24gIAo8YnI+MTcwOTAwIC0gamF2YWRvYyB3YXJuaW5ncyBpbiBOMjAwNzAxMTgwMDEwICAKPGJyPjE3MTA0OCAtIFJlc2l6aW5nIG9uIFZpc3RhIGNhdXNlcyBibGFjayBiYXJzIHRvIGFwcGVhciAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMjIgLSBUdWVzZGF5IEphbnVhcnkgMTYsIDIwMDcgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxNjM2MjkgLSBbTUFDXVNXVF9BV1Q6IEVjbGlwc2UgY3Jhc2hlcyB3aGVuIGVtYmVkIFNXVF9BV1QubmV3X0ZyYW1lIGluIGEgVmlld1BhcnQuCjxicj4xNjcxMjQgLSBbQVdUXSBTV1RfQVdUIGJyaWRnZSBkb2Vzbid0IHJ1biBvbiBBSVggIAo8YnI+MTY3Nzk5IC0gRGlyZWN0b3J5Q2hvb3NlciBjYXVzZXMgZWNsaXBzZSB0byBmcmVlemUuICAKPGJyPjE2ODQ4MyAtIE9uIFNMRUQxMCwgY29udGV4dCBtZW51IGRvZXMgbm90IGRpc3BsYXkgb24gYSBwb3B1cCBzaGVsbCB3aXRoIFNXVC5PTl9UT1Agc3R5bGUgYml0Cjxicj4xNjk3ODQgLSBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5MaW5rIGRvZXMgbm90IGZpcmUgU2VsZWN0aW9uRXZlbnRzICAKPGJyPjE2OTg0NSAtIE1hYyBPUyBYIFNXVDogZXh0cmVtZWx5IHNsb3cgYmVoYXZpb3Igb2YgVGFibGUgd2l0aCBsYXJnZXIgbnVtYmVycyBvZiBpdGVtcwo8YnI+MTcwNDYzIC0gamF2YWRvYyB3YXJuaW5nIGluIE4yMDA3MDExNS0wMDEwCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMjEgLSBUdWVzZGF5IEphbnVhcnkgOSwgMjAwNyA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEwNDc3OSAtIFNjcm9sbEJhciBTZWxlY3Rpb25FdmVudCBkZXRhaWwgZmllbGQgbm90IGJlaW5nIHNldCBjb3JyZWN0bHkgYXQgZW5kIG9mIGEgZHJhZyAgCjxicj4xNDE2NTIgLSBTaGVsbCBkb2VzIG5vdCBhbHdheXMgcmVzdG9yZSBmb2N1cyBhZnRlciBkaWFsb2cgY2xvc2VkICAKPGJyPjE0NzUxOCAtIFN0eWxlZFRleHQgZG93biBhcnJvdyAoY3Vyc29yKSBicm9rZW4gIAo8YnI+MTY0MzU1IC0gSG9yaXpvbnRhbCBzY3JvbGxpbmcgb2NjdXJzIHdoZW4gY2FsbGluZyBUcmVlLnNldFRvcEl0ZW0oKSAgCjxicj4xNjcxMjQgLSBbQVdUXSBTV1RfQVdUIGJyaWRnZSBkb2Vzbid0IHJ1biBvbiBBSVggIAo8YnI+MTY3MzkxIC0gQWNjZXNzaWJsZS5nZXRfYWNjU2VsZWN0aW9uKGludCBwdmFyQ2hpbGRyZW4pIGhhcyBlcnJvciB3aGVuIG11bHRpcGxlIGl0ZW1zIGFyZSBzZWxlY3RlZCAgCjxicj4xNjgwNDMgLSBTV1RfQVdUIG5vdCB3b3JraW5nIGluIENUYWJGb2xkZXIgd2l0aCBKREsgNiBvbiBMaW51eCAgCjxicj4xNjk0MTMgIFtWaWV3ZXJzXSBTV1QvSkZhY2UgVGFibGVFZGl0b3JzIGRvbid0IHdvcmsgaW4gMy4zTTQgb24gT1NYICAKPGJyPjE2OTU2OSAtIENoaWxkIFNoZWxsJ3MgSW1hZ2UgY2hhbmdlcyBkb2NrIGljb24gb24gT1MgWCAgCjxicj4xNjk3MTIgLSBbTGF1bmNoZXJdIEVjbGlwc2Ugd29uJ3QgbGF1bmNoIGluIE1hYyBPUyBYIDEwLjUgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDIwZCAtIFRodXJzZGF5IERlY2VtYmVyIDE0LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTQ2MTcxIC0gSlZNIGNyYXNoIHVzaW5nIFNXVF9BV1QgIAo8YnI+MTY0NDkzIC0gU3R5bGVkVGV4dCBkb2Vzbid0IHN1cHBvcnQgYWR2YW5jZWQgdGV4dCBzZXJ2aWNlcyBmb3IgS29yZWFuIElNRQo8YnI+MTY2OTM1IC0gQWNjZXNpYmlsaXR5IC0gSkFXUyBkb2VzIG5vdCByZWFkIG91dCBrZXlib2FyZCBzaG9ydGN1dHMgIAo8YnI+MTY3MjU3IC0gb3BlbiBmaWxlIG1lbnUgbm90IHdvcmtpbmcgb24gZmVkb3JhIGNvcmUgIAo8YnI+MTY3NDc2IC0gVGV4dCB2ZXJpZnkgZXZlbnQgZmllbGRzIGRpZmZlcmVudCBiZXR3ZWVuIEdUSyBhbmQgZXZlcnkgb3RoZXIgcGxhdGZvcm0gIAo8YnI+MTY3NDkxIC0gaW5jb25zaXN0ZW50IHZlcnNpb25pbmcgZm9yIHN3dCBmcmFnbWVudHMgIAo8YnI+MTY3ODcyIC0gSGFuZGxlTGVhayBpbiBGb250LmdldEZvbnREYXRhKCkgIAo8YnI+MTY3OTI1IC0gb3JnLmVjbGlwc2Uuc3d0LndpbjMyLndpbjMyLng4NiBzdGlsbCBoYXMgMy4yLjEgdmVyc2lvbiBudW1iZXJzICAKPGJyPjE2Nzk5MSAtIEphdmFkb2Mgd2FybmluZ3MgaW4gSTIwMDYxMjEzLTE4MDAgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDIwIC0gVHVlc2RheSBEZWNlbWJlciAxMiwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEwOTI1MyAtIFN1cHBvcnQgZ3JlNjQuY29uZiAgCjxicj4xMzI4NzYgLSBMaXN0IGNvbnRyb2wgZG9jdW1lbnRpb24gaXMgdmFndWUgIAo8YnI+MTU4OTgyIC0gVGFibGUgSGVhZGVycyBnZXR0aW5nIHJhbmRvbSBpbWFnZXMgb24gVmlzdGEgIAo8YnI+MTYxMzEwIC0gW0Jyb3dzZXJdIFJlLWV4YW1pbmUgbmVlZCBmb3Igc3d0LXByb2ZpbGUgIAo8YnI+MTY1MDMzIC0gVGFibGUgdmVydGljYWwgbGluZXMgYWx3YXlzIHNob3dpbmcgIAo8YnI+MTY2NzkzIC0gQ3VzdG9tLURyYXdpbmcgU2VsZWN0aW9uLUNvbG9yIG5vdCB3b3JraW5nIG9uIGNvbCA9IDAgd2l0aCBzb3J0aW5nICAKPGJyPjE2Njk0MiAtIEFwcGxpY2F0aW9uIGRvZXMgbm90IHN0YXJ0IG1heGltaXplZCBpZiBzZXRNYXhpbWl6ZWQgY2FsbGVkIGJlZm9yZSBTaGVsbC5vcGVuKCkgIAo8YnI+MTY2OTcxIC0gUmVhZCBvbmx5IHRleHQgd2lkZ2V0IHJlbmRlcnMgYmFja2dyb3VuZCBkaWZmZXJlbnRseSB3aXRoIFdJTiBYUCBUaGVtZSAgCjxicj4xNjcyMTkgLSBOUEUgaW4gb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuTWVudS5fc2V0VmlzaWJsZSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMTkgLSBUdWVzZGF5IERlY2VtYmVyIDUsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozOTU5NiAtIFtBY2Nlc3NpYmlsaXR5XSBTaG91bGQgaW5mb3JtIHVzZXIgd2hlbiB0aGVyZSBpcyBubyBoZWxwIGZvciBhIGNvbnRyb2wgIAo8YnI+NzU4MTIgLSBbYnJvd3Nlcl0gQ3Vyc29yIG92ZXIgU2FmYXJpIEJyb3dzZXIgZG9lcyBub3QgY2hhbmdlICAKPGJyPjgyMjcyIC0gTGlzdCByZXR1cm5lZCBieSBEZXZpY2UjZ2V0Rm9udExpc3QoLi4uKSBoYXMgYSBsb3Qgb2YgcmVwZXRpdGlvbiAgCjxicj4xMDIwOTkgLSBOUEUgYXQgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuVGFibGUuZ2V0Q29sdW1ucyhUYWJsZS5qYXZhOjEyMjMpICAKPGJyPjExNDAwNyAtIFRoZSBHQyBsaW5lIHdpZHRoIG11c3Qgbm90IGJlIGFuIGludCAgCjxicj4xNDY2MjYgLSBWTSBjcmFzaCB3aGVuIHNldHRpbmcgYSBmb250LiAgCjxicj4xNDY2MzIgLSBDYW4ndCBzZWxlY3QgZm9udCAiQW1lcmljYW4gVHlwZXdyaXRlciBSZWd1bGFyIi4gIAo8YnI+MTU4OTAzIC0gb3JnLmVjbGlwc2Uuc3d0LmludGVybmFsLkxpYnJhcnkgbmVlZHMgYSB3YXkgdG8gb3ZlcnJpZGUgamF2YS5saWJyYXJ5LnBhdGggIAo8YnI+MTY1MDM2IC0gU3RyYW5nZSB0YWJsZSBjb2xvcmluZyBvbiBWaXN0YSAgCjxicj4xNjUwOTEgLSBFY2xpcHNlIDMuMi54IGNvbnNpc3RlbnRseSBjcmFzaGVzIG9uIFZpc3RhICAKPGJyPjE2NTcxMiAtIENyZWF0ZSB3cmFwcGVyIFNoZWxsIGFyb3VuZCBleGlzdGluZyBoYW5kbGUgIAo8YnI+MTY2MjY0IC0gQ1RhYkl0ZW0gdW5uZWNlc3NhcmlseSByZWRyYXdzIGVudGlyZSBUYWIgb24gc2V0SW1hZ2UoKSAgCjxicj4xNjY0NzkgLSBKYXZhZG9jIHdhcm5pbmdzIGluIE4yMDA2MTEzMC0yMzAwICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAxOCAtIFR1ZXNkYXkgTm92ZW1iZXIgMjgsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxNTU2NTUgLSBbRE5EXSAnQWx0JyBkb2VzIG5vdCByZXF1ZXN0IERST1BfTElOSwo8YnI+MTY1MTA4IC0gU3Bpbm5lciBjYW4gbm90IGFwcGx5IHRoZSB2YWx1ZSB0aGF0IGlucHV0IHRvIHRleHQtYm94CjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMTcgLSBUdWVzZGF5IE5vdmVtYmVyIDIxLCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTUwMTY5IC0gSW5jb3JyZWN0IFRhYiBUaXRsZSBmb3IgSFRNTCBGaWxlIHdpdGhvdXQgJmx0O3RpdGxlJmd0OyBUYWcKPGJyPjE1ODc5NiAtIE1lc3NhZ2VCb3ggYmxvY2tzIGRpc3BsYXkgdGhyZWFkIG9uIGxpbnV4Cjxicj4xNjE4MzAgLSBpbmNvcnJlY3QgU1dULk5PX0ZPQ1VTIGJlaGF2aW91ciBmb3IgU2hlbGwgd2luZG93cyBvbiBMaW51eAo8YnI+MTYyMTk4IC0gRG5EIHJlbW92ZXMgc2VsZWN0aW9uIGFuZCBtb3ZlcyBjYXJldAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDE2IC0gVHVlc2RheSBOb3ZlbWJlciAxNCwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjM2MDcwIC0gbm8gbW91c2UgbW92ZSBpbiBidXR0b24gd2hlbiBkcmFnZ2luZyAgCjxicj42ODA2OSAtIENvcHkgdW5yZWxpYWJsZSBhZnRlciBsb25nZXIgdXNlYWdlICAKPGJyPjc4NTUwIC0gW2NvbnNpc3RlbmN5XSBtYWMgZG9lc24ndCBmaXJlIE1vdXNlVXAgdmVyeSBvZnRlbiAgCjxicj43OTA4NCAtIExvYWQgVHJ1ZVR5cGUgZm9udHMgZGlyZWN0bHkgZnJvbSBhIGZpbGUuLiAgCjxicj45MDgyMCAtIENhbnZhcyBzZXRTaXplIGRvbid0IHdvcmsgZm9yIHNpemVzID4gMzI3Njcgd2l0aG91dCB0cmh3b2luZyBhbnkgZXhjZXB0aW9uICAKPGJyPjEwNTc1MCAtIE11bHRpcGxlIE1vdXNlIExpc3RlbmVyIEJ1ZyAgCjxicj4xMjUyMjIgLSBVbmFibGUgdG8gcmVvcmRlciBwZXJzcGVjdGl2ZSBpY29ucyB2aWEgZHJhZyBhbmQgZHJvcCAgCjxicj4xNTg4MzEgLSBTV1QgU3Bpbm5lciBzZWxlY3Rpb24gdmFsdWUgZXJyb3IgIAo8YnI+MTYzNTg3IC0gUmVzb3VyY2UgbGVhayBpbiBxdWljayBhY2Nlc3MgZGlhbG9nIGxlYWRzIHRvIGV2ZW50dWFsIGNyYXNoICAKPGJyPjE2MzU5NCAtIFByb2dyYW0ubGF1bmNoIGRvZXNuJ3Qgd29yayBvbiBPU1ggIAo8YnI+MTYzNzI5IC0gR0Muc2V0TGluZURhc2ggY29ycnVwdHMgaW50ZXJuYWwgZGF0YSBvbiBleGNlcHRpb24gIAo8YnI+MTYzODI0IC0gV2hlbiBleHBhbmRpbmcgdHJlZSBpbiB2YXJpYWJsZXMgdmlldywgaWNvbiBkb2VzIG5vdCBzaG93IGV4cGFuZGVkICAKPGJyPjE2NDEzMSAtIFRhYmxlIGNvbHVtbnMgd2lkdGhzIHRvbyBzbWFsbCBvbiBWaXN0YSAgCjxicj4xNjQzMjggLSBwc2VydmVyIFVSTCBpcyBpbmNvcnJlY3QgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDE1IC0gVHVlc2RheSBOb3ZlbWJlciA3LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTUxMTUxIC0gVHJlZSBzaG91bGQgaGF2ZSAidHdpc3RpZXMiIG9uIHZpc3RhICAKPGJyPjE2MTUxMSAtIFRoYWk6IFVuYWJsZSB0byBkaXNwbGF5IFRoYWkgY2hhcmFjdGVycyBvbiBTV1QgV2lkZ2V0cyB1bmRlciBMaW51eCBlbnZpcm9ubWVudCAgCjxicj4xNjE1NTAgLSBFeHBhbmRpbmcgYSBUcmVlSXRlbSBvbiBNYWMgT1MgWCBmaXJlcyBNb3VzZVVwLU1vdXNlRG93biBpbiB0aGUgd3Jvbmcgb3JkZXIgIAo8YnI+MTYxODA5IC0gW09wZW5HTF0gTWFjIEdMQ2FudmFzIGRvZXMgbm90IGltbWVkaWF0ZWx5IHVwZGF0ZSBHTCBzdGF0ZSB1cG9uIHJlc2l6ZSAgCjxicj4xNjIzNTMgLSBJbWFnZSBzZXQgdG8gVG9vbEl0ZW0gbm90IHByb3Blcmx5IGFscGhhLWJsZW5kaW5nICAKPGJyPjE2MjU5OCAtIE11bHRpcGxlIEpWTSB0ZXJtaW5hdGlvbnMgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDE0ZCAtIFdlZG5lc2RheSBOb3ZlbWJlciAxLCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJOZXcgQVBJIj48L2E+TmV3IEFQSTwvaDM+CjxibG9ja3F1b3RlPgpOZXcgPGNvZGU+RGF0ZVRpbWU8L2NvZGU+IGNvbnRyb2wuCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMTRiIC0gVHVlc2RheSBPY3RvYmVyIDMxLCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTk5NDUgLSBEQ1I6IGRhdGUvdGltZSB3aWRnZXQgd291bGQgYmUgdXNlZnVsCjxicj4xMzk3MTEgLSBFY2xpcHNlIGxvc2VzIGtleWJvYXJkIHNob3J0Y3V0cyBvbiBPU1gKPGJyPjE2Mjk2NyAtIExhc3QgZWxlbWVudCBvZiBhIHRyZWUgZG9lc24ndCBleHBhbmQgb24gZG91YmxlLWNsaWNrCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMTQgLSBNb25kYXkgT2N0b2JlciAzMCwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE1NTQwNCAtIFtCcm93c2VyXSBlbWJlZGRlZCBNb3ppbGxhIGNyYXNoZXMgd2l0aCBTSUdTRUdWIHdoZW4gb3BlbmluZyBiaW5hcnkgZmlsZXMKPGJyPjE1ODE3NSAtIEphdmEgY29yZSBbV01fQlVUVE9ORE9XTl0gd2hlbiBzZWxlY3RpbmcgYSB0cmVlIGluIFZpc3RhICAKPGJyPjE1OTU2OCAtIExhcmdlIHN5c3RlbS5vdXQgc3RhdGVtZW50cyBjcmFzaCBzeXN0ZW0gIAo8YnI+MTYxNTMzIC0gSlZNIGNyYXNoIFtUcmVlLnNldFNlbGVjdGlvbl0gYmVjYXVzZSBTV1QgKFZpc3RhPykgZXJyb3IgIAo8YnI+MTYyMDg0IC0gVHJlZS5zZXRSZWRyYXcodHJ1ZSkgZG9lc24ndCByZWRyYXcgIAo8YnI+MTYyMTQ2IC0gW0Jyb3dzZXJdIEFwcGVuZGluZyB0byBzdHJlYW0gaGFuZ3MgdGhlIFNXVCBCcm93c2VyICAKPGJyPjE2MjE3MCAtIFRyZWUgaXRlbXMgc2hpZnRlZCB0byB0aGUgbGVmdCB3aGVuIGNvbGxhcHNpbmcgIAo8YnI+MTYyNDExIC0gc2V0RXhwYW5kZWQoZmFsc2UpIGRvZXNuJ3Qgd29yayB3aGVuIHRyZWUgaXRlbSBpcyBub3QgdmlzaWJsZSAocmVncmVzc2lvbikKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAxMyAtIFR1ZXNkYXkgT2N0b2JlciAyNCwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjk0MDEgLSBTdGlsbCBnZXQgcmVzaXplIGN1cnNvciBldmVuIHdoZW4gVGFibGUgbm90IHJlc2l6YWJsZSAgCjxicj4xMzM5NDMgLSBbRENSXSBQcm92aWRlIHdheSB0byBxdWVyeSBhIHByZXZpb3VzbHkgc2V0IEN1cnNvciAgCjxicj4xMzk1MDkgLSBUYWJsZXMgd2l0aCBTV1QuVklSVFVBTCBjYXVzZSBNZWFzdXJlSXRlbSwgUGFpbnRJdGVtIGFuZCBFcmFzZUl0ZW0gdG8gZmlyZSByZXBlYXRlZGx5IG9uIG1vdXNlIG1vdmVtZW50ICAKPGJyPjE1MzQ0OCAtIFRyZWUuc2V0UmVkcmF3KHRydWUpIGNhdXNlcyB0aGUgZHJhd2luZyBvcGVyYXRpb25zIHRvIGJlIGlnbm9yZWQgb24gc29sYXJpcyAgCjxicj4xNTQ0MjkgLSBbNjRdIEhvdFNwb3QgVmlydHVhbCBNYWNoaW5lIGVycm9yIHdoaWxlIHN0YXJ0aW5nIGVjbGlwc2UzLjNNMSAgCjxicj4xNTY5ODUgLSBJbnZva2luZyBDT00gbWV0aG9kcyBvZiB0eXBlIElOVk9LRV9GVU5DIGhhdmUgZGlmZmVyZW50IGJlaGF2aW9yIGluIEVjbGlwc2UgMy4xLjIgYW5kIEVjbGlwc2UgMy4yICAKPGJyPjE1OTU4NiAtIE5lZWQgYSB3YXkgdG8gZXhwYW5kIFRyZWVJdGVtcyB3aXRob3V0IGNhdXNpbmcgc2Nyb2xsaW5nICAKPGJyPjE2MTI1OSAtIEVtYmVkZGVkIEJyb3dzZXIgZG9lcyBub3QgYXBwZWFyIHRvIGdldCBtb3VzZSBtb3ZlL2NhcHR1cmUgKFdlYktpdC9NYWMgT1MgWCkgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDEyIC0gVHVlc2RheSBPY3RvYmVyIDE3LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTA1MTAxIC0gVHJhbnNmb3JtIHRyYW5zbGF0aW9ucyBub3QgYWNjb3VudGVkIGZvciBpbiBHQy5kcmF3Rm9jdXMoKSAgCjxicj4xMDU3NjQgLSBvcmcuZWNsaXBzZS5zd3QuY3VzdG9tLkNvbnRyb2xFZGl0b3IuY29tcHV0ZUJvdW5kcygpIGlzIHBhY2thZ2UgcHJpdmF0ZSAgCjxicj4xNTA3ODIgLSBTV1QgY2F1c2UgSlZNIGNyYXNoICAKPGJyPjE1MTE0MiAtIHBpeGVsIGNvcnJ1cHRpb25zIGluIHRhYmxlIHdpdGggQ2hlY2sgZmxhZyBhbmQgSW1hZ2VzICAKPGJyPjE1MzE5NiAtIFBhaW50IGV4YW1wbGUgZHJhd3MgbG90cyBvZiBnYXJiYWdlIG9uIG1hYyAgCjxicj4xNTUzODkgLSBDdXJzb3JzIGRvbid0IHNob3cgY29sb3VyZWQgaWYgY3JlYXRlZCBmcm9tIEltYWdlICAKPGJyPjE2MDQ5OCAtIE5lZWQgdGhlIFRyYWNrZXIgY2xhc3MgdG8gYWNjZXB0IGVtcHR5IFJlY3RhbmdsZSBsaXN0cyAgCjxicj4xNjA2NDcgLSBUYWJsZSB3aWRnZXQgbGVha3MgIAo8YnI+MTYwNjY3IC0gVGhlIGV4YW1wbGUgZG9lc250IHVwIHRvIGRhdGUuLi4uLiAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMTEgLSBUdWVzZGF5IE9jdG9iZXIgMywgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEwMzgwOSAtIFdpbkNFOiBWTSBjcmFzaCBvbiBEaXNwbGF5LmRpc3Bvc2UoKSBjYWxsICAKPGJyPjE1NTQ1MSAtIEJhZCBkcmF3aW5nIGluIFRyZWUgYW5kIFRhYmxlICAKPGJyPjE1NjQ0NSAtIFNoZWxsIGluaXRpYWxpemF0aW9uIHRvbyBzbG93ICAKPGJyPjE1Njc1NCAtIHRvb2x0aXBzIG5vdCByZWFkIGJ5IHNjcmVlbiByZWFkZXIvTVNBQSBmb3IgdG9vbGJhciBpdGVtcyB3LyBpbWFnZSAgCjxicj4xNTc1NDQgLSBMaXN0OiBwcmVmZXJyZWQgd2lkdGggaW5jb3JyZWN0IGFmdGVyIGl0ZW1zIGFyZSByZW1vdmVkICAKPGJyPjE1ODIxMiAtIFs2NF0gSGlnaGxpZ2h0IENvbG9ycyBhbGwgYXBwZWFyIGJsYWNrIGFuZCBGb3J0cmFuIEZvcm1hdGluZyBPZmZzZXQgIAo8YnI+MTU4NzQyIC0gRWNsaXBzZSB0ZXJtaW5hdGVzIHdpdGgganZtIGV4aXQgY29kZT0xIHdoZW4gdHJ5aW5nIHRvIHJ1biBkeW5hbWljIHdlYiBwcm9qZWN0ICAKPGJyPjE1ODc5MCAtIGV4dGVybmFsIGJyb3dzZXIgY2FuJ3QgYmUgZm91bmQgb24gUmVkaGF0ICAKPGJyPjE1ODc5NyAtIEZpbGVEaWFsb2cgbGltaXQgb24gbXVsdGktc2VsZWN0ICAKPGJyPjE1ODk3MCAtIERpc2FibGluZyBwYXJlbnQgQ29tcG9zaXRlIGRvZXNuJ3QgdGhyb3cgRm9jdXNPdXQgZm9yIHRoZSBmb2N1c2VkIGNoaWxkIGNvbnRyb2wgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDEwYSAtIFR1ZXNkYXkgU2VwdGVtYmVyIDI2LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KSlVuaXQgZmFpbHVyZSAtIHRocm93IFNXVC5FUlJPUl9JTyBpbnN0ZWFkIG9mIFNXVC5FUlJPUl9OT19IQU5ETEVTIHdoZW4gaW1hZ2UgZmlsZW5hbWUgZG9lcyBub3QgZXhpc3QKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAxMCAtIFR1ZXNkYXkgU2VwdGVtYmVyIDI2LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KOTk1MyAtIFdoZW4gdGhlIHdpbmRvdyBpcyBsYXVuY2hlZCBNYXhpbWl6ZWQsIGl0IGRvZXNuJ3QgIAo8YnI+OTM5MzggLSBDb21ibyBkaXNwbGF5cyBzZWxlY3Rpb24gcmFuZ2Ugd2l0aG91dCBmb2N1cyAgCjxicj4xMTUyOTEgLSBbUHJvZ3JhbV0gUHJvZ3JhbS5leGVjdXRlIGZhaWxzIHdoZW4gY29tbWFuZCBvciBmaWxlbmFtZSBjb250YWlucyB3aGl0ZXNwYWNlICAKPGJyPjE0OTc3NCAtIFtQcm9ncmFtXSBJbXByb3ZlIGNvbW1hbmQgaGFuZGxpbmcgb2YgUHJvZ3JhbSNleGVjdXRlKFN0cmluZykgb24gV2luMzIgIAo8YnI+MTU2Njc1IC0gUmVwYWludCBpc3N1ZSB3aXRoIHJhZGlvIGJ1dHRvbnMgaW4gcHJlZmVyZW5jZSBwYWdlICAKPGJyPjE1Njk0MyAtIFRvb3RsVGlwIGRpc3BsYXkgZXJyb3IgZm9yIG5lZ2F0aXZlIGxvY2F0aW9uICAKPGJyPjE1NzI5MiAtIE1vdXNlV2hlZWwgZXZlbnQgcHJvdmlkZXMgd3JvbmcgY29vcmRpbmF0ZXMgaW4gY2FzZSBvZiBuZWdhdGl2ZSB4IGNvb3JkaW5hdGUgKGV2ZW50IG91dHNpZGUgd2lkZ2V0KSAgCjxicj4xNTc2MzQgLSBTaWJsaW5nIGRlY29yYXRpb25zIHRyYXZlcnNlZCBpbiB3cm9uZyBvcmRlciB3aGVuIGRlY29yYXRpb25zIGRpc3Bvc2VkICAKPGJyPjE1NzYzNSAtIEJJREk6U3R5bGVkVGV4dCBTZWxlY3Rpb24gb2YgdGV4dCwgYW5kIEJJREkgZm9ybWF0aW5nIG5vdCBjb3JyZWN0ICAKPGJyPjE1NzY3MCAtIFByb2JsZW0gbG9hZGluZyBCTVAgIAo8YnI+MTU3Njg5IC0gUHJvYmxlbSBsb2FkaW5nIEJNUCB3aXRoIG5lZ2F0aXZlIGhlaWdodCAoYm90dG9tLXVwKSAgCjxicj4xNTc4NDYgLSBEZWNvcmF0aW9ucyBkaXNhcHBlYXIgaW4gVHJlZSB3aGVuIGFkZGluZyBDb2x1bW5zICAKPGJyPjE1Nzg2NSAtIG1vdmluZyBjb2x1bW4gY2FuIGxvc2Ugc29ydCBpbmRpY2F0b3IgIAo8YnI+MTU4NDExIC0gUmVncmVzc2lvbjogQWx0K051bXBhZCBrZXlzdHJva2VzIGJyb2tlbiAoUGFydCAyKSAgCjxicj4xNTg0NjIgLSBjbGVhbnVwIFZlcmlmeUV2ZW50IGNvbnN0cnVjdG9yICAKPGJyPjE1ODQ3MiAtIEFuaW1hdGVXaW5kb3cgY2FsbCBtYWtlcyBTV1QgdW51c2FibGUgb24gTlQ0LiAgCjxicj4xNTg1NzcgLSBjb21iby5zZXRJdGVtIGRpc3BhdGNocyBhIE1vZGlmeUxpc3RlbmVyIGV2ZW50IHdpdGggZW1wdHkgdGV4dCAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMDlhIC0gVGh1cnNzZGF5IFNlcHRlbWJlciAyMSwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE1NzkxNCAtIFVuYWJsZSB0byBvcGVuIGV4dGVybmFsIFNhZmFyaSBicm93c2VyCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMDkgLSBUdWVzZGF5IFNlcHRlbWJlciAxOSwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjIxMDA5IC0gQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGluIENUYWJGb2xkZXIgIAo8YnI+MTA4MTc1IC0gVGFibGVDb2x1bW4gc29ydCBpbmRpY2F0b3Igbm90IHVwZGF0aW5nIHRvIG5ldyBGb250IHByb3Blcmx5ICAKPGJyPjExNDI0NCAtIENDb21ibyBjb21wdXRlU2l6ZSBuZWVkcyB0byBtYXggaXRlbSB3aWR0aCB3aXRoIHRleHQgd2lkdGggIAo8YnI+MTE3NzUyIC0gQ0NvbWJvIHRleHQgZHJhd24gdG9vIGhpZ2ggIAo8YnI+MTM3Nzg2IC0gbmV3ICdkZWZhdWx0JyBkcmFnICYgZHJvcCBmZWVkYmFjayBpbnRlcmZlcmVzIHdpdGggb3RoZXIgZmVlZGJhY2sgIAo8YnI+MTUxMzQ4IC0gZHJvcCB0ZXh0IGluIFRleHQgd2lkZ2V0IGR1cGxpY2F0ZXMgdGV4dCAgCjxicj4xNTE2MzMgLSBbS2V5QmluZGluZ3NdIDIgcG9wdXBzIGRpc3BsYXllZCBvbiBMaW51eCAgCjxicj4xNTUyMTIgLSBNaXNwcmludHMgaW4gU1dUIFdpbjMyIGNvZGUgPyAgCjxicj4xNTc0NDAgLSBPbiBNYWMsIGNhbid0IGRyYXdUZXh0IGFmdGVyIHNldEJhY2tncm91bmRQYXR0ZXJuKCkgaXMgY2FsbGVkLiAgCjxicj4xNTc0NzggLSBXZWIgc2VydmljZXMgd2l6YXJkIHNjYWxlIGFuZCBncmFwaCBhbGwgd2VpcmQgIAo8YnI+MTU3NTU3IC0gU1dULlNldHRpbmdzIGphdmFkb2Mgc3RhdGVzIGluY29ycmVjdCB2YWx1ZSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMDggLSBUdWVzZGF5IFNlcHRlbWJlciAxMiwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iTmV3IEFQSSI+PC9hPk5ldyBBUEk8L2gzPgo8YmxvY2txdW90ZT4KQ0NvbWJvIG5vdyBmaXJlcyA8Y29kZT5TV1QuVmVyaWZ5PC9jb2RlPiBldmVudHMKPGJyPjxjb2RlPkNDb21iby5hZGRWZXJpZnlMaXN0ZW5lcihWZXJpZnlMaXN0ZW5lcik8L2NvZGU+Cjxicj48Y29kZT5DQ29tYm8ucmVtb3ZlVmVyaWZ5TGlzdGVuZXIoVmVyaWZ5TGlzdGVuZXIpPC9jb2RlPgo8YnI+PGNvZGU+U3R5bGVkVGV4dFByaW50T3B0aW9ucy5wcmludExpbmVOdW1iZXJzPC9jb2RlPiBmaWVsZAo8YnI+PGNvZGU+VmFyaWFudC5nZXRCeXRlKCk8L2NvZGU+Cjxicj48Y29kZT5WYXJpYW50LmdldENoYXIoKTwvY29kZT4KPC9ibG9ja3F1b3RlPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjMyNjgzIC0gInVwIiBhcnJvdyBidXR0b24gZGlzcGxheXMgYXMgInJpZ2h0Ii4gIAo8YnI+MTEwMTYzIC0gWCBXaW5kb3cgU3lzdGVtIGVycm9yLCB1c2luZyBTd2luZyBzeXN0ZW0gbG9vayBhbmQgZmVlbCwgcmVuZGVyaW5nIFNWRyB1c2luZyBTV1RfQVdUIGluIG5vbi10b3Agc3RhY2sgbGF5b3V0Cjxicj4xMTQxNjkgLSBbUHJvZ3JhbV0gUHJvZ3JhbS5nZXRJbWFnZURhdGEoKSBub3QgaW1wbGVtZW50ZWQgb24gTWFjICAKPGJyPjE1MDMwMCAtIHBhdGguY2xvc2UoKSBoYXMgbm8gZWZmZWN0ICAKPGJyPjE1MDMwNCAtIGN1YmljVG8gYW5kIHF1YWRUbyBtZXRob2RzIG9mIFBhdGggbm90IHdvcmtpbmcgIAo8YnI+MTUwMzA2IC0gdHJvdWJsZSB3aXRoIGRyYXdpbmcgYSBzdHJpbmcgIAo8YnI+MTUxMTUwIC0gTXVsdGkgU2VsZWN0aW9uIFRyZWUgb25seSBsYXN0IDIgaXRlbXMgYXJlICdyZWFsbHknIHNlbGVjdGVkICAKPGJyPjE1Mjc2OSAtIFN0YWNrT3ZlcmZsb3dFcnJvciAocmVjdXJzaXZlIGNhbGxXaW5kb3dQcm9jKSAgCjxicj4xNTM4NDEgLSBNYWNpbnRvc2ggb25seTogdmFsdWVzIGluIHNvbWUgdGV4dCBmaWVsZHMgb2YgbGF1bmNoIGNvbmZpZ3VyYXRpb24gZGlhbG9nIGFyZSBzbGlnaHRseSBzaGlmdGVkLCBvYnNjdXJpbmcgZmlyc3QgY2hhcmFjdGVyCjxicj4xNTM5MzkgLSBQcm9ibGVtIHdpdGggZ2MuZHJhd1N0cmluZygpICAKPGJyPjE1NDA1MiAtIFRhYmxlIHRvb2x0aXAgZG9lcyBub3Qgc2hvdyBhZnRlciBzZWxlY3Rpb24gb2YgYSB0YWJsZSBpdGVtICAKPGJyPjE1NDczNiAtIEFsbCBGb250cyBhcHBlYXIgdGhlIHNhbWUgIAo8YnI+MTU0NzQ2IC0gUGF0aCBDbGlwcGluZyBkb2VzIG5vdCB3b3JrIHByb3Blcmx5IG9uIE1hYywgR1RLIGFuZCBNb3RpZiAgCjxicj4xNTQ5MjggLSBDQ29tYm8gc2hvdWxkIGZpcmUgVmVyaWZ5IGV2ZW50cyAgCjxicj4xNTQ5NDMgLSBKYXZhU2NyaXB0IGVycm9yIHdpdGggZ2VuZXJhdGVkIGNvbnRlbnQgZnJvbSBHV1QgIAo8YnI+MTU1MTYyIC0gQWx0K051bXBhZF9EaXZpZGUgaXNzdWVzIHR3byBrZXkgZXZlbnRzICAKPGJyPjE1NTIyNCAtIE5QRSBpbiBDQ29tYm8uc2V0VmlzaWJsZShmYWxzZSkgaWYgc29tZSBvZiBhZmZlY3RlZCBsaXN0ZW5lcnMgaGFzIGRpc3Bvc2VkIGl0Cjxicj4xNTUzOTAgLSBDdXJzb3IgaWdub3JlcyBob3Jpem9udGFsIGhvdHNwb3QgbG9jYXRpb24gYW5kIHVzZXMgdmVydGljYWwgaW5zdGVhZAo8YnI+MTU1NjI0IC0gU1dUIFRhYmxlIGNvbHVtbiByZXNpemUgaXNzdWUgIAo8YnI+MTU1ODAxIC0gVGFibGUgY29sdW1uIHRvb2x0aXAgZGlzYXBwZWFycyBhZnRlciBzY3JvbGxpbmcgIAo8YnI+MTU1OTE2IC0gQ2xhc3NlcyBpbiBvcmcuZWNsaXBzZS5zd3Qub3BlbmdsIGhhdmUgd2FybmluZyBjb21tZW50cyBpbiBKYXZhZG9jCjxicj4xNTYwMjcgLSBWZXJpZnlFdmVudCBlLmRvaXQgaW5jb25zaXN0ZW50IGJlaGF2aW9yIG9uIExpbnV4IEdUSyAgCjxicj4xNTYyMTMgLSBCREk6IFN0eWxlZGV0eHQgc2V0T3JpZW50YXRpb24gZG9lcyBub3Qgd29yaywgb24gdGhlIGZseSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMDdhIC0gV2VkbmVzZGF5IEF1Z3VzdCAzMCwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE1NTY3OSAtIFZpcnR1YWxUYWJsZVRlc3RzIGZhaWxpbmcgb24gdGhlIE1hYwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjMgMDA3IC0gVHVlc2RheSBBdWd1c3QgMjksIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxODM3NyAtIFRyZWUuZ2V0U2VsZWN0aW9uKCkgY291bGQgYmUgYmV0dGVyIG9yZGVyZWQgIAo8YnI+MTM0MjY5IC0gQWRkaW5nIGNvbHVtbiB0byB2YXIgdmlldyBjYXVzZXMgVk0gdG8gR1AgIAo8YnI+MTQ1NDk4IC0gQ2Fubm90IHN0YXJ0IEVjbGlwc2UgMy4xLjIgdW5kZXIgQUlYIDUuMyAgCjxicj4xNDc0MTggLSBDb250cm9sLmdldE1vbml0b3IgZG9lcyBub3QgcHJvcGVybHkgc2V0IGNsaWVudCBhcmVhICAKPGJyPjE0OTY0OSAtIENhbm5vdCBncmFiIHNjcm9sbGJhciB0aHVtYiBpbiBPTl9UT1Agc2hlbGwgb24gZ25vbWUgMi4xNCAgCjxicj4xNTM4ODUgLSBUcmVlSXRlbS5nZXRFeHBhbmRlZCgpIGRvZXMgbm90IHdvcmsgb24gV2luZG93cyBNb2JpbGUgMjAwMyAgCjxicj4xNTQwMjMgLSBDYW4ndCBnZXQgYSBEaWFsb2cgdHJ1ZWx5IG9uIFRPUCAgCjxicj4xNTQxOTggLSBGbGlja2VyIHdoaWxlIHNjcm9sbGluZyBzY2FsZSB3aWRnZXQgIAo8YnI+MTU0MzEwIC0gW2Jyb3dzZXJdIGNhbm5vdCBjbGljayBpbnRvIHRleHQgZmllbGQgYW5kIHR5cGUgIAo8YnI+MTU0NjExIC0gQ29tYm9WaWV3ZXJUZXN0IGRpZXMgd2l0aCBCYWRNYXRjaCBlcnJvciAgCjxicj4xNTQ5NjEgLSBUaGUgVG9vbFRpcCBvYmplY3QgaXMgbm90IGRpc3Bvc2VkIGFwcHJvcHJpYXRlbHkgYW5kIHByZXZlbnRzIGZyb20gY3JlYXRpbmcgYW5vdGhlciBUb29sVGlwIG9uIHRoZSBzYW1lIHNoZWxsICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAwNiAtIFR1ZXNkYXkgQXVndXN0IDIyLCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjQ0NTEgLSBSZWFkaW5nIEpQRUcgaW1hZ2VzIHNsb3cgaW4gU1dUICAKPGJyPjQyNDU3IC0gSW52YWxpZCBpbWFnZSBleGNlcHRpb24gd2hpbGUgbG9hZGluZyBKUEVHIGltYWdlICAKPGJyPjEzMzE2NCAtIEpQRUdGaWxlRm9ybWF0IGNvbnZlcnRzIGNvbG9ycyBpbiByZ2IganBlZyAod2hlbiBpdCBzaG91bGRuJ3QpCjxicj4xMzk0ODUgLSBbRHJhZyAmIERyb3BdIERuRCBhdXRvLXNjcm9sbCBzdXBwb3J0IGluIFN0eWxlZFRleHQgaXMgdG9vIHNsb3cKPGJyPjE0NDc2NSAtIExheW91dCBvbiBMYWJlbHMgZ2VuZXJhdGVzIGEgc2l6ZSB0aGF0IGN1dHMgb2ZmIGNoYXJhY3RlcnMgIAo8YnI+MTQ2NDAyIC0gQ29udGVudCBhc3Npc3QgcG9wdXAgc2hvd3MgZWxsaXBzaXMgZm9yIHNlbGVjdGVkIGl0ZW0gb24gV2luZG93cyBWaXN0YSBiZXRhIDIKPGJyPjE0NzY3MyAtIFF1aWNrLVR5cGUgaGllcmFyY2h5J3MgdHJlZXZpZXdlciBjYW5ub3QgYmUgY29sbGFwc2VkIHdpdGggbW91c2UKPGJyPjE0NzgwOCAtIENDb21ibyBkcm9wZG93biBkb2Vzbid0IGhhdmUga2V5Ym9hcmQgZm9jdXMgaW4gR1RLICAKPGJyPjE1MTYzNSAtIFticm93c2VyXSBjYW5ub3QgdGFiIGJldHdlZW4gZmllbGRzIG9uIHBhZ2UgIAo8YnI+MTUxNzY3IC0gVGFibGUgdGhyb3dzIEFycmF5T3V0T2ZCb3VuZHMgRXhjZXB0aW9uIHVwb24gVGFibGVDb2x1bW4uZGlzcG9zZSgpCjxicj4xNTE5MTYgLSBCcm93c2VyIGF1dG8tZGV0ZWN0IHNob3VsZCBjaGVjayBmb3IgWFVMUnVubmVyIGZpcnN0ICAKPGJyPjE1MjEyOSAtIGNhbm5vdCBzZXQgZW5hYmxlZCBzdGF0ZSBvbiBWaXN0YSAgCjxicj4xNTI4MDAgLSBGaWxlRGlhbG9nIGNyYXNoaW5nICAKPGJyPjE1MjkzNiAtIFJlZ3Jlc3Npb246IEdDLmRyYXdSZWN0YW5nbGUgZmlsbHMgYmFja2dyb3VuZCBpbiBzb21lIGNhc2VzICAKPGJyPjE1MjkzNyAtIFJlZ3Jlc3Npb246IExpbmUgZGFzaCBzdHlsZSBpcyBpZ25vcmVkICAKPGJyPjE1MzAzNCAtIEludmFsaWQgaW1hZ2UgZXhjZXB0aW9uIHdoaWxlIGxvYWRpbmcgUE5HIGltYWdlICAKPGJyPjE1MzM2NyAtIGVjbGlwc2UgMy4zIHN0cmVhbSBidWlsZHMgYnJva2VuIG9uIFNvbGFyaXMgR1RLICAKPGJyPjE1MzM5OCAtIEludmFsaWQgdGhyZWFkIGFjY2VzcyBpbiBTbmlwcGV0MTMzICAKPGJyPjE1MzQyMyAtIFRleHQgYW5kIFNwaW5uZXIgaW5pdGlhbGx5IHJlcG9ydCBpbmNvcnJlY3QgcHJlZmVycmVkIHNpemUgIAo8YnI+MTUzNTY3IC0gQ3VzdG9tIGN1cnNvciBoYXMgd3JvbmcgY29sb3VycyAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMDUgLSBUdWVzZGF5IEF1Z3VzdCA4LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjI2MjcgLSAiTmV4dCBXb3JkIiBkZWZpbml0aW9uICAKPGJyPjgzNDUxIC0gTW91c2UgQmVoYXZpb3VyIGJyZWFrcyBVSSAobG93IHJlc291cmNlcywgZ3JhYiBzdHVjaz8pICAKPGJyPjEwNDc1MCAtIEdUSyBGaWxlRGlhbG9nIGlnbm9yZXMgc2V0RmlsZU5hbWUoKSBmb3IgU1dULk9QRU4gZGlhbG9ncyBpZiBubyBmaWx0ZXJQYXRoIHNldAo8YnI+MTI0ODM2IC0gQ0xhYmVsLnNob3J0ZW5UZXh0KC4uLikgdGFrZXMgYWxtb3N0IGZvcmV2ZXIgZm9yIGxvbmcgdGV4dCAgCjxicj4xMzc2MjEgLSBMaWNlbnNlIEFncmVlbWVudCBEb2VzIE5vdCBEaXNwbGF5IG9uIEhQLVVYICAKPGJyPjEzODUyOCAtIFRvb2x0aXBzIGRvIG5vdCBzaG93IGFmdGVyIHRvb2wgYnV0dG9uIHByZXNzZWQgIAo8YnI+MTM5ODU0IC0gc3d0IGRlcGVuZGVjeSBvbiBtc3ZmdzMyLmRsbCAgCjxicj4xNDEyNTQgLSBMaW51eCBHVEsgYW5kIFRhYmxlRWRpdG9yIEZhaWx1cmUgQXNzZXJ0aW9uICAKPGJyPjE0NTcwNCAtIFByZXZpb3VzIFdvcmQgY29tbWFuZHMgYXJlIHRvbyAnZ3JlZWR5JyAgCjxicj4xNDYzMDMgLSBMYWJlbCBUb29sdGlwIHRleHQgbm90IHZpc2libGUgb24gSW50ZWwgTWFjICAKPGJyPjE0NzIyOCAtIFRhYmxlIGNvbHVtbiB0b29sdGlwIGRpc2FwcGVhcnMgYWZ0ZXIgY2xpY2tpbmcgdGhlIGhlYWRlciAgCjxicj4xNDg1MjIgLSBUYWJsZS5zaG93U2VsZWN0aW9uKCkgZG9lc24ndCBzaG93IHNlbGVjdGlvbiB3aXRoIGltYWdlcyAgCjxicj4xNDk4NzAgLSBtdWx0aXBsZSB3aWRnZXRzIHJlcG9ydCBmb2N1cyAgCjxicj4xNTAxNTUgLSBDbGlja2luZyBpbiB0ZXh0ZmllbGQgc2V0cyBjdXJzb3IgdG8gb25lIGJlZm9yZSBsYXN0IGNoYXIgIAo8YnI+MTUxMTM2IC0gVHJlZSB3aXRoIFRyZWVDb2x1bW4gbG9vcHMgZm9yZXZlciBpZiBzZXRXaWR0aCBub3QgY2FsbGVkICAKPGJyPjE1MTEzNyAtIHRodW1iIGRvZXNuJ3Qgd29yayBmb3IgVHJlZSB3aXRoIGNvbHVtbiAgCjxicj4xNTE4OTMgLSBJc3N1ZSB3aXRoIGJhY2tncm91bmQgaW1hZ2VzIGFuZCBDTGFiZWxzICAKPGJyPjE1MjM4NSAtIFRvb2x0aXAgaXMgbm90IHNob3duIGFsbCB0aGUgdGltZSAgCjxicj4xNTI3MTggLSBTdHlsZWRUZXh0IHByaW50aW5nIGZlYXR1cmUgZG9lc24ndCB3b3JrICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAwNCAtIFR1ZXNkYXkgSnVseSAyNSwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE5NjAyIC0gW1ByaW50aW5nXSBMaW5lIG51bWJlcnMgYXJlbid0IHByaW50ZWQgIAo8YnI+MjQ2OTcgLSBEQ1IgLSBSZXF1ZXN0IGZvciBQTkcgd3JpdGUgc3VwcG9ydCAgCjxicj4yNjQzNiAtIFNwZWMgUHJpbnRlckRhdGEuc3RhcnRQYWdlL2VuZFBhZ2UgIAo8YnI+NjMyMjYgLSBVbmRvY3VtZW50ZWQgZXJyb3IgdGhyb3duIGluIEltYWdlIGNvZGUgIAo8YnI+ODE4MzQgLSBCSURJOiAgU3R5bGVkVGV4dCBkb2VzIG5vdCBjb252ZXJ0IEV1cm9wZWFuIE51bWJlciB0byBBcmFiaWMgTnVtYmVyCjxicj4xNDIzMzUgLSBQZXJmIEZpeCBmb3I6IG9yZy5lY2xpcHNlLnN3dC5pbnRlcm5hbC5pbWFnZS5QbmdIdWZmbWFuVGFibGUuZ2VuZXJhdGVUYWJsZQo8YnI+MTUwMDk5IC0gTWVudSBjbGFzcyBoYXMgYSBwdWJsaWMgJ19zZXRWaXNpYmxlKGJvb2xlYW4pJyBtZXRob2QuICAKPGJyPjE1MDI3NCAtIEZsaWNrZXIgd2l0aCB0aGUgbmV3IFdpblhQIGJvcmRlciAgCjxicj4xNTA0MDcgLSBQTkcgTG9hZCBTcGVlZCBUZXJyaWJsZSBmb3IgbWVkaXVtIHRvIGxhcmdlIGltYWdlcyAgCjxicj4xNTA3NjQgLSBbUEFUQ0hdIGZpeCBjb21waWxlciB3YXJuaW5ncyBmb3IgR0NDIDQueCAgCjxicj4xNTEyMjggLSB0aHJlZS1idXR0b24gTW96aWxsYSAiY29uZmlybSIgZGlhbG9nIGhhcyBzYW1lIGxhYmVsIG9uIGFsbCB0aHJlZSBidXR0b25zCjxicj4xNTEzMzAgLSBCcm93c2VyIG5vdCBzdXBwb3J0ZWQgb24gbGludXggcHBjICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4zIDAwMyAtIFR1ZXNkYXkgSnVseSAxOCwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjI0Nzk2IC0gRENSIC0gTm8gcHJpbnRpbmcgb24gTGludXggR1RLCjxicj44MDAzMyAtIFNXVCBCcm93c2VyIGRvZXMgbm90IGRpc3BsYXkgaHR0cHMuICAKPGJyPjg3Mjc5IC0gNiBkaWZmZXJlbnQgbWV0aG9kcyBjYXVzZSBwZW5zIHRvIGJlIGNvbnN0cnVjdGVkIGFuZCBzZWxlY3RlZAo8YnI+OTEzNDggLSBbQnJvd3Nlcl0gRW1iZWRkZWQgd2ViIGJyb3dzZXIgZG9lc24ndCByZW5kZXIgdmlzaXRlZCBsaW5rcwo8YnI+MTAyNzU2IC0gVXNlIEd0a0NvbWJvQm94IGluc3RlYWQgb2YgR3RrQ29tYm8gIAo8YnI+MTA1MDQ0IC0gSW5lZmZpY2llbnQgdXNlIG9mIFBlbnMgYW5kIEJydXNoZXMgY2F1c2luZyBwb29yIHBlcmZvcm1hbmNlICAKPGJyPjEwNTYxOCAtIEdyYXBoaWNzLnNldExpbmVEYXNoIGNhdXNlcyBydWxlciBndWlkZSByZWRyYXcgcHJvYmxlbXMgIAo8YnI+MTA5ODQzIC0gTm9uLXJlc2l6YWJsZSB0YWJsZSBjb2x1bW5zIHJlc2l6ZWQgYnkgQ1RSTCtLRVlQQURfQUREICAKPGJyPjExMjU3MCAtIENhaXJvIGluY29ycmVjdGx5IGNvbXB1dGVzIHRleHQgZXh0ZW50ICAKPGJyPjEyNTI4OCAtIEdDLnRleHRFeHRlbnQgZG9lcyBub3QgYWNjdXJhdGVseSBwcmVkaWN0IHRleHQgc2l6ZSAgCjxicj4xMjc0NjkgLSBXaGVuIGEgR0MgdXNlcyBhZHZhbmNlZCBhbmQgYWxwaGFzIHRoZSBjbGlwcGluZyBpcyBpZ25vcmVkIGluIHNvbWUgY2FzZXMuCjxicj4xMjgyMDAgLSBUZXh0TGF5b3V0IGlnbm9yZXMgdHJhbnNmb3JtYXRpb25zIG9uIEdDICAKPGJyPjEzMjUwMCAtIFtCcm93c2VyXSBFY2xpcHNlIGFiZW5kZWQgYXQgdGhlIG9wZXJhdGlvbiBvbiBXUyBFeHBsb3JlciB3aXRoIHRoZSBpbnRlcm5hbCB3ZWIgYnJvd3Nlcgo8YnI+MTMzMTgzIC0gQnV0dG9uIHdpZGdldCB3aXRoIFNXVC5DSEVDSyBzdHlsZSBpcyBub3Qgc2hvd2luZyBmb3JlZ3JvdW5kIGNvbG9yIHdoZW4gaXQgaXMgaW4gc2VsZWN0ZWQvY2hlY2tlZCBzdGF0ZQo8YnI+MTMzOTI4IC0gUHJvZ3JhbSNnZXRQcm9ncmFtKFN0cmluZykgZmFpbHMgaWYgdGhlIHByb2dyYW0gZG9lc24ndCBoYXZlIGEgXFxEZWZhdWx0SWNvbgo8YnI+MTM0NzYwIC0gUGVyZm9ybWFuY2Ugb2YgR0MuZmlsbCogbWV0aG9kcyBvbiBHVEsgIAo8YnI+MTQwMTMyIC0gR0Muc2V0TGluZURhc2ggbm8tb3AgYWZmZWN0cyBsaW5lIGRyYXdpbmcgIAo8YnI+MTQwMjQ0IC0gRWNsaXBzZSAzLjIgZ3RrIFJDMiBkdW1wcyBjb3JlIG9uIFNvbGFyaXMgOSAgCjxicj4xNDExMzggLSBQaXhlbCBjb3JydXB0aW9uIGludm9sdmluZyBTV1QuRE9VQkxFX0JVRkZFUkVELCBHQy5zZXRBZHZhbmNlZCgpIGFuZCBUZXh0TGF5b3V0Cjxicj4xNDYyNTAgLSBbU1dUXSBDb2x1bW5zIG9mIFRhYmxlIHdpZGdldCBjYW5ub3QgYmUgcmVzaXplZCwgZXhjZXB0IGZvciBieSBkcmFnZ2luZyBhIG1vdXNlCjxicj4xNDk0OTMgLSBVSS1UaHJlYWQgYmxvY2tlZCB3aGlsZSBNZW51IGlzIHZpc2libGUgIAo8YnI+MTQ5NzQ5IC0gTUFOSUZFU1QuTUYgZmlsZXMgbXVzdCBiZSB1cC10by1kYXRlICAKPGJyPjE0OTk1MiAtIEZpcnN0IFRhYmxlQ29sdW1uIGluIGEgVGFibGUgYWx3YXlzIGxlZnQganVzdGlmaWVkICAKPGJyPjE1MDA4NiAtIEVjbGlwc2UgZXhlY3V0aW9uIHByb2JsZW0uICAKPGJyPjE1MDMxNCAtIE51bGxQb2ludGVyRXhjZXB0aW9uIHdoaWxlIGNyZWF0aW5nIGEgcGF0dGVybiAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMDIgLSBUdWVzZGF5IEp1bmUgMjcsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9Ik5ldyBBUEkiPjwvYT5OZXcgQVBJPC9oMz4KPGJsb2NrcXVvdGU+Cjxjb2RlPk1vdXNlRXZlbnQuY291bnQ8L2NvZGU+IGZpZWxkCjwvYmxvY2txdW90ZT4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyMzYxNCAtIFtEQ1JdIEFsbG93IHRyaXBsZSBtb3VzZSBjbGljayBldmVudHMgIAo8YnI+NjI1NTUgLSBHcm91cCBib3JkZXIgcmVuZGVycyBiYWRseSAgCjxicj43NzMyMSAtIFN0eWxlZFRleHQncyBmb250IGFwcGVhcnMgaW5jb25zaXN0ZW50IHdpdGggR0MuZHJhd1N0cmluZyguLikgZm9udAo8YnI+ODU3ODMgLSBFZGl0b3IgZm9udCBpc3N1ZXMgIAo8YnI+OTA4NTYgLSBzZWdmYXVsdCB3aGlsZSBjbGlja2luZyBpbiBicm93c2VyICAKPGJyPjk5Njk3IC0gQ2FuJ3QgbmF2aWdhdGUgdG8gZXh0ZXJuYWwgd2ViIHNpdGVzICAKPGJyPjExNTE3MiAtIFRleHQgY2xpcHBlZCBpbiBlZGl0b3JzIGlmIHNpemUgcmVkdWNlZCBmcm9tIHBsYXRmb3JtIGRlZmF1bHQKPGJyPjExNTk0NyAtIEFjY2Vzc2liaWxpdHkgOiBDYW5ub3Qgc2V0IHRvb2x0aXAgVGV4dCBmb3IgaW1hZ2UgaW4gVGFibGUgQ29sdW1uCjxicj4xMjExMTQgLSBJbmNvbnNpc3RlbnQgbWVhc3VyZW1lbnRzIGZyb20gZW1wdHkgVGV4dExheW91dHMgIAo8YnI+MTM5NzkwIC0gUHJpbnQgTWFyZ2luIHNob3dzIHVwIGluIHRoZSB3cm9uZyBwbGFjZSAgCjxicj4xNDA1MTkgLSBTdHlsZWRUZXh0IGVycm9yIGluIGdldFRleHRCb3VuZHMgKERvZXMgbm90IGNvdW50IGxhc3QgbmV3bGluZSkKPGJyPjE0MTI4MiAtIERuRCBkb2Vzbid0IHN1cHBvcnQgc3BlY2lhbCBjaGFyYWN0ZXJzICAKPGJyPjE0NjU3NSAtIHNldEN1cnNvciBpcyBpZ25vcmVkIGluIHRoZSBTV1QgVGV4dCB1bmRlciBndGstbGludXggIAo8YnI+MTQ3NDIzIC0gTlBFIHdoZW4gcmVtb3ZpbmcgYW4gaXRlbSBmcm9tIGEgVGFibGUgd2l0aCBjdXN0b20gZHJhdyBob29rcwo8YnI+MTQ3NTUwIC0gVmVyaWZ5RXZlbnQuZG9pdD1mYWxzZSBkb2VzIG5vdCB3b3JrIGZvciBUZXh0ICAKPGJyPjE0ODM1NCAtIFJlZ3Jlc3Npb246IFJhZGlvIGJ1dHRvbnMgZmFpbCB0byByZWRyYXcgYmFja2dyb3VuZCAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMyAwMDEgLSBUdWVzZGF5IEp1bmUgMTMsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9Ik5ldyBBUEkiPjwvYT5OZXcgQVBJPC9oMz4KPGJsb2NrcXVvdGU+CkNDb21ibyBtZXRob2RzIGN1dCgpLCBjb3B5KCkgYW5kIHBhc3RlKCkKPC9ibG9ja3F1b3RlPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjU2MTE2IC0gU3lzdGVtIFRyYXkgbm90IGltcGxlbWVudGVkIGZvciBNQUMgIAo8YnI+MTA4NTczIC0gTWFrZSBPYmplY3RpdmUtQyAgUnVudGltZSBBUElzICBwdWJsaWMgaW4gIFNXVCBXZWJLaXQuamF2YSAgZm9yIE1hY09TIFgKPGJyPjExMDU1NSAtIERyYXcyZCBHcmFwaGljcyBsaW5lIHN0eWxlIHNldHRpbmcgbm90IGNvbnNpc3RlbnQgIAo8YnI+MTIwMTE4IC0gInh4eC5nZXREaXNwbGF5KCkudXBkYXRlIiBkb2VzLi4uInh4eC5nZXRTaGVsbCgpLnVwZGF0ZSIgZG9lc24ndAo8YnI+MTI0NDI1IC0gR0MuZHJhd1RleHQgZG9lcyBub3Qgd29yayB3aGVuIHNldEFkdmFuY2VkKHRydWUpICAKPGJyPjEzNjMyMyAtIFNoZWxsLmdldENsaWVudEFyZWEgaGFzIHNpZGUgZWZmZWN0ICAKPGJyPjEzNjQ3MiAtIEdDI2RyYXdUZXh0IGRvZXNuJ3Qgd29yayB3aXRoIGFyYWJpYyB0ZXh0IHdoZW4gYWR2YW5jZSBpcyBvbiAgCjxicj4xMzc5MTEgLSBCcm93c2VyIHdpZGdldHMgdHVybiB0byBnaG9zdHMgaWYgdGhlaXIgY29uc3RydWN0aW9uIGZhaWxzLiAgCjxicj4xMzkzMjkgLSBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpbiBFeHBhbmRCYXIKPGJyPjE0MTY3OCAtIFtCcm93c2VyXSBKYXZhRG9jIEhvdmVyL0Jyb3dzZXItV2lkZ2V0IGRvZXNuYHQgc2hvdyBUZXh0Cjxicj4xNDI4ODAgLSBUaGUgcG9pbnQgZG93biBiZWhhdmlvciBvZiB0aGUgRHJvcFRhcmdldEV2ZW50Lml0ZW0KPGJyPjE0MzczMiAtIGFkZCBjdXQvY29weS9wYXN0ZSBhcGkgb24gQ0NvbWJvICAKPGJyPjE0NTM0NyAtIFdhcm5pbmdzIHdpdGggRmVkb3JhIDUgY29tcGlsZXIgKGdjYykgIAo8YnI+MTQ1NjYyIC0gR3JvdXAgY29udHJvbCBib3JkZXJzIGRpc2FwcGVhciB3aGVuIHRhYmJpbmcgYmV0d2VlbiBjaGlsZCB3aWRnZXRzCjxicj4xNDYyNjQgLSBTdHlsZWRUZXh0IHdpdGggU1dULldSQVAgZmxhZyBkb2VzIG5vdCBzaGFwZSBhcmFiaWMgbGV0dGVycyAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMzJvIC0gRnJpZGF5IEp1bmUgOSwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE0NTUyNiAtIENUUkwrRiBjcmFzaGVzIEpWTSBpbiBTZWFyY2ggcGFuZWwKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAzMm0gLSBNb25kYXkgSnVuZSA1LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTQzNjYxIC0gTW91c2VVcCBpbmNvcnJlY3RseSBmaXJlZCBvbiBUcmVlICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAzMmsgLSBGcmlkYXkgTWF5IDI2LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTQzMjM2IC0gc2V0SXRlbUNvdW50KDApIGxlYWtpbmcgVHJlZUl0ZW1zICAKPGJyPjE0MzQ4MiAtIENISVZpZXdFbWJlZGRlZEZyYW1lIG5vdCBmb3VuZCBpbiBFY2xpcHNlICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAzMmogLSBGcmlkYXkgTWF5IDE5LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTQwODQzIC0gSlZNIGNyYXNoIHdoZW4gcnVubmluZyBSQ1AgYXBwbGljYXRpb24gb24gSFAtVVggIAo8YnI+MTQxMzk1IC0gU2VsZWN0ZWQgaXRlbSBsb3N0IGluIFRyZWUgIAo8YnI+MTQxNDg5IC0gVGFibGVFZGl0b3IgYmFja2dyb3VuZCBjb2xvciBhcnRpZmFjdHMgb24gc2Nyb2xsaW5nICAKPGJyPjE0MjE5MyAtIExhdW5jaGVycyBmZWF0dXJlIGZhaWxzIHdpdGhvdXQgaW5oZXJpdGFsbCBpbiBnYXRoZXIuYmluLnBhcnRzCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMzJoIC0gRnJpZGF5IE1heSAxMiwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEyODU0NSAtIEJJREk6IEN1cnNvciBpcyBzdGF5cyBpbiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBIZWJyZXcgdGV4dCBzZWdtZW50Cjxicj4xMzQzNTMgLSBUYWJsZS9UcmVlOiBDb2x1bW5zIHBhY2sgb24gdGFibGUuY2xlYXIgZm9yIG5vIHJlYXNvbiB3aXRoIGEgbG90IG9mIGZsYXNoaW5nCjxicj4xMzg5MDcgLSBDaGVlc2UgaW4gVHJlZSB3aXRoIHRleHQgdGhhdCBzcGFucyBjb2x1bW5zICAKPGJyPjE0MTI5MyAtIGFib3V0Lmh0bWwgbmVlZHMgdG8gdXBkYXRlZCBpbiBzd3QgZXhhbXBsZXMsIHRlc3RzIGFuZCB0b29scwo8YnI+MTQxNTUyIC0gVW5leHBlY3RlZCBwb3B1cCBtZW51ICAKPGJyPjE0MTU4OSAtIFNXVC5NZW51RGV0ZWN0IHNlbnQgMyB0aW1lcyBmb3IgdG9vbGJhcnMgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDMyIC0gRnJpZGF5IE1heSA1LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjczODQgLSBTV1RfQVdUIG5vdCBpbXBsZW1lbnRlZCBmb3IgTWFjCjxicj45NjM3OCAtIGdjLnNldFRyYW5zZm9ybSgpIG1ha2VzIGZvbnRzIHNjYWxlIHN0cmFuZ2VseSB3aGVuIHByaW50aW5nICAKPGJyPjEyODM3MyAtIFZpcnR1YWwgVHJlZSBuZWVkcyBkb2N1bWVudGF0aW9uICAKPGJyPjEzMDE3MyAtIFRyZWUgQ29sdW1uIGRvZXMgbm90IHJlc3BvbmQgdG8gRGVmYXVsdFNlbGVjdGlvbiBldmVudCBhcyBpdCBkaWQgaW4gMy4xCjxicj4xMzM5NjIgLSBTV1RFeGNlcHRpb24gY2xvc2luZyBHTENhbnZhcyBpbiBhbiBSQ1AgYXBwbGljYXRpb24gb24gTWFjIE9TIFgKPGJyPjEzODMxOSAtIFNXVEV4Y2VwdGlvbjogRmFpbGVkIHRvIGV4ZWN1dGUgcnVubmFibGUgKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjogSW5kZXggb3V0IG9mIGJvdW5kcykKPGJyPjEzOTIyNiAtIFVzaW5nIHRoZSBtb3VzZSB0byBwYWdlIGRvd24gYXV0byBjb21wbGV0aW9uIGNob2ljZXMgY2xvc2VzIGNvbXBsZXRpb24gd2luZG93Cjxicj4xMzkyNjIgLSAnc2V0IGRhdGEnIGNhbGxiYWNrIG5vdCBzZW50IGFmdGVyIGFsbCBpdGVtcyBhcmUgY2xlYXJlZCBpbiB2aXJ0dWFsIHRyZWUKPGJyPjEzOTUwNSAtIFVwZGF0ZSBtYW5pZmVzdCB0byBjb21waWxlIGFnYWluc3QgRm91bmRhdGlvbiAxLjA6IG9yZy5lY2xpcHNlLnN3dAo8YnI+MTM5OTY0IC0gVXNlIG9mIDEuNCBBUElzIGluIFNXVF9BV1QKPGJyPjE0MDA1MiAtIFtDVGFiRm9sZGVyXSBsb3NpbmcgZm9jdXMgcHJvYmxlbT8KPGJyPjE0MDI3MiAtIEVkaXRpbmcgT1MuamF2YSByZWFsbHkgc2xvdwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDMxIC0gRnJpZGF5IEFwcmlsIDI4LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjAyNzMgLSBUb29sYmFyIGJhY2tncm91bmQgY29sb3VyIGRvZXNuJ3QgbWF0Y2ggYmFja2dyb3VuZCAoWFAvU2lsdmVyKQo8YnI+OTU2MzQgLSBbVHJlZV0gVHJlZUNvbHVtbiBtaXNzZXMgdG9vbHRpcHMgIAo8YnI+OTY2MTUgLSBTdHlsZWRUZXh0IGFuZCBUZXh0IGtleWJpbmRpbmdzIGRpZmZlciBvbiBNYWMgIAo8YnI+OTkxNDUgLSBMaW5rIHdpZGdldCBvbmx5IGRpc2FibGVzIGxpbmssIG5vdCB0ZXh0ICAKPGJyPjk5OTg0IC0gU3luYyB2aWV3IHRvb2xiYXIgYnV0dG9ucyBhcmUgYmlnZ2VyIHdpdGggU1dUIG1hbmlmZXN0ICAKPGJyPjExNDg1MCAtIEVjbGlwc2UgMy4yTTIgY3Jhc2hlcyBqdXN0IGFmdGVyIHN0YXJ0dXAgIAo8YnI+MTIzOTIyIC0gW1BhdGNoXSBTV1QgSmF2YWRvYzogU29tZSB0eXBvcy9taW5vciBlcnJvcnMgIAo8YnI+MTI3MjE2IC0gW1BhdGNoXSBUYWJsZSBjaGVjayBib3hlcyBzaG91bGQgaGF2ZSBzaGFkZSB3aGVuIHNlbGVjdGVkICAKPGJyPjEyNzcxNiAtIEdDLmRyYXdQb2ludCgpIGNhbGxzIGFyZW4ndCBhZmZlY3RlZCBieSBhIFRyYW5zZm9ybSAgCjxicj4xMjc4MTMgLSBDQ29tYm8uY29tcHV0ZVNpemUgcmV0dXJuaW5nIGluY29ycmVjdCB2YWx1ZXMgd2hlbiB1c2luZyB3SGludC9oSGludAo8YnI+MTI5NTY0IC0gU3R5bGVkVGV4dCBzaG91bGQgcmVuZGVyIHRhYnMgZXhhY3RseSA0IHNwYWNlcyB3aWRlICAKPGJyPjEyOTYwOSAtIFticm93c2VyXSB1bmFibGUgdG8gZW50ZXIgdGV4dCBpbiAmbHQ7dGV4dGFyZWEmZ3Q7Cjxicj4xMzEwMTcgLSBIVE1MIGZvcm1zIGRpc3BsYXllZCBpbiBTV1QgQnJvd3NlciBkb2VzIG5vdCBhY2NlcHQgYWNjZW50ZWQgY2hhcmFjdGVycyBpbnB1dAo8YnI+MTMxMjY1IC0gTWFrZSBFeHBhbmRCYXIgYmFja2dyb3VuZCBjaGFuZ2VhYmxlIGJ5IHVzZXJzICAKPGJyPjEzMzY3MiAtIEdDIGNvbnN0cnVjdGlvbiBpcyB2ZXJ5IHNsb3cgb24gdGhlIE1hYyB3aGVuIGEgRGlzcGxheSBpcyBwYXNzZWQgaW4KPGJyPjEzNDA4OCAtIERuRCBzdXBwb3J0IGluIFN0eWxlZFRleHQgZG9lc24ndCBhdXRvLXNjcm9sbCAgCjxicj4xMzQwOTEgLSBEcm9wIGluIFN0eWxlZFRleHQgZG9lcyBub3Qgd29yayBhdCB0aGUgZW5kIG9mIGEgbGluZSAgCjxicj4xMzQxMTIgLSBEbkQgaW4gU3R5bGVkVGV4dDogZHJvcHBpbmcgb24gYW4gZW1wdHkgbGluZSBpcyBoYXJkICAKPGJyPjEzNDQxNyAtIEJyb3dzZXIgQ2Fubm90IEJlIERpc3Bvc2VkIChJbnRlbCBDYXJib24gU1dUKSAgCjxicj4xMzQ5MjUgLSBUYWJsZS9UcmVlIENvbHVtbnMgZG9uJ3QgYWxpZ24gU1dULlJJR0hUIGFuZCBTV1QuQ0VOVEVSIHRleHQgcHJvcGVybHkgKHJlZ3Jlc3Npb24pIChHVEspCjxicj4xMzYyNzIgLSBDb21ibyBvbiBNYWMgaW5jb3JyZWN0bHkgc2VuZHMgS2V5RG93biBldmVudCBiZWZvcmUgVHJhdmVyc2Ugd2hlbiBhcnJvdyB1cC9kb3duIGtleXMgdXNlZAo8YnI+MTM2NDUxIC0gVG9vbEl0ZW0gaXMgbm90IHZpc2libGUgaWYgYm91bmRzIHNldCBiZWZvcmUgdGV4dCAgCjxicj4xMzY0NzMgLSBJbWFnZSBjYXB0dXJlIGlzIHB1cnBsZSBvbiBNYWMgIAo8YnI+MTM2NjMzIC0gRmFpbGVkIHRvIGV4ZWN1dGUgcnVubmFibGUgKGphdmEubGFuZy5BcnJheUluZGV4T3V0T2ZCb3VuZEV4Y2VwdGlvbikgaW4gZGVidWcgbW9kZQo8YnI+MTM2NjQxIC0gU2Nyb2xsYmFycyBub3QgZXhjbHVkZWQgZnJvbSBjbGllbnQgYXJlYSAgCjxicj4xMzY2NzUgLSBObyBzY3JvbGxiYXIgZXZlbnRzIGZvciBUZXh0ICAKPGJyPjEzNjg5MCAtIFtQYXRjaF0gU1dUIEphdmFkb2M6IFNvbWUgdHlwb3MvbWlub3IgZXJyb3JzIChQYXJ0IDIpICAKPGJyPjEzNjkzMSAtIFJlZ3Jlc3Npb24gaW4gcmlnaHQtbW91c2UgYnV0dG9uIGJlaGF2aW9yICAKPGJyPjEzNzIzNiAtIE1hY2ludGVsOiBzZXRFY2hvQ2hhciBjYXVzZSBTdHJpbmdJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uICAKPGJyPjEzNzMyMCAtIFtTdHlsZWRUZXh0XSBjYXJldCBkb2VzIG5vdCBtb3ZlIGNvcnJlY3RseSB3aGVuIGluc2VydGVkIHRleHQgd3JhcHMKPGJyPjEzNzUyNCAtIE5QRSBpbiBBc3luY2hyb25vdXNWaWV3ZXIgIAo8YnI+MTM3NzE0IC0gV2luQ0U6IHNldENsaXBwaW5nKHgseSx3LGgpIHRocm93cyBOdWxsUG9pbnRlckV4Y2VwdGlvbiAgCjxicj4xMzgwNjIgLSBOUEUgaW4gZ2V0RGF0YSAgCjxicj4xMzgwNzYgLSBCcm93c2VyIGRvZXMgbm90IHN0YXJ0IG9uIERlYmlhbiAgCjxicj4xMzg0NjEgLSBbV29ya2JlbmNoXSBQZXJzcGVjdGl2ZSBwb3B1cCBtZW51IGRvZXNuJ3Qgc2hvdyB1cCBvbiBNYWMgIAo8YnI+MTM4NDk5IC0gTGFiZWwgRHJvcFRhcmdldCBpcyAidG9vIHNtYWxsIiBvbiBNb3RpZiAgCjxicj4xMzg2MzAgLSBJY29ucyBiZWluZyBkcmF3biBvbiB0b3Agb2YgdGV4dCBpbiB0YWJiZWQgZm9sZGVyCjxicj4xMzg3MjQgLSBVc2Ugb2YgMS40IEFQSXMKPGJyPjEzOTA2MCAtIFJlZ3Jlc3Npb246IFRyZWU6IFNlbGVjdGlvbiBsb3N0IHdoZW4gY29sbGFwc2luZyB1bnJlbGF0ZWQgaXRlbQo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDMwIC0gVHVlc2RheSBBcHJpbCAxMiwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ1OTE4IC0gZWNsaXBzZSBzaG91bGQgZW5hYmxlIFhQIHZpc3VhbCBzdHlsZXMgaWYgYXZhaWxhYmxlIChmcm9tIGNvbWN0bDMyLmRsbCkKPGJyPjc2NzQwIC0gW3BhaW50aW5nXSBDdHJsK0VuZCBicmluZ3MgU3R5bGVkVGV4dCBpbnRvIHN0cmFuZ2Ugc3RhdGUKPGJyPjgyNzY5IC0gW0NvbnRyaWJ1dGlvbnNdIERpc2FibGVkIG1lbnUgaXRlbXMgaGF2ZSBlbmFibGVkIGltYWdlcyB3aGVuIGFybWVkCjxicj44MzAxNiAtIFticm93c2VyXSBVc2UgTW96aWxsYSAxLjggbnNJV2ViQnJvd3NlclN0cmVhbSBBUEkKPGJyPjExMDc5NCAtIFs2NF0gQ3Jhc2ggd2hlbiBwcmVzc2luZyBFTlRFUiBhZnRlciBoYXZpbmcgZW50ZXJlZCB2YWx1ZSBpbiAiU2VhcmNoIiBmb3JtCjxicj4xMTM1NTkgLSBbYnVpbGRdIERlcGVuZGVuY3kgb24gIGxpYnN0ZGMrKy5zby41Cjxicj4xMjUxMTMgLSBQcmludGluZyBkb2N1bWVudCB3aXRoIGxvbmcgbGluZXMgbG9zZXMgdGV4dCBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlCjxicj4xMjcxMzIgLSBUYWJsZUNvbHVtbiNwYWNrIGRvZXMgbm90IHdvcmsgZm9yIHZpcnR1YWwgdGFibGUKPGJyPjEyNzkwMiAtIEZvY3VzIGdldHMgc3R1Y2sgaW4gRXhwYW5kYmFyCjxicj4xMjgyNzMgLSBUYWJsZUN1cnNvciBub3Qgd29ya2luZyBwcm9wZXJseSBvbiBMaW51eCBHVEsKPGJyPjEyODI4NiAtIFRhYmxlI1NldFRvcEluZGV4IGhhcyBubyBlZmZlY3QgZm9yIHZpcnR1YWwgdGFibGUKPGJyPjEzMzMwNCAtIFtCcm93c2VyXSBFY2xpcHNlIGZhaWxzIHRvIHN0YXJ0Cjxicj4xMzQxNzUgLSBOb3QgY29uc2lzdGVubHkgZ2V0dGluZyBjb250cm9sIHJlc2l6ZSBldmVudCBmcm9tIHRhYmxlIGNvbHVtbgo8YnI+MTM0MzU2IC0gV2Fsa2JhY2sgdHVybmluZyBvbiB3cmFwIGluIFN0eWxlZFRleHQuIAo8YnI+MTM0NDgyIC0gWzY0XSBTV1QgU25pcHBldDI0IChkZWZhdWx0IHNlbGVjdGlvbikgZG9lcyBub3Qgd29yayBvbiBhbWQ2NAo8YnI+MTM0ODM3IC0gVHJlZS0gUmFuZG9tIGZvcmVncm91bmQgY29sb3IgYXBwZWFycyBmb3IgVHJlZSB3aGVuIHNlbGVjdGluZyBpdGVtcyBhbmQgc3ViaXRlbXMKPGJyPjEzNTMwMyAtIENCYW5uZXIgZHJhd3MgdW53YW50ZWQgZ3JhZGllbnQgbGluZSBhdCBib3R0b20gd2hlbiBpdCBoYXMgbW9yZSBoZWlnaHQgdGhhbiB0aGUgZGVmYXVsdAo8YnI+MTM1NTMzIC0gcmVtb3ZlIHNvbGFyaXMtbW90aWYtc3BhcmMgZG93bmxvYWRzIGZyb20gYnVpbGQKPGJyPjEzNTY0OSAtIE1vdXNlIHdoZWVsIHNjcm9sbHMgaW52aXNpYmxlIHNjcm9sbGJhcnMKPGJyPjEzNjA2NCAtIFNuaXBwZXQgMjI1IChiYWxsb29uIHRvb2wgdGlwKSBzaG91bGQgc2F5IEBzaW5jZSAzLjIKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAyOWEgLSBNb25kYXkgTWFyY2ggMjcsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo5NDY5MSAtIENvZGUgU3R5bGUgUGFnZSBjcm9wcyAiQ29uZmlndXJlIFByb2plY3QgU3BlY2lmaWMiIG1lc3NhZ2UgIAo8YnI+MTE1MjM0IC0gW0RuRF0gW1dvcmtiZW5jaFBhcnRzXSBSZXNpemluZyB0aWxlZCBlZGl0b3JzIGluY29ycmVjdGx5IHNpemVzIGVkaXRvciBwYXJ0cyBhdCBzdGFydCBvZiBkcmFnCjxicj4xMTY3NDkgLSBTb21lIHdpZGdldHMgZG9uJ3QgbWF0Y2ggZGVmYXVsdCBiYWNrZ3JvdW5kIGluc2lkZSBHcm91cCAgCjxicj4xMTg5NTMgLSBzZXRGb3JlZ3JvdW5kL0JhY2tncm91bmQgY29sb3IgZG9lcyBub3Qgd29yayBmb3IgU1dULlJFQURfT05MWSBUZXh0IHdpZGdldHMgb24gYSBNYWMKPGJyPjEyMDA1MSAtIFNvbWUgZm9udCBuYW1lcyBvbiBPUyBYIGhhdmUgbnVsbCAoXDApIGNoYXJhY3RlcnMgYmV0d2VlbiBldmVyeSBjaGFyYWN0ZXIKPGJyPjEyMDI0MSAtIE1vdXNlTGlzdGVuZXIgb24gU2FzaCBkb2VzIG5vdCByZWNlaXZlIG1vdXNlVXAgZXZlbnRzICAKPGJyPjEyMjA0OSAtIGNyYXNoIHdoZW4gY2xpY2tpbmcgb24geWVsbG93IGphdmFkb2MgcG9wdXAgd2luZG93ICAKPGJyPjEyNDQxNSAtIEJyb3dzZXIgY2F1c2VzIGJsYW5rIHdoaXRlIGJveCBvbiBPU1ggIAo8YnI+MTI3ODIxIC0gQ29udHJvbEV4YW1wbGUgY3Jhc2ggd2hlbiBzZXR0aW5nIGJhY2tncm91bmQgaW1hZ2Ugb24gU0VQQVJBVE9SIExhYmVsCjxicj4xMzA5NzEgLSBUcmVlSXRlbSBub3Qgc2hvd2luZyB0ZXh0ICAKPGJyPjEzMjg3NCAtIExpc3QgY29udHJvbCBkb2VzIG5vdCBhbGxvdyAwdGggaXRlbSB0byBiZSBkZXNlbGVjdGVkLiAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjkgLSBUdWVzZGF5IE1hcmNoIDIxLCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMzIzMTAgLSBMZWZ0IGNsaWNrIGZvbGxvd2VkIGJ5IHJpZ2h0IGNsaWNrIHJlc3VsdHMgaW4gZG91YmxlIGNsaWNrICAKPGJyPjUxMDIwIC0gU1dULk9OX1RPUCBkb2VzIG5vdCB3b3JrIG9uIE1hYyBPUyBYICAKPGJyPjY2NjE1IC0gU1dUX0FXVC5uZXdfRnJhbWUgb2NjYXNpb25hbGx5IGhhbmdzICAKPGJyPjc3MzcxIC0gW2Jyb3dzZXJdIEJyb3dzZXIgd2lkZ2V0IG5vdCB1c2luZyBjb3JyZWN0IGxhbmd1YWdlIHNldHRpbmdzICAKPGJyPjc3NDU2IC0gREJDUzMuMjogU1dUIEJyb3dzZXIgc2VuZHMgaW1wcm9wZXIgQWNjZXB0LUxhbmd1YWdlLCBBY2NlcHQtQ2hhcnNldAo8YnI+ODMxMzMgLSBFeHBvc+kgY2F1c2VzIGRpYWxvZyB0byBtb3ZlIGJlaGluZCBzaGVsbC4gIAo8YnI+ODM0MzEgLSBTdXBwb3J0IGFuICJleHBhbmRhYmxlIGdyb3VwIiAgCjxicj4xMDQxNTAgLSBbUGF0Y2hdIFRhYmxlIGN1cnNvciBzZXBhcmF0ZWQgZnJvbSB0YWJsZSBzZWxlY3Rpb24gd2hlbiBjbGlja2luZyBvbiBncmlkIGxpbmVzIG9yIGVtcHR5IHNwYWNlCjxicj4xMTMwMTkgLSBCcm93c2VyLnNldFRleHQoKSBzb21ldGltZXMgYXBwZW5kcyBkdXN0IGNoYXJhY3RlcnMgYWZ0ZXIgaHRtbAo8YnI+MTE2OTc1IC0gU1dUX0FXVCBicmlkZ2Ugd2l0aCBKRGlhbG9nIGNhbm5vdCB1c2UgVGFiIHdpdGhpbiBkaWFsb2cuIGZvY3VzIGlzIGxvc3QKPGJyPjEyMjM3OSAtIFNXVEV4Y2VwdGlvbiB3aGVuIGRlbGV0aW5nIHRleHQgZnJvbSBTdHlsZWRUZXh0LCBpZiBzZWxlY3Rpb24gbGFyZ2VyIHRoYW4gdmlzaWJsZSBwYXJ0Cjxicj4xMjUxMzEgLSBLZXlzIGZhaWwgaW4gSkRpYWxvZyBhZnRlciBTV1RfQVdULm5ld19GcmFtZSBpbiBXb3Jrc3BhY2VQYXJ0Cjxicj4xMjc4MjcgLSBJbXBsZW1lbnQgYmFja2dyb3VuZCBpbWFnZSBpbiBUYWJsZSBhbmQgVHJlZSAgCjxicj4xMjg0MDAgLSBDbGFzcyBTVCBtaXN1c2VzIGphdmFkb2MgY29tbWVudHMgYXMgY2F0ZWdvcnkgaGVhZGVycyAgCjxicj4xMjg2NjIgLSBTV1QgQnJvd3NlciBjcmFzaGVzIGlmIFVSTCBjb250YWlucyBzcGVjaWFsIGNoYXJhY3RlcnMgIAo8YnI+MTI4NzE5IC0gW1N0eWxlZFRleHRdIEEgbG90IG9mIGNoZWVzZSBkaXNwbGF5aW5nIEphcGFuZWVzZSBhbmQgQ2hpbmVzZQo8YnI+MTI4NzUwIC0gRXJyb3Igb2NjdXJzIHdoZW4gZGVsZXRlIHRleHQgaW4gU3R5bGVkVGV4dCAgCjxicj4xMjk1MjYgLSBQcm9wb3NhbCBmb3IgbmV3IHNuaXBwZXQgOiBOb24tcmVjdGFuZ3VsYXIgU2hlbGwgdXNpbmcgdHJhbnNwYXJlbnQgaW1hZ2VzCjxicj4xMjk5OTkgLSBFcmFzZUl0ZW0gZXZlbnQncyBnYyBkb2VzIG5vdCBoYXZlIHRoZSBpdGVtJ3MgY29sb3VycyBvciBmb250IHNldAo8YnI+MTMxMzkzIC0gQWRkaW5nIFRhYmxlQ29sdW1uIGF0IGluZGV4IDAgbWFrZXMgY2VsbCBkaXNhcHBlYXIgIAo8YnI+MTMxNjIzIC0gVHJlZSBzZWxlY3RlZCBjb2x1bW4gYmdjb2xvdXIgZG9lcyBub3QgZHJhdyBvbiBlbXB0eSByb3dzIHdoZW4gc2V0dGluZyBhIHRyZWUgYmFja2dyb3VuZCBjb2xvdXIKPGJyPjEzMTYyNSAtIFRyZWUgYWRkcyB1c2VsZXNzIHZlcnRpY2FsIHNjcm9sbGJhciAgCjxicj4xMzE2MjYgLSBUcmVlIHNlbGVjdGVkIGJhY2tncm91bmQgY29sb3VyIGluIGNvbHVtbiAwIG92ZXJyaWRlcyBjZWxsIGNvbG91ciwgYnV0IG5vdCBpbiBhbnkgb3RoZXIgY29sdW1uCjxicj4xMzE2MjcgLSBUcmVlOiBFbXB0eSB0cmVlIGRvZXMgbm90IHNob3cgc2VsZWN0ZWQgY29sdW1uIGJhY2tncm91bmQgY29sb3VyLCB1bmxpa2UgVGFibGUKPGJyPjEzMTY1NCAtIERlY29yYXRpb25zLmNvbXB1dGVUcmltIGNhbiBjYXVzZSBwcm9ncmFtIHRvIGhhbmcgIAo8YnI+MTMxNzI0IC0gQWRkaW5nIFBhaW50SXRlbUxpc3RlbmVyIHRvIFRhYmxlIGNhdXNlcyBOUEUgIAo8YnI+MTMxNzI3IC0gU1dUX0FXVCBmcmFtZXMgaW4gdGFzayBiYXIgIAo8YnI+MTMxNzM5IC0gYWRkaW5nIEVyYXNlSXRlbSBsaXN0ZW5lciB0byBUcmVlIGNhdXNlcyBtYWpvciBkcmF3aW5nIHByb2JsZW0KPGJyPjEzMTc0MyAtIGFkZGluZyBhbiBFcmFzZUl0ZW0gbGlzdGVuZXIgdG8gYSBUcmVlIGNhbiBsZWFkIHRvIHNlbGVjdGlvbiBjaGVlc2UKPGJyPjEzMTgwNSAtIFRyZWU6IFNvcnRlZCBiYWNrZ3JvdW5kIGNvbHVtbiBjb2xvdXIgZG9lcyBub3QgbW92ZSB3aXRoIG1vdmFibGUgY29sdW1ucwo8YnI+MTMxODY3IC0gSW5jb3JyZWN0IEdDLmZpbGxQYXRoKCkgYmVoYXZpb3IgIAo8YnI+MTMxOTA2IC0gU3RhY2tPdmVyZmxvd0Vycm9yIGluIFN0eWxlZFRleHQgIAo8YnI+MTMyMDg5IC0gVHJlZTogVGV4dCBjb3JydXB0aW9uIGluIGNlbGxzIGFmdGVyIG1vdmluZyBjb2x1bW4gMCBhbmQgcmVzaXppbmcgY29sdW1uCjxicj4xMzIzNzYgLSBUYWJsZSBiYWNrZ3JvdW5kIGNvbG9ycyBhcmUgd3JvbmcgaW4gR1RLCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjggLSBUdWVzZGF5IE1hcmNoIDE0LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjc2NDIgLSBTdHlsZWRUZXh0OiBHcmFwaGljIGJ1ZyBkaXNwbGF5aW5nIGJlbmdhbGkgY2hhcnMKPGJyPjkxNDU0IC0gW2Jyb3dzZXJdIFJIIEVMNCAtIG5lZWQgd2F5IHRvIGxvY2F0ZSBmaXJlZm94IGJ1aWxkCjxicj45MjU0OCAtIEdCMTgwMzA6IFBhcnQgb2YgVWlndXIgY2hhcmFjdGVycyg0LWJ5dGVzKSBjYXVzZSB3aG9sZSBsaW5lIHNpbmthZ2UgdG8gMS8zLgo8YnI+OTc0MDQgLSBhZGQgc3VwcG9ydCBmb3IgVlRfSTggYW5kIFZUX1I4Cjxicj4xMDg5OTYgLSBTdXBwb3J0IGdyYWRpZW50IGJhY2tncm91bmRzIGZvciBTdHlsZWRUZXh0IHdpZGdldHMKPGJyPjEyMTM1MSAtIEFscGhhIGNoYW5uZWwgaWdub3JlZCB3aGVuIEltYWdlIGlzIGRpc2FibGVkIG9yIGdyZXllZCBvdXQKPGJyPjEyNTY1NiAtIEVjbGlwc2UgZnJlZXplcyBkaXNtaXNzaW5nIHBvcHVwIHdpbmRvd3MgKFF1aWNrIEZpeCwgU3BlbGwgQ2hlY2ssIGV0YykKPGJyPjEyOTkwOCAtIEJJREk6IE91dHB1dCB0ZXh0IGhhdmUgY29udGV4dHVhbCBvcmRlciBsYXlvdXQKPGJyPjEyOTk3MiAtIGFkZGluZyBNZWFzdXJlSXRlbUxpc3RlbmVyIHRvIFRhYmxlIGNhdXNlcyBOUEUKPGJyPjEzMDc1NiAtIFRyZWUgZG9lcyBub3QgdXNlIHRoZSBPU3Mgc2VsZWN0ZWQgY29sdW1uIGJhY2tncm91bmQgY29sb3IKPGJyPjEzMDExMyAtIGVjbGlwc2UgKDY0LWJpdCkgY3Jhc2hlcyBhcyBzb29uIGFzIGNvZGUgY29tcGxldGUgaXMgaW52b2tlIChjdHJsLXNwYWNlKSBpbiBqYXZhIGZpbGVzCjxicj4xMzAzNDYgLSBBZGRpbmcgTWVhc3VyZUl0ZW0gbGlzdGVuZXIgb24gVGFibGUgY2FuIGxlYWQgdG8gZGl2aWRlIGJ5IDAgaW4gZ2V0SXRlbSgpCjxicj4xMzA4NzYgLSBCYWNrZ3JvdW5kIEltYWdlIG5vdCBpbmhlcml0ZWQgcnVubmluZyB3L28gbWFuaWZlc3QKPGJyPjEzMTE1OSAtIEV4cGFuZEl0ZW0gbmVlZHMgZ2V0SGVhZGVySGVpZ2h0KCkKPGJyPjEzMTE2MCAtIGJhY2tncm91bmQgY29sb3IgcHJvYmxlbXMgaW4gdHJlZSB3aXRoIGNvbHVtbnMKPGJyPjEzMTU4NSAtIG5vdGlmZWQgaXMgbm90IGEgd29yZAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDI3IC0gVHVlc2RheSBNYXJjaCAwNywgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjU4MDA5IC0gTmVlZCBBUEkgdG8gYWRkIG5vdGlmaWNhdGlvbnMgb24gc3lzdGVtIHRyYXkKPGJyPjc5MzkxIC0gQ29udHJvbEV4YW1wbGUgLSB0YWIgaXRlbXMgYXJlIHRydW5jYXRlZAo8YnI+OTgyNjUgLSBtb3JlIGZpeGluZwo8YnI+MTA2MzcyIC0gUHJvdmlkZSBETkQgc3VwcG9ydCBmb3IgdGhlIFN0eWxlZFRleHQgd2lkZ2V0Cjxicj4xMTQ2NjIgLSBTcGlubmVyIHNldFNlbGVjdGlvbiBwcmludHMgWCB3YXJuaW5nCjxicj4xMjM4MjcgLSBPdXRsaW5lICJjcmF6eS1zY3JvbGxzIiB3aGVuIGl0IGdldHMgZm9jdXMKPGJyPjEyNzE2OCAtIFNwaW5uZXIgZ2VuZXJhdGVzIGJvZ3VzIE1vZGlmeVRleHQgZXZlbnRzCjxicj4xMjk1OTAgLSBFdmVudC5pbmRleCA9PSAwIGFsbCB0aGUgdGltZQo8YnI+MTI5OTY3IC0gU3lzdGVtIFNldHRpbmdzIGJlaW5nIGZpcmVkIHRvbyBvZnRlbgo8YnI+MTMwMDM3IC0gQ2hlZXNlIGFmdGVyIGRyb3BwaW5nIFRyZWVJdGVtIHRoYXQgaGFzIEltYWdlIHNldAo8YnI+MTMwMTIwIC0gY2VsbCBjdXN0b20gYmFja2dyb3VuZCBjb2xvdXIgYXBwZWFycyBpbiBhZGphY2VudCBjZWxscwo8YnI+MTMwMTU5IC0gSW1hZ2VMb2FkZXIuc2F2ZShmaWxlbmFtZSwgZm9ybWF0KSBzaG91bGQgY2xvc2UgdGhlIE91dHB1dFN0cmVhbS4KPGJyPjEzMDM3NSAtIEJhY2tncm91bmQgSW5oZXJpdGFuY2UgSW5jb3JyZWN0IGluIENvbXBvc2l0ZSBIaWVyYXJjaGllcwo8L2Jsb2NrcW91dGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDI2YSAtIFR1ZXNkYXkgRmVicnVhcnkgMjgsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxMjk2MDcgLSBEaXNwbGF5LmdldFNoZWxscygpIHJldHVybnMgZGlzcG9zZWQgc2hlbGwgUGFydCAyCjwvYmxvY2txb3V0ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjYgLSBUdWVzZGF5IEZlYnJ1YXJ5IDI4LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTI0MDA0IC0gRHJvcCBlbmFibGVkIG9uIFRleHQgV2lkZ2V0Cjxicj4xMjY4MTggLSBIb3Jpem9udGFsIFNjcm9sbEJhciBub3QgUmVTaXplZCBXaGVuIFRhYmxlIENvbnRlbnRzIENoYW5nZWQKPGJyPjEyNjk5NiAtIENhbid0IGFzeW5jRXhlYyBzZXR0aW5nIG9mIHRleHQgaW4gdmlydHVhbCBUcmVlCjxicj4xMjgzNzggLSBUcmVlSXRlbSBhbmQgVGFibGVJdGVtIGNvbnN0cnVjdG9ycyBzaG91bGQgc3RhdGUgcHJlY29uZGl0aW9uIG9uIGluZGV4Cjxicj4xMjg1OTggLSAzLjIgTTUgZGVsdGEgcGFjayBub3QgZ2VuZXJhdGVkIGNvcnJlY3RseQo8YnI+MTI4ODQ1IC0gRXhwYW5kQmFyIFdpZGdldCBub3QgcGFpbnRpbmcgY29udHJvbHMKPGJyPjEyOTA1NCAtIFRleHQgd2lkZ2V0IFZlcmlmeUxpc3RlbmVyIGNhdXNlcyBjaGFyYWN0ZXJzIHRvIGJlIGluc2VydGVkIGJhY2t3YXJkcyBpZiB5b3UgY2hhbmdlIHRoZW0KPGJyPjEyOTEyNiAtIFdoZW4gVmVyaWZ5TGlzdGVuZXIgaXMgYWRkZWQgaW4gb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuVGV4dCwgU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBtaWdodCBiZSBvY2N1cnJlZCBieSBVTkRPIG9wZXJhdGlvbi4KPGJyPjEyOTUwMSAtIFRyZWUgRlVMTF9TRUxFQ1RJT04gZG9lc24ndCByZWRyYXcgaXRlbSBiYWNrZ3JvdW5kIGluIHNlbGVjdGlvbiBjb2xvcgo8YnI+MTI5NTM1IC0gR3JpZERhdGEvR3JpZExheW91dCBpcyBzaG93aW5nIGFibm9ybWFsIGxheW91dAo8YnI+MTI5NjA3IC0gRGlzcGxheS5nZXRTaGVsbHMoKSByZXR1cm5zIGRpc3Bvc2VkIHNoZWxsCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjUgLSBUdWVzZGF5IEZlYnJ1YXJ5IDIxLCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTM5NjkgLSBBY2Nlc3NpYmlsaXR5IDogTm8gdmlzdWFsIGZvY3VzIGlzIHByb3ZpZGVkIGluIFRhYmxlCjxicj40Nzg3MiAtIFtTV1QgRXhhbXBsZXNdIGJyb2tlbiBsaW5rIGluIHN3dF9sYXVuY2hlcl9leC5odG1sCjxicj44NzIxMyAtIFVuYWJsZSB0byBydW4gZWNsaXBzZTogdW5kZWZpbmVkIHN5bWJvbDogYXRrX29iamVjdF9hZGRfcmVsYXRpb25zaGlwCjxicj4xMjcwOTUgLSBOUEUgd2hlbiB0cnlpbmcgdG8gZGlzcG9zZSBjb2x1bW5zCjxicj4xMjcyNjYgLSBUZXh0LmdldENhcmV0TG9jYXRpb24oKSBvbiBHVEsgd2l0aCBzdHlsZSA9IFNXVC5TSU5HTEUKPGJyPjEyNzUxNiAtV2FybmluZ3MgaW4gU1dUIHNhbXBsZXMKPGJyPjEyNzk2MCAtIE5hdGl2ZSBjcmFzaCBpbiBTV1Qgd2hlbiBicm93ZXIgSmF2YVNjcmlwdCBjbG9zZXMgdGhlIHdpbmRvdwo8YnI+MTI4MjY3IC0gTm8gbG9uZ2VyIHBvc3NpYmxlIHRvIGNhcHR1cmUgc2NyZWVuIHdpdGggbmV3IEdDKGRpc3BsYXkpCjxicj4xMjg0MDggLSBKUEVHUXVhbnRpemF0aW9uVGFibGUgcHJlY2lzaW9uPTggdmFsdWVzIGNhbiBiZSBuZWdhdGl2ZQo8YnI+MTI4NDQ4IC0gW0Jyb3dzZXJdIE5vIGphdmFzY3JpcHQgY29uZmlybSBkaWFsb2cuCjxicj4xMjg0NzYgLSBSZWdyZXNzaW9uOiBUcmVlIHdpdGggY29sdW1ucyBkb2VzIG5vdCByZXNldCBob3Jpem9udGFsIHNjcm9sbCBiYXIKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAyNGsgLSBUaHVyc2RheSBGZWJydWFyeSAxNiwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEyODI0NCAtIFRhYmxlIFJvdyBPdmVyZHJhd3MgVGFibGUgSGVhZGVycwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDI0ayAtIFRodXJzZGF5IEZlYnJ1YXJ5IDE2LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTI3NzM0IC0gQ2Fubm90IG9wZW4gTGF1bmNoIENvbmZpZyBkaWFsb2cKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAyNGkgLSBUaHVyc2RheSBGZWJydWFyeSAxNiwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEyNzc1NSAtIE5QRSBpbiBUcmVlLmNhbGxQYWludEV2ZW50SGFuZGxlcgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDI0aCAtIFRodXJzZGF5IEZlYnJ1YXJ5IDE2LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTIzNDY2IC0gW1ZpZXdlcnNdIFN0cmFuZ2UgZG90cyBpbiB0YWJsZSBpdGVtIGxhYmVscwo8YnI+MTI3NzUxIC0gVklSVFVBTCBUYWJsZSBkb2VzIG5vdCBwYWludCB3aXRoIHNuaXBwZXQgMTQ0CjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjRkIC0gTW9uZGF5IEZlYnJ1YXJ5IDEzLCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTI2OTk2IC0gQ2FuJ3QgYXN5bmNFeGVjIHNldHRpbmcgb2YgdGV4dCBpbiB2aXJ0dWFsIFRyZWUKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAyNGMgLSBNb25kYXkgRmVicnVhcnkgMTMsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo1NDQyNiAtIEltcGxlbWVudCBSaWNoVGV4dCBlZGl0b3IgZm9yIFNXVCAocGFydGlhbCBmaXgpCjxicj4xMDAxMTQgLSBTV1QsIGxhdW5jaGVyIGFuZCBzdXBwb3J0IEpOSSBsaWJyYXJpZXMgbmVlZCB0byBiZSBidWlsdCB1bml2ZXJzYWwKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAyNGIgLSBNb25kYXkgRmVicnVhcnkgMTMsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo4MDkxMyAtIFRhYkZvbGRlciBubyBsb25nZXIgc2V0cyBmb2N1cyB0byB0YWIgd2hlbiBtbmVtb25pYyBwcmVzc2VkCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjQgLSBGcmlkYXkgRmVicnVhcnkgOSwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjcwMTY3IC0gSW1hZ2UoRGV2aWNlLCBJbnB1dFN0cmVhbSkgdGhyb3dzIGluY29ycmVjdCBleGNlcHRpb24gZm9yIGJhZCBQTkcKPGJyPjEyNjg2NCAtIFJlZ3Jlc3Npb246IERyb3AgdGFyZ2V0IGhhcyBpbmNvcnJlY3QgRE5EIGN1cnNvcgo8YnI+MTI2OTk1IC0gQUlPT0IgZXhjZXB0aW9uIGZvciBUcmVlCjxicj4xMjY5OTYgLSBDYW4ndCBhc3luY0V4ZWMgc2V0dGluZyBvZiB0ZXh0IGluIHZpcnR1YWwgVHJlZQo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDIzYyAtIFR1ZXNkYXkgRmVicnVhcnkgNywgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Ck9uIEdUSywgY2xvc2UgYnV0dG9uIHdpbGwgbm90IGRyYXcgY29ycmVjdGx5IGR1ZSB0byBkeW5hbWljIHRvb2x0aXBzCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjNiIC0gVHVlc2RheSBGZWJydWFyeSA3LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTI2Mjk5IC0gQWZ0ZXIgY2xlYXJBbGwoKSwgR1RLIHZpcnR1YWwgVHJlZSBmb3JnZXRzIG9sZCBUcmVlSXRlbSBvYmplY3RzIGFuZCBjcmVhdGVzIG5ldyBvbmVzCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjNhIC0gVHVlc2RheSBGZWJydWFyeSA3LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KQ29tcGlsZSBlcnJvcnMgb24gR1RLIDY0Cjxicj5DYWxsYmFja3MgbGVha2VkIG9uIEdUSwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDIzIC0gVHVlc2RheSBGZWJydWFyeSA3LCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KOTgyNjUgU3RyaW5ncyBpbiBDb21ibyBkcm9wIGRvd24gbGlzdCBhcmUgdHJ1bmNhdGVkCjxicj4xMDUwMjggV2luQ0U6IE1lbnUgSW1hZ2UgUHJvYmxlbQo8YnI+MTI0NDgxIFRyZWVFZGl0b3I6IFByb2dyZXNzQmFyIGRvZXMgbm90IGZpbGwgY2VsbCBjb3JyZWN0bHkKPGJyPjEyNTI1NSBDaGVja2JveCB0cmVlIHNlbGVjdGlvbiBtYWtlcyBjaGVja2JveCBoYXJkIHRvIHNlZQo8YnI+MTI1NzI1IE1pc3Rha2UgaW4gRm9ybUxheW91dC5sYXlvdXQoQ29tcG9zaXRlLCBib29sZWFuKQo8YnI+MTI1ODQ5IFdyb25nIGNvbG9ycyB3aXRoIGdyYWRpZW50IHBhdHRlcm4KPC9ibG9ja3F1b3RlPgoKPGgzPjxhIE5BTUU9Ik5ldyBBUEkiPjwvYT5OZXcgQVBJPC9oMz4KCjxwPiBBZGRlZCBFeHBhbmRCYXIgYW5kIGFzc29jaWF0ZWQgY2xhc3Nlcy48L3A+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDIyIC0gVHVlc2RheSBKYW51YXJ5IDMxLCAyMDA2IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjQ2ODYgLSBTY3JvbGxCYXIgZG9lcyBub3QgcmVjZWl2ZSBTV1QuU2VsZWN0aW9uIG1lc3NhZ2VzCjxicj4xMDM5NzYgLSBTcGlubmVyIHdpZGdldCBzaG91bGQgcHJvdmlkZSBzZXRWYWx1ZXMoKSBtZXRob2QgbGlrZSBTbGlkZXIKPGJyPjExNTIwOSAtIFNXVCBPU1ggMy4yTSBkb2VzICBub3QgZGlzcGxheSBsYWJlbHMgb24gcmF3IGJhY2tncm91bmQKPGJyPjEyNDQxNCAtIFNJR1NFR1YgZnJvbSBzd3QtMy4yTTQtZ3RrLWxpbnV4LXg4Nl82NC56aXAKPGJyPkFkZGVkIGRyYWcgdW5kZXIgZmVlZGJhY2sgZm9yIFRhYmxlIGFuZCBUcmVlIG9uIE1hYwo8YnI+QWRkZWQgZHluYW1pYyB0b29sdGlwcyBvbiBhbGwgcGxhdGZvcm1zCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjEgLSBUdWVzZGF5IEphbnVhcnkgMjQsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozODUyOCAtIFR3byBmdWxsIHNjcmVlbiByZWRyYXdzIGNyZWF0aW5nIGEgR0Mgb24gRGlzcGxheQo8YnI+NDAxMTcgLSBTYW4tc2VyaWZlZCBtb25vc3BhY2VkIGZvbnRzIGRvIG5vdCBhbGlnbiBwcm9wZXJseS4KPGJyPjY4MjU1IC0gYSBUYWIgaXMgbm90IDQgc3BhY2VzCjxicj45MTM2NCAtIFNXVF9BV1QubmV3X1NoZWxsKCkgaW4gR1RLIHZlcnNpb24gYmxvY2tzIGZvcmV2ZXIgb24gUmVkSGF0IDkKPGJyPjExNzUwNyAtIFRleHQgZWRpdG9yIGZsYXNoZXMgb24gY2FsbCB0byBzZWxlY3RBbmRSZXZlYWwoaW50LGludCkKPGJyPjExMjEwNCAtIEdDLmRyYXdBcmMvZmlsbEFyYyByZXN1bHRzIGluIGRpZmZlcmVudCBlZmZlY3RzIHdoZW4gYW50aWFsaWFzIG9uL29mZgo8YnI+MTIxMTkwIC0gU2V0dGluZyBjb250ZXh0IG1lbnUgb24gZWRpdGFibGUgQ0NvbWJvCjxicj4xMjE1MDYgLSBHQy5kcmF3SW1hZ2UoKSBzZWxlY3RzIHdyb25nIHNvdXJjZSByZWdpb24KPGJyPjEyMzY3NSAtIGZpbGxHcmFkaWVudFJlY3RhbmdsZSgpIGluIGdjIGRvZXNuJ3QgdXNlIGdEaXAgY2xpcHBpbmcgd2hlbiBmb3JlZ3JvdW5kIGFuZCBiYWNrZ3JvdW5kIGFyZSB0aGUgc2FtZS4KPGJyPjEyNDA5MiAtIFN0eWxlZFRleHQncyBSVEYgY29weS9wYXN0ZSBicm9rZW4KPGJyPjEyNDIwOCAtIFZpcnR1YWwgdHJlZSBzZXRJdGVtQ291bnQoMCkgaGFzIG5vIGVmZmVjdAo8YnI+MTI0NDAwIC0gUGxlYXNlIGV4cG9zZSBtaW5IZWlnaHQsIG1pbldpZHRoLCBleHBhbmRIb3Jpem9udGFsLCBleHBhbmRWZXJ0aWNhbCBpbiBTY3JvbGxlZENvbXBvc2l0ZQo8YnI+MTI0NTkxIC0gU2Nyb2xsZWRDb21wb3NpdGUuY29tcHV0ZVNpemUgcmV0dXJucyB3cm9uZyB2YWx1ZSB3aGVuIGFsd2F5c1Nob3dTY3JvbGxCYXJzPT10cnVlCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMjAgLSBUdWVzZGF5IEphbnVhcnkgMTcsIDIwMDYgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo4NjgyNSAJQ0xhYmVsIG5vdCBjb3JyZWN0bHkgY2FwdHVyZWQgYnkgV01fUFJJTlQKPGJyPjEyMDkwNyAJQm9yZGVyIGZvciBGb3JtcyBBUEkgY29udHJvbHMgc2NyZWVuc2hvdHMKPGJyPjEyMTcyMiAJSFRNTCBjbGlwYm9hcmQgdHJhbnNmZXIgZG9lcyBub3Qgd29yayBvbiBXaW5kb3dzCjxicj4xMjI0MjggCVBlcmZvcm1hbmNlIG9uIE9TIFggc3RpbGwgZGVncmFkZXMgb24gMTAuNC4zCjxicj4xMjMxNDMgCURyYWcgaGFuZGxlIGNoYW5nZXMgdG8gZm91ci13YXkgb24gY2xpY2sKPGJyPjEyMzE4NCAJRW1iZWRkZWQgaW1hZ2UgcmVuZGVyIGVycm9yIGluIFN0eWxlZFRleHQKPGJyPjEyMzU5NCAJVGV4dC5zZXRGb3JlZ3JvdW5kKENvbG9yKSBpcyBpZ25vcmVkIHdpdGggU1dULklOSEVSSVRfRk9SQ0UKPGJyPjEyMzc2NCAJVmVydGljYWwgdGFibGUgbGluZXMgbm90IHJlZHJhd24gb24gaG9yaXpvbnRhbCBzY3JvbGwKPGJyPjEyMzk5MyAJU1dUX0FXVCBlbWJlZGRlZCBmcmFtZSBkb2Vzbid0IGdldCBpY29uaWZ5L2RlY2lvbmlmeSBldmVudHMKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxOSAtIFR1ZXNkYXkgSmFudWFyeSAxMCwgMjAwNiA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ5MjY3IAlGaXJzdCBjaGFyYWN0ZXJzIGluIFRleHQgaW5pdGlhbGx5IG5vdCBkaXNwbGF5ZWQKPGJyPjExODY3MCAJTWFrZSBTdHlsZWRUZXh0LmdldExpbmVQaXhlbChpbnQpL2dldExpbmVJbmRleChpbnQpIHB1YmxpLi4uCjxicj4xMTg3OTYgCURpcmVjdG9yeURpYWxvZy5vcGVuIGRvZXMgbm90IHJldHVybiBjaG9vc2VuIGRpcmVjdG9yeQo8YnI+MTE5MjA3IAlUYWJsZUl0ZW0gZXJyb3JzIGFmdGVyL2R1cmluZyBkaXNwb3NlCjxicj4xMjA1MjQgCWRyYXdSb3VuZFJlY3RhbmdsZSBkcmF3IGJhZCByb3VuZCBjb3JuZXIgb2YgcmVjdGFuZ2xlLgo8YnI+MTIwNTczIAlbaW1wbGVtZW50YXRpb25dIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpbiBTdHlsZWRUZXh0Cjxicj4xMjA5MTQgCVdhcm5pbmdzIHN1cHByZXNzZWQgZnJvbSBHdGtGaWxlQ2hvb3NlciBjcmVhdGlvbgo8YnI+MTIwOTU0IAlCYWNrZ3JvdW5kIG9mIENvbnRyb2wgd2l0aCBTV1QuSU5IRVJJVF9GT1JDRSBkb2Vzbid0IHNob3cuLi4KPGJyPjEyMDk4MCAJUmVncmVzc2lvbjogSW1hZ2Ugb24gZGlzYWJsZWQgYnV0dG9uIG5vIGxvbmdlciBncmV5ZWQgb3V0Cjxicj4xMjE1MDcgCWZvbnQgbGVhZGluZyAobGluZSBzcGFjaW5nKSBleGNlc3NpdmUgZm9yIHNtYWxsIGZvbnRzCjxicj4xMjE3MjkgCWluIFNXVCwgamF2YWRvYyBmb3IgVGFibGUuZ2V0Q29sdW1ucyBkb2VzIGRvY3VtZW50IG9yZGVyCjxicj4xMjE3NDEgCURpc3Bvc2luZyBhIFN0eWxlZFRleHQgZGlzcG9zZXMgaXRzIG1lbnU/Cjxicj4xMjE4OTAgCUNhbnZhcyBhbmQgbW91c2VNb3ZlTGlzdGVuZXIgYW5kIE1hY09TCjxicj4xMjE5MDMgCU9TLkFscGhhQmxlbmQgY2F1c2VzICJiZGRyYXciIHN0ZG91dCBzcGV3Cjxicj4xMjI0MzMgCUV4Y2VwdGlvbiBpbiBJbWFnZXNMaXN0Cjxicj4xMjI3MzYgCVN0eWxlZFRleHQgLSBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24KPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxOGYgLSBXZWRuZXNkYXkgRGVjZW1iZXIgMTR0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEyMDY1NCAgICAJQ2hlZXNlIGluIFN0eWxlZFRleHQgb24gTGludXgKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxOGUgLSBXZWRuZXNkYXkgRGVjZW1iZXIgMTR0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEyMTA4OSAgICAJTGluZUJhY2tncm91bmRMaXN0ZW5lciBubyBsb25nZXIgd29ya3MKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxOGMgLSBXZWRuZXNkYXkgRGVjZW1iZXIgMTR0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjExODkwOSAgICAJUHJvYmxlbXMgd2l0aCBhY2NlbnRzIHVzaW5nIFNXVF9BV1QKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxOGIgLSBXZWRuZXNkYXkgRGVjZW1iZXIgMTR0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Ck5vUFIJV2FybmluZyBmaXhlcywgYmFja2dyb3VuZCByZWRyYXcgaW4gQ29tYm8gYW5kIFNwaW5uZXIKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxOGEgLSBUdWVzZGF5IERlY2VtYmVyIDEzdGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyOTk5NAlJbWFnZSBiYWNrZ3JvdW5kIENvbXBvc2l0ZSAvIFRyYW5zcGFyZW50IHdpZGdldCBiYWNrZ3JvdW5kcwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDE4IC0gVHVlc2RheSBEZWNlbWJlciAxM3RoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTE0NTE4CVtidWlsZF0gZWNsaXBzZSBzb2xhcmlzLW1vdGlmIGRlcGVuZHMgb24gbGlibS5zby4yCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMTdhIC0gTW9uZGF5IERlY2VtYmVyIDEydGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxMTY3MjIJW1Byb3BlcnRpZXNWaWV3XSBbQ2VsbEVkaXRvcnNdIChyZWdyZXNzaW9uKSBQcm9wZXJ0eSBlZGl0Li4uCjxicj4xMTk2MzggCVR5cG8gaW4gVG9vbEl0ZW0uZ2V0Q29udHJvbAo8YnI+MTE5NjcwIAlTdHlsZVRleHQuc2V0UmFuZ2UoU3R5bGVSYW5nZSkgbm8gbG9uZ2VyIHdvcmtpbmcKPGJyPjExOTY4NyAJVHJlZSBtb3VzZSBidXR0b24gZG93biBtZXNzaW5nIHVwIGNlbGwgZWRpdG9ycwo8YnI+MTIwMTc2IAlDYW4ndCByZWxpYWJseSBjaGFuZ2UgdGhlIGN1cnNvciBkdXJpbmcgVHJhY2tlci5vcGVuKCkKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxNyAtIFR1ZXNkYXkgRGVjZW1iZXIgNnRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTAwNjU5IAlEaWFsb2cgZGlzcGxheXMgc21hbGwgc29tZXRpbWVzIGluIEdUSwo8YnI+MTE2MTIxIAlJbnZhbGlkIHdpZGdldCB1c2VkIGZvciBndGtfd2lkZ2V0X2dldF9hY2Nlc3NpYmxlCjxicj4xMTY3NDYgCVRvb2xJdGVtIHRleHQgaXMgY2xpcHBlZAo8YnI+MTE3NzAwIAlbb3BlbiB0eXBlXSBPcGVuIFR5cGUgdGFibGUgc2hvd3MgdW5tb3RpdmF0ZWQgZWxsaXBzaXMsIGQuLi4KPGJyPjExODExOSAJTWFjOiBDYWxsaW5nIFRyZWUuc2V0SXRlbUNvdW50KCkgY2F1c2VzIFNXVEVycm9yOiBJdGVtIG5vLi4uCjxicj4xMTgzNjIgCVN0eWxlZFRleHQ6IFRvcCBpbmRleCB3cm9uZyBhZnRlciBzZWxlY3RBbGwKPGJyPjExODM3OCAJU3R5bGVkVGV4dCNjb21wdXRlU2l6ZSBpbXBvc2VzIGFydGlmaWNpYWwgbGltaXQgb24gcmV0dXJuLi4uCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMTYgLSBUdWVzZGF5IE5vdmVtYmVyIDI5dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo2NDc3NiAgICAJU3R5bGVkVGV4dCB3b3JkIHRyYXZlcnNlIHBsYWNlcyBjYXJldCB3cm9uZyB3aXRoIFdSQVAKPGJyPjY3NzU0IAlTdHlsZWRUZXh0OiBBSU9CRSAoUG93ZXIgb2YgMiArIDEpCjxicj43NDQ4MiAJQmFja2dyb3VuZCBjb2xvdXIgbm90IHByb3BhZ2F0ZWQgaW5zaWRlIGdyb3VwIG9yIHRhYmZvbGRlcgo8YnI+ODM0MDUgCVN1cHBvcnQgbXVsdGlwbGUgZm9udHMgaW4gU3R5bGVkVGV4dAo8YnI+ODM0MDYgCVN1cHBvcnQgb2JqZWN0cyBpbiBTdHlsZWRUZXh0Cjxicj44MzQzMCAJU3VwcG9ydCBpbmRlbnRhdGlvbiBpbiBTdHlsZWRUZXh0Cjxicj45OTM4MSAJW1BlcnNwZWN0aXZlQmFyXSBBbGlnbm1lbnQgb2YgaXRlbXMgaW4gcGVyc3BlY3RpdmUgc3dpdGNoLi4uCjxicj45OTQ2MSAJcmVzaXppbmcgVGFibGUgY2FuIGhhdmUgZHJhdyBwcm9ibGVtcwo8YnI+MTA5OTAxIAlQb29yIHBlcmZvcm1hbmNlIG9mIFN0eWxlZFRleHQuCjxicj4xMTI3MDUgCVtidWlsZF0gU1dUIHN0YW5kYWxvbmUgLnppcCB1bmNvbXByZXNzZXMgdG8gdGhlIGN1cnJlbnQgZC4uLgo8YnI+MTE1Mzk4IAlbYnVpbGRdIENvbXBpbGUgd2FybmluZ3MgaW4gb3MuYyBvbiBTb2xhcmlzL0dUSysKPGJyPjExNzU3NCAJUklHSFRfVE9fTEVGVCB8IERPVUJMRV9CVUZGRVJFRCBkb24ndCBnZXQgYWxvbmcKPGJyPjExNzc1NyAJSXMgVHJlZUl0ZW0gKC4uIGludCBoUGFyZW50LCAuLikgc3VwcG9zZWQgdG8gYmUgcHVibGljPwo8YnI+MTE3ODA3IAlwb3NzaWJsZSBidWcgaW4gVGFibGVJdGVtLnNldEltYWdlIChpbnQgaW5kZXgsIEltYWdlIGltYWdlKQo8YnI+MTE3ODE2IAlDcmFzaCB3aGlsZSBydW5uaW5nIEpGYWNlIHRlc3Qgc3VpdGUKPGJyPjExNzg3OSAJTnVsbFBvaW50ZXJFeGNlcHRpb24gZnJvbSBtb3VzZSBtb3ZlCjxicj4xMTc5MjggCUpEVCBUZXh0IHRlc3QgZG9uJ3QgcnVuIGFueW1vcmUgKG91dCBvZiBoYW5kbGVzKSAtIHdvcmtzIC4uLgo8YnI+MTE3OTkwIAlSZWR1Y2UgbWF0Y2hpbmcgY29tcGxleGl0eSBvZiB0aGUgU1dUIGZsYXQgdG9vbGJhciBSQyBzdHlsZQo8YnI+MTE4MTU0IAlTdHlsZWRUZXh0OiBzZXR0aW5nIHRoZSBjYXJldCBoYXMgbm8gZWZmZWN0Cjxicj4xMTgyMjcgCVN0eWxlZFRleHQuZ2V0QmFzZWxpbmUoKSAhPSBTdHlsZWRUZXh0LmdldEJhc2VsaW5lKG9mZnNldCkKPGJyPjExODI0MCAJU3R5bGVkVGV4dC5nZXRCYXNlbGluZShTdHlsZWRUZXh0LmdldENoYXJDb3VudCgpLTEpKSBjYXVzLi4uCjxicj4xMTgyNDEgCVN0eWxlZFRleHQ6IGdldExpbmVIZWlnaHQoaW50KSBhbmQgZ2V0QmFzZWxpbmUoaW50KTogY29kZS4uLgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDE1IC0gVHVlc2RheSBOb3ZlbWJlciAyMm5kLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KOTMwMTcgCVRpZ2VyOiBTdGFydGluZyBFY2xpcHNlIHdpdGggU3BvdGxpZ2h0IGZyZWV6ZXMgVUkgTWFuYWdlci4KPGJyPjEwMzMxMSAJW2J1aWxkXSBtb3ppbGxhIGFuZCBjYWlybyBzd3QgbGlicyBhcmUgbm90IGJ1aWx0IGR1cmluZyBlLi4uCjxicj4xMDQyODQgCUdUSyB3YXJuaW5ncyB3aGVuIHNldHRpbmcgaXRlbSBjb3VudCBvbiBWSVJUVUFMIFRhYmxlIGJlZi4uLgo8YnI+MTA3NzIwIAlbYnVpbGRdIFJlcXVlc3QgdG8gcmVwbGFjZSAke3dzfSwgJHtvc30gYW5kICR7YXJjaH0gaW4gZnIuLi4KPGJyPjExMzAwNSAJVGFibGUgSGVhZGVyIHN0YXlzIGRlcHJlc3NlZC4KPGJyPjExNjExMCAJRmlsZURpYWxvZyBoYW5ncyBTV1QgQXBwbGljYXRpb24KPGJyPjExNjM1MCAJVHJhbnNmb3JtIG5vdCBiZWluZyBzZXQgcHJvcGVybHkgb24gTGludXgtR1RLCjxicj4xMTY2ODMgCUhvbWUga2V5IGRvZXNuJ3Qgc2Nyb2xsIHdpbmRvdwo8YnI+MTE2Njg4IAllZGl0b3IgY2hlZXNlIGFmdGVyIGNvZGUgY29tcGxldGlvbgo8YnI+MTE2NzIwIAlHTENhbnZhcyBkb2Vzbid0IHNldCBoaW50IGZvciBtZXJnaW5nIG1vdXNlIG1vdGlvbiBldmVudHMKPGJyPjExNjg0NSAJQ3RybCtFbmQgaW4gU3R5bGVkVGV4dCBkb2VzIG5vdCBzY3JvbGwgZG93biBlbm91Z2ggdG8gcmV2Li4uCjxicj4xMTY4NTUgCVN0eWxlZFRleHQgd2l0aCBXUkFQIGFuZCBzcGVjaWFsIHRleHQgZHJhd3MgY2hlZXNlIG9uIEFyci4uLgo8YnI+MTE2OTM4IAlWSVJUVUFMIFRyZWUgaGFuZ3MKPGJyPjExNzEyNSAJVHJlZSB3aXRoIGNvbHVtbnMgc2hvd3MgaG9yaXpvbnRhbCBzY3JvbGwgYmFyIHdoZW4gaXQgc2hvLi4uCjxicj4xMTcxNzQgCU1vdXNlIGV2ZW50IGNvb3JkaW5hdGVzIGJyb2tlbiBvbiBMaW51eC1HVEsKPGJyPjExNzE5NSAJUmVncmVzc2lvbjogU2hlbGwgaWdub3JlcyBmaXJzdCBtb3VzZS1jbGljayBhZnRlciBkaWFsb2cgLi4uCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMTRhIC0gVHVlc2RheSBOb3ZlbWJlciAxNXRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTE2NDY2CQlBSU9PQkUgaW4gU3R5bGVkVGV4dFJlbmRlcmVyLnVwZGF0ZVJhbmdlcwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDE0IC0gVHVlc2RheSBOb3ZlbWJlciAxNXRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNzk4OTQgICAgCUNvbnRyb2wudXBkYXRlKCkgbWV0aG9kIGlzIHRvbyBleHBlbnNpdmUKPGJyPjEwMDY1OSAJRGlhbG9nIGRpc3BsYXlzIHNtYWxsIHNvbWV0aW1lcyBpbiBHVEsKPGJyPjEwNzIxOSAJUmVkcmF3IHByb2JsZW1zIG9uIHJlc2l6aW5nIFRyZWUgY29sdW1uCjxicj4xMTIzNTggCU5lZWQgYSB3YXkgdG8gY3JlYXRlIGEgbmV3IENvbG9yIGJhc2VkIG9uIGFuIGV4aXN0aW5nIGNvbG9yCjxicj4xMTI0NTQgCUNvbG9yU2VsZWN0b3IgYnV0dG9uIGRvZXMgbm90IGRpc3BsYXkgY29ycmVjdGx5IHdoZW4gZmlycy4uLgo8YnI+MTEzMTA1IAlUYWJsZSB3aWRnZXQgZG9lcyBub3QgcmV0dXJuIHRhYmxlIGl0ZW0gd2hlbiAjZ2V0SXRlbShQb2kuLi4KPGJyPjExNDgxNSAJS2V5RG93biBMaXN0ZW5lciBkZWFmIHVudGlsIGNvbnRyb2xzIHRyYXZlcnNlZDsgdGhlbiBmb2N1Li4uCjxicj4xMTUyMjkgCVNXVC5SSUdIVCBvbiBMYWJlbCB3aXRoIEltYWdlIGNhdXNlcyBkcmF3aW5nIHByb2JsZW1zCjxicj4xMTUyMzAgCUZvbnQgc21vb3RoIGRvZXMgbm90IHdvcmsgaW4gRWNsaXBzZSBGb3Jtcwo8YnI+MTE1NjI4IAlbYnVpbGRdIEdMRGF0YS5qYXZhIG1pc3NpbmcgZnJvbSBzcmMuemlwCjxicj4xMTU2NjcgCUhhbmRsZSBsZWFrIGluIFRleHRMYXlvdXQKPGJyPjExNTY3NSAJZGlzYXBwZWFyaW5nIGNoZWNrYm94IHdpdGggV2luZG93cyBYUCBsb29rIGFuZCBmZWVsCjxicj4xMTYwMDUgCUNhbm5vdCB0eXBlIGluIFRleHQgd2lkZ2V0IGluIGFuIE9OX1RPUCBTaGVsbAo8YnI+MTE2MDM4IAlOZWVkIG1vcmUgZG9jcyBmb3IgbW9kYWwgYmVoYXZpb3IgY29uc3RhbnRzIGluIFNXVCBjbGFzcwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDEzIC0gVHVlc2RheSBOb3ZlbWJlciA4dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0Nzc2MCAgICAJSW1hZ2VzIHRoYXQgU1dUIGNhbm5vdCBsb2FkLgo8YnI+OTMzODAgCVtEbkRdIDEwMCUgQ1BVIHVzYWdlIHdoZW4gZHJhZ2dpbmcgZmlsZXMgaW4gdGhlIG5hdmlnYXRvci4uLgo8YnI+OTgyODIgCVdyYXBwaW5nIGhhcyBzdHJhbmdlIGJlaGF2aW9yIGZvciBsb25nIExhYmVsIHdpdGggbm8gc3BhY2VzCjxicj4xMTExOTUgCURvdWJsZWNsaWNraW5nIGJldHdlZW4gVHJlZUNvbHVtbnMgZG9lcyBub3QgcmVzaXplIHRoZSBjby4uLgo8YnI+MTEyMzQ1IAlbTGF5b3V0RXhhbXBsZV0gVG9vbGJhciByZXBsYWNpbmcgYW5vdGhlciB3aWRnZXQgY2F1c2VzIGMuLi4KPGJyPjExMjQ2MyAJVHJlZS5zaG93Q29sdW1uIGRvZXNuJ3Qgc2Nyb2xsIGNvbHVtbiBmcm9tIGxlZnQgb2Ygdmlld3BvLi4uCjxicj4xMTMyNDQgCUFjY2Vzc2liaWx0eS4uLldoZW4gdXNpbmcgSkFXUyBvbiBhIFN0eWxlZFRleHQgd2lkZ2V0IHRoZS4uLgo8YnI+MTEzODAyIAlEaWFsb2dzIGJsb2NrIHRoZSBleGVjdXRpb24gb2YgKGEpc3luY0V4ZWNzCjxicj4xMTQ2MzIgCUNvbnRyb2xFeGFtcGxlIHNob3VsZCBzaG93IGJ1dHRvbiB3aXRoIGJvdGggaW1hZ2UgYW5kIHRleHQKPGJyPjExNTA5MiAJU25pcHBldCAyMDMgZG9lc24ndCB1c2UgYWxsIHRleHRzCjxicj4xMTUxNzYgCVJlZ3Jlc3Npb246IERpc2FibGluZyB0b29sIGJhciBtYWtlcyBzZXBhcmF0b3IgaXRlbXMgZGlzYS4uLgo8YnI+MTE1MjI5IAlTV1QuUklHSFQgb24gTGFiZWwgd2l0aCBJbWFnZSBjYXVzZXMgZHJhd2luZyBwcm9ibGVtcwo8YnI+MTE1MjkyIAlOdWxsUEUgaW4gVHJlZSNfZ2V0SXRlbShUcmVlSXRlbSBwYXJlbnRJdGVtLCBpbnQgaW5kZXgpCjxicj4xMTUzMTcgCVRvb2xJdGVtJ3MgYXJlIG5vdyAobGlnaHQtKWdyYXkgaW4gTTMKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxMmMgLSBUdWVzZGF5IE5vdmVtYmVyIDJuZCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjExNDUzMwlFZGl0b3IgcG9wdXAgaGFzIHdyb25nIHNpemUKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxMmIgLSBUdWVzZGF5IE5vdmVtYmVyIDFzdCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjExNDQ5OAlUYWJsZSBkb2Vzbid0IHNlbmQgc2VsZWN0aW9uIGNoYW5nZSBldmVudHMgYW55bW9yZSB3aGVuIHNlbGVjdGluZyBlbGVtZW50cyB3aXRoIHRoZSBtb3VzZQo8YnI+MTE0NTE4CVtidWlsZF0gZWNsaXBzZSBzb2xhcmlzLW1vdGlmIGRlcGVuZHMgb24gbGlibS5zby4yCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMTJhIC0gVHVlc2RheSBOb3ZlbWJlciAxc3QsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxMTIzOTAJW1ZpZXdlcnNdIEpVbml0IGVycm9yIGluIEpGYWNlUGVyZm9ybWFuY2VTdWl0ZQo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDEyIC0gTW9uZGF5IE9jdG9iZXIgMzFzdCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjc2Nzg5IAlUYWJsZSByZWRyYXcgZHVyaW5nIGRyYWcnbidkcm9wCjxicj44NTA2OSAJW01hY10gS0VSTl9QUk9URUNUSU9OX0ZBSUxVUkUgb24gRXhpdAo8YnI+ODc4ODMgCVJlbW92ZSB0aXRsZSBiYXIgYnV0dG9ucyBmcm9tIGFwcGxpY2F0aW9uLW1vZGFsIGRpYWxvZ3Mgby4uLgo8YnI+ODg3MjQgCVByb3ZpZGUgJ3NpbmNlJyBqYXZhZG9jIGluIHNuaXBwZXRzCjxicj45MjM0MSAJRENSIC0gQWRkIFNXVC5WSVJUVUFMIHN0eWxlIHRvIFRyZWUgd2lkZ2V0Cjxicj45ODUxMSAJVHJlZXZpZXdlciBkb2Vzbid0IGRlLXNlbGVjdCBjaGlsZCB3aGVuIHBhcmVudCBpcyBjbG9zZWQKPGJyPjEwMDY2OCAJTWFjIG9ubHk6IHJlZHJhdyBidWcgd2hpY2ggb2NjdXJzIHdoZW4gc3dpdGNoaW5nIHZpZXdzCjxicj4xMDEzMzEgCUdDLmRyYXdGb2N1cyBub3QgaW1wbGVtZW50ZWQgb24gdGhlIE1hYwo8YnI+MTA0OTczIAlVbmhhbmRpbHkgV29ya2Fyb3VuZCBpbiBUZXh0LmdldENhcmV0TG9jYXRpb24gKCkKPGJyPjExMDk1MSAJQ29tYm8uc2V0SXRlbShpbnQsIFN0cmluZykgZG9lcyBub3QgcHJlc2VydmUgdGhlIHNlbGVjdGlvLi4uCjxicj4xMTEzMDMgCUNhbm5vdCBtaWRkbGUtYnV0dG9uIHBhc3RlIHRvIHJ4dnQgZnJvbSBFY2xpcHNlCjxicj4xMTE3OTggCVRleHQjZ2V0Q2FyZXRMb2NhdGlvbigpIHJlcGxhY2VzIHNlbGVjdGVkIHRleHQgYnkgIiAiIGlmZi4uLgo8YnI+MTEzMTcyIAlTV1QgTGFiZWwgd2lkZ2V0IHRyYW5jYXRlcyB0aGUgdGV4dCBpZiBpdCBjb250YWlucyBhIGxvLi4uCjxicj4xMTMyMDQgCVRleHQgd2lkZ2V0IGJsZWVkcyBvdXRzaWRlIFNhc2hGb3JtCjxicj4xMTM4OTUgCXBhbmdvX2xheW91dF9jb250ZXh0X2NoYW5nZWQgY2FsbGVkIHRvbyBvZnRlbgo8YnI+MTEzOTcxIAlUZXN0IGZhaWx1cmVzIGluIFRyZWUgb24gTjIwMDUxMDI3LTAwMTAKPGJyPjExNDAzOSAJVGFibGUuY29tcHV0ZVNpemUgcmV0dXJucyBib2d1cyBQb2ludC55IHZhbHVlcyB1bmRlciBXaW4zLi4uCjxicj4xMTQxMzkgCUJhZCBjb2xvdXJzIGZvciB0ZXh0IGluIHRoZSBwbHVnaW4ueG1sIGVkaXRvcgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDExIC0gVHVlc2RheSBPY3RvYmVyIDI1dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozNDYxMiAgICAJc2Nyb2xsIHByb2JsZW0gaW4gdHJlZSwgdGFibGUsIGFuZCBsaXN0Cjxicj4zNTkwOSAJVGFibGUgSElERV9TRUxFQ1RJT04gYmVoYXZpb3VyIG5vdCBpbXBsZW1lbnRlZAo8YnI+NDE0NjYgCVBhbnRoZXI6IENoZWNrIGFuZCBSYWRpbyBUb29sSXRlbXMgZG9uJ3QgdXNlIGNvcnJlY3QgbG9vawo8YnI+NTE3MzYgCVtKVW5pdF0gVHJlZUl0ZW0gdGVzdCBjYXNlcyBmYWlsaW5nCjxicj42ODY1NyAJSlVuaXQgdGVzdCBmYWlscyBmb3IgSW1hZ2Uuc2V0QmFja2dyb3VuZAo8YnI+NzY4MDQgCUltcHJvdmUgU1dUIHBlcmZvcm1hbmNlIG92ZXIgR1RLIHdpbmRvdyBzeXN0ZW0KPGJyPjg1NTM5IAlbSlVuaXRdIEdDLmNvcHlBcmVhIHRlc3QgY2FzZXMgZmFpbGluZwo8YnI+ODk2ODcgCWNvbXB1dGVTaXplKC0xLCAtMSkgd3JvbmcgZm9yIFRleHQgd2l0aCBTV1QuV3JhcC4KPGJyPjkxMzg4IAlUaWdlcjogMSBwaXhlbCBsaW5lIGRyYXduIG92ZXIgc2Nyb2xsYmFycwo8YnI+OTQzNzAgCVNXVCBjcmFzaGVzIHdpdGggS0VSTl9QUk9URUNUSU9OX0ZBSUxVUkUgb24gbWFjCjxicj45NDYyOSAJQ2xpcHBlZCB0ZXh0IGZpZWxkcyBpbiBwcm9qZWN0IGluZm8gcGFnZQo8YnI+OTY4MzkgCUNDb21ibyB2aXNpYmxlIGFib3ZlIG5laWdoYm91cmluZyBhcmVhcyB3aGlsZSBzY3JvbGxpbmcgLi4uCjxicj4xMDAwMzUgIEVjbGlwc2UgbG9zZXMgaXRzIGRvY2sgaWNvbiB3aGVuIGRvY2sgcmVzdGFydGVkCjxicj4xMDA2OTYgCUtleWJvYXJkIGZhaWxzIG9uIE1hY09TIFgKPGJyPjEwMjA4OCAJVGV4dCB3aXRoIENFTlRFUiBoYXMgdG9vIG11Y2ggbG9naWNhbCBzcGFjZQo8YnI+MTA5MjE1IAlNb3ZlYWJsZSB0YWJsZSBjb2x1bW4gYW5kIERORCBmZWVkYmFjayBjbGFzaCBvbiBNYWNPUyBYCjxicj4xMDk5NTEgCU1hYzogTWVudSBIaWdobGlnaHQgQ2hlZXNlCjxicj4xMDk5NTIgCU1hYzogTWVudSBDbGVhcmVkIEFmdGVyIFNoZWxsIFJlc3RvcmVkIEZyb20gRG9jawo8YnI+MTExOTczIAlEZWZhdWx0IERpYWxvZyBmb250IG9uIE1hYyBPUyBYIG5vdCBnb29kIGZvciBEQkNTIGxhbmd1YWdlcwo8YnI+MTEyMTE2IAlBbnRpYWxpYXNpbmcgY2F1c2VzIGluY29ycmVjdCBkcmF3aW5nCjxicj4xMTI0MDMgCXdpbmRvdyBkaW1lbnNpb25zIGFyZSB0aW55Cjxicj4xMTI5OTQgCWF1dG8gaG9vayB1cCBzaW1wbGUgd2lkZ2V0IHJlbGF0aW9ucyBmb3Igc2NyZWVuIHJlYWRlcnMKPGJyPjExMzEwMCAJQnV0dG9uIHNpemUgdGVzdCBmYWlsdXJlcyBpbiBvcmcuZWNsaXBzZS51aS50ZXN0cwo8YnI+MTEzNDg1IAlEb24ndCBmbHVzaCBYIGV4cG9zZXMgZm9yIGEgU01PT1RIIFNhc2gKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAxMCAtIFR1ZXNkYXkgT2N0b2JlciAxOHRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMzI0NzEgICAgCURpc2FibGVkIHRleHQgZmllbGQgZG9lcyBub3Qgc2hvdyBhcyBnaG9zdGVkCjxicj4zNDUxMyAJVGV4dCBoYXMgYSBob3Jpem9udGFsIHNjcm9sbGJhciB3aGVuIG5vdCByZXF1aXJlZAo8YnI+NDEzMDYgCUJvcmRlciBkcmF3cyB0aHJvdWdoIGZhc3Qgdmlld3MKPGJyPjQxNDY3IAlQYW50aGVyOiBTd2l0Y2ggdG8gSElWaWV3cyBhbmQgQ29tcG9zaXRpbmcgbW9kZQo8YnI+NDM5MjAgCUNsaXBwaW5nIHByb2JsZW1zCjxicj41MTc0OSAJTGlzdCBmbGFzaGVzCjxicj41NzcyMyAJQklESTogU3R5bGVkVGV4dCBidWcgd2hlbiBjaGFuZ2luZyB0aGUgY29sb3Igb2YgYm9sZCB0ZXh0Cjxicj42MjkwOCAJU2Nyb2xsQmFycyBmbGFzaCB3aGVuIFRleHQgd2lkZ2V0IGNyZWF0ZWQKPGJyPjY0OTk3IAlsYWJlbCBjaGVlc2Ugd2hlbiBkaWFsb2cgbGF5b3V0IGNoYW5nZXMuCjxicj42Njk4MCAJQ3VzdG9tIENvbWJvOiBjaGFuZ2luZyBhbnkgb3B0aW9uIHdoaWxlIHRoZSBjb21wb25lbnQgaXMgLi4uCjxicj43MDU4NyAJW1BlcnNwZWN0aXZlc10gamF2YSBwZXJzcGVjdGl2ZSBkb2VzIG5vdCByZXBhaW50IG9uIG9jY2FzaW9uCjxicj43NDU3NCAJUHJvcGVydHkgRGlhbG9nID4gSW5mbyBQYWdlOiBsYXlvdXQgYnJva2VuCjxicj44MjAyMSAJQklESTp3aGVuIHNlYXJjaGluZyBmb3IgYSBzdWJzdHJpbmcgb2YgYW4gQXJhYmljIHdvcmQgdGhlLi4uCjxicj44NTc3NSAJRm9jdXMgcGFpbnRlZCBvdXRzaWRlIG9mIHRoZSB2aXNpYmxlIGFyZWEgb2Ygc2Nyb2xsYWJsZS4KPGJyPjg5Njg3ICAJY29tcHV0ZVNpemUoLTEsIC0xKSB3cm9uZyBmb3IgVGV4dCB3aXRoIFNXVC5XcmFwLgo8YnI+ODk2OTYgCUJhZCBwYWludGluZyB3aGVuIGVyYXRpY2FsbHkgc2Nyb2xsaW5nIGNvbXBhcmUgZWRpdG9yCjxicj45NDYyOSAgIENsaXBwZWQgdGV4dCBmaWVsZHMgaW4gcHJvamVjdCBpbmZvIHBhZ2UKPGJyPjk5MjY2IAlbVmlld2Vyc10gQm9ndXMgZW1wdHkgcm93cyBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgdGFibGUKPGJyPjEwMjUyNSAJQnV0dG9uIGluIGEgdG9vbGJhciBub3Qgc2l6ZWQgY29ycmVjdGx5Cjxicj4xMDQwNDEgCVticm93c2VyXWJyb3dzZXIuZXhlY3V0ZSgpIGZhaWxzIHdoZW4gQWNyb2JhdCBSZWFkZXIgdjcgaS4uLgo8YnI+MTA4NjM1IAlUZXh0IHdpZGdldCBpbiBNQUMgT1MgWCBkb2VzbnQgcGFpbnQgdG8gR0MKPGJyPjEwODk0MyAJRHJhZ2dpbmcgdGFibGUgY29sdW1uIHNhc2hlcyBsZWZ0IHRvIHJpZ2h0IGxlYXZlcyBwcmV0dHkgLi4uCjxicj4xMTE5MTAgCVJlZ3Jlc3Npb246IEVtcHR5IHVudXNhYmxlIGRpYWxvZ3Mgb24gUmVkaGF0IDgrOSAvIGd0ay0yLi4uLgo8YnI+MTEyMzM2IAlTdHlsZWRUZXh0IGlzIHN0aWxsIG1pc2JlaGF2aW5nCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMDlhIC0gVHVlc2RheSBPY3RvYmVyIDExdGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgpOb1ByCVRleHQgaXNzdWVzIG9uIHRoZSBNYWMsIGNvbXBpbGUgZXJyb3Igb24gUGhvdG9uCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMDkgLSBUdWVzZGF5IE9jdG9iZXIgMTF0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEzODEzICAgQVBJIHJlcXVlc3Q6IG5vdGlmaWNhdGlvbiB3aGVuIE9TIHN5c3RlbSBjb2xvcnMgY2hhbmdlCjxicj4yMjAwMCAJR1RLOiBNZW51YmFyIGlzIG5vdCBhY2NvdW50ZWQgZm9yIGluIGNvbXB1dGVUcmltKCkuCjxicj41MTQ4MCAJSlVuaXQgdGVzdHMgZm9yIEJyb3dzZXIgYXJlIHByaW50aW5nIHRvIGNvbnNvbGUKPGJyPjcxMzQ4IAlDYW4ndCBsaXN0ZW4gRXhjZWwgZXZlbnRzCjxicj43NTM5MCAJW2Jyb3dzZXJdIGRvd25sb2FkIG5vdCB3b3JraW5nIG9uIHRoZSBtYWMKPGJyPjkzNzYzIAlDbGlja2luZyBvbiB0aGUgYnV0dG9uIGZyYW1lIGRvZXMgbm90IGFjdGl2YXRlIHRvb2xpdGVtJ3MuLi4KPGJyPjExMDM0NiAJVGV4dCB3aWRnZXQgZG9lcyBub3QgdHJpZ2dlciBTV1QuRGVmYXVsdFNlbGVjdGlvbiBldmVudHMgLi4uCjxicj4xMTA1NTkgCVByZXNzaW5nIENtZCtRIHR3aWNlIGNyYXNoZXMgYXBwbGljYXRpb24KPGJyPjExMDkyMyAJVGFibGVJdGVtLnNldEltYWdlIGRvZXMgbm90IHJlZHJhdyB0aGUgaXRlbQo8YnI+MTExNzUxIAlbT3BlbkdMXSBObyBHTERhdGEgY2xhc3MgZm91bmQgd2hlbiBydW5uaW5nIGV4YW1wbGVzCjxicj4xMTE3NjIgCUpWTSBkdW1wIGluIFNXVCBuYXRpdmUgbWV0aG9kCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMDggLSBUdWVzZGF5IE9jdG9iZXIgNHRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMzM5NjcgIAlEQ1IgLSBJbWFnZSBBTkQgVGV4dCBCdXR0b24gc3VwcG9ydCB3aGVuIGF2YWxhaWJsZQo8YnI+ODU5NjIgCUludGVybmFsIGJyb3dzZXIgbWFpbnRhaW5zIHNlc3Npb24gYWZ0ZXIgd2luZG93IGlzIGNsb3NlZAo8YnI+ODg5NTggCURpcmVjdG9yeURpYWxvZyBhbmQgRmlsZURpYWxvZyBicmluZyBDUFUgdXRpbGl6YXRpb24gdG8gMTAwJQo8YnI+OTAxMTYgCVtidWlsZF0gcGtnLWNvbmZpZyBhcmd1bWVudHMgcGFzc2VkIHRvIGxkIGFuZCBub3QgZ2NjCjxicj45ODI5NiAJQnJvd3NlciBpbiBCcm93c2VyRXhhbXBsZSBvcGVucyB0b28gc21hbGwKPGJyPjEwMjA5NyAJW2J1aWxkXSBidWlsZC5zaCB1c2VzIGhhcmRjb2RlZCBBV1RfTElCX1BBVEgKPGJyPjEwMzg5NCAJYnJvd3NlciBmYWlsIHRvIGh5cGVyIGxpbmsgdG8gYW5vdGhlciBwYWdlCjxicj4xMDk0MzEgCUFycmF5SU9CIGluIFRyZWUud21Ob3RpZnlDaGlsZAo8YnI+MTEwMzQyIAlTV1QgRXhhbXBsZSBMYXVuY2hlcjogRG91YmxlLWNsaWNrIG9uICJTdGFuZGFsb25lIiBmb2xkZXIuLi4KPGJyPjExMDUzMSAJVk0gY3Jhc2hlcyB3aGVuIGNyZWF0aW5nIGFuIEltYWdlIGFmdGVyIHJvdGF0aW9uCjxicj4xMTA3MzQgCVdhcm5pbmdzIGFib3V0IFhDcmVhdGVDb2xvcm1hcAo8YnI+MTEwNzUzIAlnZGtfcmVnaW9uX2dldF9yZWN0YW5nbGVzIGxlYWtzCjxicj4xMTA3NjcgCWphdmEubGFuZy5Ob1N1Y2hNZXRob2RFcnJvcjogWEVycm9yUHJvYyB3aGVuIHNldHRpbmcgRGlzcC4uLgo8YnI+MTEwOTQ5IAlsaW5rIGVycm9yIGluIEdDLnNldENsaXBwaW5nKHgsIHksIHcsIGgpIG9uIHBvY2tldCBwYwo8YnI+MTExMTU3IAlUcmVlSXRlbS5zZXRCYWNrZ3JvdW5kIGRvZXNuJ3Qgd29yawo8YnI+MTExMjg0IAlDcmFzaCBpbiBUcmVlU2VsZWN0aW9uIC0gRXZlbnQKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAwNyAtIFR1ZXNkYXkgU2VwdGVtYmVyIDI2dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozNzcwOSAJU3VwcG9ydCBPcGVuR0wKPGJyPjUwNjQ2IAlDVGFiRm9sZGVyIHRvb2x0aXBzIGFyZSBub3QgcmVhZCBvdXQKPGJyPjc0MDk1IAlTV1RfQVdUIFggZXJyb3Igd2l0aCBKYWRlRGlzcGxheSBpbnRlZ3JhdGlvbgo8YnI+MTA0NDA3IAlSaWdodCBjbGljayBvbiBUcmVlIGRvZXMgbm90IGhvbm9yIHRoZSBTV1QuRlVMTF9TRUxFQ1RJT04uLi4KPGJyPjEwODkyMSAJVHJlZSB3aXRoIGxpbmVzIHZpc2libGUgbm90IHBhaW50ZWQgY29ycmVjdGx5Cjxicj4xMDg5NDkgCVticm93c2VyXSBqYXZhc2NyaXB0IGFsZXJ0cyBhcmUgbm90IHNob3duCjxicj4xMTA0MzIgCWF0a19vYmplY3RfZmFjdG9yeV9jcmVhdGVfYWNjZXNzaWJsZSBlcnJvcnMKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAwNmQgLSBXZWRuZXNkYXkgU2VwdGVtYmVyIDIxc3QsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxMTAwNTcJW2Jyb3dzZXJdIGNyYXNoIHdoZW5ldmVyIGEgQnJvd3NlciBpcyBkaXNwb3NlZAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDA2YyAtIE1vbmRheSBTZXB0ZW1iZXIgMTl0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjExMDA3MwlwZXJzcGVjdGl2ZSBidXR0b24gZ29lcyBibGFuayBhZnRlciBjbG9zaW5nIHBlcnNwZWN0aXZlCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMDZiIC0gTW9uZGF5IFNlcHRlbWJlciAxOXRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KOTkyNjYJW1ZpZXdlcnNdIEJvZ3VzIGVtcHR5IHJvd3MgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHRhYmxlCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMDZhIC0gTW9uZGF5IFNlcHRlbWJlciAxOXRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KTm9QUiAgICAJQ29tcGlsZSBmaXhlcyBmb3IgNjQtYml0CjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMDYgLSBNb25kYXkgU2VwdGVtYmVyIDE5dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxMDE3NTAgICAgCVtCcm93c2VyXSBDbGlja2luZyBvbiBsaW5rIHRvIFBERiBmaWxlIGRvZXMgbm90aGluZwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDA1IC0gVHVlc2RheSBTZXB0ZW1iZXIgMTN0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ1NzIgICAgCU5lZWQgc3VwcG9ydCBmb3IgdG9vbCB0aXBzIGluIHRhYmxlIGNvbHVtbnMgKDFHQlpMRDEpCjxicj4zNDE4NCAJTmF0aXZlIFRyZWU6IE5vIHRvb2x0aXBzCjxicj40NjM4NyAJUGF0Y2ggZm9yIHNhdmluZyBhbmltYXRlZCBHSUZzCjxicj44NzUwMyAJaW1wbGVtZW50IE9TWCBvcGVuZ2wgYmluZGluZwo8YnI+ODc1NzcgCUdDLmRyYXdJbWFnZSgpIHdpdGggcmVzY2FsaW5nIGRvZXMgbm90IG9wdGltaXplIGNsaXBwZWQgZC4uLgo8YnI+OTc1OTcgCVRyZWUgaXMgbm90IHNob3dpbmcgbGluZXMKPGJyPjEwMTIwNCAJW2NvbnNpc3RlbmN5XSBNb3VzZURvd24gZmlyZWQgd2hpbGUgdXNpbmcgU2Nyb2xsYmFyIGluIFRhYmxlCjxicj4xMDI5NTIgCUZvcmVncm91bmQgY29sb3IgZ2V0cyBsb3N0IHdoZW4gcGFpbnRpbmcgYSBQYXRoCjxicj4xMDU3NzIgCVN0cmFuZ2UgYmFja2dyb3VuZCBjb2xvciBvZiBsYWJlbCBvbiB0ZXh0IHNlYXJjaCBwYWdlCjxicj4xMDYyODkgCUJsdXJyeSBUcmVlIHRleHQgaW4gc2Vjb25kIGNvbHVtbgo8YnI+MTA2NDk4IAljcmVhdGluZyBUcmVlIGNvbHVtbiAwIGNhdXNlcyBkcmF3aW5nIHByb2JsZW0KPGJyPjEwNzI0MyAJU2Nyb2xsYmFyLnNldFZhbHVlcyBzaWxlbnRseSBkb2VzIG5vdGhpbmcKPGJyPjEwNzY4NCAJUmVzZXR0aW5nIG9mIGNsaXBwaW5nIHJlZ2lvbiBkb2VzIG5vdCB3b3JrIGlmIGdjLnNldFRyYW5zLi4uCjxicj4xMDgwNjAgCUV4dHJhIG5vbi1mdW5jdGlvbmFsIGhvcml6b250YWwgc2Nyb2xsIGJhciBpbiBUcmVlVmlld2VyCjxicj4xMDgxOTAgCUNvbWJvIGRvZXNuJ3QgcHJvZHVjZSBtb2RpZmljYXRpb24gZXZlbnQgZm9yIEFMVC1ET1dOCjxicj4xMDgzMTUgCUdDLnNldEFkdmFuY2VkKCkgZGVzdHJveXMgY2xpcHBpbmcKPGJyPjEwODMzMSAJVXNpZ24gaW50ZXJuYWwgd2ViIGJyb3dzZXIgdG8gYWNjZXNzIGJhc2ljIGF1dGggcHJvdGVjdGVkLi4uCjxicj4xMDg0MjMgCUdDLmRyYXdBcmMgZG9lc24ndCB3b3JrIGNvcnJlY3Qgd2l0aCBDYWlybwo8YnI+MTA4NTExIAlFY2xpcHNlIGNyYXNoZXMgd2hlbiBvcGVuIGh0bWwgZmlsZSByZW5hbWVkCjxicj4xMDg3MDYgCUdDLmRyYXdSb3VuZFJlY3RhbmdsZSgpIGRvZXNuJ3Qgd29yayBpZiBDYWlybyBpcyBpbml0aWFsaXplZAo8YnI+MTA4Nzk2IAlQbGVhc2UgbWFrZSBGb3JtQXR0YWNobWVudCgpIHB1YmxpYwo8YnI+MTA4ODY1IAlTV1QuRE9VQkxFX0JVRkZFUkVEICsgR0MuZHJhd0ZvY3VzKCkgZXF1YWxzIGNoZWVzZQo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDA0IC0gVHVlc2RheSBBdWd1c3QgMzB0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjM0MTU5ICAgIAlbVGFza3NdIEZpcnN0IHRocmVlIGNvbHVtbnMgb2YgVGFzayBMaXN0IHRvbyB3aWRlIHcvbmF0aXYuLi4KPGJyPjM3OTU5IAlTZWxlY3Qgb24gaG92ZXIgc2VsZWN0cyB3aGVuIG1vdXNlIGlzIGluIHNjcm9sbGJhcgo8YnI+NjAzMDkgCVRleHRMYXlvdXQuZ2V0Qm91bmRzLmhlaWdodCBub3QgcmlnaHQgd2hlbiB0aGUgdGV4dCB0ZXJtaS4uLgo8YnI+NjU3MjkgCVRleHRMYXlvdXQuZ2V0T2Zmc2V0IGlzIG5vdCB3b3JraW5nIHdoZW4gdXNpbmcgJ1xuJy4KPGJyPjY3MDY2IAlUYWJsZSAibGluZXMgdmlzaWJsZSIgZmxhZyBkb2VzIG5vdCB3b3JrCjxicj44MDQ5MCAJVGhlIFNXVCBicm93c2VyIHdpZGdldCBkb2Vzbid0IHdvcmsgd2l0aCBpbnB1dCBmaWVsZCB0eXBlLi4uCjxicj44MTU2NyAJW1Byb3BlcnRpZXNWaWV3XSBQcm9wZXJ0aWVzIFZpZXcgc2Nyb2xsaW5nIHByb2JsZW0KPGJyPjk2MzM5IAlOZXh0IEVkaXRvciBjYXVzZXMgY3Jhc2ggd2hlbiByZW1hcHBlZCB0byBDdHJsLVRhYgo8YnI+OTc1OTcgCVRyZWUgaXMgbm90IHNob3dpbmcgbGluZXMKPGJyPjEwMTIwNCAJW2NvbnNpc3RlbmN5XSBNb3VzZURvd24gZmlyZWQgd2hpbGUgdXNpbmcgU2Nyb2xsYmFyIGluIFRhYmxlCjxicj4xMDU2MjIgCVRvb2xJdGVtLnNldFRleHQoIiIpIHNob3VsZCByZW1vdmUgVGV4dCBhbmQgcmV0dXJuIHRvIGluaS4uLgo8YnI+MTA1NzcyIAlTdHJhbmdlIGJhY2tncm91bmQgY29sb3Igb2YgbGFiZWwgb24gdGV4dCBzZWFyY2ggcGFnZQo8YnI+MTA2NDk0IAljcmVhdGluZyBUYWJsZS9UcmVlQ29sdW1uIG1ha2VzIGV4aXN0aW5nIGl0ZW0gZGlzYXBwZWFyCjxicj4xMDY1MDIgCXNldHRpbmcgVGFibGUgY29sdW1uIGFsaWdubWVudCBkb2VzIG5vdCB2aXN1YWxseSB1cGRhdGUKPGJyPjEwNjUxMSAJQ2Fubm90IHNldCB0ZXh0IHNlbGVjdGlvbiBpbiBWZXJpZnlMaXN0ZW5lci52ZXJpZnlUZXh0Cjxicj4xMDY5MjggCUpWTSB0ZXJtaW5hdGVzIHdoZW4gY2xvc2luZyB3ZWIgYnJvc2VyIHdpdGggQ29tbWFuZCBXIG9uIC4uLgo8YnI+MTA3Nzc3IAlbYnJvd3Nlcl0gY3Jhc2ggd2hlbiBhY2Nlc3NpbmcgcGFzc3dvcmQtcHJvdGVjdGVkIHNpdGUKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAwMyAtIFR1ZXNkYXkgQXVndXN0IDIzcmQsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo4OTE4MyAgICAJSW1hZ2UgaW4gYW55IHRhYmxlIGNvbHVtbiBoZWFkZXIgY3JlYXRlcyBpbmRlbnQgaW4gZmlyc3QgLi4uCjxicj45MjYzNiAJW0Jyb3dzZXJdIENsaWNraW5nIGluIHdlYiBicm93c2VyIChlZGl0b3IpIGRvZXMgbm90IGRpc21pLi4uCjxicj4xMDA2NjUgCUFkZCBSZXNvdXJjZS5nZXREZXZpY2UoKQo8YnI+MTA0MzgwIAlUZXh0IHdpdGggV1JBUCAtIENvbXB1dGUgZmFpbHMKPGJyPjEwNTQ5NCAJc2V0dGluZyBpbWFnZSBpbiBUcmVlSXRlbSBjb2x1bW4gMSBhZmZlY3RzIGl0cyBmdXR1cmUgY29sLi4uCjxicj4xMDYwMDYgCVtDb250cmlidXRpb25zXSBOdWxsUG9pbnRlckV4Y2VwdGlvbnMgaW4gTWVudU1hbmFnZXIudXBkYXRlCjxicj4xMDcxMjMgCUFscGhhIHZhbHVlcyBvbiBHQyBhcmUgbm90IGFwcGxpZWQgdG8gSW1hZ2VzIG9uIFdpbmRvd3MKPGJyPjEwNzMyNCAJUmVjZW50IGNoYW5nZXMgY2F1c2luZyBhIFZNIGNyYXNoCjxicj4xMDczMjkgCUFJT09CRXhjZXB0aW9uIGNhdXNlZCBieSBUcmVlLnNldFJlZHJhdygpCjxicj4xMDc0NTIgCVticm93c2VyXSBmaXJlcyAyIGtleVVwIGV2ZW50cwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDAyYSAtIFRodXJzZGF5IEF1Z3VzdCAxOHRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTA3MTEyIAlDbG9zaW5nIGFuIGVkaXRvciBhZGRzICJXaWRnZXQgaXMgZGlzcG9zZWQiIGVycm9yIHRvIHRoZSAuLi4KPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAwMiAtIFR1ZXNkYXkgQXVndXN0IDE2dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NDE2ICAgIAlXaWRnZXQgdHJlZSBzaG91bGQgYmUgdmFsaWQgZHVyaW5nIGEgZGlzcG9zZSBldmVudCAoMUZGMURKNCkKPGJyPjQ4NjIgCUNoZWNrIGZvciBpc0Rpc3Bvc2VkKCkgaW4gZGlzcG9zZSBhZnRlciBzZW5kaW5nIERpc3Bvc2UgQy4uLgo8YnI+NjQxMDcgCUl0ZW1zIGluIGJhZCBzdGF0ZSBpbiBkaXNwb3NlIGNhbGxiYWNrCjxicj44OTE4MyAJSW1hZ2UgaW4gYW55IHRhYmxlIGNvbHVtbiBoZWFkZXIgY3JlYXRlcyBpbmRlbnQgaW4gZmlyc3QgLi4uCjxicj45MDQ0NyAJQUlPT0Igd2hlbiBjcmVhdGluZyBUcmVlSXRlbXMgaW4gVHJlZUl0ZW0uZGlzcG9zZSgpIGNhbGxiYWNrCjxicj45MDQ3OCAJVHJlZUl0ZW0uZGlzcG9zZSBjYWxsYmFjayBwcm92aWRlcyBvcHBvcnR1bml0eSBmb3IgVHJlZSBoLi4uCjxicj45MjAxMyAJRENSIC0gTmVlZCBTV1QuVkVSVElDQUwgc3R5bGUgZm9yIENvb2xCYXIKPGJyPjk0ODk2IAlCcm93c2VyLnNldFRleHQoKSBmaXJlcyBhbiB1bmV4cGVjdGVkIHVybAo8YnI+MTA0MzgwIAlUZXh0IHdpdGggV1JBUCAtIENvbXB1dGUgZmFpbHMKPGJyPjEwNDU4OSAJQ3Jhc2ggd2hpbGUgcnVubmluZyBKRmFjZSB0ZXN0IHN1aXRlcwo8YnI+MTA2Mjg5IAlCbHVycnkgVHJlZSB0ZXh0IGluIHNlY29uZCBjb2x1bW4KPGJyPjEwNjUzNiAJVGFibGVJdGVtLmdldEJvdW5kcyAtIHNtYWxsIGluY29uc2lzdGVuY2llcwo8YnI+MTA2NTQyIAlzaG93aW5nL2hpZGluZyBjb2x1bW4gc29ydCBhcnJvdyBzaG91bGQgcmVjb21wdXRlIGRpc3BsYXkuLi4KPGJyPjEwNjU0MyAJNjQtYml0IHByb2JsZW0gaW4gQ2Fpcm8KPGJyPjEwNjYwMSAJVHlwbyBpbiBTV1QgbWFrZWZpbGUKPGJyPjEwNjY0MCAJRmFpbHVyZXMgcnVubmluZyB0aGUgSkZhY2Ugc3VpdGVzCjxicj4xMDY2NDcgCVZNIGNyYXNoIGluIFRhYmxlSXRlbSBkaXNwb3NlCjxicj4xMDY3MzAgCVJlbmRlcmluZyBwcm9ibGVtcyBvbiBDdXN0b21pemUgUGVyc3BlY3RpdmUgZGlhbG9nCjxicj4xMDY3NTkgCVNXVCBkb2Vzbid0IGJ1aWxkIGFnYWluc3QgbmV3ZXN0IENhaXJvIHZlcnNpb25zCjxicj4xMDY4NTEgCU5QRXMgY2F1c2VkIGJ5IHJlY2VudCBUcmVlIGNoYW5nZXMKPGJyPjEwNzA0OCAJUGF0aC5tb3ZlVG8gZHJhd3MgbGluZXMKPGJyPjEwNzE0NSAJSmF2YWRvYyBjYW4gbm90IHJlZmVyIHRvIHBhY2thZ2UgcHJvdGVjdGVkIG1ldGhvZHMKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4yIDAwMWMgLSBXZWRuZXNkYXkgQXVndXN0IDEwdGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgpOb1BSICBTb3J0IGluZGljYXRvciBzdHVjayB1cCBvbiBXaW5kb3dzCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMiAwMDFiIC0gTW9uZGF5IEF1Z3VzdCA4dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NTcwOCAgTlBFIGluIFRhYmxlLnJlbGVhc2VXaWRnZXQKPGJyPjU5NTM3IFtXb3JrYmVuY2hdIEFjY2Vzc2liaWxpdHk6IE1pbmltaXplIGFuZCBNYXhpbWl6ZSBpY29ucyBpbi4uLgo8YnI+MTA1MTMzIG1vdXNlIHdoZWVsIHNjcm9sbGluZyBpbiBlZGl0b3IgbW92ZXMgc2Nyb2xsYmFyIHRodW1iIGJ1dC4uLgo8YnI+MTA1NTkxIFByb2JsZW1zIHNldHRpbmcgYW5kIHVwZGF0aW5nIGFuIEltYWdlIG9uIGEgTGFiZWwKPGJyPjEwNTg0OSBTV1QgYnVnczogR0RJIEhhbmRsZXMgbGVhawo8YnI+MTA2MDU4IEFudGlhbGlhc2luZyBtZW1vcnkgbGVhawo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDAxYSAtIFR1ZXNkYXkgQXVndXN0IDJuZCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjcwNTk5IAlVbmV4cGVjdGVkIHRvb2x0aXAgYmVoYXZpb3VyIG9mIENvbWJvIGNvbnRyb2wKPGJyPjgwNzk4IAlzZXRUb29sVGlwVGV4dCgpIG1ldGhvZCBvZiBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5Db21ibyAuLi4KPGJyPjk2MDUzIAlTcGlubmVyOiBQcmVzc2luZyBidXR0b25zIHNob3VsZCBmb2N1cyBzcGlubmVyIGFuZCBzZWxlY3QuLi4KPGJyPjk2OTE2IAlTcGlubmVyLnNldFRvb2xUaXBUZXh0KCkgZG9lc24ndCB3b3JrCjxicj45OTE0NSAJTGluayB3aWRnZXQgb25seSBkaXNhYmxlcyBsaW5rLCBub3QgdGV4dAo8YnI+MTAzNDY1IAlOZWVkIGJldHRlciBkb2N1bWVudGF0aW9uIG9mIFNXVCBldmVudCB0eXBlcy4KPGJyPjEwMzk3MyAJR0MgVHJhbnNmb3JtIG5vdCBhcHBsaWVkIHRvIGRyYXdJbWFnZSgpCjxicj4xMDQzMDEgCVN1cHBvcnQgZGlzY292ZXJ5IG9mIEFXVCBGcmFtZXMgYnkgd2Fsa2luZyB0aGUgV2lkZ2V0IGhpZS4uLgo8YnI+MTA0OTY2IAlMaW5rIGRpc3BsYXlzIGFzIGVuYWJsZWQgd2hlbiBzZXRUZXh0IGNhbGxlZCBhZnRlciBzZXRFbmEuLi4KPGJyPjEwNDk5MiAJTGlzdCBjb250cm9sIGJ1ZyBbY2hlZXNlIHdoZW4gcmVzaXppbmddCjxicj4xMDUxMzIgCUltYWdlIGZsYXNoaW5nIHdoZW4gdXNpbmcgYSBUcmVlIGluIGEgdGhlbWVkIFRhYkZvbGRlCjxicj4xMDUyMTMgCW1vdmVCZWxvdyhudWxsKSBkb2VzIG5vdCBhZGp1c3QgeiBvcmRlcgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjIgMDAxIC0gVHVlc2RheSBKdWx5IDI2dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxODYwNyBYUCBMb29rIGFuZCBGZWVsIC0gM0QgYm9yZGVyIGFwcGVhcmFuY2Ugb24gc29tZSB3aWRnZXRzIGQuLi4KPGJyPjI0NTM4IFRhYkl0ZW0gY29udHJvbHMgc2hvdWxkIHVzZSB0aGUgVGFiRm9sZGVyIHRvIHBhaW50IHRoZWlyIC4uLgo8YnI+Mzg5NDggY2FjdWxhdGUgdGFibGUgaGVpZ2h0IG5vdCBwb3NzaWJsZQo8YnI+NDI0NzUgQWRkIExFRlQvQ0VOVEVSL1JJR0hUIHRvIENvbnRyb2xFeGFtcGxlIFRleHQgdGFiCjxicj40MzE5MiBBZGQgc29ydCBpbmRpY2F0b3IgKGUuZy4gYXJyb3cpIGluIFRhYmxlQ29sdW1uCjxicj40NTg5NSBbYnJvd3Nlcl0gZ2V0IE5QRSB3aGVuIGNhbGxpbmcgYnJvd3NlciBhcGkgZnJvbSB3aXRoaW4gZGkuLi4KPGJyPjQ5MDY1IFRhYmxlIHdpZGdldCBmbGlja2VyCjxicj41MTk5NSBTZWxlY3Rpb25FdmVudCBub3QgZ2V0dGluZyBkZXRhaWwgaW5mbyBmb3Igc2Nyb2xsYmFyIGV2ZW50cwo8YnI+NjkzNzQgQ3Jhc2ggaW4gU1dUIEFjY2Vzc2libGUgLyBvcmcuZWNsaXBzZS5zd3QuaW50ZXJuYWwub2xlLndpLi4uCjxicj43NDA5NSBTV1RfQVdUIFggZXJyb3Igd2l0aCBKYWRlRGlzcGxheSBpbnRlZ3JhdGlvbgo8YnI+NzcxOTQgTXNnQm94IGlzIG5vdCBjZW50ZXJlZCBvbiBzY3JlZW4gb24gU29sYXJpcywgb2sgaW4gd2luMzIgLi4uCjxicj44MDQ2NSBYUCB0aGVtZSAtIGxhYmVsIGlzc3VlcyB3aXRoIHRhYiBmb2xkZXIKPGJyPjg1Mzg5IFtwcmVmZXJlbmNlc10gQ2hhbmdpbmcgQ29kZSBGb3JtYXR0ZXIgdGFiIHdpZHRoIGRvZXMgbm90IC4uLgo8YnI+ODYwMTggVHJlZUNvbHVtbiBzaG91bGQgc3VwcG9ydCBtb3ZlYWJsZSBoZWFkZXJzCjxicj45MjMxMyBWaXJ0dWFsIHRhYmxlOiBmbGFzaGVzIG9uIGNsZWFyCjxicj45MjM0MiBUcmVlIHdpZGdldDogbWFrZSBUcmVlQ29sdW1ucyByZW9yZGFibGUKPGJyPjk0NDI5IEdyb3VwIGxhYmVsIGRvZXNuJ3QgZmlyZSBtb3VzZSBldmVudHMKPGJyPjk0NTAyIFJlZHVuZGFudCBjaGVjayBmb3IgdGhlIHBvaW50ZXIgY29vcmRpbmF0ZXMKPGJyPjk5NTI0IERpc3BsYXkuZXZlbnRQcm9jIHJlYWRzIGEgR2RrRXZlbnRCdXR0b24gd2hlbiBHZGtFdmVudEFueS4uLgo8YnI+OTk3NDYgVGFibGUgYW5kIFRyZWUgY29sdW1uIHJlc2l6ZSBsaW5lIG1hdGNoZXMgZm9yZWdyb3VuZCBjb2xvcgo8YnI+OTk3NjEgcHJlc3NpbmcgZG93biBhcnJvdyBzZWxlY3RzIHRvb2wgaXRlbQo8YnI+MTAwMzg3IENUYWJGb2xkZXIgY3JlYXRlcyBhbmQgZGlzcG9zZXMgYSBTaGVsbCBvbiBldmVyeSBNb3VzZUhvdmVyCjxicj4xMDA3NDEgVW51c2VkIHZhcmlhYmxlIGluIFNjcm9sbEJhci5qYXZhCjxicj4xMDEwOTMgW2Jyb3dzZXJdIGNyYXNoIHdoZW4gc2V0dGluZyBodG1sIGFzIHVybAo8YnI+MTAxNTM0IE5vIG5hdmlnYXRpb24gYnkgdHlwaW5nIGluIFZJUlRVQUwgVGFibGUKPGJyPjEwMTc5OSBFbmFibGluZyBhZHZhbmNlZCBncmFwaGljcyB3aWxsIGNhdXNlIGFscGhhIGdyYWRpZW50IHRvIGIuLi4KPGJyPjEwMTgzOSBzdXBwb3J0IE1hY09TIGNvbW1hbmQgbGluZSBvcHRpb24gIi1YZG9jazpuYW1lPTxhcHBsaWNhdGkuLi4KPGJyPjEwMjA4MCBVbnVzZWQgdmFyaWFibGVzIGluIEdDLmphdmEKPGJyPjEwMjE2NSBJbWFnZUxvYWRlciBjbG9zZXMgT3V0cHV0U3RyZWFtIG9uIHNhdmUKPGJyPjEwMjI3MiBSZXBhaW50aW5nIGEgZG91YmxlLWJ1ZmZlcmVkIGNhbnZhcyBtYXkgY2F1c2UgcGl4ZWwgY29ycnUuLi4KPGJyPjEwMjMxMyBkaXNwb3NpbmcgZmlyc3QgY29sdW1uIG9mIHJlb3JkZXJlZCBUcmVlIGNoYW5nZXMgaXRlbXMKPGJyPjEwMjQ4MSBQYXR0ZXJuIGRvZXNuJ3QgbWFrZSBhIGdyYWRpZW50Cjxicj4xMDI1NDMgSGVpZ2h0IG9mIE1lbnVJdGVtcyBkaWZmZXJzIHdoZW4gdXNpbmcgSWNvbnMgYW5kIFRleHQgY29tLi4uCjxicj4xMDI2MTcgVGFibGUgcmlnaHQgbW91c2UgZG91YmxlIGNsaWNrIHJlZ2lzdGVycyBhcyBsZWZ0IG1vdXNlIGNsaWNrCjxicj4xMDI3OTQgR3JpZExheW91dCBoYXMgY2hhbmdlIGJlaGF2aW91ciBiZXR3ZWVuIDMuMC4yIGFuZCAzLjEKPGJyPjEwMjgzMCBKdW5pdCB0ZXN0IG9mIFRhYmxlQ29sdW1uICh0ZXN0X3NldFRleHRMamF2YV9sYW5nX1N0cmluZy4uLgo8YnI+MTAyOTUyIEZvcmVncm91bmQgY29sb3IgZ2V0cyBsb3N0IHdoZW4gcGFpbnRpbmcgYSBQYXRoCjxicj4xMDMxODcgU3VwcG9ydCBncmFkaWVudHMgd2l0aCBhbHBoYQo8YnI+MTAzMjM4IFRyYXlJdGVtIG9ic2N1cmVzIEtERSdzIGdyYWRpZW50Cjxicj4xMDMzNDkgU2NhbGUgd2lkZ2V0IHN3aXRjaGVzIGZvY3VzIHdoZW4gc2V0dGluZyBiYWNrZ3JvdW5kCjxicj4xMDM0MzEgSmF2YURvYyBmb3IgQ29tcG9zaXRlLmdldENoaWxkcmVuKCkgaXMgd3JvbmcKPGJyPjEwMzQzNiBQZXJmb3JtYW5jZSBvZiBzZWxlY3Rpb24gaW4gYSBtdWx0aS1zZWxlY3QgdGFibGUKPGJyPjEwMzU3MSBJbWFnZSBpbiB0YWJsZSBoZWFkZXIgZ2V0cyBjb3JydXB0ZWQKPGJyPjEwMzYwMyBJbWFnZURhdGEgZ2V0UGl4ZWwgb3BlcmF0aW9uCjxicj4xMDM2MjcgVGV4dCNnZXRDYXJldFBvc2l0aW9uKCkgcmV0dXJucyB3cm9uZyB2YWx1ZSBmb3Igbm9uLXplcm8gLi4uCjxicj4xMDM2NDIgcmVzZXR0aW5nIGNsaXBwaW5nIHBhdGggZG9lc24ndCB3b3JrIHdoZW4gdHJhbnNmb3JtcyBhcmUgLi4uCjxicj4xMDM5MzQgVGFibGUuZ2V0SXRlbShQb2ludCkgdXNlcyBpbmNvcnJlY3QgY2FsY3VsYXRpb24gb24gTW90aWYKPGJyPjEwMzkzNyBNb3RpZjogUmVzaXppbmcgYSBjb2x1bW4gaW4gYSBsYXJnZSB2aXJ0dWFsIHRhYmxlIGlzIGV4dHIuLi4KPGJyPjEwMzkzOSBPbiBNb3RpZjogSW4gYSBsYXJnZSB2aXJ0dWFsIHRhYmxlIFRhYmxlLnJlbW92ZUFsbCgpIGlzIC4uLgo8YnI+MTA0NTA5IHJlZHVjaW5nIFZJUlRVQUwgVGFibGUncyBpdGVtIGNvdW50IGNhbiBzaG93IGRyYXdpbmcgcHJvYmxlbQo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDM4aSAtIE1vbmRheSBKdW5lIDI3dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxMDE3OTUgICBHQy5maWxsR3JhZGllbnRyZWN0YW5nbGUoKSB3aXRoIEdESSsgY2F1c2VzIGNyYXNoCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzhmIC0gVGh1cnNkYXkgSnVuZSAyM3JkLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjA0NDggICBUZXh0IFdpZGdldCBKYXZhZG9jIGZvciBUZXh0IGxpbWl0Cjxicj40MTM0NiAJSmF2YWRvYzogYWRkIGEgbm90ZSBhYm91dCB0aGUgb3JkZXIgb2YgZ2V0U2VsZWN0ZWRJbmRpY2VzLi4uCjxicj40OTY3NCAJRE5ELkZFRURCQUNLX0lOU0VSVF9CRUZPUkUgYW5kIERORC5GRUVEQkFDS19JTlNFUlRfQUZURVIuLi4KPGJyPjc4NjM0IAlJbWFnZURhdGEuZ2V0VHJhbnNwYXJlbmN5TWFzayAtIGluY29ycmVjdCBqYXZhZG9jIG9yIGltcGwuLi4KPGJyPjg0NjgxIAlUaGUgc3BlY2lmaWNhdGlvbnMgZm9yIHNvbWUgbWV0aG9kcyBzaG91bGQgZGVzY3JpYmUgdGhlIGIuLi4KPGJyPjg0ODkxIAlJbiB0aGUgc3BlY2lmaWNhdGlvbnMgc29tZSBtZXRob2RzIGRvIG5vdCBkZXNjcmliZSB0aGVpciAuLi4KPGJyPjg0OTA2IAlXZSBmb3VuZCBzb21lIHR5cG9zIG9yIGJyb2tlbiBsaW5rcy4KPGJyPjg0OTExIAlVbnNwZWNpZmllZCBtZXRob2RzCjxicj44NjU2MiAJQ2FuIFdpZGdldC5nZXREaXNwbGF5KCkgYmUgY2FsbGVkIGZyb20gYSBiYWNrZ3JvdW5kIHRocmVhZD8KPGJyPjk5MzQ4IAlKYXZhIGRvYyBmb3IgRGVjb3JhdGlvbnMuc2V0SW1hZ2VzKEltYWdlc1tdIGltYWdlcykgZG9lcyAuLi4KPGJyPjEwMDY2MyAJWzY0XSBMaW5rcyBkbyBub3QgcGFpbnQKPGJyPjEwMDY5OSAJV2lkZ2V0LnNldEtleVN0YXRlIHJlYWRzIGZyb20gbWVtb3J5IHdoaWNoIGhhcyBiZWVuIGZyZWVkCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzggLSBGcmlkYXkgSnVuZSAxNnRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KOTg4NDUgQ3Jhc2ggd2hlbiBhIENvbWJvIGRpc3Bvc2VkIG9uIEZvY3VzT3V0Cjxicj45OTM3NiBUYWJsZUNvbHVtbiBoYXMgd2lkdGg9MCBhbmQgc2Vjb25kIGNvbHVtbiBtaXNzaW5nCjxicj45OTUzNCBJbWFnZUxpc3QgbGVha3MgYSBwaXhidWYgaWYgYW4gaW1hZ2UgYWRkZWQgbXVsdGlwbGUgdGltZXMKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAzN2kgLSBGcmlkYXkgSnVuZSAxNnRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDgwNSByZXNpemUgZHVyaW5nIHNldFJlZHJhdyBjYXVzZXMgY2hlZXNlICgxR0o0VVJYKQo8YnI+OTY0NzkgU1dUTWVzc2FnZXMucHJvcGVydGllcyBtaXNzaW5nIGZyb20gc291cmNlIHppcAo8YnI+OTcxNzAgW0Fib3V0XSBFY2xpcHNlIGxvZ28gbm90IHJlbmRlcmVkIGNvcnJlY3RseSBpbiBhYm91dCBkaWFsLi4uCjxicj45NzYyNSBJbnRybyBUZXN0IEEuNCBFY2xpcHNlIGNyYXNoZWQuCjxicj45OTI2NiBbVmlld2Vyc10gQm9ndXMgZW1wdHkgcm93cyBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgdGFibGUKPGJyPjk5NTE4IEV4dHJlbWVseSBqdW1weSByZXNpemluZyBpbiB0aGUgQ29udHJvbEV4YW1wbGUKPGJyPjk5NTI1IFRleHRMYXlvdXQuZ2V0TGluZU9mZnNldHMoKSBsZWFrcyBhIHBhbmdvIGl0ZXIKPGJyPjk5NTI3IERpYWxvZyBzaXplIHByb2JsZW1zIHdoZW4gdXNpbmcgdGhlIGlvbiB3aW5kb3cgbWFuYWdlcgo8YnI+OTk1MzUgRm9udERpYWxvZyBsZWFrcyBhIHN0cmluZwo8YnI+OTk1NDEgQ3Vyc29ycyBub3QgZGlzcG9zZWQgaW4gU1dUIEZpbGVWaWV3ZXIgZXhhbXBsZQo8YnI+OTk1NjEgR0RJKyBjcmFzaCB3aXRoIGljb25zIHdoZXJlIHdpZHRoID4gaGVpZ2h0IFt3YXM6IEdFRiBwYWluLi4uCjxicj45OTYzNiBbYnJvd3Nlcl0gYnJvd3NlciBjb250ZW50cyBiZWNvbWUgZXhjbHVkZWQgZnJvbSB0YWIgb3JkZXIKPGJyPjk5NzQ1IFRyYXkgZG9lc24ndCBzdXBwb3J0IGltYWdlIHdpdGggYWxwaGEKPGJyPjk5NzU2IHBhaW50IGV4YW1wbGUgaXMgbWlzc2luZyB2aWV3IGljb24KPGJyPjk5OTM2IFticm93c2VyXSBuc0lSZXF1ZXN0IGhhcyBzb21lIGluY29ycmVjdCBtZXRob2Qgc2lnbmF0dXJlcwo8YnI+MTAwMDQwIFNsb3dkb3duIGJldHdlZW4gMy4xIFJDMSBhbmQgTjIwMDUwNjAyIGR1ZSB0byBjaGFuZ2UgdG8gSS4uLgo8YnI+MTAwMTk5IERpc3BsYXkuYXN5bmNFeGVjKCkgY2FuIGhhbmcgV2luZG93cwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDM3ZyAtIEZyaWRheSBKdW5lIDEwdGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo5OTM0MSBHREkgbGVhayBpbiBMYWJlbCB3aXRoIHRyYW5zcGFyZW50IGltYWdlcyAocG5nLCBnaWYpCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzdmIC0gRnJpZGF5IEp1bmUgMTB0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjk4ODAyIEZvY3VzIGNhbm5vdCBiZSBnaXZlbiB0byB2aXNpYmxlIGJ1dCB6ZXJvLXNpemVkIGNvbnRyb2xzCjxicj45ODg5NCBTaGVsbC5zZXRJbWFnZXMoKSBzaG91bGQgYmUgc21hcnRlcgo8YnI+OTkxNjcgSG92ZXIgRXZlbnQgZmlyZWQgY29udGluaW91c2x5IGFsdGhvdWdoIE1vdXNlIG5vdCBtb3ZpbmcKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAzN2MgLSBUaHVyc2RheSBKdW5lIDl0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjk2MjEyIG9yZy5lY2xpcHNlLnVpIGNvdWxkIG5vdCBiZSBmb3VuZC4KPGJyPjk2Njc5IE91dE9mTWVtb3J5IEV4Y2VwdGlvbiBmcm9tIGNvcnJ1cHRlZCBjbGlwYm9hcmQ/Cjxicj45OTEwOSAgQ29tcHV0ZVNpemUgb24gTGluayBnaXZlcyBkaWZmZXJlbnQgcmVzdWx0cyB3aGVuIGNhbGxpbmcgdHdvIHRpbWVzIGluIGEgcm93CjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzcgLSBUaHVyc2RheSBKdW5lIDl0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjc3NjExICBbYnJvd3Nlcl0gSUUgc2hvd3Mgd2FybmluZyBkaWFsb2cgd2hlbiBKUyBlcnJvciBvY2N1cmVkICAKPGJyPjg5Mzk3ICBDb21waWxlIHdhcm5pbmdzIHdoZW4gY29tcGlsaW5nIGxpYnN3dC1ndGstWFhYWC5zbyAgCjxicj45MTU0NyAgSW5zZXJ0aW9uIGxpbmUgaW4gVHJlZVZpZXdlciBkb2VzIG5vdCBzaG93IHVwIGR1cmluZyBkcmFnLi4uICAKPGJyPjkzNzI0ICBEcmFnLWFuZC1kcm9wIGNyZWF0ZXMgc2lnbmFsIG5hbWVzIGV2ZXJ5IHRpbWUgIAo8YnI+OTQyMTAgIE11bHRpcGxlIGV4cGFuc2lvbiBicm9rZW4gaW4gdHJlZXMgIAo8YnI+OTYwNDIgIGNvbXB1dGVUcmltKCkgaXMgbm90IHJldHVybmluZyB0aGUgY29ycmVjdCB2YWx1ZSAgCjxicj45NjUyNSAgUGFpbnRpbmcgYSB0cmFuc2x1Y2VudCBpbWFnZSBmYWlscyB3aGVuIHRoZSBHQyBpcyBtaXJyb3JlZCAgCjxicj45NjcyMyAgVGFibGUgbm90IHNob3duIHdoZW4gdGhlcmUgYXJlIG5vIHJvd3MgaW5pdGlhbGx5ICAKPGJyPjk2ODczICBJY29ucyBpbiB0b29saXRlbSBhcmUgbWlycm9yZWQgb24gbWlycm9yZWQgdG9vbGJhciAgCjxicj45NzAxMSAgQ3VzdG9tIFRhYmxlIGZvbnQgaXMgbm90IGFwcGxpZWQgdG8gZmlyc3QgY29sdW1uIGhlYWRlciAgCjxicj45NzA0NiAgUE5HIGltYWdlcyBsb29rIGNvcnJ1cHQgYXMgbWFpbiB3aW5kb3cgaWNvbiAgCjxicj45NzE3NyAgW21pc2NdIENoaW5lc2UgSU1FIHN0YXR1cyBsb3N0ICAKPGJyPjk3MzQwICBNb3VzZUVudGVyIG5vdCBmaXJlZCB3aGVuIHNjcm9sbCBiYXIgcmVsZWFzZWQgIAo8YnI+OTczNzAgIGdub3Blcm5pY3VzIG5vIGxvbmdlciByZWFkcyBjdXN0b20gd2lkZ2V0cyBpbiBlY2xpcHNlICAKPGJyPjk3NjUxICB0cmVlIGluc2VydCBtYXJrIGNoZWVzZSAgCjxicj45NzY1OSAgVHJlZUNvbHVtbnMgZG9uJ3QgZmlyZSBDb250cm9sRXZlbnRzIG9uIGRpc3Bvc2UoKSBbd2luMzJdICAKPGJyPjk3NjY4ICBDaGV2cm9uIG5vdCBhbHdheXMgc2hvd2luZyBpbiBQZXJzcGVjdGl2ZSBTd2l0Y2hlciAgCjxicj45NzY3OCAgU2FzaEZvcm0gLSBjYW4gbG9zZSBzYXNoIGZvciBpdGVtIG9uIGZhciByaWdodCAgCjxicj45NzY4NiAgQUlPT0Igd2hlbiByZW1vdmluZyBub24tZXhpc3RlbnQgVGFibGVJdGVtIGJ5IGluZGV4ICAKPGJyPjk3Njk2ICBUb29sSXRlbSB3aXRoIGltYWdlIGlzIGJsYW5rIG9yIHNob3dzIGNoZWVzZSAgCjxicj45NzY5NyAgQ0NvbWJvIC0gZHJvcCBkb3duIGxpc3QgYXBwZWFycyBpbiB3cm9uZyBwbGFjZSAgCjxicj45NzcyNSAgR1RLIC0gTGF5b3V0IEV4YW1wbGUgdGFibGUgZWRpdG9yIGNvbWJvIGluIHdyb25nIHBsYWNlICAKPGJyPjk3NzQzICBbcG9ydGFiaWxpdHldIERyYWcgVG9vbCBUdXJucyBPZmYgb24gTGludXggIAo8YnI+OTc3NDUgIFRhYmxlIGNvbHVtbiBoZWFkZXIgc3RheXMgcHJlc3NlZCBpZiBtb3VzZSBidXR0b24gcmVsZWFzZS4uLiAgCjxicj45Nzc2MiAgSGlkaW5nIHJlZHJhdyB3aW5kb3cgYmVmb3JlIGRlc3Ryb3lpbmcgaXQgIAo8YnI+OTc4MTMgIGhlaWdodCBvZiBUZXh0IHdpZGdldHMgZm9yIFNXVC9HVEsgZGlmZmVycyBmcm9tIG5hdGl2ZSBHVC4uLiAgCjxicj45NzkwMyAgcHJvYmxlbSBpbiBmZWF0dXJlcyBQbGF0ZWZvcm0gYW5kIFBsYXRlZm9ybSBQbHVnLWluIERldmVsLi4uICAKPGJyPjk3OTE1ICBUYWJsZS5yZW1vdmUoaW50KSBjYW4gY2hhbmdlIHNlbGVjdGlvbiAgCjxicj45NzkzMSAgQ29vbGJhciBmYWlscyB0byBzaG93IGNvbnRlbnRzIHVudGlsIHJlc2l6ZWQgIAo8YnI+OTc5NzggIFRhYmxlL1RyZWVDb2x1bW5zIGRvbid0IGZpcmUgQ29udHJvbEV2ZW50cyBvbiBkaXNwb3NlKCkgWy4uLiAgCjxicj45Nzk4MSAgRm9jdXMgZ2l2ZW4gdG8gdGhlIEVjbGlwc2Ugd2luZG93IHdoaWxlIHRoZSBwcmVmZXJlbmNlcyBkLi4uICAKPGJyPjk3OTg1ICBTbmlwcGV0MTQ0IChWaXJ0dWFsIFRhYmxlKSBzbG93IG9uIHRoZSBNYWMgIAo8YnI+OTc5OTIgIGphdmFkb2Mgd2FybmluZ3MgaW4gUkMxICAKPGJyPjk4MDI0ICBPcGVuIHR5cGUgZGlhbG9nIHNraXBzIG92ZXIgdG9vIG11Y2ggIAo8YnI+OTgxNTYgIEltYWdlcyBub3QgYXBwZWFyaW5nIG9uIG1lbnVzLCBvciB3aGVuIHBhaW50ZWQgIAo8YnI+OTgzODMgIExpbnV4IEFNRDY0IG1pc3Npbmcgb3JnLmVjbGlwc2Uuc3d0Lmd0ay5saW51eC54ODYgMy4xLjAgaC4uLiAgCjxicj45ODQzOSAgUGl4ZWwgY29ycnVwdGlvbiB3aGVuIHVzaW5nIGNsaXBwaW5nIG9uIGEgZG91YmxlLWJ1ZmZlcmVkLi4uICAKPGJyPjk4ODAyICBGb2N1cyBjYW5ub3QgYmUgZ2l2ZW4gdG8gdmlzaWJsZSBidXQgemVyby1zaXplZCBjb250cm9scyAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzYgLSBUaHVyc2RheSBNYXkgMjZ0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjI2OTAyOiAgR1RLOiBtb3VzZSB3aGVlbCBkb2Vzbid0IHdvcmsgb24gdGhlIGNvbXBhcmUgZWRpdG9yICAKPGJyPjY0MzkzOiAgRm9yZ290IHRvIGNsb3NlICZsdDtjb2RlJmd0OyB0YWcgaW4gU1dUIGphdmFkb2NzICAKPGJyPjc3NTQwOiAgdHlwbyBpbiBpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LmN1c3RvbS5TdHlsZWRUZXh0LnNldE9yaWVuLi4uICAKPGJyPjc3NjE3OiAgQnJpZWYgInBhZ2Ugbm90IGZvdW5kIiBtZXNzYWdlIG9uIHN0YXJ0dXAgIAo8YnI+ODEwNjQ6ICBbQnJvd3Nlcl0gSFRNTCBzZXQgdmlhIHNldFRleHQoKSBub3Qgc2hvd2luZyBpbiBtb3N0IGNhcy4uLiAgCjxicj44MjE2OTogIEluIGNvbnNvbGUgcGFuZSwgY2Fubm90IGNsaWNrICJUZXJtaW5hdGUiIGFuZCB0aGVuICJSZW1vdi4uLiAgCjxicj44NTY0NTogIFR5cGVhaGVhZCBicm9rZW4gZm9yIFRhYmxlIGFuZCBUcmVlICAKPGJyPjg5Mzc4OiAgQ29tYm8gZGVmYXVsdCBzaXplIHRvbyBzbWFsbCB3aXRoIGNlcnRhaW4gZm9udHMgIAo8YnI+ODk1NzQ6ICBJbiB0aGUgdGFzayBiYXIsIHRoZSBFY2xpcHNlIHdpbmRvdyBpcyBjYWxsZWQgIlRvcExldmVsU2guLi4gIAo8YnI+ODk3MjA6ICBDcmFzaCBjbG9zaW5nIGRpYWxvZyB3aGVuIElNIGlzIG9wZW4gKElJSU0pICAKPGJyPjkwMjQ2OiAgU3R5bGVkVGV4dCBkcmF3cyBjaGVlc3kgaWYgdGhlIGNhcmV0IGlzIGludmlzaWJsZSAgCjxicj45MjEwNTogIEJJREkzLjE6IE1peGVkIEFyYWJpYyBhbmQgRW5nbGlzaCB0ZXh0IGlzIHZpZXdlZCBpbmNvcnJlYy4uLiAgCjxicj45MjM1MjogIERCQ1MzLjE6Y2FuJ3QgaW5wdXQgQ0hUIHN0cmluZ3MgYWZ0ZXIgcHJlc3MgRW50ZXIgd2hpbGUgeC4uLiAgCjxicj45MjYyOTogIFRhYmxlLnNldFNlbGVjdGlvbiBkb2VzIG5vdGhpbmcgaWYgdGhlcmUgaXMgYSBUYWJsZUNvbHVtbiAgIAo8YnI+OTQ0Mzc6ICBhZGQgIkNvbHVtbnMgUmVvcmRlcmFibGUiIGNoZWNrYm94IHRvIENvbnRyb2xFeGFtcGxlJ3MgVGEuLi4gIAo8YnI+OTQ1OTU6ICBlY2xpcHNlIGd0ayBkb2Vzbid0IHNldCBYIHdpbmRvdyBuYW1lICAKPGJyPjk0NTk4OiAgREJDUzMuMTpFY2xpcHNlIGhhbmdzIHdoZW4gYWN0aXZhdGUgSUlNRiBpbnB1dCBpbiBzZWFyY2ggLi4uICAKPGJyPjk0OTQ2OiAgRmlsZURpYWxvZyBzaG91bGQgaW5oZXJpdCBpbWFnZSBmcm9tIHBhcmVudCBzaGVsbCAgCjxicj45NTExNjogIGNhbiBjcmVhdGUgU2hlbGwgd2l0aCBkaXNwb3NlZCBwYXJlbnQgU2hlbGwgIAo8YnI+OTU3NTY6ICBUYWJsZXMgZG9uJ3QgcmVwYWludCAgCjxicj45NTgyNTogIEdUSyB3YXJuaW5ncyB3aGVuIHVzaW5nIGEgdmlydHVhbCB0YWJsZSAgCjxicj45NjA5MDogIFBvcHVwIG1lbnUgZG9lc24ndCB3b3JrIHdoZW4gZGlhbG9nIG9wZW5lZCB2aWEgc2hvcnQgY3V0ICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAzNWMgLSBGcmlkYXkgTWF5IDEzdGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo5MzUyNjogU1dUIEJyb3dzZXIgY3Jhc2hlcyBvbiBNYWNPUwo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDM1YiAtIEZyaWRheSBNYXkgMTN0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjk1MDM1OiBDYW4ndCBMYXVuY2ggRWNsaXBzZSBvbiBXaW5kb3dzIDk4CjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzVhIC0gVGh1cnNkYXkgTWF5IDEydGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo4ODQ2MzogIE5vIGhvdmVyIGhlbHAgaW4gamF2YSBlZGl0b3IgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDM1IC0gVGh1cnNkYXkgTWF5IDEydGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo5NDQyMTogTlBFIHNob3dpbmcgYSBDb29sQmFyJ3MgZHJvcGRvd24KPGJyPjk0NDY3OiBUYWJsZSBsYXlvdXRzIHdoaWNoIG9ubHkgbGF5IG91dCBvbmNlIGFyZSBnaXZpbmcgYm9ndXMgc2l6ZXMKPGJyPjk0ODM1OiBCdXR0b25zIHdpdGggY2hhcmFjdGVycyB0aGF0IHN0YXJ0IHdpdGggYSBsaW5lIGFyZSBjdXQgb2ZmIGluIHJpZ2h0IHRvIGxlZnQKPGJyPjk0ODE1OiBEZWNvcmF0aW9ucy5zZXREZWZhdWx0QnV0dG9uKCkgZG9lcyBub3QgY2hlY2sgZm9yIG51bGwKPGJyPjk0Nzg0OiBKYXZhIHNlYXJjaCBjYW4ndCBiZSBjaGFuZ2VkCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzQgLSBUdWVzZGF5IE1heSAxMHRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMzEwNjY6ICBCdXR0b24gd2lkZ2V0IGRvZXMgbm90IHN1cHBvcnQgaW1hZ2VzIHdpdGggdHJhbnNwYXJlbnQgY29sb3IuICAKPGJyPjcxMjI4OiAgUHJvZ3JhbS5maW5kUHJvZ3JhbSgiaHRtbCIpIHJldHVybnMgbnVsbCB3aGVuIHRoZXJlJ3Mgbm8gZGVmYXVsdCBjb21tYW5kICAKPGJyPjcxMjM0OiAgUHJvZ3JhbS5leGVjdXRlIG1hbmdsZXMgVVJMcyAgCjxicj43Mjc4NDogIENsb3NlIG92ZXJyaWRlIHJlZGlyZWN0IHdoaWxlIG9wZW5pbmcgYW5vdGhlciBsb3NlcyBmb2N1cyBmb3JldmVyICAKPGJyPjc1MTQ4OiAgTWFjIGxhdW5jaGVyOiBpbXByb3ZlIERvY2sgaWNvbiBhbmQgYXBwbGljYXRpb24gbmFtZSBzdXBwb3J0Cjxicj43NjYyODogIEVjbGlwc2UgY3Jhc2hlZCBKVk0gd2hlbiBDVlMgcHJvdG9jb2wgbm90IHNldCBjb3JyZWN0bHkgIAo8YnI+NzkyNjg6ICBQcm9ncmFtIEFQSSBkb2VzIG5vdCB3b3JrIHdpdGggR05PTUUgMi44IChsaWJnbm9tZXZmcy1XQVJOSU5HKSAgCjxicj43OTYzMTogIFtDVGFiRm9sZGVyXSBNaW4gLyBNYXggYnV0dG9ucyBhcmUgaGlkZGVuIHdoZW4gbGFzdCBpdGVtIGNsb3NlZCAgCjxicj44MDU2NDogIEltYWdlIHRyYW5zcGFyZW5jeSBub3QgYWx3YXlzIGhhbmRsZWQgY29ycmVjdGx5IChjYXNlICMxKSAgCjxicj44MDU2NzogIEltYWdlIHRyYW5zcGFyZW5jeSBub3QgYWx3YXlzIGhhbmRsZWQgY29ycmVjdGx5IChjYXNlICMyKSAgCjxicj44MzU2NDogIFtTYXNoRm9ybV0gU2FzaCBubyBsb25nZXIgbW92ZWFibGUgd2hlbiBvbmUgd2VpZ2h0IGlzIHZlcnkgdGlueSAgCjxicj44NDIxOTogIExpc3Quc2hvd1NlbGVjdGlvbigpIHNjcm9sbHMgbGlzdCBhbHRob3VnaCBpdGVtIGFscmVhZHkgdmlzaWJsZSAgCjxicj44NzA1MTogIE5QRSBpbiBmaWxlIGRpYWxvZyB3aGVuIHRyeWluZyB0byBvcGVuIGEgZmlsZSB3aXRoIGEgd2llcmQgbmFtZS4gIAo8YnI+ODc2MzY6ICBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gVHJlZUl0ZW0uc2V0SW1hZ2UoKSAgCjxicj44ODAzMDogIFRhYmxlIGFuZCBTV1QuQ0hFQ0s6IENoZWNrIG5vdCB2aXNpYmxlIG9uIHNlbGVjdGlvbiAgCjxicj45MDQ2MjogIGFkZCBmcmFnbWVudCBvcmcuZWNsaXBzZS5zd3QuZ3RrLmxpbnV4LnBwYyAgCjxicj45MDkzODogIEdDLnNldExpbmVTdHlsZSBwcm9kdWNlcyBpbmNvbnNpc3RlbnQgZGFzaCBmb3Igd2lkdGggZXF1YWwgMSAgCjxicj45MTE1OTogIFtDb25zaXN0ZW5jeV0gRHJvcFRhcmdldCBldmVudC5kYXRhVHlwZSBmaWVsZCBub3QgYWx3eXMgc2V0IG9uIERyYWdFbnRlciAgCjxicj45MTY3MjogIENUYWJGb2xkZXIgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzICAKPGJyPjkyMTgxOiAgQm9ndXMgQ1RhYkZvbGRlciB0YWIgc2l6ZXMgIAo8YnI+OTI2MTI6ICBDVGFiRm9sZGVyIGhpZGRlbiB0YWJzIGNvdW50IChpbiBjaGV2cm9uKSBjYW4gYmVjb21lIDAgIAo8YnI+OTMxMDY6ICBHQjE4MDMwOiBDb3B5IEdCMTgwMzAgY2hhciBvdXRzaWRlIG9mIGVkaXRvciB0byBlZGl0b3Igd2lsbCBnZXQgdW5pY29kZSBlbmNvZGluZyBzaG93bi4gIAo8YnI+OTMzNDk6ICBTdXBwb3J0IGFscGhhIHRyYW5zcGFyZW5jeSBpbiBTaGVsbCBpbWFnZXMgIAo8YnI+OTMzODI6ICBVc2UgY2Fub25pY2FsIHNpZ25hbCBuYW1lcyAgCjxicj45MzM4NzogIGNvbnNvbGUgaGlqYWNrcyBTV1QgZXZlbnQgdGhyZWFkIHdoZW4gc2VsZWN0aW5nIGJpbmFyeSBjb250ZW50ICAKPGJyPjkzMzkxOiAgRWNsaXBzZSAzLjAuMSBQTEFURk9STSBDUkFTSC4gSlZNIHRlcm1pbmF0aW9uIGV4aXQgY29kZSAxIG9uIFN1U0UgOC4yIExpbnV4IHg4NiBndGsgb24gIkVjbGlwc2UgT3ZlcnZpZXciICAKPGJyPjkzNTAxOiAgVG9vbEJhci5jb21wdXRlU2l6ZSBpcyByZXR1cm5pbmcgYSBtdWNoIHdpZGVyIHdpZHRoIHRoYW4gaXQgdXNlZCB0byAgCjxicj45MzY2NDogIFRSQVZFUlNFX1JFVFVSTiBjbG9zaW5nIGEgZGlhbG9nIGNhbm5vdCBiZSBzdXBwcmVzc2VkIGluIGEgY29tYm8gYm94ICAKPGJyPjkzNjkxOiAgUHJvZ3JhbS5maW5kUHJvZ3JhbSgiaHRtbCIpIGZhaWxzIHdpdGggRmlyZWZveCBhcyB0aGUgZGVmYXVsdCBicm93c2VyICAKPGJyPjkzNzU5OiAgQ2FuJ3QgZHJhd1BhdGggb24gaW1hZ2UgR0MgIAo8YnI+OTM4NDg6ICBMYWJlbCBub3Qgd3JhcHBpbmcgIAo8YnI+OTM4NzA6ICBbSW1wb3J0L0V4cG9ydF0gVXNhYmlsaXR5IHByb2JsZW0gd2l0aCB0aGUgSW1wb3J0ID4gRXhpc3RpbmcgUHJvamVjdCBpbnRvIFdvcmtzcGFjZSAgCjxicj45NDAwMzogIENhbm5vdCB1cGRhdGUgYSBidXR0b24gaW1hZ2UgdXNpbmcgYSBHQyBpZiB0aGUgaW1hZ2UgaXMgc2V0IGJlZm9yZSBjcmVhdGlvbiAgCjxicj45NDEzMjogIENsYXNzQ2FzdCBleGNlcHRpb24gaW4gRmlsbExheW91dC5jb21wdXRlQ2hpbGRTaXplICAKPGJyPjk0MjAyOiAgQWN0aXZhdGUgZXZlbnQgbm90IGZpcmVkIHdoZW4gT05fVE9QIHdpbmRvdyBoaWRkZW4gIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDMzIC0gVHVlc2RheSBNYXkgM3JkLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMzMzMTM6ICBbSlVOSVRdIENvbWJvIHJlbW92ZSBmYWlscyAgCjxicj4zMzgyMTogIEhlYWRlciBvZiBuYXRpdmUgdGFibGUgZG9lc24ndCBzaG93IGltYWdlcyAgCjxicj4zODQxNTogIHJlbW92ZSgpIGZ1bmN0aW9uIGluIGNvbWJvIGJlaGF2ZXMgaW5jb25zaXN0ZW50bHkgKEJCQVdUKSAgCjxicj40NTc5MzogIFBhbnRoZXI6IEluaXRpYWwgQ29tYm9ib3ggY29udGVudHMgbm90IHZpc2libGUgIAo8YnI+NjMyNjY6ICBOYXRpdmUgcGxhdGZvcm0gaWNvbnMgbG9vayBqdW5reSAgCjxicj42NTgwNjogIFttaXNjXSBUZXh0Vmlld2VyLnJldmVhbFJhbmdlIHZlcnkgc2xvdyBmb3IgbG9uZyByYW5nZXMgIAo8YnI+Njc0MDA6ICBFZGl0YWJsZSBjb21iby1ib3ggbWlzc2VzIG91dCB0aGUgZmlyc3QgdHdvIGNoYXJhY3RlcnMgdW50aWwgZm9jdXMgaXMgZ2l2ZW4gIAo8YnI+ODA0NjM6ICBFQzogQ29vbEJhciBoZWlnaHQgPCBDb21ibyBoZWlnaHQgIAo8YnI+ODMwOTc6ICBEaWFsb2cgb3BlbnMgd2l0aCBubyBjb250ZW50czsgcmVzaXppbmcgc2hvd3MgY29udGVudHMgIAo8YnI+ODM5MDU6ICBObyB3YXkgdG8gY2VudGVyIHRvb2wgaXRlbXMgb24gYSB2ZXJ0aWNhbCB0b29sYmFyICAKPGJyPjg0NjMyOiAgaGlkaW5nIFRyZWUgaGVhZGVyIGNhbiBsZWF2ZSBjaGVlc2UgIAo8YnI+ODU4NjI6ICBbY29uc2lzdGVuY3ldIFRyZWVFdmVudCBmaXJlZCB1cG9uIGRpc3Bvc2FsIG9mIFRyZWVJdGVtcyAgCjxicj44NjIwMTogIE91dHB1dCBpbiBjb25zb2wgY2F1c2VzIEVjbGlwc2UgdG8gY3Jhc2ggIAo8YnI+ODYyMTQ6ICBHVEsgY2FyZXQgbG9jYXRpb24gZ2V0cyBoYW1tZXJlZCBhZnRlciBiZWluZyBzZXQgaW4gdmVyaWZ5IGV2ZW50ICAKPGJyPjg2ODMwOiAgb3JnLmVjbGlwc2Uuc3d0LmdyYXBoaWNzLkdDOiBUcmFuc2Zvcm0gaGFzIG5vIGVmZmVjdCB0byBpbWFnZXMgd2l0aCB0cmFuc2FyZW50IGNvbG9ycyBsaWtlIEdJRi9QTkcgIAo8YnI+ODc0Nzc6ICBFY2xpcHNlIG9uIExpbnV4LU1vdGlmIHJlcXVpcmVzIEdMSUJDXzIuMyAgCjxicj44NzgyMjogIEdDLmRyYXdTdHJpbmcgaWdub3JlcyB0cmFuc3BhcmVuY3kgYm9vbGVhbiB3aGVuIGFscGhhIGlzIHVzZWQgIAo8YnI+ODkyMzk6ICBQYWludGluZyBwcm9ibGVtcyB1c2luZyBsYXRlc3QgYnVpbGRzICAKPGJyPjkwMTE1OiAgc3d0LW1vemlsbGEuemlwIHNvdXJjZSBmaWxlIHB1dHMgeHBjb20uY3BwIGluIGxpYnJhcnkvIHN1YmRpcmVjdG9yeSAgCjxicj45MDMwMzogIHR1cm4gb2ZmIGNhcmV0IGJsaW5rICAKPGJyPjkxMzAyOiAgKHJlZ3Jlc3Npb24pIFRyYW5zcGFyZW5jeSBpcyBub3QgdHJhbnNwYXJlbnQgaW4gcmVtb3ZlIGJ1dHRvbiBvbiBwcm9ncmVzcyB2aWV3IGl0ZW0gIAo8YnI+OTE0NDE6ICBEZWZhdWx0IGJ1dHRvbiBmbGlja2VycyBpbiAiUmVwbGFjZSB3aXRoIFVuY29tbWl0dGVkIENoYW5nZXMiIGRpYWxvZy4gIAo8YnI+OTIzMTg6ICBWaWV3Rm9ybS5zZXQqIHRyaWdnZXJzIGEgbGF5b3V0ICAKPGJyPjkyNTA1OiAgQ3JlYXRpbmcgYSBHTk9NRSBpY29uIHRoZW1lIGlzIHNsb3cgIAo8YnI+OTI1NDE6ICBUcmVlIGl0ZW1zIGRvIG5vdCBhbmltYXRlIGFzIHRoZXkgZXhwYW5kICAKPGJyPjkyNjE2OiAgZXZlbnQgZG9pdD1mYWxzZSBkb2VzIG5vdCB3b3JrIGZvciBDb21ibyBvbiBNYWMuICAKPGJyPjkyNjQ4OiAgVHJlZSxzZXRUb3BJdGVtIGNhbiBlbmQgdXAgc2V0dGluZyB0aGUgd3JvbmcgbnVtYmVyICAKPGJyPjkyODQ0OiAgSW5jcmVhc2Ugc2Nyb2xsaW5nIHNwZWVkIGJhc2VkIG9uIGRpc3RhbmNlIGZyb20gdGhlIHdpZGdldCAgCjxicj45Mjg2NDogIFthcGldIGNvbnN0cnVjdGlvbiBub3RpY2VzIGluIEdDLCBQYXR0ZXJuLCBldGMuICAKPGJyPjkyODgzOiAgTGluZXMgYXJlIG1pc2FsaWduZWQgKGFudGlhbGlhc2VkKSAgCjxicj45Mjk2NDogIExhdW5jaGVyIHNob3VsZCBoYXZlIG5vIHBpeG1hcCBiYWNrZ3JvdW5kIHVuZGVyIFggIAo8YnI+OTMwNTg6ICBGb3JtIExheW91dCBiZWhhdmlvdXIgaGFzIGNoYW5nZWQgYmV0d2VlbiAzLjAgYW5kIDMuMSAgCjxicj45MzE1MTogIFRhYmxlSXRlbS5jb21wdXRlRGlzcGxheVRleHQgZG9lcyBub3QgY2hlY2sgdG8gc2VlIGlmIGluZGV4IGlzIGdyZWF0ZXIgdGhhbiBzdHJpbmcgIAo8YnI+OTMxNTg6ICBTV1QgZmluZ2VycHJpbnRzIGFuZCBhc3NlcnRpb25zIHVzZSBDUFUgdGltZSBjZi4gZWxhcHNlZCBwcm9jZXNzICAKPGJyPjkzMjIyOiAgU2V0dGluZyBhIGN1cnNvciBvbmx5IG5lZWRzIGEgZmx1c2gsIG5vdCBhIHN5bmMgIAo8YnI+OTMyNTU6ICBbQ29udHJpYnV0aW9uc10gVmVydGljYWwgc2VwYXJhdG9yIHdoZXJlIGhvcml6b250YWwgd2FzIGV4cGVjdGVkICAKPGJyPjkzMjY2OiAgc2V0QmFja2dyb3VuZCBvZiB0ZXh0IHJlZHJhdyBpbmNvcnJlY3Qgd2l0aCB4cCBzdHlsZSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMzIgLSBUdWVzZGF5IEFwcmlsIDI2dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0MTc3MjogIERCQ1M6IERCQ1MgY29weSBhbmQgcGFzdGUgZm9yIE9wZW5PZmZpY2UgZmFpbHVyZSAgCjxicj41MDU5ODogIFNvbWUgZm9jdXMgZXZlbnRzIGFyZSByZXBvcnRlZCB0d2ljZSAgCjxicj41NTM4MjogIHNldEFjY2VsZXJhdG9yKC0xKSBvbiBNZW51SXRlbSBzaG93cyBlcnJvciBvbiBMaW51eCAgCjxicj42ODQ3ODogIEFub3RoZXIgdmFyaWFudCBvZiB0aGUgU1dURXJyb3I6IG5vIG1vcmUgaGFuZGxlcyAgCjxicj42OTM4MTogIENhbGwgdG8gbmV3X1NoZWxsIHJlc3VsdHMgaW4gIk5vIG1vcmUgaGFuZGxlcyIgZXJyb3IgIAo8YnI+Njk3MDE6ICBQcmludGVyIGRvZXNuJ3Qgc3RyZXRjaCBCJlcgaW1hZ2VzIGNyZWF0ZWQgYnkgY29kZS4gIAo8YnI+ODA3NjI6ICBJbnRlcmFjdGl2ZSB0ZXh0IHNlbGVjdGlvbiBsYWdzIG9uIExpbnV4LUdUSysgIAo8YnI+ODEyOTg6ICBOUEUgY2hhbmdpbmcgc3R5bGUgb24gU2FzaEZvcm0gaW4gQ3VzdG9tQ29udHJvbEV4YW1wbGUgIAo8YnI+ODU0MjY6ICBUYWJsZSBub3QgZ2V0dGluZyBleHBvc2UgZXZlbnRzIHdoZW4gcGFydGlhbGx5IG9ic2N1cmVkIGJ5IGFub3RoZXIgd2luZG93ICAKPGJyPjg1NTI1OiAgbW5lbW9uaWNzIGFyZSBub3Qgd29ya2luZyAgCjxicj44NzI5NDogIFN0cmFuZ2UgY2xpcHBpbmcgd2hlbiBzY2FsaW5nIGFuZCByb3RhdGluZyBkcmF3VGV4dCAgCjxicj44ODA1OTogIExpbmUgV2lkdGggb2YgMCBpcyBpbnZpc2libGUgb24gdGhlIE1hYyAgCjxicj44ODcxNzogIFtETkRdIFRyZWUgaXMgc2Nyb2xsaW5nIHZlcnkgc2xvdyB3aGVuIGRyYWdnaW5nIGFuIEl0ZW0gdG8gdGhlIEJvdHRvbSAgCjxicj45MDE5MjogIE9OX1RPUCBzZXRWaXNpYmxlKHRydWUpIGZvY3VzIGlzc3VlcyBvbiBwYXJlbnQgb2YgY2hpbGQgc2hlbGwuICAKPGJyPjkxMDYwOiAgbGludXggY29weS1wYXN0ZSBjaGluZXNlIHRvIFN0eWxlZFRleHQgcHJvYmxlbSAgCjxicj45MTI1NDogIFtlbmNvZGluZ10gREJDUzMuMTogYm9ndXMgREJDUyBpbiBlZGl0b3IgYWZ0ZXIgcmUtYWN0aXZhdGlvbiAgCjxicj45MTM1MDogIFtCcm93c2VyXSBFbWJlZGRlZCBicm93c2VyIGZhaWxzIHRvIGhhbmRsZSBsaW5rIHRvIHRleHQgZmlsZSAgCjxicj45MTQ2NDogIFtjb250ZW50IGFzc2lzdF0gTlBFIGluIENvbXBsZXRpb25Qcm9wb3NhbFBvcHVwICAKPGJyPjkxNzMzOiAgTWVudUl0ZW0uc2V0VGV4dCBkb2Vzbid0IGNoZWNrIGlmIGl0IG1hdGNoZXMgdGhlIGV4aXN0aW5nIHRleHQgIAo8YnI+OTE4MDc6ICBDb250ZXh0IG1lbnUgc2hvd3MgdHdpY2UgaW4gY29tYm8gYm94LiAgCjxicj45MjAxNzogIFN1cHBvcnQgdmVyeSBsYXJnZSBJbWFnZSBvbiBXaW5kb3dzIHBsYXRmb3JtICAKPGJyPjkyMDQ2OiAgUGVuIGxlYWsgaW4gVGV4dExheW91dCNkcmF3KC4uLikgIAo8YnI+OTIxODY6ICBWaXJ0dWFsIHRhYmxlOiBub3QgcmVkcmF3biB3aGVuIGl0ZW0gY291bnQgZHJvcHMgdG8gemVybyAgCjxicj45MjIyODogIExheW91dCBvY2N1cnMgd2hpbGUgY3JlYXRpbmcgdGFibGUgY29sdW1ucywgY2F1c2luZyBBSU9PQkVzICAKPGJyPjkyMjMwOiAgSW5jb25zaXN0ZW50IEJ1dHRvbiBmb2N1cyBldmVudHMgYmV0d2VlbiBwbGF0Zm9ybXMgIAo8YnI+OTIzODI6ICBUZXh0IGluIHRhYmxlIG5vdCB1cGRhdGVkIG9uIGNsZWFyICAKPGJyPjkyNTgzOiAgSGlkZGVuIGZpbGVzIHNob3duIGJ5IGRlZmF1bHQgaW4gR3RrRmlsZUNob29zZXIgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDMxIC0gVHVlc2RheSBBcHJpbCAxOHRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDUzNzogIERDUiBBYmlsaXR5IHRvIHBhaW50IHdpdGggYSBicnVzaCBwYXR0ZXJuICgxRzBJOEJFKSAgCjxicj40NjIxOiAgQ0NvbWJvIG5ldmVyIGZpcmVzIGtleWJvYXJkIGV2ZW50cyAoMUdCNzZCUCkgIAo8YnI+NDc0MjogIERDUjogVXNlZnVsIGZlYXR1cmVzLCBpZGlvbXMgYW5kIGRvY3VtZW50YXRpb24gbWlzc2luZyBmcm9tIEdDICgxR0ZXQ1VPKSAgCjxicj43MDc1OiAgRENSIC0gUmVuZGVyaW5nIGhpbnRzIG9uIEdDIC0gYW50aSBhbGlhcyAvIG1pdHJlICAKPGJyPjEyNzIzOiAgV2luZG93cyBYUCBJY29uIGZvcm1hdCBub3Qgc3VwcG9ydGVkICAKPGJyPjIwNzIzOiAgRGlzY3JlcGVuY2llcyBpbiBUYWJsZSBiZWhhdmlvdXIgYWNyb3NzIHBsYXRmb3JtcyAgCjxicj4yMzYyMTogIEltYWdlIHNjYWxpbmcgZ2l2ZXMgcG9vciByZXN1bHRzIG9uIFdpbmRvd3MgIAo8YnI+Mjg1MzM6ICBUYWJsZSAtIG5vIGZvY3VzIGluZGljYXRvciAgCjxicj4zNDgyNjogIEVjbGlwc2UgY3Jhc2hlcyAtIHN0YWNrIHRyYWNlIHNob3dzIEdQIGluc2lkZSB0cmVlICAKPGJyPjM1MzQxOiAgV2F5IHRvIGRpc2FibGUgZm9udCBzbW9vdGhpbmcgZm9yIGVkaXRvcnMgb24gTWFjT1MgWCAgCjxicj4zNTY3MDogIEZvbnRNZXRyaWNzLmdldEFzY2VudCgpIHJldHVybnMgdGhlIHdyb25nIHZhbHVlICAKPGJyPjM3NTAwOiAgRmVhdHVyZSByZXF1ZXN0OiBTV1QgUHJvamVjdCBjcmVhdGlvbiB3aXphcmQgIAo8YnI+Mzg5NzM6ICBOZWVkIENvbnRyb2wuZ2V0TW9uaXRvciAob3IgV2lkZ2V0LmdldE1vbml0b3IpICAKPGJyPjQwOTg1OiAgRHJhdyB2ZXJ0aWNhbCBUZXh0IG9yIHJvdGF0ZSBncmFwaGljcy4gIAo8YnI+NDExNjA6ICBJbWFnZUxvYWRlciBoYXMgcmVwZWF0Q291bnQgb2YgMCBmb3IgYW5pbWF0ZWQgZ2lmcyAgCjxicj40MTc3NDogIERCQ1M6IERCQ1MgbmFtZWQgZmlsZSBkcmFnJmRyb3AgZmFpbHVyZSBvbiBHVEsgIAo8YnI+NDIxNTU6ICBDb250cm9sRXhhbXBsZSAtIFRvb2xiYXIgU1dULlZFUlRJQ0FMIGxlYXZlcyB3cm9uZyBzZXBhcmF0b3IgIAo8YnI+NDg3ODE6ICBjdXJzb3JzIG9mIHNpemUgMTYgbG9vayB3cm9uZyAgCjxicj41NjA5NDogIHRyYWNrZXIgcmVzaXplIHVzZXMgc2NyZWVuIGNvb3JkaW5hdGVzIGluc3RlYWQgb2YgY29udHJvbCAgCjxicj41NjcxODogIFNXVEV4Y2VwdGlvbiBhbmQgU1dURXJyb3Igc2hvdWxkIHVzZSBzdGFuZGFyZCAxLjQgZXhjZXB0aW9uIG5lc3RpbmcgIAo8YnI+NjI4MTc6ICBGaWxlRGlhbG9nOiBnZXRGaWxlTmFtZSBkb2VzIG5vdCByZXR1cm5zIGV4dGVuc2lvbiAgCjxicj42NDU5MDogIFticm93c2VyXSB3aWRnZXQgbm90IHNpemVkIHByb3Blcmx5ICAKPGJyPjY2ODgyOiAgYWx0Z3Iga2V5cyBub3QgYXZhaWxhYmxlICAKPGJyPjY4Njc5OiAgbWlub3IgY2hhbmdlcyB0byBtYWtlX2d0ay5tYWsgdG8gYWxsb3cgYnVpbGQgd2l0aCBpbnN0YWxsZWQgbW96aWxsYSAgCjxicj42ODg2NzogIEltYWdlRGF0YSAtIHJlbW92ZSBJbWFnZUxvYWRlciBkZXBlbmRlbmNpZXMgIAo8YnI+NjkzNTA6ICBBY2Nlc3NpYmlsaXR5IDogR3JvdXAgdGl0bGUgaXMgbm90IHRha2VuIGludG8gYWNjb3VudCBieSBXaW5kb3ctRXllcyA0LjUgIAo8YnI+NzM1MzY6ICBFY2xpcHNlIDMuMC4xIFJDMiBzb3VyY2UgYnVpbGQgZG9lcyBub3QgY29udGFpbiBsYXRlc3Qgb3JnLmVjbGlwc2Uuc3d0LnRvb2xzICAKPGJyPjc2NDU2OiAgRWNsaXBzZSAzLjAuMWNyYXNoZXMgb24gSFAtVVggd2l0aCBhIE51bGxQb2ludGVyRXhjZXB0aW9uIHdoZW4gc3RhcnRpbmcgdXAgIAo8YnI+NzcwNTU6ICBMb2cgc3RhY2t0cmFjZSBub3QgaGVscGZ1bCBmb3IgU1dURXhjZXB0aW9uIGFuZCBTV1RFcnJvciAgCjxicj44MDE1MDogIFtwbGFuIGl0ZW1dIFtsYXVuY2hlcl0gU3VwcG9ydCBmb3IgbGF1bmNoZXIgYnJhbmRpbmcgIAo8YnI+ODEyNDI6ICBbSlVuaXRdIEdQIGluIENsaXBib2FyZC5nZXRDb250ZW50cyAgCjxicj44MTY5MTogIFRyYWNrZXIgd2l0aCBTV1QuUmVzaXplIHJlYWxseSBzbG93ICAKPGJyPjgyNTk0OiAgUmVxdWVzdCBzdXBwb3J0IGZvciBhbHBoYSBjaGFubmVsIGluIENvbG9yICAKPGJyPjgyNzE5OiAgUmVxdWVzdCBmb3IgYWZmaW5lIHRyYW5zZm9ybWF0aW9uIEFQSSAgCjxicj44MzQ3MjogIFJlcXVlc3QgZm9yIEFQSSB0byBjaGVjayBmb3IgZG91YmxlIGJ1ZmZlcmluZyBzdXBwb3J0ICAKPGJyPjgzOTMzOiAgQ2hlY2sgYW5kIFJhZGlvIEJ1dHRvbnMgd2l0aCBpbWFnZSBkbyBub3QgdXNlIFhQIHN0eWxlICAKPGJyPjg0NTMyOiAgW2Jyb3dzZXJdIEphdmFkb2MgaG92ZXIgc3RheXMgb24gdG9wIHdoZW4gaXQgaGFzIGZvY3VzICAKPGJyPjg0NjczOiAgW2Jyb3dzZXJdIGFtZDY0IHByb2JsZW0gIAo8YnI+ODQ3NDA6ICBjcmFzaCBvbiB3aW5kb3dzIHhwIGtvcmVhbiAgCjxicj44NTMxMjogIGNvbWJvIGlzIGN1dCBvZmYgd2hlbiBhZGRlZCB0byBUb29sQmFyICAKPGJyPjg1NzM2OiAgW2Jyb3dzZXJdIFNXVCBFcnJvcnMgb24gUkggMy4wIFdoZW4gTW96aWxsYSBTZWN1cml0eSBQYXRjaCBtb3ppbGxhLTEuNC4zLTMuMC43IGluc3RhbGxlZCAgCjxicj44NjE5MzogIEphdmEgV2ViU3RhcnQ6IFNXVCBCcm93c2VyIGNhbm5vdCBmaW5kIGxpYnhwY29tLnNvOiBjYW5ub3Qgb3BlbiBzaGFyZWQgb2JqZWN0IGZpbGU6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkpICAKPGJyPjg2NjA4OiAgRG8gbm90IHVuZGVyc3RhbmQgSmF2YWRvYyBvZiBMaW5rLnNldFRleHQoKSAgCjxicj44NjYzMTogIEphdmFkb2Mgd3JvbmcgZm9yIEltYWdlKHN0cmVhbSkgIAo8YnI+ODY3NDE6ICBQcmVzc2luZyBiYWNrc3BhY2UgaW4gYnJvd3NlciB3aWRnZXQgc2hvd3MgbmF2aWdhdGlvbiBjYW5jZWxsZWQgcGFnZSAgCjxicj44Nzg4MjogIE5vIGRlZmF1bHQgY29udGV4dHVhbCBtZW51IGl0ZW0gb24gTWFjICAKPGJyPjg4MTMzOiAgU2xvdyByZW5kZXJpbmcgd2l0aCBpbWFnZXMgd2l0aCB0cmFuc3BhcmFuY3kgYml0IHNldCAgCjxicj44ODgzOTogIEVtYmVkZGVkIFN3aW5nOiBFbnRlciBrZXkgZG9lcyBub3Qgd29yayAgCjxicj44OTU0NzogIFNXVCBidW5kbGUgbWFuaWZlc3QgZmlsZXMgdXNlIGRlcHJlY2F0ZWQgc3ludGF4ICAKPGJyPjg5NjgxOiAgTGluayB3aWRnZXQgbWlzc2luZyBsYXN0IHdvcmQgYXQgcHJlZmVycmVkIHNpemUuICAKPGJyPjg5Nzc5OiAgTlBFIGluIENDb21iby5kcm9wRG93bigpICAKPGJyPjg5OTExOiAgTWlzc2luZyBndGtfdHJlZV92aWV3X2NvbHVtbl9nZXRfZml4ZWRfd2lkdGggb24gYW1kNjQgIAo8YnI+OTAxNTI6ICByZXNpemluZyBMYWJlbCBmbGFzaGVzICAKPGJyPjkwMjIyOiAgRGV2aWNlIGNvbnN0cnVjdG9yICAKPGJyPjkwMjU4OiAgVGFibGUgaXRlbSBub3QgdXBkYXRlZCB3aGVuIGl0ZW0gY291bnQgPT0gMSAgCjxicj45MDg5OTogIFVzaW5nIFBhaW50TGlzdGVuZXIgb24gVGFibGUgZGVzdHJveXMgcmVwYWludGluZyAoQnV0dG9uIGlzIHRoZSBzYW1lIGNhc2UpICAKPGJyPjkwOTQ2OiAgZ3RrX2VudHJ5X3NldF90ZXh0IGNyYXNoZXMgd2hlbiBwYXNzZWQgYSB6ZXJvLWxlbmd0aCBidWZmZXIgIAo8YnI+OTEwMTk6ICBTV1QgUmVuZGVyaW5nIFByb2JsZW1zICAKPGJyPjkxMDcwOiAgQ2Fubm90IHNlbGYtaG9zdCBlY2xpcHNlICAKPGJyPjkxMDg5OiAgU1dUIFNuaXBwZXQgNzcgRm9yIFRhYmxlIENvbCByZXNpemUgaGFzIGFuIGVycm9yIGluIGl0IChmaXggaW5jbHVkZWQgYmVrbG93KSAgCjxicj45MTI1MjogIFZpZXcgdG9vbGJhcnMgYXJlIHNob3dpbmcgd2l0aCBibGFjayBiYWNrZ3JvdW5kcyAgCjxicj45MTQyMzogIEZpeGVkIHNpemUgY29sdW1ucyB1c2VkIGV2ZW4gaWYgZml4ZWRfaGVpZ2h0X21vZGUgbm90IHN1cHBvcnRlZCAgCjxicj45MTQzNTogIEN0cmwrU1BBQ0UgaXMgbm90IGEgdmFsaWQga2V5YmluZGluZyBhc3NpZ25tZW50IGZvciBhY3Rpb25zIG9uIG5hdGl2ZSB3aWRnZXRzICAKPGJyPjkxNDU2OiAgcGxhdGZvcm0tbGF1bmNoZXI6IGVjbGlwc2UuYyB3b24ndCBjb21waWxlIG9uIEJTRCAoTWFjKSBiZWNhdXNlIG9mIG1hY3JvIGNsYXNoICAKPGJyPjkxNDY4OiAgR1RLKyAyLjIgcmVxdWVzdHMgZGF0YSBmcm9tIG5vbi12aXNpYmxlIHJvd3Mgb2YgYSBWSVJUVUFMIHRhYmxlICAKPGJyPjkxNDc1OiAgTTUgU2VsZWN0aW5nIFRyZWVDb2x1bW4gZG9lcyBub3QgY3JlYXRlIGFuIFNXVC5TZWxlY3Rpb24gRXZlbnQgb24gTWFjIE9TIFggIAo8YnI+OTE1MTE6ICBEaXJlY3RvcnkgRGlhbG9nIC0gU2VsZWN0aW9uIHN0cmluZyBub3QgZXh0ZXJuYWxpemVkPyAgCjxicj45MTU1NTogIFRhYmxlIG5vdCB2aXNpYmxlICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAzMCAtIFR1ZXNkYXkgQXByaWwgMTF0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ3NDY6ICBEQ1I6IFRyZWVJdGVtIG5lZWRzIHJlbW92ZUFsbCgpIG1ldGhvZCAoMUdHME5MMCkgIAo8YnI+MTExNzg6ICBQcmVzc2VkICYgZGlzYWJsZWQgdG9vbGJhciBidXR0b24gbG9va3MgZW5hYmxlZCAgCjxicj40ODQ0MzogIFByb3BlcnR5IHNoZWV0IGRvZXMgbm90IHJlcGFpbnQgIAo8YnI+NTMzOTA6ICBOUEUgY2hhbmdpbmcgcGVyc3BlY3RpdmVzICAKPGJyPjU2MjIzOiAgRGlzcGxheSBmaWx0ZXJzIGRvIG5vdCB3b3JrIGluIGNvbXBvdW5kIG5hdGl2ZSB3aWRnZXRzICAKPGJyPjY0MjE5OiAgR2VvbWV0cmljYWxUcmFuc2Zvcm1hdGlvbiAgCjxicj42NTE5MjogIG9yZy5lY2xpcHNlLnN3dC5Ccm93c2VyLmFkZEhlbHBMaXN0ZW5lciBkb2VzIG5vdCB3b3JrIGFmdGVyIHRoZSBzZXRVcmwgbWV0aG9kIGlzIGNhbGxlZCAgCjxicj42NzUyOTogIFdpbmRvdy0+UHJlZmVyZW5jZXMtPkhlbHAgY3Jhc2hlcyBFY2xpcHNlICAKPGJyPjc4NDU5OiAgUGxhdGZvcm0gZGlmZmVyZW5jZXMgc2V0dGluZyBzaXplIHdoaWxlIHNoZWxsIGlzIG1heGltaXplZCAgCjxicj44MDIwNDogIENoZWNrYm94IGluIFRyZWUgb3IgVGFibGUgaWdub3JlcyBzZWNvbmQgY2xpY2sgb2YgZG91YmxlIGNsaWNrICAKPGJyPjgxMjYzOiAgW0N1c3RvbUNvbnRyb2xFeGFtcGxlXSBDQ29tYm8gY2FyZXQgbW92ZXMgYXQgcmFuZG9tIHdoZW4gdXAgYW5kIGRvd24gYXJyb3dzIGFyZSBwcmVzcyAgCjxicj44MzMwODogIEtERSBpbnRlZ3JhdGlvbiBjYXVzaW5nIGNyYXNoZXMgb24gS0RFIDMuMy4yICAKPGJyPjgzNzMxOiAgKGphdmFkb2MgdXBkYXRlKSBXaW5kb3dFdmVudCBsb2NhdGlvbiBhbmQgc2l6ZSBmaWVsZHMgYXJlIGluIHRlcm1zIG9mIHNoZWxsIHNpemUsIG5vdCBicm93c2VyIGNvbnRyb2wgc2l6ZSAgCjxicj44NDExMDogIHdvcmtzcGFjZSBsb3N0ICAKPGJyPjg0NzczOiAgW2xhdW5jaGVyXSBpY29uIG5vdCBiZWluZyB1c2VkIGluIGVycm9yIHdpbmRvdyAgCjxicj44NTExNzogIFNlbGVjdGVkIGFuZCBkaXNhYmxlZCB0b29sIGl0ZW0gbG9va3MgZW5hYmxlZCAgCjxicj44NTUzNzogIFtKVU5JVF0gRGlzcGxheS5tYXAgdGVzdCBjYXNlcyBmYWlsaW5nICAKPGJyPjg3MDM3OiAgW2Jyb3dzZXJdIGNoYXJzZXQveG1sIEludHJvIHF1ZXN0aW9uICAKPGJyPjg3MTEzOiAgRmlyc3QgVGFibGVDb2x1bW4gd2l0aCBzdHlsZSBTV1QuUklHSFQgZHJhd3MgYmFkbHkgIAo8YnI+ODc1NTk6ICBOUEUgaW4gVGFibGVJdGVtLmdldFRleHQgdXNpbmcgY29udHJvbCBleGFtcGxlICAKPGJyPjg3ODM3OiAgU3RyYW5nZSByZWRyYXcgYW5kIGRpc2FibGVkIGJlaGF2aW91ciB3aXRoIFNXVC5DSEVDSyB0b29saXRlbXMgd2l0aCBhbmQgd2l0aG91dCBkaXNhYmxlZCBpY29ucyBzZXQuICAKPGJyPjg3OTk3OiAgVGFibGVFZGl0b3IuZGlzcG9zZSggKSBjYXVzZXMgTlBFIGlmIGxpbmtlZCBUYWJsZSBpcyBiZWluZyBkaXNwb3NlZCAgCjxicj44ODM4ODogIHRyZWUgZm9jdXMgY2hlZXNlICAKPGJyPjg4NzM1OiAgVGFibGUuZ2V0Q2xpZW50QXJlYSgpIHdpZHRoIGlzIGluY29uc2lzdGVudCB3aXRoIHdpbjMyICAKPGJyPjg4ODI3OiAgTmVlZCBhIGRpc3RpbmN0aXZlIHBsYXRmb3JtIGZpbHRlciBmb3IgR1RLIC8gR1RLIDY0ICAKPGJyPjg4ODI5OiAgVGFibGUuc2V0Q29sdW1uT3JkZXIoKSBtYXkgbm90IGZpcmUgZW5vdWdoIE1vdmUgZXZlbnRzICAKPGJyPjg5MzI5OiAgW1ZpZXdlcnNdIENWUyBSZXBvc2l0b3JpZXMgVmlldzogIlBlbmRpbmcuLi4iIGl0ZW0gZ2V0cyBhbiBpY29uIHdoZW4gc2VsZWN0ZWQgIAo8YnI+ODkzNjc6ICBTdHJpbmcgaXMgbm90IHJlbmRlcmVkIGluc2lkZSBzdHJpbmdFeHRlbnQgIAo8YnI+ODkzNzg6ICBDb21ibyBkZWZhdWx0IHNpemUgdG9vIHNtYWxsIHdpdGggY2VydGFpbiBmb250cyAgCjxicj44OTQ4MzogIFtUYWJsZV0gTm8gU1dULlJlc2l6ZSB3aGVuIFNjcm9sbGJhcnMgYmVjb21lIHZpc2libGUgIAo8YnI+ODk2Njk6ICBbYnJvd3Nlcl0gRjEgZG9lcyBub3QgYnJpbmcgZWNsaXBzZSBoZWxwIGNvbnRlbnQgd2hlbiBicm93c2VyIGhhcyBmb2N1cyAgCjxicj45MDA4NzogIEdDLmNvcHlBcmVhIGNhdXNlcyBjb250aW51b3VzIHJlcGFpbnRpbmcgb2YgQ2FudmFzICAKPGJyPjkwMTIzOiAgU1dUIG1hbmlmZXN0cyBzdGlsbCB1c2UgUHJvdmlkZS1QYWNrYWdlICAKPGJyPjkwMTc2OiAgU2NhbGUgd2lkZ2V0IGFuZCBTV1QuUEFHRV9VUCBrZXkgZXZlbnQgIAo8YnI+OTAyMTc6ICBSZXF1ZXN0OiBTV1QgRnJhZ21lbnQgbmFtZSB0byBiZSB1bmlxdWUgZm9yIGEgZ2l2ZW4gd3Mvb3MvYXJjaCAgCjxicj45MDIyMzogIFJlZ3Jlc3Npb246IFNwaW5uZXIgcmVwb3J0cyB3cm9uZyB2YWx1ZSAgCjxicj45MDI4MjogIFNXVC5SSUdIVCBub3Qgd29ya2luZyBvbiBUZXh0IGNvbnRyb2wgb24gTWFjIE9TIFggIAo8YnI+OTAzMTc6ICBjbGlja2luZyBpbiBUYWJsZSBvciBUcmVlIGZpcnN0IHRpbWUgZmlyZXMgdHdvIHNlbGVjdGlvbiBldmVudHMgIAo8YnI+OTAzMjY6ICBTaGVsbCByZWFsaXplZCB0b28gZWFybHkgZm9yIG5vIHJlYXNvbiAgCjxicj45MDM2NjogIFNXVCBMaW5rIFdpZGdldCB0aHJvd3MgQXJyYXkgT3V0IG9mIEJvdW5kcyBFeGNlcHRpb24gIAo8YnI+OTA0NTc6ICBTV1QgaW4gTTYgYW5kIHByaW9yIHdpbGwgbm90IGJ1aWxkIGFnYWluc3QgdGhlIFN1biBKREsgIAo8YnI+OTA1MTM6ICBMaW5rIHdpZGdldCBkb2VzIG5vdCBoYXZlIGEgcHJvcGVyIENyZWF0ZUhhbmRsZSBtZXRob2QgIAo8YnI+OTA3Mjk6ICBTaGVsbCB3aXRoIHN0eWxlIE1PREVMRVNTIG9yIERJQUxPR19UUklNIGlnbm9yZXMgc2V0U2l6ZSgpICAKPGJyPjkwNzcwOiAgUmFjZSBjb25kaXRpb25zIGluIERldmljZS5nZXREZXZpY2UoKSBtZXRob2QgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDI5IC0gVHVlc2RheSBBcHJpbCA1dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyMDk1NDogIFtBYm91dF0gRmVhdHVyZSBQbHVnaW5zIGRpYWxvZyBmYWlscyB0byBsYXVuY2ggd2ViIGJyb3dzZXIgIAo8YnI+MjU0OTA6ICBXaGl0ZSBDb2xvciBkb2Vzbid0IGFwcGVhciBvbiBUb29sYmFyIEltYWdlICAKPGJyPjM0NDgxOiAgSmF2YSBDb21waWxlciBQcm9wZXJ0aWVzIGZvciBhIFByb2plY3QgIAo8YnI+NDEwNjU6ICBBcnJvdyBidXR0b24gbG9vayBpcyBpbmNvbnNpc3RlbnQgd2l0aCBzY3JvbGwgYXJyb3dzICAKPGJyPjU3ODE5OiAgW1NXVC1FeGFtcGxlLUNvbnRyb2xzLVRhYmxlXSBJbiBzb21lIGNhc2VzIHRoZSB2ZXJ0aWNhbCBzY3JvbGwgYmFyIGlzIG5vdCBhdmFpbGFibGUgd2l0aCBzaXplIDEweDEwICAKPGJyPjY0MTkyOiAgU2Nyb2xsYmFyIC0gc2V0VmlzaWJsZSBub3Qgd29ya2luZyBhcyBleHBlY3RlZCAgCjxicj42OTkxOTogIFtCcm93c2VyXSBKYXZhZG9jIHZpZXcgc3RlYWxzIGtleSBldmVudHMuICAKPGJyPjc1MTQxOiAgW0Jyb3dzZXJdIENUYWJJdGVtIHdpdGggQnJvd3NlciBjb250YWluaW5nIHZpZGVvIGNyYXNoZXMgd2hlbiBkaXNwb3NpbmcgaXRlbSdzIGltYWdlICAKPGJyPjc1MzE3OiAgW0Jyb3dzZXJdIExvY2F0aW9uIG5vdCBicm93c2VkIHdoZW4gVVJMIG1pc3NlcyBwcm90b2NvbCAvIHd3dyAgCjxicj43OTg4MTogIEJyb3dzZXIgY2xhc3Mgc2hpcHBlZCB3aXRoIEFJWC1Nb3RpZiBjaGVja3MgZm9yIExpbnV4ID8hPyAgCjxicj43OTkyNzogIGNyYXNoIHdoZW4gdXNpbmcgYSBUYWJsZSwgVGFibGVJdGVtcyB1c2luZyBpbWFnZXMgd2l0aCBhbHBoYSwgYW5kIHVzaW5nIFRhYmxlQ29sdW1uLnBhY2sgIAo8YnI+ODEyMzU6ICBbSlVuaXRdIFRhYmxlSXRlbS5nZXRCb3VuZHMgdGVzdCBmYWlscyAgCjxicj44MTI0MDogIFtKVW5pdF0gVHJlZSBnZXQvc2V0VG9wSXRlbSBmYWlscyAgCjxicj44MjcwMzogIFRyZWUgd2l0aCBUcmVlQ29sdW1ucyBkb2Vzbid0IGRpc3BsYXkgRlVMTF9TRUxFQ1RJT04gcHJvcGVybHkgIAo8YnI+ODM0Nzc6ICBbYnJvd3Nlcl0gTmF0aXZlIGNyYXNoIG91dHNpZGUgSlZNIGluIGxpYndpZGdldF9ndGsyLnNvICAKPGJyPjg1NTMwOiAgQ29udHJvbCBpbiB2ZXJ0aWNhbCBUb29sQmFyIGRvZXNuJ3QgZml0ICAKPGJyPjg3Njk1OiAgSW50ZXJmYWNlIERpc3Bvc2VhYmxlICAKPGJyPjg3ODU1OiAgTnVsbFBvaW50ZXJFeGNlcHRpb24gaW4gVGFibGUuY2FsbFdpbmRvd1Byb2MgIAo8YnI+ODgyNzg6ICBUcmVlSXRlbSBzaG91bGQgcHJvdmlkZSBpdGVtLnJlbW92ZUFsbCAgCjxicj44OTA2MzogIFtNYXJrZXJzXSBpbmZpbml0ZS1sb29wIGR1cmluZyBjdnMgb3ZlcnJpZGUgYW5kIHVwZGF0ZSAgCjxicj44OTIxNzogIExhYmVsLmNvbXB1dGVTaXplKCkgcmV0dXJuaW5nIGluY29ycmVjdCB2YWx1ZXMgd2hlbiB1c2luZyBXUkFQICAKPGJyPjg5NTMzOiAgW1RoZW1lc10gQ29sb3JzIGFuZCBGb250cyBwcmVmZXJlbmNlcyBwYWdlIGhhcyBmdW5ueSBpY29ucyBmb3IgY29sb3IgZW50cmllcyAgCjxicj44OTU2NDogIEltYWdlIGFwcGVhcnMgYW5kIGRpc2FwcGVhcnMgaW4gVHJlZSAgCjxicj44OTU3NTogIEJyb3dzZXIgd2lkZ2V0IGNyYXNoZXMgIAo8YnI+ODk2NjU6ICBWTSB0ZXJtaW5hdGVkIHdoZW4gc3dpdGNoaW5nIHBhZ2UgaW4gdGhlIFBsdWdpbiBtYW5pZmVzdCBlZGl0b3IgIAo8YnI+ODk3ODU6ICBEaXNhYmxlZCBsaW5rcyBsb29rIGxpa2Ugbm9ybWFsIGxpbmtzICAKPGJyPjg5ODI2OiAgW0Jyb3dzZXJdIGJyb3dzZXIgZWF0cyBhbGwga2V5c3Ryb2tlcyAgCjxicj44OTg4NTogIENyYXNoIHVzaW5nIGNvbW1hbmQtTy4gIAo8YnI+OTAwMDk6ICBjb2RlIGFzc2lzdCBsb3NlcyBpdHMgdmlzdWFsIHNlbGVjdGlvbiAgCjxicj45MDAxODogIE5hdGl2ZSB0b29sdGlwcyBsZWZ0IGFyb3VuZCBvbiBDVGFiRm9sZGVyICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAyOCAtIFRodXJzZGF5IE1hcmNoIDI5dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8cD5OZXcgQVBJIGhhcyBiZWVuIGFkZGVkIHRvIFNwaW5uZXI8L3A+CjxibG9ja3F1b3RlPgppbnQgU3Bpbm5lci5nZXREaWdpdHMoKQo8YnI+U3Bpbm5lci5zZXREaWdpdHMoaW50KQo8L2Jsb2NrcXVvdGU+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KODYwNzk6ICBTcGlubmVyIHNob3VsZCBoYW5kbGUgbm9uLWludGVnZXIgaW5jcmVtZW50cyAgCjxicj44NzIwNzogQ29udGVudCBvZiBmaXJzdCBjb2x1bW4gaW4gVHJlZSB3aXRoIGNvbHVtbnMgb3ZlcmZsb3dzIHBhc3QgbGFzdCBjb2x1bW4gIAo8YnI+ODkwMjg6IHVuZWNjZXNzYXJ5IGNhc3RzICAKPGJyPjg5MTU2OiBDYWlybyBiaW5kaW5ncyBmb3IgU1dUIGNhbiBub3QgYmUgY29tcGlsZWQuICAKPGJyPjg5MTYzOiBHcmlkRGF0YS52ZXJ0aWNhbEluZGVudCBkb2VzIG5vdCB3b3JrIGFzIGV4cGVjdGVkICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAyN2MgLSBUaHVyc2RheSBNYXJjaCAyNG5kLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPHA+TmV3IEFQSSBoYXMgYmVlbiBhZGRlZCB0byBUcmVlIGFuZCBUYWJsZVRyZWU8L3A+CjxibG9ja3F1b3RlPgppbnQgVHJlZS5pbmRleE9mKFRyZWVJdGVtKQo8YnI+aW50IFRyZWVJdGVtLmluZGV4T2YoVHJlZUl0ZW0pCjxicj5UcmVlSXRlbSBUcmVlLmdldEl0ZW0oaW50KQo8YnI+VHJlZUl0ZW0gVHJlZUl0ZW0uZ2V0SXRlbShpbnQpCjwvYmxvY2txdW90ZT4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyNjYyNTogIENvbWJvIGN1cnNvciBhbmQgY29weS9wYXN0ZSBhcmUgbm90IHdvcmtpbmcgcmlnaHQgIAo8YnI+ODc1NTQ6IE5lZWQgYm91bmRpbmcgcmVjdGFuZ2xlIGZvciBhIFBhdGggIAo8YnI+ODc4MjA6IEdDLmRyYXdTdHJpbmcgdXNlcyBCRyBjb2xvciBmb3IgZm9udCB3aGVuIGFscGhhIHZhbHVlIDwgMjU1ICAKPGJyPjg3ODI0OiBHQyBzZXRSZWdpb24gYW5kIGdldFJlZ2lvbiBhcmUgbm90IHN5bW1ldHJpYyAgCjxicj44ODEyMjogc3dpdGNoIG9yZy5lY2xpcHNlLnN3dCBwbHVnaW4gYW5kIGZyYWdtZW50cyB0byBuZXcgZWNsaXBzZSBqYXIgZm9ybWF0ICAKPGJyPjg4NDA5OiBEZXZpY2UuZ2V0Rm9udExpc3Qgc2hvdWxkIGhhdmUgYmV0dGVyIHBlcmZvcm1hbmNlICAKPGJyPjg4NTgyOiBDb21wdXRlZCB3aWR0aCBvZiBsaW5rIHdpZGdldCBpcyB0b28gbGFyZ2UgIAo8YnI+ODIzMzY6IFRyZWVWaWV3OiBzZXR0aW5nIGdyYXkgZ2l2ZXMgZnJlZSBjaGVjayBtYXJrICAKPGJyPjgzNDMyOiBpRnJhbWUgZG9lcyBub3QgcmVuZGVyIGJvcmRlciB3aGVuIGluIFNXVCBCcm93c2VyICAKPGJyPjg3NTM0OiBUVlQzLjEgIzMzIC0gU1dUIEJyb3dzZXIgVmlldyBjYW5ub3QgYmUgZm91bmQgIAo8YnI+ODc3MjY6IFJlbW92aW5nIGxpYlhtIGxpbmtzIGZyb20gbW90aWYgZHJvcHMgIAo8YnI+ODc4MTA6IFN1cHBvcnQgRlVMTF9TRUxFQ1RJT04gaW4gKHRhYmxlKSBUcmVlICAKPGJyPjg3ODMzOiBQbGF0Zm9ybS1maWx0ZXIgbXVzdCBiZSBhZGRlZCB0byB0aGUgZnJhZ21lbnRzICAKPGJyPjg4MDkzOiBTaGFwZXMgYXJlIGRyYXduIHRvbyBsYXJnZSB3aGVuIGEgdHJhbnNmb3JtIGlzIHVzZWQgIAo8YnI+ODgxNzE6IFdhcm5pbmcgaW4gTjIwMDUwMzE2LTAwMTAgYnVpbGQgIAo8YnI+ODg1MTk6IE5lZWQgYSB3YXkgdG8gY2xlYXIgdGhlIFRyYW5zZm9ybSBmcm9tIGEgR0MgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDI2IC0gVHVlc2RheSBNYXJjaCAxNXRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjgwNDA6IFZpZXdzIGtlZXAgcmVzaXppbmcgYWZ0ZXIgbW91c2UgdXAKPGJyPjg2Mjk0OiBGaW5kL1JlcGxhY2Ugbm90IHdvcmtpbmcgIklsbGVnYWwvVW5zdXBwb3J0ZWQgZXNjYXBlIG9uIHRoZSBNYWMKPGJyPjg3MDEwOiBOb1N1Y2hNZXRob2RFcnJvciBEaXNwbGF5LnNldERpcmVjdG9yeVByb2MKPGJyPjg3MzcyOiBbYnJvd3Nlcl0gQ1RSTC1OIHNob3VsZCBub3QgcnVuIElFIGFjdGlvbiB3aGVuIHVzaW5nIEJyb3dzZXIuc2V0VGV4dAo8YnI+ODc1Nzg6IFRWVDMuMSAjMzggLSBSVVMgbW5lbW9uaWNzIG9ubHkgd29yayBpbiBtYWluIHdpbmRvdwo8YnI+ODc1ODQ6IFJlbW92ZSBJbWFnZUxvYWRlciBkZXBlbmRlbmN5IGluIFRlc3Rfb3JnX2VjbGlwc2Vfc3d0X2dyYXBoaWNzX0ltYWdlIGFuZCBUZXN0X29yZ19lY2xpcHNlX3N3dF9ncmFwaGljc19JbWFnZURhdGEKPGJyPjg3NjY0OiBOdWxsIHBvaW50ZXIgZXhjZXB0aW9uIGluIG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLlRyZWVJdGVtLmNvbXB1dGVEaXNwbGF5VGV4dCBpbiAzLjFNNWEKPGJyPjg3Njc2OiBEb3VibGUtY2xpY2sgb25seSB3b3JrcyBvbiBhIHRyZWUncyBjb2x1bW4wCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMjUgLSBUdWVzZGF5IE1hcmNoIDh0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQxMjAyOiAgR1RLLUJJREk6IFJUTCBzdXBwb3J0IGluIFNsaWRlciAgCjxicj44NDAxMjogIFN0eWxlZFRleHQgd2l0aCBTV1QuV1JBUCBzdHlsZSBkb2VzIG5vdCBhZGp1c3Qgc2VsZWN0aW9uIGNvcnJlY3RseSAgCjxicj44NDA1MTogIFRhYmxlIHdpZGdldCB1bmV4cGVjdGVkbHkgZmlyZSBkZWFjdGl2YXRlZCBldmVudCB3aGlsZSBjbGlja2luZyBzY3JvbGwgYmFyIGJ1dHRvbnMuICAKPGJyPjg2NTgyOiAgU3Bpbm5lciBzaG91bGQgYWxsb3cgd3JhcHBpbmcgdG8gYmUgdHVybmVkIG9mZiAgCjxicj44NjkyMTogIENyYXNoIGVtYmVkZGluZyBvdGhlciBwcm9jZXNzLiAgCjxicj44NzA3NTogIFtTV1QgRXhhbXBsZXMgLSBTV1QgQ29udHJvbHNdIEluY29ycmVjdCBEaWFsb2cgYnV0dG9ucyBjcmVhdGlvbiB3aXRoIFNXVC5SRVRSWSwgU1dULkFCT1JULCBhbmQgU1dULklHTk9SRSBvbiBNZXNzYWdlQm94ICAKPGJyPjg3MTIyOiAgTGluazogcHJvYmxlbSB3aXRoIFdNX1BSSU5UICAKPGJyPjg3MjY1OiAgTGluayB3aWRnZXQgamF2YWRvYyBkb2VzIG5vdCBtZW50aW9uIHN0eWxlIGJpdHMgIAo8YnI+ODczNjM6ICBSZWdyZXNzaW9uOiBNZW51RGV0ZWN0IG5vIGxvbmdlciBvcGVucyBuZXcgbWVudXMgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDI0IC0gVHVlc2RheSBNYXJjaCAxc3QsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozNDE0NjogR1RLLUJJREk6IFJUTCBzdXBwb3J0IGluIFRvb2xJdGVtCjxicj4zNDE2MDogQ2xpY2tpbmcgb24gdGFibGUgaGVhZGVyIGRvZXMgbm90IHNvcnQgdy9uYXRpdmUgdGFibGUKPGJyPjQxMTg0OiBHVEstQklESTogU3VwcG9ydCBvZiBSVEwgb3JpZW50YXRpb24gb2YgYmFzZWQgU1dUIHdpZGdldHMKPGJyPjQxMjQzOiBHVEstQklESTogUlRMIHN1cHBvcnQgaW4gTGlzdAo8YnI+NDEzNjM6IEdUSy1CSURJOiBSVEwgc3VwcG9ydCBpbiBUYWJGb2xkZXIKPGJyPjQxMzY0OiBHVEstQklESTogUlRMIHN1cHBvcnQgaW4gQ29tYm8KPGJyPjQxNTQ2OiBHVEstQklESTogUlRMIHN1cHBvcnQgaW4gVGFibGUKPGJyPjUxODI4OiBHVEstQklESTogUlRMIHN1cHBvcnQgaW4gTWVudQo8YnI+NTY1OTM6IFRhYmxlSXRlbS5zZXRGb250KCkgY2F1c2VzIGNlbHMgdG8gYmUgcmVuZGVyZWQgd2l0aCBlbGxpcHNpcyBldmVuIHdoZW4gdGhleSBhcmVuJ3QgbmVjZXNzYXJ5Cjxicj41ODQwMTogTmVlZCBhIG1vcmUgZmxleGlibGUgR3JpZExheW91dCBhbmQgR3JpZERhdGEgY2xhc3MgdG8gc3VwcG9ydCBtb3JlIGR5bmFtaWMgbGF5b3V0cwo8YnI+ODM3MDM6IENyYXNoIHdoZW4gdXNpbmcgc291cmNlIC0gZmluZCBzdHJpbmdzIHRvIGV4dGVybmFsaXplCjxicj44NTU1MjogVGV4dExheW91dCBwcmVmZXJyZWQgc2l6ZSBkZXBlbmRzIG9uIGN1cnJlbnQgd2lkdGgKPGJyPjg1NjM0OiBTdHJhbmdlIGJsaXAgYWJvdmUgaGVscCBjb21ibwo8YnI+ODU4NzY6IExpbmUgYnVncyBpbiBHQwo8YnI+ODYwMDA6IEltYWdlTG9hZGVyIFNhdmUgLSBwcm9kdWNlcyBpbnZhbGlkIEpQRUcgaW1hZ2VzCjxicj44NjE0NTogVk0gQ3Jhc2ggd2hlbiBydW5uaW5nIHJlbW90ZWx5IHZpYSBjeWd3aW4vWAo8YnI+ODYyMTY6IERpc3BsYXkuZ2V0QWN0aXZlU2hlbGwoKSBzbG93IHdpdGggbG90cyBvZiB3aWRnZXRzCjxicj44NjI3NTogTlBFIGluIFNoZWxsLmd0a19mb2N1c19vdXRfZXZlbnQKPGJyPjg2Mzc1OiBUb29saXRlbSBjYWxsaW5nIGd0a193aWRnZXRfYWRkX2V2ZW50cyBhZnRlciBpdCBpcyByZWFsaXplZAo8YnI+ODY0MDI6IFRvb2xCYXIgb25seSBuZWVkcyB0byByZXNpemUgaXRzIGNoaWxkcmVuIGlmIHRoZSBib3VuZHMgYXJlIHJlcXVpcmVkCjxicj44NjU3NzogTm90IHJlbW92aW5nIGV2ZW50IGZpbHRlciBhZGRlZCB3aXRoIGdka193aW5kb3dfYWRkX2ZpbHRlcgo8YnI+ODY1ODc6IFRyZWU6IHByb2JsZW0gd2l0aCBXTV9QUklOVAo8YnI+ODY1ODg6IFRyZWU6IHByb2JsZW0gd2l0aCBjb2x1bW4gcmVzaXplCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMjNnIC0gVHVlc2RheSBGZWJydWFyeSAyMXN0LCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KODU2NjI6ICBWTSBjcmFzaCA/IHdoZW4gYnJvd3NlciB3aWRnZXQgaXMgYmVpbmcgdXNlZCAgCjxicj43MDcxMzogIEZpcnN0IExhdW5jaCBmcm9tIERvY2sgZmFpbHMgIAo8YnI+NzE4NDQ6ICBwb3B1cCBtZW51IGhhcyBidW5jaCBvZiBlbXB0eSBpdGVtcyAgCjxicj44NTgzNDogIG5vdGlmeUFsbCgpIHNsb3cgaW4gbG9ja2luZyBjb2RlICAKPGJyPjg1ODQ5OiAgR0MuY29weUFyZWEoKSBzbG93IG9uIGltYWdlcyAgCjxicj44NTg3NTogIEVjbGlwc2UgY3Jhc2hlcyB3aGVuIGNsaWNraW5nIG9uICJWaWV3IEluc3RhbGxhdGlvbiBIaXN0b3J5IiAgCjxicj42NjgxNTogIFNlbGVjdGlvbiBkaXNhcHBlYXJzIGluIHRyZWVzIHdoZW4gdGhleSBkbyBub3QgaGF2ZSBmb2N1cyAoS0RFKSAgCjxicj4zNzc3NTogIFNXVCBpcyBub3QgNjQtYml0IGNsZWFuICAKPGJyPjcwMjkzOiAgQXBwbGljYXRpb24gZXJyb3IgZHVyaW5nIHRoZSBzdGFydCBvZiBFY2xpcHNlICAKPGJyPjczOTE5OiAgYWRkIGFudCB0YXNrIHRvIGJ1aWxkIG5hdGl2ZSBsaWJyYXJpZXMgYXMgcGFydCBvZiB0aGUgZWNsaXBzZSBidWlsZCAgCjxicj44NTg3NzogIFNoZWxsIGhhcyB1bndhbnRlZCB0aXRsZSBiYXIgb24gUG9ja2V0IFBDICAKPGJyPjg1MjM2OiAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdoZW4gbGF5b3V0aW5nIGxpbmsgd2lkZ2V0ICAKPGJyPjg1NDEyOiAgY2hhbmdpbmcgbGluayBmb3JlZ3JvdW5kIGRvZXMgbm90IHJlcGFpbnQgIAo8YnI+NTAxMjM6ICBEcm9wIGRvd24gQ29tYm8gZG9lc24ndCBkcm9wIGRvd24gIAo8YnI+NTE3MDU6ICBbSlVOSVRdIC0gQ29vbEl0ZW0gZmFpbHMgSlVuaXQgdGVzdHMgIAo8YnI+ODUwNjk6ICBbTWFjXSBLRVJOX1BST1RFQ1RJT05fRkFJTFVSRSBvbiBFeGl0ICAKPGJyPjg1NDUzOiAgQWR2YW5jZWQgZ3JhcGhpY3Mgbm90IHdvcmtpbmcgb24gVzJLIC0gdHJpZ2dlciBzeXN0ZW0gd2luZG93ICAKPGJyPjg1NTMxOiAgc3d0LWNhaXJvIGxpYnJhcnkgbm90IGJ1aWx0IG9uIEFNRDY0ICAKPGJyPjg1NTQ3OiAgQ29tYm8gYm94IGxpc3QgaXMgd2F5IHRvbyBiaWcgIAo8YnI+ODU5NTg6ICAzLjFNNWEgbm90IHVzYWJsZSBvbiB3aW45OCAgCjxicj4yMjAzNTogIERDUiAtIERyYWdhYmxlIHRhYmxlY29sdW1ucyBpbiB0YWJsZSAgCjxicj41MTA3OTogIFJlc2l6aW5nIG9mIFRhYmxlQ29sdW1ucyBvbiBMaW51eCBkaXNwbGF5cyBleHRyYSBob3Jpem9udGFsIHRvb2xiYXIgIAo8YnI+ODQ1NTc6ICBUYWJsZSBpdGVtIGRvZXMgbm90IGFwcGVhciBpbiB0YWJsZSAgCjxicj44NTM4NjogIE51bGxQb2ludGVyRXhjZXB0aW9uIGluIERyb3BUYXJnZXQgIAo8YnI+NDU0MzogIERDUiAtIG5lZWQgZmxpcHBpbmcgaW1hZ2Ugc3VwcG9ydCBhbGEgYXd0LkdyYXBoaWNzLmRyYXdJbWFnZSgpICgxRlowQzdHKSAgCjxicj4zMDMyOTogIFN1cHBvcnQgQmV6aWVyIGN1cnZlcyBvbiBzd3QuZ3JhcGhpY3MuR0MgIAo8YnI+ODU3MzI6ICBnZXRDbGllbnRBcmVhKCkgY2F1c2UgU2hlbGwgdG8gYmUgcmVzaXplZCB0byBpdHMgaW5pdGlhbCBzaXplICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAyMyAtIFR1ZXNkYXkgRmVicnVhcnkgMTV0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxwPk5ldyBBUEkgaGFzIGJlZW4gYWRkZWQgdG8gVGFibGUgYW5kIFRhYmxlQ29sdW1uIHRvIHN1cHBvcnQgcmVvcmRlcmluZyBvZiBjb2x1bW5zIGJ5IGRyYWdnaW5nIHRoZSBoZWFkZXJzPC9wPgo8YmxvY2txdW90ZT4KaW50W10gVGFibGUuZ2V0Q29sdW1uT3JkZXIoKQo8YnI+VGFibGUuc2V0Q29sdW1uT3JkZXIoaW50W10pCjxicj5ib29sZWFuIFRhYmxlQ29sdW1uLmdldE1vdmVhYmxlKCkgLSBkZWZhdWx0IGlzIGZhbHNlCjxicj5UYWJsZUNvbHVtbi5zZXRNb3ZlYWJsZShib29sZWFuKQo8YnI+U1dULk1vdmUgZXZlbnQgaXMgc2VudCBmb3IgdGhlIFRhYmxlQ29sdW1uIHdoZW4gY29sdW1ucyBhcmUgZHJhZ2dlZCB0byBhIG5ldyBwb3NpdGlvbgo8L2Jsb2NrcXVvdGU+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KPGJyPjIyMDAwOiAgR1RLOiBNZW51YmFyIGlzIG5vdCBhY2NvdW50ZWQgZm9yIGluIGNvbXB1dGVUcmltKCkuICAKPGJyPjM0NjQ0OiAgRE5EIGluIHRoZSBGaWxlVmlld2VyIGV4YW1wbGUgcmVzZXRzIHRyZWUgc2VsZWN0aW9uICAKPGJyPjM5MjM3OiAgR1RLIFRyZWUgRE5EIGRvZXNuJ3QgaGlnaGxpZ2h0IGJldHdlZW4gbWFya2luZ3MgIAo8YnI+NDU0Mjk6ICBUYWJsZUNvbHVtbi5wYWNrKCkgZG9lc24ndCBkZWNyZWFzZSBjb2x1bW4ncyB3aWR0aCBvbiBHVEsgIAo8YnI+Nzk0MTk6ICBbUHJlZmVyZW5jZXNdIE5lZWQgYSBsaW5rIGNvbXBvbmVudCAgCjxicj44MTI1NDogIENvbnRyb2xFeGFtcGxlIHNwZXdzIHdhcm5pbmdzICAKPGJyPjgzNzk1OiAgR3JpZExheW91dCBkb2Vzbid0IGhhbmRsZSBob3Jpem9udGFsIHNwYW5uaW5nIG9mIG11bHRpcGxlIGNvbHVtbnMgY29ycmVjdGx5ICAKPGJyPjg0NTAwOiAgQnJva2VuIHNlbGVjdGlvbiBvbiBUYWJsZUl0ZW0gd2hlbiBJbWFnZSBpbiAxc3QgQ29sdW1uICAKPGJyPjg0NTM1OiAgVGl0bGVBcmVhRGlhbG9nIGRvZXNuJ3QgZGlzbWlzcyBvbiA8RU5URVI+IGlmIGNvbnRhaW5zIENvbWJvKFNXVC5TSU1QTEUpICAKPGJyPjg0NjAyOiAgc2Nyb2xsaW5nIFRyZWUgd2l0aCBjb2x1bW5zIGhvcml6b250YWxseSBmaXJlcyBNb3ZlIGFuZCBSZXNpemUgZXZlbnRzICAKPGJyPjg0NjA5OiAgVGFibGVDb2x1bW4gaGFzIE5QRSB3aGlsZSBjYWxsaW5nIHBhY2soKSBvbiBsYXN0IGNvbHVtbiAgCjxicj44NDYxMzogIHNldHRpbmcgVHJlZSBoZWFkZXIgdmlzaWJpbGl0eSBmaXJlcyBSZXNpemUgIAo8YnI+ODQ2MzA6ICByZXNpemluZyBhIFRyZWVDb2x1bW4gZG9lcyBub3QgZmlyZSBSZXNpemUgb3IgTW92ZSAgCjxicj44NDY2NTogIENsYXJpZnkgSmF2YWRvYyBvZiBEaXNwbGF5LnBvc3RFdmVudCAgCjxicj44NDczMzogIFRhYkZvbGRlciBwb3NpdGlvbiBjaGFuZ2UgYnJva2VuICAKPGJyPjg0NzU1OiAgQ2Fubm90IG9wZW4gZmlsZW5hbWVzIHdpdGggOC1iaXQgY2hhcmFjdGVycyAgCjxicj44NDc2NTogIFN0YWNrT3ZlcmZsb3cgaW4gc2V0VGV4dCAgCjxicj44NDc4MzogIERpcmVjdG9yeSBkaWFsb2cgZG9lcyBub3QgZGVhbCB3aXRoIG5vbi1VVEY4IGZpbGVuYW1lcyAgCjxicj44NDg2MTogIERpc3BsYXkucG9zdChFdmVudCkgbm90IHdvcmtpbmcgZm9yIGNoYXIga2V5IGV2ZW50cyBTV1QuVEFCLCBTV1QuRVNDLCBTV1QuREVMIGFuZCBTV1QuQlMgIAo8YnI+ODQ4ODg6ICBUZW1wb3JhcnkgLSBkb24ndCB1c2UgY2VydGFpbiB3ZWJzaXRlcyBpbiBqdW5pdCB0ZXN0cyAgCjxicj44NDk1MzogIFZpZXcgY29udGVudHMgYXJlIGRyYXduIG92ZXIgdGFiIGFyZWEgIAo8YnI+ODUwMDY6ICBUYWJsZUNvbHVtbi5wYWNrKCkgb2YgY29sdW1uIDAgd3RoIFNXVC5DSEVDSyBpcyBiYWQgIAo8YnI+ODUxMTk6ICBVc2UgR0RLX0hBTkQyIGluc3RlYWQgb2YgR0RLX0hBTkQxIGZvciBTV1QuQ1VSU09SX0hBTkQgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDIyIC0gVHVlc2RheSBGZWJydWFyeSA4dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo8YnI+NTQ5NzM6ICBbYnJvd3Nlcl0gRGVmYXVsdCBXaW5kb3dFdmVudCB0byBoYW5kbGUgbm9ybWFsIHdpbmRvdyBvcGVuIGNhc2UgLSBmZWF0dXJlIHJlcXVlc3QgIAo8YnI+ODE0NjM6ICBbbGF1bmNoZXJdIExhdW5jaGVyIGFuZCBDb3JlIGlzc3VlcyByZWdhcmRpbmcgLXNob3dTcGxhc2ggIAo8YnI+ODE5Njk6ICBbbGF1bmNoZXJdIExhdW5jaGVyIHNob3VsZCBiZSBpbmRlcGVuZGVudCBvZiBzdGFydHVwLmphciBsb2NhdGlvbiAgCjxicj44MjczOTogIEVYQ0VQVElPTl9BQ0NFU1NfVklPTEFUSU9OIGhvdmVyaW5nIG92ZXIgY2hlY2sgaW4gdGFibGUgd2l0aCBTV1QuQ0hFQ0sgc3R5bGUgIAo8YnI+ODM0MzI6ICBpRnJhbWUgZG9lcyBub3QgcmVuZGVyIGJvcmRlciB3aGVuIGluIFNXVCBCcm93c2VyICAKPGJyPjgzODE5OiAgSlBvcHVwTWVudSBkb2Vzbid0IHdvcmsgY29ycmVjdHkgaW4gYSBTV1QgY29tcG9zaXRlICAKPGJyPjgzOTc4OiAgQ0xhYmVsIHdpdGggc3R5bGUgU1dULkNFTlRFUiBraWxscyB0YWJiaW5nICAKPGJyPjg0MDg1OiAgWFAgc3R5bGUgbm90IHN1cHBvcnQgd2l0aCBCdXR0b24gd2l0aCBTV1QuQVJST1cgIAo8YnI+ODQyMDE6ICBMYWJlbCB0ZXh0IGRvZXNuJ3Qgd3JhcCBjb3JyZWN0bHkgIAo8YnI+ODQzODM6ICBbYnJvd3Nlcl0gY2FuJ3QgbmF2aWdhdGUgdG8gZWNsaXBzZSBidWd6aWxsYSAgCjxicj44NDQwNDogIERpc2FibGVkIGJ1dHRvbiBzdG9wcyBldmVudHMgIAo8YnI+ODQ1ODE6ICBDaGVjayBidXR0b24gc2l6ZSBkb2VzIG5vdCBjaGFuZ2Ugd2hlbiByaWdodCBhbGlnbmVkICAKPGJyPjg0NjAwOiAgcmVzaXppbmcgVHJlZUNvbHVtbiBsZWF2ZXMgY2hlZXNlICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAyMSAtIFR1ZXNkYXkgRmVicnVhcnkgMXN0LCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KPGJyPjQ0MDg6ICBJbWFnZSBQcm9jZXNzaW5nIEFsZ29yaXRoaW1zICgxUFE4UkdUKSAgCjxicj40NDczOiAgRENSIC0gbmVlZCBBUEkgdG8gYmVnaW4vZW5kIGRlZmVyIGxheW91dCAoMUZNR0ZSUCkgIAo8YnI+NDY4MDogIERDUiAtIHRyZWUgYW5kIHRhYmxlIGRvZXMgbm90IG1hdGNoIGl0ZW0gd2hlbiBrZXkgaXMgdHlwZWQgIAo8YnI+MTg2OTk6ICBCdXR0b25zIHdpdGggaW1hZ2VzIGRvbid0IHVzZSB0aGUgWFAgdGhlbWUgIAo8YnI+NTk1MTQ6ICBOZWVkIHN1cHBvcnQgdG8gdW5kZXJsaW5lIHRleHQgd2hlbiB1c2luZyBUZXh0TGF5b3V0IEFQSS4gIAo8YnI+ODA0MTQ6ICBBcnJtTGlzdGVuZXIgZm9yIE1lbnVJdGVtIGdlbmVyYXRlcyBzdWJtZW51IHdpdGggaW52aXNpYmxlIGxhYmxlcyAgCjxicj44MjM0NjogIENMYWJlbCBkaXNhcHBlYXJzIHdoZW4gZ2l2ZW4gU1dULkNFTlRFUiBmbGFnIGluIGNvbnN0cnVjdG9yICAKPGJyPjgzMjUxOiAgSmF2YWRvYyB3YXJuaW5ncyBpbiBsYXRlc3QgYnVpbGRzICAKPGJyPjgzNTQ2OiAgUHJpbnRpbmcgZG9lc24ndCBzZWVtIHRvIHdvcmsgYW55bW9yZSBpbiBsYXRlc3QgaW50ZWdyYXRpb24gYnVpbGQgIAo8YnI+ODM2Njc6ICBFY2xpcHNlIHNwbGFzaHNjcmVlbiBpcyB2ZXJ5IHJ1ZGUgIAo8YnI+ODM2ODM6ICBKYXZhZG9jIG9mIFN0eWxlUmFuZ2UgZG9lcyBub3QgbWVudGlvbiBpdCBzdXBwb3J0cyBTV1QuSVRBTElDICAKPGJyPjgzNjk5OiAgRm9udCByZXNldCB0byBkZWZhdWx0IGFmdGVyIHNjcmVlbiBzYXZlciAgCjxicj44Mzc2NTogIERDUjogYWRkIHN0cmlrZW91dCB0byBUZXh0TGF5b3V0ICAKPGJyPjgzNzY5OiAgSW1hZ2VMb2FkZXIgLSBFeGNlcHRpb24gRm9yIEltYWdlIFNhdmUgIAo8YnI+ODM3OTE6ICBSZXBhaW50IHByb2JsZW1zIGZvciBDb21ibyB1c2luZyBTV1QuU0lNUExFIHN0eWxlICAKPGJyPjgzODM4OiAgZGlmZmVyZW50IHN0eWxlIG9mIGluZGV0ZXJtaW5hbnQgcHJvZ3Jlc3MgYmFyIHJlcXVlc3RlZCAgCjxicj44NDA3NzogIFRhYmxlLnBhY2soKSBleHRlbmRzIGxhc3QgY29sdW1uIHRvIGluY2x1ZGUgc2Nyb2xsIGJhciAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMjAgLSBUdWVzZGF5IEphbnVhcnkgMjV0aCwgMjAwNSA8L2gyPgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxibG9ja3F1b3RlPgpSb3dEYXRhLmV4Y2x1ZGUgYW5kIEdyaWREYXRhLmV4Y2x1ZGUgaGF2ZSBiZWVuIGFkZGVkIHRvIGFsbG93IGFwcGxpY2F0aW9ucyB0byAKc2VsZWN0aXZlbHkgZXhjbHVkZSB3aWRnZXRzIGZyb20gYSBMYXlvdXQgb3BlcmF0aW9uLgo8L2Jsb2NrcXVvdGU+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KPGJyPjQyNjMyOiAgQ2xpcGJvYXJkIGJlY29tZXMgZW1wdHkgYWZ0ZXIgc2hlbGwgY2xvc2VzICAKPGJyPjQ5NDI2OiAgTGF5b3V0cyBzaG91bGQgc3VwcG9ydCBsYXlpbmcgb3V0IG9ubHkgYSBzdWJzZXQgb2YgYSBjb21wb3NpdGUncyBjaGlsZHJlbiAgCjxicj42NDkyMzogIEVDOiBuZWVkIGFwaSB0byBxdWVyeSBmb3IgVHJheSBzdXBwb3J0ICAKPGJyPjc2NzIyOiAgW1JDUF0gW2xhdW5jaGVyXSBhYmlsaXR5IHRvIGdlbmVyYXRlIGV4ZWN1dGFibGUgd2l0aCBzcGVjaWZpYyBpY29uIHJlc291cmNlcyAgCjxicj43OTk0NDogIFRoZSBFY2xpcHNlIGxhdW5jaGVyIHNob3VsZCBnaXZlIHRoZSBzcGxhc2ggc2NyZWVuIHdpbmRvdyBhIHR5cGUgaGludCAgCjxicj44MjAyNjogIFtsYXVuY2hlcl0gZWNsaXBzZSBsYXVuY2hlciBkb2VzIG5vdCBjb25uZWN0IHN0ZG91dCBvZiBqdm0gdG8gY29uc29sZSAgCjxicj44MjQ2OTogIFtsYXVuY2hlcl0gTGF1bmNoZXIgc2hvdWxkIG5vdCBoYXJkIGNvZGUgYSByZWZlcmVuY2UgdG8gb3JnLmVjbGlwc2UuY29yZS5sYXVuY2hlci5NYWluICAKPGJyPjgyNjQwOiAgU2V0dGluZyBzdHlsZSBiaXRzIGJyZWFrcyBTV1QgZW1iZWRkZWQgU3dpbmcgaW4gTWlsZXN0b25lIE00ICAKPGJyPjgyNjU3OiAgSGVscCBmYWlscyB0byBvcGVuICAKPGJyPjgyNjkzOiAgU2ltcGxlIGV4YW1wbGUgc25pcHBldCBmb3IgT3BlbkdMICAKPGJyPjgyODI4OiAgVGFibGUncyBTV1QuRlVMTF9TRUxFQ1RJT04gYnJva2VuIGZvciBlbXB0eSB0YWJsZSBpdGVtcyAgCjxicj44MjgzNzogIEVtYmVkZGluZyBzd2luZyBvbiBzd3QgXyBwcm9ibGVtcyB3aXRoIEpESzEuNC4xICAKPGJyPjgyOTA1OiAgZHJhd0ltYWdlIGRvZXNuJ3QgaG9ub3IgY2xpcCByZWN0ICAKPGJyPjgzMjYyOiAgcnh2dCBwYXN0ZXMgbnVsbCB0ZXJtaW5hdG9yICAKPGJyPjgzMzA1OiAgSmF2YWRvYyBvZiBEaXNwbGF5LmFkZEZpbHRlciBjb3VsZCBiZSBpbXByb3ZlZCAgCjxicj44MzQyNDogIFticm93c2VyXSBjaGVjayBpZiByZXBhcmVudGluZyB3b3JrcyAgCjxicj44MzUzMjogIFticm93c2VyXSBIVFRQUyBsaW5rIGNyYXNoZXMgQnJvd3NlciB3aXRoIE1vemlsbGEgMS43LjUgIAo8YnI+ODM1NDM6ICBhZGQgYWxwaGEgc3VwcG9ydCB0byBHVEsgTWVudUl0ZW0gVGFiSXRlbSBUYWJsZUNvbHVtbiBUcmF5SXRlbSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMTljIC0gVHVlc2RheSBKYW51YXJ5IDE4dGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo8YnI+MjI2NDY6ICBDaGVlc2UgYXBwZWFycyBpbiB0YWJsZSB3aGVuIHVzaW5nIG1vdXNlIHdoZWVsICAKPGJyPjM3NzA0OiAgW3BsYW4gaXRlbV0gU3VwcG9ydCBHVUkgdGVzdCB0b29scyAgCjxicj41MzkyMzogIENoYW5naW5nIHRhYmxlIGZvbnQgY2F1c2VzIHRhYmxlIGdyaWRsaW5lcyB0byBiZSBtaXNhbGlnbmVkLiAgCjxicj43NTA4NzogIHJlZHJhdyBlcnJvcnMgaW4gc2Nyb2xsYWJsZSB0YWJsZSB3aGVuIHJvdyBpcyB0byBoZWlnaHQgIAo8YnI+ODA2MDg6ICBTV1QuZXJyb3IgZG9lcyBub3QgaW5pdGlhbGl6ZSB0aGUgY2F1c2luZyBleGNlcHRpb24uICAKPGJyPjgxODE5OiAgTWlzc2luZyBzY2VuYXJpbyByZXN1bHRzIGZvciBMaW51eCBHVEsgIAo8YnI+ODE5ODc6ICBCSURJOkNoZWNrIGJveCBtYXJrIGlzIGludmVydGVkICAKPGJyPjgyMDY3OiAgQklESTpQcmludGluZyBvZiB0ZXh0IGZpbGVzIGlzIG5vdCByaWdodCBhbGlnbmVkICAKPGJyPjgyNDU0OiAgQklESTpKYXZhIGVkaXRvciBpcyBSVEwgb3JpZW50ZWQgIAo8YnI+ODI0NjY6ICBQcm9ibGVtIGluIGludm9raW5nIEVjbGlwc2UgdXNpbmcgdGVsbmV0ICAKPGJyPjgyNTAxOiAgVGFibGUgc29ydC9yZWRyYXcgcHJvYmxlbSAgCjxicj44MjUzMTogIE1pc3Npbmcgc2VsZWN0aW9uRXZlbnQgd2hlbiBkaXNwb3NpbmcgVHJlZUl0ZW0gIAo8YnI+ODI2NjA6ICBCcm93c2VyIHdpdGhvdXQgc2Nyb2xsIGJhcnMgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDE5IC0gVHVlc2RheSBKYW51YXJ5IDExdGgsIDIwMDUgPC9oMj4KPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8YmxvY2txdW90ZT4KVHJlZUNvbHVtbiAtIHN1cHBvcnQgY3JlYXRpbmcgY29sdW1ucyBpbiBhIHRyZWUgd2lkZ2V0LiBUaGlzIHJlcGxhY2VzIHRoZQplbXVsYXRlZCBUYWJsZVRyZWUgYW5kIGdpdmVzIGFjY2VzcyB0byB0aGUgbmF0aXZlIGxvb2sgYW5kIGZlZWwgb2YgdGhlIHRyZWUuCjxicj4KPGJyPjxiPk5ldyBUcmVlIEFQSTo8L2I+Cjxicj5pbnQgZ2V0R3JpZExpbmVXaWR0aAo8YnI+aW50IGdldEhlYWRlckhlaWdodAo8YnI+Ym9vbGVhbiBnZXRIZWFkZXJWaXNpYmxlCjxicj5UcmVlQ29sdW1uIGdldENvbHVtbiAoaW50IGluZGV4KQo8YnI+aW50IGdldENvbHVtbkNvdW50Cjxicj5UcmVlQ29sdW1uIFtdIGdldENvbHVtbnMKPGJyPmJvb2xlYW4gZ2V0TGluZXNWaXNpYmxlCjxicj52b2lkIHNldExpbmVzVmlzaWJsZSAoYm9vbGVhbiBzaG93KQo8YnI+dm9pZCBzZXRIZWFkZXJWaXNpYmxlIChib29sZWFuIHNob3cpCjxicj52b2lkIHNob3dDb2x1bW4gKFRyZWVDb2x1bW4gY29sdW1uKQo8YnI+Cjxicj48Yj5OZXcgVHJlZUl0ZW0gQVBJOjwvYj4KPGJyPkNvbG9yIGdldEJhY2tncm91bmQgKGludCBpbmRleCkKPGJyPlJlY3RhbmdsZSBnZXRCb3VuZHMgKGludCBpbmRleCkKPGJyPkZvbnQgZ2V0Rm9udCAoaW50IGluZGV4KQo8YnI+Q29sb3IgZ2V0Rm9yZWdyb3VuZCAoaW50IGluZGV4KQo8YnI+SW1hZ2UgZ2V0SW1hZ2UgKGludCBpbmRleCkKPGJyPlJlY3RhbmdsZSBnZXRJbWFnZUJvdW5kcyAoaW50IGluZGV4KQo8YnI+U3RyaW5nIGdldFRleHQgKGludCBpbmRleCkKPGJyPnZvaWQgc2V0QmFja2dyb3VuZCAoaW50IGluZGV4LCBDb2xvciBjb2xvcikKPGJyPnZvaWQgc2V0Rm9udCAoaW50IGluZGV4LCBGb250IGZvbnQpCjxicj52b2lkIHNldEZvcmVncm91bmQgKGludCBpbmRleCwgQ29sb3IgY29sb3IpCjxicj52b2lkIHNldEltYWdlIChJbWFnZSBbXSBpbWFnZXMpCjxicj52b2lkIHNldEltYWdlIChpbnQgaW5kZXgsIEltYWdlIGltYWdlKQo8YnI+dm9pZCBzZXRUZXh0IChTdHJpbmcgW10gc3RyaW5ncykKPGJyPnZvaWQgc2V0VGV4dCAoaW50IGluZGV4LCBTdHJpbmcgc3RyaW5nKQo8L2Jsb2NrcXVvdGU+Cjxicj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo8YnI+NDU5MTogIHByb3Agc2hlZXQgLSB0aGUgZmlyc3QgY29sdW1uIHNlZW1zIHRvIGxlYXZlIHRvbyBtdWNoIHVudXNlZCBzcGFjZSAoMUc3R0lDMykgIAo8YnI+MTM5NTQ6ICBUYWJsZVRyZWUgVHJlZSBpY29ucyBhcmUgbGFyZ2UgIAo8YnI+MjUwMDc6ICBBbGxvdyBmb3IgaWNvbnMgaW4gVGFibGVUcmVlSXRlbXMgaW4gZmlyc3QgY29sdW1uICAKPGJyPjM2ODIyOiAgRENSIC0gVGFibGVUcmVlIGRvZXNuJ3Qgc3VwcG9ydCBkcmFnIGFuZCBkcm9wICAKPGJyPjUyMTQ1OiAgVGFibGVUcmVlIGluY29ycmVjdGx5IGhhbmRsZXMgTGVmdC1BcnJvdyBpbiBzdWJ0cmVlICAKPGJyPjY2MTc5OiAgVGFibGVUcmVlIHdpZGdldCBoYXMgd2VpcmQgKy8tIHNpZ25zIG9uIFdpbmRvd3MgIAo8YnI+NzM2MjI6ICBUYWJsZVRyZWUgcGx1cyBzaWduIGJhY2tncm91bmQgd3JvbmcgY29sb3Igb24gU29sYXJpcyAgCjxicj44MDU5OTogIFNXVCBnZXRzIHdpbmRvdyBvcmlnaW4gZXZlbiBpZiBub2JvZHkgaGFzIGhvb2tlZCBhIG1vdGlvbiBldmVudCAgCjxicj44MDgzMDogIGltcGxlbWVudCBHQy5kcmF3Rm9jdXMgIAo8YnI+ODE2OTU6ICBbTGludXggR1RLXSBTV1QgVGV4dCBkaXNwbGF5cyB0aGUgd3JvbmcgY2hhcmFjdGVycyBpZiBjYWxsIGFkZE1vZGlmeUxpc3RlbmVyICAKPGJyPjgxODkzOiAgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGZyb20gU3R5bGVkVGV4dCBXaWRnZXQgIAo8YnI+ODIxNTY6ICBbbGF1bmNoZXJdIHR5cG8gaW4gZWNsaXBzZUNvbmZpZy5jICAKPGJyPjgyMTYwOiAgW2xhdW5jaGVyXSBlY2xpcHNlVW5pY29kZS5oIG5lZWRzIHRvIGluY2x1ZGUgY3R5cGUuaCAgCjxicj44MjI4MjogIENvbnRyb2wucmVkcmF3KCkgaW52YWxpZGF0ZXMgY2hpbGRyZW4gb24gTGludXgtR1RLICAKPGJyPjgyMzg1OiAgQnJvd3NlciB3aWRnZXQgY2F1c2VzIGNyYXNoIG9yIGZyZWV6ZSB3aGVuIG9wZW5pbmcgVVJMIHdpdGggSmF2YSAyIGFwcGxldHMgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMTggLSBUdWVzZGF5IEphbnVhcnkgNHRoLCAyMDA1IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KODE3NTk6ICBDYW4ndCBzZWxlY3QgdG9vbCBpdGVtcyB3aGVuIHRvb2wgYmFyIGhhcyBhIERyYWdEZXRlY3QgbGlzdGVuZXIgIAo8YnI+NzgyOTU6IFZNIGNyYXNoIGluIG9yZy5lY2xpcHNlLnN3dC5pbnRlcm5hbC5ndGsuT1MuZ3RrX2ZpbGVfY2hvb3Nlcl9kaWFsb2dfbmV3ICAKPGJyPjgwNzU4OiBDb250cm9sRXhhbXBsZSBzaG93aW5nIHN0cmFuZ2UgZXZlbnRzICAKPGJyPjgxMjY1OiBiYWNrZ3JvdW5kIG9mIHRyZWUgaXMgaW5jb3JyZWN0IHdoZW4gZGlzYWJsZWQgIAo8YnI+ODEzOTk6IFBpeGVsIENvcnJ1cHRpb24gY2F1c2VkIGJ5IFRyYWNrZXIgb24gYSBDb21wb3NpdGUgd2l0aCBjaGlsZHJlbiAgCjxicj43ODg1NDogTWVtb3J5IGxlYWsgaW4gQ2xpcGJvYXJkUHJveHkuZ2V0RnVuYygpICAKPGJyPjgxMzk1OiBbTmF2aWdhdG9yXSBDYW5ub3Qgb3BlbiBjb250ZXh0IG1lbnUgb24gTmF2aWdhdG9yIHRoYXQgaXMgaW5pdGlhbGx5IGVtcHR5ICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAxNyAtIFR1ZXNkYXkgRGVjZW1iZXIgMjFzdCwgMjAwNCA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQxMjI3OiAgW1dvcmtiZW5jaF0gU3dpdGNoaW5nIGFwcGxpY2F0aW9ucywgdGhlcmUgaXMgbGFnIGRpc3BsYXlpbmcgdGhlIG1lbnViYXIgIAo8YnI+NjY5NTQ6ICBPcGVuIGV4dGVybmFsIEphdmFEb2Mgb3BlbnMgb24gdHlwZSBpbnN0ZWFkIG9mIG1lbWJlciBbamF2YWRvY10gIAo8YnI+NzkyMTY6ICBbY29uc2lzdGVuY3ldIGF0dGFjaGluZyBhIERyYWdEZXRlY3QgbGlzdGVuZXIgdG8gYSBzYXNoIGFmZmVjdHMgdGhlIHNlbGVjdGlvbiBldmVudCAgCjxicj44MDIxNjogIEtFUk5fUFJPVEVDVElPTl9GQUlMVVJFIGR1ZSB0byBFWENfQkFEX0FDQ0VTUyBvbiBleGl0ICAKPGJyPjgwMjc2OiAgQ0Jhbm5lckxheW91dCBjYWxscyBDb250cm9sLnVwZGF0ZSB0b28gb2Z0ZW4gIAo8YnI+ODA1MTk6ICB1cGRhdGUgcGxhdGZvcm0tbGF1bmNoZXIgc3RydWN0dXJlIHRvIGluY2x1ZGUgYXJjaCAgCjxicj44MDg2NzogIEFQUFNUQVJUSU5HIGN1cnNvciBoYXMgY29sb3VycyByZXZlcnNlZCAgCjxicj44MDkxMTogIFNXVC5TZXREYXRhIGV2ZW50IG5vdCB0aHJvd24gaW4gYWxsIG5lZWRlZCBjYXNlcyAgCjxicj44MDk2NTogIENvbnRyb2xFeGFtcGxlIGRvZXMgbm90IHJlZ2lzdGVyIGNvcnJlY3QgZXZlbnQgIAo8YnI+ODA5NzU6ICBOZWVkIHRvIHVwZGF0ZSBKYXZhZG9jIGZvciAicHVibGljIiBmaWVsZHMgIAo8YnI+ODExMzc6ICBUYWJsZUVkaXRvcnMgc2hpZnRlZCB0byB0aGUgcmlnaHQgd2hlbiB0YWJsZSBoYXMgaW1hZ2UgIAo8YnI+ODExNzU6ICBsYXVuY2hlciBkb2VzIG5vdCBzaG93IHNwbGFzaCBzY3JlZW4gd2hlbiBhbnkgYXJndW1lbnQgaXMgc2V0ICAKPGJyPjgxMjQxOiAgW0p1bml0XSBOUEUgaW4gQ0xhYmVsICAKPGJyPjgxMjgzOiAgW0pVbml0XSBOUEUncyBhbmQgTm8gbW9yZSBjYWxsYmFja3MgZnJvbSBCcm93c2VyIHdoZW4gTU9aSUxMQV9GSVZFX0hPTUUgbm90IHNldCAgCjxicj44MTMzNjogIHVzaW5nIGEgaW5pIGZpbGUgc2VlbXMgdG8gcHJldmVudCBlY2xpcHNlIGZyb20gc3dpdGNoaW5nIHdvcmtzcGFjZSAgCjxicj44MTM1NzogIFRhYmxlQ29sdW1uLnNldFRleHQoIiIpIHJlc3VsdHMgaW4gc2NyZWVuIGNoZWVzZSAgCgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDE2IC0gVHVlc2RheSBEZWNlbWJlciAxNHRoLCAyMDA0IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTIzNzk6ICBDb29sQmFyIGRvZXMgbm90IGJlaGF2ZSBwcm9wZXJseSB3aXRoIENvbWJvIGFzIGl0ZW0gIAo8YnI+Njk2OTQ6ICBsaW51eC1pYTY0LWd0ayBwbGF0Zm9ybSBsYXVuY2hlciBjcmFzaGVzIGltbWVkaWF0ZWx5ICAKPGJyPjcwMzE4OiAgU3VwcG9ydCBmb3IgbXVsdGlwbGUgbGluZXMgaW4gQ0xhYmVsICAKPGJyPjc0MTM4OiAgRHVwbGljYXRlIERMTHMgaW4gd2luMzIgZnJhZ21lbnQgIAo8YnI+NzY4NTU6ICBbUkNQXSBsYXVuY2hlciBzaG91bGQgcmVhZCBhbiBpbmkgZmlsZSAgCjxicj43OTEyODogIFNXVCAzLjEgZG9lcyBub3Qgd29yayBvbiBwcGM2NCAgCjxicj43OTUwNDogIHNoZWxsIG5vdCBvcGVuZWQgaWYgcHJldmlvdXMgc2hlbGwgd2FzIGRpc3Bvc2VkIHdoZW4gYWN0aXZlICAKPGJyPjgwMTYwOiAgUmVncmVzc2lvbjogUHJlc3NpbmcgUmV0dXJuL0VzYyBkb2VzIG5vdCBjbG9zZSBkcm9wIGRvd24gbGlzdCBvZiBlZGl0YWJsZSBjb21ibyAgCjxicj44MDQ4NTogIGdldCBhIGphdmEubGFuZy5VbnNhdGlzZmllZExpbmtFcnJvciBhdCBsYXVuY2ggIAo8YnI+ODA1MDY6ICBbY29uc2lzdGVuY3ldIGZvcmNlQWN0aXZlIGFuZCBzZXRBY3RpdmUgYXJlIGluY29uc2lzdGVudCBhY3Jvc3MgcGxhdGZvcm1zICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAxNSAtIFR1ZXNkYXkgRGVjZW1iZXIgN3RoLCAyMDA0IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNzEwMTogIERDUiBhYmlsaXR5IHRvIHJlY2VpdmUgc2Nyb2xsIGV2ZW50cyAoZS5nLiBzY3JvbGx3aGVlbCkgZnJvbSBTY3JvbGxhYmxlICAKPGJyPjI0NTM4OiAgVGFiSXRlbSBjb250cm9scyBzaG91bGQgdXNlIHRoZSBUYWJGb2xkZXIgdG8gcGFpbnQgdGhlaXIgYmFja2dyb3VuZCB3aGVuIHVzaW5nIFhQIHZpc3VhbCBzdHlsZXMuICAKPGJyPjY4MjEyOiAgTWFjIC0gY2FuJ3QgZHJhZyBmcm9tIFNXVCBhcHBsaWNhdGlvbiB0byBhbm90aGVyIGFwcGxpY2F0aW9uICAKPGJyPjc5NTI3OiAgb3JnLmVjbGlwc2Uuc3d0Lmd0ayogYnVpbGQueG1sIGdhdGhlci5iaW4ucGFydHMgdGFyZ2V0IG5lZWRzIHRvIGNvbGxlY3QgbGlicmFyaWVzIGZyb20gYXJjaGljdGVjdHVyZSBzcGVjaWZpYyBkaXJlY3RvcmllcyB0byBzdXBwb3J0IHNvdXJjZSBidWlsZHMgIAo8YnI+Nzk1NTc6ICBEaXNwbGF5LmdldFNoZWxscygpIG9wdGltaXphdGlvbiAgCjxicj43OTkzNDogIEluY29ycmVjdCBTV1QuRGVhY3RpdmF0ZSByZWNlaXZlZCAgCjxicj44MDEyMDogIENUYWJGb2xkZXIgbGF5b3V0IHB1dHMgdG9wIHJpZ2h0IGl0ZW0gb25lIHBpeGVsIHRvIGZhciB0byB0aGUgcmlnaHQgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDE0IC0gVHVlc2RheSBOb3ZlbWJlciAyOXRoLCAyMDA0IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTY5NzE6ICBMYXlvdXRFeGFtcGxlIG5vdCBiaWcgZW5vdWdoICAKPGJyPjIwMDE4OiAgQ0NvbWJvIG1pc3Npbmcga2V5Ym9hcmQgYWNjZXNzICAKPGJyPjI2ODU5OiAgW2NvbnNpc3RlbmN5XSBFbnN1cmUgQnV0dG9uLnNldEltYWdlKG51bGwpIGlzIGNvbnNpc3RlbnQgYWNyb3NzIGFsbCBwbGF0Zm9ybXMgIAo8YnI+MjY4Nzg6ICBFY2xpcHNlIGRvZXNuJ3QgaW50ZXJhY3Qgd2l0aCBYJ3MgIlNlbGVjdGlvbiBDbGlwYm9hcmQiICAKPGJyPjQ0MjE3OiAgQ2FsbGluZyBDbGlwYm9hcmQgb24gTW90aWYgbm8gbG9uZ2VyIGFjY2VwdHMga2V5L21vdXNlIGV2ZW50cyAgCjxicj40OTA1NzogIEluY29uc2lzdGVuY3kgaW4gbGF5b3V0IGhhbmRsaW5nIGR1cmluZyBzaGVsbC5zZXRWaXNpYmxlICAKPGJyPjYzNDgxOiAgQ2xpcGJvYXJkIGdldEF2YWlsYWJsZVR5cGVzIHJ1bnMgdGhlIGV2ZW50IGxvb3Agb24gTW90aWYgIAo8YnI+NjU0MDY6ICBbY29uc2lzdGVuY3ldIENsaXBib2FyZCBpbmNvbnNpc3RlbmNpZXMgYWNyb3NzIHBsYXRmb3JtcyAgCjxicj42NTU0NTogIERORCBjYW4gaGFuZyBkZXNrdG9wICAKPGJyPjY1NTQ3OiAgW2NvbnNpc3RlbmN5XURORCBpbmNvbnNpc3RlbmNpZXMgIAo8YnI+NjkzMDQ6ICBFQzogZGlzYXBwZWFyaW5nIHRhYmxlIGNvbHVtbiBoZWFkZXJzICAKPGJyPjcyMDMzOiAgW2Jyb3dzZXJdIHN1cHBvcnQgQU1ENjQgKGVhcmx5IGFjY2VzcykgIAo8YnI+NzM5NjU6ICBbTGF5b3V0c10gYWRkIG1hcmdpbkxlZnQsIG1hcmdpblJpZ2h0LCBtYXJnaW5Ub3AgYW5kIG1hcmdpbkJvdHRvbSB0byBHcmlkTGF5b3V0ICAKPGJyPjc4NTQ4OiAgW2NvbnNpc3RlbmN5XSBCdXR0b24gU2VsZWN0aW9uIGZpcmVzIGJlZm9yZSBNb3VzZVVwICAKPGJyPjc4NTU4OiAgW2NvbnNpc3RlbmN5XSBTbGlkZXIgZmlyZXMgdHdvIHNlbGVjdGlvbiBldmVudHMgb24gc2luZ2xlIGNsaWNrICAKPGJyPjc4NTU5OiAgW2NvbnNpc3RlbmN5XSBTbGlkZXIgZmlyZXMgdHdvIFNlbGVjdGlvbiBldmVudHMgYmVmb3JlIE1vdXNlRG93biAgCjxicj43ODU2NDogIFtjb25zaXN0ZW5jeV0gVGFiRm9sZGVyIHRhYiB0cmF2ZXJzYWxzIGRvIG5vdCBmaWxsIGluIGRldGFpbCBmaWVsZCAgCjxicj43ODU2NTogIFtjb25zaXN0ZW5jeV0gVGFiRm9sZGVyIGZpcmVzIHR3byBNZW51RGV0ZWN0IGV2ZW50cyAgCjxicj43ODU2NjogIFtjb25zaXN0ZW5jeV0gVGFibGUgZmlyZXMgdHdvIERlZmF1bHRTZWxlY3Rpb24gZXZlbnRzICAKPGJyPjc4NTY4OiAgW2NvbnNpc3RlbmN5XSBUYWJsZSBmaXJlcyBEZWZhdWx0U2VsZWN0aW9uIGJlZm9yZSBLZXlEb3duICAKPGJyPjc5MTA3OiAgW2NvbnNpc3RlbmN5XSBzZXRJdGVtcyhTdHJpbmdbXSkgd2l0aCBudWxsIGVsZW1lbnRzICAKPGJyPjc5MTg2OiAgW2NvbnNpc3RlbmN5XSBwcmVzc2luZyBFbnRlciBvbiBCdXR0b24gZmlyZXMgTW91c2VVcCBvbiB3aW4zMiBvbmx5ICAKPGJyPjc5MTkxOiAgW2NvbnNpc3RlbmN5XSBCdXR0b24gS2V5VXAtU2VsZWN0aW9uIGRpZmZlcmVuY2VzICAKPGJyPjc5MjEwOiAgW2NvbnNpc3RlbmN5XSBDb21ibyBkb2VzIG5vdCBmaXJlIHNvbWUgS2V5RG93bnMgIAo8YnI+NzkyMTU6ICBbY29uc2lzdGVuY3ldIFByb2dyZXNzQmFyIGRvZXMgbm90IGZpcmUgc29tZSBtb3VzZSBldmVudHMgIAo8YnI+NzkyMjE6ICBbY29uc2lzdGVuY3ldIFRhYkZvbGRlciBkb2VzIG5vdCBmaXJlIHNvbWUgS2V5RG93bnMgIAo8YnI+NzkyMjg6ICBTb2xhcmlzIDggY3Jhc2ggIAo8YnI+NzkyMzc6ICBbY29uc2lzdGVuY3ldIFRleHQgZG9lcyBub3QgZmlyZSBNZW51RGV0ZWN0ICAKPGJyPjc5NDIzOiAgW2NvbnNpc3RlbmN5XSBUYWJGb2xkZXIgZmlyZXMgU2VsZWN0aW9uIGZvciBhbGwgbW5lbW9uaWNzICAKPGJyPjc5NDgxOiAgU2FzaCBubyBsb25nZXIgZHJhZ2dhYmxlIHdoZW4gdG9vIHNtYWxsICAKCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMTMgLSBUdWVzZGF5IE5vdmVtYmVyIDIzcmQsIDIwMDQgPC9oMj4KPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8YmxvY2txdW90ZT4KU3Bpbm5lciAtIGFsbG93IHRoZSB1c2VyIHRvIGVudGVyIGFuZCBtb2RpZnkgbnVtZXJpYyB2YWx1ZXMKPGJyPkdDLnNldExpbmVDYXAgLSBTZXRzIHRoZSByZWNlaXZlcidzIGxpbmUgY2FwIHN0eWxlIHRvIHRoZSBhcmd1bWVudAo8YnI+R0MuZ2V0TGluZUNhcCAtIFJldHVybnMgdGhlIHJlY2VpdmVyJ3MgbGluZSBjYXAgc3R5bGUKPGJyPkdDLnNldGxpbmVKb2luIC0gU2V0cyB0aGUgcmVjZWl2ZXIncyBsaW5lIGpvaW4gc3R5bGUgdG8gdGhlIGFyZ3VtZW50Cjxicj5HQy5nZXRMaW5lSm9pbiAtIFJldHVybnMgdGhlIHJlY2VpdmVyJ3Mgam9pbiBzdHlsZQo8L2Jsb2NrcXVvdGU+Cjxicj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo8YnI+NDg1MzogIEdDLnNldExpbmVTdHlsZSBkb2VzIG5vdCB3b3JrIGlmIHdpZHRoID4gMSAoMUdLWjE4TikgW3BvcnRhYmlsaXR5XSAgCjxicj41NjQ1OiAgRENSOiBOZWVkIHRvIGJlIGFibGUgY3V0IGFuZCBwYXN0ZSBkYXRhIG9uIENsaXBib2FyZCAgCjxicj4xMTQxODogIERDUiAtIE5lZWQgbGluZXN0eWxlIHRvIGFsbG93IGRvdHMgb2YgMSBwaXhlbCAgCjxicj4xNDI5NzogIEFkZCBhIFNwaW5uZXIgd2lkZ2V0IHRvIHRoZSBTV1QgdG9vbGtpdCAgCjxicj4zNDUyMzogIFRleHQgLSBObyBjb250ZXh0IG1lbnUgIAo8YnI+MzUwNDA6ICBQcm9ibGVtcyB3aXRoIFBORyB0cmFuc3BhcmVuY3kgaW4gSW1hZ2UgQ2xhc3MgIAo8YnI+MzgzNTU6ICBJbnZhbGlkIGhhbmRsaW5nIHRyYW5zcGFyZW50IHBpeGVsIGlmIHRoZXJlIGlzIGFub3RoZXIgcGl4ZWwgd2l0aCBzYW1lIFJHQiAgCjxicj4zODQ0MzogIFN1cHBvcnQgR1RLIG9uIFNwYXJjIFNvbGFyaXMgIAo8YnI+NDM2ODQ6ICBTZXR0aW5nIGN1cnNvciB0byBTV1QuQ1VSU09SX0FQUFNUQVJUSU5HIGRvZXNuJ3Qgc2VlbSB0byB3b3JrICAKPGJyPjUyNjM3OiAgTGluZSBTdHlsZXMgb24gR1RLIHZhcnkgZ3JlYXRseSBmcm9tIHRob3NlIG9uIFdpbmRvd3MuICAKPGJyPjYwODE1OiAgSW1hZ2UgdHJhbnNwYXJlbmN5IGRvZXMgbm90IHdvcmsgaW4gdGFibGVzLCBjb2x1bW4gPjAgIAo8YnI+NjcyMzc6ICBETkQgY29weSBhbmQgbGluayBhcmUgYWxsb3dlZCB3aXRoIGRlZmF1bHQgbW91c2UgZ2VzdHVyZSAgCjxicj42ODM1MzogIENvbXBvbmVudHMgaW4gU1dUX0FXVCBhcmUgbm90IGRpc3BsYXllZCBvbiBTb2xhcmlzICAKPGJyPjcwMjE0OiAgWzY0XSBFY2xpcHNlIGRvZXMgbm90IHN0YXJ0IG9uIEFNRDY0LCBTdW4gSjJTRSAxLjQuMiwgU3VTRSBMaW51eCA5LjEgIAo8YnI+NzA5NjY6ICBObyBQb3B1cCBvbiBUaWdlciAgCjxicj43NDc0NDogIEVjbGlwc2UgMy4wLjAgY3Jhc2hlcyBzdWRkZW5seSAgCjxicj43NTQ1MDogIFNXVC1tb3ppbGxhIGlzc3VlICAKPGJyPjc2MDk0OiAgcmVxdWVzdCBmb3IgYXV0b21hdGljIGNoZXZyb24gc3VwcG9ydC4gaW4gY29vbGJhcnMvY29vbGl0ZW1zICAKPGJyPjc3MzIwOiAgSnVuaXQgcGVyZm9ybWFuY2UgW0pVbml0XSAgCjxicj43NzUzNTogIENvbnRyb2wgZXhhbXBsZSBjb29sYmFyIHRhYiB1c2VzIGltYWdlcyBpbiBkcm9wIGRvd24gIAo8YnI+Nzc4MTI6ICBNZW1vcnkgbGVha3MgYW5kIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uIGluIERpc3BsYXkgIAo8YnI+Nzc5ODM6ICBGdW5ueSBiZWhhdmlvdXIgb24gTGludXggR1RLIHdpdGggTWVzc2FnZUJveCB3aXRoICUgY2hhcmFjdGVyICAKPGJyPjc4MTUwOiAgZWNsaXBzZSAzLjF4IGNyYXNocyBvbiBzdGFydHVwICAKPGJyPjc4MjA0OiAgUmVmcmVzaCBwcm9ibGVtIGluIHByb2dyZXNzIHZpZXcgb3IgY29tcGFyZSB2aWV3ICAKPGJyPjc4MjI2OiAgW0pGYWNlXSBJbWFnZUNhY2hlLmdldEltYWdlIGZhaWxpbmcgdG8gcmV0dXJuIGFuIGltYWdlIGZvciBpY28gZmlsZSAocmVncmVzc2lvbikgIAo8YnI+NzgyMzk6ICBMYWJlbCBkb2VzIG5vdCBXcmFwIGNvcnJlY3RseSAgCjxicj43ODMwMTogIENhbid0IG9wZW4gZm9udCBjaG9vc2VyIGRpYWxvZyAgCjxicj43ODQwNzogIFBsYXRmb3JtIGRpZmZlcmVuY2VzIHNldHRpbmcgc2l6ZSB3aGlsZSBzaGVsbCBpcyBtYXhpbWl6ZWQgIAo8YnI+Nzg1NTQ6ICBbY29uc2lzdGVuY3ldIFNjYWxlIHJhcmVseSBmaXJlcyBNZW51RGV0ZWN0ICAKPGJyPjc4NTYyOiAgW3BvcnRhYmlsaXR5XSBTbGlkZXIgc2VsZWN0aW9uIGV2ZW50IGZpcmVzIGJlZm9yZSBNb3VzZURvd24gIAo8YnI+Nzg3MjU6ICBTZXBhcmF0b3IgVG9vbEl0ZW1zIHdpdGggQ29udHJvbHMgZG8gbm90IHdyYXAgc29vbiBlbm91Z2ggIAo8YnI+Nzg3Mjc6ICBUb29sSXRlbXMgb24gYSB3cmFwcGVkIFRvb2xCYXIgZG8gbm90ICJ1bndyYXAiIGNvcnJlY3RseSAgCjxicj43ODg3MzogIENvbWJvIGJveCBwZXJmb3JtYW5jZSBwcm9ibGVtICAKPGJyPjc5MDY0OiAgU3RyYW5nZSBOdWxsUEUgaW4gV2lkZ2V0LnNlbmRFdmVudChpbnQgZXZlbnRUeXBlLCBFdmVudCBldmVudCwgYm9vbGVhbiBzZW5kKSAgCjxicj43OTE5OTogIFVwZGF0ZSBTYXNoRm9ybSB0byByZWNvZ25pemUgU1dULlNNT09USCAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMTIgLSBUdWVzZGF5IE5vdmVtYmVyIDl0aCwgMjAwNCA8L2gyPgo8YnI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KPGJyPjQ4MTE6ICBkJ24nZCBzaG91bGQgbG9nIHJ1bnRpbWUgZXhjZXB0aW9ucyAoMUdKOVBDUSkgIAo8YnI+NDQwMDg6ICBbYnJvd3Nlcl0gQnJvd3NlciBjb21wb25lbnQgZ3JhYnMgZm9jdXMgd2hlbiBsb2FkZWQuICAKPGJyPjU5NzgzOiAgW1dvcmtiZW5jaF0gV29ya2JlbmNoUGFydHMgcmVzaXplZCB0byAoMCwwKSB3aGVuIFNoZWxsIG1pbmltaXplZCAgCjxicj42Njg2NjogIFticm93c2VyXSBKYXZhZG9jIHByZXZpZXcgdXBkYXRlIHZlcnkgc2xvdyAgCjxicj43MTEwNzogIFticm93c2VyXSBjYWxsaW5nIHNldFRleHQgZnJvbSB3aXRoaW4gTG9jYXRpb24uY2hhbmdpbmcgY2FsbGJhY2sgZmFpbHMgYW5kIHJhaXNlcyBhcHBsZSBleGNlcHRpb24gIAo8YnI+NzIyNDQ6ICBQb3N0aW5nIG1vdXNlIGV2ZW50cyBsb2NrcyB1cCBldmVudCBoYW5kbGluZyAgCjxicj43Njc1MDogIFhQIHNjcm9sbGJhcnMgYmVjb21lcyB0ZW1wb3JhbHkgdmlzaWJsZSAuLi4gIAo8YnI+NzY5MzM6ICBNZXNzYWdlQm94IGRvZXMgbm90IGRpc3BsYXkgZGVmYXVsdCB0aXRsZSB3aGVuIGljb24gaXMgc3BlY2lmaWVkICAKPGJyPjc3MTAyOiAgW2Jyb3dzZXJdIGNyYXNoIHdoZW4gdHJ5aW5nIHRvIHVzZSB1bnN1cHBvcnRlZCBNb3ppbGxhIEdUSzEuMiAgCjxicj43NzE5MTogIGJyb2tlbiBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eT8gbmV3IGVycm9yIGluIHBsdWdpbi54bWwgIAo8YnI+Nzc0MzM6ICB1bmRlciBjb25zdHJ1Y3Rpb24gc3Bpbm5lciBub3Qgd29ya2luZyBvbiBXaW5DRSAgCjxicj43NzQ5MDogIHNldHRpbmcgYmFja2dyb3VuZCBvbiBzaW5nbGUgVGFibGVJdGVtIGFsd2F5cyBzaG93cyBncmlkIGxpbmVzICAKPGJyPjc3NDkyOiAgVG9vbEJhciBleGFtcGxlIHRhYiBzaG91bGQgaGF2ZSBpbWFnZSt0ZXh0IGV4YW1wbGUgIAo8YnI+Nzc0OTM6ICBObyBtb3JlIGhhbmRsZXMgZXJyb3Igd2hlbiBydW5uaW5nIHRoZSBCcm93c2VyIGRlbW8gIAo8YnI+Nzc1MTE6ICBidXR0b25zIGRvIG5vdCByZXNpemUgIAo8YnI+Nzc1Mjc6ICBzZXR0aW5nIHRoZSBiYWNrZ3JvdW5kIGNvbG91ciBpbiBvbmUgd2lkZ2V0LCBzZXRzIGl0IGFzIHRoZSBkZWZhdWx0ICAKPGJyPjc3NTMwOiAgU2VsZWN0aW9uIGluIG9wZW4gdHlwZSBkaWFsb2cgZG9lcyBub3Qgd29yayAgCjxicj43NzUzMjogIFZlcnNpb24gbnVtYmVyIGNvZGUgZG9lc24ndCBhY2NvdW50IGZvciBkb3VibGUgZGlnaXRzICAKPGJyPjc3Njc2OiAgVGV4dExheW91dCBkb2Vzbid0IHByb2R1Y2UgcHJvcGVyIHJ1bnMgd2hlbiBuZXdsaW5lcyBwcmVzZW50ICAKPGJyPjc3ODY3OiAgU2V0dGluZyBsYXlvdXQgb24gVGFibGVUcmVlIGluc2lkZSBvZiBhIFNhc2hGb3JtIGNhdXNlcyBpbmNvcnJlY3QgbGF5b3V0ICAKPGJyPjc3OTI2OiAgQ2Fubm90IGNvbXBpbGUgU1dUIGZvciBHVEsgZnJvbSBDVlMgc291cmNlcyAgCjxicj43NzkzNjogIFBsYXRmb3JtIGluY29uc2lzdGVuY3k6IGRyYXdMaW5lKFgsWSxYLFkpIGRvZXMgbm90aGluZyBvbiB0aGUgTWFjICAKPGJyPjc3OTQ4OiAgTnVsbFBvaW50ZXJFeGNlcHRpb24gaW4gQ0xhYmVsLmZpbmRNbmVtb25pYyAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMTEgLSBUdWVzZGF5IE5vdmVtYmVyIDJuZCwgMjAwNCA8L2gyPgo8YnI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTUyMzk6ICBDb29sYmFyIC0gd2hlbiBjaGV2cm9uIGFwcGVhcnMgaGlkZSB0b29sIGljb24gaWYgcGFydGlhbGx5IGRpc3BsYXllZCAgCjxicj4zNDUzNjogIERyb3AtZG93biBhcnJvd3MgKG9uIHRyZWUpIGFyZSBub3QgY2VudGVyZWQgIAo8YnI+NDcxNzg6ICBUcmVlIC0gQ2hhbmdlIGZvbnQgc2l6ZSBhbmQgY2FuIG5vdCBzZWxlY3QgaXRlbXMgIAo8YnI+NDk3MjI6ICBzdXBwb3J0IG1uZW1vbmljcyBvbiBDTGFiZWwgIAo8YnI+NTcwNjg6ICBbYnJvd3Nlcl0gQ3VyaW91cyBiZWhhdmlvdXIgb24gdGFyZ2V0PV9ibGFuayBsaW5rcyAgCjxicj42OTc4MTogIG1heCBTdHlsZWRUZXh0IHdpbmRvdywgZmlyZSBNb3VzZU1vdmUgZXZlbnQgIAo8YnI+NzYzOTE6ICBTV3QuVmlydHVhbCB0YWJsZXMgZG8gbm90IGNhbGxiYWNrIG9uIGdldEl0ZW1zICAKPGJyPjc2NDkwOiAgVk0gY3Jhc2ggcnVubmluZyBVSSB0ZXN0IHN1aXRlcyAgCjxicj43NjU5NjogIENvbXBhcmUgZWRpdG9yIGhhcyBkb3VibGUgc2Nyb2xsIGJhciAgCjxicj43NjYzNTogIEJyb3dzZXIuamF2YSB1c2VzIHByaXZhdGUgTW96aWxsYSBpbnRlcmZhY2VzIHdoZW4gYWx0ZXJuYXRpdmVzIGV4aXN0ICAKPGJyPjc2NzQ4OiAgW2Jyb3dzZXJdIHNldFRleHQgaXNzdWUgb24gTW96aWxsYSAgCjxicj43NjkwNDogIFBvb3IgQ2FudmFzIHNjcm9sbGluZyBwZXJmb3JtYW5jZSAgCjxicj43Njk2MzogIFticm93c2VyXSBCcm93c2VyLmphdmEgc2hvdWxkIG5vdCB1c2UgbnNJU2NyaXB0Q29udGV4dCAgCjxicj43Njk4MzogIFticm93c2VyXSBEb3dubG9hZC5qYXZhIHVzZXMgd3JvbmcgcG9pbnRlciAgCjxicj43Njk5NjogIGNvcnJ1cHRlZCBkaXNwbGF5IG9mIGltYWdlcyBpbiBTV1QgdGFibGUgKE1hY09TIFgpICAKPGJyPjc3MTUzOiAgU1dUIHNoZWxsIHNjcmlwdHMgb3ZlcnJpZGUgZW52aXJvbm1lbnQgdmFyaWFibGVzICAKPGJyPjc3MzQyOiAgZ2V0T2Zmc2V0ICgpIGluIGVtdWxhdGVkIFRleHRMYXlvdXQuamF2YSB3cm9uZyBmb3IgcHJvcG9ydGlvbmFsIGZvbnRzICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAxMCAtIFR1ZXNkYXkgT2N0b2JlciAyNnRoLCAyMDA0IDwvaDI+Cjxicj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NTkzOiAgTmVlZCB0byBoYW5kbGUgUkdCIHRyYW5zcGFyZW50IHBpeGVsIHZhbHVlICgxRzdNODMzKSAgCjxicj40NjE2OiAgR0MuZHJhd0xpbmUoKSBpcyByZWFsbHkgc2xvdyAoMUdBVlNHUCkgIAo8YnI+MjAyNjk6ICBQbGVhc2UgYWRkIGphdmFkb2MgZm9yIENvbXBvc2l0ZSBnZXRDaGlsZHJlbigpIG9yZGVyaW5nICAKPGJyPjIyOTY0OiAgb3JnLmVjbGlwc2Uuc3d0Lm1vdGlmXzIuMC4xIG5vdCByZWFkeSBmb3IgS0RFIDMgIAo8YnI+MjMwMDY6ICBUcmVlIEV4cGFuZCBhbGwgIioiIHNlbmRzIGV4cGFuZCBldmVudCByZWdhcmRsZXNzIG9mIGN1cnJlbnQgc3RhdGUgIAo8YnI+MzEzNzI6ICBzZXRDb250cm9sICAKPGJyPjMzMzY3OiAgW0pVTklUXUxpc3QgZmFpbHMgIAo8YnI+MzQ5MTg6ICBSZXF1ZXN0IGZvciBwbGF0Zm9ybSBTV1QgamFyIGRvd25sb2FkICAKPGJyPjM4NzIxOiAgQ2FudCBzZXRQYXJlbnQoKSB0byBhIGNvbnRyb2wgaW4gR1RLICAKPGJyPjU1OTY0OiAgW1ZpZXdNZ210XSBzcGFjaW5nIGJldHdlZW4gYm9yZGVyIGFuZCB0ZXh0IG9mICJjbGFzc2ljIiB0YWIgc3R5bGUgIAo8YnI+NjM1Nzk6ICBSZW5hbWUgcmVmYWN0b3Jpbmcgd2l6YXJkIGJ1dGNoZXJzIGNsaXBib2FyZCAgCjxicj42ODczMjogIFJlbW92ZSBkZXBlbmRhbmN5IG9uIHBhbmdveGZ0IGxpYnJhcnkgIAo8YnI+NzMxMDA6ICBDcmFzaCB3aGlsZSBydW5uaW5nIGEgSlVuaXQgUGx1Zy1JbiB0ZXN0ICAKPGJyPjc0ODgyOiAgVGV4dExheW91dCBuZWVkcyB0b1N0cmluZygpIE1ldGhvZCAgCjxicj43NTIxODogIERpcmVjdG9yeURpYWxvZyB3aWRnZXQgaGFzIGEgZ3Jvd2luZyBsYWJlbCAgCjxicj43NTU3NzogIEtleWJvYXJkIGZvY3VzIG5vdCBnaXZlbiB0byBzZWxlY3RlZCBlbGVtZW50IGluIHRyZWUgIAo8YnI+NzY1OTU6ICBIYW5nIG9uIHNodXRkb3duICAKPGJyPjc2NjEyOiAgW0VkaXRvck1nbXRdIE9wZW4gV2l0aCA+IFN5c3RlbSBFZGl0b3IgZmFpbHMgYWZ0ZXIgc2V0dGluZyB1cCBGaWxlIEFzc29jaWF0aW9uICAKPGJyPjc2NzA3OiAgR0MgQmFja2dyb3VuZCBhbmQgRm9yZWdyb3VuZCBhcmUgYmxhY2sgIAo8YnI+NzY3MDk6ICBDUiBLZXkgZG93biBhcnJpdmVzIHR3aWNlICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAwOSAtIFR1ZXNkYXkgT2N0b2JlciAxOXRoLCAyMDA0IDwvaDI+CjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPGJsb2NrcXVvdGU+CmJvb2xlYW4gQnJvd3Nlci5leGVjdXRlKFN0cmluZyBzY3JpcHQpIC0gZXhlY3V0ZSB0aGUgc3BlY2lmaWVkIGphdmFzY3JpcHQuIGUuZyB0byBtb2RpZnkgdGhlIERPTSBvZiB0aGUgY3VycmVudCBIVE1MIGRvY3VtZW50CjwvYmxvY2txdW90ZT4KPGJyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ1Mjc6ICBJTUUgbW9kZSBvbiBKIGJveCBvdmVyd3JpdGVzIHNjcm9sbCBiYXIgKDFHOTFNQVApICAKPGJyPjQ3MzU6ICBEQ1I6IEFkZGl0aW9uYWwgUmVnaW9uIGZlYXR1cmVzICgxR0ZRTzRDKSAgCjxicj40Nzk1OiAgUGVyZm9ybWFuY2U6IFN5bmNocm9uaXplciBxdWV1ZSBjcmVhdGlvbiAoMUdJVERNMikgIAo8YnI+NDg0OTogIE11bHRpIFNlbGVjdCBUcmVlIC0gRGlzcG9zaW5nIGxhc3Qgc2VsZWN0ZWQgaXRlbSBzZWxlY3RzICJyYW5kb20iIGl0ZW0gKDFHS1g1VFcpIFtwb3J0YWJpbGl0eV0gIAo8YnI+NzcxODogIGhvcml6b250YWwgc2Nyb2xsOiBEZWVwbHkgbmVzdGVkIGVsZW1lbnRzIGluIGFuIFNXVCBUcmVlIHdpZGdldCBjYW5ub3QgYmUgZHJhZ2dlZCBhbnl3aGVyZSAgCjxicj43NzcyOiAgU1dUIFRyZWUgaW5jb25zaXN0ZW5jeSB3aGVuIGNvbGxhcHNpbmcgYSBtdWx0aS1zZWxlY3RlZCBub2RlICAKPGJyPjEwNzY2OiAgQ29tYm8ucmVtb3ZlQWxsKCkgYmVoYXZpb3VyIGRvZXMgbm90IG1hdGNoIEFQSSBkb2N1bWVudGF0aW9uICAKPGJyPjExNjU3OiAgaW5jb25zaXN0ZW50IFNXVC5OT19GT0NVUyBiZWhhdmlvdXIgIAo8YnI+MTI5ODk6ICBEYXRhIGlucHV0IGluIHRhYmxlcyAgCjxicj4zNTA2MDogIFRyZWUgZG9lcyBub3Qgc2hvdyBmb2N1cyBzZWxlY3Rpb24gIAo8YnI+NTM4ODU6ICBKYXZhIGNvcmUgKGFjY2VzcyB2aW9sYXRpb24pIGV4cGFuZGluZyBhIHRyZWUgIAo8YnI+NTQ2NjU6ICBbYnJvd3Nlcl0gTm8gbW9yZSBoYW5kbGVzIHdoZW4gY3JlYXRlZCBvbiBhIHNlY29uZCB0aHJlYWQgIAo8YnI+NTYwNDc6ICBTV1QgRXhhbXBsZSBMYXVuY2hlciBkb2VzIG5vdCBydW4gc3RhbmRhbG9uZSBhcHBzICAKPGJyPjU4NzMwOiAgdXRpbGl6ZSBuZXcgR3RrRmlsZUNob29zZXIgd2lkZ2V0IG9uY2UgcmVxdWlyZWQgZ3RrIGlzIDIuNC4wICAKPGJyPjYzMTg1OiAgW2Jyb3dzZXJdIEludHJvIGlzc3VlcyB1c2luZyBTYWZhcmkgdmVyc2lvbiBvZiB0aGUgYnJvd3NlciAgCjxicj42ODY0MzogIFticm93c2VyXSBjaGFyYWN0ZXJzIGFyZSBub3QgYWx3YXlzIHR5cGVkIGluIGluIHRleHQgZmllbGQgIAo8YnI+Njg4NzY6ICBTYXNoZXMgc2hvdWxkIHJlc2l6ZSBpbnRlcmFjdGl2ZWx5ICAKPGJyPjcwNzk1OiAgTG9jYXRpb25MaXN0ZW5lciBhbmQgY2hhbmdlZCBldmVudCBpc24ndCBhbHdheXMgY29ycmVjdCAgCjxicj43MDg4MzogIERCQ1M6IElNRSBwcmUtZWRpdCB0ZXh0IHNpemUgbG9va3MgbGlrZSAxMiBwb2ludHMgYWxsIHRoZSB0aW1lICAKPGJyPjcyMDc1OiAgTmF0aXZlIFRhYkZvbGRlciBvbiBQb2NrZXQgUEMgIAo8YnI+NzI0MDE6ICBXcm9uZyBUYWJsZUNvbHVtbiB3aWR0aCBzZXQgd2hlbiBmb250LXN0eWxlIGlzIGJvbGQgIAo8YnI+NzMwNTI6ICBFeGNlcHRpb24gd2hpbGUgY2FsbGluZyBDbGlwYm9hcmQgb2JqZWN0ICAKPGJyPjczMzQ1OiAgVGFibGVUcmVlSXRlbS5zZXRFeHBhbmRlZCBjYXVzZXMgcmVkcmF3IHdoaWNoIGNhdXNlcyBmbGlja2VyaW5nICAKPGJyPjczODcxOiAgW0tleUJpbmRpbmdzXSBOdWxsUG9pbnRlckV4Y2VwdGlvbiB3aGlsZSBydW5uaW5nIFVpVGVzdFN1aXRlICAKPGJyPjc0NjY2OiAgU3RyaW5nIGN1dCBvZmYgaW4gTmV3IEphdmEgSW50ZXJmYWNlIHdpemFyZCAgCjxicj43NTE2ODogIERlYWRsb2NrZWQgRWNsaXBzZSAgCjxicj43NTQ1MTogIHNldEJhY2tncm91bmQoaW5kZXgsIGNvbG9yKSBkb2VzIG5vdCBzZXQgY29sb3Igd2hlbiB0YWJsZWl0ZW0gaXMgaW4gYSBUYWJsZSAgCjxicj43NTY3NTogIFticm93c2VyXSBzZXRUZXh0L3NldFVybCBjcmFzaGVzIHdoZW4gY2FsbGVkIGZyb20gbG9jYXRpb24uY2hhbmdpbmcgIAo8YnI+NzU3Mzk6ICBWYXJpYW50IGhhcyBubyB0b1N0cmluZygpICAKPGJyPjc1NzUzOiAgU1dULk5PX0JBQ0tHUk9VTkQgbm90IHdvcmtpbmcgb24gTGludXggR1RLICAKPGJyPjc1OTA0OiAgQ2FuIG5vdCBjcmVhdGUgbGF1bmNoIGNvbmZpZ3VyYXRpb25zIGZyb20gdGhlIGRpYWxvZy4gIAo8YnI+NzU5MDY6ICBNdWx0aXBsZSBmaWxlIHR5cGUgZmlsdGVycyBicm9rZW4gaW4gZmlsZSBjaG9vc2VyICAKPGJyPjc1OTQ3OiAgSW5wdXRTdHJlYW1zIG5vdCBjbG9zZWQgaW4gU1dUIGV4YW1wbGVzICAKPGJyPjc2MDM0OiAgRXhjZXNzaXZlIEZsaWNrZXIgb24gcmVzaXppbmcgRnJhbWUgcmV0dXJuZWQgYnkgU1dUX0FXVCAgCjxicj43NjEwMjogIHBvY2tldCBwYyAtIGNoYW5nZSBvZiBiZWhhdmlvdXIgaW4gU2hlbGwgbGF5b3V0IHNpbmNlIDMuMC4xICAKPGJyPjc2MTg1OiAgW2Jyb3dzZXJdIGludmVzdGlnYXRlIHdheXMgdG8gY29tbXVuaWNhdGUgYmV0d2VlbiBqYXZhIGNvZGUgYW5kIGJyb3dzZXIgY29udGVudCAgCjxicj43NjE5NTogIFN5bmNocm9uaXplci5ydW5Bc3luY01lc3NhZ2VzIG9ubHkgcnVucyB0aGUgZmlyc3QgcnVubmFibGUgIAo8YnI+NzYzMjA6ICBydW5uaW5nIG91dCBvZiBtZW1vcnkgYW5kIFZNIGNyYXNoaW5nICAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMDggLSBUdWVzZGF5IE9jdG9iZXIgNXRoLCAyMDA0IDwvaDI+CjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPGJsb2NrcXVvdGU+CkdyaWREYXRhLm1pbmltdW1XaWR0aCAtIG1pbmltdW0gd2lkdGggZm9yIGR5bmFtaWNhbGx5IHNpemVkIGNvbnRyb2xzCjxicj5HcmlkRGF0YS5taW5pbXVtSGVpZ2h0IC0gbWluaW11bSBoZWlnaHQgZm9yIGR5bmFtaWNhbGx5IHNpemVkIGNvbnRyb2xzCjxicj5Db21iby5hZGRWZXJpZnlMaXN0ZW5lciAtIGFkZCB2ZXJpZnkgbGlzdGVuZXIKPGJyPkNvbWJvLnJlbW92ZVZlcmlmeUxpc3RlbmVyIC0gcmVtb3ZlIHZlcmlmeSBsaXN0ZW5lcgo8L2Jsb2NrcXVvdGU+Cjxicj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NzA0OiAgRm9jdXMgbm90IGdpdmVuIHRvIHByb2plY3QgbmFtZSBmaWVsZCBpbiB3aXphcmQgKDFHRVY4OEgpICAKPGJyPjQ4MDY6ICBzZXRSZWRyYXcoKSBuZXN0aW5nIGJlaGF2aW91ciBzaG91bGQgYmUgZG9jdW1lbnRlZCAoMUdKNFpXQikgIAo8YnI+MTA1MDU6ICBJbXBsZW1lbnQgVmVyaWZ5IGxpc3RlbmVyIGZvciBDb21ibyBvbiBQaG90b24gIAo8YnI+MzA4MDQ6ICBEQ1IgLSBHcmlkTGF5b3V0IHNob3VsZCBub3QgdHJlYXQgd2lkdGgvaGVpZ2h0IGhpbnQgYXMgbWludW11bSBzaXplIHdoZW4gZ3JhYi9maWxsIGlzIHNwZWNpZmllZCAgCjxicj40MzM5NjogIENvbWJvIGRvZXMgbm90IGZpcmUgU2VsZWN0aW9uTGlzdGVuZXIgIAo8YnI+NDgyNzI6ICBwb2NrZXQgcGMgLSBnZXN0dXJlIGVyYXNlcyBjdXJyZW50IHRleHQgc2VsZWN0aW9uICAKPGJyPjU4MTg1OiAgRWNsaXBzZSBmYWlscyB0byBsb2FkIG9sZHN0eWxlIEJNUCBmaWxlcyAgCjxicj42NDc3MDogIFticm93c2VyXSBMb3NlIE1vdXNlIE1vdmVzL0VudGVyL0V4aXRzICAKPGJyPjY0ODAxOiAgW2Jyb3dzZXJdIGJyb3dzZXIgc2hvd3MgZGlzYWJsZWQgIAo8YnI+NjY4NTM6ICBDVGFiRm9sZGVyIG5hdmlnYXRpb24tY29udHJvbCBpc3N1ZXMgIAo8YnI+NzQwMjU6ICBTV1QgQnJvd3NlciB3aXRoIG5vIFVSTCBzdG9wcyBhbnkgbW91c2UgbW92ZSBldmVudCAgCjxicj43NDI3NTogIFNXVC5PTl9UT1AgYW5kIFNXVC5NSU58U1dULk1BWCBhcmUgbXV0dWFsbHkgZWNsdXNpdmUgIAo8YnI+NzQ3MzY6ICBQbGVhc2UgcHJvdmlkZSBzb21lIHdheSB0byBkZXRlcm1pbmUgdGhlIHN0YXRlIG9mIGtleXMgaW4gdGhlIFRyYWNrZXIgZXZlbnQgbG9vcCBhbmQgcHJvdmlkZSBub3RpZmljYXRpb25zIHdoZW4gdGhleSBjaGFuZ2UgIAo8YnI+NzUxNjk6ICBbU3R5bGVkVGV4dF0gc2V0U3R5bGVSYW5nZXMoKSBzaG93cyBkaWZmZXJlbnQgcmVzdWx0IHdoZW4gU3R5bGVSYW5nZXMgYXJlIHNvcnRlZCBkaWZmZXJlbnRseSAgCjxicj43NTIxOTogIEZpbGUgb3BlbiBkaWFsb2cgZG9lcyBub3QgaGFuZGxlIGZpbHRlcnMgIAo8YnI+NzUyNjg6ICBzbmlwcGV0IDIgIAo8YnI+NzUzMTg6ICBbV29ya3NwYWNlTGF1bmNoZXJdIFdvcmtzcGFjZSBsb2NhdGlvbiBjb25maXJtYXRpb24gZGlhbG9nIGJveCB3b250IHRha2UgZm9jdXMgIAo8YnI+NzU0MDQ6ICBDb250cm9sRXhhbXBsZSBzbGlkZXIgdGFiIGdyYWJzIG1vdXNlICAKPGJyPjc1NTIxOiAgRWNsaXBzZSAzLjFNMiBjcmFzaGVzIHdoZW4gc29mdHdhcmUgdXBkYXRlIGlzIHJ1biAgCjxicj43NTU2OTogIE9wZW5HTCBTV1QgRXhhbXBsZXMgY29tcGlsZSBlcnJvciB3aXRoIHNldEN1cnJlbnQgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDA3IC0gVHVlc2RheSBTZXB0ZW1iZXIgMjh0aCwgMjAwNCA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjExOTE1OiAgUmVkcmF3IHByb2JsZW0gIAo8YnI+MjA5Njg6ICBqYXZhZG9jIGJhc2hpbmcgZGlkIG5vdCBleHRlbmQgdG8gcHJvdGVjdGVkIG1ldGhvZHMgIAo8YnI+MjIyNjQ6ICBPTEUgd2ViIGJyb3dzZXIgZXhhbXBsZSBmb3Igc3d0IGhhcyBjb21waWxlciB3YXJuaW5ncyAgCjxicj4yNDQwMjogIE9MRSBwYXJ0IGhhdmUgYSBhY2Nlc3MgdmlvbGF0aW9uIGV4Y2VwdGlvbiAgCjxicj42MzIyNDogIENoZXZyb24gaW4gdGhlIGNvb2xiYXIgIAo8YnI+NjYzOTI6ICBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaW4gVGFibGUgIAo8YnI+NjgyNjc6ICBEcmFnJkRyb3AgSFRNTFRyYW5zZmVyIGltcGxlbWVudGF0aW9uIHJlcXVlc3QgIAo8YnI+NjgzMDE6ICBDbG9zZSBidXR0b24gb24gQ3RhYmZvbGRlciBub3QgZHJhd24gcHJvcHJlbHkgIAo8YnI+NzIzOTk6ICBQcm9ncmFtIGludGVncmF0aW9uIHdpdGggS0RFICAKPGJyPjczODEyOiAgVGFibGVDb2x1bW4uZ2V0V2lkdGgoKSByZXR1cm5zIDAgb24gZ3RrICAKPGJyPjc0MDEwOiAgRGlzcGxheS5zZXRTeW5jaHJvbml6ZXIsIHJlYWRBbmREaXNwYXRjaCBtYXkgdGhyb3cgRVJST1JfRkFJTEVEX0VYRUMgIAo8YnI+NzQyNDE6ICBbRE5EXSBEcm9wIFRhcmdldCBUcmVlSXRlbSBub3Qgc2VsZWN0ZWQgd2hlbiBGb250IHdhcyBzZXQgIAo8YnI+NzQzOTk6ICBbQ1RhYkZvbGRlcl0gV2lkZ2V0IERpc3Bvc2VkIFNXVEV4Y2VwdGlvbiB3aGVuIGNsb3NpbmcgQXBwbGljYXRpb24gd2l0aCBvcGVuZWQgVGFiLUNob29zZXIgIAo8YnI+NzQ0MDg6ICBEaWFsb2dzIG9wZW4gYXQgYW4gaW5jcmVkaWJseSBzbWFsbCBzaXplICAKPGJyPjc0NjgyOiAgW1ByZWZlcmVuY2VzXSBXaWRnZXQgZGlzcG9zZWQgd2hpbGUgY2hhbmdpbmcgdGhlIHdvcmtiZW5jaCdzIGNvbG9ycyBhbmQgZm9udHMgIAo8YnI+NzUwOTQ6ICBXb3JrYXJvdW5kIHRvIGJyaW5nIHVwIGV4aXN0aW5nIGFwcGxpY2F0aW9uIGluc3RhbmNlIG9uIFBvY2tldCBQQyAKCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMDYgLSBUdWVzZGF5IFNlcHRlbWJlciAyMXRoLCAyMDA0IDwvaDI+CjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDYwNjogIFRleHQuY29tcHV0ZVRyaW0gZG9lc24ndCB3b3JrICgxRzhXNVJOKSAgCjxicj4zNzAyOTogIERpc3BsYXkuZ2V0Rm9jdXNDb250cm9sKCkgc2hvdWxkIGFuc3dlciBuZXcgZm9jdXMgd2lkZ2V0IGluIGZvY3VzIG91dCBldmVudCAgCjxicj40MTMzOTogIG9yZy5lY2xpcHNlLnN3dC5sYXlvdXQuRm9ybURhdGEgbmVlZHMgdG9TdHJpbmcoKSAgCjxicj40Mjg2NzogIENvbWJvIC0gQ3VzdG9tIFBvcFVwIG5vdCBkaXNwbGF5ZWQgcHJvcGVybHkgIAo8YnI+NTI5NDc6ICBDaGVlc2Ugd2l0aCBUb29sYmFyIG9uIHBhcmVudCB3aXRoIFNXVC5OT19CQUNLR1JPVU5EICAKPGJyPjU4MTAzOiAgW2Jyb3dzZXJdIGV4cG9zZSBjaHJvbWUgcmVxdWlyZWQgZm9yIG5ldyBicm93c2VyICAKPGJyPjYwOTc1OiAgW2Jyb3dzZXJdIGNhbid0IGRvd25sb2FkIGZpbGVzIHdpdGggbW96aWxsYSAgCjxicj42Nzg5ODogIFZNIGNyYXNoIHdoZW4gcmVzdGFydGluZyBFY2xpcHNlICAKPGJyPjY4MjkyOiAgW0ltcG9ydC9FeHBvcnRdIEltcG9ydC9FeHBvcnQgZGlhbG9ncyBjb25mdXNlZCBieSAiU2VsZWN0IFR5cGVzLi4uIiAgCjxicj42ODQxODogIFNXVCBJbmNvbnNpc3RlbmNpZXMgd2l0aCBzdWJjbGFzc2luZyBiZXR3ZWVuIHBsYXRmb3JtcyAgCjxicj42ODU0NTogIENhcmV0IGJsaW5rIHJhdGUgaXMgbm90IG5hdGl2ZSAgCjxicj42ODg3NzogIFNwZWMgZm9yIE9sZUNsaWVudFNpdGUgbWVudGlvbnMgdGhlIHdyb25nIGVycm9yICAKPGJyPjY5NzIxOiAgQ29udHJvbCtiYWNrc3BhY2Uga2V5IGNvbWJpbmF0aW9uIGRvZXMgbm90IHdvcmsgaW4gVGV4dCB3aWRnZXRzICAKPGJyPjcxOTc1OiAgTmV3bHkgb3BlbiBzaGVsbCBkb2VzIG5vdCBkcmF3IGl0cyBjb250ZW50IHVudGlsIHJlc2l6ZWQgKFdpbmRvd3MgZ2l2ZXMgZXh0cmEgcmVzaXplIGNhbGxiYWNrKSAgCjxicj43MjIxNzogIENUYWJGb2xkZXIgc2hvdWxkIGhpZGUgdGFicyBpbiBMUlUgb3JkZXIgIAo8YnI+NzM3MTc6ICBCdXR0b24uY29tcHV0ZVNpemUgZ2l2ZXMgZGlmZmVyZW50IHJlc3VsdHMgb24gTGludXgtR1RLIGFuZCBMaW51eC1Nb3RpZiAgCjxicj43MzcyNTogIFtCcm93c2VyXSBTV1RFeGNlcHRpb24gd2hlbiByZXNpemluZyBDVGFiIGNvbnRhaW5pbmcgQnJvd3NlciAgCjxicj43MzczMDogIEJ1dHRvbi5jb21wdXRlU2l6ZSBkZWZpbml0aW9uIG9uIE1hYyBkb2VzIG5vdCBtYXRjaCBvdGhlciBwbGF0Zm9ybXMgIAo8YnI+NzM3MzQ6ICBMb3dlci9yaWdodCBlZGdlIG9mIENhcmJvbiBTY2FsZSB3aWRnZXQgbm90IHNlbGVjdGFibGUgd2l0aCBtb3VzZSAgCjxicj43Mzc1NzogIEVtcHR5IGJ1dHRvbiBoYXMgZGlmZmVyZW50IGhlaWdodCBmcm9tIG9uZSB3aXRoIHRleHQgIAo8YnI+NzQxMTE6ICBlbnVtIGlzIG5vIGxvbmdlciBhIHZhbGlkIHZhcmlhYmxlIG5hbWUgIAo8YnI+NzQxNjk6ICBEaXJlY3RvcnlEaWFsb2cgd2lkZ2V0IGRvZXMgbm90IGFsbG93IHJlc2l6ZSB0byBzbWFsbGVyIHdpZHRoICAKPGJyPjc0MjY4OiAgZGVwcmVjYXRlZCBtZXRob2RzIGluIFNXVCBzYW1wbGVzICAKCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMDUgLSBUdWVzZGF5IFNlcHRlbWJlciAxNHRoLCAyMDA0IDwvaDI+CjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPGJsb2NrcXVvdGU+CkNUYWJGb2xkZXIuc2V0TVJVVmlzaWJsZShib29sZWFuKSAtIFNob3cgb25seSB0aGUgbW9zdCByZWNlbnRseSBzZWxlY3RlZCB0YWJzIGlmIHRoZXJlIGlzIG5vdCBlbm91Z2ggcm9vbSB0byBzaG93IGFsbCB0YWJzCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KOTIxMTogIEdQIC0gVk0gY3Jhc2ggaW4gS0RFLktNaW1lVHlwZV9hbGxNaW1lVHlwZXMgIAo8YnI+OTg2NjogIEdyaWRMYXlvdXQgZG9lcyBub3QgaGFuZGxlIHdyYXBwZWQgTGFiZWwgcHJvcGVybHkgIAo8YnI+MzkyMDc6ICBDdXQgYW5kIHBhc3RlIGRvZXMgbm90IHdvcmsgY29ycmVjdGx5IChvbiBhIDIgcHJvY2Vzc29yIG0uLi4gIAo8YnI+NDcxODQ6ICBNUyBXb3JkIGNhbiBub3QgYmUgcGFzdGVkIG9uIGNsaXBib2FyZCBpbiBXaW5kb3dzIDk4ICAKPGJyPjQ5NzI2OiAgW1dvcmtiZW5jaF0gV2VpcmQgSmF2YSBwZXJzcGVjdGl2ZSBpY29uIGluIGFjdGlvbiBiYXIgIAo8YnI+NTc1MjU6ICBbS2V5QmluZGluZ3NdIGtleWJpbmRpbmcgZm9yIEN1dCBkb2Vzbid0IHdvcmsgIAo8YnI+NTkyMDU6ICBEQkNTOkNhbiBub3QgZHJvcCBhbmQgZHJhZyBEQkNTIG5hbWUgZmlsZSBmcm9tIG91dHNpZGUgZWMuLi4gIAo8YnI+NjE4Mjc6ICAoQkJBV1QpIGdldEltYWdlRGF0YSgpIHdvcmtzIGluY29ycmVjdGx5IG9uIFBob3RvbiAgCjxicj42NDYwNzogIEdDLmRyYXdSb3VuZFJlY3RhbmdsZS9HQy5maWxsUm91bmRSZWN0YW5nbGUgIAo8YnI+NjYyODU6ICBQcm9qZWN0aW9uVmlld2VyLmNvcHlUb0NsaXBib2FyZCBjcmFzaCB3aGlsZSBDdHJsK1gsIEN0cmwuLi4gIAo8YnI+NzAyOTk6ICBFY2xpcHNlIGRlYWQgc2xvdyBvbiBvbmUgc3lzdGVtLCBub3JtYWwgb24gb3RoZXIgIAo8YnI+NzA3ODA6ICBUYWJsZSBSZWRyYXcgZnJlZXplcyB0aGUgVGFibGUgSGVhZGVycyBvbiBDRSAgCjxicj43MTE0NjogIFtCcm93c2VyXSBCcm93c2VyIHdpZGdldCBzaG91bGQgYWxsb3cgdG8gaGlkZSAzRCBib3JkZXIgIAo8YnI+NzEzMDM6ICBCSURJIGlzc3VlIGluIFZhcmlhYmxlcyB2aWV3ICAKPGJyPjcxOTY2OiAgQ2xhcmlmeSBDb21iby9Db21wb3NpdGUvU2Nyb2xsYWJsZSBiZWhhdmlvciAgCjxicj43MjkyOTogIFRhYmxlQ29sdW1uIHdpZHRocyBpZ25vcmVkIGluIFRhYmxlIHdpZHRoIGNhbGN1bGF0aW9uICAKPGJyPjczMDQ2OiAgVW5zYXRpc2ZpZWRMaW5rRXJyb3IgamF3dC5kbGwgYWxyZWFkeSBsb2FkZWQgaW4gYW5vdGhlciBjLi4uICAKPGJyPjczNDMyOiAgVGV4dGxheW91dCBkb2VzIG5vdCByZW5kZXIgbXVsdGlsaW5lIHRleHQgY29ycmVjdGx5ICAKPGJyPjczNjk4OiAgQ29udHJvbC5pc1Zpc2libGUoKSByZXR1cm5zIGluY29ycmVjdCB2YWx1ZSBmb3IgY2hpbGQgU2hlbGwgIAo8YnI+NzM3MzU6ICBDYXJib24gdmVydGljYWwgU2NhbGUgd2lkZ2V0IGhhcyB0b3AvYm90dG9tIHJldmVyc2VkIGZyb20uLi4gIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDA0IC0gVHVlc2RheSBBdWd1c3QgMzEsIDIwMDQgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozOTkyNzogIE1hY09TWCBRdWFydHogZm9udCBzbW9vdGhpbmcgbm90IHdvcmtpbmcgcHJvcGVybHkgZm9yIExDRC4uLiAgCjxicj40NjI2ODogIFticm93c2VyXSBjYWxsaW5nIG11bHRpcGxlIHRpbWVzIHNldFRleHQgd2l0aG91dCBydW5uaW5nIC4uLiAgCjxicj40NzU0OTogIEdQRiBpbiBYdFNldFZhbHVlcyBvbiBNNSAgCjxicj40ODg4NDogIERpYWxvZyAob3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuQ29sb3JEaWFsb2cgYW5kIG9yZy5lY2xpcC4uLiAgCjxicj41MTEwODogIHNldEFwcE5hbWUoKSBzaG91bGQgdXBkYXRlIGFwcGxpY2F0aW9uIG1lbnUgdGl0bGUuICAKPGJyPjUxNzQxOiAgU2hlbGwgbm90IGJlY29taW5nICJhY3RpdmUiICAKPGJyPjU3MTg4OiAgTGFiZWwgd2lkZ2V0IGNhbiBnZXQgZm9jdXMuICAKPGJyPjYxMzg0OiAgW2Jyb3dzZXJdIHN1cHBvcnQgbW96aWxsYSAxLjcgIAo8YnI+NjE4OTM6ICBjb250cm9sTW92ZWQgZXZlbnQgZmlyZWQgYnkgQ29udHJvbC5zZXRCb3VuZHMoKSBvbiBXaW5kb3cuLi4gIAo8YnI+NjQyMTU6ICBbRm9udHNdIENhbm5vdCBzZXQgZm9udHMgd2hpY2ggaGF2ZSBhIGJsYW5rIGluIHRoZWlyIG5hbWUgIAo8YnI+Njc1NTY6ICBbYnJvd3Nlcl0gVEVYVFJFTCBpbiBsaWJzd3QtbW96aWxsYS1ndGstMzA1OC5zbyAgCjxicj43MDA3NzogIFt0eXBpbmddIENvcHkvcGFzdGUgZG9lc24ndCB3b3JrIG9jY2FzaW9uYWxseSAgCjxicj43MTE4MDogIFByb2ZpbGluZyBsYXVuY2ggY29uZmlndXJhdGlvbjogTWluaW11bSB3aWR0aCBzaG91bGQgYmUgcy4uLiAgCjxicj43MjA0MDogIEFjdGl2ZVggQWNjZXNzaWJpbGl0eSAgCjxicj43MjIyMzogIEFkZCBvcmcuZWNsaXBzZS5zd3QuY3VzdG9tLlNULlNFTEVDVF9BTEwgIAo8YnI+NzI3NTA6ICAiUHJvZ3JhbS5maW5kUHJvZ3JhbSgpIiBkb2VzIG5vdCByZXR1cm4gbnVsbCBmb3IgYW4gZXh0ZW4uLi4gIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjEgMDAzIC0gVHVlc2RheSBBdWd1c3QgMjQsIDIwMDQgPC9oMj4KPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo8YnI+NTI1NDg6ICBQb2NrZXRQQyBhbmQgZVNXVCBleGFtcGxlIHByb2JsZW1zICAKPGJyPjYzNzkzOiAgW2VuY29kaW5nXSBEQkNTOiBzb21lIERCQ1MgaXMgZGlzcGxheWVkIGFzIGRvdCBvbiBkZWZhdWx0Li4uICAKPGJyPjY3MDYxOiAgW0Jyb3dzZXJdIEJsYW5rIHBhZ2Ugd2hlbiBvcGVuaW5nIHBhZ2Ugd2l0aCBGbGFzaCAgCjxicj42Nzc0NjogIGludmVzdGlnYXRlIG1ha2luZyBlbXVsYXRlZCBUYWJsZSBhbmQgVHJlZSBhbHdheXMgcG9zdCBzZS4uLiAgCjxicj42OTQ5NTogIFNwbGFzaCBzY3JlZW4gYXBwZWFycyBncmVlbiBvbiBBSVggIAo8YnI+NzA3Nzk6ICBbYnJvd3Nlcl0gTW96aWxsYSAxLjYgQnJvd3NlciBwcm9ibGVtIDogW1Vua25vd24gbW96aWxsYSAuLi4gIAo8YnI+NzA5MjU6ICBMYXlvdXQgY2VsbHMgYXJlIGluZmluZXRseSBsYXJnZSAgCjxicj43MDk0OTogICdVbnN1cHBvcnRlZCBjb2xvciBkZXB0aCcgZXJyb3Igb24gTGludXggIAo8YnI+NzE3MTE6ICBHdGsgLSBDaGVja2JveC9SYWRpb2JveCBzZXRMb2NhdGlvbiBCdWcgIAo8YnI+NzIxMjM6ICBQYXRjaGVzIGZvciAzLjAgbGF1bmNoZXIgY3Jvc3MtYnVpbGRzICAKPGJyPjcyMjA2OiAgU3R5bGVkVGV4dCBKYXZhZG9jIG5lZWRzIGl0YWxpYyBkb2MuICAKPGJyPjcyMzQyOiAgTW91c2VMaXN0ZW5lciBiZWhhdmluZyBpbmNvcnJlY3RseSB3aGVuIGF0dGFjaGVkIHRvIEJ1dHRvbiAgCjxicj43MjM0MzogIFNoZWxsIGRvZXNuJ3QgbWF4aW1pemUgIAo8YnI+NzIzNDU6ICBUZXh0IHdpZGVyIHRoYW4gbm9ybWFsIGluIHRvb2xpdGVtIGlmIGFtcGVyc2FuZCAoJikgdXNlZCAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMSAwMDIgLSBUdWVzZGF5IEF1Z3VzdCAxNywgMjAwNCA8L2gyPgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxibG9ja3F1b3RlPgpTaGVsbC5nZXRNaW5pbXVtU2l6ZSAtIFJldHVybnMgYSBwb2ludCBkZXNjcmliaW5nIHRoZSBtaW5pbXVtIHJlY2VpdmVyJ3Mgc2l6ZQo8YnI+U2hlbGwuc2V0TWluaW11bVNpemUoaW50LCBpbnQpIC0gU2V0cyB0aGUgcmVjZWl2ZXIncyBtaW5pbXVtIHNpemUKPGJyPlNoZWxsLnNldE1pbmltdW1TaXplKFBvaW50KSAtIFNldHMgdGhlIHJlY2VpdmVyJ3MgbWluaW11bSBzaXplCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDQ3OTogIGdldEZvY3VzQ29udHJvbCBpbnNpZGUgRm9jdXNPdXQgZXZlbnQgaW5jb25zaXN0ZW50ICgxRk1JVElFKSAgCjxicj40NjA2OiAgIFRleHQuY29tcHV0ZVRyaW0gZG9lc24ndCB3b3JrICgxRzhXNVJOKSAgCjxicj41MDE2OiAgIENvbnRyb2xsaW5nIHNoZWxsIG1pbiBzaXplIGR1cmluZyByZXNpemUgIAo8YnI+MzY5OTc6ICBEQ1I6IEFjY2Vzc2liaWxpdHkgb24gR1RLICAKPGJyPjM5ODYzOiAgVGFibGVWaWV3ZXIgLyBjZWxsTW9kaWZpZXIgLyBDb21ib0JveENlbGxFZGl0b3I6IG5ldyB2YWx1Li4uICAKPGJyPjYyNDM1OiAgQ2hpbmVzZSBmb250IHN1YnN0aXR1dGlvbiBkZWZhdWx0cyB0byBLYWkgIAo8YnI+NjM1NzE6ICBUZXh0TGF5b3V0OiBmb250IHN1YnN0aXR1dGlvbiBzdXBwb3J0ICAKPGJyPjY0MjY2OiAgYWNjZXB0IGltYWdlZGF0YXMgb2YgZGVwdGggb3RoZXIgdGhhbiAxIGFzIGEgbWFzayAgCjxicj42NTc3MjogIFJlY2VpdmluZyBkdXBsaWNhdGUga2V5IGV2ZW50cyBwZXIgbm9uLXByaW50YWJsZSBrZXkgW0JCQVdUXSAgCjxicj42NjQzMzogIE5lZWQga2V5Ym9hcmQgc3VwcG9ydCBmb3IgTmVzdGVkIFRhYmZvbGRlciBUcmF2ZXJzYWwgIAo8YnI+NjgyNzM6ICB0YWJsZXRyZWUgcGx1cy9taW51cyBub3QgdmlzaWJsZSBpbiBIaWdoIENvbnRyYXN0IE1vZGUgIAo8YnI+Njk0MTA6ICBUVlQzLjA6IG1uZW1vbmljcyBkb2Vzbid0IHdvcmsgaWYgZm9jdXMgaXMgaW4gYSB0ZXh0IHdpZGdldCAgCjxicj42OTQ0MDogIEluc3BlY3QzMiBkb2VzIG5vdCBzaG93IG5hbWUgZm9yIENDb21ibyAgCjxicj43MDUxNjogIFByb3ZpZGUgc25pcHBldCBmb3IgY29udmVydGluZyBCdWZmZXJlZEltYWdlIDwtPiBTV1QgSW1hZ2UgIAo8YnI+NzA2MjA6ICBEaXNwbGF5LnNldE1vdXNlTG9jYXRpb24oKSBub3QgaW1wbGVtZW50ZWQgb24gR1RLICAKPGJyPjcwNjMwOiAgRm9udCBjb25zdHJ1Y3RvciBmYWlscyB0byB0aHJvdyBFUlJPUl9OVUxMX0FSR1VNRU5UICAKPGJyPjcwNzA3OiAgSW1hZ2VMb2FkZXIgY2xvc2VzIHRoZSBieXRlIHN0cmVhbSBhZnRlciBsb2FkaW5nIGFuIGltYWdlICAKPGJyPjcwODU0OiAgUmVncmVzc2lvbjogR3JpZExheW91dCBtaXNhcHBsaWVzIGhvcml6b250YWxTcGFjaW5nIHdoZW4gLi4uICAKPGJyPjcwODU3OiAgd2hlbiB0aGUgdG9vbEJhciBpcyB3cmFwcGVkIG9ubHkgYnkgYSBmZXcgcGl4ZWxzLCByZW1vdmluLi4uICAKPGJyPjcxMDEzOiAgU2hlbGwub3BlbigpIGJsb2NrcyB1bnRpbCB0aGUgd2luZG93IGlzIG1hcHBlZCAgCjxicj43MTAxOTogIFNldHRpbmcgYSBUb29sSXRlbSdzIGNvbnRyb2wgdG8gYSBCdXR0b24gZG9lc24ndCB3b3JrIGluIC4uLiAgCjxicj43MTE0MTogIFNXVCBTbmlwcGV0IDE0NSBoYXMgY29tcGlsZSBlcnJvcnMgIAo8YnI+NzEyMzE6ICBQcm9ncmFtLmlzR25vbWVEZXNrdG9wIGRvZXMgbm90IHdvcmsgZm9yIEZlZG9yYSAyICAKPGJyPjcxMjM3OiAgQ29udHJvbHMgcGxhY2VkIGluIGdyb3VwIGNvbXBvc2l0ZSB3LyB0ZXh0IHRpdGxlIGFyZSBpbmNvLi4uICAKPGJyPjcxMjc3OiAgUHJvZ3JhbS5leGVjdXRlIGRvZXMgbm90IHdvcmsgb24gTWFjIChwYXRjaCBhdmFpbGFibGUpICAKPGJyPjcxMjgyOiAgVGV4dCBjb250cm9sIGhhcyBiZWVuIGJyb2tlbiBzaW5jZSAzLjAgIAo8YnI+NzEzMzg6ICBVbnNhdGlzZmllZCBsaW5rIGVycm9yIHdpdGggQ29tYm8gIAo8YnI+NzEzODE6ICBndGsgYnVpbGQgY3Jhc2hpbmcgb24gbGludXggd2hpbGUgb3BlbmluZyBhIGZpbGUgIAo8YnI+NzE1NzA6ICBUb29sdGlwcyBhcmUgbm90IHNob3duIGlmIHNoZWxsJ3MgY2xpZW50IGFyZWEgaXMgbG9jYXRlZCAuLi4gIAo8YnI+NzE3NTc6ICBDdXJzb3IgWC9ZIGhvdHNwb3RzIGRvbid0IHdvcmsgd2l0aCBhbGwgY29uc3RydWN0b3JzICAKPGJyPjcxNzk5OiAgUmVhZG9ubHkgdGV4dCBmaWVsZHMgYXJlbid0IGFsd2F5cyByZWFkb25seSAgCjxicj43MTgwMzogIE5vIGxvd2VyIGJvcmRlciBvbiBzd3QgY29tYm8gYm94ZXMgIAo8YnI+NzE4Mjg6ICBMaXN0ZW5lciBpcyBub3Qgbm90aWZpZWQgd2hlbiB1c2luZyB0aGUgZGlzcGxheSdzICJhZGRGaWwuLi4gIAo8YnI+NzE4OTQ6ICBUb29sQmFyLmdldEl0ZW0oUG9pbnQgcG9pbnQpIGFsd2F5cyByZXR1cm5zIGZpcnN0IGl0ZW0uICAKPGJyPjcxOTA3OiAgVGhlICJEZXZpY2UjZ2V0Rm9udExpc3QiIG1ldGhvZCBkb2VzIG5vdCByZXR1cm4gYW4gYXJyYXkgLi4uICAKPGJyPjcxOTk5OiAgU3R5bGVUZXh0IGRpc3BsYXlzIFN0eWxlUmFuZ2VzIGluY29ycmVjdCBkZXBlbmRpbmcgb24gb3JkLi4uICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4xIDAwMSAtIFR1ZXNkYXkgSnVseSAyNiwgMjAwNCA8L2gyPgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxibG9ja3F1b3RlPgpDQmFubmVyLmdldFJpZ2h0TWluaW11bVNpemUgLSBSZXR1cm5zIHRoZSBtaW5pbXVtIHNpemUgb2YgdGhlIGNvbnRyb2wgdGhhdCBhcHBlYXJzIG9uIHRoZSByaWdodCBvZiB0aGUgYmFubmVyCjxicj5DQmFubmVyLnNldFJpZ2h0TWluaW11bVNpemUgLSBTZXRzIHRoZSBtaW5pbXVtIHNpemUgb2YgdGhlIGNvbnRyb2wgdGhhdCBhcHBlYXJzIG9uIHRoZSByaWdodCBvZiB0aGUgYmFubmVyCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDc3MDogQWNjZXNzaWJpbGl0eSBQcm9ibGVtcyAoMUdIUU1SOSkgIAo8YnI+NjcxNjU6IFtCcm93c2VyXSBIVE1MIG5vdCByZW5kZXJlZCB3L1hQIHN0eWxlIHVzaW5nIGphdmF3LmV4ZS5tYW5pZmVzdCBjb21jdGwgIAo8YnI+Njg2Mzk6IHBsYXRmb3JtIGNyYXNoZXMgb3BlbmluZyBoZWxwIChpbnRlcm5hbCBicm93c2VyKSAgCjxicj42ODc1OTogQ29uZmlybSBkaWFsb2cgZG9lc24ndCB3b3JrIGluIHRoZSBlbWJlZGRlZCBNb3ppbGxhIGJyb3dzZXIgd2lkZ2V0ICAKPGJyPjY5MjM5OiBbYnJvd3Nlcl0gTm8gbW9yZSBoYW5kbGVzIChqYXZhLmxhbmcuVW5zYXRpc2ZpZWRMaW5rRXJyb3I6ICAKPGJyPjY5NjA5OiBCcm93c2VyIHZpZXcgYnJva2VuIG9uIExpbnV4IChGZWRvcmEgQ29yZSAyKSAgCjxicj43MDE2MDogSW1hZ2UoRGV2aWNlLCBJbnB1dFN0cmVhbSkgdGhyb3dzIGluY29ycmVjdC91bnNwZWMnZCBleGNlcHRpb24gIAo8YnI+MTg4Njg6IFRlc3RDYXNlIGNhdXNlIE5QRSBvbiBUYWJGb2xkZXIgKEVtdWxhdGVkIFdpZGdldCkgIAo8YnI+MjAyMTc6IENvb2xiYXIgQnV0dG9ucyBmbGFzaCB3aXRoIGVuYWJsZW1lbnQvZGlzYWJsZW1lbnQgIAo8YnI+MjA4NDE6IEhvdmVyIGhlbHAgaGlkZXMgQ3RybCtGMSBoZWxwICAKPGJyPjI0OTU5OiBDb29sQmFyIHdpdGggU1dULkRST1BfRE9XTiBzdHlsZSAgCjxicj4zMTM4NTogUmVkcmF3IHByb2JsZW1zOiBzZWxlY3RpbmcgdGV4dCBiYWNrd2FyZHMgIAo8YnI+MzI4NTU6IFtDb29sYmFyXSBVbm5lY2Vzc2FyeSBmbGFzaCB3aGVuIHJlbW92ZS9hZGQgbGFzdCBpdGVtICAKPGJyPjM0OTQ1OiBDaGVlc2U6IFRyYWNrZXIgbGVhdmVzIGdhcmJhZ2UgIAo8YnI+MzUxNjE6IEVDOiBjaGVlc2UgYW5kIEdQICAKPGJyPjM3NzM1OiBUcmVlVmlld2VyJ3MgVHJlZSBnZXRzIHR3byBzZWxlY3Rpb25DaGFuZ2VkIGV2ZW50cyB3aGVuIGl0IGdldHMgZm9jdXMgIAo8YnI+Mzc5ODA6IENyYXNoIE1vdmluZyB0aHJvdyBGcmFtZXMgIAo8YnI+NDEwNTE6IFdpemFyZCBub3QgZ2FpbmluZyBmb2N1cyBhZnRlciBjbG9zaW5nIG9mIGRpYWxvZyBib3ggZnJvbSBXaXphcmRQYWdlIG9mIHRoaXMgV2l6YXJkLiAgCjxicj40MTIwNDogY29tYm8gZXZlbnQgbm90IGZpcmluZyBvbiBTV1QuRm9jdXNJbiAgCjxicj40MTUzNzoga2V5Ym9hcmQgc3RvcHMgcmVzcG9uZGluZywgY3Vyc29yIGRpc2FwcGVhcnMgKFdpbmRvd01ha2VyKSAgCjxicj40MzAwOTogQmFkIHBlcmZvcm1hbmNlIG9uIHpoX0NOLkdCMTgwMzAgIAo8YnI+NDU1NTU6IGNhbid0IHJ1biBhdCBmcmVlYnNkISAgCjxicj40OTU5ODogcGxhY2UgYXJiaXRyYXJ5IGNvbnRyb2xzIGluIGEgdGFibGUgaGFzIHdyb25nIHRhYiBvcmRlciAgCjxicj41MTA3ODogU3RhdGljIHRleHQgZG9lc24ndCBkaXNwbGF5IG9uIHRvb2xiYXIgaW4gTGludXggIAo8YnI+Njg5Njk6IEJ1dHRvbnMgaW4gZGlzYWJsZWQgZ3JvdXAgYXJlIG5vdCBkaXNhYmxlZCAgCjxicj42MjY5MDogW2xhdW5jaGVyXSBzcGxhc2ggc2NyZWVuIHNwYW5zIG11bHRpLW1vbml0b3JzICAKPGJyPjYzNjU5OiBTV1QgZGV2ZWxvcGVycyBwYWdlIG5vdCB1cCB0byBkYXRlPyAgCjxicj42ODQ4MjogSlZNIGR1bXAgZXJyb3Jjb2RlPTYgIAo8YnI+Njg2NjE6IFRyZWVzIGFyZSBlYWdlciB0byBleHBhbmQgIAo8YnI+Njg2Njc6IE5QRSBpbiBBZGRyZXNzQm9vayBleGFtcGxlICAKPGJyPjY4NzQ0OiBSZWFkbWUgbWVudGlvbnMgZHVwbGljYXRlIGJ1ZyAoMzU0NDMpICAKPGJyPjE0ODU2OiBbRWRpdG9yIE1nbXRdIEN0cmwrVGFiIGRvZXMgbm90IHdvcmsgaW4gZWRpdG9ycyB3aXRoIG11bHRpcGxlIHRhYnMgIAo8YnI+NTIxNjY6IGNsb3NlIGJ1dHRvbiBvbiB2aWV3L2VkaXRvcnMgdGFicyBuZWVkIHJlZmluZW1lbnQgIAo8YnI+NjgyOTY6IGJ1ZyB3aXRoIGVkaXRvciBpbiBFY2xpcHNlICAKPGJyPjE2MTcxOiBObyBNYXhpbWl6ZSAvIEZpcnN0IHJlc2l6ZSBnZXRzIHJldmVydGVkICAKPGJyPjI5NjQyOiBQZXJmb3JtYW5jZSBwcm9ibGVtcyBvbiBNYWMgIAo8YnI+MzA5ODM6IEFDQyAtIEkyMDAzMDIwNSAtIENhbid0IHN3aXRjaCB0YWJzIHVzaW5nIGtleWJvYXJkICAKPGJyPjY2NTA3OiBUb29sSXRlbS5nZXRCb3VuZHMoKSByZXBsaWVkIHstMSwtMSwxLDF9IGlzIHNoZWxsIGlzIG5vdCB2aXNpYmxlICAKPGJyPjY4NTY2OiBqYXZhdy5leGUgbm90IGZvdW5kIGF0IGxhdW5jaCAgCjxicj42ODU3MTogZHJhd1RleHQodGV4dCwgMCwgMCwgU1dULkRSQVdfREVMSU1JVEVSKSBpcyBub3cgcmlnaHQtanVzdGlmaWVkICAKPGJyPjY4ODU1OiBvcmcuZWNsaXBzZS5zd3QudG9vbHMuaW50ZXJuYWwuU3d0Sm5pR2VuIGlzIG5vdCB3b3JraW5nIHByb3Blcmx5ICAKPGJyPjM3ODY4OiBTZXR0aW5nIGEgR3JpZExheW91dCBvbiBhIFRhYkZvbGRlciBnaXZlcyBzdHJhbmdlIGJlaGF2aW9yIHdoZW4gcmVzaXppbmcgIAo8YnI+NTk2MzA6IFtEaWFsb2dzXSBBY2Nlc3NpYmlsaXR5OiBbU2VhcmNoIGRpYWxvZ10gQ2Fubm90IHNlbGVjdCBDaG9vc2Ugd29ya2luZyBzZXQgdGV4dCB3aXRob3V0IG1vdXNlICAKPGJyPjY4OTUwOiBCdWcgaW4gTGlzdC5zaG93U2VsZWN0aW9uIG1ldGhvZCAgCjxicj42OTM5ODogVGFibGUuY2xlYXJBbGwoKSBkb2VzIG5vdCBmb3JjZSByZWRyYXcgIAo8YnI+Njk1MDk6IENvbWJvYm94IGNvbXB1dGVTaXplKCkgZG9lc24ndCB0YWtlIHRoZSBkb3duIGFycm93IGludG8gYWNjb3VudCAgCjxicj43MDQ2MTogTWlub3IgamF2YWRvYyBlcnJvciBpbiBEaXNwbGF5Lm1hcChDb250cm9sLENvbnRyb2wsUG9pbnQpICAKPGJyPjcwNjMzOiBQcm9ncmFtIGxhdW5jaCBhbmQgZXhlY3V0ZSBtZXRob2RzIGhhdmUgaW5jb3JyZWN0IGphdmFkb2MgIAo8YnI+NzA3Mjk6IFBsdWdpbjogTW9kYWwgZGlhbG9nIGJsb2NrcyBvdGhlciBkaWFsb2dzIGNsb3NpbmcgIAo8YnI+MjEwODk6IENUYWJGb2xkZXIgLSBjbG9zZSBidXR0b24gZG9lc24ndCBhcHBlYXIgd2hlbiB0YWIgbW92ZXMgdW5kZXIgbW91c2UgIAo8YnI+Mjk3NzI6IFtFZGl0b3IgTWdtdF0gTGFzdCBlZGl0b3IgdGFiIGdldHMgY3V0IG9mZiB3aGVuIHVubmVjZXNzYXJ5ICAKPGJyPjM2MjIwOiBleHBhbmQgU2FzaGZvcm0gQVBJIHRvIHN1cHBvcnQgc2V0QmFja2dyb3VuZCAgCjxicj41MjA1OTogU2FzaEZvcm0gcmlnaHQvYm90dG9tIGNvbnN0cmFpbnQgaXMgbm90IGNvbXB1dGVkIGNvcnJlY3RseSAgCjxicj41Mjg0OTogTGlnaHR3ZWlnaHQgY2xvc2UgYnV0dG9ucyBvbiBDVGFiRm9sZGVyIGFyZSBwcm9ibGVtYXRpYyAgCjxicj42NDYxMDogaG92ZXIgb3ZlciBjaGV2cm9uIGZvciBDdGFiZm9sZGVyIG5vdCBiaWcgZW5vdWdoIGZvciBsYXJnZSBmb250cyAgCjxicj42NTU5ODogQ2hldnJvbiBzaG93cyAnMCcgd2hlbiB0aGVyZSBhcmUgYXQgbGVhc3Qgb25lIGl0ZW1zIHRhYnMgbm90IHNob3dpbmcgIAo8YnI+NjcwNzg6IENoZXZyb24gYW5kIFRleHQgdG91Y2hpbmcgb24gTW90aWYgIAo8YnI+Njc0ODk6IENMYWJlbCBkb2VzIG5vdCBzYXZlIGFsaWdubWVudCBpbiBzdHlsZSBiaXRzICAKPGJyPjY4MDcwOiBMYWJlbCBkb2VzIG5vdCBkcmF3IGJhY2tncm91bmQgY29ycmVjdGx5ICAKPGJyPjY4MDc0OiBDb3VwbGUgb2YgYmFkIHBpeGVscyBpbiBTV1QuRkxBVCB8IFNXVC5CT1JERVIgc3R5bGUgIAo8YnI+Njg5NzI6IEdyaWRMYXlvdXQgYWRqdXN0cyB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiBhbHJlYWR5IGFkanVzdGVkICAKPGJyPjY5ODgxOiBJbiBTY3JvbGxlZENvbXBvc2l0ZSwgdmVydGljYWwgc2Nyb2xsYmFyIGRvZXMgbm90IGFwcGVhciAgCjxicj43MDUzNjogaWYgR3JpZExheW91dC5udW1Db2x1bW5zID09IDAgYSBTdGFja092ZXJmbG93RXJyb3IgZ2V0cyB0aHJvd24gIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDYyIC0gVGh1cnNkYXkgSnVuZSAyNCwgMjAwNCA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ0MTA6ICBBV1QvU1dUIC0gQXBwbGV0IEludGVyb3AgKDFQUThRRzEpICAKPGJyPjMwMTA0OiAgRHJhZyAmIERyb3Agbm90IGltcGxlbWVudGVkIG9uIHRoZSBNYWMgIAo8YnI+MzI0MzQ6ICBKYXZhZG9jIHR5cG8gIAo8YnI+NjU0Mzk6ICBDQmFubmVyL0NUYWJGb2xkZXIgY29tbWVudHMuICAKPGJyPjY2MDk1OiAgQ29tYm8uc2V0VmlzaWJsZUl0ZW1Db3VudCBkb2VzIG5vdGhpbmcgdW50aWwgcmVzaXplL2xheW91dCAgCjxicj42NzMxOTogIENCYW5uZXIgamF2YWRvYyBpbmNvbXBsZXRlICAKPGJyPjY3OTc5OiAgZWRpdG9yIGZvY3VzIGlzc3VlICAKPGJyPjY4MDk2OiAgU1dUIGV4Y2VwdGlvbiBkb2NraW5nIGEgZGV0YWNoZWQgdmlldyAgCjxicj42ODE2MDogIENhbm5vdCB1c2UgJ2VjbGlwc2UnIGNvbW1hbmQgbGluZSBsYXVuY2hlciB0byBsYXVuY2ggZWNsaXBzZSBhcHAgd2hlbiBubyB3b3Jrc3BhY2Ugc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDYxYyAtIFR1ZXNkYXkgSnVuZSAyMiwgMjAwNCA8L2gyPgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjY4MDU2OiBHVEs2NCAtIENDb21ibyBkb2VzIG5vdCB3b3JrIAo8YnI+Njc5Mjg6IFtCcm93c2VyXSBFbnRlciBwYXRoIHRvIG5vbi1leGlzdGluZyBmaWxlIGJyaW5ncyBOdWxsUEUgCjxicj42NzkzNTogVHlwbyBpbiBTV1RfQVdULm5ld19GcmFtZSBqYXZhZG9jIAo8YnI+NjgxMDI6IE5vIG1vdXNlIHVwIHdoZW4gdHJlZSBleHBhbnNpb24gaW5kaWNhdG9yIHNlbGVjdGVkCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwNjEgLSBGcmlkYXkgSnVuZSAxOCwgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0ODQ5MjogIEVjbGlwc2UgY3Jhc2hlcyBvbiBHVEsgKGxpbnV4KSB3aGlsZSBDZWxsIEVkaXRvciBpbiBQcm9wZXJ0eSBWaWV3IGxvb3NpbmcgZm9jdXMgIAo8YnI+NjA3Njg6ICBDQmFubmVyIGF0IHRvcCBkb2VzIHZlcnRpY2FsIHNpemluZyBiYXNlZCBvbiBsZWZ0IGNvbXBvbmVudHMKPGJyPjY2OTYyOiAgVGFiYmluZyBmcm9tIGxpc3QgaW4gUHJvcGVydHkvUHJlZmVyZW5jZSBkaWFsb2cgdGFrZXMgeW91IHRvIHNhc2ggaW5zdGVhZCBvZiBwYWdlICAKPGJyPjY3NDU4OiAgUmVzaXplIGlzIHRvbyBzbG93IGZvciBtb3VzZSBldmVudHMgb24gR1RLICAKPGJyPjY3NjcwOiAgY2FuY2VsbGluZyBPcGVuIFR5cGUgZGlhbG9nIG1vdmVzIGZvY3VzIHRvIE9wZW4gUGVyc3BlY3RpdmUgYnV0dG9uICAKPGJyPjY3ODI1OiAgW2Jyb3dzZXJdIGJyb3dzZXIgY3Jhc2hlcyBvbiBqZGsgMS41IGJldGEgYXBwbGV0cyAgCgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDYwIC0gVGh1cnNkYXkgSnVuZSAxNywgMjAwNCwgODowMHBtIDwvaDI+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjY2ODEzOiAgQnJvd3NlciBkb2VzIG5vdCBoYW5kbGUgc2V0VGV4dCB0d2ljZSAgCjxicj42NzE4NTogIEJ1ZyBpbiBlbXVsYXRlZCBUZXh0TGF5b3V0LnNldEZvbnQoRm9udCkgIAo8YnI+NjcxOTU6ICBQb3NzaWJsZSBOUEUgaW4gVGV4dExheW91dCAobW90aWYvZW11bGF0ZWQpICAKPGJyPjY3MjE5OiAgU2VnbWVudGF0aW9uIGZhdWx0IGluIE9TLmd0a19tYWluX2RvX2V2ZW50ICAKPGJyPjY3MzAxOiAgRGxsIGluZm9zIGFyZSBib2d1cyAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwNTkgLSBUaHVyc2RheSBKdW5lIDE3LCAyMDA0LCA0OjI1cG0gPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDQzOTk6ICBTV1RFcnJvciB3aGVuIHRyeWluZyB0byBjb3B5IGVudHJ5IGZyb20gRXJyb3IgTG9nIFZpZXcgIAo8YnI+NTM5MjA6ICBTbG93IHBlcmZvcm1hbmNlIHVwZGF0aW5nIHRhcmdldCAgCjxicj41NTk0ODogIEJJREk6IHByb2JsZW1zIGluIHJ0bC1vcmllbnRlZCBDVGFiRm9sZGVyICAKPGJyPjU4NjQyOiAgW21pc2NdIGNhcmV0IGRpc2FwcGVhcnMgZnJvbSBqYXZhIGVkaXRvciAgCjxicj42NTA1MzogIFtLZXlCaW5kaW5nc10gS2V5IGJpbmRpbmdzIHN0b3Agd29ya2luZyAgCjxicj42NTk3NTogIEN0cmwrQyBicm9rZW4gaW4gSmF2YSBlZGl0b3IgIAo8YnI+NjY3MTc6ICBTSEFET1dfSU4gc3R5bGUgaGlkZXMgR3JvdXAgdGl0bGUgIAo8YnI+Njc0ODM6ICBObyBjaGV2cm9uIHdoZW4gbm90IGVub3VnaCBzcGFjZSB0byBzaG93IGFsbCB0aGUgdGFicyBpbiBDVGFiRm9sZGVyICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA1OGQgLSBXZWRuZXNkYXkgSnVuZSAxNiwgMjAwNCwgODowMHBtIDwvaDI+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjY2MDAxOiAgcGFja2FnZS5odG1sIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgaW4gYmluYXJ5IHBsdWctaW4gSkFScyAgCjxicj42NzEzMjogIFN0eWxlZCB0ZXh0IGV4YW1wbGUgbG9zZXMgdGhlIHRleHQgc3R5bGUgd2hlbiBjaGFuZ2luZyBhbnkgc3R5bGUgZmxhZyAgCjxicj42NzM0NjogIERpc3BsYXkuZ2RrRXZlbnRXaWRnZXRzIGxlYWtzIHdpZGdldHMgIAo8YnI+NjczNTU6ICBTZXR0aW5nIGZvbnQgYmFjayB0byBpdHMgZGVmYXVsdCB2YWx1ZSBpbiBhIHRhYmxlIHRyZWUgd2lkZ2V0IGNhdXNlcyBhbiBpbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDU4YyAtIFdlZG5lc2RheSBKdW5lIDE2LCAyMDA0LCA0OjAwcG0gPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjU5ODU6ICBEaXNhYmxlZCBjb250cm9scyBzdGlsbCBnZXQga2V5c3Ryb2tlcyBbd2FzIFtQcm9ncmVzc10gTlBFIGluIGxvZyB3aGlsZSByZWZhY3RvcmluZ10gIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDU4YiAtIFR1ZXNkYXkgSnVuZSAxNSwgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozNDUxNTogIEdUSzogQ2FzY2FkZSBNZW51SXRlbSBkb2Vzbid0IHN1cHBvcnQgaW1hZ2UgIAo8YnI+NDAwMDM6ICBQcm9kdWN0aXplIGphdmFfc3d0ICAKPGJyPjU5MzQ0OiAgSW5zcGVjdCBQb3B1cHMgZGlzYXBwZWFyIG9uIE1hYyAgCjxicj42MDY1NzogIERlZmF1bHQgc2l6ZSBvZiBTaGVsbCBpcyB0b28gYmlnIGluIG11bHRpLW1vbml0b3JzICAKPGJyPjYyNTY1OiAgTlBFIGluIFdNX0tFWURPV04gIAo8YnI+NjYyOTM6ICBFZGl0b3IgYmxhbmsgb24gc3RhcnR1cCAgCjxicj42NjYzMzogIFtXb3JrYmVuY2hdIG1pc3NpbmcgdG9vbGJhciBpdGVtcyAgCjxicj42NjY1MzogIE5QRSBvbiB3aW5kb3cgY2xvc2UgIAo8YnI+NjY5NDE6ICBTV1QgcHJpbnRpbmcgc25pcHBldCBub3Qgd29ya2luZyBvbiBNYWNPUyBYICAKPGJyPjY2OTQyOiAgW2Jyb3dzZXJdIEY1IGJsYW5rcyBvdXQgdGhlIEJyb3dzZXIgd2lkZ2V0IHdoZW4gc2V0VGV4dCB1c2VkICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA1OCAtIFRodXJzZGF5IEp1bmUgMTAsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjA0NzogIHNldEZvY3VzIGZhaWxzIGlmIHNldFJlZHJhdyB0dXJuZWQgb2ZmICAKPGJyPjYzMjU6ICBObyBidXN5IGN1cnNvciBmb3IgT3BlbiBvbiBTZWxlY3Rpb24gIAo8YnI+OTg0NzogIEVtYmVkZGVkIFN3aW5nIGhhbmdzIGVjbGlwc2Ugd2hlbiBlZGl0b3IgY2xvc2VzICAKPGJyPjM1MTAzOiAgT1MgWCBFZGl0b3IgaGFzIGN1cnNvciBwcm9ibGVtcyAgCjxicj4zODQwODogIENhcmV0LmRyYXdDYXJldCBpZ25vcmVzIGltYWdlIGNvbnRlbnQgIAo8YnI+NDI1NjI6ICBWYXJpb3VzIGltcHJvdmVtZW50cyBmb3IgdGhlIE9zIFggSW50ZXJmYWNlOiAgCjxicj41MDIxNjogIE5QRSBpbiBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5Db250cm9sLmhhc0ZvY3VzKENvbnRyb2wuamF2YTo5MzQpICAKPGJyPjUxMTA3OiAgQ29udHJvbEVkaXRvciBzaXppbmcgb24gdGhlIE1hY2ludG9zaCAgCjxicj41MTY5NzogIEN1c3RvbUNvbnRyb2xFeGFtcGxlOiBtaXNzaW5nIGV2ZW50IGxpc3RlbmVyIHBhcnQgb24gQ0NvbWJvIHRhYiAgCjxicj42NDQwMDogIE9OX1RPUCBzaGVsbCAtIGNhbid0IHNldEZvY3VzIHRvIGNvbnRlbnQgIAo8YnI+NjUzNTA6ICBTdHlsZWRUZXh0IGxlYXZlcyBzZWNvbmQgY2FyZXQgYmVoaW5kICAKPGJyPjY1Njk1OiAgVHJheUl0ZW0gbm90IGNvbWluZyBiYWNrIGFmdGVyIGFuIGV4cGxvcmVyIGNyYXNoICAKPGJyPjY1Njk3OiAgQ0NvbWJvIGRvZXMgbm90IHJlc3BvbmQgdG8ga2V5Ym9hcmQgb3IgbW91c2UgYWN0aW9ucyB3aGVuIGl0IGl0IGRyb3BwZWQgZG93biAgCjxicj42NjMzMTogIGV4Y2VwdGlvbiBpbiBNZW1iZXJzIHBhbmVsIG9mIGphdmEgYnJvd3NpbmcgcGVyc3BlY3RpdmUgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDU3IC0gV2VkbmVzZGF5IEp1bmUgOSwgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozNTM0NjogIEVjbGlwc2UgY3Jhc2ggb3BlbmluZyBwcmVmZXJlbmNlcyBvZiB0aGlyZCBwYXJ0eSBwbHVnaW4gIAo8YnI+NjQzNDk6ICBTV1Qgb2YgdGhlIGVjbGlwc2UgMy4wIHZlcnNpb25zIGNyYXNoZXMgb24gc3RhcnQgKG1vdXNlLXByb2JsZW0pICAKPGJyPjY0NDI5OiAgUHJvZ3Jlc3MgYmFycyB1c2UgZGVwcmVjYXRlZCBzdHlsZSAgCjxicj42NTI2OTogIFtFZGl0b3JNZ210XSBTbG93IHJlZHJhdy9yZWxheW91dCB3aGVuIG1heGltaXppbmcvdW5tYXhpbWl6aW5nIGFuIGVkaXRvciAgCjxicj42NTUzNzogIFtLZXlCaW5kaW5nc10gQ29udHJvbCAoY3RybCkga2V5IGhvdGtleXMgbm90IHdvcmtpbmcgZWcgQ3RybCtGNCAgCjxicj42NTc5MjogIEJsYW5rIGxpbmVzIGluIHRhYmxlIFtXQVM6IFRhYmxlLnNob3dJdGVtKCkgd29ya3Mgd3JvbmcgaW4gV2luMzJdICAKPGJyPjY2MTUxOiAgQWx0LWNsaWNraW5nIHRvIGV4cGFuZCBhIHRyZWUgbm9kZSBkb2Vzbid0IHdvcmsgcHJvcGVybHkgIAo8YnI+NjYzNTY6ICBETkQgLSBtb3ZlIHJlcG9ydGVkIHRvIGRyYWcgc291cmNlIGV2ZW4gdGhvdWdoIGNhbmNlbGxlZCAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwNTYgLSBUdWVzZGF5IEp1bmUgOCwgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyMTI0NTogIGRpZmZlcmVudCBkaXNhYmxlZCB0b29sYmFyIGljb25zIG9uIEdUSyAgCjxicj4zMjg1MjogIENyYXNoIHdoZW4gdXNpbmcgc3ViLXBpeGVsIHJlbmRlcmluZyBpbiBYZnQgMi4wICAKPGJyPjMyOTc4OiAgRXhwb3J0IEphdmFkb2M6IGVsZW1lbnQgbm90IHNlbGVjdGVkICAKPGJyPjM3MTYzOiAgQ3Jhc2ggb24gc3RhcnR1cDogIkNhbm5vdCBvcGVuIGZvbnQgZmlsZSBmb3IgZm9udCBWZXJkYW5hIDEwIiAgCjxicj40MzI3MDogIE5vbi1BbnRpYWxpYXNlZCBGb250cyBoYXZlIHdyb25nIHNwYWNpbmcgIAo8YnI+NDc0NjQ6ICBTZWNvbmQgdW51c2VkIGltcG9ydCBtZXNzYWdlIG1pc3NpbmcgaW4gcHJvYmxlbSBkaXNwbGF5IGxpc3QgdmlldyBhZnRlciByZWJ1aWxkICAKPGJyPjUyMjc2OiAgQmx1cnJlZCBmb250IHJlbmRlcmluZyBpbiBlZGl0b3IgdW5kZXIgTWFjT1MgWCAgCjxicj41NTYwMDogIENWUyBwZXJzcGVjdGl2ZSBoYXMgYnVzeSBjdXJzb3IgIAo8YnI+NTY1MDg6ICBFZGl0b3I6IHNvbWUgdGFiIGNoYXJhY3RlcnMgYXJlIG5vdCByZW5kZXJlZCBtaXNzaW5nIGluIGZpZWxkIGRlY2xhdGlvbnMgIAo8YnI+NTY3NjU6ICBTdHlsZWRUZXh0IC0gRml4IGNhbGN1bGF0aW5nIG9mIGN1cnNvciBsZXZlbCAgCjxicj41NzQwODogIERCQ1M6IEFmdGVyIHByZXNzaW5nICJUYWIiLCBhbnl0aGluZyBjYW4gbm90IGJlIGlucHV0ZWQgIAo8YnI+NTg2MTU6ICBTZXR0aW5nIGl0YWxpYyBmb250IGZvciB0cmVlIGl0ZW1zIGRvZXMgbm90IHdvcmsgb24gTWFjICAKPGJyPjYwNjU5OiAgR1Agd2hlbiBhc3luY0V4ZWMgcnVucyBmcm9tIERpcmVjdG9yeURpYWxvZyBtb2RhbCBsb29wICh3YXMgQ3Jhc2ggcmVsYXRlZCB0byBuZXcgUHJvZ3Jlc3MgVmlld2VyKSAgCjxicj42MjMzNjogIFVJIGhhbmdzIHdoaWxlIGF0dGVtcHRpbmcgdG8gYWRkIG1pc3NpbmcgbWV0aG9kcy4gIAo8YnI+NjQ3NTk6ICBDb2xvciBidXR0b25zIGxvb2sgYmFkIG9uIE1hYyAgCjxicj42NDc5MzogIE9uZSBsaW5lIG9mIGNoZWVzZSBpbiBDVGFiRm9sZGVyIHNlbGVjdGVkIHRhYiAgCjxicj42NTM4NzogIFNXVCBkZXBlbmRzIG9uIFN3aW5nIChBV1Qgbm90IGEgcHJvYmxlbSkgIAo8YnI+NjU1OTk6ICBTaGVsbCBsb2NhdGlvbiBpcyBub3QgcHJvcGVybHkgdXNlZCAgCjxicj42NTc1OTogIFRhYmxlSXRlbSBkb2VzIG5vdCByZWRyYXcgY29ycmVjdGx5IG9uIHNldFRleHQoaW50LCBTdHJpbmcpICAKPGJyPjY1OTA1OiAgUG9zc2libGUgTWVtb3J5IExlYWtzICAKPGJyPjY1OTQ3OiAgU1dUIENhcmJvbiBtYWtlZmlsZSBzdGlsbCB1c2VzIEpOSSAxLjMuMSBoZWFkZXJzICAKPGJyPjY2MDM5OiAgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuQ29udHJvbCBoYXMgZnVua3kgY29sb3IgaXNzdWVzICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA1NSAtIFRodXJzZGF5IEp1bmUgMywgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxNDUzNiAgU3R5bGVkVGV4dCAtIGJpZGkgLSBjaGFuZ2UgY3RybC1hcnJvdyBiZWhhdmlvciAgCjxicj4zOTQ5MzogIEdUSyBDb21ibzsgZmlyc3QgaXRlbSBpcyBzZWxlY3RlZCB3aGVuIERyb3Bkb3duIGxpc3QgaXMgc2hvd24gIAo8YnI+NDI0ODA6ICBKT0dMIG1ldGhvZCBwb3B1cHMgZXh0cmVtZWx5IHNsb3c7IGxpa2VseSBub3cgU1dUIGlzc3VlICAKPGJyPjQzMzEyOiAgU3dpdGNoaW5nIHBlcnNwZWN0aXZlcyB3aGlsZSBkZWJ1Z2dpbmcgY2F1c2VzIHNlZ2ZhdWx0ICAKPGJyPjQ0MDAzOiAgTWVudUl0ZW0uc2V0QWNjZWxlcmF0b3JUZXh0IGRvZXMgbm90IHdvcmsgcHJvcGVybHkgb24gTWFjT1MgWCAgCjxicj40Nzk3MjogIFtLZXlCaW5kaW5nc10gSW5jb3JyZWN0IGRyYXdpbmcgb2YgYWNjZWxlcmF0b3IgdGV4dCBvbiBtYWMgb3MgeCAgCjxicj41NjUwOTogIERldGFpbHMgcGFuZSBpbiBEZWJ1ZyBwZXJzcGVjdGl2ZSBkb2Vzbid0IHJlbmRlciBpdCdzIGNvbnRlbnRzIHByb3Blcmx5IChyZXBlYXRzIGNoYXJhY3RlcnMpICAKPGJyPjU4MTc2OiAgU2NyZWVuIHNjcmliYmxlcyB3aGVuIHNjcm9sbGluZyB1cCBpbiBKYXZhIGVkaXRvciAgCjxicj42MjExOTogIHNldEN1cnNvcigpIGRvZXNuJ3Qgd29yayBmb3IgVGV4dCBvYmplY3RzICAKPGJyPjYzOTMxOiAgW2Jyb3dzZXJdIHNldFZpc2libGUodHJ1ZSkgZG9lcyBub3Qgd29yayAgCjxicj42Mzk5MTogIGhhbmcgaW4gZ3RrX2NsaXBib2FyZF93YWl0X2Zvcl9jb250ZW50cygpICAKPGJyPjY0MjM3OiAgW01lbnVzXSBtZW51IGl0ZW1zIG1pc3Npbmcgb24gZmlyc3QgY2xpY2sgIAo8YnI+NjQyOTE6ICBtb3VzZSB1bnVzYWJsZSBvdmVyIHJlZ2lvbnMgcHJldmlvdXNseSBjb3ZlcmVkIGJ5IGZhc3R2aWV3ICAKPGJyPjY0MzY1OiAgRW1iZWRkZWQgQVdUIHdpbmRvd3MgdXNlIHdyb25nIGxvY2F0aW9uICAKPGJyPjY0NjQ1OiAgamF2YS5sYW5nLkFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpbiBHVEsgVGFibGUuamF2YSAgCjxicj42NDcwNTogIEV4cGFuZGluZyBhIFRyZWUgd2l0aCBsZWZ0IGFuZCByaWdodCBhcnJvd3MgZG9lcyBub3QgdHJpZ2dlciBUcmVlRXhwYW5kZWQgb3IgVHJlZUNvbGxhcHNlZCBldmVudHMuICAKPGJyPjY0NzA5OiAgVHJlZSB2aWV3cyBkb24ndCB1cGRhdGUgY29ycmVjdGx5IHVzaW5nIGtleWJvYXJkIHNob3J0Y3V0cyAgCjxicj42NDc1MjogIFRhYmxlQ3Vyc2VyLnNldFNlbGVjdGlvbiBkb2VzIG5vdCBmdW5jdGlvbiBwcm9wZXJseSBhZnRlciBjb2x1bW5zIGFyZSBkaXNwb3NlZCAgCjxicj42NDc2MDogIGFkZCBTSU5HTEUvTVVMVEkgcmFkaW9zIHRvIENvbnRyb2xFeGFtcGxlIC0gRGlhbG9nIHRhYiAtIEZpbGUgRGlhbG9nIFN0eWxlcyAgCjxicj42NDc5MTogIFtLZXlCaW5kaW5nc10gYWNjZWxlcmF0b3Igc3RyaW5ncyBkaXNwbGF5ZWQgaW5jb3JyZWN0bHkuICAKPGJyPjY0OTM4OiAgW2Jyb3dzZXJdIE5QRSBpbiB0ZXN0IGNhc2UgIAo8YnI+NjQ5ODA6ICBzaG91bGQgdXNlIGNvcnJlY3QgU0laRV9BTEwgY3Vyc29yIG9uIG1vdGlmcyAgCjxicj42NTE2OTogIFticm93c2VyXSBVUkxzIHdpdGggc3BhY2UgZG9uJ3Qgc2hvdyB1cCBvbiBTYWZhcmkgIAo8YnI+NjUyMTQ6ICBSZWdyZXNzaW9uOiBUcmVlLnNldFJlZHJhdyhmYWxzZSkgbm90IHJlbGlhYmxlICAKPGJyPjY1MjM5OiAgbmV3IFNXVCBNYWMgcHJvcGVydGllcyBhcmVuJ3QgYm9vbGVhbiAgCjxicj42NTM1OTogIExhYmVsLnNldFRleHQoKSBjYXVzZXMgYSByZWRyYXcgd2hlbiB0aGUgc3RyaW5nIGRpZCBub3QgY2hhbmdlICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA1NCAtIEZyaWRheSBNYXkgMjgsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPGJsb2NrcXVvdGU+ClN0eWxlZFRleHQuZ2V0QmFzZWxpbmUoKQo8YnI+Q29tYm8uZ2V0VmlzaWJsZUl0ZW1Db3VudCgpCjxicj5Db21iby5zZXRWaXNpYmxlSXRlbUNvdW50KGludCkKPGJyPkNDb21iby5nZXRWaXNpYmxlSXRlbUNvdW50KCkKPGJyPkNDb21iby5zZXRWaXNpYmxlSXRlbUNvdW50KGludCkKPGJyPkNCYW5uZXIuZ2V0U2ltcGxlKCkKPGJyPkNCYW5uZXIuc2V0U2ltcGxlKGJvb2xlYW4pCjxicj5DVGFiRm9sZGVyLmdldFNpbXBsZVRhYigpIC0+IENUYWJGb2xkZXIuZ2V0U2ltcGxlKCkKPGJyPkNUYWJGb2xkZXIuc2V0U2ltcGxlVGFiKGJvb2xlYW4pIC0+IENUYWJGb2xkZXIuc2V0U2ltcGxlKGJvb2xlYW4pCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjQ1MTg6ICBOUEUgaW4gU3R5bGVkVGV4dCB1c2VkIGJ5ICdDaGFuZ2UgbWV0aG9kIHNpZ25hdHVyZScgcmVmYWN0b3JpbmcgIAo8YnI+NjQ2MzMgICBOUEUgY2F1c2VkIGJ5IHNtYWxsIGZvbnQgc3VwcG9ydAo8YnI+NjQ2NTIgICBTdHlsZWRUZXh0IC0gQ2xpY2tpbmcgYXQgdGhlIGVuZCBvZiBhIGxpbmUgcGxhY2UgdGhlIGNhcmUuLi4KPGJyPjYyNzIzOiAgamF2YWRvYyBjb25zb2xlIG91dHB1dDogaHlwZXJsaW5rIG5vdCBjbGlja2FibGUsIG5vIGhhbmQgLi4uCjxicj41MzM1ODogIEdDIGNvcHlBcmVhKGltYWdlLCB4LCB5KSBub3QgaW1wbGVtZW50ZWQgb24gTWFjICAKPGJyPjc4NDU6ICBBUEkgbmVlZGVkIGluIENvbWJvIGNsYXNzIHRvIHNwZWNpZnkgIyBvZiBpdGVtcyB2aXNpYmxlICAKPGJyPjE3MzQ2OiAgTWlzc2luZyBidXN5IGN1cnNvciBpbiBTZWFyY2ggZGlhbG9nIHVuZGVyIEdUSyAgCjxicj4yMjAxODogIEdUSzogVGV4dC5zZXRDdXJzb3IoKSBkb2VzIG5vdCBmdW5jdGlvbi4gIAo8YnI+MzEwMjM6ICBHUCAtIHVzaW5nIEYzIHRvIG9wZW4gbmV3IGVkaXQgd2luZG93ICAKPGJyPjM4MjYwOiAgQ0NvbWJvIHdpdGggRGlhbG9nICAKPGJyPjQ0NjQ4OiAgU3VwcG9ydCBKREsxLjEgIAo8YnI+NDU1NzQ6ICBQYW50aGVyOiBSdW4uLi4gYW5kIFByb3BlcnRpZXMgZGlhbG9ncyBsYXkgb3V0IGluY29ycmVjdGx5LiAgCjxicj40ODAwNjogIFtTV1RdIGxheW91dCBwcm9ibGVtcyBvbiBtYWMgIAo8YnI+NTAxODM6ICBWZXJ0aWNhbCBzY3JvbGxiYXIgaXMgbm90IGNyZWF0ZWQgYXMgZXhwZWN0ZWQgIAo8YnI+NTQ0MTQ6ICBbdHlwaW5nXSBEZWxldGUgTmV4dCBXb3JkIGFuZCBvdGhlcnMgZG9uJ3Qgd29yayBxdWl0ZSByaWdodCAgCjxicj41ODgwNDogIE1hYyBPU1ggOiBUYWJsZUNvbHVtbiBBbGlnbm1lbnQgIAo8YnI+NjA0NTI6ICBbTWFjXSBCdXR0b24gUGxhY2VkIG9uIEdyb3VwIGRvZXMgbm90IGdldCBEaWFsb2cgRm9udCAgCjxicj42MDgxNjogIERlZmVycmVkIGV2ZW50cyB3aWxsIG5vdCBydW4gZHVyaW5nIG1vdXNlZHJhZyAgCjxicj42MTcyODogIE5lZWQgYWNjZXNzIHRvIFRleHRMYXlvdXQgc3R5bGVzIGFuZCBmb250cyAgCjxicj42MjMyOTogIENUYWJGb2xkZXIgbGVhdmVzIGEgbGl0dGxlIGNoZWVzZSB3aGVuIHJlc2l6aW5nICAKPGJyPjYyNTU4OiAgTnVsbCBQb2ludGVyIHdoZW4gb3BlbmluZyBGb2xkZXIgaW4gRmlsZT5PcGVuIEV4dGVybmFsIEZpbGUgIAo8YnI+NjI5ODI6ICBUYWJsZUNvbHVtbiBkb2VzIG5vdCBmaXJlIHJlc2l6ZSBldmVudCAgCjxicj42MzAwMzogIEN0cmwrIENsaWNraW5nIG9uIFBhY2thZ2VFeHBsb3JlciBleHBhbmRzIGl0ZW1zICAKPGJyPjYzMDcwOiAgc29tZSBtZW51cyBkbyBub3Qgc2hvdyB0aGVpciBpdGVtIHRleHRzICAKPGJyPjYzNzAxOiAgRGlzcGxheSB2YXIgaW4gZGVidWdnZXIgZXhpdHMgZWNsaXBzZSBKVk0gIAo8YnI+NjM3MTY6ICBUcmVlIGl0ZW1zIGRvIG5vdCBkaXNwbGF5IHRoZWlyIGNoaWxkcmVuIHdoZW4gdW5mb2xkZWQgYnkga2V5Ym9hcmQgIAo8YnI+NjM5MDM6ICBzZXRTaW1wbGUgIAo8YnI+NjQyMTY6ICBUYWJsZUl0ZW0uZ2V0VGV4dCAtIHdyb25nIGZvciBmaXJzdCBjb2x1bW4gIAo8YnI+NjQyMjA6ICBXcm9uZyBjdXJzb3IgdXNlZCBmb3IgU1dULkNVUlNPUl9TSVpFQUxMICAKPGJyPjY0Mjk0OiAgVGl0bGUgYW5kIG1heGltaXNhdGlvbiBkb2VzIG5vdCB3b3JrIG9uIFBvY2tldCBQQyAgCjxicj42NDQ1NzogIGNhbGxpbmcgQ1RhYkl0ZW0uc2V0Rm9udCAoYW5kIHNldEltYWdlKSByZXBlYXRlZGx5IHdpdGggbnVsbCBjYXVzZXMgcmVwYWludHMgIAo8YnI+NjQ1MTI6ICBBZGQgc21hbGxGb250IGFuZCBub0ZvY3VzQm9yZGVyIHByb3BlcnRpZXMgdG8gSW5mby5wbGlzdCBmaWxlICAKPGJyPjIwOTAzOiAgQUNDOiBDaGVja2JveGVzIG5vdCBpZGVudGlmaWVkIGNvcnJlY3RseSAgCjxicj4yNjYzMjogIFRhYmxlIGNsb3VtbiBoZWFkZXJzIG5vdCBkcmF3biBpbiBHVEsyICAKPGJyPjI4OTkwOiAgR1RLOiBQYWludHMgbm90IGZsdXNoZWQgYWZ0ZXIgb3BlbigpICAKPGJyPjM1NzUzOiAgbWlzc2luZyBBUEk6IFRhYmxlQ3Vyc29yLnJlbW92ZVNlbGVjdGlvbkxpc3RlbmVyKFNlbGVjdGlvbkxpc3RlbmVyKSAgCjxicj4zNzk1NjogIENyYXNoIGluIE9TLmdka19waXhidWZfc2NhbGVfc2ltcGxlICgpICAKPGJyPjM4ODA5OiAgRENSIC0gbmVlZCBEaXNwbGF5LmdldFN5c3RlbUN1cnNvcigpICAKPGJyPjM4ODI4OiAgRWNsaXBzZSBDcmFjaCBDbG9zaW5nIFNlc3Npb24gIAo8YnI+Mzg4NzU6ICBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIG9uIHN0YXJ0dXAgIAo8YnI+NDA1NDA6ICBFY2xpcHNlIEpWTSBjcmFzaGVzIHJhbmRvbWx5IGluIEdUSyBuYXRpdmUgY29kZS4gIAo8YnI+NDI0MjI6ICBlY2xpcHNlIGNyYXNoZXMgb24gc3RhcnR1cCB3aXRoIFJlZEhhdCA5LjAgc3lzdGVtICAKPGJyPjQ3MjY2OiAgW2Jyb3dzZXJdIGhvdyBjYW4gd2UgZm9ybWF0IFVSTCBsaW5rcyB0byBwYXNzIG9uIGluZm9ybWF0aW9uIHRvIHRoZSBTV1QgYXBwICAKPGJyPjQ4ODUwOiAgU1dUIEV4YW1wbGUgcHJvamVjdHMgYnVpbGQgZXJyb3IgIAo8YnI+NTIxMDk6ICBkcmF3VGV4dCgpIHRyZWF0cyAiXG4iIGRpZmZlcmVudGx5IGlmIGFudGlhbGlhc2luZyBpcyBvbiBvciBvZmYgIAo8YnI+NTYwNjM6ICBbQ29sb3JzXSBQZXJzcGVjdGl2ZSB0b29sYmFyIGl0ZW1zIGhhdmUgd3JvbmcgYmFja2dyb3VuZCAgCjxicj41Njk4MTogIFticm93c2VyXSBuZWVkIHRvIHN1cHBvcnQgQWxlcnRzIG9uIE1vemlsbGEgIAo8YnI+NTc4NDM6ICBGYXRhbCBFcnJvciBpbiBTV1QgY2F1c2luZyBFY2xpcHNlIHRvIGNyYXNoLiAgCjxicj41ODE5MzogIFtCcm93c2VyXSBjb250ZW50IGVtYmVkZGVkIHVzaW5nIHRoZSBIVE1MIE9CSkVDVCBlbGVtZW50IGRvZXNuJ3Qgc2hvdyB1cCBpbiBzd3QgYnJvd3NlciAgCjxicj41OTYxNDogIENsaWNraW5nIHRoZSBDVGFiRm9sZGVyIGNoZXZyb24gdHdpY2UgZG9lcyBub3QgbWFrZSB0aGUgZHJvcCBkb3duIGdvIGF3YXkgIAo8YnI+NTk2OTg6ICBbYnJvd3Nlcl0gaW52ZXN0aWdhdGUgc3VwcG9ydCBmb3IgY3VzdG9tIHBvcHVwIG1lbnUgIAo8YnI+NjAwMzc6ICBBY2Nlc3NpYmlsaXR5OiBKdW5pdCBQcmVmZXJlbmNlIFBhZ2UgY2hlY2tib3hlcyBpbiBsaXN0IHZpZXcgbm90IHJlYWRhYmxlICAKPGJyPjYwMTAyOiAgU2hlbGwgb3BlbmVkIG9uIEtERTMuMi54IGRvZXMgbm90IHBhaW50ICAKPGJyPjYwMjM3OiAgW2Jyb3dzZXJdIEJyb3dzZXJFeGFtcGxlIHJ1bm5pbmcgaW5zaWRlIEVjbGlwc2UgZG9lcyBub3QgZ2V0IGtleS9tb3VzZSBldmVudHMgIAo8YnI+NjA0NTc6ICBbYnJvd3Nlcl0gc2FmYXJpIC0gZG9lcyBub3QgZmlyZSBsb2NhdGlvbiBldmVudCBmb3IgaW5uZXIgZnJhbWUgIAo8YnI+NjA3Mjc6ICBCSURJOiBTdHlsZWRUZXh0IC0gV3JvbmcgY3Vyc29yIHBvc2l0aW9uaW5nIG9uIGJpZGkgYm91bmRhcnkgIAo8YnI+NjA4MTk6ICBQaG90b246IFRyZWUuamF2YSByZWZlcmVuY2VzIGphdmEudXRpbC5TdGFjayAobm90IGluIEpESyAxLjEpICAKPGJyPjYxMzE2OiAgU1dUIGVycm9yIG9jY3VycmVkIG9uIEVjbGlwc2UgMjAwNDA1MDYwMjAwICAKPGJyPjYyNTIzOiAgbGF1bmNoIGVjbGlwc2Ugd2l0aCAtRE1CQ1MgYXMgYSB2bWFyZyBhbmQgY29weS1wYXN0ZSB3b3JrcyBpbmNvcnJlY3RseSAvIGN0cmwgZjYgc2hvd3MgdW5kaXNwbGF5YWJsZSBjaGFyYWN0ZXJzICAKPGJyPjYyNTI4OiAgVHJhY2tlciBkb2VzIG5vdCBrZWVwIHVwIHdpdGggbW91c2UgbW92ZW1lbnQgIAo8YnI+NjI3NjE6ICBTV1Qgc2hvdWxkIG5vdCBncmFiIGZvY3VzIG9uIHRyYXZlcnNhbCBldmVudHMgIAo8YnI+NjI3OTA6ICBwYWNraW5nIGEgc2hlbGwgaGFzIHRoZSBlZmZlY3Qgb2YgY3JlYXRpbmcgYW4gdW51c2FibGUgc2hlbGwgb24gcG9ja2V0cGMgIAo8YnI+NjMwMDY6ICBUeXBvIGluIFNXVCBkb2MgZm9yIE9OX1RPUCAgCjxicj42MzEwMjogIFtJY29uc10gSXQgaXMgaGFyZCB0byBkaXN0aW5ndWlzaCBwcmVzc2VkL25vbiBwcmVzc2VkIGljb25zIG9uIE1hYyBPUyAxMC4zLjMgIAo8YnI+NjMxMDU6ICBUYWJsZUl0ZW0uZ2V0SW1hZ2VCb3VuZHMoKSByZXR1cm5zIGluY29ycmVjdCB2YWx1ZSBmb3IgQ29sdW1uIDAgIAo8YnI+NjMxNDM6ICBtYWxmb3JtZWQgTUFOSUZFU1QuTUYgaW4gZ3RrL21vdGlmL2d0azY0IGZyYWdtZW50cyAgCjxicj42MzI5NjogIFticm93c2VyXSBGMSBjcmFzaGVzIHdvcmtiZW5jaCAgCjxicj42MzY2MTogIFZNIHRlcm1pbmF0ZXMgYWJub3JtYWxseSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwNTIgLSBUdWVzZGF5IE1heSAxOCwgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxNjYyMDogCUdDLmRyYXdMaW5lIGFuZCBHQy5kcmF3UG9seWxpbmUgYXJlbid0IGNvbnNpc3RlbnQgW3BvcnRhYmlsaXR5XQo8YnI+MTk4Mjg6IAlDVGFiRm9sZGVyIHBvcHVwcyBzaG91bGQgbm90IHNwYW4gbW9uaXRvcnMuCjxicj4yMTU3NDogCUNvbG9yIHNlbGVjdGlvbiBmb3IgaW5kaXZpZHVhbCB0YWJsZSBjZWxscwo8YnI+MjczMzE6IAlDVGFiRm9sZGVyIHJpZ2h0IGNvbnRyb2wgcmVxdWVzdAo8YnI+Mjg3NjY6IAlQcmludGluZyBJbWFnZXMgZG9lcyBub3QgcmVzcGVjdCB0cmFuc3BhcmVuY3kKPGJyPjM2NzMyOiAJUGVyZm9ybWFuY2UgcHJvYmxlbXMgb24gTWFjIC0gc2xvdyBhcHBlYXJhbmNlIG9mIGNtZC1zcGFjZSByZXN1bHRzCjxicj4zOTMyMDogCVNXVC5OT19CQUNLR1JPVU5EIHN0eWxlIGRvZXMgbm90IHdvcmsgaW4gTGludXgtR1RLCjxicj4zOTg4MTogCUJJREk6IERDUiAtIE5lZWQgdG8gaW1wbGVtZW50IGEgVGV4dCBMYXlvdXQgY2xhc3MKPGJyPjQ0OTE1OiAJQ2xpcGJvYXJkIGdldEF2YWlsYWJsZVR5cGVzIHJ1bnMgdGhlIGV2ZW50IGxvb3Agb24gR1RLCjxicj40NTA5MzogCUVkaXRvciB0YWIgdG9vbHRpcCBwb3NpdGlvbiB3cm9uZyBmb3IgZHVhbCBtb25pdG9yIHNldHVwCjxicj41MjQ1ODogCVtXb3JrYmVuY2hdIHdyb25nIGJhY2tncm91bmQgY29sb3IgaW4gdGFiIGNvcm5lcnMKPGJyPjUyNTc0OiAJUmVuZGVyaW5nIG9mIENCYW5uZXIgd2l0aCBvbmx5IG9uZSBjaGlsZAo8YnI+NTI1OTU6IAlDVGFiRm9sZGVyIGZsYXNoaW5nIGR1cmluZyByZXNpemUKPGJyPjUzNzkxOiAJSW1wbGVtZW50IENvbnRyb2wuc2V0UmVkcmF3KCkgb24gcGxhdGZvcm1zIG90aGVyIHRoYW4gV2luZG93cwo8YnI+NTQyNjQ6IAlbRWRpdG9yTWdtdF0gRWRpdG9yIGNsb3NlIGJ1dHRvbgo8YnI+NTQ0OTk6IAlUcmVlLmdldEl0ZW0oUG9pbnQpIHJldHVybnMgZWxlbWVudCBldmVuIGlmIHBvaW50IGlzIG92ZXIgKy8tIGFyZWEKPGJyPjU1MzkyOiAJQ3JpdGljYWwgR1RLIEVycm9yIGluIGd0a3NlbGVjdGlvbi5jCjxicj41NTc0ODogCVticm93c2VyXSBmYWlsIHRvIGxhdW5jaCB1bmRlciBSSCBFTDMKPGJyPjU2MTcwOiAJU1dUX0FXVCBwcm9ibGVtcwo8YnI+NTY2OTQ6IAlUeXBpbmcgc2xvdyBiZWNhdXNlIHRvbyBtdWNoIGRhdGEgc2VudCBvdmVyIHRoZSB3aXJlICh3YXM6IFtXb3JrYmVuY2hdIHNpbmNlIDMuME04IHR5cGluZyBpcyB0ZXJyaWJseSBzbG93KQo8YnI+NTc3Nzc6IAlbdHlwaW5nXSBXcm9uZyBiZWhhdmlvciBmb3IgYXBwZW5kIG5leHQgIndvcmQiIHRvIHNlbGVjdGlvbiBhY3Rpb24KPGJyPjU3OTY1OiAJR1RLOiBDb250cm9sLnNldEJhY2tncm91bmQoKSB3aXRoIHNhbWUgY29sb3IgY2F1c2VzIE9TIHBhaW50IGV2ZW50IChCQkFXVCkKPGJyPjU5MzI5OiAJW0Jyb3dzZXJdIGJyb3dzZXIgY29kZSBmYWlscyBpZiBncmUuY29uZiBjb250YWlucyBhIGJsYW5rIGxpbmUgYmVmb3JlIHZlcnNpb24gbnVtYmVyCjxicj41OTMzMzogCVtCcm93c2VyXSBFeGNlcHRpb24gZXJyb3IgbWVzc2FnZXMgYXJlIG5vdCB2ZXJ5IG1lYW5pbmdmdWwKPGJyPjU5OTk4OiAJW2Jyb3dzZXJdIGhvdmVyIHRvb2x0aXBzIGF0IHdyb25nIHBvc2l0aW9uCjxicj42MDA2ODogCVRhYmxlQ3Vyc29yIGNyYXNoZXMgd2hlbiBzY3JvbGxpbmcgdmVydGljYWxseSBhbiBlbXB0eSB0YWJsZQo8YnI+NjA2NjI6IAl2ZXJzaW9uLW1hdGNoIGRlcHJlY2F0ZWQgaW4gU1dUIGZyYWdtZW50IG1hbmlmZXN0cwo8YnI+NjA5MzQ6IAlbaW50ZXJvcF0gdGFiIGZvY3VzIHByb2JsZW0KPGJyPjYxMjA3OiAJY2Fubm90IHVzZSBpY29ucyB3aXRoID4gOCBiaXQgY29sb3IgZGVwdGgKPGJyPjYxMzk3OiAJVUkgc2VlbXMgdG8gYmVjb21lICJkaXNjb25uZWN0ZWQiIGZyb20gdGhlIGFwcGxpY2F0aW9uCjxicj42MTQ5NjogCVtFZGl0b3JNZ210XSBFZGl0b3IgdGFicyBzaG91bGQgYWRqdXN0IHRoZW1zZWx2ZXMgb24gd2luZG93IHJlc2l6ZQo8YnI+NjE3ODk6IAlbQnJvd3Nlcl0gYnJvd3NlciBjb2RlIHVzZXMgYSBoYXJkY29kZWQgY29uZmlnIGZpbGUgbmFtZSAvZXRjL2dyZS5jb25mCjxicj42MTgxODogCUNoZWVzZSBpbiBWaWV3Rm9ybQo8YnI+NjE5NzA6IAlOUEUgaW4gVGFibGVJdGVtIGNsYXNzIGluIGdldEltYWdlQm91bmRzIChpbnQgaW5kZXgpCjxicj42MjAxMDogCU5QRSBQcmVzc2luZyBDVFJMLU8gaW4gamF2YSBlZGl0b3IKPGJyPjYyMDkwOiAJUHJlc3NpbmcgZW50ZXIgaW4gY29tYm8gdHJpZ2dlcnMgZGlhbG9nIHRyYXZlcnNhbAo8YnI+NjIxOTU6IAlFcnJvciBpbiBTV1QjU0NST0xMX0xPQ0sgSmF2YURvYwo8YnI+NjIzOTM6IAlTV1RfQVdUIGVudGVyIGtleSBtaXNiZWhhdmVzIHdpdGggSlRleHRBcmVhIGluIGEgd2l6YXJkCjxicj42MjQ3NzogCUNsaWNraW5nIG9uIHNoZWxsIHRpdGxlIGJhciBjYXVzZXMgYWN0aXZhdGlvbiBldmVudHMgd2l0aCBudWxsIGFjdGl2ZSBzaGVsbHMKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA1MSAtIFR1ZXNkYXkgTWF5IDExLCAyMDA0IDwvaDI+Cgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxibG9ja3F1b3RlPgpUZXh0TGF5b3V0LmdldEFzY2VudCgpIGFkZGVkCjxicj5UZXh0TGF5b3V0LmdldERlc2NlbnQoKSBhZGRlZAo8YnI+VGV4dExheW91dC5zZXRBc2NlbnQoaW50KSBhZGRlZAo8YnI+VGV4dExheW91dC5zZXREZXNjZW50KGludCkgYWRkZWQKPGJyPkRpc3BsYXkuZ2V0U3lzdGVtSW1hZ2UoaW50KSBhZGRlZAo8YnI+RGlzcGxheS5nZXRTeXN0ZW1DdXJzb3IoaW50KSBhZGRlZAo8L2Jsb2NrcXVvdGU+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEyNjI1OiAgTWVudSBpdGVtcyBzdGlsbCBncmFiIGFjY2VsZXJhdG9ycyB3aGVuIGRpc2FibGVkICAKPGJyPjI1NzAzOiAgR2V0dGluZyBzeXN0ZW0gaWNvbnMgZm9yIGRpYWxvZ3MgIAo8YnI+Mjg4NTg6ICBDdXJzb3IgYXBwZWFycyBiZWhpbmQgY2hhcmFjdGVyIGFsdGhvdWdoIGl0J3MgaW4gZnJvbnQgb2YgIAo8YnI+NDA1MjM6ICBbbGF1bmNoZXJdIEFsbG93IGxhdW5jaGVyIGJ1aWxkIHVzaW5nIE1pbkdXICAKPGJyPjQzOTIxOiAgZ3JhZGllbnQgZmlsbCBkb2VzIG5vdCBwcmludCBpdHMgY29sb3IgcHJvcGVybHkgIAo8YnI+NDY4MjQ6ICBDb250cm9sRXhhbXBsZTogc2Nyb2xsaW5nIENhbnZhcyBsZWF2ZXMgc2NyZWVuY2hlZXNlICAKPGJyPjQ3NTExOiAgU2hlbGwuc2V0VmlzaWJsZSBydW5zIGV2ZW50IGxvb3AgIAo8YnI+NTMwMzQ6ICBzaG93SXRlbSgpIG5vdCB3b3JraW5nIHdoZW4gc2V0UmVkcmF3KGZhbHNlKSAgCjxicj41NTYxNjogIFticm93c2VyXSBTV1QuQnJvd3NlciAoTW96aWxsYSkgZG9lcyBub3QgbGlrZSBodHRwcyBsaW5rcyAoaW1nIHNyYz0iaHR0cHM6Ly8uLi4iIG9yIGhyZWY9Imh0dHBzOi8vLi4uIikgIAo8YnI+NTc1MDY6ICBQcmVzc2luZyBUQUIga2V5IGNyZWF0ZXMganVuayBpbiBlZGl0b3IgIAo8YnI+NTkzNTI6ICBbYnJvd3Nlcl0gR1RLIGNyYXNoZXMgb24gYXR0YWNobWVudHMgIAo8YnI+NjA0MjA6ICBsb3RzIG9mIGNyYXNoZXMgc2luY2UgTTggIAo8YnI+NjA0NTQ6ICBbYnJvd3Nlcl0gQnJvd3NlciBjcmFzaGVzIG9uIEphZ3VhciAgCjxicj42MDQ3MTogIEVjbGlwc2Ugc3RvcHMgcmVzcG9uZGluZyB0byBtb3VzZSwgTnVsbFBvaW50ZXJFeGNlcHRpb24gb24gc2h1dGRvd24gIAo8YnI+NjA1Njg6ICBUYWJsZSBUcmVlSXRlbSBzZWxlY3Rpb24gZmFpbHMgd2l0aCBNb3VzZUV2ZW50IHBvc2l0aW9uICAKPGJyPjYwNjA3OiAgaW5jb25zaXN0ZW50IEFQSSBpbiBGb250RGF0YSAgCjxicj42MDcwNDogIExvbmcgbWVudSBpdGVtIGxhYmVscyBjdXQgb2ZmICAKPGJyPjYwODkzOiAgWzY0XSBOUEUgb24gc3RhcnR1cCAgCjxicj42MDkxMzogIFN0eWxlZFRleHQgc2hvd3MgbGluZXMgd2hlbiBtdWxpdHBsZSBsaW5lcyBhcmUgc2VsZWN0ZWQgIAo8YnI+NjA5Mzc6ICBIaXR0aW5nIEVudGVyIHdoZW4gYSBjb21ib2JveCBpcyBvcGVuIGNhbiBpbnZva2UgZGVmYXVsdCBidXR0b24gIAo8YnI+NjA5Njk6ICBbYnJvd3Nlcl0gY2xpY2tpbmcgbGluayB0byBQREYgY3Jhc2hlcyBWTSAgCjxicj42MTEwOTogIFdpZGdldCBpcyBkaXNwb3NlZCBlcnJvciBkaXNwb3Npbmcgc2hlbGwgIAo8YnI+NjEyMzk6ICBUYWJsZUl0ZW0gTlBFICAKPGJyPjYxMzM3OiAgRGlhbG9ncyByZXNpemUgd2hlbiBtb3ZlZCBvbiBTb2xhcmlzICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA1MCAtIFR1ZXNkYXkgTWF5IDQsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPGJsb2NrcXVvdGU+Ck5ldyBhY2Nlc3NpYmlsaXR5IHN0YXRlIGFuZCByb2xlIGNvbnN0YW50cyBBQ0MuU1RBVEVfTElOS0VEIGFuZCBST0xFX0xJTksuCjxicj5TdHlsZVJhbmdlIG5vdyBhY2NlcHRzIFNXVC5JVEFMSUMuCjxicj5DVGFiRm9sZGVyLk1JTl9UQUJfV0lEVEggaXMgZGVwcmVjYXRlZCBhbmQgcmVwbGFjZWQgYnkgQ1RhYkZvbGRlci5zZXRNaW5pbXVtQ2hhcmFjdGVycwo8L2Jsb2NrcXVvdGU+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ1ODc6ICBTdHlsZWRUZXh0IC0gc3VwcG9ydCBpdGFsaWMgZm9udHMgYW5kIGl0YWxpYyBmb250IHN0eWxlICgxRzYwQzRYKSAgCjxicj4xMDg0NjogIFRhYiB0aXRsZXMgbm90IHJlYWQgYnkgSkFXUyAgCjxicj4yMTc3MTogIEFjY2Vzc2liaWxpdHkgZm9yIEJ1dHRvbnMgaWdub3JlZCBpbiBKQVdTICAKPGJyPjI1NjI5OiAgTmVlZCBTVEFURV9TWVNURU1fTElOS0VEIG1hcHBlZCB0byBvbmUgb2YgdGhlIHN0YXRlcyBpbiBBQ0MuICAKPGJyPjQxODg3OiAgW2Jyb3dzZXJdIE1hYyAtIEhUTUwgQnJvd3NlciB3aWRnZXQgLSBpbnZlc3RpZ2F0ZSBTYWZhcmkgYnJvd3NlciAgCjxicj40MjI2NDogIFtPdXRsaW5lXSBTaG93IE91dGxpbmUgcG9wdXAgdmVyeSBzbG93ICAKPGJyPjQ0MDA4OiAgW2Jyb3dzZXJdIEJyb3dzZXIgY29tcG9uZW50IGdyYWJzIGZvY3VzIHdoZW4gbG9hZGVkLiAgCjxicj41MDUyNDogIFJDUDogQ1RhYkZvbGRlciB0cnVuY2F0ZWQgdGFicyBzaG91bGQgYXBwZWFyIGFzIHRvb2x0aXAgIAo8YnI+NTE2NzY6ICBOZXcgTG9vayBDVGFiRm9sZGVyIG1lbnUgZG9lcyBub3Qgc3RheSBvcGVuICAKPGJyPjUyMDg3OiAgbm90IHNob3dpbmcgY2xvc2UgYnV0dG9uIG1ha2VzIGl0IGVhc3kgdG8gY2xvc2UgdGFicyBhY2NpZGVudGFsbHkgIAo8YnI+NTI0ODI6ICBbTmV3IExvb2tdIGJsYWNrIGJveCBhcm91bmQgdmlldyB0YWIgbGFiZWxzICAKPGJyPjUyNDg5OiAgQ1RhYkZvbGRlciBzZWxlY3RlZCB0YWIgbm90IHByb3Blcmx5IHJlbmRlcmVkICAKPGJyPjUyNTkzOiAgQ1RhYkZvbGRlci5zZXRUYWJIZWlnaHQgYW5kIHBhaW50IHByb2JsZW0gIAo8YnI+NTI4Mzc6ICBbRWRpdG9yIE1nbXRdIENsb3NpbmcgYW4gZWRpdG9yIHdoZW4gdXNpbmcgbXVsdGkgdGFicyBkb2VzIG5vdCBhbHdheXMgcmVkcmF3IHByb3Blcmx5ICAKPGJyPjUyOTU4OiAgVGFiRm9sZGVyLCBuZXcgbG9vayBkcmF3cyBkb3R0ZWQgc2VsZWN0ZWQgIAo8YnI+NTQ1NzU6IENUYWJGb2xkZXI6IFNlbGVjdGluZyB0YWJzIHNob3VsZCBub3QgYWZmZWN0IHdoZXRoZXIgY2hldnJvbiBpcyBzaG93biAoc2hvdWxkIHVzZSBjb25zdGFudCBzcGFjZSkKPGJyPjU0NTkxOiAgQ1RhYkZvbGRlcjogc2NyZWVuIGNoZWVzZSAgCjxicj41NTI0NTogIENUYWJGb2xkZXIgZG9lcyBub3QgZ2l2ZSBhdmFpbGFibGUgc3BhY2UgdG8gdGFiIGVhcmx5IGVub3VnaCAgCjxicj41NjQ3MjogIFtGb250L0NvbG91cl0gQWN0aXZlIHBhcnQgZm9yZWdyb3VuZCBvbiB3aGl0ZSBwb3Zva2VzIG5hc3R5IGxvb2tpbmcgY2xvc2Ugd2lkZ2V0cyAgCjxicj41NjUzNTogIFtXb3JrYmVuY2hdIE5vIHNlcGFyYXRvciBiZXR3ZWVuIHBhcnQgdHJpbSBhbmQgaXRzIGNvbnRlbnQgaXMgZGlmZmljdWx0IG9uIHRoZSBleWVzICAKPGJyPjU4MjcyOiAgQklESTogVGhlIEMvIEMrKyBlZGl0b3IgZG9lc24ndCBwcmVzZXJ2ZSB0aGUga2V5Ym9hcmQgbGFuZ3VhZ2UgYWZ0ZXIgcHJlc3Npbmcgc2FwY2UgYmFyICAKPGJyPjU4NzA0OiAgQ0Jhbm5lciBjb21wdXRlc2l6ZSBzZWVtcyB3cm9uZyB3aGVuIG5vIGNvbnRyb2wgb24gdGhlIHJpZ2h0IGhhbmQgc2lkZSAgCjxicj41ODg0MzogIFRhYmxlQ3Vyc29yIGV4YW1wbGUgaW4gSmF2YWRvYyBkb2Vzbid0IHdvcmsgb24gR1RLISAgCjxicj41OTUyNDogIEV2YWx1YXRpb24gcG9wLXVwIGtleWJpbmRpbmdzIGFyZSBicm9rZW4gIAo8YnI+NTk4NjE6ICBhc3luY0V4ZWMgcnVubmFibGVzIG5vdCBydW4gdW50aWwgZHJhZyBjb21wbGV0ZSBpbiBXaW5kb3dzICAKPGJyPjYwMTI3OiAgW1Byb3BlcnRpZXNWaWV3XSBnYXJiYWdlIGluIHRoZSBwcm9wZXJ0aWVzIHZpZXcgIAo8YnI+NjAzMzQ6ICBDYW4ndCBmb3JjZSBmb2N1cyB0byBhIHNoZWxsIChCQkFXVCkgIAo8YnI+NjA0OTI6ICBbYnJvd3Nlcl0gc2FmYXJpIC0gMiBicm93c2VycyBvbiBkaWZmZXJlbnQgdGFiIGl0ZW1zIGluIHNhbWUgdGFiIGZvbGRlciBvdmVybGFwICAKPGJyPjYwNjg2OiAgUHJvZ3JhbS5oYXNoQ29kZSgpIHRocm93cyBOdWxsUG9pbnRlckV4Y2VwdGlvbiB1bmRlciBsaW51eCB3aXRoIGdub21lICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA0OSAtIFR1ZXNkYXkgQXByaWwgMjcsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMzI1MjQ6ICBDb29sQmFyIENsaXBzICdydW4nIGljb24gIAo8YnI+Mzc3ODU6ICBjdHJsK2RlbGV0ZSBudWtlcyBub24tYWxwaGFudW0gY2hhcnMgIAo8YnI+NDM3Njk6ICBFY2xpcHNlIGNyYXNoZXMgd2hlbiBsb2FkaW5nIHdlYiBwYWdlIHdpdGggYXBwbGV0IGluIE9MRSBCcm93c2VyIHZpZXcgIAo8YnI+NDc5Mzk6ICBbYnJvd3Nlcl0gRXhwb3NlIG5hdGl2ZSBtZW51cyBpbiBXZWJCcm93c2VyICAKPGJyPjUxNjgyOiAgdXBkYXRlIChjdXN0b20pY29udHJvbCBleGFtcGxlIHRvIHBlcm1pdCBzZXR0aW5nIGZvbnQgb24gc2luZ2xlIGl0ZW0gIAo8YnI+NTE3Mjc6ICBTV1RfQVdUJ3MgdXNlIG9mIGVtYmVkZGVkRnJhbWUgZG9lcyBub3QgYWxsb3cgcmVxdWlyZWQgc3ViY2xhc3Npbmcgb2YgdGhlIGVtYmVkZGVkIEZyYW1lICAKPGJyPjUzNTA2OiAgUHJvZ3JhbS5nZXRQcm9ncmFtKCkgRG9lcyBOb3QgR2V0IERlZmF1bHQgQ29tbWFuZCAgCjxicj41NTYyNTogIENvbXBpbGluZyBTV1Qgb24gdG9wIG9mIEdUSyAyLjQuMCAgCjxicj41NTk1NjogIFtEeW5hbWljVUldIFBlcnNwZWN0aXZlIGRlbGV0ZWQgb25seSBhZnRlciBXb3JrYmVuY2ggcmVzdGFydCAgCjxicj41NjEyNjogIFN0eWxlZFRleHQgYmFja2dyb3VuZCBoaWdobGlnaHRpbmcgZG9lc24ndCB3b3JrICAKPGJyPjU2Mzc2OiAgW0VkaXRvck1nbXRdIEltbW9ydGFsIGVkaXRvciB0YWIgdG9vbHRpcHMgIAo8YnI+NTcwNzk6ICBbaW50ZXJvcF0gU1dUX0FXVCBjYXVzZXMgSlZNIGNyYXNoICAKPGJyPjU3MTQzOiAgRmFzdCB2aWV3IGFuaW1hdGUgdHJhbnNpdGlvbiBiYWQgb24gTGludXggIAo8YnI+NTcyMjU6ICBbYnJvd3Nlcl0gU1dUIEJyb3dzZXIgV2lkZ2V0IENyYXNoZXMgV29ya2JlbmNoIG9uIFhQIHdoZW4gbG9hZGluZyB0aGUgU2hvY2t3YXZlIFBsdWctaW4gIAo8YnI+NTczODA6ICBFeGNlc3MgY2xpcHBpbmcvZGlydHkgYXJlYSBmb3IgVGFibGUgUGFpbnRMaXN0ZW5lcidzIHBhaW50Q29udHJvbChQYWludEV2ZW50KSAgCjxicj41NzU2MjogIFtXb3JrYmVuY2hdIERCQ1M6IFdpbmRvdyByZXNpemluZyBkb2VzIG5vdCB3b3JrIHByb3Blcmx5ICAKPGJyPjU4MDczOiAgVGFibGUuamF2YSBqYXZhLmxhbmcuQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uOiAgCjxicj41ODMwODogIFNXVF9BV1QgLSBFbWJlZGRlZCBKU3BsaXRQYW5lIHJlc2l6YWJsZSBhcnJvd3MgIAo8YnI+NTg1NzU6ICBkcmF3UmVjdGFuZ2xlcyBpbiBUcmFja2VyIGNhdXNlcyBtaXNzZWQgbW91c2UgZXZlbnRzICAKPGJyPjU4NjM4OiAgUGVybWl0IHRvIGhhdmUgc3luY2hyb25vdXMgZGlzcGxheSB0byBoZWxwIGRlYnVnZ2luZyAgCjxicj41ODczMjogIENvb2xiYXIgb24gTGludXgtR1RLIHNob3VsZCBkcmF3IG5hdGl2ZSBoYW5kbGVzICAKPGJyPjU4ODUxOiAgV2hlbiBzaGVsbCBpcyBjcmVhdGVkIHdpdGggU1dULk5PX1RSSU0sIHdpbmRvd3MgZG9lcyBub3Qgc2hvdyBpdCBvbiB0YXNrIGJhciAgCjxicj41OTA1MTogIGZpbGxHcmFkaWVudFJlY3RhbmdsZSBkb2Vzbid0IHdvcmsgd2l0aCBYT1JNb2RlIG9uIFdpbmRvd3MgIAo8YnI+NTkyNzk6ICBJdGVtLnNldFRleHQoKSBpbXBsLiBkb2Vzbid0IGZvbGxvdyBKYXZhRG9jICAKPGJyPjU5NDI0OiAgQklESTogbGV2ZWwgb2YgdGhlIGZpcnN0IGRpcmVjdGlvbmFsIHJ1biBpcyBuZXZlciBkZXRlY3RlZCAgCjxicj41OTQ3MjogIEVjbGlwc2Ugc3BsYXNoIHNjcmVlbiBsYWJlbCBpcyAiU2lsZW5pbyIgIAo8YnI+NTk2MTU6ICBFbXB0eSBzcGFjZSBiZWZvcmUgaGFuZGxlIGluIGEgY29vbGJhciAgCjxicj41OTcwNzogIFN0eWxlZFRleHQgaXMgbm90IHNldHRpbmcgdGhlIE9TIGJhY2tncm91bmQgIAo8YnI+NTk4NzI6ICBEb2N1bWVudGF0aW9uIGZpeCBmb3IgUm93TGF5b3V0ICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA0OCAtIFR1ZXNkYXkgQXByaWwgMjAsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPGJsb2NrcXVvdGU+CkNvb2xCYXIgbm93IGhhcyBTV1QuRkxBVCBzdHlsZS4KPC9ibG9ja3F1b3RlPgoKPGgzPjxhIE5BTUU9IkJyZWFraW5nIENoYW5nZXMiPjwvYT5CcmVha2luZyBDaGFuZ2VzPC9oMz4KPGJsb2NrcXVvdGU+CkNUYWJJdGVtIG5vIGxvbmdlciBzdXBwb3J0cyBzZXQvZ2V0Rm9yZWdyb3VuZCBhbmQgc2V0L2dldEJhY2tncm91bmQuCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjAxODY6ICBDb3B5cmlnaHQgZGF0ZXMgc3RpbGwgYXJlIDIwMDEgIAo8YnI+MjI1ODk6ICBHVEs6IFN0eWxlZFRleHQgd2lkZ2V0IGlzIHNsb3cgIAo8YnI+MjM1NjY6ICBBY2Nlc3NpYmlsaXR5IC0gdG9vbGJhciBub3QgYWNjZXNzaWJsZSBieSBrZXlib2FyZCAgCjxicj40MTA5MDogIFRIQUkvVklFVDogVGhlIGJlaGF2aW9yIG9mIHRleHQgZWRpdGluZyBmdW5jdGlvbnMgYXJlIG5vdCBjb3JyZWN0LiAgCjxicj40OTEzMzogIFNXVF9BV1QgQVBJIGNsYXNzIHVuZG9jdW1lbnRlZCAgCjxicj41MzEwNzogIFNsaWRlciBjcmFzaGVzIHdoZW4gaG9va2luZyByZXNpemUgY2FsbGJhY2sgIAo8YnI+NTM4MTQ6ICB2aWV3cyBhcmUgYmxhbmsgd2hlbiBkZXRhY2hlZCBhdXRvbWF0aWNseSBieSBzd2l0Y2hpbmcgcGVyc3BlY3RpdmUgIAo8YnI+NTQwNTE6ICBGb250IGJhc2VsaW5lcyBkb24ndCBsaW5lIHVwIGluIEphdmEgZWRpdG9yICAKPGJyPjU0MjI1OiAgQ2hlY2tib3ggVGFibGVJdGVtcyBkb24ndCBob25vciBiYWNrZ3JvdW5kIGNvbG9yIG5lYXIgY2hlY2tib3ggIAo8YnI+NTQ5ODk6ICBbQ2VsbEVkaXRvcnNdIFtyZWdyZXNzaW9uXSBDb21ib0JveENlbGxFZGl0b3IgZG9lcyBub3QgZmlyZSB2YWx1ZSBhcHBsaWVkICAKPGJyPjU3MDAzOiAgREJDUzpDb3B5L1Bhc3RlIG9yIGlucHV0IERCQ1MgZGlzcGxheSBpbmNvcnJlY3RseSBpbiBwcm9qZWN0IGZpbGUgIAo8YnI+NTcwMDQ6ICBEQkNTOkNhbiBub3QgY29weS9QYXN0ZSBvciBpbnB1dCBEQkNTIGRhdGEgaW4gcHJvamVjdCBmaWxlICAKPGJyPjU3NDI2OiAgQ2xpcHBlZCBpdGVtcyB3aGVuIHNldHRpbmcgYSB0cmVlIGl0ZW0gdG8gdXNlIGEgYm9sZCBmb250ICAKPGJyPjU3NjI3OiAgQ2FuJ3QgY2xpY2sgaW4gQ29udGVudCBBc3Npc3Qgd2luZG93IG9mIE5ldyBDbGFzcyB3aXphcmQgIAo8YnI+NTc5NDg6ICBbYnJvd3Nlcl0gaG93IHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gYSBjYWxsIHRvIHNldFRleHQgYW5kIGEgaHlwZXJsaW5rIGFjdGl2YXRpb24gIAo8YnI+NTgwNzE6ICBJQ08gaW1hZ2VzIHBhaW50ZWQgbm90IGNvcnJlY3RseSB3aGVuIHNtYWxsZXIgdGhhbiAxN3gxNyBwaXhlbHMgIAo8YnI+NTgwOTM6ICBzd3QtZ3RrOiB1c2VzIH4xMDAlIENQVSB3aGlsZSBkcmF3aW5nIHVzaW5nIGZpbGxHcmFkaWVudFJlY3RhbmdsZSgpICAKPGJyPjU4MjQzOiAgW2Jyb3dzZXJdIGhvdmVyIG1lc3NhZ2VzIGRvbid0IHNob3cgdXAgaW4gbW96aWxsYSAgCjxicj41ODM0NjogIFticm93c2VyXSBCcm93c2VyIG5vdCB3b3JraW5nIHdpdGggZGVmYXVsdCBSSCBFTDMgdXBkYXRlIDEgIAo8YnI+NTg1Njk6ICBSZWdyZXNzaW9uOiBTdHlsZWRUZXh0IGRvZXMgbm90IHdyYXAgY29ycmVjdGx5ICAKPGJyPjU4NzU2OiAgVGFibGVzICYgSW1hZ2VzIHJlZnJlc2ggcHJvYmxlbSAgCjxicj41OTEwNjogIFNXVCBTbmlwcGV0IDEzOSBmYWlscyB0byBjb21waWxlICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA0NyAtIFR1ZXNkYXkgQXByaWwgMTMsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDQyNTogIExpc3QoU0lOR0xFKSAtIHNldFNlbGVjdGlvbihpbnQsIGludCkgZG9lc24ndCBkZXNlbGVjdCB3aGVuIHN0YXJ0PmVuZCAoMUZDSEpNUSkgIAo8YnI+NDg4NDk6ICBLZXlib2FyZCBldmVudHMgaWdub3JlZCBpbiBJbXBvcnQgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBkaWFsb2cgIAo8YnI+NTA2NTc6ICBDYW4ndCBpbnB1dCAyIGJ5dGVzIGNoYXJhY3RlciBUbyBjb21ibyBib3ggIAo8YnI+NTYzOTA6ICBFWENFUFRJT05fQUNDRVNTX1ZJT0xBVElPTiAgCjxicj41NjgyOTogIENCYW5uZXIgbm90IHNpemVkIGNvcnJlY3RseSBhZnRlciBjb29sYmFyIHdyYXBzICAKPGJyPjU2OTE1OiAgQ2hpbmVzZSBjaGFyYWN0ZXJzIG5vdCByZW5kZXJlZCBpbiBTdHlsZWRUZXh0ICAKPGJyPjU3MDk5OiAgR1RLOiBUZXh0IHdpZGdldCBvZiBzdHlsZSBNVUxUSSBkb2VzIG5vdCBzZW5kIG1vdXNlIHRyYWNrIGV2ZW50cyBpZiBhZGRlZCB0byByZWFsaXplZCBTaGVsbCAoQkJBV1QpICAKPGJyPjU3MTgyOiAgW2Jyb3dzZXJdIEJyb3dzZXIgZGlzcGxheXMgYSBibGFuayBwYWdlIGlmIGNoYXJhY3RlciBlbmNvZGluZyBpcyBzcGVjaWZpZWQgKExpbnV4IEdUSykgIAo8YnI+NTc2NDc6ICBlcnJhbnQgT05fVE9QIHwgU1lTVEVNX01PREFMIFNoZWxsIGJlaGF2aW91ciBpZiB0b29sdGlwdGV4dCBpcyBzZXQgb24gYW55IGNvbnRyb2wgIAo8YnI+NTc4NzY6ICBDb25zdHJ1Y3RvciBmb3IgRm9udCBoYXMgd3JvbmctbmFtZWQgYXJndW1lbnQ7IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIHVzZWQgIAo8YnI+NTc4ODQ6ICBKYXZhZG9jIG9uIFRleHQgbWlzc2luZyBwb3NzaWJsZSBzdHlsZSAgCjxicj41ODE1NjogIFVuaGFuZGxlZCBldmVudCBsb29wIGV4Y2VwdGlvbiAoV2lkZ2V0IGlzIGRpc3Bvc2VkKSB3aGVuIHVzaW5nICJPcGVuIFR5cGUgSGllcmFyY2h5IiAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwNDYgLSBUdWVzZGF5IEFwcmlsIDYsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjU2NDY6ICBbbGF1bmNoZXJdIEFmdGVyIHJlYnJhbmRpbmcsICJFY2xpcHNlIiBzaG93cyB1cCBpbiBXaW5kb3dzIHRvb2xiYXIgZHVyaW5nIGxhdW5jaC4gIAo8YnI+Mjc2OTY6ICBEQ1IgLSBuZWVkIHRvIHNldCBmb250IGFuZCBjb2xvciBmb3IgYSBUYWJsZUl0ZW0ncyBpbmRpdmlkdWFsIGNlbGxzICAKPGJyPjM3MDUyOiAgU2hlbGxzIGFzc3VtaW5nIFNXVC5SRVNJWkUgb24gR1RLIGFuZCBNb3RpZiAoQkJBV1QpICAKPGJyPjQwNTIxOiAgW2xhdW5jaGVyXSBMYXVuY2hlciBlcnJvciBtZXNzYWdlcyBjYW5ub3QgYmUgcmVicmFuZGVkICAKPGJyPjQyMDMyOiAgW2Jyb3dzZXJdIEJyb3dzZXIgTW96aWxsYSBiaW5kaW5nIC0gcHJvYmxlbSBzdWJtaXR0aW5nIGZvcm0gIAo8YnI+NDIzMTM6ICBTV1QuQ0VOVEVSIGFuZCBTV1QuUklHSFQgZG9uJ3Qgd29yayB3aXRoIFRleHQgIAo8YnI+NTQzNDE6ICBbYnJvd3Nlcl0gc3d0LmJyb3dzZXIuQnJvd3NlcjsgYnV0dG9ucyBpbiBodG1sIGRvZXMgbm90IHdvcmsgb24gbGludXgvZ3RrICAKPGJyPjU1NTQxOiAgU3R5bGVkVGV4dCAtIEJpZGkgc2VnbWVudHMgTGlzdGVuZXIgaXMgYnJva2VuICAKPGJyPjU1NzAyOiAgW2Jyb3dzZXJdIEludHJvIHBhZ2UgZG9lcyBub3Qgc2hvdyBpbWFnZXMgb24gTGludXggIAo8YnI+NTU4MDY6ICBbNjRdIGNyYXNoIG9uIHN0YXJ0dXAgd2hlbiB1c2luZyBqaXQgb24gQU1ENjQgIAo8YnI+NTU5MjY6ICBbNjRdIFtNOF0gQU1ENjQgSTIwMDQwMzI0IGJ1aWxkIGNhbm5vdCB3b3JrICh1bnNhdGlzZmllZCBsaW5rIGVycnJvKSAgCjxicj41NjA4OTogIFttaXNjXSBFeHRlbmQgc2VsZWN0aW9uIGNhdXNpbmcgaG9yaXpvbnRhbCBzY3JvbGwgaXMgc2xvdyAgCjxicj41NjE0OTogIGNvb2xiYXIgZG9lcyBub3QgZmlsbCB2ZXJ0aWNhbCBzcGFjZSAgCjxicj41NjMxNTogIHBlcmZvcm1hbmNlIGJhZCB3aGVuIG1vdmluZyBsaW5lcyAgCjxicj41NjY2NzogIE1pbmltaXphdGlvbiBvZiB0b3AgU2hlbGwgd2lkZ2V0cyBpbXBvc3NpYmxlIChTV1QuTUlOICYgU1dULk5PTkUpIG9uIFBvY2tldFBDIChCQkFXVCkgIAo8YnI+NTY3OTU6ICBOUEUgb3BlbmluZyBxdWljayBvdXRsaW5lL2hpZXJhcmNoeSAgCjxicj41Njc5OTogIE5QRSBpbiBXTV9LRVlET1dOICAKPGJyPjU2OTE4OiAgUHJvYmxlbXMgZGlzcG9zaW5nIFRyYXlJdGVtICAKPGJyPjU2OTk5OiAgW0tleUJpbmRpbmdzXSBSZWdyZXNzaW9uOiBBbHQrTnVtcGFkIGtleXN0cm9rZXMgYnJva2VuICAKPGJyPjU3MTY1OiAgZWNsaXBzZSBkb2VzIG5vdCBzdGFydCB3aGVuIHVzaW5nIGxlc3N0aWYsIEZBUSBpcyB3cm9uZyAgCjxicj41NzI5NjogIEJpZGlVdGlsIHN0YXRpYyB2YXIgcmV0YWlucyByZWZlcmVuY2VzIHRvIHJ1bm5hYmxlcyBmcm9tIFN0eWxlZFRleHQgIAo8YnI+NTczOTU6ICBiYWNrc3BhY2UgaW4gdGV4dGVkaXRvcnMgLT4gZG91YmxlIGJhY2tzcGFjZSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwNDUgLSBUdWVzZGF5IE1hcmNoIDMwLCAyMDA0IDwvaDI+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE1MDI1OiAgaW1wbGVtZW50IGphdmEuYXd0LlJvYm90IGZvciBTV1QgIAo8YnI+NTE3MTk6ICBOZWVkIHRvIHN1cHByZXNzICJ1bnRpdGxlZCB3aW5kb3ciIG9uIEdUSyAgCjxicj41MzI3NDogIFtTV1QgRXhhbXBsZXNdIEltYWdlIEFuYWx5emVyIGNyYXNoZWQgd2hlbiB0cmllZCB0byBzYXZlIGltYWdlcyBhcyBQTkdzIGFuZCBJQ09zICAKPGJyPjUzOTc4OiAgbWFuaWZlc3QubWYgb2Ygb3JnLmVjbGlwc2Uuc3d0IGlzIG5vdCBjb25zaXN0ZW50IHdpdGggcGx1Z2luLnhtbCAgCjxicj41NTUyMjogIERpc3BsYXkucG9zdCAtIHN1cHBvcnQvaW52ZXN0aWdhdGUgbW91c2UgYnV0dG9uIDIgYW5kIDMgIAo8YnI+NTU1MjU6ICBEaXNwbGF5LnBvc3QgLSBkb24ndCBzZW5kIG1vdXNlIGRvd24vdXAgd2hlbiBkb2luZyBtb3VzZW1vdmUgIAo8YnI+NTU1NTY6ICBNYWNPUyAxMC4yLnggKEphZ3VhcikgaGFzIG5vIHN0cmNhc2VzdHIgZnVuY3Rpb24gIAo8YnI+NTU1NjE6ICBEaXNwbGF5LnBvc3QgLSBoYW5nIHdoZW4gZG9pbmcgYSBtb3VzZWRvd24gIAo8YnI+NTU3Mzg6ICBuZXh0IHdvcmQgYWN0aW9uIGJyb2tlbiBvbiB3aW4yMDAwICAKPGJyPjU1NzU2OiAgRG91YmxlIGNsaWNrIGlzIGlnbm9yZWQgb24gcHJvZ3Jlc3MgaW5kaWNhdG9ycyAgCjxicj41NTg0OTogIEtleWJvYXJkIHNob3J0Y3V0cyBkb24ndCB3b3JrIGluIG9sZCB3b3Jrc3BhY2UgIAo8YnI+NTU4OTc6ICBTdHlsZWRUZXh0IGRvZXNuJ3QgY29tcHV0ZSBwcmVmZXJyZWQgc2l6ZSBwcm9wZXJseSAgCjxicj41NTkxMzogIFN0eWxlZCBUZXh0IGRyYXdzIG9uIHRvcCBvZiBpdHNlbGYgIAo8YnI+NTU5MTc6ICBFeHRyYSBsaWJyYXJ5IGRlcGVuZGVuY3kgaW4gRWNsaXBzZSAyLjEuMiBHVEsgbGF1bmNoZXIgIAo8YnI+NTU5MjA6ICBWaWV3IHByZXNlbnRhdGlvbiB2aXN1YWwgcHJvYmxlbXMgIAo8YnI+NTU5Mzc6ICBJbnRyb2R1Y3Rpb24gcGFnZSB3aXphcmQgbm90IHByb3Blcmx5IGluc3RhbGxpbmcgU1dUIGV4YW1wbGVzICAKPGJyPjU1OTY3OiAgU1dUIHNob3VsZCBiZSBhIHNpbmdsZXRvbiBidW5kbGUgIAo8YnI+NTU5ODA6ICBkaXNwbGF5LnBvc3QoKSBkb2VzIG5vdCBoYW5kbGUgdXBwZXJjYXNlIGNoYXJhY3RlcnMgIAo8YnI+NTYyNDU6ICBzdWJ0aXRsZSB0ZXh0IGRvZXMgbm90IGZpbGwgYXZhaWxhYmxlIGhvcml6b250YWwgc3BhY2UgIAo8YnI+NTYzNjY6ICBUb29sdGlwIGZvciBDVGFiRm9sZGVyIHNob3dzIHVwIG9uIHdyb25nIG1vbml0b3IgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDQ0IC0gVHVlc2RheSBNYXJjaCAyMywgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8YmxvY2txdW90ZT4KRm9yIG5ldyBBUEkgcmVsZWFzZWQgaW4gdGhlIGxhc3QgZmV3IGJ1aWxkcywgc2VlIHRoZSAiTmV3ICYgTm90ZXdvcnRoeSIgbGluawpvbiB0aGUgRG93bmxvYWRzIHBhZ2UgZm9yIDMuME04IGFmdGVyIE1hcmNoIDI2dGgsIDIwMDQuCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTUwNTQ6ICBPd25lckRhdGEgb3IgInZpcnR1YWwiIFRhYmxlIHN1cHBvcnQgIAo8YnI+MjE2NTk6ICBGcmFtZXMgZHJhd24gaW4gaW5hcHByb3ByaWF0ZSBwbGFjZXMgIAo8YnI+MjMzMzU6ICBPZGQgbGluZXMgYXJvdW5kIGJ1dHRvbnMgIAo8YnI+MzA4NDg6ICBBUEkgZm9yIFRhYmxlI3Nob3dDb2x1bW4oKSBsaWtlIFRhYmxlI3Nob3dJdGVtKCkgIAo8YnI+NDA0MjA6ICBTaGVsbCB3aXRoIHN0eWxlIE5PX1RSSU0gc2hvdWxkIG5vdCBhcHBlYXIgaW4gdGhlIFdpbmRvdyBNYW5hZ2VyIHRhc2sgYmFyICAKPGJyPjQwNjYzOiAgRHJhZ2dpbmcgdmlld3MgaXMgbm90IHN5bmNocm9uaXNlZCB3aXRoIG1vdXNlIHBvc2l0aW9uICAKPGJyPjQ3NjM4OiAgTlBFIGluIGdldFBhcmVudEJhY2tncm91bmQuICAKPGJyPjUwMzU5OiAgUHJvYmxlbSB3aXRoIHZlcnRpY2FsIHRvb2xiYXJzIGFuZCBHVEsrIDIuMy54ICAKPGJyPjUxNTgyOiAgTmVlZCB0aGUgYWJpbGl0eSB0byBkZXRlcm1pbmUgIkhpZ2ggQ29udHJhc3QiIG1vZGUgIAo8YnI+NTQyMzE6ICBDVGFiRm9sZGVyIG5vdyBhZGRzIG1hcmdpbiBhcm91bmQgcGFnZSBjb250cm9scyAgCjxicj41NDI5MTogIG5ldyBUYXNrVHJheSB3aWRnZXQgZG9lcyBub3QgY29tcGlsZSBvbiBXaW5kb3dzIENFIGFuZCBHVEs2NCAgCjxicj41NDM4NjogIFN0cmF5IHBpeGVsIGluIFNXVCB0YWJsZSAgCjxicj41NDg3ODogIERyb3AgZG93biBjb29sYmFyL3Rvb2xiYXIgbWVudXMgYW5kIGNvbWJvIGJveGVzIHRha2UgdG9vIG1hbnkgY2xpY2tzICAKPGJyPjU0OTkwOiAgQUxUK0RPV04gZG9lcyBub3QgZHJvcCBkb3duIENDb21ibyBsaXN0ICAKPGJyPjU1MTEzOiAgSG92ZXIgdGV4dCBzdHVjayBhZnRlciBkcmFnIGluIENUYWJGb2xkZXIgIAo8YnI+NTUxMzM6ICBUYWJsZS5qYXZhOiBqYXZhLmxhbmcuQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHdpdGggU1dULlZJUlRVQUwgIAo8YnI+NTUxODc6ICBzd3QgdjMwNDNiIGRvZXMgbm90IHdvcmsgdW5kZXIgZ3RrIDIuMC42ICAKPGJyPjU1MzAwOiAgU3R5bGVkVGV4dCAtIHNpbmdsZSBhbmQgYm9yZGVyIGNhdXNlIGNoZWVzZSB3aGVuIHJlc2l6ZSAgCjxicj41NTMwNzogIFZpZXdGb3JtJ3MgdGl0bGUgYXJlYSBjb250cm9scyBhcmUgb2ZmIGJ5IG9uZSBwaXhlbCAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwNDMgLSBUdWVzZGF5IE1hcmNoIDE2LCAyMDA0IDwvaDI+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ4MDk6ICBTV1QgQ3Vyc29yIFNvdXJjZSBhbmQgbWFzayBhcmUgZmxpcC1mbG9wcGVkICgxR0o4MEZaKSAgCjxicj42NTkzOiAgRG9jOiBrbm93aW5nIHRoZSBjb29yZGluYXRlIHNwYWNlIGZvciBTV1QgIAo8YnI+MjUzMzY6ICBDb29sQmFyIC0gY29tcHV0ZVNpemUgZG8gbm90IHJlc3BlY3QgYXV0b2JyZWFrcyBbRW11bGF0ZWRdICAKPGJyPjMwODM0OiAgTWluaW1pemUgdG8gc3lzdGVtIHRyYXkgIAo8YnI+NDM4OTM6ICBTY3JvbGxpbmcgY29waWVzIHdyb25nIGJpdHMgIAo8YnI+NDk3Nzg6ICBJbWFnZXMgb24gTWVudUJhciBhcmUgbm90IGxpbmluZyB1cCB3aXRoIHRoaWVyIEhvdHN0b3AgIAo8YnI+NTAxNTE6ICBVc2luZyBTV1QuUklHSFQgb24gYSBUb29sQmFyIGxlYXZlcyBibGFuayBzcGFjZSAgCjxicj41Mjc4NTogIEVjbGlwc2UgMy4wTTcgZG9lc24ndCBydW4gb24gRmVkb3JhIENvcmUgMiB0ZXN0MSByZWxlYXNlLiAgCjxicj41MzQwMTogIFs2NF0ganVuaXQgdGVzdHMgZG9uJ3QgY29tcGlsZSAtIGNyYXNoZXMgIAo8YnI+NTM4Mzc6ICBXb3JrYmVuY2ggaGFuZ3MgdXAgd2hlbiBoaXR0aW5nIHNwYWNlIGtleSBvbiByZWFkb25seSBjb21iby4gIAo8YnI+NTQzNTg6ICBTaGVsbHMgZG9uJ3QgZmlyZSBtb3ZlIGV2ZW50IHdoZW4gbm90IHZpc2libGUgKEJCQVdUKSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwNDIgLSBUdWVzZGF5IE1hcmNoIDksIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTk2NTQ6ICBDb29sYmFyIC0gcmVzaXppbmcgd2luZG93IGNhbiBhZGQgcm93cyB0byBjb29sYmFycyAgCjxicj4zMjUzNzogIE1lbnUgdGV4dCBhbmQgYWNjZWxlcmF0b3IgdGV4dCBvdmVybGFwcGluZyAgCjxicj40MjAyMjogIE1uZW1vbmljIHRyYXZlcnNhbCBjYW5ub3QgYmUgc3VwcHJlc3NlZCAgCjxicj40NjM2OTogIGphdmFkb2Mgc2hvdWxkIGJlIHVwZGF0ZWQgZm9yIGJlaGF2aW9yIG9mIHNlbGVjdGluZyBtdWx0aXBsZSBpdGVtcyBpbiBhIHNpbmdsZSBzZWxlY3QgbGlzdCAgCjxicj41MTQ2NDogIGVjbGlwc2UuZXhlIHJldmlldy91cGRhdGVzICAKPGJyPjUxNTM3OiAgbmVlZCBhIHdheSB0byBwYXNzIGEgc3RyaW5nIHRvIHRoZSBsYXVuY2hlciAgCjxicj41MjUzNjogIFtTV1QgRXhhbXBsZXNdIFNldHRpbmcgdGhlIHN0eWxlIHRvIFNXVC5GTEFUIGhhcyBubyBlZmZlY3Qgb24gQnV0dG9ucyAgCjxicj41MjkzNTogIEVtdWxhdGVkIENvb2xiYXIgZG9lcyBub3Qgc3VwcG9ydCB3cmFwcGluZyAgCjxicj41Mjk1OTogIHNldEZvbnQoKSBpbiBUYWJsZVRyZWVJdGVtICAKPGJyPjUzMDE0OiAgTWVzc2FnZUJveCBvcGVucyBtb2RhbCBidXQgdW5wYXJlbnRlZCAgCjxicj41MzA0NTogIG5vIG1vcmUgaGFuZGxlcyEgIAo8YnI+NTMwNTc6ICBCcm93c2VyIHdpZGdldCBhbmQgZGlzcGxheSBvZiBzcGVjaWFsIGNoYXJzICAKPGJyPjUzMTQxOiAgSlZNIGNyYXNoIGF0IGVjbGlwc2UgZXhpdCAgCjxicj41MzIyMTogIFtTV1QgRXhhbXBsZXNdID8/P1NhdmUgQXM/Pz8/Pz8/IERpYWxvZyBvZiBJbWFnZSBBbmFseXplciBkb2VzIG5vdCBwcm92aWRlIHRoZSBjb3JyZWN0IGZpbGUgcGF0aCAgCjxicj41MzIzNjogIFNldHRpbmcgZm9udC9jb2xvciBvbiBhbiBpdGVtIHdoZW4gdGhlcmUgaXMgbm8gY2hhbmdlIHNob3VsZCBub3QgcmVkcmF3ICAKPGJyPjUzMzYxOiAgW0VkaXRvck1nbXRdIE5ldyBsb29rOiBlZGl0b3IgY2xvc2UgYnV0dG9uICh4KSBkb2VzIG5vdGhpbmcgc29tZXRpbWVzICAKPGJyPjUzMzg4OiAgWzY0XSBDcmFzaCBpbiBnX3NpZ25hbF9sb29rdXAgIAo8YnI+NTMzOTQ6ICBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaW4gQ29sb3JEaWFsb2cgIAo8YnI+NTM0MTk6ICB2aWV3aW5nIHByZWZlcmVuY2UgcGFnZSBtYWtlcyBwcmVmZXJlbmNlcyB0cmVlIHVucmVzcG9uc2l2ZSAgCjxicj41MzQzMDogIEFkZGl0aW9uYWwgZml4ZXMgZm9yIHBvcnRpbmcgU1dUIHRvIDY0LWJpdCAgCjxicj41MzQ4NzogIFticm93c2VyXSBTdXplIDkgaW5zdGFsbHMgTW96aWxsYSBpbnRvIGRpZmZlcmVudCBmb2xkZXIgdGhhbiBSSCAgCjxicj41MzUxOTogIENoZWNrYm94VGFibGVWaWV3ZXIgZG9lcyBub3QgcmVjZWl2ZSBzZWxlY3Rpb24gZXZlbnRzICAKPGJyPjUzNTQ0OiAgW1ZpZXdlcnNdIENoZWNrYm94IFRhYmxlIFZpZXdlciBkb2VzIG5vdCBwcm92aWRlIHNlbGVjdGlvbiBjYWxsYmFja3Mgb24gYSBjaGVjayAgCjxicj41MzU0OTogIHJlbW92ZSBjdXN0b20gY29kZSBpbiBQcm9ncmFtIEdub21lICAKPGJyPjUzNTU2OiAgSW5kZXggb3V0IG9mIGJvdW5kcyByZXNpemluZyBwcmVmZXJlbmNlIHBhZ2UgIAo8YnI+NTM1NzA6ICBPcGVuaW5nIHRoZSBmaWxlIHR5cGUgYXNzb2NpYXRpb24gZGlhbG9nIHRvIHRoZSBleHRlcm5hbCBlZGl0b3JzIHZpZXcgY2F1c2VzIEVjbGlwc2UgdG8gY3Jhc2ggIAo8YnI+NTM2Mzg6ICBlY2xpcHNlIHN0YXJ0dXAgcHJvYmxlbSAgCjxicj41MzcyMzogIFByb2JsZW1zIHdpdGggc2V0Rm9udCgpIG9uIFRyZWVJdGVtICAKPGJyPjUzODMyOiAgVk0gQ3Jhc2ggcmVsZWF0ZWQgdG8gZm9jdXMgb3Igc2V0IGZvbnQgIAo8YnI+NTM4NTM6ICBTZWxlY3Rpb24gZXZlbnQgZm9yIGNoZWNrYm94IFRhYmxlIGlzIGJyb2tlbiAgCjxicj41Mzk5NTogIGphdmFfc3d0IGNyYXNoZXMgaWYgYXBwbGljYXRpb24gYnVuZGxlIGlzIG5hbWVkIC5BUFAgaW5zdGVhZCBvZiAuYXBwICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA0MSAtIFR1ZXNkYXkgTWFyY2ggMiwgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8YmxvY2txdW90ZT4KVGFibGUuc2V0SXRlbUNvdW50KCksIFNXVC5WSVJUVUFMIGFuZCBTV1QuU2V0RGF0YSBoYXZlIGJlZW4gYWRkZWQgYW5kCmltcGxlbWVudGVkIG9uIGFsbCBwbGF0Zm9ybXMgdG8gc3VwcG9ydCB0aGUgdmlydHVhbCBUYWJsZS4gIFRoaXMgZmVhdHVyZQppcyAidW5kZXIgY29uc3RydWN0aW9uIi4gIFVzZSBhdCB5b3VyIG93biByaXNrLgo8L2Jsb2NrcXVvdGU+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ1NzU6ICBkZXNpcmUgZXhjZXB0aW9uIGNoZWNrcyBmb3IgaW5wdXRQcm9jL3dpbmRvd0NhbGxiYWNrICgxRzU1TzdQKSAgCjxicj4xNzY1OTogIEVjbGlwc2UgY3Jhc2hlcyB3aGVuIHN3aXRjaGluZyBFbmNvZGluZyB0byBVVEYtMTYgKGxpdHRsZSBlbmRpYW4pICAKPGJyPjIwMzY0OiAgU2xpZGVyIGNvbnRyb2wgZG9lcyBub3QgdGFrZSBmb2N1cyAgCjxicj4zOTg5MjogIFNXVCBlcnJvciB0aHJvd24gd2hlbiByZWZyZXNoaW5nIHRoZSBwcm9wZXJ0aWVzIHBhZ2UgIAo8YnI+NDU4NDU6ICBzY3JvbGxiYXJzIG9uIFNjcm9sbGluZ0dyYXBoaWNhbFZpZXdlciBzb21ldGltZXMgZG9lcyBub3Qgd29yayAgCjxicj40NTk0NTogIERyYXdpbmcgaXNzdWVzIHdpdGggU1dUIDIuMS4xIHVuZGVyIFBvY2tldFBDIDIwMDIgIAo8YnI+NDYxNTY6ICBFY2xpcHNlIGNyYXNoIHdpdGggS0VSTl9QUk9URUNUSU9OX0ZBSUxVUkUgd2hlbiBjdXN0b21pemluZyBwZXJzcGVjdGl2ZSAgCjxicj40OTA4MjogIFVuc3VwcG9ydGVkIGNvbG9yIGRlcHRoIGRvZXMgbm90IHRocm93IGFuIGV4Y2VwdGlvbiBpbiBMaW51eCBHVEsgIAo8YnI+NTIyOTU6ICBNb25vY2hyb21lIGJtcCBhbmQgaWNvIGltYWdlIGRhdGEsIGFuZCBpY29uIG1hc2tzIGFyZSBub3QgYWx3YXlzIGhhbmRsZSBjb3JyZWN0bHkgIAo8YnI+NTI3MzM6ICBEZWFkbG9jayBleHBhbmQgb2YgSEVBRCAgCjxicj41Mjg2MjogIFNQQUNFIGdldHMgaW5zZXJ0ZWQgaW50byBzdHlsZWR0ZXh0IHVzaW5nIHN5c3RlbSBtZW51ICAKPGJyPjUzMDYzOiAgQ2hhbmdpbmcgdGhlIHN0eWxlIG9mIGEgTGFiZWwgZnJvbSBTV1QuU0hBRE9XX0lOIHRvIFNXVC5TSEFET1dfTk9ORSBkb2VzIG5vdCBtYWtlIGEgZGlmZmVyZW5jZSBpbiB0aGUgYXBwZWFyYW5jZSBvZiB0aGUgTGFiZWwgIAo8YnI+NTMxMjg6ICBTaGVsbC5zZXRSZWdpb24oKSBzaG91bGQgY2hlY2sgaWYgcmVnaW9uIGlzIGRpc3Bvc2VkLi4uICAKPGJyPjUzNDQwOiAgY3JpdGljYWwgd2FybmluZ3Mgd2hlbiBydW5uaW5nIGpuaWdlbiB0b29sICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDA0MCAtIFR1ZXNkYXkgRmVicnVhcnkgMjQsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPGJsb2NrcXVvdGU+ClBvaW50IE1lbnUuZ2V0U2l6ZSgpIGFkZGVkCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjc4MTogIENhbm5vdCBkcmF3IHVuaWNvZGUgc3RyaW5nICAKPGJyPjM4NjQzOiAgVG9vbGJhciBjb21wdXRlU2l6ZSBzdG9wIHdvcmtpbmcgYWZ0ZXIgV01fU0VURk9OVCAgCjxicj4zODcxNDogIFRhYmxlIGFuZCB0YWJsZSBjdXJzb3IgYnVnZ3kgc2Nyb2xsaW5nLiBJdCBpcyBpbXBvc3NpYmxlIHRvIHVzZSBwcm9wZXJseSB0aGUgdGFibGUgd2lkZ2V0IHdoZW4gdGhlIHRhYmxlIGN1cnNvciBpcyBpbnZvbHZlZC4gIAo8YnI+NDI1NTQ6ICBEb3VibGUgaWNvbiBpbiB0aGUgZG9jayBvbiBPU1ggIAo8YnI+NDgzNDE6ICBDYW5ub3QgZ2V0IGhlaWdodCBvZiBNZW51IGFuZCBubyBjYXBhYmlsaXRpZXMgZm9yIHdvcmsgYXJvdW5kICAKPGJyPjUwMTA3OiAgU1dUIGRvZXMgbm90IGNvbXBpbGUgc3VjY2Vzc2Z1bGx5IGFnYWluc3QgQ0xEQyAoaS5lLiBqMm1lKSAgCjxicj41MTM3NDogIE5lZWQgTWVudUJhciB0byBzdXBwb3J0IEltYWdlcyBvbiBQb2NrZXRQQyAgCjxicj41MTY0NTogIEphdmEgY29yZSB3aGVuIHJ1bm5pbmcgZXZlbnQgbG9vcCBvbiB0aGUgU3VuICAKPGJyPjUxNjcxOiAgVGV4dCBub3QgcmVkcmF3biBvbiBuZXcgbG9vayBDVGFiRm9sZGVyICAKPGJyPjUxNzc3OiAgVGFibGVJdGVtLmdldEJvdW5kcyhpbnQpIHJldHVybnMgdGhlIHdyb25nIHZhbHVlcyB3aGVuIHRhYmxlIHNjcm9sbGVkICAKPGJyPjUyMDI0OiAgW05ld0xvb2tdIGN1cnZ5IGxpbmVzIGhhdmUgaW5jb25zaXN0ZW50IGxpbmUgd2lkdGggIAo8YnI+NTIyNDI6ICBOZXcgTG9vazogd2hpdGUgYmFuZGluZyBpbiB2aWV3IGFuZCBlZGl0b3IgdGFicyAgCjxicj41MjI1NTogIEZvdW5kIHNtYWxsIHByb2JsZW0gaW4gc25pcGV0cyBjb2RlICAKPGJyPjUyMzM1OiAgU25pcHBldDEwOC5odG1sIG1pc3NpbmcgY29kZSAgCjxicj41MjMzNzogIExaV0NvZGVjI21hc2tUYWJsZSBzaG91bGQgYmUgYSBzdGF0aWMgZmluYWwgZmllbGQgIAo8YnI+NTI1NDE6ICBbU1dUIEV4YW1wbGVzXSBDb29sQmFyIEJ1dHRvbnMgd2l0aCBhIGRyb3Bkb3duIG1lbnUgZG8gbm90IGJlaGF2ZSBjb3JyZWN0bHkgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDM5IC0gVHVlc2RheSBGZWJydWFyeSAxNywgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8cD5DVGFiRm9sZGVyIGhhcyBiZWVuIG1vZGlmaWVkIHRvIGRpc3BsYXkgdGhlIG5ldyBsb29rIGZvciAzLjAuICAKUGxlYXNlIG5vdGUgdGhhdCB0aGUgbmV3IDMuMCBBUEkgaW4gQ1RhYkZvbGRlciBoYXMgbm90IGJlZW4gZmluYWxpemVkIGFuZCBpcyBzdWJqZWN0IHRvIGNoYW5nZS48L3A+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjIxNDMwOiAgQWNjZXNzaWJpbGl0eTpKQVdTIGNhbiBub3QgcmVhZCBsYWJlbCBmb3IgbXVsdGktbGluZXMgVGV4dCAgCjxicj4zODE5NDogIFNXVCBwZXJmb3JtYW5jZSBpc3N1ZXMgd2l0aCBKQVdTIDQuNSAgCjxicj4zODU2NDogIFtJbXBvcnQvRXhwb3J0XSBPbiBNYWNPUyBYIFNXVCBCdXR0b25zIGVhc2lseSBnZXQgd3JvbmcgaGVpZ2h0ICAKPGJyPjQzMjU3OiAgb3JnLmVjbGlwc2Uuc3d0LmN1c3RvbS5TdHlsZWRUZXh0IGlzIG5vdCBhY2Nlc3NpYmxlICAKPGJyPjQ0MjM2OiAgSmF3cyBkb2Vzbid0IHJlYWQgZWNsaXBzZSdzIG1haW4gbWVudXMgIAo8YnI+NDQ5NDY6ICBUYWJsZUN1cnNvciBhbHdheXMgcGFpbnRzIGxlZnQtYWxpZ25lZCB0ZXh0ICAKPGJyPjQ3MjY0OiAgSS1CZWFtIGRpc3BsYXllZCBpbiB3cm9uZyBjb250cm9sIChSdW4uLi4gZGlhbG9nKSAgCjxicj40ODI3MzogIFt3bTIwMDNdIHBvY2tldCBwYyAtIGlzc3VlcyB3aXRoIHBvcHVwIG1lbnUgIAo8YnI+NDgzMjc6ICBbV00yMDAzXSBQcm9ibGVtIHdpdGggUGFpbnRMaXN0ZW5lciBvbiBQb2NrZXRQQyBXTTIwMDMgIAo8YnI+NDk3OTc6ICBbV00yMDAzXSBHQyBjYW5ub3QgaW5zdGFudGlhdGUgb24gUFBDIDIwMDMgIAo8YnI+NTEwMzE6ICBCcm9rZW4gYXJyb3dzIG9uIG11bHRpIHBhZ2UgIAo8YnI+NTEwMzY6ICBUcmVlIFdpZGdldCBvcGVucyB0aGVuIGNsb3NlcyBvbiBSRVRVUk4vRU5URVIgIAo8YnI+NTEwODg6ICBQYXRjaChlcykgdG8gZml4IHJlZHJhdyBidWcgYWZ0ZXIgQ29udHJvbEVkaXRvcnMgY2xvc2UuICAKPGJyPjUxMjQ4OiAgR1VJIHRocmVhZCBkb2VzIG5vdCBwcm9jZXNzIHRoZSBHVUkgdXBkYXRlIHJlcXVlc3RzIHRpbWVseSwgY2F1c2luZyB0aGUgZGlzcGxheSB0byBiZSB1bnJlc3BvbnNpdmUgIAo8YnI+NTE0MDE6ICBjYW4ndCBmaW5kIGphdmEuYXd0LiogcGFja2FnZXMgdXNpbmcgSUJNcyAxLjQuMSBWTSBvbiBsaW51eCAgCjxicj41MTQ3MjogIEVycm9yIGxhdW5jaGluZyBCcm93c2VyIHBsdWdpbiBpbiBwcmUtTTcgYnVpbGQgIAo8YnI+NTE0OTI6ICBjaGFuZ2luZyBUYWJGb2xkZXIgZm9yZWdyb3VuZCBjb2xvdXIgaXMgbm90IGltbWVkaWF0ZWx5IHJlZmxlY3RlZCAgCjxicj41MTgzMTogIFN0eWxlZFRleHQgZG9lc24ndCBzcGVjaWZ5IGNvbnRlbnRzIG9mIGl0cyBTZWxlY3Rpb25FdmVudHMgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDM4IC0gVHVlc2RheSBGZWJydWFyeSAxMCwgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8YmxvY2txdW90ZT4KQUNDLlJPTEVfVFJFRUlURU0gYWRkZWQKPGJyPkFDQy5ST0xFX1RBQkxFQ0VMTCBhZGRlZAo8YnI+QUNDLlJPTEVfVEFCTEVDT0xVTU5IRUFERVIgYWRkZWQKPGJyPkFDQy5ST0xFX1RBQkxFUk9XSEVBREVSIGFkZGVkCjxicj5UYWJsZUl0ZW0uc2V0Rm9udChGb250KSBhbmQgVGFibGVJdGVtLnNldEZvbnQoaW50LCBGb250KSBhZGRlZAo8YnI+VGFibGVJdGVtLmdldEZvbnQoKSBhbmQgVGFibGVJdGVtLmdldEZvbnQoaW50KSBhZGRlZAo8YnI+VGFibGUuc2hvd0NvbHVtbihUYWJsZUNvbHVtbikgYWRkZWQKPGJyPkxvY2F0aW9uRXZlbnQudG9wIGFkZGVkCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJCcmVha2luZyBDaGFuZ2VzIj48L2E+QnJlYWtpbmcgQ2hhbmdlczwvaDM+CjxibG9ja3F1b3RlPgpBQ0MuUk9MRV9UQUJMRUNPTFVNTiBkZXByZWNhdGVkIC0gdXNlIFJPTEVfVEFCTEVDT0xVTU5IRUFERVIgaW5zdGVhZC4KPC9ibG9ja3F1b3RlPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozNzc0MjogIEFDQzogbWlzc2luZyBhbiBpdGVtIGNvcnJlc3BvbmRlbnQgd2l0aCBST0xFX1NZU1RFTV9PVVRMSU5FSVRFTSBkZWZpbmVkIGJ5IE1TQUEgIAo8YnI+NDMwOTE6ICBbYnJvd3Nlcl0gQnJvd3NlciAtIExvY2F0aW9uRXZlbnQgYmVoYXZpb3IgIAo8YnI+NDQwNjM6ICBDbGlwYm9hcmQgb2YgR1RLIG9uIEtERSA6IEVjbGlwc2UgY3Jhc2ggIAo8YnI+NDQ5NDM6ICBUYWJsZUN1cnNvciBjb2xvciBzZXQgaW5jb3JyZWN0bHkgIAo8YnI+NTA1MjI6ICBbaW50ZXJvcF0gQ29tcG9uZW50cyBpbiBTV1RfQVdUIGRvbid0IHNob3cgaW4gV29ya2JlbmNoLiAgCjxicj41MDkwNzogIEpQRUcgbG9hZGVyIGZhaWxzIHRvIGxvYWQgaW1hZ2UgIAo8YnI+NTEwODE6ICBUcmFja2VyIGZsaWNrZXJzIHdoZW4gdXNpbmcgc2V0UmVjdGFuZ2xlcyB0byBob2xkIGl0IGluIHBsYWNlICAKPGJyPjUxMzI1OiAgU1dUX0FXVDpUaGUgY29sb3IgZGVwdGggb2YgdGhlIGRpc3BsYXkgY2hhbmdlZCBjYXVzZSBOdWxsUG9pbnRlckV4Y2VwdGlvbiAgCjxicj41MTM3MjogIFticm93c2VyXSBjZXJ0YWluIGV2ZW50IHN0cmluZ3MgY29udGFpbiBhbiBleHRyYSBudWxsIGNoYXIKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAzNyAtIFR1ZXNkYXkgRmVicnVhcnkgMywgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo1MDYzOTogIERlYWRsb2NrIGNyZWF0aW5nIGltYWdlIG91dHNpZGUgVUkgdGhyZWFkICAKPGJyPjUwNzE4OiAgZ2V0IGRvYyB0aXRsZSBmcm9tIEJyb3dzZXIgIAo8YnI+NTAxMzA6ICBndGsgYW5kIG1vdGlmIGRvbid0IGNvbXBpbGUgYWdhaW5zdCBDTERDICAKPGJyPjUwNzc4OiAgSmF2YSBkb2MgcHJvYmxlbXMgIAo8YnI+NTA1NDc6ICBNZXNzYWdlQm94IGxvY2tzIG91dCBhcHBsaWNhdGlvbiAgCjxicj41MDUyMDogIFJDUDogTmVlZCBhYmlsaXR5IHRvIHNldCBjbG9zZSBidXR0b24gcGVyIGl0ZW0gb24gQ1RhYkZvbGRlciAgCjxicj41MDcwOTogIFJpZ2h0IEFsaWduZWQgVGFibGUgQ29sdW1uIEhlYWRlcnMgZG8gbm90IGFwcGVhciB1bnRpbCBhZnRlciBhIHJlc2l6ZSAgCjxicj40OTgyODogIFticm93c2VyXSBCcm93c2VyIGNvbnRyb2wgZG9lcyBub3QgYWx3YXlzIHNlbmQgY29tcGxldGVkIHByb2dyZXNzIGV2ZW50ICAKPGJyPjQ4ODk5OiAgW2Jyb3dzZXJdIGJyb3dzZXIgcGx1Z2luIG5vdCBpbmNsdWRlZCBpbnRvIHRoZSBlY2xpcHNlIGV4YW1wbGUgemlwIGZpbGUgIAo8YnI+NTA5OTE6ICBbYnJvd3Nlcl0gbW96aWxsYSAtIG11c3Qgc3VwcG9ydCBvbGRlciB2ZXJzaW9uIG1vemlsbGEgMS40ICAKPGJyPjUwNzc3OiAgW2Jyb3dzZXJdIG1vemlsbGEgZGVwZW5kZW5jaWVzIG9uIHVuZnJvemVuIGFwaSAgCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMzZkIC0gVHVlc2RheSBKYW51YXJ5IDI3LCAyMDA0IDwvaDI+Cgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxibG9ja3F1b3RlPgpCcm93c2VyLmJhY2tFbmFibGVkKCkgYWRkZWQKPGJyPkJyb3dzZXIuZm9yd2FyZEVuYWJsZWQoKSBhZGRlZCAKPGJyPkJyb3dzZXIuYWRkVGl0bGVMaXN0ZW5lcihUaXRsZUxpc3RlbmVyKSBhZGRlZCAKPGJyPkJyb3dzZXIucmVtb3ZlVGl0bGVMaXN0ZW5lcihUaXRsZUxpc3RlbmVyKSBhZGRlZCAKPC9ibG9ja3F1b3RlPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NjIyNTogIDMuME00IGRvZXNuJ3Qgd29yayB3aXRoIGd0azIuMy4wICAKPGJyPjUwMzAxOiAgQ2hhcmFjdGVycyB0eXBlZCBhcmUgZGlzcGxheWVkIGJhY2t3YXJkcy4gIAo8YnI+NTA1MTg6ICBDTGFiZWwgc2hvdWxkIHN1cHBvcnQgYSB2ZXJ0aWNhbCBncmFkaWVudAo8YnI+NDk5NzE6ICBOUEUgd2hlbiBjbG9zaW5nIHdvcmtiZW5jaCAgCjxicj41MDM3NzogIFN3dCBNQU5JRkVTVC5NRiBub3QgYWRqdXN0ZWQgdG8gcmVwYWNrYWdpbmcgb2YgU1dUX0FXVC4gIAo8YnI+NTAyNTY6ICBUZXh0I2dldENhcmV0TG9jYXRpb24oKSBzZW5kcyBlcnJvbmVvdXMgTW9kaWZ5IGV2ZW50ICAKPGJyPjQ1NDE5OiAgW2Jyb3dzZXJdIGFkZCBhcGkgdG8gcmVhZCBodG1sIGZyb20gbWVtb3J5IG9uIFBob3RvbiBCcm93c2VyICAKPGJyPjQ3OTM2OiAgW2Jyb3dzZXJdIEJhY2svTmV4dCBldmVudCBzdXBwb3J0IGluIFdlYkJyb3dzZXIgIAo8YnI+NDg4MDk6ICBbYnJvd3Nlcl0gYnJlYWtpbmcgY2hhbmdlIC0gcmVuYW1lIExvY2F0aW9uRXZlbnQuY2FuY2VsIHRvIExvY2F0aW9uRXZlbnQuZG9pdCBhbmQgcmV2ZXJzZSBib29sZWFuIG1lYW5pbmcgIAo8YnI+NTA0MDU6ICBbYnJvd3Nlcl0gTGludXg6IHN3aXRjaCB0byBNb3ppbGxhIDEuNiAgCjxicj41MDQzNzogIFticm93c2VyXSBzZW5kIHRpdGxlIGV2ZW50ICAKPGJyPjUwMDM0OiAgW2ludGVyb3BdIHN3aW5nIG1vdXNlIGV2ZW50cyBub3QgcmVjZWl2ZWQgaW4gUkNQIHBsdWdpbiAgCjxicj41MDQ4MzogIFtpbnRlcm9wXSBzd3QgU1dUX0FXVCAmIHVpIFZpZXdQYXJ0ICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAzNiAtIFR1ZXNkYXkgSmFudWFyeSAyMCwgMjAwNCA8L2gyPgoKPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8YmxvY2txdW90ZT4KRGlzcGxheS5nZXRJY29uU2l6ZXMoKSBhZGRlZAo8YnI+RGlzcGxheS5nZXRDdXJzb3JTaXplcygpIGFkZGVkIAo8L2Jsb2NrcXVvdGU+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjUwMTUzOiBBUEkgLSBCcmVha2luZyBjaGFuZ2UgLSByZXBsYWNlIERpc3BsYXkuZ2V0Q3Vyc29yU2l6ZSB3aXRoIERpc3BsYXkuZ2V0Q3Vyc29yU2l6ZXMgIAo8YnI+NTAxNjE6IE5FVyBBUEkgLSBEaXNwbGF5LmdldEljb25TaXplcwo8YnI+NDk5NDI6IE5QRSBpbiBTdHlsZWRUZXh0LmdldFNlbGVjdGlvblJhbmdlIChsaW5lIDQyNzUpCjxicj40ODY1MzogTlBFIGluIFN0eWxlZFRleHQucGVyZm9ybVBhaW50IChsaW5lIDYwODQpCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMzUgLSBUdWVzZGF5IEphbnVhcnkgMTMsIDIwMDQgPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4gCjQ2ODAwOiAgQXJyb3cgYnV0dG9uIGRvZXNuJ3QgcmVjZWl2ZSBmb2N1cyAgCjxicj40OTE1NDogIENvbWJvIGJlaGF2aW9yIG5vdCB2ZXJ5IHVzZXItZnJpZW5kbHkgICAKPGJyPjQ5NTM0OiAgSmF2YWRvYyBvZiAnQ29udHJvbCcgc2hvdWxkIG1lbnRpb24gJ1RyYXZlcnNlJyBldmVudCAgCjxicj4zMjgyODogIExvc3Mgb2YgdGhlIG1vZGFsIGNvbnRleHQgIAo8YnI+NDk0NzE6ICBNNiBpbWFnZSBsZWFrICAgCjxicj40NzI3OTogIE9TLkV4cGFuZEVudmlyb25tZW50U3RyaW5ncyBjcmFzaGVzIG9uIHplcm8tbGVuZ3RoIHN0cmluZyAgCjxicj40OTUwMjogIFNuaXBwZXQgOTAgbWlzcyBjbGFzcyBzcGVjaWZpY2F0aW9uICAKPGJyPjQ5NTAzOiAgU25pcHBldCA5OCBtaXNzaW5nIGltcG9ydCBzdGF0ZW1lbnRzICAKPGJyPjQ5NzIzOiAgU3R5bGVkVGV4dCBpcyBsZWFraW5nIFN0eWxlUmFuZ2Ugb2JqZWN0cyBhZ2FpbiAgCjxicj40OTQwMTogIFNXVCBNNiBvdXRkYXRlZCBNYW5pZmVzdCBGaWxlIHByZXZlbnRzIHVzZSBvZiBTV1RfQVdUIGZyb20gd2l0aGluIEVjbGlwc2UgIAo8YnI+NDkzODE6ICBTV1QuUklHSFQgZG9lcyBub3Qgd29yayBpbiBUZXh0ICAKPGJyPjQ5NDg4OiAgc3d0X2F3dC5jIGFuZCBzd3RfYXd0LnJjIGZpbGVzIG5vdCBpbiBzb3VyY2UgYnVuZGxlICAKPGJyPjQ1MTQ5OiAgVGhlIHBvc2l0aW9uIG9mIElNRSBpbnB1dCBmaWVsZCBpcyB3cm9uZy4gIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDM0IC0gTW9uZGF5IERlY2VtYmVyIDE1LCAyMDAzIDwvaDI+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjM5NjA2OiAgSkFXUyA0LjUgbm90IHJlYWRpbmcgdGFicyAgICAKPGJyPjQ4MjYzOiBFQzogZ3RrIGFsbG93cyBUYWJJdGVtLnNldENvbnRyb2woLi4uKSB2YWx1ZSB0byBiZSBub24tY2hpbGQgb2YgVGFiRm9sZGVyLiAgICAKPGJyPjQ4MzQzOiAgRENSOiBQcm92aWRlIG1lYW5zIHRvIGdldCBwcmVmZXJyZWQgY3Vyc29yIHNpemUKPGJyPjQ3OTI4OiAgb3Zlcmx5IHN0cmluZ2VudCBib3VuZHMgdGVzdHMgaW4gVGV4dC5nZXRUZXh0Cjxicj40ODIzMzogIFtLZXlCaW5kaW5nc10gc2hvcnRjdXQgQ29tbWFuZCtTcGFjZSBub3Qgd29ya2luZwo8YnI+MjIyMjg6ICBbV29ya2JlbmNoXSBwcm9ncmFtIGljb24gaW4gQUxUK1RBQiB3aW5kb3cgbG9va3MgdWdseQo8YnI+NDgyNzE6ICBFQzogQ29udHJvbC5zZXRWaXNpYmxlIGRvZXNuJ3QgZG8gaXNEaXNwb3NlZCgpIGNoZWNrCjwvYmxvY2txdW90ZT4KCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMzMgLSBUdWVzZGF5IERlY2VtYmVyIDksIDIwMDMgPC9oMj4KCjxoMz48YSBOQU1FPSJCcmVha2luZyBDaGFuZ2VzIj48L2E+QnJlYWtpbmcgQ2hhbmdlczwvaDM+CjxibG9ja3F1b3RlPgo8Y29kZT5TbGlkZXIuc2V0VGh1bWIoaW50KSwgU2xpZGVyLnNldFZhbHVlcyguLi4pLCBTY3JvbGxCYXIuc2V0VGh1bWIoaW50KTwvY29kZT4gYW5kCjxjb2RlPlNjcm9sbEJhci5zZXRWYWx1ZXMoLi4uKTwvY29kZT4gbm93IGNsYW1wcyB0aGUgcGFzc2VkIHRodW1iIHZhbHVlIGlmIGl0IGV4Y2VlZHMKdGhlIHJlY2VpdmVyJ3MgcmFuZ2UuCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDgwMzY6ICBbYnJvd3Nlcl0gY3Jhc2ggb24gSUUgd2hlbiB1c2luZyBqYXZhc2NyaXB0IHRvIGNsb3NlIG1vcmUuLi4KPGJyPjQ4MDIyOiAgMyBtb3VzZSBjbGlja3MgY2F1c2UgNCBtb3VzZURvd24gZXZlbnRzCjxicj40Nzg5NDogIENvbWJvIGxheW91dCBwcm9ibGVtcwo8YnI+NDc5MTY6ICBbYnJvd3Nlcl0gY3Jhc2ggb24gSUUgd2hlbiBzZXR0aW5nIHRleHQgbXVsdGlwbGUgdGltZSB3aXQuLi4KPGJyPjQ3ODg1OiAgW2Jyb3dzZXJdIHByb3ZpZGUgYSByZXNpemUgZXZlbnQKPGJyPjQ4MTY4OiAgW2Jyb3dzZXJdIGJyZWFraW5nIGNoYW5nZSAtIGNoYW5naW5nIG5hbWVzIG9mIFdpbmRvd0V2ZW50cwo8YnI+NDU5ODk6ICBTbGlkZXIvU2Nyb2xsYmFyIEFQSSBkb2MKPGJyPjQ3ODk4OiAgU3R5bGVkVGV4dCBsZWFraW5nIFN0eWxlUmFuZ2VzCjxicj40NzE5MDogIERvY3VtZW50YXRpb24gbWlzc2luZwo8YnI+NDgyOTc6ICBbYnJvd3Nlcl0gaW52ZXN0aWdhdGUgc3VwcG9ydCBmb3IgTW96aWxsYSBGaXJlYmlyZAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDMyIC0gVHVlc2RheSBEZWNlbWJlciAyLCAyMDAzIDwvaDI+Cgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxibG9ja3F1b3RlPgpvcmcuZWNsaXBzZS5zd3QuYXd0LlNXVF9BV1QgY2xhc3MgYWRkZWQgZm9yIFdpbmRvd3MsIEdUSyBhbmQgTW90aWYgLSB0aGUgY2xhc3MgaXMgbm90IGludGVybmFsIGFueW1vcmUKPC9ibG9ja3F1b3RlPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozMzY4NzogIENvbWJvIHdpZGdldCBkb2VzIG5vdCBzaXplIGl0c2VsZiB0byBoYW5kbGUgbGFyZ2VzdCBlbnRyeQo8YnI+NDcxNzA6ICBjaGVlc2Ugd2hlbiByZXNpemUgd2l0aCBmb2N1cyByaW5nCjxicj40NzU1NzogIE5vIGltYWdlcyByZXR1cm5lZCBieSBQcm9ncmFtLmdldEltYWdlRGF0YSgpCjxicj40NzI0NTogIHNldEVkaXRhYmxlKCkgbWV0aG9kIGZvciBDb21ibyBvciBDQ29tYm8KPGJyPjQ3NDY4OiAgU3VwcG9ydCAiZnVsbCBrZXlib2FyZCBhY2Nlc3MiIG1vZGUuCjxicj4zODE0OTogIFNISUZUICsgc3BhY2ViYXIgZG9lc24ndCB3b3JrCjxicj40NjgxMDogIHVuZXhwZWN0ZWQgYmVoYXZpb3IgZm9yIFRhYmxlSXRlbS5zZXRCYWNrZ3JvdW5kKCkgd2hlbiBjby4uLgo8YnI+NDY2NDE6ICBCcm93c2VyIHdpZGdldDogZm9vdHByaW50IGFuZCBndWlkZWxpbmVzIHF1ZXN0aW9uCjxicj40NjcwNzogIE5QRSB3aGVuIGNsb3NpbmcgZWNsaXBzZS4KPGJyPjQ3MzY2OiAgW05ldyBMb29rXSBBcmVhIG5vdCBwYWludGVkIHdoZW4gdGFiIGluIHRoZSBiYWNrZ3JvdW5kCjxicj40Njc1MTogIFticm93c2VyXSBKYXZhc2NyaXB0IHdpbmRvdy5jbG9zZSgpIGRvZXMgbm90IHdvcmsgaW4gdGhlIC4uLgo8YnI+NDY4OTY6ICBDQ29tYm8gc2V0RW5hYmxlZAo8YnI+NDcxMDk6ICBSZXNpemUgYnV0dG9ucyBob3Jpem9udGFsbHkgbGVhdmVzIGNoZWVzZQo8YnI+NDc1MzA6ICBbTmV3IExvb2tdIENoZWVzZSB3aGVuIGFkZGluZyB0byBhIGJhbm5lcgo8YnI+NDcxNDM6ICBMaXN0LmFkZCgpICE9IExpc3QuZ2V0SXRlbXMoKSBpZiBzdHJpbmcgY29udGFpbnMgJ1xuJwo8YnI+MzQ3OTc6ICBBUEk6IENsaXBib2FyZDppc0Rpc3Bvc2VkCjxicj40NzQyNjogIFticm93c2VyXSBicmVha2luZyBjaGFuZ2UgLSBSZXBsYWNlIE5ld1dpbmRvd0V2ZW50IHdpdGggTy4uLgo8YnI+MjkzOTY6ICBVbmFibGUgdG8gZ2V0IHNlc3Npb24gZGF0YSB3aGVuIHVzaW5nIGludGVybmFsIGJyb3dzZXIKPGJyPjQ3MDM5OiAgSW5jb25zaXN0ZW50IHNodXRkb3duCjxicj40NzM5MTogIENvbWJvLmRlc2VsZWN0KGludCkgYW5kIGRlc2VsZWN0QWxsKCkgZG9lc24ndCB3b3JrCjxicj40NDU2NzogIENsaXBib2FyZC5kaXNwb3NlIHRocm93cyBOUEUKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAzMSAtIFR1ZXNkYXkgTm92ZW1iZXIgMjUsIDIwMDMgPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDY4NDg6ICBDaXJjdW1mbGV4IGFjY2VudCBmb3IgY2hhcmFjdGVycyBkb2VzIG5vdCB3b3JrCjxicj40Njg1OTogIENvbWJvIEFQSSBkb2MvcHJvYmxlbXMKPGJyPjE2MDExOiAgQ29weSBub3Qgd29ya2luZy4KPGJyPjQ3MTQ2OiAgR3JvdXAgbGFiZWwgc2hvdWxkIGhhdmUgc2FtZSBmb3JlZ3JvdW5kL2JhY2tncm91bmQgYXMgR3JvdXAKPGJyPjQ3MDg0OiAgTm8gbW91c2VVcCBldmVudHMgZm9yIHRoZSBsZWZ0IG1vdXNlIGJ1dHRvbgo8YnI+NDYwNjg6ICBbYnJvd3Nlcl0gbGludXggbW90aWYgQnJvd3NlciBzaG93cyB1cCBub24gZW1iZWRkZWQgaWYgcHJldmlvdXMgaW5zdGFuY2UgZGlzcG9zZWQKPGJyPjQwNDYwOiAgW0tleSBCaW5kaW5nc10gU29tZSBzaG9ydGN1dCBrZXlzIGJyb2tlbgo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDMwIC0gVHVlc2RheSBOb3ZlbWJlciAxOCwgMjAwMyA8L2gyPgoKPGgzPjxhIE5BTUU9IkJyZWFraW5nIENoYW5nZXMiPjwvYT5CcmVha2luZyBDaGFuZ2VzPC9oMz4KPGJsb2NrcXVvdGU+Cjx1bD4KPGxpPjxjb2RlPkRpcmVjdG9yeURpYWxvZy5zZXRNZXNzYWdlKFN0cmluZyBzdHJpbmcpPC9jb2RlPiBub3cgdGhyb3dzIGFuIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4gaWYKPGNvZGU+c3RyaW5nPC9jb2RlPiBpcyA8Y29kZT5udWxsPC9jb2RlPgo8bGk+PGNvZGU+TWVzc2FnZUJveC5zZXRNZXNzYWdlKFN0cmluZyBzdHJpbmcpPC9jb2RlPiBub3cgdGhyb3dzIGFuIDxjb2RlPklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvY29kZT4gaWYKPGNvZGU+c3RyaW5nPC9jb2RlPiBpcyA8Y29kZT5udWxsPC9jb2RlPgo8bGk+PGNvZGU+VGV4dC5nZXRUZXh0KGludCBzdGFydCwgaW50IGVuZCk8L2NvZGU+IG5vdyB0aHJvd3MgYW4gPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPiBpZgo8Y29kZT5zdGFydDwvY29kZT4gaXMgbmVnYXRpdmUsIGlmIDxjb2RlPmVuZDwvY29kZT4gaXMgZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHRoZSBsZW5ndGggb2YKdGhlIHJlY2VpdmVyJ3MgdGV4dCwgb3IgaWYgPGNvZGU+c3RhcnQ8L2NvZGU+IGlzIGdyZWF0ZXIgdGhhbiA8Y29kZT5lbmQ8L2NvZGU+Lgo8L3VsPgo8L2Jsb2NrcXVvdGU+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjM0MTI4OiAgY2xhc3NwYXRoIGluY29tcGxldGUgIAo8YnI+NDY2ODg6ICBlY2xpcHNlIDMuME00IGxlZnQgb3V0IGEgY2hhciBzeW1ib2wgYmVoaW5kCjxicj40NjcyMjogIENyYXNoIG9uIG9wZW4gb2YgYW55IGphdmEgc291cmNlICAKPGJyPjM4OTgxOiAgRGVjb3JhdGlvbnMuZ2V0TWF4aW1pemVkKCkgYWx3YXlzIHJldHVybnMgZmFsc2UgIAo8YnI+NDY1ODI6ICBndGsgc2V0U2VsZWN0aW9uKCopIGRvZXMgbm90IHNldCBmb2N1cyBwcm9wZXJseSAgCjxicj4yMjAxMDogIEdUSzogQ29tYm8uc2V0Rm9yZWdyb3VuZCgpIGFuZCBDb21iby5zZXRGb250KCkgZG9udCBjaGFuZ2UgdGhlIGRyb3AtZG93biBsaXN0ICAKPGJyPjQ2NzAyOiAgTGlzdC5nZXRGb2N1c0luZGV4KCkgZG9lcyBub3QgYW5zd2VyIC0xICAKPGJyPjQ2NTAwOiAgTWVzc2FnZUJveC5zZXRNZXNzYWdlKG51bGwpIGhhcyB0byBiZSBzcGVjJ2QgIAo8YnI+NDU3ODc6ICBQYW50aGVyOiBpbnRpdGlhbCBUZXh0ZmllbGQgY29udGVudHMgb25seSBwYXJ0aWFsbHkgdmlzaWJsZSAgCjxicj40NjQxOTogIFRleHQuZ2V0VGV4dChpbnQsaW50KSBuZWVkcyB0byBzcGVjIGJlaGF2aW91ciBmb3IgaW52YWxpZCByYW5nZSAKPGJyPjQyNDA4OiAgW2Jyb3dzZXJdIEphdmFzY3JpcHQgd2luZG93Lm9wZW4oKSBkb2VzIG5vdCB3b3JrIGluIHRoZSBCcm93c2VyIHdpZGdldCAgCjxicj4yMzA4NDogIFtTdHlsZWRUZXh0IE1vdGlmIDIuMC4xXSBDdXJzb3IgZGlzYXBwZWFycyB3aGlsZSBtb3ZpbmcgYnkgd29yZHMgKGZvcndhcmRzL2JhY2t3YXJkcykgIAo8YnI+MzYwMTA6ICBbVmlldyBNZ210XSBWaWV3IG1lbnUgIk1vdmUiIGFuZCAiU2l6ZSIgY29tbWFuZHMgaGF2ZSBubyBlZmZlY3QuICAKPC9ibG9ja3F1b3RlPgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAyOSAtIFR1ZXNkYXkgTm92ZW1iZXIgMTEsIDIwMDMgPC9oMj4KCjxoMz48YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KPGJsb2NrcXVvdGU+CkdDLmRyYXdQb2ludChpbnQgeCwgaW50IHkpIGFkZGVkCjxicj48Y29kZT5EcmFnRGV0ZWN0PC9jb2RlPiBldmVudCBvYmplY3RzIG5vdyBoYXZlIHRoZWlyIDxjb2RlPng8L2NvZGU+IGFuZCA8Y29kZT55PC9jb2RlPiBmaWVsZHMKc2V0IHRvIHRoZSBjb250cm9sLXJlbGF0aXZlIHggYW5kIHkgY29vcmRpbmF0ZXMgb2YgdGhlIGRyYWcgc3RhcnQKPC9ibG9ja3F1b3RlPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NjM1NDogIGFkZCB0byBqYXZhZG9jIGZvciBMaXN0LnJlbW92ZShpbnQgc3RhcnQsIGludCBlbmQpICAKPGJyPjQyNDI2OiAgQmFja3BvcnQgQmlEaSBNaXJyb3JpbmcgRml4ZXMgZnJvbSAzLjAgYW5kIDIuMS54ICAKPGJyPjQ2MDI5OiAgYmFkIGFsaWdubWVudCBpbiBJbXBvcnQgcGx1Z2lucyB3aXphcmQgIAo8YnI+MzI3NzI6ICBDYW5ub3QgaG9sZCBkb3duIHN0ZXBwaW5nIGtleXMgb24gT1NYICAKPGJyPjQ0MzkwOiAgY29sdW1uIHNlcGFyYXRvciBkaXNhcHBlYXJlcyBhZnRlciByZXNpemluZyB0aGUgZmlyc3QgY29sdW1uIHRvIHplcm8gd2lkdGggIAo8YnI+NDYzMDY6ICBDb250cm9sRXhhbXBsZTogbXVsdGlwbGUgU2VsZWN0IExpc3RlbmVycyBkaWFsb2dzIGlzIGNvbmZ1c2luZyAgCjxicj4zMzYzNzogIERDUiAtIG5vIHByaW50aW5nIG9uIE1hYyBbd2FzIFByaW50IG9uIE9TWCAxMC4yLjRdICAKPGJyPjQzMjUxOiAgRHJhZ0RldGVjdCBldmVudCBzaG91bGQgaGF2ZSB4IGFuZCB5IGNvb3JkaW5hdGVzICAKPGJyPjI4Njg0OiAgRHJvcC1Eb3duIGFycm93cyBoYXJkIHRvIGhpdCAgCjxicj4yMTA3NTogIEltcG9ydCB0byBmaWxlc3lzdGVtIGNhbiBvbmx5IGJyb3dzZSB3aGVuIGVtcHR5ICAKPGJyPjQ1ODc3OiAgbWFueSBHZXJtYW4gc3RyaW5ncyBhcmUgbm90IGRpc3BsYXllZCAgCjxicj4zODUyMTogIE1vdXNlIGV2ZW50cyBkZWxpdmVyZWQgdG8gd3JvbmcgQ29udHJvbCAgCjxicj40NTk0NjogIE5lZWQgYW4gZWZmaWNpZW50IEdDLnNldFBpeGVsKCB4LHkgKSBtZXRob2QuICAKPGJyPjQxNDY1OiAgUGFudGhlcjogVG9vbEl0ZW0oRFJPUF9ET1dOKSBhcnJvdyBoYXMgd3JvbmcgYmFja2dyb3VuZCAgCjxicj40NTQ1MzogIHBvY2tldHBjIC0gUG9wLVVwIG1lbnVzIGRvIG5vdCB3b3JrIG9uIFRhYmxlcyAgCjxicj40NTQyMjogIFB1bGwtZG93biBtZW51IG9ubHkgc2hvd3MgdXAgb24gbW91c2UtdXAsIHJhdGhlciB0aGFuIG1vdXNlIGRvd24gIAo8YnI+NDMxMDg6ICBTdHlsZWRUZXh0IC0gU2Nyb2xsd2hlZWwgZXZlbnQgaW50ZXJmZXJlcyB3aXRoIGxhc3QgY2FyZXQgcGxhY2VtZW50ICAKPGJyPjQ2MzY4OiAgVGFibGUgYXJyYXkgZXhjZXB0aW9uIHdoZW4gcmVtb3ZpbmcgaW52YWxpZCBsb3dlciByYW5nZSAgCjxicj40NjAzNzogIHRleHQgZWRpdG9yIC0gPGhvbWU+IHBvc2l0aW9ucyBlZGl0b3IgaW4gZmlyc3QgcGFnZSAgCjxicj40NTc4OTogIFRvb2xiYXIgZHJvcGRvd24gaXRlbXMgZG9uJ3QgZmlyZSBpbW1lZGlhdGVseSAgCjxicj40NTk0MDogIFZvdGVzIG9uIGNsb3NlZCBidWdzPyAgCjxicj40NjAyODogIFticm93c2VyXSBJRSBicm93c2VyIHN0aWxsIHNob3dzIGRlZmF1bHQgcG9wdXAgbWVudSAgCjxicj40NTk5NzogIFticm93c2VyXSBzdXBwb3J0IGFuZCByZXF1aXJlIE1vemlsbGEgMS41ICAKPGJyPjQ2MTQ3OiAgW2Jyb3dzZXJdIFNXVCBhY2NlbGVyYXRvcnMgZ2V0IG92ZXJyaWRlbiBieSBJRSAgCjxicj40NDkxOTogIFtLZXlCaW5kaW5nc10gZGlhbG9nIGtleWJvYXJkIHNob3J0Y3V0cyBnb25lICAKPGJyPjQ1MzYyOiAgW0tleUJpbmRpbmdzXSBGcmVuY2ggS2V5Ym9hcmQgaXNzdWUgd2l0aCAwIGtleSAoU0hJRlQgKyA/Pz8/Pz8/KSAgCjxicj4zNzc0MDogIFtLZXlCaW5kaW5nc10gVGV4dCB0b29sIGl0ZW0gb24gdGhlIFZpZXdwYXJ0IFRpdGxlIHRha2VzIG1lbnUncyBhY2NlbGVyYXRvciBrZXkgIAo8L2Jsb2NrcXVvdGU+Cgo8aDI+IFNXVCBCdWlsZCAzLjAgMDI4IC0gVHVlc2RheSBOb3ZlbWJlciA0LCAyMDAzIDwvaDI+Cgo8aDM+PGEgTkFNRT0iQnJlYWtpbmcgQ2hhbmdlcyI+PC9hPkJyZWFraW5nIENoYW5nZXM8L2gzPgo8YmxvY2txdW90ZT4KPGNvZGU+RmlsZURpYWxvZy5nZXRGaWxlTmFtZXMoKTwvY29kZT4gbm93IHJldHVybnMgYW4gZW1wdHkgPGNvZGU+U3RyaW5nPC9jb2RlPiBhcnJheSBpbnN0ZWFkIG9mIDxjb2RlPm51bGw8L2NvZGU+CndoZW4gdGhlcmUgYXJlIG5vIGZpbGUgbmFtZXMgdG8gYW5zd2VyLgo8L2Jsb2NrcXVvdGU+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+ICAgCjM2MDgzOiBOUEUgaW4gQ3Vyc29yLmRpc3Bvc2UKPGJyPjUwOTY6IEZpbGVEaWFsb2cgZG9lc24ndCBhbGxvdyB0byBzZXQgZmlsZSBuYW1lCjxicj4yMjc4NTogRmlsZURpYWxvZzogRmlsZSBwYXRocyBpbmNvcnJlY3QKPGJyPjI2NzcxOiBtb3RpZiB0ZXN0IGNhc2UgZmFpbHVyZXMKPGJyPjI2OTEzOiBBbGwgcGxhdGZvcm1zIHNob3VsZCBjbGVhciBtb3VzZSBjYXB0dXJlIHdoZW4gbW9kYWwgZGlhbG9nIGlzIG9wZW5lZAo8YnI+MzQ0MDg6IFNoaWZ0IFRhYiBkb2VzIG5vdCB3b3JrIGluIGphdmEgZWRpdG9yCjxicj40NDg3ODogU3R5bGVkVGV4dCAtIEFycm93X0Rvd24gaW4gdGV4dCBlZGl0b3IgZG9lc24ndCByZXRhaW4gY29sdW1uIHdoZW4gaXQgc2Nyb2xscwo8YnI+NDUzMjM6IEVycm9yIG9jY3VycmVkIHVzaW5nIEYzIHRvIG9wZW4gY2xhc3MKPGJyPjQ1NjI4OiBjYW5ub3QgdHJhdmVyc2UgdG8gVG9vbEJhciBpdGVtcwo8YnI+NDU4MDA6IFRyYWNrZXIgKFJFU0laRSkgd2l0aCBtdWx0aXBsZSBSZWN0YW5nbGVzIGxvc2luZyBwcmVjaXNpb24KPGJyPjQ1ODM0OiBGaWxlRGlhbG9nIEFQSSBzcGVjIHByb2JsZW1zCjxicj44NTA3OiBTV1RFcnJvciB0aHJvd24gaW5zdGVhZCBvZiBTV1RFeGNlcHRpb24KPGJyPjExNjYzOiB1bm5lY2Vzc2FyeSBmb2N1cyBldmVudHMgb24gbGludXgtbW90aWYKPGJyPjI0MzE5OiBLZXkgZXZlbnRzIGRvbid0IHNlbmQgdG8gY29kZSBjb21wbGV0aW9uIGRpYWxvZwo8YnI+MjU0OTQ6IE1uZW1vbmljIGtleXMgaW4gZWRpdG9yIG1lbnUgZG9uJ3Qgd29yayBvbiBndGsuCjxicj4yNjEwMTogU3RyYW5nZSBiZWhhdmlvdXIgaW4gVmVyaWZ5TGlzdGVuZXIgdW5kZXIgR1RLCjxicj4yNjE3MDogU1dUIHdpZGdldCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5MYWJlbCBkb2VzIG5vdCBwcm9wZXJseSBkaXNwbGF5IGl0cyB0ZXh0IHVuZGVyIExpbnV4IEd0ayB3aGVuIGdpdmVuIGEgU1dULldSQVAgc3R5bGUuCjxicj4zNTgxMTogUmVzaXplIHdvcmtiZW5jaCBzaGVsbCBjYXVzZXMgZmFzdHZpZXcgei1vcmRlciBjaGVlc2UKPGJyPjM2MTUzOiBObyBGMSBoZWxwIGluIEphdmEgZWRpdG9yCjxicj4zNzUxMDogU2hpZnQgKyBGMTAgZG9lcyBub3Qgd29yayBpbiBHRUYgb24gTGludXgKPGJyPjQzNjgzOiBbU1dUXSByZXF1ZXN0IGZ1bmN0aW9uIGtleXMgRjEzLCBGMTQsIGFuZCBGMTUgYmUgc3VwcG9ydGVkCjxicj40NTQ1NzogW1ZpZXdNZ210XSBWaWV3IGNvbnRlbnRzIHJlbmRlcmVkIG9uIHRvcCBvZiBmYXN0IHZpZXcKPGJyPjQ1NTUyOiBDcmFzaCB3aGVuIHZpZXdpbmcgTWljcm9BbmFseXplciB0cmFjZSBvbiBMaW51eAo8YnI+MjEwMzU6IFtLZXkgQmluZGluZ3NdIEFiaWxpdHkgdG8gbWFwIGtleXBhZCBrZXkgZXZlbnRzCjxicj4yNDE3ODogKEJCQVdUKSBDZXJ0YWluIGtleXMgZG8gbm90IGdlbmVyYXRlIEtleUV2ZW50cwo8YnI+NDM4NzE6IEN0cmwrQnJlYWsgaXMgaW50ZXJwcmV0ZWQgYXMgQ3RybCtDIEN0cmwrQwo8YnI+NDU2NDA6IFBFTnMgYXJlIGJlaW5nIGxlYWtlZCBkdXJpbmcgcGFpbnRpbmcKPGJyPjQ2MjI6IERDUjogTm8gYXV0byB0YWIgc2VsZWN0IG9uIGZpcnN0IHRhYiBjcmVhdGVkICgxR0NFREk0KQo8YnI+MzExMDc6IENUYWJGb2xkZXIgYW5kIENDb21ibyAtIHRvbyBtYW55IHNoZWVscyBmcm9tIHRvb2x0aXAgc2hlbGwKPGJyPjMzOTM0OiBDVGFiRm9sZGVyJ3MgY2xvc2VJbWFnZSBpbnZpc2libGUgaW4gSGlnaCBDb250cmFzdCBtb2RlCjxicj4zMzk0NTogQ1RhYkZvbGRlciB0b29sdGlwcyBvdmVybGFwIGN1cnNvcgo8YnI+Mzg4MDU6IFN3aXRjaGluZyBwZXJzcGVjdGl2ZXMgb24gTGludXggR1RLIHNlZW1zIHRvIGJlIHNsb3cgZHVlIHRvIGxhcmdlIG51bWJlciBvZiB0b29sYmFyIGNyZWF0aW9ucwo8YnI+NDIyNzg6IENUYWJGb2xkZXIgdGhyb3dzIGV4Y2VwdGlvbiB3aGVuIGNsb3NpbmcgYSB0YWIKPC9ibG9ja3F1b3RlPiAKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMjcgLSBUdWVzZGF5IE9jdG9iZXIgMjgsIDIwMDMgPC9oMj4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4gICAKNDUyNjc6ICBCSURJOiBNaXJyb3JlZCB0ZXh0IGFwcGVhcnMgb24gZXZlcnkgZWRpdG9yICAKPGJyPjM4NTg1OiAgQ29udHJvbEV4YW1wbGUgLSBDaGVja2JveCBUcmVlIHByZWZlcnJlZCBzaXplIGEgdGFkIHRvbyBzbWFsbCAgCjxicj4zNTQ5NDogIENvbnRyb2xFeGFtcGxlIC0gVGFibGUgcHJlZmVycmVkIHNpemUgZG9lcyBub3QgYWRqdXN0IHdpZHRoICAKPGJyPjIyMjg3OiAgQ3Jhc2ggd2hlbiBjYWxsaW5nIFNXVCBDb21iby5zZXRUZXh0KCkgIAo8YnI+NDE0MjA6ICBEZWxldGluZyB0aGUgZmlyc3QgY29sdW1uIG9mIGEgVGFibGUgbWF5IHRocm93IGFuIGV4Y2VwdGlvbiAgCjxicj40NTQzOTogIERvdWJsZSBjbGlja2luZyB0aGUgbGVmdCB1cHBlciBjb3JuZXIgb2YgdGhlIG5lc3RlZCBEZWNvcmF0aW9uIGNsb3NlcyB0aGUgcGFyZW50IFNoZWxsICAKPGJyPjQ1MzQxOiAgRmlsZURpYWxvZyBjcmFzaGVzIFZNIG9uIGludmFsaWQgZHJpdmUgIAo8YnI+MzQzNjI6ICBHQjE4MDMwLU1vdGlmOiBDcmFzaCB3aGVuIHR5cGluZyBDTiBpbiB0aGUgSmF2YUVkaXRvciAgCjxicj40MzUwMDogIEludmFsaWRUaHJlYWRBY2Nlc3Mgd2hlbiBydW5uaW5nIGEgc3Vic2V0IG9mIEpVbml0IHRlc3RzICAKPGJyPjQ1MzA2OiAgTW91c2UgZXZlbnRzIGxvc3QgaW4gc2hlbGwgbGF1bmNoZWQgZnJvbSBzZWNvbmRhcnkgYXBwbGljYXRpb24gbW9kYWwgc2hlbGwgIAo8YnI+NDUzMzc6ICBwb2NrZXRwYyAtIGNhbid0IHNob3cgcG9wdXAgbWVudSBpbiBUcmVlICAKPGJyPjQxMDYwOiAgcHJlZmVyZW5jZXMgZGlhbG9nIGFuZCBlZGl0aW5nIHBhc3RlIGZ1bmN0aW9ucyB3ZWRnZWQgIAo8YnI+NDIzNjc6ICBTdHlsZWRUZXh0IC0gU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBpbiBTdHlsZWRUZXh0UmVuZGVyZXIgIAo8YnI+NDQ0NzQ6ICBTdHlsZWRUZXh0IGRvZXMgbm90IGhhbmRsZSBjYXNlIHdoZXJlIHByaW50aW5nIG5vdCBzdXBwb3J0ZWQgIAo8YnI+NDQwNTA6ICBTV1QuQk9SREVSIFRleHQgc2hvdWxkIGRpc3BsYXkgdGhpbiBibGFjayBib3JkZXIgb24gUG9ja2V0UEMgIAo8L2Jsb2NrcXVvdGU+IAoKPGgyPiBTV1QgQnVpbGQgMy4wIDAyNiAtIFdlZG5lc2RheSBPY3RvYmVyIDIxLCAyMDAzIDwvaDI+Cgo8aDM+PGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+ICAgCjQ0ODk2OiAyIGp1bml0IHRlc3RzIGhhdmUgYmVlbiBpbnRlcm1pdHRlbnRseSBmYWlsaW5nIGluIG5pZ2h0bHkgYnVpbGQgIAo8YnI+NDM4MTE6IDMuME0zIGZhaWxzIHN0YXJ0dXAgIAo8YnI+NDI0MTA6IEEgd2F5IHRvIGNoZWNrIGlmIFNXVCBCcm93c2VyIGlzIGltcGxlbWVudGVkIGFuZCB3b3JraW5nIGlzIG5lZWRlZC4gIAo8YnI+NDQxNzQ6IEVjbGlwc2UgY3Jhc2hlcyB1c2luZyBTV1QgRGVzaWduZXIgcGx1Z2luIAo8YnI+NDQyMzI6IEltYWdlRGF0YSBjb25zdHJ1Y3RvciBzaG91bGQgdGhyb3duIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBmb3Igc2NhbmxpbmVQYWQgPT0gMCAgCjxicj40NDgzMjogT3BlbmluZyBhIFBSSU1BUllfTU9EQUwgZGlhbG9nIG9uIHRvcCBvbiBhbm90aGVyIFBSSU1BUllfTU9EQUwgZGlhbG9nIHNob3VkIG5vdCBlbmFibGUgdGhlIHBhcmVudCBvZiB0aGUgZmlyc3QuICAKPGJyPjQ0MzAxOiBTYXNoRm9ybSAtIFNhc2hlcyBoYXZlIG5vIGJvcmRlcnMgIAo8YnI+NDUxNDU6IFNlY29uZCB3aW5kb3cgY29tZXMgdG8gZnJvbnQgd2hlbiB1c2luZyBmaXJzdCAgCjxicj40MDg3MzogU3BsYXNoIFNjcmVlbiBIYXMgV3JvbmcgQ29sb3JzIG9uIExpbnV4ICAKPGJyPjQyOTQ3OiBTdHlsZWRUZXh0IC0gcmVkcmF3IHByb2JsZW0gb24gbGFzdCBsaW5lIHdpdGggd29yZCB3cmFwICAgCjxicj40MzgzNzogW2Jyb3dzZXJdIEJyb3dzZXIgLSBsaW51eCBjYW4ndCBkaXNwb3NlIGEgYnJvd3NlciBhbmQgb3BlbiBhIG5ldyBvbmUgIAo8YnI+NDUxMjI6IFticm93c2VyXSBNb3ppbGxhIGJyb3dzZXIgZm9yd2FyZCgpIGJhY2soKSBhbHdheXMgcmV0dXJuIHRydWUgIAo8YnI+NDUxMTg6IFticm93c2VyXSBtb3ppbGxhIGJyb3dzZXIgdGhyb3dzIGV4Y2VwdGlvbiBhZnRlciByZWxvYWQgaW4gc29tZSBjYXNlcyAgCjxicj4zOTEwNjogW0RCQ1NdIENhbm5vdCBpbnB1dCBKYXBhbmVzZSBjaGFyYWN0ZXJzIGludG8gVGV4dCB3aWRnZXQgd2l0aCBHVEsrMiwga2lucHV0MiBhbmQgY2FubmEgIAo8L2Jsb2NrcXVvdGU+IAoKPGgyPiBTV1QgQnVpbGQgMy4wIDAyNSAtIFdlZG5lc2RheSBPY3RvYmVyIDE1LCAyMDAzIDwvaDI+Cgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxibG9ja3F1b3RlPgpUYWJGb2xkZXIgc3R5bGUgYml0cyBTV1QuVE9QIGFuZCBTV1QuQk9UVE9NIGFkZGVkCjwvYmxvY2txdW90ZT4KCjxoMz48YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4gICAKNDQyMTI6IEZvY3VzRXZlbnRzL0tleUV2ZW50cyBmcm9tIFNjYWxlIG5vdCBkZWxpdmVyZWQgIAo8YnI+NDM3Mjk6IEdDLmRyYXdUZXh0KCkgZG9lcyBub3Qgd29yayBvbiBsYXJnZSBpbWFnZXMgIAo8YnI+NDQ1MDg6IEdDLmdldENoYXJXaWR0aCBKVW5pdCB0ZXN0IGZhaWx1cmUgb24gV2luOTggIAo8YnI+NDQ2MDA6IGdub21lIFByb2dyYW0gZG9lcyBub3QgcmV0dXJuIGljb24gIAo8YnI+NDQ0NzY6IEdQIG9uIHNodXRkb3duICAKPGJyPjQ0MjIzOiBHcm91cCB3aWRnZXQgZG9lc24ndCBwYXNzIGZvY3VzIHdoZW4gcHJlc3NpbmcgbW5lbW9uaWMgIAo8YnI+NDQ2MDc6IEd0ayBjcml0aWNhbCB3YXJuaW5nIHdoZW4gcnVubmluZyBzd3QgYXBwICAKPGJyPjQ0MzcyOiBOUEUgb24gaGl0dGluZyBFc2MgdG8gZGlzbWlzcyBpbmxpbmUgdGFibGUgZWRpdCAgCjxicj40NDUxNjogUmVtb3ZlIHByaW50bG4ncyBmcm9tIEZvbnREYXRhIEpVbml0IHRlc3QgIAo8YnI+NDM4Nzg6IFNXVCBIVE1MIFdpZGdldCAvIEJyb3dzZXIgZW1iZWRkaW5nIHByb2JsZW0gb24gTGludXggIAo8YnI+MjI5ODM6IFRhYmxlLnNob3dJdGVtKCkgaWdub3JlZCBiZWZvcmUgYm91bmRzIGFyZSBzZXQgIAo8YnI+NDQ3Nzg6IFRhYmxlSXRlbS5nZXRJbWFnZSBwZXJpb2RpY2FsbHkgdGhyb3dzIEFycmF5T3V0T2ZCb3VuZHNFeGNlcHRpb24gIAo8YnI+NDMyODE6IFRleHQgZmllbGQgdGhyb3dzIFN0YWNrT3ZlcmZsb3dFcnJvciB3aGVuIGZ1bGwgIAo8YnI+NDQ1MDk6IFRleHQuc2V0VGV4dExpbWl0IEpVbml0IHRlc3QgZmFpbHVyZSBvbiBXaW45OCAgIAo8L2Jsb2NrcXVvdGU+IAoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMjQgLSBUdWVzZGF5IE9jdG9iZXIgNywgMjAwMyA8L2gyPgoKPGgzPjxhIE5BTUU9IkJyZWFraW5nIENoYW5nZXMiPjwvYT5CcmVha2luZyBDaGFuZ2VzPC9oMz4KCjxwPk1ldGhvZHMgPGNvZGU+SW1hZ2VMb2FkZXIuYWRkSW1hZ2VMb2FkZXJMaXN0ZW5lcihJbWFnZUxvYWRlckxpc3RlbmVyKTwvY29kZT4gYW5kCjxjb2RlPkltYWdlTG9hZGVyLnJlbW92ZUltYWdlTG9hZGVyTGlzdGVuZXIoSW1hZ2VMb2FkZXJMaXN0ZW5lcik8L2NvZGU+IG5vdyB0aHJvdyBhbiBTV1QgRXJyb3IKaWYgPGNvZGU+bnVsbDwvY29kZT4gaXMgcGFzc2VkIGFzIHRoZSBhcmd1bWVudC4KPC9wPgoKPGgzPjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8YmxvY2txdW90ZT4KUmVnaW9uLmFkZChpbnRbXSBwb2x5Z29uKSBhZGRlZAo8YnI+UmVnaW9uLnN1YnRyYWN0KGludFtdIHBvbHlnb24pIGFkZGVkCjxicj5TaGVsbC5nZXRSZWdpb24oKSBhZGRlZAo8YnI+U2hlbGwuc2V0UmVnaW9uKFJlZ2lvbikgYWRkZWQKPGJyPkFDQy5URVhUX0lOU0VSVCBhZGRlZAo8YnI+QUNDLlRFWFRfREVMRVRFIGFkZGVkCjxicj5BY2Nlc3NpYmxlLmFkZEFjY2Vzc2libGVUZXh0TGlzdGVuZXIoQWNjZXNzaWJsZVRleHRMaXN0ZW5lcikgYWRkZWQKPGJyPkFjY2Vzc2libGUucmVtb3ZlQWNjZXNzaWJsZVRleHRMaXN0ZW5lcihBY2Nlc3NpYmxlVGV4dExpc3RlbmVyIGxpc3RlbmVyKSBhZGRlZAo8YnI+QWNjZXNzaWJsZS5zZWxlY3Rpb25DaGFuZ2UoKSBhZGRlZAo8YnI+QWNjZXNzaWJsZS50ZXh0Q2FyZXRNb3ZlZChpbnQpIGFkZGVkCjxicj5BY2Nlc3NpYmxlLnRleHRDaGFuZ2VkKGludCxpbnQsaW50KSBhZGRlZAo8YnI+QWNjZXNzaWJsZS50ZXh0U2VsZWN0aW9uQ2hhbmdlZCgpIGFkZGVkCjxicj5vcmcuZWNsaXBzZS5zd3QuYWNjZXNzaWJpbGl0eS5BY2Nlc3NpYmxlVGV4dEFkYXB0ZXIgYWRkZWQKPGJyPm9yZy5lY2xpcHNlLnN3dC5hY2Nlc3NpYmlsaXR5LkFjY2Vzc2libGVUZXh0RXZlbnQgYWRkZWQKPGJyPm9yZy5lY2xpcHNlLnN3dC5hY2Nlc3NpYmlsaXR5LkFjY2Vzc2libGVUZXh0TGlzdGVuZXIgYWRkZWQKPC9ibG9ja3F1b3RlPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAgCjQ0MTYxOiAgYWRkSW1hZ2VMb2FkTGlzdGVuZXIgc2hvdWxkIGNoZWNrIGZvciBudWxsIAo8YnI+NDM5NzE6ICBEb3VibGUgY2xpY2tpbmcgbm8gbG9uZ2VyIHdvcmtzICAKPGJyPjQyNTU5OiAgRWNsaXBzZSAzLjAgTTMgLSBjYW4ndCBzdGFydCBFY2xpcHNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSAgCjxicj40MzcwNjogIFBhbGV0dGUgZGVzYyBzYXlpbmcgJ25vIGl0ZW1zIGZvciB0aGlzIGVkaXRvcicgZG9lc250IHdyYXAgb24gbGludXggIAo8YnI+NDA5NDA6ICBQcmludGluZyBkaXNhYmxlZCBpbiBTb2xhcmlzICAKPGJyPjQzOTE4OiAgU29tZSBtb3VzZSBjbGlja3MgZG9uJ3Qgd29yayAgCjxicj40NDE2NDogIHVwZGF0ZSBuZWVkZWQgaW4gamF2YWRvYyBmb3IgY29uc3RydWN0b3IgSW1hZ2UoRGV2aWNlICwgSW1hZ2VEYXRhKSAgCjxicj40NDE2NTogIHVwZGF0ZSBuZWVkZWQgaW4gamF2YWRvYyBmb3IgY29uc3RydWN0b3JzIEltYWdlRGF0YSBzcGVjaWZ5aW5nIGNvbG9yRGVwdGggIAo8L2Jsb2NrcXVvdGU+IAoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMjMgLSBUdWVzZGF5IFNlcHRlbWJlciAzMCwgMjAwMyA8L2gyPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAgCjQzNjEwOiAgJ1NoaWZ0K0FsdCsnIGdpdmVzIDB4MDAgYXMga2V5IGNvZGUgYW5kIGNoYXJhY3RlciAgCjxicj40MzUzODogIEN0cmwrU3BhY2UgZ2l2ZXMgdHdvIGtleSBkb3duIGV2ZW50cyAgCjxicj40MjIyNTogIENhbid0IGFzc2lnbiBjb21tYW5kIHRvIEN0cmwrQmFja3NwYWNlICAKPGJyPjQzNTk3OiAgW1NXVF0gVGV4dC5zZXRUZXh0KC4uKSBjYW4gY2hhbmdlIGZvbnQgaW5hcHByb3ByaWF0ZWx5IG9uIE1hYyBPU1ggIAo8YnI+NDM1OTk6ICBbS2V5QmluZGluZ3NdIGFjY2VsZXJhdG9ycyBvbiBNYWMgT1MgWCAnYXBwbGljYXRpb24gbWVudScgc2hvdWxkIG5vdCBhbHdheXMgYmUgYWN0aXZlICAKPGJyPjM0NzkwOiAgU2VhcmNoIHZpZXcgZG9lc24ndCByZXBvc2l0aW9uIHNjcm9sbGJhciAgCjxicj4zODc1NzogIEJJREkgLSBvbiBhIDEwMiBrZXlib2FyZCwgRW5nbGlzaCBMYXllciwgdGhlcmUgaXMgYSBrZXkgY29uZmxpY3QgIAo8YnI+NDAwODU6ICBDdXJzb3Iga2V5IHNjcm9sbGluZyBpbiBjb2RlIGFzc2lzdCB0YWJsZSBkb2Vzbid0IHVwZGF0ZSBzY3JvbGxiYXJzIAo8YnI+NDMzMTE6ICBLZXlSZWxlYXNlZCBldmVudCBpcyBub3QgZmlyZWQgd2hlbiB0aGUgJzQnIGtleSBpcyByZWxlYXNlZCBvbiBzcGFuaXNoIGtleWJvYXJkcyAgCjxicj40MzM5NDogIEltYWdlQW5hbHl6ZXIgZXhhbXBsZSBmYWlsZWQgdG8gcmVhZCBQTkcgZmlsZS4gIAo8YnI+NDM1NzY6ICAiQWx0K1NwYWNlIiB0cmF2ZXJzYWwgY2Fubm90IGJlIGJsb2NrZWQgIAo8YnI+NDM2MTM6ICBJbnRlZ3JhdGUgaXNDb21wbGV0ZSgpIHdvcmsgYW5kIG1lcmdlIHdpdGggcGF0Y2hlcyAgCjxicj40MzY2NzogIE5ldyBTeW5jaCBWaWV3IGxheW91dCAgCjxicj40Mzc1NzogIFRhYmxlIGFuc3dlcnMgaXRzIEhlYWRlciBhcyBhIGNoaWxkICAKPGJyPjQzNzc4OiAgQnJvd3NlciAtIG1vemlsbGEgR1RLIGludG8gTW90aWYgYXBwZWFycyBpbiB0b3AgbGV2ZWwgd2luZG93ICAKPGJyPjQzNzc5OiAgQnJvd3NlciAtIG1vemlsbGEgR1RLIGludG8gTW90aWYgZ2V0cyBoaWRkZW4gYnkgc2hlbGwgcHJveHkgZm9jdXMgIAo8YnI+NDM3ODA6ICBJbXBsZW1lbnQgQnJvd3NlciBvbiBMaW51eCBNb3RpZiAgCjxicj40MzE3NzogIFRleHQuc2V0VGV4dCgpIHRyaWdnZXJzIHR3byBNb2RpZnlFdmVudHMgIAo8YnI+NDM4MDg6ICBTdHlsZWRUZXh0IGRlbGV0ZXMgdG9vIG1hbnkgY2hhcmFjdGVycyBpbiBzb21lIHNpdHVhdGlvbnMgIAo8YnI+NDMwOTQ6ICBQcm92aWRlIGEgaG93LXRvIG9uIHJ1bm5pbmcgU1dUIHNuaXBwZXRzICAKPC9ibG9ja3F1b3RlPiAKCgo8aDI+IFNXVCBCdWlsZCAzLjAgMDIyIC0gVHVlc2RheSBTZXB0ZW1iZXIgMjMsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iQnJlYWtpbmcgQ2hhbmdlcyI+PC9hPkJyZWFraW5nIENoYW5nZXM8L2gzPgoKPHA+VGhlIEV2ZW50LmtleUNvZGUgZmllbGQgbm93IGNvbnRhaW5zIHRoZSB1bmFmZmVjdGVkIGtleWNvZGUgdmFsdWUuICBGb3IgZXhhbXBsZSwKd2hlbiB0aGUgdXNlciB0eXBlcyBDdHJsK1NoaWZ0KydhJywgdGhlIGtleUNvZGUgZmllbGQgY29udGFpbnMgJ2EnLiAgVGhlIGNoYXJhY3RlcgpmaWVsZCBpcyB1bmFmZmVjdGVkIGFuZCBjb250YWlucyB0aGUgc2FtZSB2YWx1ZSBhcyBiZWZvcmUgKDB4MDEpLgo8L3A+Cgo8aDM+PGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+CjxibG9ja3F1b3RlPgpDb21iby5nZXRPcmllbnRhdGlvbigpIGFkZGVkCjxicj5Db21iby5zZXRPcmllbnRhdGlvbihpbnQpIGFkZGVkCjxicj5TdHlsZWRUZXh0LmdldE9yaWVudGF0aW9uKCkgYWRkZWQKPGJyPlN0eWxlZFRleHQuc2V0T3JpZW50YXRpb24oaW50KSBhZGRlZAo8YnI+VGV4dC5nZXRPcmllbnRhdGlvbigpIGFkZGVkCjxicj5UZXh0LnNldE9yaWVudGF0aW9uKGludCkgYWRkZWQKPC9ibG9ja3F1b3RlPgoKPGgzPjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAgCjM4MDk0OiAgW0VudGVyXSBrZXkgZG9lc24ndCB3b3JrIGluIHRleHQgZWRpdG9ycyAgCjxicj4zMDI3MzogIFtLZXkgQmluZGluZ3NdIERCQ1M6ICJGMSIgZnVudGlvbiBrZXkgZG9lcyBOT1Qgd29yayBvbiBMaW51eF9HVEsuICAKPGJyPjE1NTM4OiAgTGFiZWwgcmVxdWlyZXMgYm9yZGVyIHRvIGRyYXcgY29ycmVjdGx5ICAKPGJyPjIxNTU1OiAgVmlldyBtZW51IHJlbWFpbnMgb3BlbiBvbiBHVEsgIAo8YnI+MzMxOTg6ICBbV2l6YXJkc10gRXJyb3IgbWVzc2FnZSBpbiBXaXphcmQgY2xpcHBlZCAgCjxicj4zNzYwODogIFtCaWRpXSBTdHlsZWRUZXh0IC0gc3VwcG9ydCBkeW5hbWljIGNoYW5naW5nIG9mIG9yaWVudGF0aW9uICAKPGJyPjQyNDY3OiAgUGhvdG9uIC0gaW1wbGVtZW50IHRoZSBTV1QgYnJvd3NlciB3aWRnZXQgIAo8YnI+NDMxMjU6ICBCaWRpOiBEQ1Igc2V0T3JpZW50YXRpb24gQVBJIGZvciBUZXh0IGFuZCBDb21ibyB3aWRnZXQgIAo8YnI+NDMyNjI6ICBYbVRleHRQYXN0ZSBuYXRpdmUgZGVjbGFyZXMgamJvb2xlYW4gcmV0dXJuLCBkb2VzIG5vdCBkbyBzbyAgCjwvYmxvY2txdW90ZT4gCgo8aDI+IFNXVCBCdWlsZCAzLjAgMDIxIC0gVHVlc2RheSBTZXB0ZW1iZXIgMTYsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iQnJlYWtpbmcgQ2hhbmdlcyI+PC9hPkJyZWFraW5nIENoYW5nZXM8L2gzPgoKPHA+Q2FudmFzZXMgbm93IHNlZSBDdHJsK1RhYiwgU2hpZnQrVGFiLCBDdHJsK1BnVXAgYW5kIEN0cmwrUGdEbiBieSBkZWZhdWx0IGluc3RlYWQgb2YgdHJhdmVyc2luZy4KVGhpcyBjaGFuZ2Ugd2FzIG1hZGUgZm9yIHRoZSBFY2xpcHNlIGtleSBiaW5kaW5nIHdvcmsuICBUaGUgcnVsZSB0aGF0IENhbnZhc2VzIHNlZSBldmVyeSBrZXkgd2FzCmJyb2tlbiBpbiBwcmV2aW91cyB2ZXJzaW9ucyBvZiBTV1QgZHVlIHRvIGEgbGFzdCBtaW51dGUgYWNjZXNzaWJpbGl0eSB3b3JrIGFyb3VuZCBmb3IgMi4wLgo8L3A+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAKNDI4OTc6ICBCSURJOiBDSEVDSyBzdHlsZSBkb2Vzbid0IHdvcmsgd2l0aCBSVEwgVHJlZSBvciBUYWJsZSAgCjxicj40Mjc4NzogIENoZWNrYm94VGFibGVWaWV3ZXIgZG9lcyBub3QgY2xlYXIgc2VsZWN0aW9uICAgCjxicj40MjIwMjogIEpEVFVJIHRlc3RzIGRvbid0IGZpbmlzaCAgICAKPGJyPjE1MzA3OiAgRENSIC0gQWJpbGl0eSB0byBmb3JiaWQgU1dUIGJ1dHRvbiAoUFVTSCBzdHlsZSkgdG8gYmVjb21lIGRlZmF1bHQgbmVlZGVkICAKPGJyPjMyNzkwOiAgQnJlYWtwb2ludCBob3ZlciBpcyBmbGFreSBvbiBPUyBYICAKPGJyPjM3ODYzOiAgVGV4dCdzIGZvY3VzIGJvcmRlciBoYXMgd3JvbmcgYmFja2dyb3VuZCAKPGJyPjM5OTg3OiAgQklESTogTUlSUk9SRUQgYml0IGNhbid0IGJlIHN3aXRjaGVkIG9uIGluIHRoZSBzdHlsZSdzIGJpdG1hcCBvZiBhbnkgU1dUIHdpZGdldC4gIAo8YnI+NDAwMDY6ICBCSURJOiBydGwtb3JpZW50ZWQgU3R5bGVkVGV4dCBoYXMgb3ZlcmxhcHBpbmcgc2VnbWVudHMgcHJvYmxlbSAgCjxicj40MTAzOTogIEhpdHRpbmcgdGhlIEVudGVyL1JldHVybiBrZXkgaW4gdGhlIEZpbmQvUmVwbGFjZSBkaWFsb2cgZG9lc24ndCBkbyBhbnl0aGluZyBvbiBNYWMgT1MgWCAgCjxicj40MjM0OTogIEJvZ3VzIGltcGxlbWVudGF0aW9uIGZvciBHQy5kcmF3VGV4dCAoU3RyaW5nIHN0cmluZywgaW50IHgsIGludCB5LCBpbnQgZmxhZ3MpIG9uIE1hYyAgCjxicj40MjM1MzogIGRyYXdTdHJpbmcvZHJhd1RleHQgZG8gbm90IHdvcmsgcHJvcGVybHkgb24gR1RLLiAgCjxicj40MjUxMjogIE1lbnVCYXIgb24gRGVjb3JhdGlvbnMgYXJlIG5vdCByZWZyZXNoZWQgIAo8YnI+NDI3MjQ6ICBTdHlsZWRUZXh0IC0gc2VsZWN0aW9uIHJlbmRlcmVkIGluY29ycmVjdGx5IG9uIGJpZGkgcGxhdGZvcm1zICAKPGJyPjQyODE4OiAgRGlyZWN0b3J5RGlhbG9nIGRvZXMgbm90IHNob3cgaXRzIHNldCBtZXNzYWdlICAKPGJyPjQyODgyOiAgcmVtb3ZlIHBsYXRmb3JtIGNvZGUgdGhyb3dpbmcgQ2xhc3NOb3RGb3VuZCBleGNlcHRpb24gIAo8YnI+NDMwMTE6ICAiQWx0KyIga2V5IHN0cm9rZXMgbm90IGFsd2F5cyByZWNlaXZlZCBvbiAiemhfQ04uR0IxODAzMCIgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAyMCAtIFR1ZXNkYXkgU2VwdGVtYmVyIDksIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+IAo0Nzc2OiAgU3R5bGVkVGV4dCAtIEdDLnN0cmluZ0V4dGVudCByZXR1cm5zIGluY29ycmVjdCB2YWx1ZSAoMUdJN0FMQSkgIAo8YnI+MzU1ODk6ICBTdHlsZWRUZXh0IC0gYWRkIGdldFN0eWxlUmFuZ2VzKHN0YXJ0LCBvZmZzZXQpIEFQSSAgCjxicj4zNTgyNjogIEdQcyBvbiBleGl0ICAKPGJyPjM4OTgzOiAgU3R5bGVkVGV4dCAtIGlnbm9yZSBXUkFQIHdoZW4gU0lOR0xFIHN0eWxlIGlzIHNwZWNpZmllZCAgCjxicj40MDAxOTogIEJJREk6IFN0eWxlZFRleHQgaGFzIHByb2JsZW0gd2l0aCBkcmF3aW5nIG9mIHNlbGVjdGlvbiBpbiBib3RoIGx0ciBhbmQgcnRsIG9yaWVudGF0aW9uIG9mIHRoaXMgd2lkZ2V0IGluIHRoZSBiaWRpIGxvY2FsZS4gIAo8YnI+NDA0MDY6ICBDbGlja2luZyBpbiB0cmVlIGRvZXMgbm90IGJyaW5nIHdpbmRvdyB0byB0aGUgZnJvbnQuICAKPGJyPjQwNjkzOiAgVGV4dCAtIE5vIFZlcmlmeS9Nb2RpZnkgd2hlbiBhIG1vZGlmaWVyIGtleSBpcyBkb3duICAKPGJyPjQwODAwOiAgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuVGV4dCwgbWV0aG9kIGFwcGVuZCgpLCBib3R0b20gZm9jdXNpbmcgZXJyb3IgIAo8YnI+NDE3NDg6ICBbS2V5YmluZGluZ3NdIEtleWJvYXJkIFNob3J0Y3V0cyBub3Qgd29ya2luZyAgCjxicj40MTc3MzogIHVuZGVyc2NvcmUgZGlzc2FwZWFycyBpbiBlZGl0b3IgaWYgZm9udCBpcyBib2xkIENvdXJpZXIgTmV3IHNpemUgOSAgCjxicj40MTg5OTogIE9kZCBmb250IG5hbWVzIHJldHVybmVkIGJ5IGdldEZvbnRMaXN0IG9uIE1hYyAgCjxicj40MjI1OTogIFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaW4gRm9udERhdGEuZ2V0TG9jYWxlKCkgIAo8YnI+NDIyNjY6ICBOUEUgd2hlbiBvcGVuaW5nIENvbXBpbGVyIHByZWZlcmVuY2UgcGFnZSAgCjxicj40MjI3NTogIERldmljZS5nZXRGb250TGlzdCgpIGlzIGluY29uc2lzdGVudCBhY3Jvc3MgcGxhdGZvcm1zLiAgCjxicj40MjI5MzogIE1lbnUgaXRlbSB0b28gbGFyZ2UgIAo8YnI+NDIzMjM6ICBFY2xpcHNlIHdvbid0IHN0YXJ0IGFmdGVyIHJlbmFtaW5nIEVjbGlwc2UuYXBwICAKPGJyPjQyNDYwOiAgQnJvd3NlciAtIHJlcG9ydCBsb2NhdGlvbiBiZWZvcmUgaXQgaXMgY2hhbmdlZCAgCjxicj40MjQ2NTogIFN0YWNrT3ZlcmZsb3cgb24gS2V5cyBwcmVmZXJlbmNlIHBhZ2UgIAo8YnI+NDI2OTc6ICBtdWx0aXNlbGVjdCBpbiBwb2NrZXQgcGMgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAxOWMgLSBUdWVzZGF5IFNlcHRlbWJlciAyLCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozOTc4MTogIFNlbGVjdGlvbiBldmVudHMgbm90IGZpcmVkIGZyb20gQ29tYm8gIAo8YnI+NDA1NjA6ICBMYWJlbCB3aXRoIHRleHQgYW5kIGltYWdlIHNldCB0cmllcyB0byBkaXNwbGF5IGJvdGggIAo8YnI+NDEzMzA6ICBJbXBvcnR8ZmlsZXN5c3RlbSBGb3JtIERpcmVjdG9yeSBpbnB1dCBhY3RzIHN0cmFuZ2UgIAo8YnI+NDE2MTk6ICBTV1QgZG9lcyBub3QgcmVuZGVyIFVuaWNvZGUgZ2x5cGhzID4gMjU1ICAKPGJyPjQxNzA3OiAgRXhjZXB0aW9uIGNhdXNlcyBNZW1iZXJzIHZpZXcgdG8gYmVjb21lIGVtcHR5ICAKPGJyPjQxOTY4OiAgU29tZSBtZW51IGl0ZW0gdGV4dHMgYXBwZWFyIGJsYW5rIG9uIFNvbGFyaXMgOSB4ODYgIAo8YnI+NDE5ODA6ICBHUCBzaG93aW5nIFdvcmtiZW5jaCAtIEFwcGVhcmFuY2UgcHJlZmVyZW5jZSBwYWdlICAKPGJyPjQyMDA4OiAgQ29ycnVwdCBUcmVlIHZpZXctbW9kZWwgYWZ0ZXIgZGlzcG9zaW5nIGxhc3QgdHJlZUl0ZW0gIAo8YnI+NDIxNTA6ICBCcm93c2VyIHBsdWdpbiBub3Qgd29ya2luZyBvbiBHVEsgIAo8YnI+NDIxODI6ICBFeHRlcm5hbGl6ZSBzdHJpbmdzIHdpemFyZCBpcyBicm9rZW4gIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAxOSAtIE1vbmRheSBBdWd1c3QgMjUsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iQnJlYWtpbmcgQ2hhbmdlcyI+PC9hPkJyZWFraW5nIENoYW5nZXM8L2gzPgoKPHA+S2V5ZG93biBldmVudHMgbm93IHJ1biBiZWZvcmUgdGhlIHdvcmsgaXMgZG9uZSBpbiB0aGUgT3BlcmF0aW5nIFN5c3RlbS4gIFRoaXMgbWVhbnMsIGZvciBleGFtcGxlLCAKdGhhdCBpZiB5b3UgaG9vayBhIGtleSBkb3duIGV2ZW50IGluIGEgdGV4dCB3aWRnZXQgYW5kIGluc2lkZSB0aGUga2V5IGRvd24gZXZlbnQsIGdldCB0aGUgY29udGVudCBvZiAKdGhlIHRleHQgd2lkZ2V0IChUZXh0LmdldFRleHQoKSksIHRoZSBjb250ZW50IHdpbGwgbm90IGNvbnRhaW4gdGhlIGtleSB0aGF0IHdhcyBqdXN0IHR5cGVkLiAgClRvIGdldCB0aGUgY29udGVudCB3aXRoIHRoZSBsYXRlc3QgY2hhcmFjdGVyIHlvdSBjYW4gdXNlIERpc3BsYXkuYXN5bmNFeGVjIC0gdGhpcyB3aWxsIHJ1biBhZnRlciAKdGhlIE9wZXJhdGluZyBTeXN0ZW0gaGFzIHByb2Nlc3NlZCB0aGUga2V5IGRvd24uICBOb3RlOiBpbiB0aGlzIGNhc2UgeW91IHByb2JhYmx5IHNob3VsZCAKaGF2ZSBiZWVuIHVzaW5nIHRoZSBTV1QuTW9kaWZ5IG9yIFNXVC5WZXJpZnkgZXZlbnQuPC9wPgoKPHA+VGhpcyBjaGFuZ2Ugd2FzIG1hZGUgdG8gc3VwcG9ydCBrZXkgYmluZGluZ3MgaW4gRWNsaXBzZSBzbyB0aGF0IHRoZXkgY291bGQgaW50ZXJjZXB0CmtleSBldmVudHMgYmVmb3JlIGFueSB3aWRnZXQgaGFkIGEgY2hhbmNlIHRvIHByb2Nlc3MgdGhlIGNoYXJhY3Rlci48L3A+Cgo8aDM+CjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8YmxvY2txdW90ZT4KUmVnaW9uKERldmljZSkgYWRkZWQKPGJyPlJlZ2lvbi5pbnRlcnNlY3QoUmVjdGFuZ2xlKSBhZGRlZAo8YnI+UmVnaW9uLmludGVyc2VjdChSZWdpb24pIGFkZGVkCjxicj5SZWdpb24uc3VidHJhY3QoUmVjdGFuZ2xlKSBhZGRlZAo8YnI+UmVnaW9uLnN1YnRyYWN0KFJlZ2lvbikgYWRkZWQKPGJyPlJlY3RhbmdsZS5pbnRlcnNlY3QoUmVjdGFuZ2xlKSBhZGRlZAo8YnI+UmVjdGFuZ2xlLmludGVyc2VjdHMoaW50LCBpbnQsIGludCwgaW50KSBhZGRlZAo8YnI+VGFibGVJdGVtLnNldEJhY2tncm91bmQoaW50LCBDb2xvcikgYWRkZWQKPGJyPlRhYmxlSXRlbS5zZXRGb3JlZ3JvdW5kKGludCwgQ29sb3IpIGFkZGVkCjxicj5UYWJsZUl0ZW0uZ2V0QmFja2dyb3VuZChpbnQpIGFkZGVkCjxicj5UYWJsZUl0ZW0uZ2V0Rm9yZWdyb3VuZChpbnQpIGFkZGVkCjwvYmxvY2txdW90ZT4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjIwNTM2OiBTV1QgZXJyb3IgZHVyaW5nIFRyYWNrZXIgaW5zdGFudGlhdGlvbiBpbiBHVEsgIAo8YnI+NDA1Mjk6IFNXVCBleGFtcGxlczogc2V0dXAgZG9jIGJ1ZyAgICAKPGJyPjQxODQwOiBXaW5kb3dzIG9ubHkgLSBCcm93c2VyIHdpZGdldCB3aXRoIE1vemlsbGEgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAxOCAtIFdlZG5lc2RheSBBdWd1c3QgMjAsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+Cgo8cD5Ccm93c2VyIGNsYXNzIGFkZGVkIGZvciBXaW5kb3dzIGFuZCBMaW51eCBHVEs8L3A+CjxwPjM2OTUyOglbUGxhbiBJdGVtXSBEaXNwbGF5IEhUTUwgaW4gYSB3aWRnZXQ8L3A+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAgICAKNDEyMDE6ICBHVEstQklESTogUlRMIHN1cHBvcnQgaW4gTGFiZWwKPGJyPjQxMzYyOiAgR1RLLUJJREk6IFJUTCBzdXBwb3J0IGluIEdyb3VwCjwvYmxvY2txdW90ZT4gICAgCgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAxN2EgLSBUdWVzZGF5IEF1Z3VzdCAxOSwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4gICAgCjIyMzIyOiBBV1QgQ29udGFpbmVyIGlzIGEgU1dUIGNvbnRhaW5lciBkb2VzIG5vdCBnZXQgaXRzIGJhY2tncm91bmQgcGFpbnRlZCBpbiBKREsgMS40LjAgIAo8YnI+Mzk3NTI6IFNXVF9BV1Qgc3VwcG9ydCBmb3IgSmF2YSAxLjQgIAo8YnI+NDA4Mjg6IFZlcnRpY2FsIHRvb2xiYXIgc3RyYW5nZSBiZWhhdmlvciAgICAgICAKPGJyPjQxNDE4OiBGb3JtTGF5b3V0IGNhdXNpbmcgaW5maW5hdGUgbG9vcC4gIAo8YnI+NDE0MjQ6IEphdmFkb2MgaXMgYm9ndXMgZm9yIEdDLmRyYXdBcmMgIAo8YnI+NDE0NTU6IFRhYmxlQ29sdW1uI3NldFdpZHRoKGludCB3aWR0aCkgYWxsb3cgd2lkdGg9MCBidXQgR1RLIGRvZXNuJ3QgbGlrZSBpdCAgCjxicj40MTYyMDogZWNsaXBzZS5leGUgb24gTWFjIHRydW5jYXRlcyBlcnJvciBtZXNzYWdlcyBsb25nZXIgdGhhbiAyNTUgY2hhcnMgIAo8YnI+NDE2Mjc6IEVkaXRhYmxlIENvbWJvIGluY29ycmVjdCB3aWR0aCAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAzLjAgMDE3IC0gVHVlc2RheSBBdWd1c3QgMTIsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+ICAgIAo0NjA4OiBDYW52YXMuc2V0UmVkcmF3KHRydWUpIG1ha2VzIHdpZGdldCB2aXNpYmxlICgxRzk3NVZHKSAgCjxicj42MjIwOiBXb3JrYmVuY2ggaXMgYXV0b21hdGljYWxseSBicm91Z2h0IHRvIGZyb250IGluIGZvY3VzIGZvbGxvd3MgbW91c2UgbW9kZSAgCjxicj4zODYwNTogQ1RhYkl0ZW0gY2Fubm90IGJlIGNyZWF0ZWQgaW4gTGludXgtR1RLICAKPGJyPjM5MTczOiBUaHJlYWQgcHJvY2Vzc2luZyBpcyBleHRyZW1lbHkgc2xvdyBvbiBHVEsuIChCQkFXVCkgIAo8YnI+NDAxMDI6IFtWaWV3ZXJzXSBJVHJlZVZpZXdlckxpc3RlbmVyLnRyZWVFeHBhbmRlZCgpIGlzIGNhbGxlZCB0d2ljZSAgCjxicj40MDE1NjogQ1RhYkZvbGRlcidzIGNsaWVudCBhcmVhIGlzIG9mZiBieSBhIGZldyBwaXhlbHMgd2hlbiB0aGVyZSBhcmUgbm8gdGFicyAgCjxicj40MDYyNDogSlZNIGNyYXNoIGNhdXNlZCBieSBvcmcuZWNsaXBzZS5zd3QuaW50ZXJuYWwubW90aWYuT1MuWG1JbVNldFZhbHVlcyhOYXRpdmUgTWV0aG9kKSAgCjxicj40MDg4NDogRWNsaXBzZSBjcmFzaGVzIHdpdGggU3VuIGpkayAxLjQuMiAgCjxicj40MDg5OTogRWNsaXBzZSAyLjEuMSBkb2VzIG5vdCBjb21lIHVwIG9uIEhQIHdoZW4gcmVtb3RlbHkgYXR0YWNoaW5nIGZyb20gYSBsaW51eCBib3ggIAo8YnI+NDEwNjc6IE9MRSByZWYgY291bnQgcHJvYmxlbSB3aGVuIG9wZW5pbmcgZmlsZSBmb3IgcmVhZCAgCjxicj40MTExMTogW3BvcnRhYmlsaXR5XSBEaXJlY3RFZGl0IGVkaXRvciBtaXNwbGFjZWQgYWZ0ZXIgdXNpbmcgc2Nyb2xsIHdoZWVsICAKPGJyPjQxMTg4OiBHVEstQklESTogUlRMIHN1cHBvcnQgaW4gQnV0dG9uICAKPGJyPjQxMjAwOiBHVEstIGNvbnRlbnRzIG9mIGNoZWNrIGFuZCByYWRpbyBidXR0b25zIGNhbid0IGJlIGFsaWduZWQgdG8gY2VudGVyIGFuZCB0byB0aGUgdHJhaWxpbmcgZWRnZSBvZiB3aWRnZXQuICAKPGJyPjQxMjMzOiBDb250cm9sIGFkZGVkIGFmdGVyIG9wZW4oKSBkb2Vzbid0IGdldCBwYWludGVkIHVubGVzcyB0aGUgd2luZG93IGlzIHJlc2l6ZWQuICAKPGJyPjQxMzI0OiBQcmVmZXJlbmNlcy0+V29ya2JlbmNoLT5BcHBlYXJhbmNlIGNyYXNoZXMgSlZNIFtNb3RpZl0gIAo8YnI+NDEzNDc6IENDb21ibyBzaG91bGRuJ3QgZmlyZSBkZWZhdWx0U2VsZWN0aW9uIG9uIG1vdXNlIGxpc3Qgc2VsZWN0aW9uICAKPGJyPjQxMzY2OiBXaWRnZXQgaXMgZGlzcG9zZWQgZXhjZXB0aW9uIHdoaWxlIGxheW91dCAgCjxicj40MTM3NTogRm9ybUxheW91dC5sYXlvdXQgdGFrZXMgdG9vIGxvbmcgZm9yIG1vcmUgY29udHJvbHMgIAo8L2Jsb2NrcXVvdGU+ICAgCgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAxNSAtIFR1ZXNkYXkgSnVseSAyOSwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4gICAgCjM2OTI3OiBVSSBkb2VzIG5vdCBnZXQgZm9jdXMgb24gbXVsdGlzY3JlZW4gU3VzZSA4LjIgIAo8YnI+MzcwOTU6IEJJREkgLSBXaGVuIHN0YXJ0aW5nIEVjbGlwc2UgZnJvbSBBcmFiaWMgbG9jYWxlIGl0IGlzIGFsd2F5cyBSVEwgb3JpZW50ZWQgIAo8YnI+MzgzNDk6IHdpemFyZCBkZXNjcmlwdGlvbiBzaG93aW5nIGJvcmRlciBhbmQgY2FyZXQgIAo8L2Jsb2NrcXVvdGU+ICAgCgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAxNSAtIFR1ZXNkYXkgSnVseSAyOSwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJCcmVha2luZyBDaGFuZ2VzIj48L2E+QnJlYWtpbmcgQ2hhbmdlczwvaDM+CjxwPgo8Yj5Nb3RpZiBhbmQgUGhvdG9uOiBDaGFuZ2Ugb2YgZXZlbnQgb3JkZXJpbmcgaW4gVGFibGUgYW5kIFRyZWU8L2I+CjxwPgpUaGUgb3JkZXJpbmcgb2Ygc2VsZWN0aW9uIGV2ZW50cyBoYXMgY2hhbmdlZCBvbiB0aGVzZSBwbGF0Zm9ybXMgdG8gYmVjb21lIGNvbnNpc3RlbnQgd2l0aCB0aGF0IG9mIHdpbjMyOgo8dWw+CjxsaT5UaGUgcHJldmlvdXMgb3JkZXJpbmcgb2YgU2VsZWN0aW9uLU1vdXNlRG93bi1Nb3VzZVVwIGhhcyBiZWVuIGNoYW5nZWQgdG8gTW91c2VEb3duLVNlbGVjdGlvbi1Nb3VzZVVwIGZvciBtb3VzZSAoZGUpc2VsZWN0aW9uczwvbGk+CjxsaT5UaGUgcHJldmlvdXMgb3JkZXJpbmcgb2YgU2VsZWN0aW9uLUtleURvd24tS2V5VXAgaGFzIGJlZW4gY2hhbmdlZCB0byBLZXlEb3duLVNlbGVjdGlvbi1LZXlVcCBmb3Iga2V5Ym9hcmQgKGRlKXNlbGVjdGlvbnM8L2xpPgo8L3VsPgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAgICAKMzMzNzA6ICBldmVudCBmaXJpbmcgZGlmZmVyZW5jZXMgKHdpbjMyL21vdGlmKSAgIAo8YnI+Mzc1Nzg6ICBUYWJsZUNvbHVtbiBkb2VzIG5vdCBub3RpZnkgb2YgUmVzaXplIGV2ZW50ICAKPGJyPjM4NzEyOiAgJ0d0ayBDUklUSUNBTCcgZXJyb3IgYmVpbmcgcm9wb3J0ZWQgYnkgU1dUIGluIExpbnV4LUdUSy4gKEJCQVdUKSAgCjxicj4zOTQwMTogIFN3aW5nIGludGVyb3BlcmFiaWxpdHkgLSBzb2x1dGlvbiBwcm9wb3NhbCAgCjxicj4zOTczMDogIGNvZGUgYXNzaXN0IHBvcHVwIGRvZXMgbm90IHRha2UgZm9jdXMgIAo8YnI+NDA2NTI6ICBHVEsgTGludXggLSBNZW1vcnkgTGVhayAgCjwvYmxvY2txdW90ZT4gICAKCgo8aDI+IFNXVCBCdWlsZCAzLjAgMDE0ZiAtIFR1ZXNkYXkgSnVseSAyMiwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJCcmVha2luZyBDaGFuZ2VzIj48L2E+QnJlYWtpbmcgQ2hhbmdlczwvaDM+CjxwPgo8Yj5DbGlwYm9hcmQgQVBJIG11c3QgYmUgY2FsbGVkIGZyb20gVUkgVGhyZWFkPC9iPgo8cD4KT24gR1RLLCBDbGlwYm9hcmQgaW50ZXJhY3Rpb25zIHJ1biBhbiBldmVudCBsb29wIHdoaWNoIG11c3QgCmJlIGV4ZWN1dGVkIGluIHRoZSBVSSBUaHJlYWQuICBBcyBhIHJlc3VsdCwgb24gYWxsIHBsYXRmb3JtcywKaW52b2tpbmcgdGhlIENsaXBib2FyZCBBUEkgZnJvbSBhIG5vbiBVSSB0aHJlYWQgd2lsbCByZXN1bHQgCmluIGFuIFNXVCBFeGNlcHRpb24gb2YgRVJST1JfVEhSRUFEX0lOVkFMSURfQUNDRVNTLgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4gICAKMzMzNTU6IEJ1dHRvbiB3aXRoIEFSUk9XIHN0eWxlIGFuc3dlcnMgZ2V0VGV4dCgpIGRpZmZlcmVudGx5ICAKPGJyPjM1NzYxOiBDb250cm9sRXhhbXBsZSAtIExhYmVsIC0gSW1hZ2UgbGFiZWxzIGlzc3VlIHdpdGggU1dULldSQVAgIAo8YnI+MzU4NjE6IGNyYXNoIGluIGd0a19lZGl0YWJsZV9kZWxldGVfc2VsZWN0aW9uIG9uIEdUSyAyLjIuMS9SZWRoYXQgNy4xICAKPGJyPjM2NjExOiBUcmFja2VyIHJlc2l6ZSBldmVudHMgYXJlIG5vdCBzZW50IGNvcnJlY3RseSAgCjxicj4zODIyNDogVHJhY2tlciBpbXBsZW1lbnRhdGlvbiBvbiBHVEsgaW5jb21wbGV0ZSAgCjxicj4zODc3NzogT3V0IG9mIGJvdW5kIGV4Y2VwdGlvbiBpbiBDb2xvckRpYWxvZyAgCjxicj4zODg1NTogVGFibGUuZ2V0SW1hZ2VCb3VuZHMgcmV0dXJucyBpbmNvcnJlY3QgdmFsdWUgIAo8YnI+MzkwMTE6IE11bHRpbW9uaXRvciAtIGFkZCBhcGkgdG8gZ2V0IG1vbml0b3Igd2hpY2ggJ293bnMnIGEgd2lkZ2V0ICAKPGJyPjM5ODQwOiBObyBjb250ZXh0IG1lbnUgb24gdGhlIGZhc3QgdmlldyBpY29ucyBhbmQgcGVyc3BlY3RpdmUgaWNvbnMgIAo8YnI+Mzk5NjU6IGd0ayBoYXMgdHJvdWJsZSBwcm9jZXNzaW5nIGV2ZW50cyB1bnRpbCB3aW5kb3cgcG9wICAKPGJyPjM5OTg3OiBCSURJOiBNSVJST1JFRCBiaXQgY2FuJ3QgYmUgc3dpdGNoZWQgb24gaW4gdGhlIHN0eWxlJ3MgYml0bWFwIG9mIGFueSBTV1Qgd2lkZ2V0LiAgCjxicj40MDEzMDogU3R5bGVkVGV4dCAtIGFkZCBhY2Nlc3NpYmlsaXR5IHN1cHBvcnQgdG8gU3R5bGVkVGV4dCAgCjxicj40MDE1NTogRm9udC5kaXNwb3NlKCkgdGhyb3dzIE5QRSAgCjxicj40MDE1ODogUmlnaHQgY2xpY2sgb24gYSB0cmVlIGRvZXNuJ3Qgc2VsZWN0IHRoZSBlbGVtZW50ICAKPGJyPjQwMTU5OiBDb21ibyB0aHJvd3MgZXhjZXB0aW9uIGluIGp1bml0IHRlc3QgIAo8YnI+NDAyMTY6IFJpZ2h0IENUUkwrU0hJRlQgcmlnaHQganVzdGlmaWVzIHRleHQgYW5kIHJldmVyc2VzIHNjcm9sbCBiYXJzICAKPGJyPjQwMjQyOiBUZXh0IGJlaW5nIHJldmVyc2VkIHdoaWxlIGhpdHRpbmcgQ3RybCtTaGlmdCAgCjwvYmxvY2txdW90ZT4gICAKCgo8aDI+IFNXVCBCdWlsZCAzLjAgMDE0IC0gVHVlc2RheSBKdWx5IDE0LCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAgIAozMDAyMTogRm9udCBhbmQgQ29sb3IgZGlhbG9ncyBoYW5nIG9uIEpWTSAxLjQuMSAgCjxicj4zNzAzMDogTm8gZm9jdXMgbGlzdGVuZXIgY29udHJvbCBpbiBTV1QgY29tYm8gb24gTGludXggcGxhdGZvcm0gIAo8YnI+Mzc0Mjg6IEV4dHJhIHBvcCB1cCBtZW51IG9uIHRleHQgd2lkZ2V0IHdpdGggc2V0TWVudSAgCjxicj4zOTAzMjogU3R5bGVkVGV4dCAtIGV4Y2VwdGlvbiBpbiBhdXRvc2Nyb2xsIGluIGJpZGkgIAo8YnI+MzkxNjY6IGNyYXNoICAKPGJyPjM5MjM2OiBDb21wbGV0ZWx5IGRpZmZlcmVudCBiZWhhdmlvdXIgZm9yIGNyZWF0aW5nIGEgc2hlbGwgd2l0aCBhIHBhcmVudCB2ZXJzdXMgY2FsbGluZyBzZXRQYXJlbnQKPGJyPjQwMDMwOiBTdHlsZWRUZXh0IC0gYXV0byBzY3JvbGwgbmV4dCBpbiBTSU5HTEUgbW9kZSBkb2VzIG5vdCBzdG9wICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMTMgLSBUaHVyc2RheSBKdWx5IDEwLCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAgIAozNzQ5MDogQklESTogdGV4dCBpbiB0aGUgcnRsLW9yaWVudGVkIFRleHQgY29udHJvbCBjYW4ndCBiZSBhbGlnbmVkIHRvIHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoaXMgY29udHJvbC4gIAo8YnI+MzkwMTM6IHNjcm9sbGluZyBkb3duIGluIGVkaXRvciBjb3JydXB0cyBjb250ZW50cyAgCjxicj4zOTM4MDogVGFiRm9sZGVyIG5vdCB3b3JraW5nIGluIFFOWCA2LjIuMSAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAzLjAgMDEyIC0gVHVlc2RheSBKdWx5IDgsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+ICAgCjM5NDQzOiBHVEsgRXJyb3IgY2FsbGluZyBUcmVlSXRlbS5nZXRFeHBhbmRlZCgpIG9uIGEgdHJlZSBpdGVtIGJlaW5nIGRpc3Bvc2VkLiAgCjxicj4zOTA4NDogQ29tYm8uYWRkIGZpcmluZyB1bm5lY2Vzc2FyeSBldmVudHMgKEJCQVdUKSAgCjxicj4yMTIxMjogR1RLOlNlbGVjdGluZyBhIENoZWNrYm94IGZyb20gd2l0aGluIHRoZSBzZWxlY3Rpb24gY2FsbGJhY2sgY2F1c2VzIGluZmluaXRlIGxvb3AoQkJBV1QpICAKPGJyPjE5NjE0OiBOT19SQURJT19HUk9VUCBkb2VzIG5vdCB3b3JrIG9uIEdUSyAgCjxicj4zOTExOTogVGV4dC5Db21wdXRlU2l6ZSgwKSByZXR1cm5pbmcgMCBvbiBHVEsgKEJCQVdUKSAgCjxicj4zNDM4NjogVHJhdmVyc2luZyBvdXQgb2YgVGFibGUgaGVhZGVyIGNhbiBsZWFkIHRvIHdhcm5pbmcgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAxMSAtIFR1ZXNkYXkgSnVseSAxLCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPiAgIAozODk3NTogUHJvcGVydHlTaGVldFZpZXdlciBnZXRzIElsbGVnYWxBcmd1ZW1lbnRFeGNlcHRpb24gaWYgUm9vdEVsZW1lbnQgc2V0IGJlZm9yZSB2aXNpYmxlICAKPGJyPjM5MzE5OiBFY2xpcHNlIG9mdGVuIGhhbmdzLiBSaWdodCBjbGlja2luZyBoZWxwcyBzb21ldGltZXMgIAo8YnI+MzkxMDU6IEVjbGlwc2UgQ3Jhc2ggaW5zZXJ0aW5nIGEgTmV3IFByb2plY3Qgb24gQ1ZTICAKPGJyPjE5MTUzOiBDb21ibyBmaXJlcyB0b28gbWFueSBTZWxlY3Rpb25FdmVudHMgaW4gR1RLMiAgICAKPGJyPjEyMjIwOiBTV1QgTW91c2UgRW50ZXIgY29tZXMgYmVmb3JlIE1vdXNlIEV4aXQgW3BvcnRhYmlsaXR5XSAgCjxicj4zODYwNjogTGlzdCBjb25zdHJ1Y3RvciB3aXRoIFNXVC5TSU1QTEUgfCBTV1QuTVVMVEkgc3R5bGUgcGFyYW1ldGVycyBiZWhhdmVzIGluY29ycmVjdGx5IChCQkFXVCkgIAo8YnI+MzkxNDA6IFNXVC5WRVJUSUNBTCBpZ25vcmVkIGluIFRvb2xCYXIgICAKPGJyPjIwMDgzOiBDQ29tYm8gbWV0aG9kIHJlZHJhdygpIGRvZXMgbm90IHdvcmsgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMy4wIDAxMCAtIFR1ZXNkYXkgSnVuZSAyNCwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTc2NTY6IEluY29uc2lzdGVudCBjb21ibyBib3ggZGlzcGxheSBiZWhhdmlvdXIgIAo8YnI+MzA4NzE6IFtDZWxsIEVkaXRvcnNdIFN1cHBvcnQgZm9yIG11bHRpbGluZSB0ZXh0IGNlbGwgZWRpdG9yICAKPGJyPjMzOTY2OiBDQ29tYm8gaXMgcGFkZGluZyBpdCdzIGRyb3AtZG93biBpdGVtcyBsaXN0IHdpdGggYmxhbmsgZW50cmllcyAgCjxicj4zNDM2NTogRGlzcGxheSBwcm9ibGVtIGluIHRoZSBlZGl0b3IgIAo8YnI+MzU4NTI6IENyYXNoIG9uIGZpcnN0IHN0YXJ0dXAgaW4gTWFuZHJha2UgOS4xICAgIAo8YnI+Mzg1OTY6IENvbnRyb2xFeGFtcGxlIC0gJ3JldHVybicgaW5zaWRlIHRleHQgd2lkZ2V0IGdvZXMgdG8gYnV0dG9uIHdpZGdldCAgCjxicj4zODYyNjogRGlyZWN0b3J5RGlhbG9nIGdldEZpbHRlclBhdGgoKSBhbHdheXMgcmV0dXJucyBudWxsICAKPGJyPjM4NjI3OiBbQ29udHJpYnV0aW9uc10gQ2FzY2FkaW5nIG1lbnUgZG9lcyBub3Qgc2hvdyBhbiBhcnJvdyAgCjxicj4zODkxNDogQ2xpY2tpbmcgaW4gdGhlIHdyb25nIHNlcXVlbmNlIGNyYXNoZXMgSmF2YSBWTSAgCjxicj4zODk4NzogUG9ja2V0UEM6IE1VTFRJIFRleHQgY29udHJvbCBFU19XQU5UUkVUVVJOL19UQUJfTkVYVCBwcm9ibGVtICAKPGJyPjM5MDQ5OiBGb3JtTGF5b3V0IHBlcmZvcm1hbmNlICAKPGJyPjM5MDc4OiBGb3JtRGF0YSB0aHJvd3MgIldpZGdldCBpcyBkaXNwb3NlZCIgd2hlbiBpdCdzIHdpZGdldCBpcyBkaXNwb3NlKClkICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMDkgLSBUdWVzZGF5IEp1bmUgMTcsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjM4MzUzOiAgY3Jhc2ggaW4gT1MuZ3RrX21haW5faXRlcmF0aW9uKCkgd2hlbiBkb3VibGUtY2xpY2sgZGlzYWJsZWQgdGV4dCB3aWRnZXQgIAo8YnI+Mzg5MTI6ICBEQkNTOiBpbnB1dCBzcGVjaWFsIHN5bWJvbCBicmVha3MgaW5wdXQgbWV0aG9kIG9uIGphX0pQICAgCjxicj4zODM0NDogIFN0eWxlZFRleHQgLSBleGNlcHRpb24gd2hlbiBzZWxlY3RpbmcgbGluZXMgaW4gV1JBUCBtb2RlICAKPGJyPjMxMTk1OiAgU3R5bGVkVGV4dCAtIFNXVC5XUkFQIGRpc3BsYXkgU3R5bGVkVGV4dCBpbmNvcnJlY3RseSAgCjxicj4zODM3NjogIFNXVCAzMDA3IG9uIExpbnV4IEdUSyBpcyBub3QgaGFuZGxpbmcgdGhyZWFkcyBwcm9wZXJseSAoQkJBV1QpICAKPGJyPjM1MTgzOiAgREJDUzogU2V0IHRleHQgZ2VuZXJhdGVzIEluZGV4IG9mIEJvdW5kcyBleGNlcHRpb24gdXNpbmcgMi4wIE5MUyBsYW5ndWFnZSBwYWNrICAKPGJyPjM4ODQxOiAgTlBFIGluIFdpZGdldC5maWx0ZXJzICAKPGJyPjM3NzgyOiAgU2hlbGwgc2V0TWluaW1pemVkKHRydWUpIGRvZXNuJ3QgZGVhY3RpdmF0ZSBTaGVsbCAgCjxicj4zODM4MjogIERORCBpbiBQYWNrYWdlcyBWaWV3IHJlc3VsdHMgaW4gaW5jb3JyZWN0IHRhcmdldCBlbGVtZW50ICAKPGJyPjc5NDY6ICBMaXN0IHBvcnRpb24gb2YgQ0NvbWJvIGdvZXMgb2ZmIHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbiAgCjwvYmxvY2txdW90ZT4gIAoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMDggLSBUdWVzZGF5IEp1bmUgMTAsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+ICAKMzgzODU6ICBKYXBhbmVzZSBJbnB1dCAoSU1FKSBub3QgZG9lc24ndCBjb21lIHVwICAKPGJyPjM4Mzg4OiAgZWNsaXBzZSBjcmFzaCBvbiByZWRoYXQgOS8gamFfSlAgICAKPGJyPjM4MjEzOiAgW1dpemFyZHNdIERpYWxvZ3MgcmVxdWlyZSBhIHJlc2l6ZSB0byBkcmF3ICAKPGJyPjM2NTQxOiAgUHJpbnRpbmcgb2YgamF2YSBwcm9ncmFtIGNhdXNlcyBmYWlsdXJlICAKPGJyPjM4MzMxOiAgSW5jb25zaXN0ZW50IGhhbmRsaW5nIG9mIEltYWdlIG9uIGRpZmZlcmVudCBwbGF0Zm9ybXMgIAo8YnI+Mzg0MzM6ICBFZGl0b3IgdGl0bGViYXJzIGFyZSBub3QgcGFpbnRlZCAgCjxicj4yMTU2NzogIEdUSzI6IFRleHQgd2lkZ2V0IHBhY2tpbmcgZXJyb3Igd2l0aCBTV1QuTVVMVEkgICAKPGJyPjI5NTM0OiAgT3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvciBvZiAnRjEwJyBrZXkgIAo8YnI+MzU0OTM6ICBPbGVDbGllbnRTaXRlIGhhbmcgIAo8L2Jsb2NrcXVvdGU+ICAKCgo8aDI+IFNXVCBCdWlsZCAzLjAgMDA3IC0gVHVlc2RheSBKdW5lIDMsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+ICAKMzA4MTA6ICBVbWxhdXRzICAKPGJyPjM4MjQyOiAgQm9yZGVyIHdpZHRoIG9uIFRhYmxlIGluY29ycmVjdCAtIGNyZWF0ZXMgdW53YW50ZWQgc2Nyb2xsYmFycyAgCjxicj4zNjYzNjogIFN0eWxlZFRleHQgLSBQcmludGluZyBjb3VsZCBlbmQgcGFnZXMgdHdpY2UgIAo8YnI+MzgyNDY6ICBzd3RleGFtcGVzc3JjLnppcCBpcyBtaXNzaW5nIGZyb20gZGlzdHJpYnV0aW9uLiAgCjxicj4zODMzNzogIEdDLmRyYXdSb3VuZGVkUmVjdGFuZ2xlKC4uLikgbWV0aG9kIGRvZXNuJ3QgaW5jbHVkZSB0aGUgcmlnaHQgYW5kIGJvdHRvbSBlZGdlICAKPGJyPjM4MzMxOiAgSW5jb25zaXN0ZW50IGhhbmRsaW5nIG9mIEltYWdlIG9uIGRpZmZlcmVudCBwbGF0Zm9ybXMgIAo8YnI+MzY2MTA6ICBUcmFja2VyIGJlaGF2aW91ciB3cm9uZyB3aGVuIHJlc2l6aW5nICAKPGJyPjIxMTkxOiAgRGVjb3JhdGlvbnMuc2V0SW1hZ2UoKSBjb3VsZCBkbyBhIGJldHRlciBqb2Igd2l0aCBtYXNrZWQgaW1hZ2VzICAKPGJyPjM4MjIxOiAgSW5kZXggb3V0IG9mIGJvdW5kcyBmcm9tIENvbWJvLnNlbGVjdCgpICAKPGJyPjMzMzU5OiAgW0pVTklUXSBTY3JvbGxiYXIgdGVzdHMgZmFpbCAgCjxicj4zMzE2MjogIFtKVU5JVF1TbGlkZXIgc2V0TWluaW11bSBzZXRtYXhpbXVtIGFuZCBzZXRUaHVtYiBmYWlsICAKPGJyPjM4MDc2OiAgQ29tYm8gZG9lc24ndCBjYWxjdWxhdGUgaXRzIHNpemUgcHJvcGVybHkgd2hlbiBvbmx5IHRleHQgaXMgc2V0LiAgCjxicj4yMjIyMjogIEVjbGlwc2Ugbm90IHByb3Blcmx5IHJlZHJhd2luZyBNREkgc2hlbGwgdGl0bGViYXIgdGV4dCAgCjxicj4zMTgzOTogIEZsYXNoaW5nIHJlc2l6ZSBvbiBHVEsgIAo8YnI+MzgwNzc6ICBKdW5rIGxlZnQgb24gdGhlIHNjcmVlbiBhZnRlciBjbG9zaW5nIGEgZHJhd2VyIGluIExvZ2ljIEV4YW1wbGUgIAo8YnI+MzU3Mzg6ICBwcm9ibGVtIHdpdGggc3d0IGNvbXBvbmVudCBiaW5kaW5ncyBhbmQgWEZyZWU4Ni00LjMuMCAgCjxicj4zNTMxNTogIFJlc2V0IGltYWdlSGVpZ2h0IG9uIFRhYmxlcyB3aGlsZSByZWZyZXNoaW5nIGl0ZW1zICAKPGJyPjE3MjAyOiAgaW5jb25zaXN0ZW50IGhlbHAgaG92ZXIgcGxhY2VtZW50ICAKPGJyPjIzNzg3OiAgW1Byb3BlcnRpZXMgZGlhbG9nXSBQcm9qZWN0IFByb3BlcnRpZXMgLT4gSW5mbyBwYWdlIHNob3VsZCBub3QgdXNlIHRleHQgZmllbGRzICAKPGJyPjQ1NTM6ICBNb3RpZiBvbiBLREUyOiBUaGluZ3MgZG9uJ3QgcmVkcmF3ICgxR0E0SDdaKSAgCjxicj40NDU1OiAgRENSIC0gVHJlZSAtIG5lZWQgaXRlbSBwb3NpdGlvbmluZyAoMUZHUFZBRikgIAo8YnI+NDUwMDogIFRleHQgd2lkZ2V0IGhhcyAzRCBlZmZlY3QgYWx0aG91Z2ggU1dULkJPUkRFUiBpc24ndCBzcGVjaWZpZWQgKDFGUlNRWEgpICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMDYgLSBUdWVzZGF5IE1heSAyNywgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjQ4Nzc6IENhbm5vdCBnZXQgZmlsZSBleHRlbnNpb24gZnJvbSBzd3QgRmlsZURpYWxvZyAgCjxicj4zNzg3NDogIkp1bXBpbmciIGxheW91dCAgCjxicj4zNDYzNDogIlNlbGVjdCBhIHR5cGUiIGhpZXJhcmNoeSB2aWV3IG1lc3NhZ2UgY3V0IG9mZiAgCjxicj4zNzk0MTogQ29vbGJhciBzZXRNaW5pbXVtU2l6ZSBpbnRyb2R1Y2VzIGNoZXZyb25zIG9uIExpbnV4ICAKPGJyPjM4MDE1OiBFY2xpcHNlIGNyYXNoZXMgd2hlbiB1c2luZyBpbmxpbmUgb3V0bGluZSAoQ3RybCtPKSAgCjxicj4zNzYyMzogZmlsbFJvdW5kUmVjdGFuZ2xlIGRvZXNuJ3QgY29tcGxldGVseSBmaWxsICAKPGJyPjI4NTM1OiByZWN0YW5nbGVzIHdpdGggcGVuc2l6ZSA+IDEgZHJhdyBhdCB3cm9uZyBwb3NpdGlvbiAgCjxicj4zODA1NTogU2hlbGwgVGl0bGUgYmFyIGRpc3BsYXllZCB3aGVuIG9ubHkgU1dULlJFWklTRS4gIAo8YnI+Mzc4NTg6IFNvbWUgU1dUIExhYmVscyBkcmF3IHRleHQgaW4gd2hpdGUgIAo8YnI+MjQ3MDA6IFRleHQ6IENvbXB1dGUgU2l6ZSBlcnJvciAgCjxicj4zNzk1MDogVW5hYmxlIHRvIGxhdW5jaCBFY2xpcHNlIG9uIFN1biBTb2xhcmlzIDIuOCAgCjxicj4zMzE2NDogW0pVTklUXSBTY2FsZSBzZXRNaW5pbXVtIGFuZCBzZXRNYXhpbXVtIGZhaWwgIAo8YnI+MzMxNjY6IFtKVU5JVF1Db21ibyBzZXRMb2NhdGlvbiBmYWlscyAgCjxicj4zMzE1ODogW0pVTklUXVByb2dyZXNzQmFyIHNldE1pbmltdW0gYW5kIHNldE1heGltdW0gZmFpbCAgCjxicj4zMzA4MDogW0pVTklUXVNoZWxsLmlzTWluaW1pemVkKCkgcmV0dXJucyBmYWxzZSBhZnRlciBzaGVsbC5zZXRNaW5pemVkKHRydWUpICAKPGJyPjMzMDc5OiBbSlVOSVRdU2hlbGwuaXNWaXNpYmxlIHJldHVybnMgZmFsc2UgYWZ0ZXIgc2hlbGwuc2V0VmlzaWJsZSh0cnVlKSBjYWxsZWQgIAo8YnI+MzMwODg6IFtKVU5JVF1UYWJGb2xkZXIuc2V0TG9jYXRpb24gb3IgVGFiRm9sZGVyLmdldExvY2F0aW9uIG5vdCB3b3JraW5nICAKPGJyPjI1Mjc4OiBjb250ZXh0IG1lbnUgY2xpY2sgZG9lcyBub3QgY2hhbmdlIHNlbGVjdGlvbiAgCjwvYmxvY2txdW90ZT4KCgoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMDUgLSBUdWVzZGF5IE1heSAyMCwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMzA0MzQ6ICBCSURJOiBTdHlsZWRUZXh0IHRvIHN1cHBvcnQgUklHSFRfVE9fTEVGVCBvcmllbnRhdGlvbiAgCjxicj4zNTY1NzogIEVjbGlwc2UgY3Jhc2hlcyBhbmQgdGhyb3dzIGV4Y2VwdGlvbiB3aGVuIHN0YXJ0aW5nIHVwIGluIENoaW5lc2UgbG9jYWxlcyAgCjxicj4zNzUwNTogIEdDLnNldFhPUk1vZGUoKSBub3QgYXBwbHlpbmcgdG8gZHJhd1N0cmluZy9UZXh0IChCQkFXVCkgIAo8YnI+MzY5MzQ6ICBJbnZhbGlkIHRocmVhZCBhY2Nlc3MgZXJyb3Igb24gY3JlYXRpbmcgYSBmb250IGluIE1vdGlmIChCQkFXVCkgIAo8YnI+MzQ2NDg6ICBbRE5EXSBmaWxlIGRlbGV0ZWQgd2hlbiBkcm9wcGVkIGluIGVkaXRvciBvbiBTb2xhcmlzICAKPGJyPjM3NDc5OiAgQklESTogRHJvcC1kb3duIGxpc3Qgb2YgQ0NvbWJvIGRvZXNuJ3QgaW5oZXJpdCBpdCdzIG9yaWVudGF0aW9uIGZyb20gQ0NvbWJvLiAgCjxicj4zNzQ5ODogIEJJREk6IHJ0bC1vcmllbnRlZCBUYWJsZUN1cnNvciBzZXQgbmV4dCBjb2x1bW4gaW5zdGVhZCBvZiBwcmV2aW9zIGFuZCB2aWNlIHZlcnNhLCB3aGVuIGl0IHVzZXMgcmlnaHQgYW5kIGxlZnQgYXJyb3cga2V5cy4gIAo8YnI+Mzc1MTk6ICBCdWcgaW4gRGVjb3JhdGlvbnMuc2V0UGxhY2VtZW50IG1ldGhvZCAgCjxicj4zNTgwNDogIENoZWVzZSBpbiBUZXh0ICAKPGJyPjM3MTY0OiAgQ3Jhc2ggd2hlbiBvcGVuaW5nIGEgTWVzc2FnZUJveCBvbiBhIFRleHQgZm9jdXNMb3N0IGV2ZW50ICAKPGJyPjM3NDk3OiAgQ3JlYXRpbmcgb2YgbmV3IEltYWdlIGlzIGZhaWxlZCBpbiBzb21lIGNhc2VzLiAgCjxicj4yODUyNTogIERyYWdEZXRlY3QgcmVxdWlyZWQgIAo8YnI+NDczNDogIGRyYXdUZXh0KCkgZG9lcyBub3QgcmVzcGVjdCBzZXRYT1JNb2RlKHRydWUpICgxR0ZRSTE1KSAgCjxicj4zNzEzODogIEdDLmRyYXdJbWFnZSB0aHJvd3MgRXhjZXB0aW9uIHdpdGggYm91bmRhcnkgY29uZGl0aW9ucyAoQkJBV1QpICAKPGJyPjM3MTQwOiAgR0MuZHJhd0ltYWdlIHRocm93cyBTV1RFcnJvciB3aXRoIGJvdW5kYXJ5IGNvbmRpdGlvbnMgKEJCQVdUKSAgCjxicj4zNzE5ODogIGd0azIgaW0gLSBpbWhhbmd1bCAoa29yZWFuIElNKSB3b3JrIGJhZCBpbiBFY2xpcHNlICAKPGJyPjIxMzg0OiAgR1RLOiBSYW5kb20gWCBXaW5kb3cgU3lzdGVtICJCYWQgSW1wbGVtZW50YXRpb24iIGVycm9yKEJCQVdUKSAgCjxicj4zNzU5MTogIEltYWdlTG9hZGVyLnNhdmUgZm9yIEdJRiBzYXZlcyBpbiBjb21wcmVzcyBHSUYgZm9ybWF0ICAKPGJyPjMzNDk2OiAgTXVsdGktbGluZSB0ZXh0IGlzc3VlcyB0b28gbWFueSBtb3VzZSB0cmFjayBldmVudHMgb24gUGhvdG9uIChCQkFXVCkgIAo8YnI+MzQxODU6ICBOYXRpdmUgVHJlZTogQ2xpY2tpbmcgaW50byBzZWxlY3Rpb24gZG9lc24ndCByZXNlbGVjdCAgCjxicj4yODUyOTogIFByb2dyZXNzQmFyIGRpcmVjdGlvbiB3cm9uZyArIGNoZWVzZSAgCjxicj4zNzU2NDogIFJlbW92ZSBkZXBlbmRlbmN5IG9uIFgxMSBpbiBQcm9ncmFtICAKPGJyPjM3MzAzOiAgUmVtb3ZlIFggZGVwZW5kZW5jeSAgCjxicj4zNzg4MTogIFN0eWxlZFRleHQgLSBOUEUgd2hlbiB1c2luZyBSSUdIVF9UT19MRUZUIHN0eWxlIHdpdGggU3R5bGVkVGV4dCBvbiBMaW51eCAgCjxicj4zNjQ1MDogIFtLZXkgQmluZGluZ3NdIE9ubHkgS2V5VXAgZXZlbnQgZm9yIEFsdCtbU2hpZnRdKzxjaGFyPiBvbiBXaW5kb3dzICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMDQgLSBUdWVzZGF5IE1heSAxMywgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjk3ODM6ICBCSURJOiBkcm9wLWRvd24gbGlzdCBvZiBydGwtb3JpZW50ZWQgQ0NvbWJvIGlzIGRpc3BsYXllZCBpbiB0aGUgd3JvbmcgcGxhY2UuICAKPGJyPjM3Mjk5OiAgQklESTpDYXJldCBjaGVlc2Ugd2hlbiByZXNpemluZyBSSUdIVF9UT19MRUZUIFN0eWxlZFRleHQgIAo8YnI+MzcyOTM6ICBCSURJOkdDLmRyYXdJbWFnZSgwLCAuLi4gZHJhd3MgYXQgMSwgLi4uIHdoZW4gdXNpbmcgUklHSFRfVE9fTEVGVAo8YnI+MzcyODU6ICBBZGQgVGlmZiBzdXBwb3J0ICAKPGJyPjM0NTE2OiAgQ2hlZXNlIGluIFByb2dyZXNzQmFyICAKPGJyPjMyMzUyOiAgRGlzcGxheSBvZiBTV1QgdGFiYmVkIHBhbmVzIGRvIG5vdCByZWRyYXcgZHVyaW5nIGNoYW5nZXMgIAo8YnI+MzY2NDk6ICBFcnJvciBJY29ucyBEcmF3IFRocm91Z2ggIAo8YnI+MzMwODM6ICBKVW5pdCBWaWV3IG5vdCBiZWluZyB1cGRhdGVkIGVhcmx5IGVub3VnaCAgCjxicj4yOTMzMjogIG5ldyBHQyh0aGlzKSBwcm9kdWNlcyBhIEdDIHRoYXQgZG9lcyBub3RoaW5nICAKPGJyPjMxMDExOiAgUGFpbnQgZXhhbXBsZSBkb2VzIG5vdCBkcmF3IGNvcnJlY3RseSAgCjxicj4yNzQ3NDogIFByb3ZpZGUgYSBTV1QgSmF2YSBXZWIgU3RhcnQgZXh0ZW5zaW9uICAKPGJyPjM3MTcyOiAgVGFibGVDb2x1bW4gYWxpZ24gc3R5bGUgaGFzIG5vIGVmZmVjdCBvbiBHVEsgIAo8YnI+MzE3ODM6ICBUZXh0IGRvZXNuJ3QgaG9ub3IgdmlzaWJpbHR5ICAKPGJyPjI5MzgzOiAgVHJlZSBhbmQgVGFibGUgLSBubyBncmF5IGNoZWNrIGJveGVzIG9uIEdUSyAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAzLjAgMDAzIC0gVHVlc2RheSBBcHJpbCA2LCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozNjk5MzogIFRyYWNpbmcgb3B0aW9ucyBub3QgZGlzcGxheWVkIGluIFJ1bi10aW1lIFdvcmtiZW5jaCBydW4gY29uZmlndXJhdGlvbiAgCjxicj4yOTc4MTogIEJJREk6IExhY2sgb2YgbGVhZGluZyBhbmQgdHJhaWxpZyBzdHlsZXMgZm9yIGFsaWdubWVudCBvZiB3aWRnZXQncyBjb250ZW50cy4gIAo8YnI+MjU2MjM6ICBjYW4ndCBzZWxlY3QgaXRlbXMgaW4gVHJlZSB3aWRnZXQgb2YgbG9jYWwgaGlzdG9yeSAgCjxicj4yNzc3NzogIENvbWJvIGJveCBwaXhlbCBjb3JydXB0aW9ucyAgCjxicj4zNzEwMjogIEVjbGlwc2UgZG9lc24ndCBzdGFydCAgCjxicj4zNzA3NjogIEd0ayBDUklUSUNBTCB3YXJuaW5nIGd0a3RyZWV2aWV3LmMgIAo8YnI+MzcyMDI6ICBHVEsgRXhjZXB0aW9uIG9uIGd0a19wcm9ncmVzc19iYXJfc2V0X2ZyYWN0aW9uICAKPGJyPjMxOTQxOiAgZ3RrX3Byb2dyZXNzX2Jhcl9zZXRfZnJhY3Rpb24gLSBjcmFzaCB3aGVuIGNyZWF0aW5nIGEgY2xhc3MgdW5kZXIgbGF0ZXN0IERlYmlhbiBHVEsgMi4yIC8gQ3J1eCBUaGVtZSAgCjxicj4zNzA3NTogIEkyMDAzMDQyOTogbm8gc3d0LWNhcmJvbi0zMDAyIGluIGphdmEubGlicmFyeS5wYXRoICAKPGJyPjE4NzAxOiAgaW1hZ2UgY2hlY2sgYm94IGJ1dHRvbnMgYXJlIGNsaXBwZWQgIAo8YnI+MTY4MTQ6ICBKMk1FIFNXVCAtIDMgY2xhc3NlcyBub3QgQ0xEQyBjb21wbGlhbnQgIAo8YnI+MTk4MjQ6ICBOZWVkZWQgbXVsdGktbW9uaXRvciBtZXRob2RzLiAgCjxicj4zNzIxMjogIE9yZGVyIHNlcGVuZGVuY2llcyBpbiBzZXR0aW5nIHVwIG1lbnVzICAKPGJyPjI4NTg5OiAgUmVkSGF0IDguMCAtIERlZmF1bHRJbmZvcm1hdGlvbkNvbnRyb2wgaGFuZ3Mgd29ya2JlbmNoICAKPGJyPjI3MjAyOiAgUnVubmluZyBDb250cm9sZUV4YW1wbGUgd2l0aCBEZXZpY2UuREVCVUcgZmxhZyBvbiAgCjxicj4zNzA2NTogIFNwYWNpbmcgYnVnIGluIFJvd0xheW91dCAgCjxicj4zMTkwNjogIFRoZSBmaWxlIGRpYWxvZyB3aWRnZXQgZG9lcyBub3QgcHJvdmlkZSBhIHdheSB0byBwcm9ncmFtbWF0aWNhbGx5IGNoYW5nZSB0aGUgdHlwZSBmaWx0ZXIuICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMDIgLSBUdWVzZGF5IEFwcmlsIDI4LCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgozNjkxMDogIFNldHRpbmcgZm9udCBiZWZvcmUgc2V0dGluZyB0ZXh0IG9uIE1vdGlmIGNhdXNlcyBYIGVycm9yIChCQkFXVCkgIAo8YnI+Mjk3NjU6ICBCSURJOiBUb29sVGlwdGV4dCBkbyBub3QgaGF2ZSBSaWdodCB0byBsZWZ0IFJlYWRpbmcgb3JkZXIgIAo8YnI+MzQzNjU6ICBEaXNwbGF5IHByb2JsZW0gaW4gdGhlIGVkaXRvciAgCjxicj4zNTMxOTogIFRWVDIxOiBDYW5ub3QgaW5wdXQgY2hhcmFjdGVycyBpbiBHZXJtYW4gZm9yIG1vdGlmICAgCjxicj4zNjQzMzogIEFsbG93IEN1cnNvcnMgdG8gYmUgY3JlYXRlZCB3aXRoIEltYWdlcyB0aGF0IGhhdmUgYSBkZXB0aCA+MSAgCjxicj4zNjc0NjogIEFuIG92ZXJsb2FkZWQgZ2xDYWxsTGlzdHMoKSB3b3VsZCBiZSB1c2VmdWwgICAgCjxicj4yOTc4NjogIEJJREk6IGtleWJvcmFkJ3MgbGVmdCBhbmQgcmlnaHQgYXJyb3dzIG1vdmUgZm9jdXMgYmV0d2VlbiB0YWJzIG9mIHJ0bC1vcmllbnRlZCBDVGFiRm9sZGVyIGluIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24uICAKPGJyPjM2Njg0OiAgQklESTogTFRSLW9yaWVudGVkIE1lc3NhZ2VCb3ggY2FuJ3QgYmUgY3JlYXRlZCwgaWYgaXQncyBwYXJlbnQgaGFzIFJUTCBvcmllbnRhdGlvbi4gIAo8YnI+MzY2Nzk6ICBCSURJOiBQb3B1cExpc3QgY2FuJ3QgYmUgY3JlYXRlZCB3aXRoIGV4cGxpY2l0bHkgYXNzaWduZWQgb3JpZW50YXRpb24uICAKPGJyPjI5Nzg3OiAgQklESTogcHJvYmxlbSB3aXRoIGtleWJvYXJkJ3MgbGVmdCBhbmQgcmlnaHQgYXJyb3dzLCB3aGVuIHRoZW0gdXNlZCB0byBleHBhbmQgb3IgdG8gY29sbGFwc2UgcnRsLW9yaWVudGVkIFRhYmxlVHJlZS4gIAo8YnI+MzYyNzY6ICBCSURJOiBXaGVuIFVwRG93biBjb250cm9sIG9mIHJ0bC1vcmllbnRlZCBUYWJGb2xkZXIgaXMgdXNlZCBmb3Igc2Nyb2xsaW5nIHRhYnMsIHRoZXkgYXJlIHNjcm9sbGVkIGluIHRoZSB3cm9uZyBkaXJlY3Rpb24uICAKPGJyPjM2NzI3OiAgQ2FuJ3QgdXNlIE9wZW5HTCBpbiBhIHBsdWdpbiAgCjxicj4yMjk0MzogIENhbm5vdCBjbGVhbmx5IGtpbGwgYW4gc3d0IHRhc2sgIAo8YnI+MzYyMDk6ICBDb3BpZWQgdGV4dCB0byBvbiB0aGUgY2xpcGJvYXJkIGlzIG9jY2FzaW9uYWxseSBudWxsIHRlcm1pbmF0ZWQgIAo8YnI+MzQ5ODI6ICBDdXN0b20gQnVzeUluZGljYXRvciAtIG5vIGhvdXJnbGFzcyBjdXJzb3IgIAo8YnI+MzY5Mjg6ICBDdXN0b20gY3Vyc29ycyBhcmUgbm90IHdvcmtpbmcgIAo8YnI+MzYzODY6ICBFY2xpcHNlIGNyYXNoZXMgb24gZXhpdCAgCjxicj43NDQwOiAgR2xpdGNoIG9uIE5hdmlnYXRpb24gQmFyIG9uIFBvY2tldFBDIHdoaWxlIGNsb3NpbmcgajkgcnVubmluZyBTV1QgYXBwICAKPGJyPjM2OTE1OiAgamF2YS5sYW5nLk91dE9mTWVtb3J5RXJyb3Igd2hlbiBjcmVhdGluZyBvcmcuZWNsaXBzZS5zd3QuZ3JhcGhpY3MuSW1hZ2UgIAo8YnI+MzY4Mzg6ICBPcGVuR0w6IEdMWVBITUVUUklDU0ZMT0FUIGNhbm5vdCBiZSBpbnRlcm5hbCAgCjxicj4zNjk1NTogIFNjcm9sbGVkQ29tcG9zaXRlIHVudXNlZCBiYWNrZ3JvdW5kIGlzIHBhaW50ZWQgd3JvbmcuICAKPGJyPjM2NTYyOiAgW0NWU10gY29tbWl0IGxvZyBkaWFsb2cgZG9lc24ndCBzZXQgZm9jdXMgY29ycmVjdGx5ICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDMuMCAwMDEgLSBUdWVzZGF5IEFwcmlsIDIyLCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo8YnI+Nzc1NyBQYWNrYWdlcyB2aWV3OiB0aXRsZSBhbmQgdG9vbHRpcCBzaG91bGQgbm90IHVzZWQgY29tcHJlc3MuLi4gIAo8YnI+OTM2NiBXb3JrYmVuY2ggYXBwZWFycyB3aXRoIDFzdCB0b29sYmFyIGl0ZW0gc2hvd2luZyBob3Zlci1vdmUuLi4gIAo8YnI+MTkyMjggVHJ5IHRvIGNvbnRyb2wgbW90aWYgZm9jdXMgcmVhc3NpZ25tZW50cyAgCjxicj4xOTcwOCB3aWRnZXRJc0Rpc3Bvc2VkIGZvciB0b290aXAgdGV4dCAgCjxicj4yMDI3OSBEaXZpc2lvbiBieSB6ZXJvIHdoZW4gc2hvd2luZyBhIHplcm8tc2l6ZWQgdHJhY2tlciAgCjxicj4yMTI4MyBDdHJsKy8gcGVyZm9ybXMgdW5kbywgbm90IGNvbW1lbnQsIGluIGVtYWNzIGJpbmRpbmdzICAKPGJyPjIzODQ3IEtleWJvYXJkIG5hdmlnYXRpb24gZG9lc24ndCB3b3JrIG9uIE1hYyAgCjxicj4yNDU2MyBEQkNTIFN1cHBvcnQgZm9yIE1vdGlmIGFuZCBHVEsgIAo8YnI+Mjg1MzAgQ2hlZXNlIHdoZW4gbW92aW5nIFNhc2ggIAo8YnI+Mjg1MzcgVGFzayB2aWV3IGhlbHAgaXMgd3JvbmcgaWYgcHJldmlvdXMgZm9jdXMgd2FzIGVkaXRvciAgCjxicj4yODU2MSBDYW4ndCBhcnJvdyBhcm91bmQgdGFibGUgIAo8YnI+Mjg4MDAgU3dpdGNoaW5nIHRvIGEgbm90IHlldCBhY3RpdmF0ZWQgcGVyc3BlY3RpdmUgZG9lc24ndCBzZXQgLi4uICAKPGJyPjI4ODUwIHNldEZvbnQoKSBvbiBUZXh0IGNvbnRyb2wgaGFzIG5vICh2aXN1YWwpIGVmZmVjdCAgCjxicj4yOTc4NCBrZXlib2FyZCdzIGxlZnQgYW5kIHJpZ2h0IGFycm93cyBjaGFuZ2UgdmFsdWUgb2YgcnQuLi4gIAo8YnI+Mjk3ODggcnRsLW9yaWVudGVkIFRyYWNrZXIgaGFzIHdyb25nIGJlaGF2aW9yLiAgCjxicj4zMjYwMiBBZnRlciBwcmVzc2luZyBDbWQtRjgsIGNsaWNraW5nIHdpbGwga2lsbCBFY2xpcHNlICAKPGJyPjMyOTY1IE1vdmUgZGlhbG9nOiB0cmVlIGRvZXNuJ3QgaGF2ZSBmb2N1cyAgCjxicj4zMzA2OCBbSlVOSVRdTGFiZWwuc2V0QWxpZ25tZW50IG5vdCBpbXBsZW1lbnRlZCAgCjxicj4zMzEwMCBbSlVOSVRdVGFibGUuZ2V0Q2hpbGRyZW4gZG9lcyBub3QgcmV0dXJuIGFuIGVtcHR5IGFycmF5ICAKPGJyPjMzMzE2IEZvbnREaWFsb2cgbmVlZHMgRm9udERhdGFbXSBBUEkgIAo8YnI+MzMzMzYgUG9wdXAgbWVudXMgZG9udCB3b3JrIG9uIFBvY2tldFBDIChiYkFXVCkgIAo8YnI+MzM0OTIgQWRkaXRpb24gb2YgdGFza3MgdG8gdGFzayB3aW5kb3cgaXMgdG9vIHNsb3cgIAo8YnI+MzM4MDkgUmVxdWVzdDogYWRkIG5ldyBldmVudCBTV1QuTWVudURldGVjdCAgCjxicj4zMzkwMyBbU1dUIEV4YW1wbGVzXSBPTEUgV2ViIGJyb3dzZXIgdmlldyBkb2VzIG5vdCBvcGVuICAKPGJyPjM0MTIyIENvbnRyb2wgRXhhbXBsZSAgCjxicj4zNDI3MCBTaW5nbGUtY2xpY2sgaW4gcG9wdXBzIGRpc21pc3NlcyB0aGVtICh3YXM6IFF1aWNrIEYuLi4gIAo8YnI+MzQyODMgTWFjOiBObyB0YXNrIGRlc2NyaXB0aW9uIGZvciBwcm9ncmVzcyBtb25pdG9yIGluIHdpemFyZHMgIAo8YnI+MzQ0NDUgUmV2ZXJzZSBzb3J0IGZvciBBZGRyZXNzQm9vayBleGFtcGxlICAKPGJyPjM0NDQ2IFtUYXNrc10gRm9jdXMgbG9zdCB3aGVuIHN3aXRjaGluZyBmb3JtIGVkaXRvciB0byBUYXNrcyBWaWV3ICAKPGJyPjM0NjE4IE1pc3Npbmcga2V5Ym9hcmQgZm9jdXMgIAo8YnI+MzQ5OTYgVGFiIEV2ZW50IHdlaXJkbHkgaGFuZGxlZCBpbiBtb3RpZiAgCjxicj4zNTAxMiBTZXR0aW5nIHRoZSB0b29sYmFyJ3MgYmFja2dyb3VuZCBvbiBSQzIgZG9lc24ndCB3b3JrLiAgCjxicj4zNTA5MCBPdXRsaW5lIFBvcHVwOiBFbnRlciBkb2Vzbid0IHdvcmsgaW4gdHJlZSAgCjxicj4zNTIxMCBLZXlMaXN0ZW5lciBkb2Vzbid0IHVuZGVyc3RhbmQgQ1RSTCBhbmQgQUxUIGFzIGEgc3RhdGVNYXNrICAKPGJyPjM1MjQ0IFtBY3Rpb24gU2V0c10gSGllcmFyY2h5IGZhc3QgdmlldyBjYXVzZXMgdW5oYW5kbGVkIGV4Y2VwdC4uLiAgCjxicj4zNTI1NCBVbmhhbmRsZWQgZXhjZXB0aW9uIGNhdWdodCBpbiBldmVudCBsb29wLiBSZWFzb246V2lkZ2V0IGkuLi4gIAo8YnI+MzU2MDcgU2FzaCBtaXNzaW5nIGN1cnNvciBpbiBTdHJ1Y3R1cmUgQ29tcGFyZSBvZiB0aGUgU3luYyB2aWV3ICAKPGJyPjM1Nzc0IFVuZXhwZWN0ZWQgRXhpdDogRXJyb3I6IE9iamVjdCAiIiBkb2VzIG5vdCBoYXZlIHdpbmRvd2VkIC4uLiAgCjxicj4zNTgzNyBbRGlyZWN0b3J5RGlhbG9nXSBUaGVyZSBpcyBubyBkaXNrIGluIHRoZSBkcml2ZS4gUGxlYXNlIGkuLi4gIAo8YnI+MzU4NDIgT3V0bGluZSB2aWV3IGNyYXNoZXMgb24gV2luWFAgJiBXaW4ySyAgCjxicj4zNjAwMCBbU3R5bGVkVGV4dF0gQ29udGVudFdpZHRoQ2FjaGUgaW5pdGlhbGl6YXRpb24gIAo8YnI+MzYxOTIgTmF0aXZlIGNyYXNoIHdoZW4gY2xvc2luZyB0cmVlIG5vZGVzICAKPGJyPjM2MjcwIEJJREk6IFNvbWUgY3VzdG9tIHdpZGdldHMgY2FuJ3QgYmUgY3JlYXRlZCB3aXRoIGV4cGxpY2l0bC4uLiAgCjxicj4zNjYxMiBBZnRlciBpbnN0YWxsL3VwZGF0ZTogbm8gaWNvbiBpbiBkb2NrIC0gbm8gZm9jdXMgIAo8YnI+MzY2NDQgQ2FuIG5vdCBzZXQgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIFRvb2xCYXIgIAo8YnI+MzY3MjIgTW5lbW9uaWMga2V5cyBhcmUgbm90IHdvcmtpbmcgZm9yIFRvb2xJdGVtcyAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDMzZCAtIE1vbmRheSBNYXJjaCAyNCwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KODQ0MjogTnVsbFBvaW50ZXJFeGNlcHRpb24gYW5kIGhhbmcgb24gc3RhcnR1cCBpbiBHVEsgRWNsaXBzZSAgCjxicj4xNzM1OTogTkxTOiBObyBHcm91cDIgaW5wdXQgIAo8YnI+MjYwNzg6IFRhYkZvbGRlci5nZXRDbGllbnRBcmVhKCkgbm90IGNvcnJlY3QKPGJyPjM0OTQwOiBFY2xpcHNlIGxhdW5jaGVyIGNyYXNoZXMgb24gU3VuIEoyU0RLIDEuNC4yLWJldGEgYnVpbGQxOCAgCjxicj4zNTQzNDogW01vdGlmXSBHQy5nZXRGb250TWV0cmljcygpIGNhdXNlcyBWTSB0byBjcmFzaCB3aGVuIGZvbnQgaXMgcmVhbGx5IHNtYWxsCjxicj4zNTU5NjogRXZlbnQgUHJvY2Vzc2luZyBpc3N1ZXMgdW5kZXIgUGhvdG9uCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDMzIC0gVHVlc2RheSBNYXJjaCAxOCwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMzA3Njg6ICBQZXJmb3JtYW5jZSAtIFR5cGluZyBpbiBKYXZhIEVkaXRvciBpcyB1bmFjY2VwdGFibHkgc2xvdy4gIAo8YnI+MzIyMDQ6IFNpZ25hbCAxMSBhdCBhdCBvcmcuZWNsaXBzZS5zd3QuaW50ZXJuYWwuZ3RrLk9TLmd0a19wcm9ncmVzc19iYXJfcHVsc2UoTmF0aXZlIE1ldGhvZCkgIAo8YnI+MzI2MDI6IEFmdGVyIHByZXNzaW5nIENtZC1GOCwgY2xpY2tpbmcgd2lsbCBraWxsIEVjbGlwc2UgIAo8YnI+MzMwMTc6IFZNIGNyYXNoIHdoZW4gcHJlc3NpbmcgZW50ZXIgaW4gdGFibGUgY2VsbCBlZGl0b3IgIAo8YnI+MzMzNDM6IE5ldyBmaWxlIHdpemFyZCBmcmVlemVzIEVjbGlwc2UgVUkgIAo8YnI+MzQxNjY6IERpc2FibGluZywgdGhlbiBlbmFibGluZyBDVlMgZGVjb3JhdG9ycyBwcm9kdWNlZCBOUEUgIAo8YnI+MzQxODM6IFRoZSBsYXlvdXQgb2YgdGhlIHBhY2thZ2UgZXhwbG9yZXIgY2Fubm90IGJlIGNoYW5nZWQgIAo8YnI+MzQyNDg6IERCQ1M6IHNob3duIHVwIEdub21lVkZTLVdBUk5JTkcgbWVzc2FnZXMgIAo8YnI+MzQ0MTg6IENyYXNoIHdoZW4gcnVubmluZyBETkRFeGFtcGxlICAKPGJyPjM0NDYzOiBjb25maXJtIGV4aXQgY2hlY2tib3ggY2Fubm90IGJlIHNlbGVjdGVkICAKPGJyPjM1MDIyOiBNb3RpZiBkb2VzIG5vdCBzZW5kIGRyYWdGaW5pc2hlZCBldmVudCBvbiBhYm9ydGVkIGRyYWdzICAKPGJyPjI2Mzg4OiBQYWNrYWdlIEV4cGxvcmVyIGRvZXMgbm90IHBvc2l0aW9uIG9uIGZpbGVzICAKPGJyPjMwMDczOiBHcmFwaGljYWwgRWRpdG9yIGlzIG5vdCByZWZyZXNoZWQgcHJvcGVybHkgd2hlbiBzY3JvbGxiYXJzIGRpc2FwcGVhciAgCjxicj4zMTAyNjogSGFuZyBvbiBMaW51eCAgCjxicj4zMjg1MTogQ2FuJ3QgcmVtb3ZlIGV4dGVybmFsIHRvb2wgYnVpbGRlciBhZnRlciBkZWxldGluZyBsYXVuY2ggY29uZmlnICAKPGJyPjMzMDk5OiBDb250ZXh0IG1lbnUgJ0Rpc3BsYXknIGRvZXNuJ3Qgd29yayAgCjxicj4zMzcxMzogSlJFIHBvcHVwIG1lbnUgaW4gUnVuIGNvbmZpZ3VyYXRpb24gZGlhbG9nIG5vdCByZWxpYWJsZSAgCjxicj4zNDA5MzogTWVudSBtaXNzaW5nIGl0ZW1zICAKPGJyPjM0NDI4OiBbTW90aWZdIFRyZWUgYW5kIFRhYmxlIHZpZXdzIG5vdCBnZXR0aW5nIHByb3BlciBzZWxlY3Rpb24gIAo8YnI+MzQ2MzM6IFRhYmxlIHdpdGggQ0hFQ0sgZmxhc2hlcyBjaGVlc2UgIAo8YnI+MzQ4MTU6IENoZWVzZSBpbiBDVGFiRm9sZGVyIHdpZGdldCAgCjxicj4zNDg3OTogQ2FsbGluZyBTY3JvbGxCYXIuc2V0VmlzaWJsZSgpIHdoZW4gYSB0ZXh0IHdpZGdldCBoYXMgZm9jdXMgY2F1c2VzIGEgZm9jdXMgbG9zdCBldmVudCBvbiB0aGUgdGV4dCB3aWRnZXQKPGJyPjI1NjcxOiBKYXZhZG9jIGZvciBjbGFzcyBzd3Qvd2lkZ2V0cy9EaWFsb2cgbWlzc2luZyAmbHQ7cHJlJmd0Owo8YnI+Mjg2NDQ6IEJvbGQgZm9udCBpbiBsYWJlbCByZXN1bHRzIGluIG1pc3NpbmcgY2hhcmFjdGVyICAKPGJyPjI5NDg2OiBLZXlzIG5lZWQgc3Ryb25nZXIgZmlsdGVyaW5nLiAgCjxicj4zMjQyNDogW1BST0dSQU1TfSBHbm9tZSAtIFByb2dyYW0uZ2V0UHJvZ3JhbXMgbmVlZHMgdG8gYmUgdXBkYXRlZCAgCjxicj4zMjk0NzogQ2hhbmdlIG1ldGhvZCBzaWduYXR1cmUgZGlhbG9nIHRvbyBiaWcgIAo8YnI+MzM0ODA6IFRleHQgY3V0IG9mZiBpbiBNYWMgaW4gbGFiZWxzLiAgCjxicj4zMzcwMDogUnVubmluZyBvdXQgb2YgaGFuZGxlcyBvbiBXaW5kb3dzIFhQICAKPGJyPjMzODIyOiBTdHJhbmdlIHNjcm9sbGluZyBvZiBuYXRpdmUgdGFibGUgIAo8YnI+MzQwMzY6IE5hdGl2ZSBjcmFzaCBvbiBkaXNtaXNzaW5nIGhlbHAgd2luZG93ICAKPGJyPjM0NTEyOiBDb21wdXRlU2l6ZSBvZiB0YWJsZSBhbmQgdHJlZSB0b28gc21hbGwgIAo8YnI+MzQ1Njk6IEJJREk6IFN0eWxlZCB0ZXh0IGNoYW5nZSB0aGUgY2hhcmFjdGVycyB3aXRoIExhcmdlIGZvbnRzICAKPGJyPjM0NjQ5OiBUYWJGb2xkZXIgdGl0bGUgZG9lcyBub3QgaGFuZGxlIG1uZW1vbmljcyBwcm9wZXJseSAgCjxicj4zNDcyNDogQ29udHJvbEV4YW1wbGUgIAo8YnI+MzQ4MzU6IFdpZGdldCAiZGVmYXVsdCIgc3R5bGVzIHNob3VsZCBiZSByZWZsZWN0ZWQgaW4gc3R5bGUgYml0cyAgCjxicj4zNDkzNTogTWlzc2luZyBib3JkZXIgb24gdG9vbGJhciAgCjxicj4zNDk4MzogTmF0aXZlIGRyYWcgYW5kIGRyb3AgZG9lc24ndCB3b3JrIHVuZGVyIGxpbnV4ICAKPGJyPjM1MDM4OiBSZWZhY3RvcmluZyBkaWFsb2cgKEV4dHJhY3QgTG9jYWwgVmFyaWFibGUpIHRvIGJpZyAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDMyYyAtIFR1ZXNkYXkgTWFyY2ggMTEsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ0MzQ6ICBHUEYgd2hlbiBydW5uaW5nIFNXVCBUcmVlIGNvZGUgKDFGTkkyNVYpICAKPGJyPjIzMzg1OiAgVGFibGUgdmVydGljYWwgY29sdW1uIHNlcGFyYXRvcnMgcmVkcmF3IGluY29ycmVjdGx5IG9uIE1hY09TWCAgCjxicj4zMTY4NTogIEVudGlyZSBFY2xpcHNlIFBsYXRmb3JtIGxvc2VzIGZvY3VzIGFuZCBnb2VzIGludG8gdGhlIGJhY2tncm91bmQuLi4gIAo8YnI+MzM4MzQ6ICBbVmlld2Vyc10gTlBFIGluIFRyZWVWaWV3ZXIgIAo8YnI+MzQxODE6ICBDdHJsLUNsaWNrIGRvZXNuJ3Qgc2VsZWN0IHVuZGVybHlpbmcgaXRlbSBiZWZvcmUgYnJpbmdpbmcgdXAgY29udGV4dCBtZW51ICAKPGJyPjM0MTg4OiAgUHJvZ3Jlc3MgYmFyIGluIGRpYWxvZ3MgZG9lc24ndCBzaG93IHRhc2sgaW5mb3JtYXRpb24gIAo8YnI+MzQ2MTQ6ICBNb3VzZSBwb2ludGVyIGRvZXMgbm90IGNoYW5nZSBpbiB0YWJsZSBoZWFkZXIgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAzMiAtIFRodXJzZGF5IE1hcmNoIDA2LCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NTkyOiBtdWx0aSBzZWxlY3QgYmVoYXZpb3IgZm9yIGZpbGUgZGlhbG9nICgxRzdIWjJRKSAgCjxicj40NjU5OiBEb3VibGUtY2xpY2tpbmcgb24gZml4ZWQgc2l6ZSBjb2x1bW4gaGVhZGVyIHJlc2l6ZXMgaXQgKDFHRTNXTjYpIAo8YnI+NDg0MzogRUMgRENSOiBBZGQga2V5Ym9hcmQgc3VwcG9ydCBmb3IgbXVsdGktc2VsZWN0IHRvIFRyZWUgKDFHS01IUzUpICAKPGJyPjQ4NDc6IFByb3BlcnR5IGRpYWxvZyBwdXQgYmVoaW5kIHdvcmtiZW5jaCB3aW5kb3cgKDFHS1JOOVopICAKPGJyPjcxNTk6IE1pc3NpbmcgSmF2YWRvYyBmb3IgRXZlbnQgZmllbGRzICAKPGJyPjc3MTI6IE5vIHNjcm9sbCBiYXJzIGluIE1pY3Jvc29mdCBXb3JkIGRvY3VtZW50cyBvcGVuZWQgZnJvbSB0aGUgd29ya2JlbmNoICAKPGJyPjEyNTk3OiBDYW5ub3QgY2hhbmdlIE9MRSBFdmVudCdzIFZBUklBTlQgYXJndW1lbnQgd2hpY2ggaGFzIFtvdXRdIGRpcmVjdGlvbmFsIGF0dHJpYnV0ZSBpbiBJREwgIAo8YnI+MTQzMjk6IE1vZGFsIGRpYWxvZyBkb2Vzbid0IGRpc2FibGUgY29sdW1uIHJlc2l6aW5nICAKPGJyPjE2ODg2OiBBZGRyZXNzIEJvb2sgYnVnIGluIHRoZSBvcGVuIGEgRmlsZSBkaWFsb2cgIAo8YnI+MTY5MDE6IE5QRSByZW1vdmluZyBleHByZXNzaW9uIGZyb20gZXhwcmVzc2lvbiB2aWV3ICAKPGJyPjE4MDU5OiBSSDcuMyBjbGlwYm9hcmQgcHJvYmxlbSAgCjxicj4xODgxMDogRXh0cmEgdW5wcmludGFibGUgY2hhcmFjdGVyIGluIGNvcHkgYnVmZmVyICAKPGJyPjE5ODk2OiBLZXkgdXAgZXZlbnQgc2F5cyBDdHJsIGlzIHJlbGVhc2VkIHdoZW4gaXQncyBub3QgIAo8YnI+MTk5MjI6IE1lbnUgYmFyIGl0ZW1zIGdldCBhZGRlZCBvbmUgYXQgYSB0aW1lIHdoZW4gZWRpdG9ycyBhcmUgc3dpdGNoZWQgIAo8YnI+MjI0MTY6IE5UNDogTmVlZCBjb250ZXh0IG1lbnUgb24gd2luZG93IHNjcm9sbCBiYXIgdG8ga2VlcCBpdHMgY29uc2lzdGVuY3kgb24gV2luMmsgIAo8YnI+MjM0MTk6IFtPTEVdIERvIG5vdCBnZXQgc2Nyb2xsYmFycyBpbiBFeGNlbCAgCjxicj4yMzg0MTogRWNsaXBzZSBVSSBkb2VzIG5vdCBmb2xsb3cgTWFjIEwmRiBndWlkZWxpbmVzICAKPGJyPjIzOTU5OiBVc2UgbmF0aXZlIFRhYmxlIGFuZCBUcmVlICAKPGJyPjI0MzkzOiBEQ1IgLSBOZWVkIHRvIHN1cHBvcnQgTWFjIGNvbW1hbmQga2V5IGluIFNXVCAgCjxicj4yNDQzMTogRWNsaXBzZSBNMSBVbmRlciBPU1ggY3Jhc2hlcyB3aGVuIHVzaW5nIFZpcnR1YWxEZXNrdG9wcyAgCjxicj4yNTM4MzogVmFyaWFudCBuZWVkcyBhIGRpc3Bvc2UgbWV0aG9kICAKPGJyPjI1NjA0OiBRdWljayByZWxlYXNlIHVwb24gc3RhcnQgb2YgZHJhZyBoYW5ncyBlY2xpcHNlIHdpdGggcG9pbnRlciBncmFiICAKPGJyPjI2MDUxOiBbV29ya2JlbmNoXSBNYWluIEVjbGlwc2Ugd2luZG93IGFjdGl2YXRlcyBpdHNlbGYgdmVyeSBvZnRlbiAgCjxicj4yODUxNDogQ2hhcmFjdGVyIHBvc2l0aW9ucyBkaWZmZXIgYmV0d2VlbiBzZWxlY3RlZCBhbmQgdW5zZWxlY3RlZCB0ZXh0IAo8YnI+Mjg5ODI6IFRvb2xiYXIgY29sb3IgcHJvYmxlbSB3aGVuIHVzaW5nIHRoZSBtYW5pZmVzdCBpbiBYUCAgCjxicj4yOTAyNzogQWRkICJkZWxldGUgcHJldmlvdXMgd29yZCIgYW5kICJkZWxldGUgbmV4dCB3b3JkIiBhY3Rpb25zIHRvIGVjbGlwc2UgZWRpdG9yICAKPGJyPjI5MzMwOiBKYXZhRG9jIGRvZXMgbm90IG1hdGNoIFdpbmRvd3MgLSBGSVggTEVGVFRPUklHSFRkb2MgIAo8YnI+MjkzODc6IG5vIGxpbmVzIGluIFRhYmxlIG9uIEdUSyAgCjxicj4yOTQ3MTogR1AgLSBYdERlc3Ryb3lBcHBsaWNhdGlvbkNvbnRleHQgLSBDbG9zaW5nIE00IHdpbGwgc29tZXRpbWVzIGNyYXNoIHRoZSBWTSAgCjxicj4yOTcxNzogW1BFUkZPUk1BTkNFXVNXVCBNb3RpZiBleHRlcmVtZWx5IHNsb3cgd2l0aCBMQU5HIGVuX1VTLlVURi04ICAKPGJyPjI5ODE0OiBHUCAtIE5vIGNvcmUgYXZhaWxhYmxlIC0gR1BGIG9uIHdpbjJrICAKPGJyPjI5OTExOiBUYWJsZUVkaXRvcnMgbm90IGRpc3BsYXllZCB3aGlsZSBzY3JvbGxpbmcuICAKPGJyPjMwNDI3OiBIQU5HL0dQIC0gWHREaXNwYXRjaEV2ZW50IC0gRWNsaXBzZSBrZWVwcyBsb2NraW5nIHVwICAKPGJyPjMwNjE4OiBjdHJsLW8gbm90IHdvcmtpbmcgIAo8YnI+MzE1MjU6IGVjbGlwc2UgdXNlcyAxMDAlIENQVSB3aXRoIGd0ayAyLjIuMSAgCjxicj4zMTY4NDogVW5hYmxlIHRvIGRyYWcgdmlld3MuICAKPGJyPjMxNzE3OiBVbnJlcHJvZHVjaWJsZSBHUC9IYW5nICAKPGJyPjMxODM0OiBMYWJlbCBhbmQgQ29tYm8gZG9uJ3QgYWxpZ24gd2VsbCAgCjxicj4zMjEyMjogQ2Fubm90IGluc2VydCBsaW5lcyBpbnRvIG5ldyBmaWxlIGNvZGUgdGVtcGxhdGUgKHJlZ3Jlc3Npb24gZmFpbHVyZSkgCjxicj4zMjI4NjogQ29udHJvbEV4YW1wbGUgQnV0dG9uIFRhYiAtIGNoYW5naW5nIHN0eWxlcyByZXNldHMgYnV0dG9uIG9yaWVudGF0aW9uICAKPGJyPjMyMzU5OiBObyBQYXJlbnQgKyBTV1QuQVBQTElDQVRJT05fTU9EQUwgc2hlbGwgbm90IG1vZGFsICAKPGJyPjMyNDA4OiBJMjAwMzAyMjAgb24gTWFjT1MgWCBoYXMgZ2VuZXJpYyBhcHBsaWNhdGlvbiBpY29uICAKPGJyPjMyNDgyOiBObyBGMSBoZWxwIG9uIE1hY09TIFggIAo8YnI+MzI3MzQ6IE5QRSB3aGlsZSB2aWV3aW5nIHZhcmlhYmxlcyBmcm9tIGRlYnVnZ2VyICAKPGJyPjMyODU2OiBbQ2VsbCBFZGl0b3JzXSBDYW4gbm90IHNlZSB3aGF0IHZhbHVlIEkgYW0gdHlwaW5nIGluIHRoZSBQcm9wZXJ0aWVzIAo8YnI+MzI5NTQ6IFtLREVdIFByb2dyYW1zIC0gZml4IGxpYnJhcnkgYnVpbGQgIAo8YnI+MzMwNDY6IERCQ1M6IENhbiB0eXBlIGludG8gcmVhZC1vbmx5IFRleHQgIAo8YnI+MzMwNTc6IFJDMSBObyBjYXJldCBpbiBlZGl0b3IgIAo8YnI+MzMzNDg6IENvbnRyb2xFeGFtcGxlOiB3aWRlciB0aGFuIHNjcmVlbiwgdG9vIG1hbnkgdGFicyAgCjxicj4zMzU4MDogU2Nyb2xsYWJsZS5XTV9NT1VTRVdIRUVMIHVzZXMgd3JvbmcgdmFyaWFibGUgZm9yIGhvcml6b250YWwgc2Nyb2xsICAKPGJyPjMzNTkwOiBSQzE6ICJBcHBsaWNhdGlvbiBNb2RhbCIgc2hlbGwgc3R5bGUgYmVoYXZlcyBpbmNvcnJlY3RseSAgCjxicj4zMzU5MjogRml4IHNwZWNpZmljYXRpb24gZm9yIGV2ZW50LmNoYXJhY3RlciAgCjxicj4zMzU5MzogUkMxOiBUb29sYmFyIGZvcmVncm91bmQgY29sb3IgY2hhbmdlcyBpZ25vcmVkICAKPGJyPjMzNzQ3OiBOT19UUklNIHdpbmRvdyBnaXZlcyBubyByZXNpemUgZmVlZGJhY2sgIAo8YnI+MzM3NzY6IFJlc2lzdGVyaW5nIFRyYXZlcnNlTGlzdGVudGVyIHdpdGggU2hlbGwgY2hhbmdlcyB0YWJiaW5nIGJlaGF2aW9yLiAgCjxicj4zMzgxMzogTGlzdCBkb2Vzbid0IHNlbmQgb3V0IHNlbGVjdGlvbiBldmVudHMgZm9yIGFycm93IGtleXMgIAo8YnI+MzM4NTU6IFRleHQgQ3Vyc29yIEludmlzaWJsZSBpbiBSQzEgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAzMSAtIFRodXJzZGF5IEZlYnJ1YXJ5IDI3LCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxNjgwODogSWNvbiBpbiBXaW5kb3dzIHRhc2tiYXIgaW5jb3JyZWN0ICAKPGJyPjI0NDk0OiBJbmNvcnJlY3QgaTE4biBjaGFyIGVuY29kaW5nIGluIHRleHQgYXJlYXMgIAo8YnI+MjY1NDE6IEV4aXQgdGhlIFdvcmtiZW5jaDogY3Jhc2ggYWZ0ZXIgc2F2aW5nIHRoZSB3b3Jrc3BhY2UgIAo8YnI+Mjg2NDM6IFNldHRpbmcgbGFiZWwncyBiYWNrZ3JvdW5kIGNvbG9yIGhhcyBubyBlZmZlY3QgIAo8YnI+Mjg4NDU6IFJlZnJlc2ggdGFiIGxheW91dCBpbmNvcnJlY3QgZm9yIGxvd2VyIGNvbXBvc2l0ZSAgCjxicj4yOTE5ODogRGlmZmljdWx0IHRvIGNoYW5nZSBjaGFyYWN0ZXIgY2FzZSBvZiBjYWNoZWQgaW5wdXQgdmFsdWVzICAKPGJyPjI5ODM3OiBbQ29udHJpYnV0aW9uc10gQ29tYm8gY29udHJvbCBkb2VzIG5vdCBzaG93IG9uIEdUSyB0b29sYmFyLCB3b3JrcyBmaW5lIG9uIFdpbiBhbmQgTW90aWYgIAo8YnI+MzAzNzc6IE5vIGNhcmV0IGluIEphdmEgRWRpdG9yICAKPGJyPjMwOTA1OiBBZGQgTWVudS5zZXRSZWRyYXcoYm9vbGVhbikgQVBJICAKPGJyPjMwOTI0OiBTdHlsZWRUZXh0IC0gU3R5bGVSYW5nZSBoYXNoQ29kZSB0aHJvd3MgTnVsbFBvaW50ZXJFeGNlcHRpb24gIAo8YnI+MzEwMzk6IEVjbGlwc2UgZG9lcyBub3QgcmVzcG9uZGUgd2hlbiBkaWFsb2cgaXMgb3BlbmVkLiAgCjxicj4zMTE4NzogU2VsZWN0aW9uIGJ5IG1vdXNlIGRyYWcgaXMgb3V0IG9mIGtpbHRlciAgCjxicj4zMTM4MjogTmV3IEZvbGRlciBhbmQgTmV3IEZpbGUgZGlhbG9ncyBVSSBwcm9ibGVtICAKPGJyPjMxODMzOiB3cm9uZyBiYWNrZ3JvdW5kIGZvciBzZXBhcmF0b3IgbGFiZWwgb24gTWFjT1MgWCAgCjxicj4zMTg1NzogTm8gaWNvbnMgaW4gTGFiZWxzICAKPGJyPjMxODY2OiBTY3JvbGxpbmcgaW4gUmVhZG1lIGVkaXRvciBpcyBkZWxheWVkICAKPGJyPjMxOTQ2OiBNb3ZpbmcgQ29vbEJhckl0ZW1zIGxlYXZlcyB0ZW1wb3JhcnkgY2hlZXNlICAKPGJyPjMxOTUwOiBTdHlsZWRUZXh0IC0gU2hpZnQrVVAgYnJva2VuIGluIFN0eWxlZFRleHQgY29udHJvbCAgCjxicj4zMTk3MzogR0IxODAzMDogQWZ0ZXIgY3JlYXRlZCBhIEdCMTgwMzAgbmFtZWQgY2xhc3MsIEVjbGlwc2UgZm9yIE1vdGlmIGNyYXNoZWQgd2hlbiBleGl0aW5nLiAgCjxicj4zMjM2MDogRW1iZWRkZWQgZGlzcGxheSBub3Qgd2FraW5nIG9uIG5ldyBQaG90b24gZXZlbnRzIChCQkFXVCkgIAo8YnI+MzMwMjI6IE5QRSBpbiBGb250RGlhbG9nICAKPGJyPjMzMDMwOiBBcmd1bWVudHMgdGFiICdzaG93cyB0aHJvdWdoJyBNYWluIHRhYiBvbiBPUyBYICAKPGJyPjMzMDYzOiBbSlVOSVRdIENhcmV0LnNldEZvbnQgIAo8YnI+MzMxMTk6IG51bGxwb2ludGVyIGRpc3Bvc2UgdGFibGUgY29sdW1uICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMzAgLSBUdWVzZGF5IEZlYnJ1YXJ5IDE4LCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxNzA1NzogT3V0bGluZXI6IGZvY3VzIGNhdXNlcyBzZWxlY3QgY2F1c2VzIGhvcml6b250YWwgc2Nyb2xsICAKPGJyPjIxNDY5OiBBY2Nlc3NpYmlsaXR5IC0gVGFiYmluZyBjYXVzZXMgYSBidXR0b24gdG8gYmVjb21lIHRoZSBkZWZhdWx0Cjxicj4yMjc2NzogdG9vbGJhciBsb29rcyB2ZXJ5IHVnbHkgd2l0aCBXaW4gWFAncyBsbmYgKHVzaW5nIG1hbmlmZXN0IGZpbGUpCjxicj4yMzM3MDogQ0xhYmVsIG5lZWRzIHRvIGFsbG93IHRyYW5zcGFyZW50IGJhY2tncm91bmQgZm9yIE1hYyBPUyBYICAKPGJyPjI4ODMxOiBEaXNwbGF5cyBsaWdhdHVyZSBmb3IgZmkgJiBmbCAgCjxicj4yOTEwMDogTW91c2Ugd2hlZWwgc2Nyb2xsaW5nIG5vdCB3b3JraW5nIGluIGVkaXRvcnMgIAo8YnI+Mjk4Nzk6IEhBTkcgLSBndGtfbWFpbl9pdGVyYXRpb24gLSBFY2xpcHNlIEZyZWV6ZXMgbW92aW5nIGJldHdlZW4gcGVyc3BlY3RpdmVzCjxicj4zMDA1NTogREJDUzogZm9udCByZW5kZXJpbmcgcXVhbGl0eSBpc3N1ZSBvbiBtb3RpZiAgCjxicj4zMDU3MDogREJDUyAtIEdCMTgwMzA6IElucHV0IEdCMTgwMzAgY2hhcmFjdGVycyBhcyBydW4gYXJndW1lbnRzIGNhdXNlIGVjbGlwc2UgZm9yIG1vdGlmIGNyYXNoCjxicj4zMTU2ODogVGFibGVMYXlvdXRDb21wb3NpdGUgYW5kIFRhYmxlLnNob3dJdGVtIGRvbid0IG1peCAgCjxicj4zMTY4NjogV3JvbmcgbWFyZ2luIGNvcnJlY3Rpb24gaW4gd2lkZ2V0cy5UZXh0LmNvbXB1dGVTaXplKGludCwgaW50LCBib29sZWFuKQo8YnI+MzE4MjM6IENsaWNraW5nIG9uIHBhcnRpYWxseSBvYnNjdXJlZCB0YWIgc2hvdWxkIHNjcm9sbCBpdCBpbnRvIHZpZXcKPGJyPjMxODU1OiBbRWRpdG9yIE1nbXRdIENsb3NlIGJ1dHRvbnMgaW4gZWRpdG9yIGdldCBjdXQgb2ZmICAKPGJyPjMxODgwOiBMYXlvdXQgYnVnIGluIGNvbW1pdCBtZW51ICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMjkgLSBUaHVyc2RheSBGZWJydWFyeSAxMywgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjIzMDogSW1hZ2VMb2FkZXI6IDMyLWJpdCBjb2xvdXIgZGVwdGggdW5zdXBwb3J0ZWQgIAo8YnI+MjM0NzI6IFhsaWI6IHVuZXhwZWN0ZWQgYXN5bmMgcmVwbHkgKHNlcXVlbmNlIDB4OTIyZDIpISAgCjxicj4yMzg0MjogImJhbmRlZCIgZGVmYXVsdCBiYWNrZ3JvdW5kIGxvb2sgc2hvd3MgdGhyb3VnaCB3aGVyZSBpdCBzaG91bGRuJ3QKPGJyPjI1NDQ2OiBUcmVlIFNoaWZ0LUNsaWNrIG5vdCB3b3JraW5nIHdoZW4gaXRlbSBjb2xsYXBzZSBjaGFuZ2VzIHNlbGVjdGlvbgo8YnI+MjYzODE6IE9wZW5UeXBlOiBLZXkgTmF2aWdhdGlvbiAgCjxicj4yOTQ1NjogR1AgLSBYbURTSUdldENoaWxkUG9zaXRpb24gLSBQcm9ibGVtIGluIFNodXRkb3duICAKPGJyPjI5NjA3OiBbQ2VsbCBFZGl0b3JzXSB1c2FiaWxpdHk6IENvbWJvQm94Q2VsbEVkaXRvciB1bnVzYWJsZSBvbiBHVEsgIAo8YnI+MzEwMDk6IEFDQyAtIEkyMDAzMDIwNSBhY2NlbGVyYXRvcnMgaXNzdWVzICAKPGJyPjMxMDE3OiBIQU5HIC0gSGFuZyBvbiBpbXBvcnQgZXh0ZXJuYWwgcGx1Z2lucyAgCjxicj4zMTI2NzogTGFiZWwgYW5kIHRleHQgYm94IGdldCB0aGUgd3Jvbmcgb3JkZXIgIAo8YnI+MzE0NDg6IEJJREkgLSBCaWRpIGVuYWJsZW1lbnQgZm9yIFN0eWxlZFRleHQgLSBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gd2hlbiBoaWdobGlnaHRpbmcgYSBibGFuayBsaW5lCjxicj4zMTUxMzogQ1RhYkZvbGRlcidzIGNsb3NlIGJveCBoaWdobGlnaHQgZ2V0cyBjbGlwcGVkIGF0IGJvdHRvbSAgCjxicj4zMTU2NjogRm9udERhdGEgImVxdWFscygpIiBhbmQgImhhc2hjb2RlKCkiIG1ldGhvZHMgZG8gbm90IGNvbnNpZGVyIGhlaWdodCBvZiB0aGUgdGhlIGZvbnRkYXRhCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDI4IC0gVGh1cnNkYXkgRmVicnVhcnkgNiwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjMyNjI6IFdlYkJyb3dzZXIgY3Jhc2hlcyB3aGVuIHZpZXdpbmcgU2hvY2t3YXZlICAKPGJyPjI1NzM2OiBNZW1vcnkgbGVhayB3aGlsZSB1c2luZyBPTEUgYXV0b21hdGlvbiAgCjxicj4yOTI2NTogQ29udHJvbC5zZXRFbmFibGVkKCkgbm90IGltcGxlbWVudGVkIHByb3Blcmx5IG9uIEdUSyAgCjxicj4yOTU5MzogQ29udGV4dHVhbCBtZW51IHRvbyBzaG9ydCBuZWFyIGJvdHRvbSBvZiBtZW51ICAKPGJyPjI5OTMxOiBNb3VzZSBjbGlja3MgYXJlIHVucmVsaWFibGUgIAo8YnI+MzA0MDM6IENUYWJJdGVtIGNsb3NlIGJveCBzaGlmdHMgYnkgMiBwaXhlbHMgd2hlbiB0YWIgc2VsZWN0ZWQgIAo8YnI+MzA0NDM6IE1lbnViYXIgb2YgU1dUIHN0YW5kYWxvbmUgYXBwbGljYXRpb25zIGlzIGVtcHR5ICAKPGJyPjMwOTQ1OiBDaGFuZ2UgaW4gbW91c2UgY2xpY2tpbmcgYmVoYXZpb3VyIG1ha2VzIEZhc3RWaWV3cyB1bnVzYWJsZSAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDI3IC0gV2VkbmVzZGF5IEZlYnJ1YXJ5IDUsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjIwNzU1OiBUVlQyOiAgdHJ1bmNhdGVkIHRleHQgaW4gZHJvcGRvd24gZm9yIERlcGVuZGVuY2llcyB0YWIgaW4gbWFuaWZlc3QgZWRpdG9yCjxicj4yMjc1OTogSW5wdXQgbWV0aG9kIGRvZXMgbm90IHdvcmsgb24gR1RLL0dUSzIgIAo8YnI+MjcxODA6IFVuYWJsZSB0byBjb3B5IGFuZCBwYXN0ZSBpbiBlZGl0aW5nIGphdmEgZmlsZSAgCjxicj4yNzE4MzogTW91c2UgZHJhZyBzZWxlY3QgcHJvZHVjZXMgY3Jhc2ggIAo8YnI+Mjg0MTk6IENyYXNoIHdoZW4gY2xvc2luZyBzaGVsbHMgIAo8YnI+Mjk3Nzc6IERCQ1M6IENhbid0IGRyYWcgYSBmaWxlIGludG8gUnVuLXRpbWUgd29ya2JlbmNoICAKPGJyPjMwMjEyOiBSZWFkIG9ubHkgdGV4dCB3aWRnZXQgOiBjYW4ndCBjb3B5IHNlbGVjdGlvbiAgCjxicj4zMDQwMTogU1dUIHN0YW5kYWxvbmUgZXhhbXBsZXMgY2FuJ3QgY29tZSB0byBmb3JlZ3JvdW5kICAKPGJyPjMwNDUyOiBNb3VzZSBnZXRzIHdhcnBlZCB0byB1cHBlciBsZWZ0IGNvcm5lciBvZiB3b3JrYmVuY2ggd2luZG93IG9uIGFjdGlvbnMKPGJyPjMwNTAwOiAicm9hbWluZyIgZm9jdXMgIAo8YnI+MzA1Mzc6IHNldFNlbGVjdGlvbihhbGxJdGVtcykgbm90IHdvcmtpbmcgb24gR1RLICAKPC9ibG9ja3F1b3RlPgoKCgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAyNiAtIFR1ZXNkYXkgSmFudWFyeSAyOCwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTQ4MTQ6IEJ1dHRvbiBtbmVtb25pY3MgYXJlIG5vdCBzaG93biBwcm9wZXJseSBvbiBXaW5kb3dzIFhQICAKPGJyPjI0MzMzOiBEQ1IgLSBUcmVlLmdldFRvcEl0ZW0vc2V0VG9wSXRlbSAgCjxicj4yNDQ4OTogVGFiIGNhbm5vdCBnZXQgZm9jdXMgd2hlbiBjaGlsZC1jb21wb3NpdGUgaGFzIHNjcm9sbGJhciAgCjxicj4yNDgxNTogQ2Fubm90IGxhdW5jaCBlY2xpcHNlOiBqYXZhY29yZSBkdW1wICAKPGJyPjI5MTQyOiBIeXBlcmxpbmtpbmcgZnJvbSBzdGFja2R1bXAgbG9ja3MgdXAgRWNsaXBzZSAgCjxicj4yOTE5MTogVHJlZSAtIG5vIGdyYXkgY2hlY2sgYm94ZXMgb24gTUFDIChjYXJib24yKSAgCjxicj4yOTQyNjogREJDUzpDb3B5L1Bhc3RlIERCQ1MgZmFpbGVkIGJldHdlZW4gZWNsaXBzZSBhbmQgZ2VkaXQgIAo8YnI+Mjk0Mjg6IERCQ1M6IFBhc3RlZCBzdHJpbmcgY2FuJ3QgYmUgc2hvd24gY29ycmVjdGx5IGluIFNlYXJjaCBkaWFsb2cKPGJyPjI5OTEwOiBDaGVja2JveCBub3QgZGlzcGxheWVkIHVudGlsIHRhYmxlIHNjcm9sbGVkICAKPGJyPjI5OTY2OiBObyBtb3JlIGhhbmRsZXMgb24gc3RhcnR1cCAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDI1IC0gVHVlc2RheSBKYW51YXJ5IDIxLCAyMDAzIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyNTAzMDogKEJCQVdUKSBJbWFnZSBBbmFseXplciBmYWlscyB0byBsb2FkIGEgLnBuZyBmaWxlICAKPGJyPjI1MzU5OiBSdW50aW1lRXhjZXB0aW9ucyB0aHJvd24gZnJvbSBPbGVMaXN0ZW5lci5oYW5kbGVFdmVudCBjcmFzaCBWTQo8YnI+MjcwOTk6IFN0eWxlZFRleHQgLSBDaGFuZ2UgQ1RSTCBrZXkgYmluZGluZ3MgdG8gTU9EMSAgCjxicj4yNzM2OTogTm8gbW9yZSBoYW5kbGVzIGVycm9yICAKPGJyPjI3ODIyOiBQYWNrYWdlIEV4cGxvcmVyIGFsbHdheXMgY2VudGVycyBvcGVuZWQgZmlsZSAgCjxicj4yODA2MjogVGV4dCBmaWVsZCBpbiBkaWFsb2cgZG9lc24ndCBnZXQgZm9jdXMgIAo8YnI+Mjg3NDM6IFRyeWluZyB0byBzZWUgdGVzdCBoaWVhcmNoeSBmcmVlemVzIGVjbGlwc2UgW0pVbml0XSAgCjxicj4yODc0NTogRXNjIGRvZXMgbm90IGNhbmNlbCB0cmFja2VyICAKPGJyPjI4OTY3OiBbRWRpdG9yIE1nbXRdIG5vIGNsb3NlIGJ1dHRvbiBvbiBsYXN0IGVkaXRvciB3aGVuIGVkaXRvcnMgZHJvcC1kb3duIGlzIGFjdGl2ZQo8YnI+Mjk0Mjc6IERCQ1M6IENhbid0IGlucHV0IERCQ1MgY2hhcmFjdGVycyBpbiBTZWFyY2ggZGlhbG9nICAKPGJyPjI5NDk2OiBDdXQgJiBwYXN0ZSBkb2VzIG5vdCB3b3JrIGluIGRpYWxvZyB0ZXh0IGZpZWxkcyAgCjxicj4yOTUwMzogREJDUzpDYW4ndCBzb3J0IGJ5IGNsaWNraW5nICJEZXNjcmlwdGlvbiIgb24gIlRhc2sgVmlldyIgIAo8YnI+Mjk1OTk6IERCQ1M6IHVwcGVyIGJhciBjaGFyYWN0ZXIgd2lsbCBiZSBwYWRkZWQgIAo8YnI+Mjk2MDg6IERCQ1M6IFNlbGVjdGVkIERCQ1MgQ2xhc3NwYXRoIGNhbid0IGJlIHNob3duICAKPGJyPjI5NjExOiBEQkNTOkNhbiBub3QgaW5wdXQgSGFuZ3VsKEtvcmVhIGZvbnQpICAKPGJyPjI5NjEyOiBEQkNTOkJyb3dzZSBmdW5jdGlvbiBvZiAiRXhwb3J0IiBkb2Vzbid0IHdvcmsgIAo8YnI+Mjk2MTQ6IERCQ1M6IFVuYWJsZSB0byBnZXQgIkltcG9ydCIgY29udGVudHMgbG9jYXRpb24gd2l0aCAiQnJvd3NlIiBidXR0b24KPGJyPjI5NjY0OiBTV1QgU3R5bGVkIFRleHQgV3JhcHBpbmcgRG9lc24ndCBVc2UgRm9udCBTaXplIENvcnJlY3RseSAgCjxicj4yOTY4NTogREJDUzogQ2FuZGlkYXRlIFNlbGVjdGlvbiBXaW5kb3cgd2lsbCBiZSBkaXNhcHBlYXJlZCBhdCBEQkNTIGNvbXBvc2l0aW9uCjxicj4yOTczMDogUm93TGF5b3V0LmNvbXB1dGVTaXplIHByb3ZpZGVzIHdyb25nIHBhcmFtZXRlciB0byBsYXlvdXRWZXJ0aWNhbAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAyNCAtIFR1ZXNkYXkgSmFudWFyeSAxNCwgMjAwMyA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjEwNjM6IENhbid0IGRyb3Agdmlld3Mgb3ZlciBzb21lIHdpZGdldHMgIAo8YnI+MjE1NjE6IEtleWJvYXJkIG5hdmlnYXRpb24gaW4gdHJlZSB3aWRnZXRzIG9uIExpbnV4ICAKPGJyPjI1NjE5OiBPbGVDb250cm9sU2l0ZSBldmVudCBsaXN0ZW5lciBwcm9ibGVtICAKPGJyPjI1ODQzOiBJbmZvIHBvcHMgZG8gbm90IHdvcmsgZm9yIFJlZCBIYXQgOC4wLgo8YnI+Mjc2Nzc6IFtLZXkgQmluZGluZ3NdIGN0cmwtZjcgbm90IHdvcmtpbmcgIAo8YnI+Mjg4Nzk6IFtOYXZpZ2F0b3JdIHJpZ2h0LWNsaWNraW5nIGEgZmlsZSBkb2Vzbid0IGFsbG93IG1lIHRvIG9wZW4gaXQKPGJyPjI5MjA4OiBHdGsgZGlyZWN0b3J5IGRpYWxvZyBiZWhhdmVzIGxpa2UgYSBmaWxlIGRpYWxvZyAgCjxicj4yOTI1MjogQWNjZWxlcmF0b3JzIGFyZSBub3QgZGlzYWJsZWQgd2hlbiB0aGUgdG9vbGJhcnMgYW5kIG1lbnVzIGFyZSBvbiBHVEsKPGJyPjI5MzAyOiBTbGlkZXIgYW5kIFNjcm9sbGJhciBoYW5kbGUgbWFueSBib3VuZGFyeSBjYXNlcyB3cm9uZyBpbiBzZXQqIG1ldGhvZHMKPGJyPjI5MzM0OiBNYWtlIGphdmFkb2MgYXZhaWxhYmxlIGZvciBkb3dubG9hZCAgCjxicj4yOTQwODogSW52b2tpbmcgTGlzdC5zZWxlY3QoKikgYmVmb3JlIG9wZW4oKSBkb2VzIG5vdCBzZWxlY3QgY29ycmVjdCBpdGVtCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDIzIC0gVHVlc2RheSBKYW51YXJ5IDcsIDIwMDMgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjI0MjgzOiBEZWZhdWx0IGJ1dHRvbiBpbiB0aGUgZGlhbG9nIGdldCB0aGUgZW50ZXIgd2hlbiB0eXBpbmcgaW4gamFwYW5lc2UKPGJyPjI1NDg2OiBFY2xpcHNlIGZhaWxzIHdpdGggJ25vIGZyZWUgY2FsbGJhY2sgc2xvdCcgIAo8YnI+MjYwNTc6IFN0eWxlZFRleHQgLSBjbGVhbnVwIHBhc3NpbmcgYXJvdW5kIG9mIGZvbnRkYXRhICAKPGJyPjI2MDc5OiBVc2UgUGZMb2FkTWV0cmljcygpIHRvIHNwZWVkIHVwIHRleHQgZXh0ZW50aW5nCjxicj4yNzg2OTogU3R5bGVkVGV4dCBvdmVydXNlIG9mIEZvbnQuZ2V0Rm9udERhdGEgIAo8YnI+MjgyODY6IEJCQVdUOiBJbmNvcnJlY3QgcGFsZXR0ZS9jb2xvciByZXR1cm5lZCBvbiAzMi1iaXQgdHJ1ZSBjb2xvciBkaXNwbGF5Cjxicj4yODM4MjogRXh0cmEgc2VwYXJhdG9yIGxpbmUgZHJhd24gaW4gZW11bGF0ZWQgQ29vbEJhciAgCjxicj4yODQ5ODogSGVscCBtZW51IGlzIGNvbmZ1c2VkICAKPGJyPjI4NjA3OiBQcm9ncmVzcyBiYXIgZG9lc24ndCBmaW5pc2ggaW4gUERFIGltcG9ydCB3aXphcmQgIAo8YnI+Mjg2NTg6IE5vIGNvbnRleHQgbWVudSBpbiBwZXJzcGVjdGl2ZSBiYXIgIAo8YnI+Mjg2ODM6IEN0cmwtQ2xpY2sgaW4gVHJlZVZpZXcgbG9zZXMgc2VsZWN0aW9uICAKPGJyPjI4NzAxOiBNZXRob2QgImFzc2VydCIgZGVjbGFyZWQgaW4gb3JnLmVjbGlwc2Uuc3d0LnRlc3RzLmp1bml0LlN0eWxlZFRleHRDb250ZW50U3BlYwo8YnI+Mjg3MTk6IFNjcm9sbGluZyBpbiBXZWxjb21lIGVkaXRvciBpcyBub3QgJ2xpdmUnICAKPGJyPjI4ODEyOiBNb3VzZSBjdXJzb3IgY2hhbmdlcyB0byBhcnJvdyBhZnRlciBob3ZlcmluZyBhIGh5cGVybGlua2VkIGluZGVudGlmaWVyCjxicj4yODgzMzogRWNsaXBzZSBubyBsb25nZXIgcmVzcG9uZHMgdG8gJ1F1aXQnIEFwcGxlRXZlbnQgIAo8YnI+Mjg4MzU6IEN1cnNvciBkb2Vzbid0IGNoYW5nZSB0byBhcnJvdyBzaGFwZSB3aGVuIG92ZXIgdGV4dCBzY3JvbGxiYXJzCjxicj4yODk5MTogVGFiRm9sZGVyLmNvbXB1dGVTaXplIGlzIGdyb3dzIGVhY2ggdGltZSBpcyBpdCBjYWxsZWQgIAo8YnI+MjkwMTc6IFNjcm9sbGVkQ29tcG9zaXRlIGFsd2F5cyBtYWtlcyBpdCdzIGNvbnRlbnQgIGJpZ2dlciBvbiByZXNpemUKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMjIgLSBUdWVzZGF5IERlY2VtYmVyIDE3LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyMTQwOTogSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIHdoZW4gZWRpdGluZyBKYXZhIHNvdXJjZSAgCjxicj4yMTk5MzogQ2FuJ3QgY2hhbmdlIGZvbnQgc2l6ZXMgIAo8YnI+MjIzMDU6IExhdW5jaCBjb25maWd1cmF0aW9uIHBhbmUgZ2V0cyB2aXN1YWxseSBtZXNzZWQgdXAgYW5kIHJlZi4uLiAgCjxicj4yMzgzMDogT3V0LW9mLWJveCBleHBlcmllbmNlIHdpdGggdGhlIE1hYy4gIAo8YnI+MjM4NDM6IENoZXZyb25zIHNob3cgdXAgaW4gZGVmYXVsdCBsYXlvdXQgb2YgSmF2YSBwZXJzcGVjdGl2ZSAgCjxicj4yMzg0NDogTGFiZWwgZG9lc24ndCB3cmFwIHRleHQgaW5pdGlhbGxseSAgCjxicj4yMzg1MDogTWlzc2luZyBzY3JvbGxiYXIgaW4gTGlzdCAgCjxicj4yNDQzNzogS2V5TGlzdGVuZXJzIGRvbid0IGdldCBjYWxsZWQgIAo8YnI+MjYzMjI6IE5QRSBpbiBGb250IERpYWxvZyAgCjxicj4yNjMzMTogV3JhcHBlZCBMYWJlbHMgLSBzZWNvbmQgbGluZSBjdXQgb2ZmICAKPGJyPjI2NTg3OiBOYXZpZ2F0ZSAtPiBHbyBUbyBUeXBlIGdvZXMgdG8gd3Jvbmcgc2hlbGwgb24gTWFjICAKPGJyPjI3OTk3OiBDb2xvciBkaWFsb2cgY3Jhc2hlcyBFY2xpcHNlICAKPGJyPjI4Mjg4OiBbRWRpdG9yIE1nbXRdIEVkaXRvciBwYW5lIG91dCBvZiBzeW5jIHdpdGggdmlld3MgYW5kIHRhYnMgIAo8YnI+MjgzNjE6IFRvb2xJdGVtIGxlYWtzIEltYWdlcyAoPykgIAo8YnI+Mjg1MjQ6IEluY29uc2lzdGVudCBiZWhhdmlvdXIgb2YgdGFiIGluIHBhc3N3b3JkIGZpZWxkcyAgCjwvYmxvY2txdW90ZT4KCgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMjEgLSBGcmlkYXkgRGVjZW1iZXIgMTMsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjI3NTI2OiBDb2xvciBzZWxlY3Rpb24gZGlhbG9nIHRha2VzIGEgbG9uZyB0aW1lIHRvIGRpc3BsYXkgaW4gOC1iaXQgbW9kZQo8YnI+Mjc4NjI6IFRyZWUuc2V0U2VsZWN0aW9uKCkgdGFrZXMgPiAxIHNlY29uZCAgCjxicj4yODAzNTogRGlmZmVyZW50IGNhbGxiYWNrIGJlaGF2aW9yIG9uIFdpbmRvd3MgYW5kIE1hYyB3aXRoIENvbWJvIHdpZGdldAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAyMCAtIFR1ZXNkYXkgRGVjZW1iZXIgMTAsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjI0MTEyOiBLZXlib2FyZCBzaG9ydGN1dHMgZGVmaW5lZCBhcyBDdHJsLVNoaWZ0LXggZG9uJ3Qgd29yayAgCjxicj4yNDQzNjogRW50ZXJpbmcgQXN0ZXJpc2sgY3Jhc2hlcyBFY2xpcHNlICAKPGJyPjI2NTA2OiBJbXBvcnRpbmcgRXh0ZXJuYWwgUGx1Zy1pbnMgaXMgc2xvdyAgCjxicj4yNzAzMTogZW5fVVMuVVRGLTggbG9jYWxlIG5vdCBzdXBwb3J0ZWQgb24gTW90aWYgIAo8YnI+Mjc0MTA6IFtTV1QgRXhhbXBsZXNdIEFycm93IGJ1dHRvbnMgd29uJ3QgcmVzaXplIGZvciAxMHgxMCw1MHg1MCwxMDB4MTAwCjxicj4yNzQyMjogW1NXVCBFeGFtcGxlc10gUHJvZ3Jlc3MgYmFyIHJldmVydHMgdG8gJ2JsYWNrJyBjb2xvciBhZnRlciBTZWxlY3Rpb24gc2xpZGVyIHJlcG9zaXRpb25pbmcKPGJyPjI3NTAxOiBTZWxlY3Rpb24gbm90IGNvcnJlY3RseSB1cGRhdGVkIG9uIHJpZ2h0IGNsaWNrIG9uIGEgdHJlZSAgCjxicj4yNzUyNDogW1NXVCBFeGFtcGxlc10gVGFibGUgaXRlbSBmb3JlZ3JvdW5kIGNvbG9yIGNoYW5nZXMgZmFpbCBhZnRlciBmaXJzdCBhdHRlbXB0Cjxicj4yNzY0NDogRGlzbWlzc2luZyBvcGVuIHR5cGUgZGlhbG9nIHdpdGggRXNjYXBlIGNyYXNoZXMgRWNsaXBzZSAgCjxicj4yNzcwNDogUmVtb3ZlIGNzaCBidWlsZCBkZXBlbmRlbmN5ICAKPGJyPjI3NzEwOiBFbnRyeSBwb2ludCBub3QgZm91bmQgU2V0TGF5b3V0IGluIEdESTMyICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMTkgLSBUdWVzZGF5IERlY2VtYmVyIDMsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE5MDgwOiBDaGFmZiBpbiB0YWJsZSB0cmVlIG9mIHByb3BlcnR5IHNoZWV0ICAKPGJyPjIwMzE4OiBbU3R5bGVkVGV4dF0gcHJpbnQgc2VsZWN0aW9uIHByaW50cyB3aG9sZSBwYWdlIChhdCBsZWFzdCBpbiA8PWYyKQo8YnI+MjY1NjM6IENyYXNoIGluIENhcmJvbiBuYXRpdmUgQ29weU1hc2sgIAo8YnI+MjY3MzE6IEF0dGVtcHRpbmcgdG8gY3JlYXRlIGEgdmlldyBwbHVnLWluIHByb2plY3QgY3Jhc2hlcyAgCjxicj4yNzE4MTogU2xlYWsgLSBpbnN0cnVtZW50YXRpb24gbm90IGRvbmUgb24gR1RLIGFuZCBNb3RpZiAgCjxicj4yNzMwNTogRUM6IENMYWJlbCBrZWVwcyBiYWNrZ3JvdW5kIGNvbG91ciBhZnRlciBncmFkaWVudCBpcyB1c2VkICAKPGJyPjI3NDExOiBbU1dUIEV4YW1wbGVzXSBTV1QuRkxBVCBoYXMgbm8gZWZmZWN0IGZvciBidXR0b25zICAKPGJyPjI3NDQyOiBNb3VzZSBjbGljayBvdXRzaWRlIGhvcml6b250YWwgc2Nyb2xsIGJhciBkb2VzIG5vdGhpbmcgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAxOCAtIFR1ZXNkYXkgTm92ZW1iZXIgMjYsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE1MDMxOiBGb250IHBhcnNpbmcgZmFpbGVkICAKPGJyPjE3MjM3OiBQcm9ncmVzcyBtb25pdG9yIGZsaWNrZXJzICAKPGJyPjE4MTcyOiBTaWcxMSBmcm9tIEdUSyAgCjxicj4xOTUzMDogU2F2aW5nIGxvY2tzIHJlc2l6aW5nIGluIHNlY29uZCBwZXJzcGVjdGl2ZSAgCjxicj4xOTczNTogTm8gc3BhY2UgYmV0d2VlbiBsb25nZXN0IGl0ZW0gaW4gbWVudSBhbmQgYWNjZWwga2V5cyAgCjxicj4yMDk1MzogU3R5bGVkVGV4dCAtIHRpbGRlIHByb2JsZW0gd2l0aCBmcmVuY2gga2V5Ym9hcmQgKDIwMDAsTlQsWFApIG9uIFIyLjAKPGJyPjIxNjI2OiBUYWJsZUl0ZW0uZ2V0SW1hZ2VCb3VuZHMgZmFpbHMgb24gTW90aWYgKEVtdWxhdGVkIFdpZGdldCkgIAo8YnI+MjQ4NzI6IFNwbGFzaCBzY3JlZW4gZG9lcyBub3Qgc2hvdyBhdCBzdGFydHVwICAKPGJyPjI0OTY5OiBKUCBHUDogc2hvd2luZyBKYXZhLUVkaXRvciBwcmVmLiBwYWdlIHdpdGggZWRpdG9yIG9wZW4gIAo8YnI+MjUwNTM6IENhbm5vdCB1c2UgdGhlIHB1bGwgZG93biBtZW51IGluIEdUSyAgCjxicj4yNTMzNTogU2Nyb2xsYmFycyB0b28gc21hbGwgb24gdmFyaWFibGUgc2VsZWN0aW9uIGRpYWxvZyAgCjxicj4yNTY1MzogRENSOiBTdHlsZWRUZXh0IGRvIG5vdCBhY3RpdmF0ZSB0aGUgZGVmYXVsdCBidXR0b24gIAo8YnI+MjYxNzk6IENhbid0IHNlbGVjdCBpdGVtcyBpbiBhIGNoZWNrYm94IHRyZWUgd2l0aG91dCB0b2dnbGluZyBjaGVja2VkIHN0YXRlCjxicj4yNjM1MzogSW5mb3BvcCBicm9rZW4gb24gc29sYXJpcyAgCjxicj4yNjM2MjogU3R5bGVkVGV4dCAtIGludmVzdGlnYXRlIG5lY2Vzc2FyeSBzdGF0ZSBjaGFuZ2VzIGJldHdlZW4gaGFuZGxlVGV4dENoYW5naW5nIGFuZCBoYW5kbGVUZXh0Q2hhbmdlZAo8YnI+MjY3MzM6IEVjbGlwc2UgY3Jhc2hlcyB3aGVuIEdUSyB0aGVtZSBpcyBjaGFuZ2VkICAKPGJyPjI2ODA0OiBHdGsgTGFiZWwgd2lkZ2V0IGhhcyBmb2N1cyBkZWNvcmF0aW9uIGRyYXduIHRvbyBiaWcgIAo8YnI+MjY5MzU6IEV4Y2VwdGlvbiBpbiBTdHlsZWRUZXh0IHdpdGggV1JBUCBmbGFnLiAgCjxicj4yNjk5NzogU3R5bGVkVGV4dFJlbmRlcmVyOiBjcmVhdGVzIHRvbyBtYW55IFN0cmluZ3MgIAo8YnI+MjcwMTY6IERlZmF1bHQgIk9wZW4iIGFjdGlvbiBub3Qgd29ya2luZyBpbiBOYXZpZ2F0b3IgdHJlZSB2aWV3CjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDE3IC0gVHVlc2RheSBOb3ZlbWJlciAxOSwgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjEyNTE6IENyYXNoIGluIG9yZy5lY2xpcHNlLnN3dC5pbnRlcm5hbC5ndGsuT1MucGFuZ29fbGF5b3V0X3NldF9mb250X2Rlc2NyaXB0aW9uCjxicj4yNDgzNTogR1RLOiBNdWx0aXBsZSBzZWxlY3Rpb24gYW5kIHJpZ2h0IGNsaWNrIGluIHRyZWUgIAo8YnI+MjU3NDE6IFN0eWxlZFRleHQgZG9lcyBub3Qgc2V0IHRoZSBiYWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9yIGluIHRoZSBPUwo8YnI+MjU4MDM6IFN0eWxlZFRleHQgc2hvdWxkIHVzZSBuZXcgRm9udCBBUEkgIAo8YnI+MjYwMDQ6IFJlbW92aW5nIGEgVGV4dCBmaWVsZCBsZWF2ZXMgYmVoaW5kIGNydWQgIAo8YnI+MjYwMDg6IFtTdHlsZWRUZXh0XSBzZXRUb3BQaXhlbCBsaW1pdHMgYXJndW1lbnQgdG8gbG9naWNhbCBsaW5lIGNvdW50Cjxicj4yNjEyMTogQ2Fubm90IGxhdW5jaCBlY2xpcHNlICMyOiBqYXZhY29yZSBkdW1wICAKPGJyPjI2MTUxOiBTV1Qgd2lkZ2V0IG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLlNhc2ggaXMgbm90IHByb3Blcmx5IGNvbnN0cmFpbmVkIHdoZW4gaW4gSE9SSVpPTlRBTCBtb2RlCjxicj4yNjI1ODogQWNjZW50ZWQgY2hhcmFjdGVycyBidWcgaW4gZWRpdG9ycyByZWludmVudGVkICAKPGJyPjI2MzY3OiBOUEUgd2hlbiBkZWJ1Z2dpbmcgYXMgamF2YSBhcHBsaWNhdGlvbiAgCjxicj4yNjQxNDogQWNjZWxlcmF0b3JzIGRvbid0IHdvcmsgb24gYWl4ICAKPGJyPjI2NDE5OiBTdHlsZWRUZXh0IC0gcHJpbnQgcGFnZXMgY2F1c2VzIHdhbGtiYWNrICAKPGJyPjI2NDIxOiBMaXN0IGhhbmdzIG9uIEdUSyAgCjxicj4yNjQzNDogUHJpbnRlckRhdGEgc3RhcnRQYWdlL2VuZFBhZ2UgaW52YWxpZCB3aGVuIHBhZ2UgPjMyNzY3ICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMTYgLSBUdWVzZGF5IE5vdmVtYmVyIDEyLCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyMzkzNTogVGV4dCB3aWRnZXQgd2l0aCBUcmVlIHBhcmVudCBkb2VzIG5vdCBsb3NlIGZvY3VzICAKPGJyPjIzOTk3OiBUcmFja2VyIG1vdmVzIG1vdXNlIGN1cnNvciAgCjxicj4yNDQ5MzogQ2FudCB0eXBlIGJyYWNlcyBpbiBqYXZhIGVkaXRvciB3aXRoIGl0YWxpYW4ga2V5Ym9hcmQgaW4gMi4xbTEKPGJyPjI1NzMyOiBNTEVBSzogUmVzaXplIGVjbGlwc2UsIHVzdWFsbHkgNEsgYWxsb2NhdGVkICAKPGJyPjI1Nzc1OiBDb21ibyBkb2Vzbid0IGdldCByZXN0b3JlZCBhZnRlciBtaW5pbWl6ZS9yZXN0b3JlICAKPGJyPjI1NzgxOiBTb21lIGNoYW5nZSBicm9rZSBjb21wYXJlIHdpdGggcGF0Y2ggIAo8YnI+MjU3OTc6IEdUSzogU2VsZWN0aW9uIEluZGV4IG5vdCBwcmVzZXJ2ZWQgYWZ0ZXIgQ29tYm8gaXRlbSByZW1vdmFsICAKPGJyPjI1OTg2OiBObyBzb3VyY2UgZm9yIFNXVCBwbHVnaW4gaW1wb3J0ZWQgYXMgYmluYXJ5ICAKPGJyPjI1OTg5OiBSYWRpb24gYnV0dG9ucyBhcmUgbm90IG11dHVhbGx5IGV4Y2x1c2l2ZSBpbiBzYW1lIGNvbXBvc2l0ZSAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDE1IC0gVHVlc2RheSBOb3ZlbWJlciA1LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NjA3OiBNaXNzaW5nIEFQSSBmb3IgRm9udChEaXNwbGF5IGRpc3BsYXksIEZvbnREYXRhIGZkW10pICgxRzkzVFBNKQo8YnI+MTQ5NTY6IFN0eWxlZFRleHQgLSBwcmludGluZyBzaG91bGQgc3VwcG9ydCBwYWdpbmF0aW9uLCBoZWFkZXJzLCBhbmQgZm9vdGVycwo8YnI+MjE2OTU6IENyYXNoIHdoZW4gc3RhcnRpbmcgZWNsaXBzZSBvbiBTb2xhcmlzOCB3aXRoIGphdmEgMS40ICAKPGJyPjIyMDUyOiBMYXVuY2ggY29uZmlndXJhdGlvbiBkaWFsb2cgbG9zZXMgd29ya3NwYWNlIGRhdGEgZGlyICAKPGJyPjIzMDQ5OiBDYW5ub3Qgd3JpdGUgU3dlZGlzaCBjaGFyYWN0ZXJzICg/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8pIGluIGVkaXRvciAgCjxicj4yNDI3MzogR1AgLVRyZWUgcmVtb3ZlQWxsIHJlYm9vdCB3aW5kb3dzWHAgIAo8YnI+MjQzNTk6IE1lbnVJdGVtcyB3aXRoIHN0eWxlIFNXVC5SQURJTyBzaG91bGQgaGFuZGxlIG11dHVhbCBleGNsdXNpb24gb24gc2VsZWN0aW9uCjxicj4yNDc1NzogR1RLOiBYIHBvaW50ZXIgZ3JhYiB3aGVuIHJlc2l6aW5nIGEgdGFibGUgY29sdW1uICAKPGJyPjI1MjEyOiBHUEYgc3luY2hyb25pemluZyBmaWxlcyB3aXRoIG5ldyBUcmVlIGltcGxlbWVudGF0aW9uICAKPGJyPjI1MjUzOiBQcmVmZXJlbmNlIGRpYWxvZyBkb2Vzbid0IGRpc3BsYXkgbGFzdCBwcmVmZXJlbmNlIHBhZ2UgIAo8YnI+MjUzOTk6IERyYWcgYW5kIGRyb3AgY3Jhc2hlcyBFY2xpcHNlICAKPGJyPjI1NTQ1OiBTdHlsZWRUZXh0IC0gcHJpbnRpbmcgaWdub3JlcyBlbmQgcGFnZSAgCjwvYmxvY2txdW90ZT4KCgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMTQgLSBUdWVzZGF5IE9jdG9iZXIgMjksIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEwMDkwOiBDYW5ub3Qgc2VlIENvbWJvLWJveCBzZWxlY3Rpb24gaW4gREJDUyBsb2NhbGUgIAo8YnI+MTIwNzg6IFNXVCBleGNlcHRpb24gd2hlbiBydW5uaW5nIG9uIGRlYmlhbiB3b29keSBvbiBLREUgdXNpbmcgdGhlIG1vdGlmIGJ1aWxkCjxicj4xNDQ0ODogU2V0dGluZyB0aGUgYWNjZWxlcmF0b3Igb2YgYSBtZW51IGl0ZW0gZ2l2ZXMgaGlnaGxpZ2h0IHRvIHRvb2wgYmFyIGVudHJpZXMKPGJyPjE3MzYxOiBUcmVlIGZsaWNrZXJzIG9uIHVwZGF0ZSAgCjxicj4xNzQyODogSW50ZXJuYWwgRXJyb3IgKFNXVCkgb3BlbmluZyBhIG5ldyBwZXJzcGVjdGl2ZSBieSBkb3VibGUtY2xpY2tpbmcKPGJyPjIwMDc1OiBJbmZvcG9wIGV4aGliaXRzIHN0cmFuZ2UgYmVoYXZpb3VyIHVuZGVyIE1vdGlmICAKPGJyPjIxMDY2OiBTd2l0Y2ggZWRpdG9ycy92aWV3cy9wZXJzcGVjdGl2ZXMgd2luZG93cyBoYXZlIHNjcm9sbGJhcnMgIAo8YnI+MjExMjE6IFtFeHRlcm5hbCBUb29sc10gQ29uZmlndXJhdGlvbiBkZWZhdWx0IHNlbGVjdGlvbiBjb3VsZCBiZSBiZXR0ZXIgb24gR1RLCjxicj4yMTM3NTogUmVwcm9kdWNpYmxlIEpWTSB0ZXJtaW5hdGlvbiB3aGVuIHVzaW5nIFdlYkRBVi4gIAo8YnI+MjE2NTY6IEdUSzogZGlzcG9zaW5nIGFsbCB0aGUgY29sdW1ucyBpbiB0YWJsZS5nZXRDb2x1bW5zIGZhaWxzICAKPGJyPjIyMDM4OiBXcm9uZyB3aWRnZXQgc2Nyb2xscyBpbiBKYXZhIEJyb3dzaW5nIHBlcnNwZWN0aXZlLiAgCjxicj4yMjEyMDogRXhjZXNzaXZlIHJlZHJhdyBpbiBkZWJ1ZyB2aWV3ICAKPGJyPjIyMjUyOiBQcm9qZWN0IHByb3BlcnRpZXMgLSBqYXZhIGJ1aWxkIHBhdGggc2NyZWVuIHNob3dzIGFydGlmYWN0cyAgCjxicj4yMjM3MTogSW52YWxpZCBzZWxlY3Rpb24gaXRlbXMgaW4gd29ya2luZyBzZXQgIAo8YnI+MjI1Mjc6IFdvcmtpbmcgc2V0IGRpYWxvZyBvbmx5IHNlbGVjdHMgcHJvamVjdHMgIAo8YnI+MjI3NDM6IFR5cGUgZGlhbG9nIGhvcml6b250YWwgc2Nyb2xsIHRvbyBzbWFsbCB0byByZWFkIGNvbnRlbnRzICAKPGJyPjIzNjU3OiBQcm9ibGVtcyBpbXBsZW1lbnRpbmcgTWVudUl0ZW0uc2V0VGV4dCAod29ya2VkIGFyb3VuZCBmb3IgRW5nbGlzaCkKPGJyPjIzNzg5OiBHVEsgdHJlZSBkaXNwbGF5IHByb2JsZW0gIAo8YnI+MjM4NDU6IFNwdXJpb3VzIHNjcm9sbGJhciBkcmF3biBvbiBvdGhlciBjb250cm9scyAgCjxicj4yNDE1MDogU2hpZnQtVGFiIGRvZXMgbm90IHNoaWZ0IGxlZnQgIAo8YnI+MjQyNTc6IE5hdGl2ZSBleGNlcHRpb24gd2hlbiB0cnlpbmcgdG8gZXhwb3J0IHByZWZlcmVuY2VzICAKPGJyPjI0MzE0OiBGaWxlRGlhbG9nIGRvZXNuJ3QgYWxsb3cgdG8gbmF2aWdhdGUgaW50byBwYWNrYWdlcyAgCjxicj4yNDM3MjogU3R5bGVkVGV4dCAtIFN0cmluZ0luZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaW4gQ29udHJvbEV4YW1wbGUKPGJyPjI0NDI2OiBTdHlsZWRUZXh0IC0gaW52ZXN0aWdhdGUgcmVwbGFjaW5nIGNhcmV0TGluZSB3aXRoIHNpbXBsZXIgY29uY2VwdAo8YnI+MjQ1MDQ6IFN0eWxlZFRleHQgLSBzaG93U2VsZWN0aW9uIHdoZW4gc2VsZWN0aW9uIFJ0b0wgcHJvYmxlbSAgCjxicj4yNDYxOTogRENSIC0gU3RhdGUgbWFzayBub3Qgc2V0IGluIE1vdXNlVHJhY2tlci5tb3VzZUhvdmVyICAKPGJyPjI1MDE2OiBbVmlld2Vyc10gRG91YmxlIGNsaWNrIG5vdCB3b3JraW5nIHdoZW4gaXRlbSBhbHJlYWR5IHNlbGVjdGVkCjxicj4yNTE0OTogU3R5bGVkVGV4dCAtIFdyYXBwZWRDb250ZW50IEFQSSBkb2VzIG5vdCBjaGVjayBsaW5lIGluZGV4IHJhbmdlCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDEzIC0gVHVlc2RheSBPY3RvYmVyIDIyLCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyMDM3NzogU3R5bGVkVGV4dCAtIFNXVC5XUkFQIHN0eWxlIGFuZCB3aWR0aEhpbnQgc3BlY2lmaWNhdGlvbiAgCjxicj4yMjk4NjogU1dUIENvbnRyb2xzIENvbWJvIGJveCBDb2xvcnMgc2VsZWN0aW9uIHRvb2wgZG9lcyBub3QgY2hhbmdlIGZvcmVncm91bmQgY29sb3IKPGJyPjI0NzI4OiBTdHlsZWRUZXh0IEVudGVyL0N0cmwtRW50ZXIgVmVyaWZ5RXZlbnQgaW5jb25zaXN0ZW5jaWVzICAKPGJyPjI0ODA1OiBDb21wdXRlU2l6ZSBpc3N1ZSAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDEyIC0gVHVlc2RheSBPY3RvYmVyIDE1LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxNjY1NzogW09wZW4gTW9kZXNdIFNlYXJjaCByZXN1bHRzIGRvZXNuJ3QgcmVzcG9uZCB0byBkb3VibGUgY2xpY2sgIAo8YnI+MTczMzQ6IEljb24gbWlzc2luZyBpbiBjaGVjayBib3ggdHJlZSAgCjxicj4xNzkxODogVHJlZSB3aWRnZXRzIHdpdGggbXVsdGlwbGUgZW50cmllcyAgCjxicj4xODkwMjogUGdVcCBrZXkgY2F1c2VzIGl0ZW1zIHRvIGJlIHNlbGVjdGVkIGluIHRyZWUgd2lkZ2V0IHVuZGVyIEdUSyAgCjxicj4yMDI1ODogW0NWU10gRXNjIGtleSBkb2Vzbid0IHdvcmsgb24gQ29tbWl0IERpYWxvZyAgCjxicj4yMTM2NzogRGlzcGxheSBwcm9ibGVtIGluIHRoZSBwcm9wZXJ0aWVzIHZpZXcgIAo8YnI+MjE0Mzg6IEphdmEgY29yZSBkdW1wIGluIGd0a19jdHJlZV9nZXRfbm9kZV9pbmZvICAKPGJyPjI0NTYwOiBDdHJsK3NoaWZ0IGRvZXNuJ3QgdHJhdmVyc2Ugd29yZCAgCjxicj4yNDY3NjogU3R5bGVkVGV4dCAtIGRvdWJsZSBjbGljayB3b3JkIHNlbGVjdCBhbmQgY2FyZXQgcGxhY2VtZW50ICAKPGJyPjI0Njc3OiAzMiBiaXQgaW1hZ2UgZmFpbHMgd2l0aCBhIGNlcnRhaW4gbWFzayAgCjxicj4yNDcwMjogV2luQ0U6IEltYWdlIDMyYml0cyBpcyBpbmNvcnJlY3QgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAxMSAtIFR1ZXNkYXkgT2N0b2JlciA4LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0ODIyOiBHcm91cCBzaXplIGRvZXNuJ3Qgc2VlbSB0byBjb25zaWRlciBncm91cCBuYW1lICgxR0pZSVdCKSAgCjxicj4xMDAxOTogUmlnaHQgY2xpY2tpbmcgaW4gYSBsaXN0IGJveCBzaG91bGQgc2VsZWN0IGJlZm9yZSBwb3BwaW5nIHVwIG1lbnUgCjxicj4xNzE2MDogVGFzayBMaXN0OiBtaXNzaW5nIGljb24gIAo8YnI+MTg4NDI6IENoZWVzZSB3aGVuIHNjcm9sbGluZyBhZnRlciBkZWxldGluZyByb3cgaW4gdGFibGUgIAo8YnI+MTk3NzM6IENvb2xiYXIgaWNvbnMgaW4gV2luZG93cyBYUCB3aXRoIEx1bmEgdGhlbWUgYXJlIG5vdCB2ZXJ0aWNhbGx5IGFsaWduZWQKPGJyPjIwMDk0OiBMYXlvdXQgcHJvYmxlbXMgdXNpbmcgU3R5bGVkVGV4dCB3aXRoIHdvcmQgd3JhcCBpbiBhIFNjcm9sbGVkQ29tcG9zaXRlCjxicj4yMzk3ODogSG9yaXpvbnRhbCBzY3JvbGxiYXJzIGluIHRhYmxlcyBhbmQgdHJlZXMgZG9uJ3Qgc2Nyb2xsIHBhZ2Utd2lzZQo8YnI+MjQyMjU6IERyYWdTb3VyY2VBZGFwdGVyIGluY29ycmVjdCBKYXZhRG9jICAKPGJyPjI0MzU4OiBJbmNvbXBsZXRlIEphdmFEb2Mgb24gTWVudUl0ZW0uc2V0VGV4dCAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDEwIC0gVHVlc2RheSBPY3RvYmVyIDEsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEwNDU5OiBJIGNhbid0IHJ1biBlY2xpcHNlICAKPGJyPjE5MTQ4OiBUb29sdGlwIHBvcHMgdXAgdW5kZXJuZWF0aCBjb2RlIGNvbXBsZXRpb24gYWx0ZXJuYXRpdmVzIGluIEYyCjxicj4yMDY3MjogU2hpZnQrRjEwIGhhcyB3cm9uZyBrZXlDb2RlICAKPGJyPjIxMjg3OiBVbmNhdWdodCBleGNlcHRpb24gaGFuZ2luZyBFY2xpcHNlICAKPGJyPjIyNjE1OiBbRGlhbG9nc10gTmF0aXZlIFByb2dyZXNzQmFyIGxvb2sgZG9lcyBub3QgbWF0Y2ggbG9vayBvZiBBbmltYXRlZFByb2dyZXNzCjxicj4yMjY0NTogU3R5bGVkVGV4dCAtIGNoZWVzZSB3aGVuIHR5cGluZyBpbiBTV1QuU0lOR0xFIG1vZGUgIAo8YnI+MjM2NDU6IERpc2FibGVkIGRlZmF1bHQgYnV0dG9uIGNhbiBzdGlsbCBiZSByZWFjaGVkIHByZXNzaW5nIEVOVEVSICAKPGJyPjIzODQ2OiBJbml0aWFsIGZvbnQgaGVpZ2h0IG9mIHRleHQgZmllbGQgaXMgd3JvbmcgIAo8YnI+MjM4NTE6IEluaXRpYWwgdGV4dCBpbiBUZXh0IGNvbnRyb2wgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpc2libGUgYXJlYSAgCjxicj4yMzkxMDogQ1RhYkZvbGRlciBzZWxlY3RlZCB0YWIgbG9zZXMgc3luY2ggd2l0aCBpdHMgY29udGVudHMgIAo8YnI+MjM5MzY6IE5QRSBpbiBDb250cm9sRXhhbXBsZSAgCjxicj4yMzk0NzogTWVudSBpbXBsZW1lbnRhdGlvbiBwcmV2ZW50cyBLZXliaW5kaW5nTWVudSBmcm9tIHdvcmtpbmcgY29ycmVjdGx5Cjxicj4yMzk3NTogTm8ga2V5Ym9hcmQgc2hvcnRjdXRzIGRpc3BsYXllZCBpbiBtZW51IGl0ZW1zICAKPGJyPjIzOTc2OiBGdW5jdGlvbiBrZXlzIG11c3QgYmUgcHJlc3NlZCB0d2ljZSAgCjxicj4yNDAwMDogTm8gc2Nyb2xsd2hlZWwgc3VwcG9ydCBmb3IgTWFjIE9TIFggIAo8YnI+MjQwNTU6IE5vIG1vcmUgY2FsbGJhY2sgZXhjZXB0aW9uIGhhbmcgRWNsaXBzZSAgCjxicj4yNDA4ODogRmlsZSBjaG9vc2VyIGZvciBPU1ggcmV0dXJucyB3cm9uZyBwYXRoICAKPGJyPjI0MTA2OiBUYWJsZSBDb2x1bW4gUmVzaXphYmxlIERvZXNuJ3Qgd29yayBpZiB5b3UgY2xpY2sgb24gQ29sdW1uIGl0c2VsZgo8YnI+MjQxMzc6IFRvcCBpdGVtIG9uIHBvcHVwIGlzIG9mdGVuIGludmlzaWJsZSAgCjxicj4yNDEzOTogQ29weSBjYXVzZXMgZXhjZXB0aW9uICAKPGJyPjI0MTQxOiBLZXlib2FyZCBub3QgZnVuY3Rpb25hbCBpbiBlZGl0b3JzIChtYWMgb3MgeCkgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAwOSAtIFR1ZXNkYXkgU2VwdGVtYmVyIDI0LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo3NDM1OiBBcnJheUluZGV4T3V0Qm91bmRzRXhjZXB0aW9uIG9jY3VycyB3aGVuIHVzaW5nIFNvbGFyaXMgdGhyb3VnaCByZW1vdGUgdGVybWluYWwKPGJyPjE1MTQ2OiBQcmludGluZyBzdXBwb3J0IHVuZGVyIExpbnV4PyAgCjxicj4xODQ4MzogSUU2IGNhdXNlcyBjb25mbGljdCB3aXRoIFNXVC5BUFBMSUNBVElPTl9NT0RBTCBvbiBXaW5kb3dzIDk4ICAKPGJyPjIwNDYxOiBXaW5DRSAtIFdhaXQgY3Vyc29yIGRvZXMgbm90IHNob3cgdXAgIAo8YnI+MjA5NTg6IEVjbGlwc2UgY3Jhc2hlcyB3aGVuIHBhc3RpbmcgUERGIHRleHQgaW50byBhIEphdmEgZmlsZSBlZGl0b3IKPGJyPjIxNDE2OiBHdGsrIGxhdW5jaGVyICAKPGJyPjIyMTIxOiBFY2xpcHNlIGNyYXNoZXMgd2hlbiBwYXN0aW5nIFVSTCBpbiBKYXZhLWNvZGUgIAo8YnI+MjMwMDc6IFtOYXZpZ2F0b3JdIEltcG9ydCBvZiB3b3Jrc3BhY2UgZm9sZGVyIGludG8gcGFyZW50ICAKPGJyPjIzNzQ0OiBEZXZpY2UuZ2V0Rm9udExpc3QoKSB1c2VzIHdyb25nIGNvbnN0YW50IG5hbWUgIAo8YnI+MjM3NDU6IFdyb25nIGZsYWcgdXNlZCBpbiBEZXZpY2UuZ2V0Rm9udExpc3QoKS4gIAo8YnI+MjM3NDg6IElucHV0IGdyb3VwIGlzIGhhcmRjb2RlZCBhcyAxIGluIFBoV2luZG93UXVlcnlWaXNpYmxlKCkgIAo8YnI+MjM3NTM6IEdyb3VwcyBkb24ndCBsb29rIGxpa2UgdGhlIHBsYXRmb3JtICAKPGJyPjIzNzU0OiBMYWJlbC5zZXRGb250KCkgbmVlZHMgdG8gY2hlY2sgInRleHQgIT0gbnVsbCIgIAo8YnI+MjM3NjY6IExhYmVscyB3aXRoIGltYWdlIG9ubHkgaGF2ZSBleHRyYSBzcGFjZSBvbiBHVEsgIAo8YnI+MjM3OTU6IENvbnRyb2xFeGFtcGxlOiBJbWFnZSBMYWJlbCBsZWF2ZXMgY2hlZXNlIHdoZW4gcmVzaXplZCAgCjxicj4yMzgwNzogRGlzcGxheSBjbGFzcyBuZWVkcyB0byBwaWNrIGJldHRlciBkZWZhdWx0IGZvbnRzLiAgCjxicj4yMzg2NDogQ29vbEJhciAtIFBsdXMgMiwgTWludXMgMiBwcm9ibGVtICAKPGJyPjIzODg0OiBXaW5DRSAtIE9TLkluaXRDb21tb25Db250cm9sc0V4IGZhaWxzIHdpdGggZmxhZyBEQVRFVElNRVBJQ0tfQ0xBU1MKPGJyPjIzODk4OiBHcm91cC5zZXRCYWNrZ3JvdW5kKCkgZG9uJ3Qgd29yayBvbiBHdGsgIAo8YnI+MjM4OTk6IENUUkwgKyBNb3VzZWNsaWNrICAKPGJyPjIzOTc0OiBVc2UgbmF0aXZlIENvbWJvQm94ICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMDggLSBUdWVzZGF5IFNlcHRlbWJlciAxNywgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDYzNzogVHJlZUVkaXRvciBleGFtcGxlIGRvZXMgbm90IHNob3cgaG93IHRvIHVzZSBkb3VibGUgY2xpY2sgKDFHQ1A2T0gpCjxicj40NjU2OiBQb3AtdXAgbWVudSBub3Qgc2hvd2luZyBmb3IgQ29tcG9zaXRlICgxR0VOWU0wKSAgCjxicj40NzEwOiBSZW1haW5pbmcgSmF2YWRvYyBwcm9ibGVtcyAoMUdGMDg4VykgIAo8YnI+NDczMDogU3VwcG9ydCBmb3IgbGVzc3RpZiBvbiBMaW51eCAgCjxicj40NzMzOiBJc3N1ZXMgd2l0aCBXaW4zMiBHREkgc2V0QmtNb2RlKCksIGFuZCBzaW1pbGFyIHRoaW5ncyBpbiBNb3RpZiAoMUdGUEdLMykKPGJyPjQ3OTY6IERDUjoga2V5Ym9hcmQgc3VwcG9ydCBmb3IgbW92ZS9yZXNpemUgKGFjY2Vzc2liaWxpdHkgaXNzdWUpICAKPGJyPjU5MDA6IENoZWNrYm94VGFibGVWaWV3ZXIgZG9lcyBkaXNhYmxlIGNvcnJlY3RseSAgCjxicj4xMDUzMjogRENSOiBUYWJsZS5zZXRTZWxlY3Rpb24oaW50LCBpbnQpIC0tIG9yZGVyIG1hdHRlcnMgIAo8YnI+MTIwNDg6IE5QRSBleGl0aW5nIHdvcmtzcGFjZSAgCjxicj4xNjcwMDogQ29vbGJhciB0YWIgb3JkZXIgaXMgYmFja3dhcmRzICAKPGJyPjE3NDk0OiBWZXJvbmlrYSBuZWVkcyB0byBjaGVjayBoZXIgamF2YWRvYyAgCjxicj4xOTI1NjogU0lQIGV2ZW50ICAKPGJyPjE5NzM2OiBUb29sdGlwcyBmb3IgbG9uZyBlbnRyaWVzIGluIGNvZGUgYXNzaXN0IHBvcCBiZWhpbmQgY29kZSBhc3Npc3QKPGJyPjIxMTI2OiBQcmludCBEaWFsb2cgSXMgTm90IE1vZGFsLCBSZXN1bHRpbmcgaW4gVW5wcmVkaWN0YWJsZSBXb3JrYmVuY2ggQmVoYXZpb3IKPGJyPjIxNjIwOiBGb250RGF0YS5zZXRMb2NhbGUoKSBjcmFzaGVzIHdvcmtiZW5jaCAgCjxicj4yMjE4OTogV2luMzIgR0RJIFJlc291cmNlIExlYWsgaW4gV3JhcHBlZENvbnRlbnQuamF2YSAgCjxicj4yMjIxMDogUGhvdG9uOlJlbW92aW5nIGl0ZW0gZnJvbSBDb21ibyBkb2VzIG5vdCByZW1vdmUgdGhlIHRleHQoQkJBV1QpCjxicj4yMjM2NDogSW5jb3JyZWN0IGhlaWdodCBvZiB3aWRnZXQgaW4gVGV4dFZpZXdlciAgCjxicj4yMjQ5MDogQmFja2dyb3VuZCBjb2xvciBvZiBHcmFwaGljYWwgRWRpdG9ycyBpcyBhbHdheXMgYmxhY2suICAKPGJyPjIyNTM0OiBObyB3YXkgdG8gdHVybiBib3JkZXIgb2ZmIGZvciBsaW51eCB0ZXh0IHdpZGdldCAgCjxicj4yMjU2NDogQ2Fubm90IGRyYXcgdHJhbnNwYXJlbnQgUE5HIGZpbGVzIHByb3Blcmx5ICAKPGJyPjIyNTc3OiBMaXN0LnNldFNlbGVjdGlvbihTdHJpbmdbXSkgaW5maW5pdGUgbG9vcCAgCjxicj4yMjgzOTogV2hlbiBzd3Qgd2luZG93IGluIGZvY3VzIHBhbGV0dGVzIG9mIG90aGVyIHdpbmRvd3MgaG9zZWQsIGFuZCB2aXNlIHZlcnNhCjxicj4yMjg2MjogU3R5bGVkVGV4dCAtIFRhYiBkb2VzIG5vdCB0YWIgb3V0IG9mIG5vbi1lZGl0YWJsZSAgCjxicj4yMjkyNjogQ2xpcGJvYXJkIGNvcHkvcGFzdGUgaXMgY3V0L3Bhc3RlIG9uIFdpbmRvd3MgOTggIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAwNyAtIFR1ZXNkYXkgU2VwdGVtYmVyIDEwLCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxMDA1MDogU3R5bGVkVGV4dCAtIENoYW5nZSBzZWxlY3Rpb24gY29sb3Igd2hlbiBjaGFuZ2luZyBiYWNrZ3JvdW5kIGNvbG9yCjxicj4xNDYzNzogU3R5bGVkVGV4dCAtIGNvcHktZnJvbSB0ZXh0IGVkaXQgZmVhdHVyZSAgCjxicj4xNjAwOTogRWNsaXBzZSdzIHRvb2xiYXIgYnV0dG9ucycgaWNvbiBpbiBibGFjayBhbmQgdXBzaWRlIGRvd24gIAo8YnI+MTc3OTM6IE1vdGlmIEZpbGVEaWFsb2cgb2Z0ZW4gZG9lcyBub3QgdXNlIHJlYXNvbmFibGUgZGVmYXVsdCBkaXJlY3RvcnkgIAo8YnI+MjAxNzk6IENvb2xiYXIgaXRlbSBjbGlwcGVkIG9uIGJvdHRvbSBlZGdlIHdpdGggU1dULkJPUkRFUiBzdHlsZSAgCjxicj4yMTE4NTogR1RLOiBMYWJlbCBwb3NpdGlvbmluZyBpbmNvcnJlY3Qgd2hlbiBzdHlsZSBiaXQgdXNlZCBhbmQgYm91bmRzIHNldChCQkFXVCkKPGJyPjIyMDc5OiBTdHlsZWRUZXh0IC0gQmlkaVV0aWwuaXNCaWRpUGxhdGZvcm0gcmV0dXJucyB0cnVlIHdoZW4gbm90IHJ1bm5pbmcgd2l0aCBiaWRpIGxvY2FsZQo8YnI+MjIxMTQ6ICoga2V5IGV4cGFuZHMgVGFibGVUcmVlIGJ1dCBkb2VzIG5vdCBzZW5kIFNXVC5FeHBhbmQgZXZlbnQgIAo8YnI+MjIxMTU6IE1lc3NhZ2VEaWFsb2cgZG9lcyBub3Qgd3JhcCBtZXNzYWdlICAKPGJyPjIyMTU4OiBnZXRJdGVtKCkgY3Jhc2hlcyBlY2xpcHNlIGNhbGxlZCB3aXRoIGluZGV4IDAgIAo8YnI+MjI2NDc6IFZhcmlhbnQgY2xhc3MgaW5jb3JyZWN0bHkgbWFyc2hhbHMgVlRfQk9PTCB2YWx1ZXMgIAo8YnI+MjI3NDY6IFRleHQgY3V0IG9mZiBpbiBHVEsgaW4gVGl0bGVBcmVEaWFsb2cgIAo8YnI+MjI4Njg6IEVjbGlwc2UgaGFuZ3Mgd2hpbGUgY3JlYXRpbmcgYSBzaGVsbCBmcm9tIENvbnRyb2xFeGFtcGxlICAKPGJyPjIyODc0OiAyMTA0OiBDb252ZXJ0ZXIgY29udGFpbnMgcmVmZXJlbmNlcyB0byBDb252ZXJ0ZXIuY2xhc3MgIAo8YnI+MjI5MTY6IENDb21ibyBub3QgZHJvcHBpbmcgZG93biBsaXN0IHByb3Blcmx5ICAKPGJyPjIyOTE4OiBUYWJsZS5nZXRJdGVtKFBvaW50KSB0aHJvd3MgQXJyYXlJbmRleE91dE9mQm91bmRzICAKPGJyPjIyOTU5OiBEcmFnZ2luZyBvdmVyIG11bHRpcGxlIHN0YWNrZWQgdHJlZXMgdXNlcyBpbnZpc2libGUgdHJlZSBmb3IgZHJvcCB0YXJnZXQKPGJyPjIyOTc4OiBNb3RpZiBGaWxlRGlhbG9nIGlnbm9yZXMgU1dULk1VTFRJIGJpdCAgCjxicj4yMzAwMzogWGNvcHlwbGFuZSByZXF1aXJlcyAxMSBhcmdzIGJ1dCBIUC1VWCBKUkUgY2FuIG9ubHkgaGFuZGxlIDEwICAKPGJyPjIzMDI4OiBFQzogVGFiIHVuLWluZGVudCBkb2VzIG5vdCB3b3JrICAKPGJyPjIzMDYxOiAnQmFjaycga2V5IGRvZXMgbm90IGRlbGV0ZSBjaGFyYWN0ZXIgb24gU21hcnRwaG9uZSAyMDAyICAKPGJyPjIzMTc4OiBFY2xpcHNlIEZhaWxzIHRvIFN0YXJ0IEZpcnN0IFRpbWUgIAo8YnI+MjMyODU6IExpbnV4IE1vdGlmIGhhcyBiZWNvbWUgZXh0cmVtZWx5IHNsb3cgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAwNiAtIFR1ZXNkYXkgQXVndXN0IDI3LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo1Njc4OiBUVlQ6IFVuYWJsZSB0byBvcGVuIEZpbHRlciBkaWFsb2cgb24gV2luOTggaWYgYW5vdGhlciB2aWV3IGlzIHVuZG9ja2VkIChmcmVlIGZsb2F0aW5nKQo8YnI+MTI4Nzg6IENvbWJvIHNldEl0ZW1zIHJlbW92ZXMgc2V0VGV4dCAgCjxicj4xMzAyNDogVHdvIHRvb2x0aXBzIGRpc3BsYXllZCBvbiB0cmVlICAKPGJyPjE0OTIzOiBTaG93IFRleHQgSG92ZXIgdG9vbGJhciBpdGVtIGluIHdyb25nIHBsYWNlICAKPGJyPjE2MzMzOiBBY2Nlc3NpYmlsaXR5IC0gdGFiIGtleSBpbiBkaWFsb2cgYm94ZXMgIAo8YnI+MjAzMjE6IE11bHRpcGxlIG9wZW5lZCBBcHBsaWNhdGlvbldpbmRvd3Mgd2l0aCBzdGF0dXNsaW5lcyBzaG93IGluY29ycmVjdCBkaXNwbGF5L2V2ZW50IGhhbmRsaW5nCjxicj4yMjIzMTogUHJlc3NpbmcgRU5URVIgaW4gYSB0ZXh0IGZpZWxkIG5vIGxvbmdlciBwZXJmb3JtcyBPSyBpbiBkaWFsb2dzCjxicj4yMjY1OTogRnVuY3Rpb24ga2V5IGV2ZW50cyBhcmUgb2Z0ZW4gbG9zdAo8YnI+MjI2NjE6IFN0eWxlZFRleHQgLSBTaGlmdCtBbHQrPGNoYXJhY3Rlcj4gaW5zZXJ0cyBjaGFyYWN0ZXIgIAo8YnI+MjI3MjE6IENhbm5vdCB1c2Uga2V5Ym9hcmQgdG8gdG9nZ2xlIGNoZWNrYm94ZXMgIAo8YnI+MjI3Mzc6IE1vdXNlIENhcHR1cmUgb24gTW90aWYgY2F1c2VzIENvbnRleHQgTWVudSBub3QgdG8gd29yayAgCjxicj4yMjgyNTogQ29uc2VjdXRpdmUgdmVydGljYWwgY3Vyc29yIG1vdmVtZW50IGNvbW1hbmRzIGRvbid0IHJldGFpbiBjb2x1bW4gb2Zmc2V0CjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDA1IC0gVHVlc2RheSBBdWd1c3QgMjAsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ1NTQ6IENvbWJvIHNlbGVjdGlvbiBzY3JvbGxzIGZvciBjZXJ0YWluIGZvbnRzICgxRzFBRDlZKSAgCjxicj40NTc3OiBDdHJsK0JhY2tzcGFjZSAmIEN0cmwrZGVsIGhhdmUgdGhlIHNhbWUga2V5IGNvZGUgYW5kIGtleSBldmVudCAoMUc1NFJBSikKPGJyPjQ2ODU6IFZhcmlhYmxlcyBWaWV3IHJlLXBvc2l0aW9ucyBvbiBlYWNoIHN0ZXAgKDFHRVRFOEYpICAKPGJyPjEwMDkxOiBNZXNzYWdlQm94IGxvc2VzIGFjdGl2YXRpb24gIAo8YnI+MTA5NzY6IFdvcmtiZW5jaCB3aW5kb3dzIGRvbid0IHJlb3BlbiBjb3JyZWN0bHkgaW4gRHVhbCBNb25pdG9yIGVudmlyb25tZW50cwo8YnI+MTQ5NDI6IFVuZXhwZWN0ZWQgS2V5RG93biBldmVudCBhZnRlciBwcmVzc2luZyBub24gZXhpc3RpbmcgbWVudSBtbmVtb25pYwo8YnI+MTg3MDU6IFRvbyBtdWNoIGZsYXNoaW4gaW4gQ29udHJvbCBFeGFtcGxlICAKPGJyPjIxODI5OiBBUEkgbmVlZGVkIHRvIGFsbG93IENDb21ibyB0byBkaXNwbGF5IGl0cyBsaXN0IGF0IHRoZSBwcmVmZXJlZCB3aWR0aAo8YnI+MjI0NDM6IE9MRSAtIG9yZy5lY2xpcHNlLnN3dC5pbnRlcm5hbC5vbGUud2luMzIuQ09OVFJPTElORk8gaGFzIGEgdXNlbGVzcyBmaWVsZCAnZmlsbGVyJwo8YnI+MjI0NTc6IFdpbjMyIG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLkNvbWJvIGNvbXB1dGVTaXplKCkgaXMgd3JvbmcgIAo8YnI+MjI1MDc6IE1vZGFsIGRpYWxvZyBkb2VzIG5vdCBwcmV2ZW50IGFkanVzdGluZyBvZiB0YWJsZSBoZWFkZXJzIGluIHBhcmVudC4KPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMSAwMDQgLSBUdWVzZGF5IEF1Z3VzdCAxMywgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDczNzogUmVkcmF3IHByb2JsZW0gaW4gdGFibGUgKDFHRlcyUEUpICAKPGJyPjkwNzU6IFRvb2x0aXBzIG9ubHkgcGFydGlhbGx5IGRpc3BsYXllZCBpbiBIb3ZlcmhlbHAuamF2YSBleGFtcGxlICAKPGJyPjE1NjEwOiBTdHlsZWRUZXh0IC0gRG91YmxlLUNsaWNrLURyYWcgZG9lc24ndCB3b3JrLCB3b3JrcyBvbiBUZXh0ICAKPGJyPjE2OTkwOiBUb29sQmFyIGRvZXMgbm90IHNlbmQgTW91c2VIb3ZlciBldmVudHMgIAo8YnI+MjA2MzI6IFBvbGlzaCBuYXRpb25hbCBmb250cyAgCjxicj4yMDc5Mjogc29tZXRpbWVzIHJlc2l6ZSBjYWxsYmFjayBpcyBub3Qgc2VudCB0byB0aGUgc2hlbGwgd2hlbiB0aGUgc2hlbGwgaXMgbm90IHZpc2libGUKPGJyPjIwODE1OiBNZW51cyBub3QgZGlzcGxheWVkIG9uIFNtYXJ0UGhvbmUgMjAwMiAgCjxicj4yMTI2ODogU3R5bGVkVGV4dCAtIEN0cmwrU2hpZnQrSiBpbnNlcnRzIGxpbmUgIAo8YnI+MjEyNzI6IFN0eWxlZFRleHQgZG9lcyBub3Qgc3VwcG9ydCBzZXR0aW5nIHNlbGVjdGlvbiB3aXRoIGNhcmV0IG9uIHRoZSBsZWZ0Cjxicj4yMTkyMTogRW11bGF0ZWQgVGFibGUgc2V0VG9wSW5kZXggZmFpbHMgYW5kIGNhdXNlcyBOUEUgd2hlbiBhZGRpbmcgYW4gaXRlbSBhZnRlcndhcmRzCjxicj4yMTkzMzogVGFibGVDb2x1bW4gZG9lcyBub3QgbGlzdGVuIHRvIENvbnRyb2xFdmVudHMgIAo8YnI+MjIwMDQ6IG5vIGtleWJvYXJkIHNob3J0Y3V0cyBmb3Igc3dpdGNoaW5nIGJldHdlZW4gcGFnZXMgb2YgTXVsdGlQYWdlRWRpdG9yUGFydAo8YnI+MjIxODg6IFN0eWxlZFRleHQgLSBvbmx5IGZpcnN0IGNoYXJhY3RlciBvZiBhIGxpbmUgZGlzcGxheWVkICAKPGJyPjIyMjA0OiBQaG90b246IFRleHQuc2VsZWN0QWxsKCkgZG9lcyBub3Qgc2VsZWN0IGFsbCB0aGUgdGV4dChCQkFXVCkgIAo8YnI+MjIyNTQ6IENvbW1hbmQgSCBpcyBub3QgbWFwcGVkIHByb3Blcmx5ICAKPGJyPjIyMzY1OiBTV1RfQVdUIGRvZXMgbm90IGNvbXBpbGUgdW5kZXIgSkRLIDEuNCAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDAzIC0gVHVlc2RheSBBdWd1c3QgNiwgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDUyMTogRGlzcGxheS5zeW5jRXhlYyBvciBEaXNwbGF5LmFzeW5jRXhlYyBjYW4gYmxvY2sgcHJvY2Vzc2luZyBvZiBuYXRpdmUgZXZlbnRzICgxRzAzREYwKQo8YnI+MjAxNDQ6IEVudGVyIGtleSBub3Qgd29ya2luZyBpbiBwYWNrYWdlcyB2aWV3ICAKPGJyPjIxMTc5OiBTdGVwIGZpbHRlciBpbi1wbGFjZSB0ZXh0IGVkaXRvciBpbnZpc2libGUgIAo8YnI+MjEyNDM6IFNjcm9sbCBsb2NrIGluc2VydHMgYSBjaGFyYWN0ZXIgZHVyaW5nIGluY3JlbWVudGFsIHNlYXJjaCBvbiBHVEsKPGJyPjIxMzM4OiBBY2NlbnRzIGFuZCA/Pz8/Pz8/IGRvbid0IHdvcmsgaW4gZWRpdG9yIHVzaW5nIGd0ayAgCjxicj4yMTQ3Mjoga2V5UHJlc3NlZCBldmVudCBpZ25vcmVkIGJ5IG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLlRleHQgZm9yIEVOVEVSIGtleQo8YnI+MjE2OTY6IFN0eWxlZFRleHQgLSBSVEYgdHJhbnNmZXIgY29kZXBhZ2UgZW5jb2RpbmcgIAo8YnI+MjE2OTg6IFN0eWxlZFRleHQgLSBSVEYgd3JpdGVyIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50ICAKPGJyPjIxODM0OiBDb29sYmFyIC0gZGVsZXRpbmcgaXRlbXMgY29ycnVwdGluZyBsYXlvdXQgIAo8YnI+MjIwMDQ6IE5vIGtleWJvYXJkIHNob3J0Y3V0cyBmb3Igc3dpdGNoaW5nIGJldHdlZW4gcGFnZXMgb2YgTXVsdGlQYWdlRWRpdG9yUGFydAo8YnI+MjIwMjU6IE1vdGlmOiBVbmV4cGxhaW5lZCB0ZXJtaW5hdGlvbiBydW5uaW5nIEJCQVdUIEpVbml0IHRlc3RzICAKPGJyPjIyMDM2OiBNT1RJRjogQXBwZWFyYW5jZSBpc3N1ZSB3aXRoIENvbWJvICAKPGJyPjIyMDYwOiBTdHlsZWRUZXh0IC0gYmlkaSAtIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjEgMDAyIC0gVHVlc2RheSBKdWx5IDMwLCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NTc4OiBDdHJsK0ogJiBDdHJsK0VudGVyIGhhdmUgdGhlIHNhbWUga2V5IGNvZGUgKDFHNTRSSkopICAKPGJyPjQ4MTY6IFRhYkl0ZW0gZGlzcGxheXMgJiAoMUdKTDcwNCkgIAo8YnI+Njg4ODogQ29tYm8gc2VuZHMgTW9kaWZ5RXZlbnQgb24gc2V0SXRlbXMgIAo8YnI+OTAyNTogT0xFLCBTdHlsZWRUZXh0IHdpZGdldCBhbmQgV2luQ0UgIAo8YnI+MTk2MzI6IFRyYWNrZXIgc2hvdWxkIGFkanVzdCBjdXJzb3Igb24gbW91c2Ugbm90IGRvd24sIG5vdCBvbiBNRU5VICAKPGJyPjE5OTg1OiBTdHlsZWRUZXh0IC0gQnVsbGV0aW5nIHByb29maW5nIFJURiBjb3B5IGZ1bmN0aW9uICAKPGJyPjIwNjkxOiBTdHlsZWRUZXh0IC0gYmlkaSAtIFdpbjJLL1hQIHN1cHBvcnQgIAo8YnI+MjA3NDY6IEluY29uc2lzdGVudCBAcGFyYW0gaW4gSmF2YWRvYyBmb3IgIFRhYmxlSXRlbS5zZXRHcmF5ZWQoYm9vbGVhbikKPGJyPjIxMzEzOiBDb21iby5nZXRJdGVtIHdyb25nIGVycm9yIHRocm93biAgCjxicj4yMTQyMzogR1RLOiBHUEYgaW4gU2hlbGwuc2V0VmlzaWJsZSgpICAKPGJyPjIxNTAwOiBHVEs6IFNXVC5BY3RpdmF0ZSBhbmQgU1dULkRlYWN0aXZhdGUgZXZlbnRzIG5vdCBmaXJlZCB3aGVuIFNoZWxsIHdpdGggTk9fVFJJTSB1c2VkIGFzIGl0cyBzdHlsZSBiaXQKPGJyPjIxNTI2OiBTaGVsbC5jb21wdXRlVHJpbSBkb2VzIG5vdCBpbmNsdWRlIG1lbnUgYmFyICAKPGJyPjIxNTYzOiBNbmVtb25pY3MgZ2l2ZSBmb2N1cyB0byB0aGUgbGFiZWwgb24gR1RLICAKPGJyPjIxNTY0OiBHVEs6IFRleHQgb2YgQnV0dG9uKHdpdGggc3R5bGUgYml0IFNXVC5DSEVDSykgZG9lcyBub3Qgc2hvdyB1cCBjb3JyZWN0bHkKPGJyPjIxNTczOiBUYWJsZVRyZWVJdGVtIHNob3VsZCBoYXZlIGdldC9zZXRHcmF5ZWQoKSBtZXRob2RzIGxpa2UgVGFibGVJdGVtCjxicj4yMTYwMTogZ2V0TGluZUNvdW50KCkgbWV0aG9kIGZvciBUZXh0IHdpZGdldCBkb2VzIG5vdCB3b3JrIG9uIE1vdGlmICAKPGJyPjIxNjIzOiBMaXN0LnNldFNlbGVjdGlvbiAoaW50IHN0YXJ0LCBpbnQgZW5kKSBmYWlscyBvbiBNb3RpZiAgCjxicj4yMTY1MzogV2luQ0UvU0g0OiBBcnJvdyBrZXlzIGRvbid0IGdlbmVyYXRlIGtleSBldmVudHMgIAo8YnI+MjE3MDI6IERlYnVnIERpc3BsYXkgdmlldyBlcnJvciBtc2cgdG8gY29uc29sZSBvbiBHVEsgIAo8YnI+MjE3MDY6IEJpZGlVdGlsIGluIHdpbjMyIGhhcyBDbGFzcy5mb3JOYW1lKCkgdXNhZ2UgIAo8YnI+MjE4MDU6IGV2ZW50LmNoYXJhY3RlciA9IDAgZm9yIGFsbCBDdHJsLTxhbHBoYT4gb24gUU5YIDYuMiAgCjxicj4yMTkzNzogQ09NT2JqZWN0IGxlYWthZ2Ugb24gT2xlQ29udHJvbFNpdGUgIAo8YnI+MjE5NTg6IENvbnRyb2xFeGFtcGxlIEZpbGVEaWFsb2cgZG9lcyBub3QgZmlsdGVyIGNvcnJlY3RseSAgCjxicj4yMTk2NDogR1RLOiBBZGRpbmcgYW4gaXRlbSB0byBDb21ibyBjaGFuZ2VzIHRoZSBzZWxlY3Rpb24gaW5kZXggIAo8YnI+MjE5Njc6IEdUSzogU2V0dGluZyBzZWxlY3Rpb24gaW5kZXggdG8gLTEgZm9yIGEgQ29tYm8gdGhyb3dzIGFuIGV4Y2VwdGlvbgo8YnI+MjE5Njk6IExpc3QuZ2V0U2VsZWN0aW9uSW5kZXggYnVnICAKPGJyPjIxOTc2OiBHVEs6IENvbWJvLmdldFNlbGVjdGlvbkluZGV4KCkgY2hhbmdlcyB3aGVuIGFuIGl0ZW0gaXMgcmVtb3ZlZAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4xIDAwMSAtIFR1ZXNkYXkgSnVseSAyMywgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDQyODogVGFibGUgLSBHcmlkIGxpbmVzIG5vdCBkcmF3biBjb3JyZWN0bHkgKDFGRTRLNVUpICAKPGJyPjQ0NTE6IFNoZWxsOiBzZXREZWZhdWx0QnV0dG9uLCBkZWZhdWx0IGJ1dHRvbiBjYW5ub3QgYmUgcmVzZXQgdG8gbnVsbCAoMUZHTFM2TSkKPGJyPjQ0ODk6IE1vdXNlVXAgZmlyZWQgZm9yIGJ1dHRvbiAxIHdoZW4gYnV0dG9uIDEgaXMgc3RpbGwgcHJlc3NlZCAoMUZPRERQNCkKPGJyPjQ1MTE6IFBhbmUgdGl0bGUgdXBkYXRlIGZsYXNoZXMgdG9vbCBiYXIgYnV0dG9ucyAoMUZVVVI3QSkgIAo8YnI+NDUyNDogQ1RSTCBzZXF1ZW5jZXMgbm90IGhhbmRsZWQgZ3JhY2VmdWxseSBieSBUZXh0RWRpdG9yICgxRlZTQlRTKSAgCjxicj40NTQ0OiBDVFJMIGNvbWJpbmF0aW9uIG5vdCBoYW5kbGVkIGFzIGFjY2VsZXJhdG9ycyB3aGVuIENhcHMgYXJlIGxvY2tlZCAoMUZaUURHUikKPGJyPjQ1OTA6IFZlcmlmeUV2ZW50IHZhbHVlcyBpZ25vcmVkICgxRzdHNVkzKSAgCjxicj40NjI2OiBUYWJsZVRyZWU6IFR3byBzZWxlY3Rpb24gZXZlbnRzIGdlbmVyYXRlZCBmb3IgZWFjaCBjaGVja2JveCBzZWxlY3Rpb24gKDFHQlJTTE0pCjxicj40NjQyOiBEaXJlY3RvcnlEaWFsb2cgZG9lcyBub3Qgc3VwcG9ydCAvIG9uIHdpbmRvd3MgKDFHRDQxRFopICAKPGJyPjQ2NDg6IE1lbnVJdGVtLnNldEVuYWJsZWQoKSBhbHdheXMgY2F1c2VzIGEgcmVkcmF3ICgxR0REQ04yKSAgCjxicj40Nzg2OiBGb250RGlhbG9nIHNob3VsZCBnaXZlIGFjY2VzcyB0byBjb2xvciBzZXR0aW5nICgxR0lFRkJEKSAgCjxicj40ODYxOiBLZXkgc3RhdGUgZm9yIHRvb2xiYXIgaXRlbXMgKDFHTDU0QTApICAKPGJyPjU5MzU6IFN0eWxlZFRleHQgLSB1cC9kb3duIGFycm93IGJlaGF2aW9yIHdydCB2YXJ5aW5nIGxpbmUgbGVuZ3RocyAgCjxicj42Nzc1OiBSYWRpbyBidXR0b24gc2V0U2VsZWN0aW9uIGNoYW5nZXMgZm9jdXMgIAo8YnI+OTg1OTogQ29tYm8gd2lkZ2V0IGRvZXNuJ3QgZmlyZSBrZXlQcmVzc2VkIG9yIGtleVJlbGVhc2VkIGZvciBFbnRlciBrZXkKPGJyPjExODY4OiBTdHlsZWRUZXh0OiB0ZXh0IHNlbGVjdGlvbiB3aXRoIGtleSAnYXJyb3cgZG93bicgZG9lcyBub3QgaW5jbHVkZSBsYXN0IGxpbmUKPGJyPjExOTk0OiBTdHlsZWRUZXh0IC0gcmVwbGFjZSBnZXRYQXRPZmZzZXQoY2FyZXRPZmZzZXQpIHdpdGggY2FyZXQuZ2V0TG9jYXRpb24oKS54Cjxicj4xMjE3ODogU3R5bGVkVGV4dCAtIG1vdmUgU3R5bGVkVGV4dFJlbmRlcmVyI2JpZGlUZXh0V2lkdGggdG8gRGlzcGxheVJlbmRlcmVyCjxicj4xMjE4MTogU3R5bGVkVGV4dCAtIG1peGluZyB0ZXh0IHdpZHRoL2NhcmV0IHBvc2l0aW9uIGlzIGNvbmZ1c2luZyAgCjxicj4xMzk0NDogRENSIC0gTmVlZCBjdXQvY29weS9wYXN0ZSByb3V0aW5lcyBvbiBDb21ibyAgCjxicj4xNDY3MjogQ29tYm8gYW5kIFNjYWxlIHNldEJhY2tncm91bmQgZG9lcyBub3QgcmVmcmVzaCAgCjxicj4xNDc5OTogV2luZG93IG1hbmlwdWxhdGlvbnMgYmxvY2sgb3RoZXIgdGhyZWFkcyBmcm9tIGV4ZWN1dGluZyAgCjxicj4xNTA4ODogU3R5bGVkVGV4dCAtIGdldFRvcEluZGV4IHNlbWFudGljcyB1bmRlZmluZWQgd2hlbiBubyBsaW5lIGZ1bGx5IHZpc2libGUKPGJyPjE1NTU0OiBEQ1IgLSBhbGlnbm1lbnQgaW4gYSB0ZXh0IHdpZGdldCAgCjxicj4xNTU1OTogSkFXUyByZWFkcyB0aGUgcGFyZW50IHdpbmRvdyBmb3IgZGlhbG9nIHNoZWxscyAgCjxicj4xNTcyODogUGFja2FnZXMgdmlldyBzZWxlY3Rpb24gYWx3YXlzIG9uZSB0b28gaGlnaCAgCjxicj4xNjExMDogU3R5bGVkVGV4dCBzY3JvbGwgbm90IHdvcmtpbmcgd2l0aCBQYWdlVXAvRG93biBrZXlzLiAgCjxicj4xNjIwNTogU3R5bGVkVGV4dCAtIFRhYiBkb2VzIG5vdCB0YWIgb3V0IG9mIHJlYWQtb25seSAgCjxicj4xNjQwMjogV29ya2luZyBzZXQgZGlhbG9nOiB0YWJsZSBjb2x1bW5zIGhhdmUgaW5jb3JyZWN0IHNpemUgIAo8YnI+MTY3Nzc6IEJ1c3kgY3Vyc29yIGxvc3Qgb3ZlciBwcm9ncmVzcyBpbmRpY2F0b3IgZWRnZXMgIAo8YnI+MTY5ODY6IEphdmFWaWV3ZXIgZXhhbXBsZSBzaG91bGQgcmVtZW1iZXIgcGF0aCAgCjxicj4xNzE5MTogU1dUIEVycm9yIGluIEpVbml0IHZpZXcgIAo8YnI+MTcyNTI6IEFjY2VsZXJhdG9yIGxhYmVsczogQ3RybC1TaGlmdC1BLCBTaGlmdC1DdHJsLUEgb3IgU2hpZnQtQ3RsLUE/Cjxicj4xNzI3OTogRXh0cmEgQ29vbEJhciByb3cgY3JlYXRlZCB3aGVuIHN3aXRjaGluZyBwZXJzcGVjdGl2ZXMuICAKPGJyPjE3MzcwOiBDb21ibyBib3ggZmxhc2hlcyB0byBtdWNoIHdoZW4gcmVzaXppbmcgZGlhbG9nLiAgCjxicj4xNzk5MzogRmluZC9SZXBsYWNlIHNob3VsZG4ndCByZXBsYWNlIHR5cGVkIGVudHJ5IHdpdGggdmFsdWUgZnJvbSBoaXN0b3J5Cjxicj4xODI1MzogQ29vbGJhciAtIGRpc3Bvc2luZyBpdGVtcyBub3QgaG9ub3Jpbmcgc2V0UmVkcmF3ID0gZmFsc2UgIAo8YnI+MTgzMDg6IEN0cmwrU0hJRlQrQCBkb2VzIG5vdCBjYWxsIHRoZSBsaXN0ZW5lci4gIAo8YnI+MTg0Mjk6IFNjcm9sbGVkQ29tcG9zaXRlIHdpdGggTGF5b3V0TWFuYWdlciBpcyBWRVJZIHNsb3cgaW4gaVBBUSAgCjxicj4xODU3MDogQ29tYm8gZmxhc2hlcyBieSByZXNpemluZyAgCjxicj4xOTM4MDogTGlzdGJveGVzIGZsYXNoIGFzIHByZWZlcmVuY2VzIGRpYWxvZyBpcyByZXNpemVkICAKPGJyPjE5NDM0OiBUb29sSXRlbSBkb2VzIG5vdCBuZWVkIHRvIGNoZWNrIGZvciBUT0dHTEUgIAo8YnI+MTk1Njg6IHt9IG9uIGEgZ2VybWFuIGtleWJvYXJkIFtzd3QtY2FyYm9uXSAgCjxicj4xOTYxNTogU3R5bGVkVGV4dCAtIGV4YW1wbGUgVGV4dCBFZGl0b3IgYnVnIGluIGNvcHkvcGFzdGUgIAo8YnI+MTk2MzA6IENvb2xiYXIgLSBvZGQgZGlzcG9zZSBiZWhhdmlvciAgCjxicj4xOTgxNTogSlJFIGNyYXNoZXMgdXNpbmcgZXJyb3IgbG9nIGFuZCBwcm9ncmVzcyBiYXIuICAKPGJyPjE5OTY0OiBDb29sYmFyIC0gY2FuICJsb3NlIiBpdGVtcyB3aGVuIHBsYXRmb3JtIHdpZGdldCB3cmFwcyAgCjxicj4yMDE1OTogUmlnaHQtY2xpY2tpbmcgb24gY29vbGJhciBncmFiYmVyIGNhdXNlcyBzdHJhbmdlIGJlaGF2aW9yICAKPGJyPjIwMTgzOiBNb3RpZiA6IENvb2xiYXIgcHJlZmVycmVkIHNpemUgaXMgdG9vIHNtYWxsIHdpZHRoIHdpc2UgIAo8YnI+MjAxOTA6IENvb2xCYXIgcHJvYmxlbXMgb24gV2luZG93cyBYUCB3aXRoIE1hbmlmZXN0ICAKPGJyPjIwMzM5OiBIaXR0aW5nIHNwYWNlYmFyIGRvZXMgbm90IHByZXNzIGN1cnJlbnRseSBmb2N1c2VkIGJ1dHRvbiAgCjxicj4yMDU4MzogU2VnZmF1bHQgd2hlbiBjb250cm9sIHRyaWVzIHRvIGRpc3Bvc2Ugb2YgaXRzZWxmIHVuZGVyIE1vdGlmICAKPGJyPjIwNjgzOiBbRXh0ZXJuYWxUb29sc10gIEYzIChhbmQgRjIpIGNyYXNoZXMgdGhlIEpWTSB3aGVuIHRyeWluZyB0byBjYW5jZWwgYW4gZXh0ZXJuYWwgdG9vbCBvbiBsaW51eC1ndGsKPGJyPjIwNjkwOiBTdHlsZWRUZXh0IC0gYmlkaSAtIHNob3VsZCBmb3JjZSBmb250IHNjcmlwdCB3aGVuIGtleWJvYXJkIGxhbmd1YWdlIGNoYW5nZWQKPGJyPjIwNzA1OiBDdXJzb3IgS2V5cyBkb24ndCB3b3JrIGluIERpYWxvZ3MgIAo8YnI+MjA3MjI6IEdUSyBUYWJsZUNvbHVtbiNwYWNrIGRvZXMgbm90IHdvcmsgaWYgbm8gaGVhZGVyICAKPGJyPjIwNzg4OiBBIGNvbXBvc2l0ZSBpcyBiZWluZyBteXN0ZXJpb3VzbHkgZGlzcG9zZWQgZm9yIG5vIHJlYXNvbiAgCjxicj4yMDg0NjogV0lOMzI6ICdDb21iby5pbmRleE9mJyBhbHdheXMgcmV0dXJucyAtMSBmb3IgZW1wdHkgc3RyaW5nICAKPGJyPjIwODkzOiBCYWQgc2l6ZSBmb3IgVGV4dCB3aWRnZXQgd2hlbiBmbGFnIFJFQURfT05MWSBpcyBzZXQgKFBob3RvbikgIAo8YnI+MjA5MDQ6IFNXVCBleGNlcHRpb24gb24gTGF5b3V0RXhhbXBsZSAoUGhvdG9uKSAgCjxicj4yMDk1MDogR1RLOiBGMSBoZWxwIGRvZXMgbm90IHdvcmsgZm9yIG1lbnUgaXRlbXMuICAKPGJyPjIwOTU2OiBFbXVsYXRlZCBDb29sSXRlbSBkbyBub3QgcmVzcGVjdCBTV1QuRFJPUF9ET1dOIGZsYWcgIAo8YnI+MjEwMzA6IFN0eWxlZFRleHQgLSBkdXJpbmcgY3V0IGlmIGNsaXBib2FyZCBjb3B5IGZhaWxzIGRvIG5vdCBkZWxldGUgdGV4dAo8YnI+MjEwOTY6IFByb3BlcnRpZXMgYWNjZWxlcmF0b3IgbWlzc2luZyBFTlRFUiAgCjxicj4yMTEyMjogRW1hY3M6IEFjY2VsZXJhdG9ycyBub3Qgc2hvd24gaW4gbWVudXMgdW5kZXIgR1RLICAKPGJyPjIxMTU0OiBTdHlsZWRUZXh0IC0gQklESSAtIEJhZCBlZmZlY3Qgb2YgUkxPIHVuaWNvZGUgY2hhcmFjdGVyICAKPGJyPjIxMTkyOiBVbnNhdGlzZmllZExpbmtFcnJvciB0aHJvd24gd2hlbiBwcmVzc2luZyBhIGhhcmR3YXJlIGtleSAgCjxicj4yMTIxNTogW0hlbHBdIEYxIEhlbHAgZG9lcyBub3QgY2xvc2UgbWVudSBvbiBHVEsgIAo8YnI+MjEyMjM6IFN0eWxlZFRleHQgLSBDdXJzb3Igc2hvdWxkIHN0b3AgYmxpbmtpbmcgd2hlbiBtb3ZpbmcgIAo8YnI+MjEyNjg6IFN0eWxlZFRleHQgLSBDdHJsK1NoaWZ0K0ogaW5zZXJ0cyBsaW5lICAKPGJyPjIxMzY4OiBHVEs6IEdDLmRyYXdJbWFnZSgpIGZhaWxzIHdoZW4gc2NhbGluZyBhbiBpbWFnZSAgCjxicj4yMTM3MTogU1dURXJyb3Igd2hpbGUgdXNpbmcgTmF2aWdhdG9yLT5Hb3RvLT5SZXNvdXJjZSAgCjxicj4yMTM3ODogR1RLOiBTaGVsbCBldmVudCdzIGRvaXQgZmxhZyBpZ25vcmVkIHdoZW4gc2hlbGxDbG9zZWQoKSBpcyBjYWxsZWQKPGJyPjIxNDEyOiBQYXN0ZSB3aXRoIGFjY2VsYXRvciBrZXkgZG9lc24ndCB3b3JrICAKPGJyPjIxNDEzOiBDb29sQmFyIGNvbXB1dGVTaXplIGZhaWxzIG9uIFhQICAKPGJyPjIxNDE1OiBKYXZhZG9jIGZvciBDTGFiZWwuc2V0QmFja2dyb3VuZCBoYXMgdHlwb3MgIAo8YnI+MjE0NDA6IFVuYWJsZSB0byBkaXNwbGF5IFRvZGF5IHNjcmVlbiB3aGVuIFNXVCBhcHAgcnVubmluZyBvbiBXaW5DRSAgCjxicj4yMTQ0OTogR1RLOiBDYWxsaW5nIFRleHQuc2V0U2VsZWN0aW9uKCkgY2F1c2VzIEdQRiAgCjxicj4yMTQ1NjogR1RLOiBDYW5ub3QgdHlwZSBpbiBUZXh0IHdpZGdldCBjb250YWluZWQgaW4gU2hlbGwgd2hpY2ggaGFzIHN0eWxlIGJpdCBhcyBOT19UUklNCjxicj4yMTQ4NDogU2hpZnQtVGFiIGRvZXMgbm90aGluZyBvbiBHVEsgIAo8YnI+MjE1MjM6IFN0eWxlZFRleHQgLSBjYXJldCBkb2VzIG5vdCBtb3ZlIHdoZW4gd2lkZ2V0IHNoZWxsIGlzIG5vdCBvcGVuCjxicj4yMTUyNDogU3R5bGVkVGV4dCAtIE5QRSB3aGVuIHR5cGluZyB0ZXh0IGFuZCBjYXJldCBpcyBudWxsICAKPGJyPjIxNTk2OiBTdHlsZWRUZXh0IC0gaW5pdGlhbCBiaWRpIGNhcmV0IHBvc2l0aW9uIHdyb25nIHdoZW4gd2lkZ2V0IGVtcHR5Cjxicj4yMTU5ODogU3R5bGVkVGV4dCAtIHNldEZvbnQgZW5hYmxlcyBjYXJldCB3aGVuIGl0IHdhcyBkaXNhYmxlZCAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDUyIC0gV2VkbmVzZGF5IE9jdG9iZXIgMzAsIDIwMDIgPC9oMj4gKDIuMC4yIHN0cmVhbSkKCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEwNDU5OiBJIGNhbid0IHJ1biBlY2xpcHNlCjxicj4yNDY5Mzogb3JnLmVjbGlwc2Uuc3d0LmdyYXBoaWNzLkdDLmRyYXdTdHJpbmcoKSBmYWlscyB0byBkcmF3IGV1cm8KPGJyPjI0ODY5OiBHUCAtIEVjbGlwc2UgY3Jhc2hlZCB3aGVuIGVudGVyaW5nIGludmFsaWQgZmlsZSBuYW1lIGluIEZpbGVEaWFsb2cKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwNTAgLSBXZWRuZXNkYXkgT2N0b2JlciAxNiwgMjAwMiA8L2gyPiAoMi4wLjIgc3RyZWFtKQoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjQ1NDI6IFtETkRdIENyYXNoIHdoZW4gZHJhZyZkcm9wIG9uIHRoZSBQYWNrYWdlIEV4cGxvcmVyCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDQ5ZCAtIE1vbmRheSBBdWd1c3QgMjYsIDIwMDIgPC9oMj4gKDIuMC4xIHN0cmVhbSkKCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjIyNzI5OiBQZXJtaXNzaW9ucy5wcm9wZXJ0aWVzIG1pc3NpbmcgZnJvbSB0aGUgYnVpbGQgc2NyaXB0Cjxicj4yMjc3OTogRWNsaXBzZSBsaW51eC1tb3RpZiBHUEZzIG9uIGV4aXQgb24gSjkKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwNDliIC0gV2VkbmVzZGF5IEF1Z3VzdCAyMSwgMjAwMiA8L2gyPiAoMi4wLjEgc3RyZWFtKQoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMjI0NDg6IENvb2xCYXIgLSBkZWxldGluZyBmaXJzdCBpdGVtIGluIHJvdyBkb2VzIHVubmVjZXNzYXJ5IGNvbGxhcHNlL2V4cGFuZCBvZiByb3cKPGJyPjIyNTYxOiBIb3ZlciBIZWxwIGJyb2tlbiBpbiAyLjAuMSBJMjAwMjA4MTUKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwNDkgLSBXZWRuZXNkYXkgQXVndXN0IDE0LCAyMDAyIDwvaDI+ICgyLjAuMSBzdHJlYW0pCgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoyMjA1NTogQ29vbEJhciAtIHNldFdyYXBJbmRpY2VzIGNhdXNlcyByb3dzIHRvIGNvbGxhcHNlL2V4cGFuZCB1bm5lY2Vzc2FyaWx5Cjxicj4yMjE0NDogQ29vbGJhciAtIHNldFNpemUgbm90IGJlaW5nIGhvbm9yZWQgYWZ0ZXIgc2V0V3JhcEluZGljZXMgQVBJIHVzZWQKPGJyPjIyMzIwOiBDb29sYmFyIC0gZGVsZXRlIGl0ZW0gYmVoYXZpb3IgcHJvYmxlbQo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDA0OCAtIFR1ZXNkYXkgQXVndXN0IDYsIDIwMDIgPC9oMj4gKDIuMC4xIHN0cmVhbSkKCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE1NTU5OiBKQVdTIHJlYWRzIHRoZSBwYXJlbnQgd2luZG93IGZvciBkaWFsb2cgc2hlbGxzCjxicj4xODI1MzogQ29vbGJhciAtIGRpc3Bvc2luZyBpdGVtcyBub3QgaG9ub3Jpbmcgc2V0UmVkcmF3ID0gZmFsc2UKPGJyPjE5OTY0OiBDb29sYmFyIC0gY2FuICJsb3NlIiBpdGVtcyB3aGVuIHBsYXRmb3JtIHdpZGdldCB3cmFwcyAgCjxicj4yMTI2ODogU3R5bGVkVGV4dCAtIEN0cmwrU2hpZnQrSiBpbnNlcnRzIGxpbmUKPGJyPjIxODM0OiBDb29sYmFyIC0gZGVsZXRpbmcgaXRlbXMgY29ycnVwdGluZyBsYXlvdXQKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwNDcgLSBNb25kYXkgSnVuZSAxNywgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDc3MjogSmF2YWRvYzogR3JhcGhpY3MgY29uc3RydWN0b3JzIG5lZWQgdG8gZG9jIGlmIGRldmljZSBudWxsICgxR0hTUFVXKQo8YnI+MTQxNDQ6IFNjcm9sbEJhcnMgY2FuJ3QgYmUgbWFkZSBpbnZpc2libGUgb24gUG9ja2V0UEMgIAo8YnI+MjAyNjU6IEYzLiB0ZXN0IEMzLiBObyBuZXcgdXBkYXRlcyBmb3IgRWNsaXBzZSBvbiBIUC4gIAo8YnI+MjAzNjI6IENvb2xiYXIgY2Fubm90IGJlIHRyYXZlcnNlZCB0byAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDQ2IC0gRnJpZGF5IEp1bmUgMTQsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjE2ODA5OiBDbGlja2luZyB0byBjbG9zZSBub24tYWN0aXZlIGVkaXRvciBkb2Vzbid0IGhhdmUgYW4gYWZmZWN0ICAKPGJyPjE2OTM5OiBEbkQ6IE1vdmluZyB0aGUgbW91c2Ugd2hpbGUgZHJvcHBpbmcgYmVoYXZlcyBzdHJhbmdlbHkgd2hpbGUgZHJhZ2dpbmcgdmlld3MKPGJyPjE3MTkwOiBObyBjZWxsIGVkaXRvciBzdXBwb3J0ICAKPGJyPjE3NTYzOiBGbGF0IHRvb2wgYmFyIGJ1dHRvbnMgIAo8YnI+MTc2MjE6IFJlc291cmNlIFBhdGNoZXIgd2l6YXJkIC0gd2lkZ2V0cyBub3QgcHJvcGVybHkgYWxpZ25lZCAgCjxicj4xOTA4OTogTm8gcG9wdXAgbWVudSBqYXZhIGVkaXRvciBydWxlciAoUGhvdG9uKSAgCjxicj4xOTI0MzogRWNsaXBzZSBsYXVuY2hlcnMgaGF2ZSBoYXJkY29kZWQgajkgYXJncyAgCjxicj4xOTI0NDogU3BhY2luZyBiZXR3ZWVuIFRhYmxlIHJvd3MgZ3Jvd3Mgd2l0aCBudW1iZXIgb2Ygcm93cyAgCjxicj4yMDAwNjogWCBQb2ludGVyIGdyYWIgbm90IHJlbGVhc2VkICAKPGJyPjIwMDQ0OiBVbmFibGUgdG8gc2Nyb2xsIGxpY2Vuc2UgdGV4dCB1c2luZyBrZXlib2FyZCAgCjxicj4yMDA3MjogV29ya2JlbmNoIGJvdW5jZXMgd2hlbiBzd3RpY2hpbmcgcGVyc3BlY3RpdmVzICAKPGJyPjIwMTM0OiBFY2xpcHNlIENMT1NFUyBhdXRvbWF0aWNhbGx5LCB3aGVuIGknbSB3b3JraW5nIGluIGl0ICAKPGJyPjIwMTg0OiBDb2xvciBqYXZhZG9jIGNvdWxkIHVzZSByZWZlcmVuY2UgdG8gRGV2aWNlLmdldFN5c3RlbUNvbG9yKCkgIAo8YnI+MjAyMDk6IEhhbmcgZHVlIHRvIE9TIGxvY2tpbmcgIAo8YnI+MjAzNTQ6IEdQIHdoZW4gYXR0ZW1wdCB0byBjaGVjayBvdXQgU1dUIGZyb20gcmVwb3NpdG9yeSAgCjxicj4yMDM3MjogVHJhY2tlciBuZWVkcyBtb3JlIGphdmFkb2MgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDA0NiAtIFR1ZXNkYXkgSnVuZSAxMSwgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KMTY4MDk6IENsaWNraW5nIHRvIGNsb3NlIG5vbi1hY3RpdmUgZWRpdG9yIGRvZXNuJ3QgaGF2ZSBhbiBhZmZlY3QgIAo8YnI+MTY5Mzk6IERuRDogTW92aW5nIHRoZSBtb3VzZSB3aGlsZSBkcm9wcGluZyBiZWhhdmVzIHN0cmFuZ2VseSB3aGlsZSBkcmFnZ2luZyB2aWV3cwo8YnI+MTcxOTA6IE5vIGNlbGwgZWRpdG9yIHN1cHBvcnQgIAo8YnI+MTc1NjM6IEZsYXQgdG9vbCBiYXIgYnV0dG9ucyAgCjxicj4xNzYyMTogUmVzb3VyY2UgUGF0Y2hlciB3aXphcmQgLSB3aWRnZXRzIG5vdCBwcm9wZXJseSBhbGlnbmVkICAKPGJyPjE5MDg5OiBObyBwb3B1cCBtZW51IGphdmEgZWRpdG9yIHJ1bGVyIChQaG90b24pICAKPGJyPjE5MjQzOiBFY2xpcHNlIGxhdW5jaGVycyBoYXZlIGhhcmRjb2RlZCBqOSBhcmdzICAKPGJyPjE5MjQ0OiBTcGFjaW5nIGJldHdlZW4gVGFibGUgcm93cyBncm93cyB3aXRoIG51bWJlciBvZiByb3dzICAKPGJyPjIwMDA2OiBYIFBvaW50ZXIgZ3JhYiBub3QgcmVsZWFzZWQgIAo8YnI+MjAwNDQ6IFVuYWJsZSB0byBzY3JvbGwgbGljZW5zZSB0ZXh0IHVzaW5nIGtleWJvYXJkICAKPGJyPjIwMDcyOiBXb3JrYmVuY2ggYm91bmNlcyB3aGVuIHN3dGljaGluZyBwZXJzcGVjdGl2ZXMgIAo8YnI+MjAxMzQ6IEVjbGlwc2UgQ0xPU0VTIGF1dG9tYXRpY2FsbHksIHdoZW4gaSdtIHdvcmtpbmcgaW4gaXQgIAo8YnI+MjAxODQ6IENvbG9yIGphdmFkb2MgY291bGQgdXNlIHJlZmVyZW5jZSB0byBEZXZpY2UuZ2V0U3lzdGVtQ29sb3IoKSAgCjxicj4yMDIwOTogSGFuZyBkdWUgdG8gT1MgbG9ja2luZyAgCjxicj4yMDM1NDogR1Agd2hlbiBhdHRlbXB0IHRvIGNoZWNrIG91dCBTV1QgZnJvbSByZXBvc2l0b3J5ICAKPGJyPjIwMzcyOiBUcmFja2VyIG5lZWRzIG1vcmUgamF2YWRvYyAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDQ1IC0gVHVlc2RheSBKdW5lIDExLCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgoxNTI0MjogQ29vbEJhciAtIGxheW91dCBpc3N1ZXMgIAo8YnI+MTg1MTc6IENvb2xiYXIgLSBkZWxldGUgYW5kIHJvdyBsYXlvdXQgYnVnICAKPGJyPjE5MDkwOiBDb21ibyBkb2Vzbid0IHNpemUgaXRzZWxmIHByb3Blcmx5IGluIEdUSzIgIAo8YnI+MTk2NzA6IFJlZ3Jlc3Npb24gaW4gT0xFIHN1cHBvcnQgIAo8YnI+MTk2NzE6IFVuYWJsZSB0byBleHBhbmQvY29sbGFwc2UgdHJlZXMgaW4gcHJvcGVydGllcyB2aWV3ICAKPGJyPjE5NzIwOiBDb29sYmFyIC0gZ2V0UHJlZmVycmVkU2l6ZSBwcm9ibGVtICh3YXMgZ2V0Q2xpZW50QXJlYSBwcm9ibGVtKQo8YnI+MTk3ODc6IEhvdmVyIGhlbHAgaXMgbm90IHJlbW92ZWQgIAo8YnI+MTk5NDc6IEdUSzIgc2VuZHMga2V5IGV2ZW50cyB3aXRoIGJvdGgga2V5Q29kZSBhbmQgY2hhcmFjdGVyIGVxdWFscyB0byAwIGZvciBzb21lIGtleXMKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwNDQgLSBNb25kYXkgSnVuZSAxMCwgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDgwNzogVGV4dC5zZXRFY2hvQ2hhciBzcGVjIHNob3VsZCBzYXkgMCA8PSBjaGFyIDwgMTI4ICgxR0o2Q0RNKSAgCjxicj40ODM3OiBKYXZhZG9jOiBDdXJzb3IgY29uc3RydWN0b3IgRVJST1JfTk9fSEFORExFUyBpcyBub3Qgc3BlYydlZCAoMUdLQTdROSkKPGJyPjU1Nzc6IFRleHQgamF2YWRvYyAgCjxicj43NTI2OiBObyBzcGVjIGZvciBEaXNwbGF5LnVwZGF0ZSgpICAKPGJyPjg1MTM6IEphdmFEb2MgZm9yIE1lbnUuYWRkTWVudUxpc3RlbmVyIGluY29ycmVjdCAgCjxicj4xMjgyMDogRmluaXNoaW5nIHByZXZpZXcgb2YgdGhlIHJlZmFjdG9yaW5nIGNvZGUgY3Jhc2hlcyBFY2xpcHNlICAKPGJyPjE0NDYzOiBHUCBvcGVuaW5nIHR3byBmaWxlcyBhdCB0aGUgc2FtZSB0aW1lICAKPGJyPjE1NDYwOiBDb29sQmFyIGRvYyB1bmNsZWFyL2luc3VmZmljaWVudCAgCjxicj4xNTkzOTogS2V5RXZlbnQgY2hhcmFjdGVyIGlzIG5vdCBjb25zaXN0ZW50IGJldHdlZW4gTGludXggYW5kIFdpbmRvd3MKPGJyPjE2ODEwOiBNb3VzZSBwb2ludGVyIG5vdCB1cGRhdGUgIAo8YnI+MTY4Mzc6IEtleXMgY29tcGxldGVseSBsb3N0ICAKPGJyPjE2ODgzOiBWYXJpYWJsZSBzb3J0aW5nIGNoYW5nZXMgdW5leHBlY3RlZGx5ICAKPGJyPjE2ODk1OiBJbi1wbGFjZSB0ZXh0IGZpZWxkcyBhcmUgdW51c2FibGUgIAo8YnI+MTcwMzY6IERpc3Bvc2luZyBhIENvb2xJdGVtIGlzIHRyaWdnZXJpbmcgYW4gYWN0aXZhdGlvbiBjYWxsYmFjay4gIAo8YnI+MTcxNDY6IEVkaXRvciBQcmVmZXJlbmNlIHBhZ2UgYnV0dG9tIGxpc3QgY2xpcHBlZCAgCjxicj4xNzE1NDogVmlldyBwYXJ0IGxvc2VzIGZvY3VzIHdoZW4gb3BlbmluZyBjb250ZXh0IG1lbnUgIAo8YnI+MTcyODk6IENvbWJvIGRvZXNuJ3QgdGFrZSBmb2N1cyBieSBjbGlja2luZyBvbiBpdCAoUGhvdG9uKSAgCjxicj4xNzI5MDogTW9kaWZ5IE1ldGhvZCBQYXJhbWV0ZXJzOiB3cm9uZyBlbmFibGVtZW50IG9mIGJ1dHRvbnMgIAo8YnI+MTc1MDc6IEFJWCBGaWxlRGlhbG9nIGlzIG5vdCByZXNwb25zaXZlIGluIHN0YW5kLWFsb25lIGV4YW1wbGUgIAo8YnI+MTc2MTM6IEFkZCBmcm9tIGxvY2FsIGhpc3Rvcnkgc2hvd3Mgbm90aGluZyBpbiByaWdodCBhbmQgbG93ZXIgcGFuZQo8YnI+MTc2NzA6IENhbm5vdCBtb3ZlIHRocm91Z2ggUGx1Zy1pbiBDb2RlIEdlbmVyYXRpb24gcGFnZSBsaXN0IHdpdGggYXJyb3cga2V5cwo8YnI+MTc2OTI6IElBRSB3aGVuIGRlbGV0aW5nIGxpbmUgaW4gSmF2YSBFZGl0b3IgIAo8YnI+MTc3NTI6IENhbm5vdCBzZWxlY3QgYSBub24tYm9sZCBmb250ICAKPGJyPjE3Nzg4OiBTY2FsZSB3aXRoIHByZWZlcnJlZCBzaXplIGlzIHVudXNhYmxlIChubyByYW5nZSBvZiBtb3Rpb24pICAKPGJyPjE3ODQ4OiBGMSBidWlsZCwgSlZNIHRlcm1pbmF0ZWQgRXhpdCBjb2RlIDEzOSAgCjxicj4xNzkzNjogRWNsaXBzZSBsYXVuY2hlciBtdXN0IGxhdW5jaCBoZWFkbGVzcyBpbiBoZWFkbGVzcyBlbnZpcm9ubWVudHMKPGJyPjE4NDM5OiBDdHJsK0Y2IGVkaXRvciBzd2l0Y2hpbmcgaXMgdW51c2FibGUgIAo8YnI+MTg1MDg6IEphdmFjb3JlZHVtcCB3aGVuIG9wZW5pbmcgdmVydGljYWwgcnVsZXIgY29udGV4dCBtZW51ICAKPGJyPjE4NTIxOiBDb29sYmFyIGxheW91dCBhbmQgY2hldnJvbiBidWcgIAo8YnI+MTg1NDM6IEFuIGludmlzaWJsZSBjaGFyYWN0ZXIgaXMgYWRkZWQgd2hlbiB0aGUgJ1dpbmRvd3MnIGtleSBpcyBwcmVzc2VkCjxicj4xODYyNTogVGFiYmluZyBpbiBKYXZhIGVkaXRvciB0YWtlcyBjdXJzb3IgIAo8YnI+MTg2Mjk6IEdUSzogVW5hYmxlIHRvIHNlbGVjdCBkaWFsb2cgYnV0dG9ucyB3aXRoIG1vdXNlICAKPGJyPjE4NjQ1OiBSZWxlYXNlIFNXVCBzb3VyY2VzICYgamF2YWRvYyBpbiBmdXR1cmUgYnVpbGRzICAKPGJyPjE4NzMzOiBDb250cm9sRXhhbXBsZTogTGlzdCB3aWRnZXQgbm90IGJlaW5nIHJlc2l6ZWQgcHJvcGVybHkgIAo8YnI+MTg4MDQ6IEdQRiBzZXR0aW5nIGltYWdlIHRvIG1lbnUgaXRlbSAoUGhvdG9uKSAgCjxicj4xODgzODogTGF1bmNoIENvbmZpZ3VyYXRpb25zIGRpYWxvZyBjcmVlcHMgdXAgIAo8YnI+MTg4NDE6IFF1ZXN0aW9uOiBXaGF0IGRvZXMgLURNQkNTIGRvPyAgCjxicj4xODkzMDogV3JvbmcgY29udGVudCBkaXNwbGF5ZWQgaW4gdGFicyBpbiB0aGUgTGF1bmNoIENvbmZpZ3VyYXRpb24gRGlhbG9nCjxicj4xODkzNDogU2Nyb2xsYmFycyBzaG91bGQgYmUgZGlzYWJsZWQgaW4gSW1hZ2VBbmFseXplciBleGFtcGxlICAKPGJyPjE5MDU3OiBQcm9ibGVtIHNhdmluZyBqYXZhIGZpbGUgdGhyb3VnaCBwb3B1cCBtZW51ICAKPGJyPjE5MTE2OiBNaXNzaW5nIGFib3V0Lmh0bWwgaW4gc291cmNlIGRpcmVjdG9yeSBmb3IgZXhhbXBsZXMgIAo8YnI+MTkxNjk6IE5QRSBvbiBFbXVsYXRlZCBDb29sSXRlbSBjb25zdHJ1Y3RvciAgCjxicj4xOTM0NTogVGFzayBWaWV3OiBOb3QgY2xlYXJpbmcgcHJpb3JpdHkgaWNvbnMgIAo8YnI+MTkzOTQ6IEZhbHNlICJ1bnNhdmVkIGNoYW5nZXMiIG5vdGlmaWNhdGlvbiBmcm9tIGxhdW5jaCBjb25maWdzICAKPGJyPjE5NTAzOiBXaWRnZXQgaW4gb3V0bGluZXIgZ2V0cyB3cmFwcGVkL2Nyb3BwZWQgIAo8YnI+MTk1OTU6IFN0eWxlZFRleHQgLSByZWRyYXdSYW5nZSBub3QgY2xlYXJpbmcgcHJvcGVybHkgd2hlbiBjbGVhciBmbGFnIHNldAo8YnI+MTk2NjA6IFByZWZlcmVuY2UgcGFnZSBkb2VzIG5vdCBleHBhbmQgdG8gZml0IGFsbCB3aWRnZXRzICAKPGJyPjE5NzY5OiBJbnRlcm5ldCBFeHBsb3JlciBhbmQgSGVscCwgRVhDRVBUSU9OX0FDQ0VTU19WSU9MQVRJT04gIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDA0MyAtIEZyaWRheSBNYXkgMzEsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ2OTI6IEVtcHR5IHBvcHVwIG1lbnUgYXBwZWFycyBpbiBPdXRsaW5lIHZpZXcgKDFHRVQxQjEpICAKPGJyPjg4MjE6IE9wZW5pbmcgZWRpdG9ycyBoYXMgYmVjb21lIHZlcnkgc2xvdyAgCjxicj4xNTU2NTogQ29vbGJhciAtIG1pbmltdW1XaWR0aCBub3QgaG9ub3JlZCB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMgIAo8YnI+MTY2ODg6IFNlbGVjdGlvbiBiYWNrZ3JvdW5kIG9uIGVtdWxhdGVkIHdpZGdldHMgaXMgd3JvbmcgIAo8YnI+MTcxNTA6IFN0cmFuZ2Ugc2VsZWN0aW9uIGJlaGF2aW91ciBpbiBKYXZhIEJyb3dzaW5nIFBlcnNwZWN0aXZlICAKPGJyPjE3MTU2OiBEZWxldGUga2V5IG5vdCB3b3JraW5nIGluIHBhY2thZ2UgdmlldyAgCjxicj4xNzIyODogV2VpcmQgVHJlZSBzZWxlY3Rpb24gYmVoYXZpb3VyICAKPGJyPjE3MzU0OiBEb3VibGUgY2xpY2tpbmcgZXhwYW5kcyBhbmQgY29sbGFwc2VzIGl0ZW0gIAo8YnI+MTczNjM6IFRlc3QgQTQuNCBjYW5ub3QgZWRpdCBhY3Rpb24gc2V0IGlkIGluIHByb3BlcnRpZXMgdmlldyAgCjxicj4xNzY4MDogT3V0bGluZSBkb2Vzbid0IGV4cGFuZCB3aGVuIGFkZGluZyBuZXcgbWV0aG9kICAKPGJyPjE3ODI1OiBDb250cm9sRXhhbXBsZS0+VGV4dCBiZWVwcyB3aGVuIEkgY2hvb3NlIFNXVC5NVUxUSSAgCjxicj4xNzgzMTogQ29vbGJhciAtIGNoZXZyb24gbm90IGFsd2F5cyBkaXNwbGF5ZWQgd2hlbiBpdCBzaG91bGQgYmUgIAo8YnI+MTgxNjA6ICJTaG93IGluIHBhY2thZ2VzIHZpZXciIGRvZXNuJ3Qgc2Nyb2xsIHRvIHNlbGVjdGlvbiAgCjxicj4xODIyOTogV2Fsa2JhY2sgd2hlbiBjbG9zaW5nIEltYWdlQW5hbHl6ZXIgIAo8YnI+MTgzNjg6IEdldCByaWQgb2YgYWxsIGZyYWdtZW50LnByb3BlcnRpZXMgIAo8YnI+MTgzNzY6IE5vIGV4ZWN1dGUgcGVybWlzc2lvbnMgb2YgbGlicmFyaWVzICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwNDIgLSBUaHVyc2RheSBNYXkgMzAsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ1MzM6IENoZWVzZSB3aGVuIHJlc2l6aW5nIHRvb2xiYXIgKDFGV0w5NDMpICAKPGJyPjQ4NDE6IFNXVCBzYW1wbGUgaW1hZ2V2aWV3ZXIgbm90aGluZyBkaXNwbGF5IGF0IHBpeGVsIGRhdGEgYXJlYSAoMUdLRU9VRSkKPGJyPjY3MzU6IEFXVC9TV1QgLSBTd2luZyAvIFN3dCBpbnRlZ3JhdGlvbiA6IEpDb21ib0JveCBkb2Vzbid0IHNob3cgY29ycmVjdGx5Cjxicj4xMDk3MjogQ29yZSBkdW1wIGRyYWcgYW5kIGRyb3BwcGluZyBmcm9tIGlubGluZSB0ZXh0ICAKPGJyPjEyNDk4OiBVbmFibGUgdG8gYWRkIEV4dGVybmFsIEphciB1c2luZyB0aGUgSmF2YSBQcm9qZWN0IFdpemFyZCAgCjxicj4xNjE3NDogV3JvbmcgcG9wdXAgbWVudSAgCjxicj4xNjU1MzogU1dUX0FXVC5uZXdfUGFuZWwgZG9lcyBub3Qgd29yayAgCjxicj4xNjc5MTogQ2FuJ3Qgc2VsZWN0IGNoZWNrIGJveGVzICAKPGJyPjE3MTk5OiBUYWJsZSB3aWRnZXQgLSBvbmx5IGxhc3QgY29sdW1uIGhlYWRlciBpcyBjbGlja2FibGUgIAo8YnI+MTczNzU6IENoZWVzZSBvbiBKYXZhIFNjcmFwYm9vayBwYWdlIHJ1bGVyICAKPGJyPjE3MzkwOiBKVW5pdCB0ZXN0Y2FzZXMgcmVzdWx0IGZvciBHcmFwaGljcyAoMSBlcnJvciwgMiBmYWlsdXJlcykgIAo8YnI+MTc1NjU6IEFkZCBKUkUgdmFsaWRhdGlvbiBub3Qgd29ya2luZyAgCjxicj4xNzU2ODogRXJyb3IgZG9lc24ndCBkaXNhcGVhciB3aGVuIHN3aXRjaGluZyB0byBzb3VyY2UgZm9sZGVyIGxheW91dAo8YnI+MTc1NzQ6IFN0YXR1cyBsaW5lIGNvbnRyaWJ1dGlvbnMgYXBwZWFyIHR3aWNlICAKPGJyPjE3NjM3OiBSZXNpemUgcHJvYmxlbSB3aGVuIGRpYWJsZWluZyBvdmVydmlldyBydWxlciBpbiBFZGl0b3IgIAo8YnI+MTc2NjI6IEluY29ycmVjdCBzdGF0dXMgZGlzcGxheSBpbiBuZXcgRmVhdHVyZSBXaXphcmQgIAo8YnI+MTc5MTc6IFNoaWZ0LVRhYiBkb2VzIG5vdCB3b3JrICAKPGJyPjE4MjIzOiBUZXh0IHdpZGdldCB3aXRoIFNXVC5NVUxUSSBoYXMgc3RyYW5nZSBiZWhhdmlvciBvbiBHVEsgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDA0MSAtIFR1ZXNkYXkgTWF5IDI4LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0Mzk4OiBWaXN1YWwgQ29vcmRpbmF0aW9uOiBCb3JkZXJzICgxRlNHT05HKSAgCjxicj40NDExOiBEQ1IgLSBTdXBwb3J0IHByaW50aW5nICgxUFE4UUNLKSAgCjxicj40NDI2OiBTY3JvbGxCYXIgLSBDYW4ndCBxdWVyeSBzaXplICgxRkRWUDIzKSAgCjxicj40NDMxOiBGb2xkZXIgdGFiIGRvZXMgbm90IGdldCBmb2N1cyAoMUZJR0k5NSkgIAo8YnI+NDQzNzogVHJlZSBLZXlib2FyZCBTdXBwb3J0ICgxRk9MWlBUKSAgCjxicj40NDUyOiBNZW51SXRlbTogc2V0SW1hZ2UgZG9lcyBub3Qgc2hvdyBpbWFnZSBvbiBtZW51ICgxRkdOUDhVKSAgCjxicj40NDY5OiBJbmNvbnNpc3RlbmNpZXMgYmV0d2VlbiBzaW5nbGUgbGluZSBUZXh0IGFuZCBSaWNoVGV4dCB3aWRnZXRzICgxRksxUlJNKQo8YnI+NDQ3NDogTm90IHN1cHBvcnR0aW5nIFdpbmRvd3MgQWNjZXNzaWJpbGl0eSBTdGFuZGFyZD8gKDFGTTBJRlMpICAKPGJyPjQ0OTA6IEZvbnRzIGluIGV4YW1wbGVzIGFwcGVhciB0b28gYmlnICgxRk9NQ1dRKSAgCjxicj40NDk2OiBEQ1IgLSBDb250b3VyIG1vdXNlIG1pZGRsZSBidXR0b24gZG9lc24ndCB3b3JrICgxRlJFQVM0KSAgCjxicj40NTAzOiBGb250RGlhbG9nIGlzIG1pc3NpbmcgZm9udHMgKDFGU01SVjApICAKPGJyPjQ1MjY6IFNldmVyZSAtIERlbGV0ZSBrZXkgaXMgbm90IHJlZGlyZWN0ZWQgdG8gZWRpdG9yICgxRlZYRFNUKSAgCjxicj40NTI5OiBDbG9zaW5nIGV4dGVybmFsIE1TIFdvcmQgbWFrZXMgaW4tcGxhY2UgTVMgV29yZCBkaXNhcHBlYXIgKDFGV0c5QVIpCjxicj40NTM0OiBGbGFzaGluZyB3aGVuIGNvbXB1dGVTaXplIGNhbGxlZCBvbiBUb29sYmFyICgxRldMRDFFKSAgCjxicj40NTQ1OiBObyBPUy5HZXRLZXlTdGF0ZSBmdW5jdGlvbiBvbiBtb3RpZiAoMUZaUU9aTSkgIAo8YnI+NDU1MDogSlVuaXQgdGVzdHMgYXNzdW1lcyBib3VuZGFyeSBjb25kaXRpb24gd2hpY2ggaXMgc2V0dGluZyBkZXBlbmRhbnQgKDFHMExRS0QpCjxicj40NTUyOiBBZG9iZSBkb2Vzbid0IGxpa2UgSW1hZ2VEYXRhLi4uICgxRzBaQkUwKSAgCjxicj40NTYzOiBOZWVkIHN1cHBvcnQgZm9yICoueHBtIGFuZCAqLnBuZyBpbWFnZSBmaWxlIGZvcm1hdHMgKDFHM0hXU0EpCjxicj40NjM2OiBUb29sdGlwcyBub3Qgd29ya2luZyBvbiBMaW51eCAoMUdDTjRGSykgIAo8YnI+NDY3MjogRENSIC0gSW5jbHVkZSAiYmVnaW5pbmcgLyBlbmQgIiBhcnJvd3MgdG8gc2VsZWN0IGZpbGVzICgxR0VGWUNHKQo8YnI+NDY3OTogQ29sb3VyIGdyYWRpZW50IG9mIHZpZXdzIGlzIG5vdCBncmFkdWFsICgxNmJpdCBjb2xvciBkZXB0aCkgKDFHRUxXU08pCjxicj40Njk5OiBEQ1IgLSBvdXRzdGFuZGluZyBpc3N1ZSBmb3IgY3VzdG9tZXItIENoYW5naW5nIGN1cnNvciBkdXJpbmcgZHJhZyBvcGVyYXRpb24gKDFHRVRDOFUpCjxicj40NzAzOiBXaW5NRSAtIERpc2FibGVkIGljb25zIGluIHRhYmJlZCBmb2xkZXIgZG8gbm90IGRpc3BsYXkgcHJvcGVybHkuICgxR0VXWExJKQo8YnI+NDcwNjogU3RhY2tPdmVyZmxvdyByZXNpemluZyBXb3JrYmVuY2ggd2luZG93ICgxR0VXTFNVKSAgCjxicj40NzA4OiBGQVRBTCBYIGVycm9yICgxR0YwN0hOKSAgCjxicj40NzA5OiBHUCBydW5uaW5nICggRWNsaXBzZSBeIDIgKSAoMUdFWjlVUikgIAo8YnI+NDcxMTogTmF2aWdhdG9yIG1lc3NlZCB1cCB3aGVuIG1pZGkody9EQkNTKSBpbiBpdCAtQ2FuJ3QgY3JlYXRlIHZpZXcgKDFHRVpOVkMpCjxicj40NzI4OiBXaW5kb3dzIHdpdGggdGFiIHBhZ2VzIHNob3VsZCBhbGxvdyBDdHJsLVRhYiBzd2l0Y2hpbmcgKDFHRklVRzUpCjxicj40Nzg1OiBEQ1IgLSBDdXN0b20gbm90ZWJvb2sgc2Nyb2xsaW5nIG5vdCBvcHRpbWFsICgxR0k5N1ZaKSAgCjxicj40ODM5OiBUYWJGb2xkZXIgbW5lbW9uaWMgcHJvYmxlbSAoMUdLQVBLSykgIAo8YnI+NDg0MDogSGVicmV3OiBjYW5ub3QgcGFzdGUgZnJvbSBleHRlcm5hbCBmaWxlIGludG8gamF2YSBlZGl0b3IgKDFHS0NXVlgpCjxicj40ODUxOiBQcmludCBpZ25vcmVzIHByaW50IHRvIGZpbGUgb3B0aW9uICgxR0tYQzMwKSAgCjxicj40ODY3OiBQZ01lbUZsdXNoKCkgY29uc2lkZXJlZCBleHBlbnNpdmUgKDFHTEVFSkMpICAKPGJyPjU2OTc6ICpQbGVhc2UqIG1ha2UgU1dUIHVzZSBHVEsrIGluc3RlYWQgb2YgTW90aWYgIAo8YnI+ODM0NjogV29ya2JlbmNoIHdpbGwgbm90IHN0YXJ0ICAKPGJyPjkyMTc6IEludGVybmFsIGVycm9yIGF0IG9wZW4gdGhlIHBhY2thZ2UgdmlldyAgCjxicj45NDkxOiAxR1JUUlhROiBXU1dCOldvcmtiZW5jaCAyLjAgUHJvYmxlbS0gQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHdpdGggTXVsdGlQYWdlRWRpdG9yUGFydAo8YnI+MTEyMDQ6IFNvbWUgQWN0aXZlWCBjb250cm9sIGNhbiBub3QgYWNjZXB0IGtleSBpbnB1dC4gIAo8YnI+MTE0MzY6IFJlcXVlc3QgZm9yIHB1YmxpYyBpbnRlcmZhY2UgdG8gY2FsbCAiVUlEZWFjdGl2YXRlKCkiIG9mICBJT2xlSW5QbGFjZU9iamVjdAo8YnI+MTE0OTg6IFN0eWxlZFRleHQgZG9lcyBub3QgYWx3YXlzIHJlZHJhdyB3aGVuIHRoZSBsaW5lIHN0eWxlIGNoYW5nZXMKPGJyPjE0ODQ2OiBBY2Nlc3NpYmlsaXR5OiBnZXRMb2NhdGlvbiBkb2VzIG5vdCBwb3NpdGlvbiBYUCBNYWduaWZpZXIgIAo8YnI+MTUyMTg6IFBsYXRmb3JtIGRvZXMgbm90IHJlY29nbml6ZSB0aGUgR1VJIC0gMjAwMjA1MDIgIAo8YnI+MTU0NjY6IEltYWdlRGF0YS5ibGl0IHRocm93cyBBcnJheUluZGV4T3V0T2ZCb3VuZHMgRXhjZXB0aW9uICAKPGJyPjE1NTQ4OiAnWCcgY2xvc2UgYm94IG9uIHRhYiBoaWRkZW4gYnkgYXJyb3dzICAKPGJyPjE1NTY0OiBqYXZhdy5leGUgaGFzIGdlbmVyYXRlZCBlcnJvcnMgYW5kIHdpbGwgYmUgY2xvc2VkIGJ5IHdpbmRvd3MgIAo8YnI+MTU2NTM6IFRhYiBoYWx0cyBvbiBDQ29tYm8gb2JqZWN0cyAgCjxicj4xNjA5NDogQ2hlZXNlIG9uIENUYWJGb2xkZXIgd2hlbiByZXNpemluZyAgCjxicj4xNjIwMDogVHJhY2tlciBsZWF2ZXMgY2hlZXNlICAKPGJyPjE2MzQ1OiBKVk0gdGVybWluYXRpb24gd2hlbiBhdHRlcG10aW5nIHRvIHJ1biBVcGRhdGUgTWFuYWdlciAgCjxicj4xNjQ1ODogVHJ5aW5nIHRvIGZyZWUgYSBHZGtFdmVudDogcG9pbnRlcj1OVUxMICAKPGJyPjE2NTQ5OiBDYW5ub3QgbmF2aWdhdGUgdGFiYmVkIG5vdGVib29rIHdpdGgga2V5Ym9hcmQgIAo8YnI+MTY1NTc6IFRhYiBkb2VzIG5vdCBtb3ZlIGN1cnNvciBiZXR3ZWVuIHRleHQgZmllbGRzICAKPGJyPjE2NTY1OiBUeXBlZCB0ZXh0IGlzIGxvc3QgIAo8YnI+MTY1NzY6IEFDQzogQ2hlY2tib3hlcyBpbiBsaXN0cyBhcmUgbm90IHJlYWwgY2hlY2tib3hlcyAgCjxicj4xNjgyODogQ1RhYkZvbGRlciBmbGFzaGluZyB0b29sdGlwICAKPGJyPjE2OTI3OiBFeHRlcm5hbCBwcm9ncmFtcyBzdXBwb3J0IG9uIFBob3RvbiAgCjxicj4xNjk1NzogVHJlZUl0ZW0uc2V0Rm9yZWdyb3VuZENvbG9yKCkgZG9lc24ndCB3b3JrICAKPGJyPjE2OTY3OiBTdHJhbmdlIHNjcm9sbCBiZWhhdmlvciBpbiBwYWNrYWdlIGRpYWxvZyAgCjxicj4xNjk5NTogSG92ZXJIZWxwIGV4YW1wbGUgZG9lcyBub3QgY3JlYXRlIE9OX1RPUCBTaGVsbCBmb3IgdG9vbHRpcHMgIAo8YnI+MTcwMjI6IFNXVCBMYXlvdXRzIGV4YW1wbGUgLSBtaXNzaW5nIHdpbmRvdyB0aXRsZSAgCjxicj4xNzA5MDogU3R5bGVkVGV4dCBzZWxlY3RzIHRleHQgd2hlbiBtZW51IGlzIHNob3dpbmcgIAo8YnI+MTcxODM6IEljb24gaW4gd2l6YXJkIGJhbm5lciBjbGlwcGVkICAKPGJyPjE3MjA4OiBMb25nIG9wZXJhdGlvbnMgYXJlIGJlaW5nIG1vZGFsLiAgCjxicj4xNzMwNTogU2VhcmNoIERpYWxvZzogSmF2YSBQYWdlIGNsaXBwZWQgIAo8YnI+MTczMjA6IFNlYXJjaCBkaWFsb2cgZnJlZXplcyBFY2xpcHNlICAKPGJyPjE3MzY4OiA0IFRvb2xiYXIgaWNvbnMgcHVzaGVkIG9mZiB0aGUgdG9vbGJhciB3YXkgdG8gdGhlIHJpZ2h0ICAKPGJyPjE3NDg4OiBJbWFnZSBTdXBwb3J0IGluIFNXVCAtIEZBUSAoMUc1WjFLUykgIAo8YnI+MTc0OTc6IEZpbGVEaWFsb2cgb3BlbigpIHJldHVybnMgd3JvbmcgcmVzdWx0ICAKPGJyPjE3NjMyOiAiQ29sb3IgQnV0dG9uIiBkb2Vzbid0IHVwZGF0ZSAgCjxicj4xNzgwMjogTW92aW5nIGEgc2FzaCByZXF1aXJlcyBhbiBleHRyYSBjbGljayB0byB0YWtlIGVmZmVjdCAgCjxicj4xNzgxMTogVHdvIG1lbnUgYmFyIGl0ZW1zIGhpZ2hsaWdodGVkIGF0IHRoZSBzYW1lIHRpbWUgIAo8YnI+MTc4MTY6IE1lbnUgYXBwZWFycyB0aGVuIGRpc3NhcHByZWFycyB3aXRoIGNsaWNrIGFmdGVyIEFsdC4gIAo8YnI+MTc4MzI6IFZlcnRpY2FsIFNjcm9sbGJhciBjbGlwcGVkICAKPGJyPjE3ODM0OiBKYXZhRG9jIEFQSSBiYWQgZm9yIEltYWdlICAKPGJyPjE3ODM1OiBTbWFsbHRhbGsgY29kZSBhcm91bmQgOikgIAo8YnI+MTc5Mjg6IE5QRSBvbiBhZGRyZXNzYm9vayBleGFtcGxlICAKPGJyPjE3OTMyOiBFbXVsYXRlZCBDb29sYmFyIGRvIG5vdCByZXNpemUgd2hlbiB0aGUgbGFzdCBpdGVtIG9uIHRoZSByb3cgaXMgcmVtb3ZlZAo8YnI+MTc5MzM6IEVtdWxhdGVkIENvb2xiYXIgY2hldnJvbiB0b28gbmFycm93IG9uIFBob3RvbiAgCjxicj4xODAwNTogQnVzeUluZGljYXRvciBzaG91bGQgY2hlY2sgYXJncyAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDQwIC0gVHVlc2RheSBNYXkgMjEsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjM1NTQ6IFRQMTI1OiB3ZWlyZCB0YWIgb3JkZXIgaW4gY3JlYXRlIHByb2plY3Qgd2l6YXJkICgxRzgzVlA4KSAgCjxicj40NDI0OiBUYWJsZSBkcmF3cyBhIHN0cmF5IHBpeGVsIGluIHRvcCBsZWZ0IGNvcm5lciAoMUZTOVFCUSkgIAo8YnI+NDQ3NjogTm8gc3luY0V4ZWMgcnVubmFibGVzIHJ1biBkdXJpbmcgc2Nyb2xsaW5nICgxRk1HRzJYKSAgCjxicj40NTI4OiBOZWVkIEZvY3VzSW4gZXZlbnQgZm9yIE9sZUNsaWVudFNpdGUgKDFGVzJTMDApICAKPGJyPjQ1ODY6IFVzZSBjaGVja1dpZGdldCgpIG1vcmUgb2Z0ZW4gKDFHODBVUlEpICAKPGJyPjQ2MDk6IEZpbGxMYXlvdXQgc2hvdWxkIGhhdmUgRmlsbExheW91dCh0eXBlKSBjb25zdHJ1Y3RvciAoMUc5WEJQSSkKPGJyPjQ2OTQ6IEVkaXRvciBOYW1lIGlzIG1pc3NpbmcgZnJvbSB0YWIgKDFHRVQ5M0opICAKPGJyPjQ3MjY6IENPREUgQ0hBTkdFUyBBRlRFUiBUSEUgRlJFRVpFICgxR0Y5WUYwKSAgCjxicj40Nzg4OiBGZWF0dXJlIHJlcXVlc3Q6IHN0eWxlZCB0cmVlIGl0ZW1zICgxR0lHSks0KSAgCjxicj40Nzg5OiBYUCAtIExvb2sgYW5kIGZlZWwgcHJvYmxlbXMgKDFHSUdHS00pICAKPGJyPjQ4MzE6IERORCBub3Qgd29ya2luZyBwcm9wZXJseSAoMUdKWU9aQykgIAo8YnI+NDgzODogQ2FuIGNyZWF0ZSBGb250RGF0YSB3aXRoIG51bGwgbmFtZSBzdHJpbmcgKDFHS0E5M1ApICAKPGJyPjQ5NDE6IEZvY3VzIGNhbGxiYWNrIGR1cmluZyBPbGVDbGllbnRTaXRlIGRlYWN0aXZhdGUgY2FsbCAgCjxicj40OTQyOiBDb21ibyBzZWxlY3Rpb24gaW5kZXggc2hvdWxkIG1vdmUgd2hlbiB1cHBlciBpdGVtIHJlbW92ZWQgKDFHTEdBNDEpCjxicj41OTEwOiBUb29sYmFyIHdpdGggYWxsIGl0ZW1zIGRpc2FibGVkIHN0aWxsIHNob3dzIHVwIGluIHRhYiBvcmRlciAgCjxicj41OTM2OiBDb21wb3NpdGUuc2V0VGFiTGlzdCBzaG91bGQgYWNjZXB0IG51bGwgIAo8YnI+NjE5ODogRm9jdXMgbG9zdCBpbiB0YWIgZm9sZGVyIHdoZW4gc3dpdGNoaW5nIHBhZ2VzICAKPGJyPjY0MDY6IEogSU1FIHBvc2l0aW9uaW5nIGluY29ycmVjdAo8YnI+NjUxNDogQ29kZSBhc3Npc3QgYmVoYXZlcyBkaWZmZXJlbnRseSBvbiBMaW51eCAgCjxicj42ODU2OiBEZWZhdWx0IGJ1dHRvbnMgZGlmZmVyZW50IG9uIFZhcmlhYmxlIGRpYWxvZyAgCjxicj44MTYyOiBBY2Nlc3NpYmlsaXR5OiBmb2N1cyBnb2VzIG1pc3NpbmcgaW4gQ1ZTIGxvY2F0aW9uIHdpemFyZCAgCjxicj44NzkxOiBPdmVyYWdncmVzc2l2ZSBmb2N1cyBncmFiYmluZyAgCjxicj45MTQxOiBXb3JrQmVuY2gtPlByZWZlcmVuY2UgZGlhbG9nJ3MgYnV0dG9ucyBmb250IGlzIHRvbyBzbWFsbC4gIAo8YnI+OTI4NzogQ29tYm8uc2V0VGV4dCBkb2VzIG5vdCB3b3JrCjxicj4xMDQ5MTogQm9sZCBidXR0b24gd2lsbCBub3QgYm9sZCB0ZXh0IGluIFNXVCBUZXh0RWRpdG9yIEV4YW1wbGUgIAo8YnI+MTEwNzQ6IEV2ZW50VGFibGUuc2VuZEV2ZW50IHNob3VsZCBwcm9iYWJseSB1c2UgdHJ5L2ZpbmFsbHkgIAo8YnI+MTEzNDk6IEVkaXRvciBUYWJzIHNob3VsZCBmaWxsIHRvIHRoZSByaWdodC4gIAo8YnI+MTEzNjk6IENvb2xiYXIgZmVhdHVyZSByZXF1ZXN0cyAgCjxicj4xMTUxNjogVmlld0Zvcm0gc2hvdWxkIG92ZXJyaWRlIGNvbXB1dGVUcmltCjxicj4xMTczODogZ3Jvd2luZyBzdGF0dXMgYmFyCjxicj4xMTg0NzogT0xFIEVkaXRvciBwcmV2ZW50cyBuYXZpZ2F0aW9uIHdpdGhvdXQga2V5cyAgCjxicj4xMjM5ODogQWNjZXNzaWJpbGl0eSBwcm9ibGVtcyAgCjxicj4xMjY0MTogRXJyb3IgaW4gLmNsYXNzcGF0aCBmb3IgUGhvdG9uICAKPGJyPjEyOTA0OiBBY2Nlc3NpYmxlIHJlc2l6aW5nIG9mIFZpZXdzIHNob3VsZCBtb3ZlL2NoYW5nZSB0aGUgRGlzcGxheSdzIEN1cnNvcgo8YnI+MTI5NzI6IE5vdGljZWQgaW5jcmVhc2VkIG51bWJlciBvZiBFY2xpcHNlIGNyYXNoZXMgIAo8YnI+MTM2MjI6IERDUiAtIG5lZWQgYWJpbGl0eSB0byBjYW5jZWwgd2luZG93IHN5c3RlbSBzaHV0ZG93bgo8YnI+MTQ0NDk6IFtNNV0gZXJyb3IgYnJpbmdpbmcgdXAgQ29kZSBGb3JtYXR0ZXIgcGFnZSAgCjxicj4xNDU0NjogVGFibGVDb2x1bW4gYWxpZ25tZW50IHByb2JsZW0gd2l0aCBNb3RpZiAgCjxicj4xNDY1NjogUmVwYWludCBvZiB3aW5kb3cgZG9lcyBub3Qgd290ayB3aXRoIElNRSB1cAo8YnI+MTQ4MDE6IE1uZW1vbmljIGNoYXJhY3RlciBkb2Vzbid0IHdvcmsgb24gVGFiRm9sZGVyIG9uIFFOWCAgCjxicj4xNTEyNDogTlBFOiBMYWJlbCBEZWNvcmF0aW9ucyBwcmVmZXJlbmNlIHBhZ2UgIAo8YnI+MTUxMzQ6IE9wZW4gVHlwZSBkaWFsb2cgaGFzIHdyb25nIGluaXRpYWwgZm9jdXMgIAo8YnI+MTUxNzI6IGZvY3VzIG5vdCBvbiB0ZXh0IGZpZWxkIGZvciBPcGVuVHlwZURpYWxvZyAgCjxicj4xNTIyNDogRmlsZURpYWxvZyBkb2VzIG5vdCByZXR1cm4gdGhlIGZpbGUgc2VsZWN0ZWQgb24gUG9ja2V0UEMgIAo8YnI+MTUyMzc6IENvb2xiYXIgLSBjb3JydXB0cyB3cmFwIGxheW91dCB3aGVuIGl0ZW1zIGRlbGV0ZWQgIAo8YnI+MTU1MTM6IENDb21iby5zZXRUb29sdGlwVGV4dCgpIGRvZXNuJ3Qgd29yayAgCjxicj4xNTUxNjogR1AgLSBFY2xpcHNlIGNyYXNoZWQgIAo8YnI+MTU1NzU6IFRyZWUgd2l0aCBjaGVja2JveCBpdGVtcyBhcmUgbm90IGFjY2Vzc2libGUgIAo8YnI+MTU2MTM6IENvcHkvcGFzdGUgaW5zZXJ0cyBOVUxMICAKPGJyPjE1NzA1OiBFZGl0b3Igd2l0aCBmb2N1cywgdGFiIHRleHQgZGlzYXBwZWFycyBzb21ldGltZXMKPGJyPjE1ODcyOiBFZGl0b3IgYXJlYSBmcmFtZSBzaG91bGQgYWxpZ24gd2l0aCBvcGVuIGVkaXRvcidzLCBleGNsdWRpbmcgZHJvcCBzaGFkb3cKPGJyPjE1OTg5OiBDb29sYmFyIHdhbGtiYWNrIHdoZW4gYWRkaW5nIGl0ZW0KPGJyPjE2MDY5OiBDYW4ndCBzZWUgc291cmNlIGluIGltcG9ydGVkIGJpbmFyeSBTV1QgIAo8YnI+MTYyMTA6IENvcmUgRHVtcCBPY2N1cnJlZCB3aGlsZSBpbiBPcGVuIFR5cGUgZGlhbG9nICAKPGJyPjE2MjQ1OiBDVGFiRm9sZGVyIC0gdG9vbHRpcHMgYW5kIGFycm93aW5nIGFyb3VuZAo8YnI+MTYyODE6IEVjbGlwc2UgZG9lcyBub3QgY29tZSB1cAo8YnI+MTYyOTc6IFdyb25nIHRhYiBvcmRlciBpbiBuZXdlciBidWlsZHMKPGJyPjE2MzE4OiBDYW4ndCBhY3RpdmF0ZSB2aWV3czsgbG9zaW5nIGV2ZW50cwo8YnI+MTY0NjU6IFN0YWNrIE92ZXJmbG93IHdoZW4gaW1wb3J0aW5nIGEgcHJvamVjdAo8YnI+MTY1MjM6IFVuYWJsZSB0byBkb3VibGUtY2xpY2sKPGJyPjE2NTI1OiBFY2xpcHNlIGRvZXMgbm90IGxheW91dCBwcm9wZXJseQo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAzOSAtIFR1ZXNkYXkgTWF5IDE0LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo2MTAzOiBNZW51IG1uZW1vbmljcyBkb24ndCB3b3JrIHdoZW4gdG9vbGJhciBoYXMgZm9jdXMgIAo8YnI+ODgwNTogQ29udGV4dCBtZW51cyBhbmQgZmluZGluZyByZWZlcmVuY2VzIHRvIG1ldGhvZHMgIAo8YnI+MTQ4MjM6IERyYWcmRHJvcDogbmVlZCB3YXkgdG8gc2V0IHRoZSBkZWZhdWx0IGJlaHZhaW91ciBvZiBhIGRyb3AgbyAgCjxicj4xNTA1NTogQ29sdW1uIEhlYWRlciBIZWlnaHQgaW4gYSBUYWJsZSBvciBUYWJsZSBUcmVlIFNXVCB3aWRnZXQgIAo8YnI+MTUyNTM6IExpbnV4IEdUSyAyIGxpYnJhcnkgbm90IGZvdW5kICAKPGJyPjE1Mjc0OiBDYW4ndCBhZGQgZXh0ZXJuYWwgamFyIGluIExpbnV4LUdUSyB2ZXJzaW9uICAKPGJyPjE1NjAzOiBQcmVmZXJlbmNlIHBhZ2Ugbm8gbG9uZ2VyIHJlc2l6ZXMgdG8gZml0IGNvbnRlbnRzICAKPGJyPjE1NjM0OiBUYWJsZSBub3QgYWN0aW5nIGxpa2UgbGlzdCB3aGVuIGxhc3QgY29sdW1uIGRlbGV0ZWQgIAo8YnI+MTU2Mzc6IENoZWVzZSBpbiBUYWJsZSB3aGVuIHNldHRpbmcgY29sdW1uIGltYWdlICAKPGJyPjE1NjQzOiBDaGVlc2UgaW4gVGFibGUgd2hlbiBjaGFuZ2luZyBmb250ICAKPGJyPjE1NzA1OiBFZGl0b3Igd2l0aCBmb2N1cywgdGFiIHRleHQgZGlzYXBwZWFycyBzb21ldGltZXMgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAzOCAtIFR1ZXNkYXkgTWF5IDcsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjYzOTE6IERpc3BsYXkuZ2V0QWN0aXZlU2hlbGwoKSBjYW4gYW5zd2VyIHdyb25nIHZhbHVlICAKPGJyPjcxNzA6IFRhYiBzcGFjZSBzaXplIHByb2JsZW0gIAo8YnI+ODU0MjogQ2xvc2UgcGVyc3BlY3RpdmUgd2l0aCBtb3VzZSBpc24ndCBwb3NzaWJsZSAgCjxicj44NTkxOiBFZGl0b3IgdGFicyBzaG91bGQgc2Nyb2xsIGF1dG9tYXRpY2FsbHkgdG8gZmlsbCBhdmFpbGFibGUgdGFiIHNwYWNlCjxicj44NjQ4OiBTdHlsZWRUZXh0IC0gQ2FyZXQgY2FuIGJlIGhpZGRlbiB1bmRlciBzY3JvbGxiYXIgIAo8YnI+MTAyNjM6IEVkaXRvciBrZWVwcyBzY3JvbGxpbmcgYWZ0ZXIgbW91c2UgdXAgIAo8YnI+MTIyMjY6IFNvbGFyaXMgLSBjYW4ndCBjb3B5IGZpbGUgaW50byBzYW1lIGRpcmVjdG9yeSAgCjxicj4xMjM2MDogVHJhdmVyc2VFdmVudCBlLmRvaXQgZG9lc24ndCB0dXJuIG9mZiBvbiBUYWJGb2xkZXIgIAo8YnI+MTI5NTI6IEFsdCt7Y2hhcn0gZ2V0cyBpbnNlcnRlZCBhcyB0ZXh0ICAKPGJyPjEzNjE0OiBKRmFjZSBUYWJsZXMgaGF2ZSBhbiBleHRyYSBjb2x1bW4gIAo8YnI+MTM2NTE6IFByaW50ZWQgb3V0cHV0IGlzc3VlcyAgCjxicj4xMzcyNTogUmV2ZXJ0IGlzIG11Y2ggc2xvd2VyIHRoYW4gY2xvc2UgYW5kIHJlLW9wZW4gaW4gamF2YSBlZGl0b3IuICAKPGJyPjE0NDMxOiBUYWJsZVZpZXdlciBpbmNvbnNpc3RlbnQgd2hlbiBjbGlja2luZyBvZmYgb2YgaXRlbSBsaXN0ICAKPGJyPjE0ODY2OiBTaGlmdC1zZWxlY3Rpb24gZG9lc24ndCB3b3JrIGltbWVkaWF0ZWx5IGFmdGVyIHJlc3RhcnQgIAo8YnI+MTQ4ODA6IENvbHVtbiByZXNpemUgcHJvYmxlbXMvY2hlZXNlICAKPGJyPjE0OTAyOiBFeGVjdXRhYmxlIGxhdW5jaGVyIGRvZXMgbm90IHJlc3RhcnQgIAo8YnI+MTQ5MzU6IEVtdWxhdGVkV2lkZ2V0VGVzdHMgZmFpbCBvbiBMaW51eCAgCjxicj4xNDkzNzogTGF1bmNoIGZyb20gTmV3IE9mZmljZSBEb2N1bWVudCBoYW5ncyB1bnRpbCBFY2xpcHNlIGV4aXRzLiAgCjxicj4xNDk2NDogU3R5bGVkVGV4dCAtIGFkZCBuZXcgQVBJIGZvciByZXBsYWNpbmcgc3R5bGUgcmFuZ2VzICAKPGJyPjE0OTgxOiBGb2N1cyBub3Qgc2V0IGFueW1vcmUgIAo8YnI+MTUwNTc6IGdldFN5c3RlbUNvbG9yKFNXVC5DT0xPUl9XSURHRVRfRk9SRUdST1VORCkgYWx3YXlzIHJldHVybnMgYmxhY2sKPGJyPjE1MTE1OiByZW1vdmVDb2x1bW4gYXJlIGJyb2tlbiBpbiBFbXVsYXRlZCBUYWJsZSAgCjxicj4xNTE0MTogVGFiIGlzIGNhdWdodCBieSByZWFkIG9ubHkgdGV4dCAgCjxicj4xNTE1MDogUHJvZ3Jlc3MgYmFyIGJlaGF2ZXMgZXJyYXRpY2FseQo8YnI+MTUyMDg6IFN0eWxlZFRleHQgLSB0ZXh0IGNoYW5nZSBldmVuIG1lY2hhbmlzbSBwb29ybHkgZG9jdW1lbnRlZCAgCjxicj4xNTM0ODogR1BGIGluIE9TLk1vdmVNZW1vcnlXICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMzcgLSBUdWVzZGF5IEFwcmlsIDMwLCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IkxJQlJBUlkgTE9DQVRJT04gQ0hBTkdFIj48L2E+TElCUkFSWSBMT0NBVElPTiBDSEFOR0U8L2gzPgoKQXMgb2YgdGhpcyBidWlsZCwgbGlicmFyaWVzIGFyZSBubyBsb25nZXIgaW4gdGhlIG9yZy5lY2xpcHNlLnN3dCBwbHVnaW4uCgo8cD5MaWJyYXJpZXMgY2FuIG5vdyBiZSBmb3VuZCBpbiB0aGUgYXNzb2NpYXRlZCB3aW5kb3dpbmcgc3lzdGVtIGZyYWdtZW50IHdoaWNoIHRvIGRhdGUgYXJlOgo8dWw+CjxsaT5vcmcuZWNsaXBzZS5zd3Qud2luMzIgCjxsaT5vcmcuZWNsaXBzZS5zd3QubW90aWYKPGxpPm9yZy5lY2xpcHNlLnN3dC5waG90b24KPGxpPm9yZy5lY2xpcHNlLnN3dC5ndGsKPGxpPm9yZy5lY2xpcHNlLnN3dC5ndGsxeAo8L3VsPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDY0MTogSWNvbiBsb29rdXAgZmFpbHMgZm9yIHNvbWUgd2luZG93cyBpY29uIHBhdGhzICgxR0QyREVZKSAgCjxicj40ODAyOiBTdHlsZWRUZXh0IC0gQmlkaSBTdXBwb3J0IE9wZW4gSXNzdWVzICgxR0laNUczKSAgCjxicj40ODQyOiBDYW4ndCBsYXVuY2ggZXh0ZXJuYWwgZWRpdG9ycy4gKDFHS0VZT0UpICAKPGJyPjYwOTg6IEVYQ0VQVElPTl9BQ0NFU1NfVklPTEFUSU9OIHJ1bm5pbmcgRWNsaXBzZSAgCjxicj42ODU4OiBHUCAtIENyYXNoIFZNICAKPGJyPjg4MjY6IEdQRiAtIGNsb3NpbmcgYSBKYXZhIGVkaXRvciAgCjxicj44ODM3OiBXaW5kb3cgcG9zaXRpb24gY2hhbmdlZCBpbmNvcnJlY3RseSBpbiBTaGVsbC5vcGVuKCkgIAo8YnI+OTI5NzogRWNsaXBzZSBjcmFzaGVkICAKPGJyPjExMzc0OiBncDogQ3Jhc2ggaW4gc3d0LXdpbjMyLTIwMjYuZGxsICAKPGJyPjExNTg3OiBCSURJOkphdmEgZWRpdG9yIGFuZCBUZXh0IGVkaXRvcjogVXNlciBJbnRlcmZhY2UgaXNzdWVzLiAgCjxicj4xMjgxMTogVGFibGVDb2x1bW5zIGRvbid0IHBhY2sgcHJvcGVybHkgIAo8YnI+MTMyMDA6IGdwIC0gTW92ZU1lbW9yeSBlcnJvciBvbiBXaW5kb3dzIFhQICAKPGJyPjE0MDQ5OiBncCAtIENyYXNoIGluIE9TLk1vdmVNZW1vcnlXICAKPGJyPjE0MjIwOiBncCAtIENyYXNoIGNsb3NpbmcgZWRpdG9yICAKPGJyPjE0MjQ1OiBncCAtIGNyYXNoIHdoaWxlIGRlYnVnZ2luZyAoTlJDUkFTSCkgIAo8YnI+MTQyNDk6IEV4Y2VwdGlvbiB3aGlsZSBzdGVwcGluZyAgCjxicj4xNDI4MDogVW5zYXRpc2ZpZWQgTGluayBFcnJvcnMgcnVubmluZyBsaWJzd3QtcGktZ3RrLTIwMzQuc28gb24gTGludXgvR3RrIDIuMAo8YnI+MTQ0MjU6IEZvbnQgZGlhbG9nIGV4Y2VwdGlvbiAgCjxicj4xNDUyODogUHJvYmxlbSB3aXRoIExhYmVsLmNvbXB1dGVTaXplLiAgCjxicj4xNDUzODogU3R5bGVkVGV4dCAtIGJpZGkgLSBjaGFuZ2UgYmFja3NwYWNlIGFuZCBkZWxldGUgYmVoYXZpb3IgIAo8YnI+MTQ4MTM6IENsYXNzQ2FzdEV4Y2VwdGlvbiBjcmVhdGluZyBhIG5ldyBSdW4gY29uZmlndXJhdGlvbiAgCjxicj4xNDg3MjogQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGluIFRhYmxlSXRlbS5pbnNlcnRDb2x1bW4gIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAzNiAtIFR1ZXNkYXkgQXByaWwgMjMsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ4MzQ6IERDUiAtIG1uZW1vbmljcyBkbyBub3Qgd29yayBvbiB0YWJiZWQgcGFnZXMgKDFHSzdPME4pICAKPGJyPjcxODk6IE1ldGhvZCBoaWdobGlnaHQgaW4gYm9yZGVyIGRvZXMgbm90IG1hdGNoIHRoZSBtZXRob2QgIAo8YnI+ODI1MzogUmlnaHQgY2xpY2tpbmcgZG9lcyBub3QgYnJpbmcgdXAgY29udGV4dCBtZW51ICAKPGJyPjgzMDY6IEluY29uc2lzdGVuY2llcyBpbiBTV1QgZXhhbXBsZSBkZXNjcmlwdGlvbnMgIAo8YnI+ODUzODogTWlzbWF0Y2ggYmV0d2VlbiBzZWxlY3RlZCB0YWIgYW5kIGRpc3BsYXllZCB0YWIgIAo8YnI+ODU0NDogU29tZSBwcm9ibGVtcyB3aXRoIHRoZSBlZGl0b3ItcGFuZSAocmVwYWludCwgZm9jdXMpICAKPGJyPjkzNjA6IFRleHQgZW50cnkgaW4gY3ZzIGNvbW1lbnQgZGlhbG9nIGNhbid0IGRlYWwgd2l0aCBxdWljayB0eXBpbmcKPGJyPjk3OTQ6IExpbnV4LUdUSyBLZXlFdmVudHMgYmFkL2RpZmZlcmVudCBmcm9tIHRoZSBvdGhlciBwbGF0Zm9ybXMKPGJyPjEyOTQ3OiBDb2xvciBQcmVmZXJlbmNlcyBpbiBQcmVmZXJlbmNlcy0+SmF2YS0+RWRpdG9yICAKPGJyPjEzODI2OiBQZXJmb3JtYW5jZSBpc3N1ZSBpbiBUYWJsZS5SZW1vdmVBbGwoKSAgCjxicj4xMzkyMjogRWNsaXBzZSBjcmFzaGVzIHdoZW4gcnVubmluZyBMYXlvdXRFeGFtcGxlICAKPGJyPjEzOTk5OiBTdHlsZWRUZXh0IC0gYXBwZW5kaW5nIHNpbmdsZSBsaW5lIGRhdGEgZG9lc24ndCB1cGRhdGUgcHJvcGVybHkKPGJyPjE0MDQ3OiBTdHlsZWRUZXh0IC0gaW5lZmZpY2llbnQgcmVkcmF3IGR1cmluZyB0ZXh0IGNoYW5nZSB3aXRoIHdvcmQgd3JhcAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAzNSAtIFRodXJzZGF5IEFwcmlsIDE4LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9Ik5ldyBBUElzIj48L2E+TmV3IEFQSXM8L2gzPgo8dWw+CjxsaT5EaXNwbGF5LnNldEN1cnNvckxvY2F0aW9uPC9saT4KPGxpPkdyaWRMYXlvdXQoaW50LGJvb2xlYW4pPC9saT4KPC91bD4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ2MDI6IEdyaWRMYXlvdXQgc2hvdWxkIGhhdmUgR3JpZExheW91dChudW1Db2x1bW5zKSBjb25zdHJ1Y3RvciAoMUc5WjczRCkKPGJyPjg1NDk6IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzIDQgVW5oYW5kbGVkIGV4Y2VwdGlvbiBjYXVnaHQgaW4gZXZlbnQgbG9vcAo8YnI+OTAyOTogR0Muc2V0Q2xpcHBpbmcoUmVjdGFuZ2xlKSBzaG91bGQgaGFuZGxlIG51bGwgYXJndW1lbnQgb24gR1RLICAKPGJyPjEwNTkwOiBHVEsgVmVyc2lvbiAvIFRyZWUgVmlldyBibGFua3MuLi4gIAo8YnI+MTA3MTU6IENvZGUgQXNzaXN0IGRpYWxvZyBoaWRlIGFmdGVyIHByZXNzIGFuZCByZWxlYXNlIENUUkwgKyBTUEFDRSAgCjxicj4xMTE4MjogUHJvcGVydHkgU2hlZXQgZG9lcyBub3QgYWxsb3cgZWRpdGluZyB3aGVuIHRoZXJlIGlzIG9ubHkgb25lIHByb3BlcnR5Cjxicj4xMTUxNTogY29tcHV0ZVRyaW0gYW5kIGdldENsaWVudEFyZWEgYXJlIGluY29uc2lzdGVudCBpbiBDVGFiRm9sZGVyICAKPGJyPjExNzEzOiBEZXNjcmlwdGlvbnMgaW4gcHJlZmVyZW5jZSBwYWdlcyBhcmVuJ3QgYWxpZ25lZCAgCjxicj4xMTcxNTogVGFiIGRvZXNuJ3Qgc3dpdGNoIGZpZWxkcyBvbiBndGsgIAo8YnI+MTE4MzU6IFN0cmFuZ2UgYmVoYXZpb3VyIG9mIGJhY2tzcGFjZSBpbiBuZXcgSmF2YSBDbGFzcyBkaWFsb2cgIAo8YnI+MTE5MzU6IENhbid0IEN0cmwrVGFiIG91dCBvZiBQREUgRWRpdG9yJ3MgZGVwZW5kZW5jaWVzIHBhZ2UgIAo8YnI+MTIwNzM6IE1vdmluZyBzaGVsbCBhYm92ZSBvdGhlciBzaGVsbHMgZG9lcyBub3Qgd29yay4gIAo8YnI+MTI4ODI6IERDUjogU2V0IEN1cnNvciBsb2NhdGlvbiBwcm9ncmFtbWF0aWNhbGx5IGZvciBhY2Nlc3NpYmlsaXR5ICAKPGJyPjEzMTk0OiBVc2FiaWxpdHk6IGVkaXRvciB0YWJzICAKPGJyPjEzMzg0OiBOUEUgb24gbGF1bmNoaW5nICAKPGJyPjEzNDMyOiBPbGVDb250cm9sU0l0ZSBkb2Vzbid0IHByb3BhZ2F0ZSBXTV9TRVRGT0NVUyBtZXNzYWdlIHRvIGFuIEFjdGl2ZVggY29udHJvbAo8YnI+MTM2Mzk6IENvbnRyb2xzIGRvIG5vdCBhcHBlYXIgaW4gdG9vbCBpdGVtcyAgCjxicj4xMzgwMDogQ2FuIG5vdCBnZXQgRm9jdXNFdmVudCBmcm9tIENvbWJvICAKPGJyPjEzOTgyOiBFY2xpcHNlIHdvbid0IHN0YXJ0IG9uIEdUSzIgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAzNCAtIFR1ZXNkYXkgQXByaWwgOSwgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNjc3NDogV2luQ0UgLSBpdGVtcyByZWdhcmRpbmcgUG9ja2V0IFBDIChpbmNsdWRpbmcgMjAwMikgaW50ZWdyYXRpb24KPGJyPjg4MDY6IE1vdmluZyB2aWV3cyBpcyBkaWZmaWN1bHQgIAo8YnI+OTI0NTogVG9vbEl0ZW1zIGluIGEgVG9vbEJhciBub3QgZGlzcGxheWluZyBpbWFnZXMgb24gV2luQ0UgIAo8YnI+OTYxNjogUmVzaXplIGNvbHVtbiBsZWF2ZXMgc29tZSBjaGVlc2UgaW4gdGhlIHRhYmxlICAKPGJyPjEwNjAzOiBBZGQgQnJlYWtwb2ludCBrZWVwcyBwcm9tcHRpbmcgbWUgIAo8YnI+MTA5Mzc6IENvbnZlcnRlciBwcm9ibGVtIG9uIFNvbGFyaXMgIAo8YnI+MTE1MjA6IFNoZWxsQWRhcHRlci5zaGVsbERlYWN0aXZhdGVkKCkgbmV2ZXIgY2FsbGVkIG9uIExpbnV4LU1vdGlmICAKPGJyPjExNzM0OiBGb2N1cyBub3Qgb24gIkZpbmlzaGVkIiBidXR0b24gIAo8YnI+MTE5NDA6IERvd24gYXJyb3cgZG9lcyBub3QgYWNjZXNzIGRyb3AtZG93biBwb3J0aW9uIG9mIHRvb2xiYXIgYnV0dG9ucwo8YnI+MTIyNDE6IENvZGVhc3Npc3QgZGlzYXBwZWFyIGFmdGVyIGEgZmV3IHNlY29uZHMgIAo8YnI+MTI1NzM6IFRhYmxlIHNlbmRzIHNlbGVjdGlvbiBldmVudCB0d2ljZSB3aGVuIGluIFRhYkZvbGRlcgo8YnI+MTI3ODc6IENoYW5naW5nIGEgbWVudSBpdGVtJ3MgdGV4dCBtYWtlcyBpdHMgaWNvbiBkaXNhcHBlYXIgIAo8YnI+MTI4ODU6IExhYmVsIGFzIGEgc2VwZXJhdG9yIGRvZXNuJ3QgcmVzaXplIHByb3Blcmx5ICAKPGJyPjEzMDA2OiBBbHQrMSB3aXRoIGJsYW5rIFRhYkZvbGRlciByZXN1bHRzIGluIE5QRSAgCjxicj4xMzAxNDogU2V0VG9vbFRpcFRleHQgY2FsbGVkIG11bHRpcGxlIHRpbWVzIGRvZXMgbm90IHJlc2l6ZS4KPGJyPjEzMDQ5OiBDVGFiRm9sZGVyIGZvY3VzIHRyYXZlcnNpbmcgaXMgYnVzdGVkICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMzMgLSBUdWVzZGF5IEFwcmlsIDIsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjEyNDQ2OiBTV1QgVGFibGUgQ29sdW1uIEltYWdlIENvcnJ1cHRpb24gIAo8YnI+MTI0NDc6IFRyZWUuZ2V0U2VsZWN0aW9uKCkgaXMgc2xvdyBmb3IgbGFyZ2UgdHJlZXMgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAzMiAtIFRodXJzZGF5IE1hcmNoIDI4LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlN0eWxlZFRleHQgQmlkaSBQcmludGluZyI+PC9hPlN0eWxlZFRleHQgQmlkaSBQcmludGluZzwvaDM+CjxibG9ja3F1b3RlPgo8cD5TdXBwb3J0IGhhcyBiZWVuIGFkZGVkIGZvciBwcmludGluZyB0aGUgY29udGVudHMgb2YgYSBTdHlsZWRUZXh0IHdpZGdldCBvbgpiaWRpcmVjdGlvbmFsIGxhbmd1YWdlIFdpbmRvd3MgcGxhdGZvcm1zLjwvcD4KPHA+IE5vdGUgaG93ZXZlciB0aGF0IHByaW50aW5nIEVuZ2xpc2ggb3IgbG9jYWwgbGFuZ3VhZ2UgdGV4dCBkb2VzIG5vdCB3b3JrIHByb3Blcmx5IHdpdGggc29tZQpwcmludGVyIGRyaXZlcnMgd2hlbiB1c2luZyBhIG5vbi1UcnVlVHlwZSBmb250LiBUaGlzIGhhcyBiZWVuIG5vdGljZWQgb24gV2luZG93cwpOVCBzeXN0ZW1zIHdpdGggdGhlIEhQIExhc2VyamV0IDQgc2VyaWVzIHByaW50ZXIgZHJpdmVyLiBQbGVhc2UgdXNlIGEgVHJ1ZVR5cGUKZm9udCBpZiB0ZXh0IGlzIHByaW50ZWQgZ2FyYmxlZCAuICAKPGJyPjwvcD4KPC9ibG9ja3F1b3RlPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDQ2NzogRENSIC0gVHJlZSBtaXNzaW5nIGtleWJvYXJkIHN1cHBvcnQgKDFGSkg1R1kpICAKPGJyPjQ1MjU6IFByb3BlcnR5IHZpZXdlciBkb2Vzbid0IGFkYXB0IHRvIGJnIGNvbG9yIGNoYW5nZXMgKDFGWDhYTDEpICAKPGJyPjEwMzE3OiBTdHlsZWRUZXh0IC0gYmlkaSBwcmludGluZyBzdXBwb3J0ICAKPGJyPjEwNDgzOiBTV1QgQ29udHJvbEV4YW1wbGUgRGlyZWN0b3J5RGlhbG9nIGRvZXMgbm90IGNob29zZSBkaXJlY3Rvcmllcwo8YnI+MTEwODE6IEphdmEgU291cmNlIEVkaXRpbmcgd2l0aCBHcmVlayBMb2NhbGUgbm8gbG9uZ2VyIHdvcmtzICAKPGJyPjExNTQ5OiBDcmVhdGUgcHJvamVjdCBkb2VzIG5vdCBhbGxvdyBjcmVhdGlvbiBvZiBmb2xkZXIgaW4gaXRzIHByb2plY3Qgc2VsZWN0aW9uCjxicj4xMjA5OTogQWNjZXNzaWJpbGl0eSA6IEpBV1MgY2FuIG5vdCByZWFkIFRhYkl0ZW0ncyB0ZXh0ICAKPGJyPjEyMjMxOiBETkQgOiBEcmFnIGFuZCBEcm9wIGJ1c3RlZCAobW91c2UgY2FwdHVyZSBub3QgcmVsZWFzZWQpICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMzEgLSBNb25kYXkgTWFyY2ggMTgsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+Cjx1bD4KPGxpPlNjcm9sbGVkQ29tcG9zaXRlLmdldE9yaWdpbjwvbGk+CjxsaT5TY3JvbGxlZENvbXBvc2l0ZS5zZXRPcmlnaW48L2xpPgo8bGk+VmFyaWFudC5nZXRUeXBlPC9saT4KPC91bD4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjc1MDA6IERpc3BsYXkuZ2V0Qm91bmRzKCkgY2FsbHMgZnJvbSBhbm90aGVyIHRocmVhZCBnaXZlIGluY29ycmVjdCByZXN1bHRzCjxicj4xMDI3MzogTlBFcyBjYXVzZWQgYnkgdW5pdGlhbGl6ZWQgJ2l0ZW0nIGZpZWxkIGluIGV2ZW50Cjxicj4xMDQ4MTogVmlldyB3aWxsIG5vdCBTaXplIHZpYSBQdWxsIERvd24KPGJyPjEwNTExOiBBZGQgcHJvZ3JhbW1hdGljIHNjcm9sbGluZyB0byBTY3JvbGxlZENvbXBvc2l0ZQo8YnI+MTA5NDI6IExhdW5jaGVyIHNob3VsZCBhdXRvZGV0ZWN0IGd0ayBvbmx5IGluc3RhbGxhdGlvbi4KPGJyPjExMDUxOiBJbnZhbGlkIHRva2VuIHBhc3RpbmcgaW4gY2FsbGJhY2suYwo8YnI+MTEwOTA6IENMYWJlbCBKYXZhZG9jIHNheXMgU21hcnRMYWJlbAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAzMCAtIFR1ZXNkYXkgTWFyY2ggMTIsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+Cjx1bD4KPGxpPk9sZUNvbnRyb2xTaXRlLmFkZEV2ZW50TGlzdGVuZXIoT2xlQXV0b21hdGlvbixpbnQsT2xlTGlzdGVuZXIpPC9saT4KPGxpPlRhYmxlSXRlbS5nZXRGb3JlZ3JvdW5kKCk8L2xpPgo8bGk+VGFibGVJdGVtLmdldEJhY2tncm91bmQoKTwvbGk+CjxsaT5UYWJsZUl0ZW0uc2V0Rm9yZWdyb3VuZChDb2xvcik8L2xpPgo8bGk+VGFibGVJdGVtLnNldEJhY2tncm91bmQoQ29sb3IpPC9saT4KPGxpPlRyZWVJdGVtLmdldEZvcmVncm91bmQoKTwvbGk+CjxsaT5UcmVlSXRlbS5nZXRCYWNrZ3JvdW5kKCk8L2xpPgo8bGk+VHJlZUl0ZW0uc2V0Rm9yZWdyb3VuZChDb2xvcik8L2xpPgo8bGk+VHJlZUl0ZW0uc2V0QmFja2dyb3VuZChDb2xvcik8L2xpPgo8bGk+VGFibGVUcmVlSXRlbS5nZXRGb3JlZ3JvdW5kKCk8L2xpPgo8bGk+VGFibGVUcmVlSXRlbS5nZXRCYWNrZ3JvdW5kKCk8L2xpPgo8bGk+VGFibGVUcmVlSXRlbS5zZXRGb3JlZ3JvdW5kKENvbG9yKTwvbGk+CjxsaT5UYWJsZVRyZWVJdGVtLnNldEJhY2tncm91bmQoQ29sb3IpPC9saT4KPC91bD4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+Cjg3Mzc6ICBObyBTZWxlY3Rpb24gZXZlbnQgd2hlbiBETkQgc3RhcnRzCjxicj45OTUwOiAgQ29sb3JEaWFsb2cgd2VpcmQgYmVoYXZpb3IKPGJyPjk5NTk6ICBQZXJzaXN0ZW50IEVjbGlwc2UgTlBFIG9uIHN0YXJ0dXAKPGJyPjk5OTM6ICBPbGVDb250cm9sU2l0ZSBpcyBub3QgcG93ZXJmdWwgZW5vdWdoCjxicj4xMDQyMDogTW91c2UgYW5kIERORCBFdmVudCBub3RpZmljYXRpb24gb3V0IG9mIG9yZGVyCjxicj4xMDQ4MDogVW5hYmxlIHRvIG9wZW4gZmlsZXMgd2l0aCAiU3lzdGVtIEVkaXRvciIKPGJyPjEwNDgyOiBWaWV3IHdpbGwgbm90IE1vdmUgdmlhIFB1bGwgRG93bgo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAyOSAtIFR1ZXNkYXkgTWFyY2ggNSwgMjAwMiA8L2gyPgoKPGgzPgo8YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMz4KCjxiPk5vdGU6PC9iPiBUaGUgbmV3IEFjY2Vzc2liaWxpdHkgQVBJIGlzIGV4cGVyaW1lbnRhbCwgYW5kIHdpbGwgbGlrZWx5IGNoYW5nZS4KPHVsPgo8bGk+Q29udHJvbC5nZXRBY2Nlc3NpYmxlKCkgYWRkZWQ8L2xpPgo8bGk+cGFja2FnZSA8Yj5vcmcuZWNsaXBzZS5zd3QuYWNjZXNzaWJpbGl0eTwvYj4gYWRkZWQsIGNvbnRhaW5pbmcgdGhlIGZvbGxvd2luZyBjbGFzc2VzOjx1bD4KPGxpPkFjY2Vzc2libGU8L2xpPgo8bGk+QUNDPC9saT4KPGxpPkFjY2Vzc2libGVMaXN0ZW5lcjwvbGk+CjxsaT5BY2Nlc3NpYmxlQWRhcHRlcjwvbGk+CjxsaT5BY2Nlc3NpYmxlRXZlbnQ8L2xpPgo8bGk+QWNjZXNzaWJsZUNvbnRyb2xMaXN0ZW5lcjwvbGk+CjxsaT5BY2Nlc3NpYmxlQ29udHJvbEFkYXB0ZXI8L2xpPgo8bGk+QWNjZXNzaWJsZUNvbnRyb2xFdmVudDwvbGk+CjwvdWw+PC9saT48L3VsPgoKSGVyZSBhcmUgdHdvIGV4YW1wbGVzIHRoYXQgdXNlIHRoZSBhY2Nlc3NpYmlsaXR5IEFQSTo8dWw+CjxsaT5Gb3IgYSBjb250cm9sIHdpdGggbm8gY2hpbGQgaXRlbXM6Cjxjb2RlPjxwcmU+CgkJYnV0dG9uLmdldEFjY2Vzc2libGUoKS5hZGRBY2Nlc3NpYmxlTGlzdGVuZXIobmV3IEFjY2Vzc2libGVBZGFwdGVyKCkgewoJCQlwdWJsaWMgdm9pZCBnZXROYW1lKEFjY2Vzc2libGVFdmVudCBlKSB7CgkJCQllLnJlc3VsdCA9ICJNeSBCdXR0b24gTGFiZWwiOwoJCQl9CgkJfSk7CjwvcHJlPjwvY29kZT48L2xpPgoKPGxpPkZvciBhIGNvbnRyb2wgdGhhdCBoYXMgY2hpbGQgaXRlbXM6Cjxjb2RlPjxwcmU+CgkJbGlzdC5nZXRBY2Nlc3NpYmxlKCkuYWRkQWNjZXNzaWJsZUxpc3RlbmVyKG5ldyBBY2Nlc3NpYmxlQWRhcHRlcigpIHsKCQkJcHVibGljIHZvaWQgZ2V0TmFtZShBY2Nlc3NpYmxlRXZlbnQgZSkgewoJCQkJaWYgKGUuY2hpbGRJRCA9PSBBQ0MuQ0hJTERJRF9TRUxGKSB7CgkJCQkJZS5yZXN1bHQgPSAiTXkgTGlzdCBMYWJlbCI7CgkJCQl9IGVsc2UgewoJCQkJCWUucmVzdWx0ID0gIk15IExpc3QgSXRlbSBMYWJlbDogIiArIGxpc3QuZ2V0SXRlbShlLmNoaWxkSUQpOwoJCQkJfQoJCQl9CgkJfSk7CjwvcHJlPjwvY29kZT48L2xpPjwvdWw+CjxiPk5vdGU6PC9iPiBUaGUgQVBJIGludm9sdmluZyB0aGUgQWNjZXNzaWJsZUNvbnRyb2xYeHggY2xhc3NlcyBpcyBtb3JlIGNvbXBsZXgsIGFuZCBtb3JlIGxpa2VseSB0byBjaGFuZ2UuIApJdCBpcyB1bmxpa2VseSB0aGF0IGFwcGxpY2F0aW9uIGNvZGUgd2lsbCBuZWVkIHRvIHVzZSBpdC4gCkl0IGlzIHByaW1hcmlseSBmb3IgdGhlIHVzZSBvZiBjdXN0b20gY29udHJvbCBpbXBsZW1lbnRvcnMuCgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NDM2OiBHcmlkIExheW91dCBQcm9ibGVtICgxRk9MWlpFKSAgCjxicj40NjY2OiBEQ1IgLSBOZWVkIGEgd2F5IGZvciBjaGlsZCBzaGVsbHMgdG8gZGlzYWJsZSBFU0MgY2xvc2luZyAoMUdFOFJYVykKPGJyPjQ3OTA6IFhJbml0VGhyZWFkcyBjYXVzZXMgamFwYW5lc2UgaW5wdXQgbWV0aG9kIHRvIGhhbmcgKDFHSVJZUjYpCjxicj40Nzc1OiBYSW5pdFRocmVhZHMgY2F1c2VzIFggcHJpbnRpbmcgdG8gaGFuZyAoMUdJVEJRTCkKPGJyPjQ0NTQ6IERDUjogVGFibGVzIG5lZWQgdG8gc3VwcG9ydCBjZWxsIGVkaXRpbmcgKDFGR1BMUFApCjxicj4xMDAwMjogRGV0ZWN0aW9uIG9mIENERSBhcyBhY3RpdmUgV00gaXMgcGxhdGZvcm0tc3BlY2lmaWMgIAo8YnI+MTA0MjY6IEVzYyB0cmF2ZXJzZSBkb2VzIG5vdCBnbyB1cCBoaWVyYXJjaHkgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAyOCAtIFRodXJzZGF5IEZlYnJ1YXJ5IDI4LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0Njg4OiBKIC0gRm9udCBEaWFsb2cgZG9lcyBub3Qgc2VsZWN0IGEgZm9udCB3aGVuIHNlbGVjdGluZyBhIGZvbnQgZmFtaWx5ICgxR0VUNUJXKQo8YnI+NzEzOTogRm9udERpYWxvZzogU2VsZWN0ZWQgZm9udCBub3QgdXNlZCAgCjxicj44ODY1OiBFeGNlcHRpb24gd2hlbiBjcmVhdGluZyBhIFRvb2xJdGVtIHdpdGggYSBudWxsIGltYWdlIGluIExpbnV4Cjxicj4xMDI1MDogU2xpZGVyIHdpdGggVkVSVElDQUwgb3JpZW50YXRpb24gLSBkb3duIGFycm93IGluY3JlbWVudHMgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAyNyAtIFR1ZXNkYXkgRmVicnVhcnkgMjYsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjY0MDk6IE5vZGUgc2VsZWN0aW9uIGluIHBhY2thZ2UgdmlldyAgCjxicj44Mzg5OiBNb3VzZVVwIG5vdCByZXBvcnRlZCBjb3JyZWN0bHkgaWYgRHJhZ0RldGVjdCBob29rZWQgIAo8YnI+OTM2NDogRXhjZXB0aW9uIGluIFN0eWxlZFRleHQgIAo8YnI+OTc3MzogRm9udCBhbmQgQ29sb3IgZGlhbG9ncyBkbyBub3QgYXBwZWFyIGNlbnRyZWQgb24gcGFyZW50ICAKPGJyPjk5NTA6IENvbG9yRGlhbG9nIHdlaXJkIGJlaGF2aW9yICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMjYgLSBUdWVzZGF5IEZlYnJ1YXJ5IDEyLCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo2Njc5OiBJbWFnZS5nZXRJbWFnZURhdGEoKSBub3QgaW1wbGVtZW50ZWQgIAo8YnI+Nzk2MjogU1dULmdldFBsYXRmb3JtKCkgamF2YWRvYyBpbmNvcnJlY3QgZm9yIHJldHVybiBkZXNjcmlwdGlvbiAgCjxicj44OTg0OiBDVGFiRm9sZGVyLk1JTl9UQUJfV0lEVEggc2hvdWxkIG5vdCBiZSBzdGF0aWMgIAo8YnI+OTAyMjogTGludXg6IFRyZWUgVmlld2VyIGRvZXMgbm90IGdldCBkZWZ1YWx0IFNlbGVjdGlvbiAgCjxicj45MDcyOiBUYWJsZSBUcmVlIGRvZXMgbm90IHBpY2sgdXAgd2luZG93cyBzZXR0aW5ncyBjaGFuZ2VzICAKPGJyPjkwOTE6IFN0eWxlZFRleHQgaW4gU0lOR0xFIG1vZGUgc2hvdWxkIGxvb2sgbW9yZSBsaWtlIGEgVGV4dCB3aWRnZXQgIAo8YnI+OTE3MjogU1dUIEFkZHJlc3NCb29rIEV4YW1wbGUgY2FsbHMgdW5kZWZpbmVkIG1ldGhvZAo8YnI+OTQzMjogVGhlIGRvYyBmb3IgVHJhY2tlciB3aWRnZXQgc2hvdWxkIHNwZWNpZnkgdGhhdCByZWN0YW5nbGVzIGFyZSBpbiBzY3JlZW4gY29vcmRpbmF0ZXMKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMjUgLSBUdWVzZGF5IEZlYnJ1YXJ5IDUsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjI0MzA6IFNvcnRpbmcgdGhlIFRhc2tzIExpc3Qgc2hvdWxkIGRpc3BsYXkgaWNvbiBmb3Igc29ydCBrZXkvb3JkZXIgKDFHRjVUUU8pCjxicj40NDg1OiBEQ1IgLSBUYWJsZSBjb2x1bW4gaGVhZGVyIGRlY29yYXRpb24gY2FwYWJpbGl0eSBuZWVkZWQgKDFGT1FRTTgpCjxicj42MDM1OiBEaWZmZXJlbmNlIGluIHRyZWUgImV4cGFuZGVkIHN0YXRlIiBiZXR3ZWVuIFdpbmRvd3MgYW5kIE1vdGlmCjxicj42OTgzOiBCcm93c2UgYnV0dG9uIGluIEltcG9ydC0+UGx1Z2lucyBub3Qgd29ya2luZy4gIAo8YnI+NzQwMDogU2luZ2xlIGxpbmUgdGV4dCBmaWVsZHMgbm90IGZpcmluZyAiS2V5IFByZXNzZWQiIGV2ZW50cyBmb3IgdGhlIEVudGVyLCBVcChhcnJvdyksIGFuZCBEb3duKGFycm93KSBrZXlzCjxicj44MTczOiBBY2Nlc3NpYmlsaXR5OiBrZXlib2FyZC1pbnZva2VkIHBvcHVwIG1lbnUgbm90IHVzYWJsZSAgCjxicj44MTk2OiBBY2Nlc3NpYmlsaXR5OiBzaGlmdCtGMTAgZG9lcyBub3QgZGlzcGxheSB2aWV3IG1lbnUgIAo8YnI+ODI3MzogSG9yaXpvbnRhbCBzY29ybGxiYXIgZG9lcyBub3QgYWxsb3cgc2Nyb2xsaW5nIHdoZW4gcmVxdWlyZWQgIAo8YnI+ODM5NjogV0lOQ0U6IE1lbnUgYmFyIG9ic2N1cmVzIGNvbnRyb2wgd2hlbiBjb250cm9sIGxvY2F0aW9uIGlzIDAsMAo8YnI+ODM5NzogV0lOQ0U6IE1lbnUgaXRlbSBjb2xvcnMgZG9uJ3QgbWF0Y2ggbWVudSBiYXIgIAo8YnI+ODQxMjogV0lOQ0U6IEJhY2tncm91bmQgY29sb3Igb2YgYnV0dG9ucyBsb29rcyB3cm9uZyAgCjxicj44NjQwOiBHUDogb3BlbmluZyBTeW5jaHJvbml6YXRpb24gcGVyc3BlY3RpdmUgIAo8YnI+ODk0MjogV3JvbmcgdGV4dCBpbmRlbnQgaW4gYSB0YWJsZSB3aGVuIHVzZSBpbWFnZSAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDI0IC0gVHVlc2RheSBKYW51YXJ5IDI5LCAyMDAyIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NjU0OiBWQUogaGFuZ3Mgd2hlbiBkcmFnZ2luZyBmcm9tIGZpbGUgbWFuYWdlciB0byB0aGUgZGVza3RvcC4gKDFHRFFGWjYpCjxicj40NzIwOiBFY2xpcHNlIGZyZWV6ZXMgZHVyaW5nIGRyYWcgJiBkcm9wIG9wZXJhdGlvbiAoMUdGN1JSSCkgIAo8YnI+NDcyNDogR1AgLSBGYXRhbCBhcHAgZXJyb3IgLSByZW5hbWluZyByZXNvdXJjZSBvbiBsaW51eCAoMUdGN1RYTykgIAo8YnI+NDczNjogRml4IHByaW50aW5nICgxR0ZXMkNXKSAgCjxicj40ODE3OiBOZWVkIEphdmFEb2MgY29tbWVudHMgZm9yIFNXVCBQaG90b24gKDFHSkxFVTApICAKPGJyPjY4MzU6IENoYXJhY3RlcnMgPz8/Pz8/Pz8/Pz8/PyBhbmQgPz8/Pz8/PyBkb2Vzbid0IHdvcmsgaW4gSmF2YSBlZGl0b3Igb24gU3dlZGlzaCAgCjxicj44MjU1OiBDbG9zaW5nIHBhaW50IHZpZXdlciBjYXVzZXMgaW50ZXJuYWwgZXJyb3IgIAo8YnI+ODQxMDogQmxhY2sgY29sb3IgYmVjb21lIHRyYW5zcGFyZW50IGluIFRvb2xCYXIgaW1hZ2VzICAKPGJyPjg1MDM6IFN0eWxlZFRleHQgLSBjaGVlc2UgaWYgcmVzaXplIGluIHdvcmQgd3JhcCB0cmllcyB0byBrZWVwIHBhcnRpYWwgdG9wIGxpbmUKPGJyPjg1NDc6IEludGVsbGltb3VzZSBzY3JvbGxpbmcgZG9lcyBub3Qgd29yayBpbiBlY2xpcHNlICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMjNhIC0gVGh1cnNkYXkgSmFudWFyeSAyNCwgMjAwMiA8L2gyPiAoRWNsaXBzZSBNaWxlc3RvbmUgMikKCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ3MDA6IE51bUxvY2sgYW5kIENhcHNMb2NrIGRpc2FibGUgYWNjZWxlcmF0b3JzICgxR0VURFQ5KSAgCjxicj42MTgwOiBXYWtlIG1lY2hhbmlzbSBicm9rZW4gb24gTW90aWYgIAo8YnI+Njg3MzogRGVjb3JhdGlvbnMuc2V0SW1hZ2UoKSB0aHJvd3MgTlBFIG9uIFdJTkNFICAKPGJyPjc4MDU6IEEgbmV3IEltYWdlRGF0YShmcm9tIGFuIElucHV0U3RyZWFtKSB0aHJvd2luZyBOUEUgIAo8YnI+ODEzMzogV2hlbiB0b29sYmFyIGhhcyBmb2N1cywgY2FuJ3QgdXNlIG1uZW1vbmljcyBmb3IgRmlsZSBtZW51cyAgCjxicj44MjEzOiBleGNlcHRpb246IHdpZGdldCBpcyBkaXNwb3NlZCAgCjwvYmxvY2txdW90ZT4KCgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMjMgLSBUdWVzZGF5IEphbnVhcnkgMjIsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ2MTA6IFN0eWxlZFRleHQgLSBEQ1IgLSBXb3JkIHdyYXAgKDFHQUJTNkMpICAKPGJyPjQ2NDQ6IE1vdXNlIGNsaWNrIG9uIGEgbGluayBkaXNwbGF5ZWQgaW4gZW1iZWRkZWQgSUU1IEFjdGl2ZVggaXMgbm90IHJlbGlhYmxlICgxR0Q3VFQyKQo8YnI+NTY2MDogU1dUIGRlZmF1bHQgZm9udCdzIG5lZWQgdG8gaG9ub3IgYWNjZXNhYmlsaXR5IHNldHRpbmdzICAKPGJyPjYzMjQ6IFNXVC5DTE9TRSBpbXBsaWVzIHJlbmRlcmluZyBvZiBNaW5pbWl6ZSBhbmQgTWF4aW1pemUgYnV0dG9ucyAgCjxicj42OTk3OiBTdHlsZWRUZXh0IC0gbWFyayBuZXcgQVBJICAKPGJyPjcxMjM6IFNoZWxsIHNob3dzIHRoZSBtYXhpbWl6ZSBidXR0b24gZW5hYmxlZCB3aGVuIFNXVC5USVRMRSB8IFNXVC5CT1JERVIgfCBTV1QuQ0xPU0Ugc3R5bGUgcGFzc2VkCjxicj43MzYxOiBBZGQgZ2V0T2Zmc2V0QXRMaW5lIEFQSSAgCjxicj43NjMyOiBUcmVlIHdpZGdldCBkb2Vzbid0IHNlbGVjdCBpdGVtIHdpdGggZm9jdXMgb24gcmlnaHQtY2xpY2sgIAo8YnI+Nzg0OTogTGFiZWxzIG9uIFdJTkNFIGRvbid0IHVzZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHBhcmVudCB3aGVuIGNvbG9yIGlzbid0IHNldAo8YnI+Nzg2NzogRENSOiBEZWxldGUgY2hlY2tTdWJjbGFzcyBtZXRob2QgZnJvbSBEaWFsb2cgIAo8YnI+Nzk1OTogUG90ZW50aWFsIHByb2JsZW1zIHdoZW4gcnVubmluZyBvbiBiaWcgZW5kaWFuIG1hY2hpbmVzICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMjIgLSBUdWVzZGF5IEphbnVhcnkgMTUsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ2NjM6IEZhaWwgdG8gdGFiIHRoZSB2aWV3cy4gKDFHR1lWOFQpICAKPGJyPjQ3MTg6IFRvb2wgdGlwIGlzIG9wZW5uaW5nIHdoZW4gb24gZHJhZ2dpbmcuICgxR0Y1WjdaKSAgCjxicj41ODY2OiBDYW4ndCBtdWx0aXNlbGVjdCBpbiBUcmVlIHVzaW5nIGtleWJvYXJkICAKPGJyPjY1OTI6IEJveCBmb3IgY2hlY2tib3ggdGFibGUgaXRlbXMgaXMgdG9vIGxhcmdlIHdoZW4gdXNpbmcgbGFyZ2UgZm9udHMKPGJyPjY3NzA6IE9ubHkgdGhlIGxlZnQgbW91c2UgYnV0dG9uIHNob3VsZCBzZWxlY3QgaW4gYSBUYWJsZS4gIAo8YnI+Njg1MjogU3R5bGVkVGV4dCAtIHZlcmlmeSBldmVudCBjaGFyYWN0ZXIgaW52YWxpZCB2YWx1ZSAgCjxicj42OTQwOiBNZW51U2hvcnRjdXRzIG9ubHkgcmVzcG9uZCB0byBDdHJsLU4gIAo8YnI+NzE5MDogQ3RybC1TIGRvZXMgbm90IHdvcmsgIAo8YnI+NzQ1ODogV2luQ0UgLSB0b3AgbGV2ZWwgU2hlbGxzIGNyZWF0ZWQgdGhyb3VnaCBEaXNwbGF5LmFzeW5jZXhlYyBjYW4gaGF2ZSBpbmNvcnJlY3QgWi1vcmRlcgo8YnI+NzQ1OTogQ2FyZXQgbGVhdmluZyBnYXJiYWdlICAKPGJyPjc0ODY6IENhbm5vdCB1c2Uga2V5Ym9hcmQgU2hpZnQgU2VsZWN0IGluIGEgVHJlZSAgCjxicj43NTU5OiBTY3JvbGxCYXIgdGh1bWIgaXMgcmVzZXQgd2hlbiBTY3JvbGxCYXIgaXMgaGlkZGVuLCB0aGVuIHNob3duCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDIxIC0gVHVlc2RheSBKYW51YXJ5IDgsIDIwMDIgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ0NDM6IExheW91dDogRXhjZXB0aW9ucyB3aGVuIGhvcml6b250YWxTcGFuID4gcmVtYWluaW5nIGNvbHVtbnMgKDFGRkM2WFopCjxicj40NDYyOiBTY3JvbGxCYXIgLSB2YmFyLnNldE1heGltdW0gZG9lcyBub3Qgd29yayBhZnRlciBoYmFyIGlzIGhpZGRlbiAoYW5kIHZpY2UgdmVyc2EpICgxRklHNUNHKQo8YnI+NDcyMjogRmlyc3QgZWRpdG9yIHRhYiBtaXNzaW5nIGNsb3NlIGJ1dHRvbiAoMUdGN1FJUSkgIAo8YnI+NDc1NTogUmVidWlsZGluZyBsYXVuY2hlciBmcm9tIGFub3RoZXIgZGlyZWN0b3J5ICgxR0dOUkcwKSAgCjxicj42MzE1OiBTb21lIHBlcnNwZWN0aXZlIHNhdmUgY29uZmlybWF0aW9uIG1lc3NhZ2VzIGN1dCBvZmYgIAo8YnI+NjM1MjogRWRpdG9yIGRvZXNuJ3QgZ2V0IGFjdGl2YXRlZCB3aGVuIHJldmVhbGluZyBmaXJzdCBtYXRjaCAgCjxicj42OTA4OiBNZW51IGhhbmRsZSBsZWFrIGluIG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLk1lbnUuZGVzdHJveUl0ZW0oTWVudUl0ZW0pCjxicj42OTQ1OiBDaGlsZCBzaGVsbHMgbm90IGRpc3BsYXlpbmcgb24gV2luQ0UgIAo8YnI+Njk4MjogQ2hlY2tlZFRhYmxlcyBoYXZlIG5vIGNoZWNrIGJveGVzICAKPGJyPjcwMDU6IE1pc3NpbmcgbWV0aG9kcyBpbiBTV1QvR1RLIGltcGxlbWVudGF0aW9uICAKPGJyPjcwMTg6IFRyZWUgZG9lcyBub3QgaG9ub3IgU1dULkNIRUNLIHN0eWxlICAKPGJyPjcwNjg6IFNjcm9sbEJhci5zZXRWaXNpYmxlKHRydWUpIGRvZXMgbm90IHdvcmsgYWZ0ZXIgY2hhbmdpbmcgdmFsdWVzCjxicj43MTUwOiBTdHlsZWRUZXh0IC0gYmlkaSAtIHBhcnRpYWwgc3R5bGluZyBvZiBsaWdhdHVyZXMgYnVnICAKPGJyPjcxOTE6IERpYWxvZ3Mgbm90IGJpZyBlbm91Z2ggZm9yIGNvbnRlbnQgIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAyMCAtIFR1ZXNkYXkgRGVjZW1iZXIgMTgsIDIwMDEgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ3MTU6IEZpcnN0IGhlbHAgY2xpY2sgb24gYSBjaGFwdGVyIGlzIGlnbm9yZWQgKDFHRjVUVjkpICAKPGJyPjQ3ODQ6IE1JRiBGaWxlcyBzb21ldGltZSBmYWlsICgxR0k3SDdWKSAgCjxicj40Nzk3OiBUYWJsZSBkb2VzIG5vdCB1c2UgU3lzdGVtIGZvbnRzICgxR0lWNFBaKSAgCjxicj42NjM1OiBXaW5DRTogZGVjb3JhdGlvbnMuc2V0TWVudUJhciBjYW4gYmUgc2V0IG9ubHkgb25jZSAgCjxicj42Njg1OiBTdHlsZWRUZXh0IC0gb24gc2V0Rm9udCBjYXJldCBub3QgYmVpbmcgcG9zaXRpb25lZCBjb3JyZWN0bHkgIAo8YnI+Njc3MzogU3R5bGVkVGV4dC5jb21wdXRlU2l6ZSB1c2VzIGRpc3BsYXkgd2lkdGggdG8gY2FsY3VsYXRlIG51bWJlciBvZiB2aXNpYmxlIGxpbmVzCjxicj42NzkwOiBUb3VjaGluZyBjb2RlIGFzc2lzdCBzY3JvbGxiYXIgZHVtcHMgamF2YWNvcmUgIAo8YnI+Njg2MzogUmVtYWluaW5nIGlzc3VlcyBpbiBlbXVsYXRlZCBDb29sQmFyIGFuZCBDb29sSXRlbSAgCjxicj42OTMzOiBTd2l0Y2hpbmcgdG8gaGVscCBwZXJzcGVjdGl2ZSBjcmFzaGVzIHRoZSB3b3JrYmVuY2ggIAo8YnI+NzAxNDogVHJlZSBub3QgYWNjZXB0aW5nIGNoaWxkcmVuICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMTkgLSBUdWVzZGF5IERlY2VtYmVyIDExLCAyMDAxIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NDYxOiBTV1RFeGNlcHRpb24gc2hvdWxkIG92ZXJ3cml0ZSBwcmludFN0YWNrVHJhY2UoLi4pICgxR0xEVzZQKSAgCjxicj40NDkzOiBDaGVjayBtdWx0aWxpbmd1YWwgc3VwcG9ydCBvbiBXaW5kb3dzIDIwMDAgKDFGUUZDQlEpICAKPGJyPjQ2MTE6IFN0eWxlZFRleHQgLSBTdHJpbmdJbmRleE91dE9mQm91bmRzIGV4Y2VwdGlvbiBpbnNlcnRpbmcgdGV4dCBpbiBsaW5lIGJyZWFrICgxR0VJRDhCKQo8YnI+NDYyMDogV29ya2JlbmNoIGRvZXMgbm90IGNsb3NlIEFjdGl2ZVggY29udHJvbCdzIGZpbGUgaGFuZGxlICgxR0I3NkFaKQo8YnI+NDY2MDogTW92aW5nICAKPGJyPjQ3MTk6IEJhY2tncm91bmQgY29sb3VyIG9mIHZpZXdzL2VkaXRvcnMgKDFHRjZDOFkpICAKPGJyPjQ3Mzk6IERDUjogUHJvdmlkZSBhdXRvLXNjcm9sbGluZyBhbmQgZXhwYW5zaW9uIGJ5IGRlZmF1bHQgaW4gdGhlIHRyZWUgZHVyaW5nIERORCAoMUdGVzdOUSkKPGJyPjQ3Njc6IFRhYiBGb2xkZXJzIGNhbiBub3QgYmUgdG9nZ2xlZCB1c2luZyBrZXlzLiAoMUdIRkNaVSkgIAo8YnI+NDc4MDogWUFNOiBDYW5ub3QgcmVhZCBzb21lIEpQRUcgZmlsZXMgKDFHSTZaRU4pICAKPGJyPjQ3ODM6IENhbid0IHNjcm9sbCB0byB0aGUgdG9wIG9mIHRoZSBuYXZpZ2F0b3IgKDFHSTdHVEcpICAKPGJyPjUwNzE6IFNoaWZ0LVRBQiBkb2Vzbid0IGdlbmVyYXRlIHByb3BlciBldmVudCAgCjxicj41Njc3OiBIaWVyYXJjaHkgb3V0bGluZSBoYXMgZW1wdHkgc3BhY2UgIAo8YnI+NTg1NzogSW1hZ2UuZ2V0SW1hZ2VEYXRhIG5lZWRzIHRvIHN1cHBvcnQgMTUgYml0IGNvbG9yIGRlcHRoICAKPGJyPjY0NzI6IFRhYmxlIHdpZGdldCBoYXMgZW1wdHkgZW50cmllcyAgCjxicj42NTcyOiBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgTGlzdHMgYW5kIENvbWJvcyBub3QgY29uc2lzdGVudCB3aXRoIFdpbjJLCjxicj42NjUxOiBUZXh0LnNldFNlbGVjdGlvbigpIGRvZXNuJ3QgYWN0dWFsbHkgZGlzcGxheSB0aGUgc2VsZWN0aW9uIHZpc3VhbGx5IGZvciBTV1QuU0lOR0xFCjxicj42NjU0OiBUZXh0LmdldFNlbGVjdGlvbigpIG5vdCByZXR1cm5pbmcgY29ycmVjdCBpbmZvIG9uIFdJTkNFICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMTggLSBUdWVzZGF5IERlY2VtYmVyIDQsIDIwMDEgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ0MTk6IFdpZGdldHMgLSBNaXNzaW5nIGZlYXR1cmVzIGFuZCBBUEkgb24gTU9USUYgKDFGQlBLQ1QpICAKPGJyPjQ0OTQ6IENvbG9yRGlhbG9nIGRvZXNuJ3Qgb3BlbiBpbiBWQS9KYXZhIHdpdGggSkRLIDEuMiAoMUZRR002SCkgIAo8YnI+NDgzMzogUmVtb3ZlIGZvY3VzIGJ1dHRvbiBmcm9tIFRhYmxlICgxR0s3TUs0KSAgCjxicj40ODYwOiBTdHlsZWRUZXh0IC0gU3R5bGVkVGV4dEJpZGksIEJpZGlVdGlsIG5lZWQgZG9jICgxR0wzMkM4KSAgCjxicj42MjA0OiBLZXlMaXN0ZW5lciBvbiB0YWJsZSBkb2VzIG5vdCB3b3JrLiAgCjxicj42NDM4OiBTdHlsZWRUZXh0IC0gYmlkaSAtIGlzQmlkaSB0ZXN0IG5vdCB3b3JraW5nIG9uIFhQICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMTcgLSBUdWVzZGF5IE5vdmVtYmVyIDI3LCAyMDAxIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+CjxibG9ja3F1b3RlPgo0NzE0OiBMYWJlbCBkcmF3cyB3cm9uZyBiYWNrZ3JvdW5kIHdoZW4gaW1hZ2UgaXMgc2V0ICgxR0YwSUM2KSAgCjxicj41NTAzOiBUYWJiaW5nIGJyb2tlbiAgCjxicj41OTg2OiBCaWRpVXRpbCBoYW5kbGluZyBvZiBXTV9JTlBVVExBTkdDSEFOR0UgbmVlZHMgdG8gYmUgZml4ZWQKPGJyPjU5OTI6IENoYW5naW5nIEphdmEgRWRpdG9yIGZvbnQgaW4gUHJlZmVyZW5jZSBQYWdlIG1ha2VzIEVjbGlwc2UgaGFuZyBvciBjcmFzaAo8YnI+NjE3MTogTnVsbFBvaW50ZXJFeGNlcHRpb24gaW4gSW1hZ2VMb2FkZXIgc2F2ZSBtZXRob2Qgd2l0aCBTV1QuSU1BR0VfSlBFRwo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAxNSAtIFR1ZXNkYXkgTm92ZW1iZXIgMjAsIDIwMDEgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ3OTE6IFN0eWxlZFRleHQgZG9lcyBub3Qgc3dpdGNoIGNvbG91ciAoMUdJTEhJVykgIAo8YnI+NDk1NjogU3R5bGVkVGV4dCAtIGNoYW5nZSBTdHlsZWRUZXh0QmlkaS50b1N0cmluZyB0byBjb25mb3JtIHdpdGggc3RhbmRhcmQgU1dUIGZvcm1hdAo8YnI+NTU5OTogU3R5bGVkVGV4dCAtIHJlZHJhd1JhbmdlIGRvZXMgbm90IGNoZWNrIHJhbmdlICAKPGJyPjU3MjI6IFNlbGVjdGluZyBmb250IGNyYXNoZXMgZWNsaXBzZSB3aXRoIGEgamF2YWNvcmUgIAo8YnI+NTgxNTogU3R5bGVkVGV4dCAtIHNldEZvbnQgcmVmcmVzaCBwcm9ibGVtICAKPGJyPjU4NDY6IENvbWJvLnNlbGVjdCBkb2VzIG5vdCBpZ25vcmUgYW4gb3V0IG9mIHJhbmdlIGluZGV4Cjxicj41OTkwOiBQcmludGluZyBzaW5nbGUgcGFnZSBwcmludHMgZW50aXJlIGRvY3VtZW50ICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMTQgLSBUaHVyc2RheSBOb3ZlbWJlciAxNSwgMjAwMSA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNDU0MjogTWVudSBhY2NlbGVyYXRvcnMgQ1RSTCsgLyBhbmQgQ1RSTCArIFNISUZUICsgLyBkb24ndCB3b3JrICgxRllBRjhWKQo8YnI+NDc1NDogQXJyb3cga2V5cyBub3QgYWNjZXB0ZWQgYXMga2V5Ym9hcmQgYWNjZWxlcmF0b3JzICgxR0dNNFUzKSAgCjxicj41ODE1OiBTdHlsZWRUZXh0IC0gc2V0Rm9udCByZWZyZXNoIHByb2JsZW0gIAo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAxMyAtIFR1ZXNkYXkgTm92ZW1iZXIgMTMsIDIwMDEgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KPGJsb2NrcXVvdGU+CjQ4NDY6IFN0eWxlZFRleHQgLSBiaWRpIC0gcGFydGlhbCBzdHlsaW5nIG9mIGxpZ2F0dXJlcyAoMUdMM0FXVCkgIAo8YnI+NDg1OTogU3R5bGVkVGV4dCAtIGJpZGkgLSBwcm92aWRlIHNvbHV0aW9uIGZvciBiaWRpIGNvbG9yaW5nIGhhY2sgKDFHTDJVTkMpCjxicj41NDkxOiBTdHlsZWRUZXh0IC0gZ2V0U3R5bGVSYW5nZUF0T2Zmc2V0IGFsbG93cyBvZmZzZXQgPT0gZ2V0Q2hhckNvdW50Cjxicj41NDk3OiBTdHlsZWRUZXh0IC0gRXh0ZW5kZWRNb2RpZnkgZXZlbnQgbm90IHNlbnQgb24gc2V0VGV4dAo8YnI+NTYwMjogU3R5bGVkVGV4dCAtIHBhZ2UgZG93biBjYXVzZXMgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uIGluIGludmlzaWJsZS9zbWFsbCB3aWRnZXQKPGJyPjU2MTU6IFN0eWxlZFRleHQgLSB3aW5kb3cgc3RhcnQgZG9lcyBub3QgYWx3YXlzIHdvcmsgIAo8YnI+NTYyMjogU3R5bGVkVGV4dCAtIHByaW50IGNhdXNlcyBOUEUgd2hlbiBpbnZva2VkIG9uIGVtcHR5IHdpZGdldCAgCjxicj41NjI2OiBTdHlsZWRUZXh0IC0gcHJpbnQgZG9lcyBub3QgY2hlY2sgZm9yIG51bGwgUHJpbnRlciBhcmd1bWVudCAgCjxicj41NjMzOiBTdHlsZWRUZXh0IC0gcmVwbGFjZVRleHRSYW5nZSBhbmQgc2V0VGV4dCBkbyBub3QgY2hlY2sgZm9yIG51bGwgYXJndW1lbnQKPGJyPjU2NjQ6IFN0eWxlZFRleHQgLSBTaW5nbGUgbGluZSBzaG91bGQgbm90IGFjY2VwdCB0YWIgIAo8YnI+NTY3MzogU3R5bGVkVGV4dCAtIFNJTkdMRSBsaW5lIG1vZGUgc3RpbGwgYWxsb3dzIHNvbWUgbXVsdGkgbGluZSBjdXJzb3IgbmF2aWdhdGlvbgo8YnI+NTcyMjogU2VsZWN0aW5nIGZvbnQgY3Jhc2hlcyBlY2xpcHNlIHdpdGggYSBqYXZhY29yZQo8YnI+NTcyNTogUGxlYXNlIHJlbmFtZSAiRWNsaXBzZSBMYXVuY2hlciIgIAo8YnI+NTgwMjogRUM6IENvbnRyb2xFeGFtcGxlIGRvZXMgbm90IHJ1biBvbiBTb2xhcmlzICAKPC9ibG9ja3F1b3RlPgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMTIgLSBNb25kYXkgTm92ZW1iZXIgNSwgMjAwMSA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgo8YmxvY2txdW90ZT4KNTQ3MDogVXNlciBpcyBsb3N0IHdoZW4gdHJ5aW5nIHRvIG1vdmUgdmlld3MgYXJvdW5kICAKPGJyPjU0ODQ6IFRhYiBubyBsb25nZXIgdHJhdmVyc2VzIGJldHdlZW4gd2lkZ2V0cyEhISAgCjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDExIC0gVGh1cnNkYXkgTm92ZW1iZXIgMSwgMjAwMSA8L2gyPgo8aDM+CjxhIE5BTUU9IkFQSSBDaGFuZ2VzIj48L2E+QVBJIENoYW5nZXM8L2gzPgo8Y29kZT5Gb250RGF0YS5zZXRMb2NhbGUoTG9jYWxlKTwvY29kZT4gaGFzIGJlZW4gY2hhbmdlZCB0byA8Y29kZT5Gb250RGF0YS5zZXRMb2NhbGUoU3RyaW5nKTwvY29kZT4uCjx1bD4KPGxpPgpKMlNFIGNvZGUgY2FuIHNpbXBseSBjcmVhdGUgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IGFuZCBpbnZva2UgPGNvZGU+dG9TdHJpbmcoKTwvY29kZT4gdG8gcGFzcyBpdCBvbnRvIHRoZSBuZXcgPGNvZGU+c2V0TG9jYWxlPC9jb2RlPi4KPGxpPgpDTERDIGNvZGUgd2lsbCBoYXZlIHRvIGZvcm0gYSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGZvcm1hdCBzcGVjaWZpZWQgaW4gdGhlIEoyU0UgamF2YWRvYyBvZiA8Y29kZT5qYXZhLnV0aWwuTG9jYWxlLnRvU3RyaW5nKCk8L2NvZGU+Lgo8L3VsPgpFeGFtcGxlOgo8YmxvY2txdW90ZT48Y29kZT48cHJlPgpMb2NhbGVbXSBsb2NhbGVzID0gewoJTG9jYWxlLlVTLCBuZXcgTG9jYWxlKCJpdyIsICJJTCIpLCBuZXcgTG9jYWxlKCJhciIsICJTQSIpLCBuZXcgTG9jYWxlKCJydSIsICJSVSIpLAoJTG9jYWxlLkdFUk1BTiwgbmV3IExvY2FsZSgiamEiLCAiSlAiKSwKCW51bGwsCn07Ci8vIG9sZCBjb2RlOiBmZC5zZXRMb2NhbGUobG9jYWxlc1tpXSk7ClN0cmluZyBsb2NhbGUgPSAobG9jYWxlc1tpXSAhPSBudWxsID8gbG9jYWxlc1tpXS50b1N0cmluZygpIDogbnVsbCk7CmZkLnNldExvY2FsZShsb2NhbGUpOwo8L3ByZT48L2NvZGU+PC9ibG9ja3F1b3RlPjwvcD4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KCjxibG9ja3F1b3RlPgo0NjY0OiBTdHlsZWRUZXh0IGRvZXMgbm90IGNvbXB1dGUgY29ycmVjdCB0ZXh0IHdpZHRoICgxR0VMSlhEKSAgCjxicj40ODMyOiBHZXJtYW46IEZvbnRzIGNhbm5vdCBoYW5kbGUgR2VybWFuIGNoYXJhY3RlcnMgKDFHS01ISFkpICAKPGJyPjQ5NjE6IFByZWZlcmVuY2VzIGRpYWxvZyBkaXNhcHBlYXJzIHdoZW4geW91IGNsaWNrIG9uIGNlcnRhaW4gcGFnZXMKPGJyPjUxODA6IE9wZW4gTW90aWYgZm9yIExpbnV4IHNoYXJlZCBsaWJyYXJpZXMgYXJlIGR1cGxpY2F0ZWQgaW4gRWNsaXBzZSAgCjxicj41MzA0OiBTdHlsZWRUZXh0IC0gQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGluIFN0eWxlZFRleHRCaWRpLnNlZ21lbnRlZFJhbmdlc0Zvcgo8L2Jsb2NrcXVvdGU+CgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMTAgLSBUaHVyc2RheSBPY3RvYmVyIDI1LCAyMDAxIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IkJlaGF2aW91ciBjaGFuZ2UiPjwvYT5CZWhhdmlvdXIgY2hhbmdlPC9oMz4KPHA+CjEpIFRoZSBEcmFnIFVuZGVyIGVmZmVjdCBvZiBzY3JvbGxpbmcgYW5kIGV4cGFuZGluZyBpdGVtcyBhcyB5b3UgZHJhZyBvdmVyIHRoZSA8Y29kZT5UcmVlPC9jb2RlPiBvciA8Y29kZT5UYWJsZTwvY29kZT4gaGFzIGJlZW4gYWRkZWQuICBUbyBlbmFibGUgdGhpcyBkcmFnIHVuZGVyIGVmZmVjdCwgaW4gdGhlIDxjb2RlPkRyYWdPdmVyPC9jb2RlPiBldmVudCBzZXQgdGhlIDxjb2RlPmV2ZW50LmZlZWRiYWNrPC9jb2RlPiB0byBoYXZlIGEgYml0d2lzZSBjb21iaW5hdGlvbiBvZiA8Y29kZT5ETkQuRkVFREJBQ0tfU0NST0xMLCBETkQuRkVFREJBQ0tfRVhQQU5EPC9jb2RlPiBhbmQgKDxjb2RlPkRORC5GRUVEQkFDS19TRUxFQ1QsIERORC5GRUVEQkFDS19JTlNFUlRfQkVGT1JFLCBETkQuRkVFREJBQ0tfSU5TRVJUX0FGVEVSPC9jb2RlPikgLSB3aGVyZSB0aGUgbGFzdCB0aHJlZSBpdGVtcyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgo8YmxvY2txdW90ZT48Y29kZT48cHJlPgp0YXJnZXQuYWRkRHJvcExpc3RlbmVyIChuZXcgRHJvcFRhcmdldEFkYXB0ZXIoKSB7CglwdWJsaWMgdm9pZCBkcmFnT3ZlcihEcm9wVGFyZ2V0RXZlbnQgZXZlbnQpewoJCWV2ZW50LmZlZWRiYWNrID0gRE5ELkZFRURCQUNLX1NFTEVDVCB8IERORC5GRUVEQkFDS19FWFBBTkQgfCBETkQuRkVFREJBQ0tfU0NST0xMOwoJfQp9CjwvcHJlPjwvY29kZT48L2Jsb2NrcXVvdGU+PC9wPgo8cD4KMikgT24gc29tZSBvcGVyYXRpbmcgc3lzdGVtcyBpdCBpcyBwcmVmZXJyZWQgdG8gbW92ZSBmaWxlcyBpbiBhIGRyYWcgYW5kIGRyb3Agb3BlcmF0aW9uIHJhdGhlciB0aGFuIGZvciB0aGUgZHJvcCB0YXJnZXQgdG8gbWFrZSBhIGNvcHkgb2YgdGhlIGZpbGUgYW5kIHRoZSBkcmFnIHNvdXJjZSB0byBkZWxldGUgdGhlIG9yaWdpbmFsIGZpbGUuICBUaGUgb3BlcmF0aW9uIG9mIG1vdmluZyB0aGUgZmlsZSBpcyBwcmVmb3JtZWQgYnkgdGhlIGRyb3AgdGFyZ2V0LiAgRm9yIHRoZXNlIGNhc2VzLCB0aGUgbmV3IGRyb3AgdHlwZSA8Y29kZT5ETkQuRFJPUF9UQVJHRVRfTU9WRTwvY29kZT4gaGFzIGJlZW4gYWRkZWQuICBUaGUgRWNsaXBzZSA8Y29kZT5Ecm9wVGFyZ2V0PC9jb2RlPiBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgYmVoYXZpb3VyIGJ1dCB0aGUgRWNsaXBzZSA8Y29kZT5EcmFnU291cmNlPC9jb2RlPiBjYW4gcmVjb2duaXplIHRoaXMgc2NlbmFyaW8uICBJZiBhbm90aGVyIGFwcGxpY2F0aW9uIGhhcyBjaG9zZW4gdG8gbW92ZSB0aGUgZmlsZSByYXRoZXIgdGhhbiBjb3B5L2RlbGV0ZSwgdGhlIDxjb2RlPkRyYWdGaW5pc2hlZDwvY29kZT4gZXZlbnQgb24gdGhlIDxjb2RlPkRyYWdTb3VyY2U8L2NvZGU+IHdpbGwgaGF2ZSBhbiA8Y29kZT5ldmVudC5kZXRhaWw8L2NvZGU+IHZhbHVlIG9mIDxjb2RlPkRORC5EUk9QX1RBUkdFVF9NT1ZFPC9jb2RlPi4KPGJsb2NrcXVvdGU+PGNvZGU+PHByZT4Kc291cmNlLmFkZERyYWdMaXN0ZW5lciAobmV3IERyYWdTb3VyY2VBZGFwdGVyICgpIHsKCXB1YmxpYyB2b2lkIGRyYWdGaW5pc2hlZChEcmFnU291cmNlRXZlbnQgZXZlbnQpIHsKCQlpZiAoZXZlbnQuZGV0YWlsID09IERORC5EUk9QX1RBUkdFVF9NT1ZFKSB7CgkJCS8vIGNsZWFuIHVwIHByZXNlbnRhdGlvbiBidXQgZG8gbm90IGRlbGV0ZSB1bmRlcmx5aW5nIGZpbGUKCQl9Cgl9Cn0KPC9wcmU+PC9jb2RlPjwvYmxvY2txdW90ZT48L3A+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+Cgo8YmxvY2txdW90ZT4KMTc2NzogRGlzcGxheSBBU0NJSSBmb3IgdmFsdWVzIGdyZWF0ZXIgdGhhbiAxMjcgZmFpbHMgKDFHTEU4STUpICAKPGJyPjQ3MjU6IEZvbnREYXRhIHNwZWMgc2hvdWxkIGRpc2FsbG93IG51bGwgbmFtZSAoMUdMMzRIMykgIAo8YnI+NDg0NDogVGFiIGFwcGVhcnMgbmFycm93ZXIgdGhhbiBzcGFjZSAoMUdMMldUWSkgIAo8YnI+NDg1MjogR2VybWFuOiBDYW5ub3Qgc3RhcnQgRWNsaXBzZSBpbiBMaW51eCA3LjIgKDFHS1lZOTkpICAKPGJyPjQ4NjU6IFRhYmxlVHJlZUVkaXRvci5nZXRJdGVtIHJldHVybnMgYW4gaXRlbSBhZnRlciBzZXR0aW5nIGl0IHRvIG51bGwgKDFHTEUwSVEpCjxicj40OTMyOiBTdHlsZWRUZXh0QmlkaSBoYXMgZXF1YWxzIGJ1dCBubyBoYXNoQ29kZSBtZXRob2QgIAo8YnI+NDk1NzogU3R5bGVkVGV4dCAtIGltcGxlbWVudCBTdHlsZWRUZXh0QmlkaS5pc0xpZ2F0ZWQgIAo8YnI+NTEzMjogU3R5bGVkVGV4dCAtIHJlbW92ZSBoYXJkY29kZWQgbWFyZ2luICAKPGJyPjUxNzg6IENoYW5nZSBCaWRpVXRpbCBjYWxscyB0byBoYW5kbGUgdHJ1ZSBVbmljb2RlL1dpbmRvd3MgQ0UgY2hhbmdlcwo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAwOSAtIFRodXJzZGF5IE9jdG9iZXIgMTgsIDIwMDEgPC9oMj4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KCjxibG9ja3F1b3RlPgo0NDQ0OiBFV1QgLSBpbmNvcnJlY3Qgc2VsZWN0aW9uIGZlZWRiYWNrIHdoZW4gdGhlIGl0ZW0ncyB0ZXh0IGlzIGNoYW5nZWQgKDFGRlAzVTIpCjxicj40NDQ2OiBEQ1IgLSBHcmlkQmFnTGF5b3V0IGNvbXBhdGlibGUgTGF5b3V0TWFuYWdlciAoMUZHQ1BPMikgIAo8YnI+NDc2MjogU3R5bGVkVGV4dCAtIGRlZmF1bHQgbGluZVN0eWxlciByZW1vdmUgbGluZSBiYWNrZ3JvdW5kIGNvbG9yIGhhY2sgKDFHSEJNVVYpCjxicj40ODE5OiBTdHlsZWRUZXh0IC0gYmlkaSAtIGN1cnNvciBuYXZpZ2F0aW9uICgxR0pMS1NOKSAgCjxicj40ODIwOiBTdHlsZWRUZXh0IHdpdGggc3R5bGUgU0lOR0xFIGRvZXMgbm90IGhhbmRsZSBDUi9MRiB3ZWxsICgxR0pNMlo1KQo8YnI+NDg1NTogU2V2ZXJlOiBDaGVjayBib3hlcyBhcmUgYmxhY2sgKDFHTDBYU0kpICAKPGJyPjQ5MDk6IEVDOiBDb21iby5zZXRUZXh0IGRvZXNuJ3Qgd29yayBvbiBMaW51eCAgCjxicj40OTEwOiBFQzogQ29tYm8uc2VsZWN0KCkgZmlyZXMgYSBzZWxlY3RlZCBldmVudCBvbiBMaW51eCBvbmx5ICAKPGJyPjUwNDU6IENvbnRyb2wubW92ZUFib3ZlKCkgdGhyb3dzIE5QRSBpZiBhcmd1bWVudCBpcyBudWxsICAKPC9ibG9ja3F1b3RlPgoKCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDA4IC0gVGh1cnNkYXkgT2N0b2JlciAxMSwgMjAwMSA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgoKPGJsb2NrcXVvdGU+CjFHTERRWUI6IFNXVDpXSU4gLSBUZXh0IHdpZGdldCB3aXRoIERORCBlbmFibGVkLCBNb3VzZURvd24gYnV0IG5vIE1vdXNlVXAKPGJyPjFHTEFEQks6IFNXVDpBTEwgLSBTdHlsZWRUZXh0IC0gZ2V0T2Zmc2V0QXRMb2NhdGlvbiBzaG91bGQgdGhyb3cgZXhjZXB0aW9uCjxicj4xR0w0WlZFOiBTV1Q6QUxMIC0gU3R5bGVkVGV4dCAtIGdldE9mZnNldEF0TG9jYXRpb24oZ2V0TG9jYXRpb25BdE9mZnNldChOKSkgIT0gTgo8YnI+MUdLTzZOWTogU1dUOkFMTCAtIEJhY2tzcGFjaW5nIGluIFN0eWxlZFRleHQgZG9lcyBub3QgZmlyZSBzZWxlY3Rpb24gY2hhbmdlZAo8YnI+MUdLQjFPQzogSVRQSlVJOkFMTCAtIEVycm9yIGluIEphdmFEb2MgaG92ZXIgaGVscAo8YnI+MUdLOUFQSTogU1dUOkFMTCAtIFN0eWxlZFRleHQgLSBiaWRpIC0gbnVtYmVycyxtaXhlZCBMdG9SL1J0b0wgdGV4dCBhbmQgY2FyZXQgcG9zaXRpb25pbmcKPGJyPjFHSkxRMTY6IFNXVDpBTEwgLSBTdHlsZWRUZXh0IC0gYmlkaSAtIGJhY2tzcGFjZSBhbmQgZGVsZXRlIGJlaGF2aW9yCjxicj4xR0lLN0Q0OiBTV1Q6QUxMIC0gU3R5bGVkVGV4dCAtIFNlbGVjdGlvbiBjbGVhcmVkIHdoZW4gZGVsZXRpb24gZGlzYWxsb3dlZCBieSB2ZXJpZnkgbGlzdGVuZXJzCjxicj4xR0RPTUJJOiBTV1Q6V0lOTlQgLSBTdHlsZWRUZXh0IC0gcmVkcmF3UmFuZ2UoKSBkb2Vzbid0IGNoZWNrV2lkZ2V0Cjxicj4xR0RLSzNSOiBTV1Q6V0lOTlQgLSBTdHlsZWRUZXh0IC0gc2V0Q2FyZXRPZmZzZXQgYW5kIGxpbmUgZGVsaW1pdGVycyBidWcKPGJyPjFGTVJRT1Q6IFNXVDpBTEwgLSBObyBudWxsIGFyZ3VtZW50IGNoZWNrcyBpbiBEaWFsb2cgY29uc3RydWN0b3JzCjwvYmxvY2txdW90ZT4KCgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAwNyAtIFRodXJzZGF5IE9jdG9iZXIgNCwgMjAwMSA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgoKPGJsb2NrcXVvdGU+CjFHS1pINzQ6IElUUEpVSTpXSU4yMDAwIC0gRGlzYXBwZWFyaW5nIFN0b3AgaWNvbgo8YnI+MUdLWjhDVjogU1dUOldJTk5UIC0gc2V0U2VsZWN0aW9uIHRyaWdnZXJzIFNlbGVjdGlvbkNoYW5nZWQgZXZlbnQKPGJyPjFHS1U0QzU6IFNXVDpBTEwgLSBTdHlsZWRUZXh0IC0gYmlkaSAtIHNjcm9sbGluZyB0byBzaG93IGN1cnNvciBzaG91bGQgdGFrZSBjdXJzb3IgZGlyZWN0aW9uIGludG8gYWNjb3VudAo8YnI+MUdLUFlNSzogU1dUOldJTk5UIC0gU3R5bGVkVGV4dCAtIGJpZGkgLSBjYXJldCBtb3ZlcyB3aGVuIHN3aXRjaGluZyBrZXlib2FyZCBmcm9tIEhlYnJldyB0byBBcmFiaWMKPGJyPjFHS09HUU86IFNXVDpBTEwgLSBKYXZhZG9jOiBzZXRTZWxlY3Rpb24gaW4gQnV0dG9uIGFuZCBUb29sSXRlbQo8YnI+MUdLTTJPNTogU1dUOldJTk5UIC0gU3R5bGVkVGV4dCAtIGJpZGkgLSBBcnJheUluZGV4T3V0T2ZCb3VuZHMgZXhjZXB0aW9uIGluIFN0eWxlZFRleHRCaWRpLmlzUmlnaHRUb0xlZnQKPGJyPjFHS00xOTM6IFNXVDpXSU5OVCAtIFN0eWxlZFRleHQgLSBiaWRpIGF1dG9zY3JvbGwgbGVmdCBkb2VzIG5vdCBhbHdheXMgc2Nyb2xsIGFsbCB0aGUgd2F5IHRvIHRoZSBsZWZ0Cjxicj4xR0tLQzBVOiBTV1Q6QUxMIC0gVHJhY2tlciBjYWxscyBPUy5EaXNwYXRjaE1lc3NhZ2UobXNnKSBvbiB3aW5kb3dzIGJ1dCBkb2VzIG5vdCBvbiBMaW51eC4KPGJyPjFHSVZBWFg6IFNXVDpBTEwgLSBTdHlsZWRUZXh0IC0gRWRpdG9ycyBzaG91bGQgc3VwcG9ydCBzaGlmdC1iYWNrc3BhY2UKPGJyPjFHRUxRMTQ6IFNXVDpXSU5OVCAtIFN0eWxlZFRleHQgLSBEZWZhdWx0Q29udGVudCAtIGhhbmRsZSB3ZWlyZCBsaW5lIGRlbGltaXRlciBjYXNlcwo8YnI+MUdFOExHMDogU1dUOkxpbnV4IC0gVG9vbGJhciBpcyBub3Qgc2hvd2luZyB0aGUgc2VwYXJhdG9ycy4KPC9ibG9ja3F1b3RlPgoKCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDA2IC0gVGh1cnNkYXkgU2VwdCAyNywgMjAwMSA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgoKPGJsb2NrcXVvdGU+CjFHSFdBMTk6IFNXVDpXSU5OVCAtIFByb2JsZW0gd2l0aCBjYWxsYmFja3MgZnJvbSBDQ29tYm8KPGJyPjFHSEZEUFY6IFNXVDpXSU4yMDAwIC0gU2V0dGluZyBzZWxlY3Rpb24gaW4gVGFibGUgZG9lcyBub3QgdXBkYXRlIGZvY3VzIGl0ZW0KPGJyPjFHRjY0NFY6IElUUFVJOkxpbnV4IC0gVW56b29tIGlzIGNoYW5naW5nIHRoZSBhY3RpdmUgZWRpdG9yLgo8YnI+MUdLTTNYUzogU1dUOldJTk5UIC0gU3R5bGVkVGV4dCAtIGJpZGkgYXV0b3Njcm9sbCBsZWZ0OiBzZWxlY3Rpb24gcmVzZXQgb24gbW91c2UgbW92ZQo8L2Jsb2NrcXVvdGU+CgoKCjxoMj4gU1dUIEJ1aWxkIDIuMCAwMDUgLSBGcmlkYXkgU2VwdCAyMSwgMjAwMSA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgoKPGJsb2NrcXVvdGU+CjFHSzA5WjA6IFNXVDpMaW51eCAtIHNldEVuYWJsZWQoZmFsc2UpIGhhcyBubyBlZmZlY3Qgb24gYVRvb2xiYXIKPGJyPjFHSlpaUzY6IFNXVDpMaW51eCAtIEZpbGUgRGlhbG9nIHJldHVybnMgYSBkaXJlY3RvcnkKPGJyPjFHRjdTTUM6IElUUFVJOkxpbnV4IC0gV3JvbmcgYmcgZm9yIGNsb3NlIGJ1dHRvbiBvbiBlZGl0b3IgdGFiCjwvYmxvY2txdW90ZT4KCgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAwNCAtIFRodXJzZGF5IFNlcHQgMTMsIDIwMDEgPC9oMj4KCjxoMz4KPGEgTkFNRT0iQVBJIEJlaGF2aW91ciBjaGFuZ2UiPjwvYT5BUEkgQmVoYXZpb3VyIGNoYW5nZTwvaDM+ClRoZSBiZWhhdmlvdXIgb2YgZGlzcG9zZSBmb3IgR0NzIGhhcyBiZWVuIG1vZGlmaWVkIHN1Y2ggdGhhdCBhdHRlbXB0aW5nIHRvIGRpc3Bvc2Ugb2YKYSBHQyBvbiBhIGNvbnRyb2wgPGVtPmFmdGVyPC9lbT4gdGhlIGNvbnRyb2wgaGFzIGJlZW4gZGlzcG9zZWQgd2lsbCBnZW5lcmF0ZSBhbgpTV1RFeGNlcHRpb24uICBUaGlzIGZpeGVzIGFuIE9TIHJlc291cmNlIGxlYWsgYW5kIHBvdGVudGlhbCBHUEYgc2l0dWF0aW9uLgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgoKPGJsb2NrcXVvdGU+CjFHSlVBS0w6IFNXVDpOZXV0cmlubyAtIENvbnRyb2wuaW50ZXJuYWxfbmV3X0dDKCkgbmVlZHMgIWlzVmFsaWRXaWRnZXQoKSBjaGVjawo8YnI+MUdKTjUyTjogU1dUOkxpbnV4IC0gVGV4dCBwcmludHMgc3lzdGVtIGVycm9yIG1lc3NhZ2UgZm9yIGhvcml6b250YWwgc2Nyb2xsYmFyCjxicj4xR0pCT0FWOiBTV1Q6QUxMIC0gU2Nyb2xsZWRDb21wb3NpdGUgYnVncwo8YnI+MUdJWEVMSTogU1dUOkFMTCAtIE5lZWQgQ2FyZXQgdG8gYWxsb3cgYml0bWFwcyBzbyBiaWRpIGNhcmV0IGNhbiBiZSBjcmVhdGVkCjxicj4xR0k1TzFUOiBTV1Q6V0lOTlQgLSBDb21wb3NpdGUuc2V0Rm9jdXMgdGFrZXMgZm9jdXMgd2hlbiBpdCBzaG91bGQgbm90Cjxicj4xR0hPTkQ3OiBTV1Q6V0lOMjAwMCAtIFNlbGVjdGlvbiBwcm9ibGVtIHdpdGggc2luZ2xlLXNlbGVjdGlvbiB0cmVlcwo8YnI+MUdIRzk5MDogU1dUOkFMTCAtIFByb2JhYmxlIGJ1ZyBpbiBTbGlkZXIgcGFnZSBpbmNyZW1lbnQgc2V0dGluZwo8YnI+MUdFTko2MDogU1dUOkFMTCAtIFNjcm9sbGVkQ29tcG9zaXRlIHNob3VsZCBpbmNsdWRlIGV4YW1wbGUgaW4gaXRzIGNsYXNzIGNvbW1lbnQKPGJyPjFHRUE3Szc6IElUUFVJOkxpbnV4IC0gRGVmYXVsdCBidXR0b24gbm90IHdvcmtpbmcKPC9ibG9ja3F1b3RlPgoKCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDAzIC0gRnJpZGF5IFNlcHQgMDcsIDIwMDEgPC9oMj4KCjxoMz4KPGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDM+Cgo8YmxvY2txdW90ZT4KRm9udERhdGEuc2V0TG9jYWxlKGphdmEudXRpbC5Mb2NhbGUpIGFkZGVkCjxicj5DYXJldC5nZXRJbWFnZSgpIGFkZGVkCjxicj5DYXJldC5zZXRJbWFnZShJbWFnZSkgYWRkZWQKPGJyPkdDLmZpbGxHcmFkaWVudFJlY3RhbmdsZShpbnQsIGludCwgaW50LCBpbnQsIGJvb2xlYW4pIGFkZGVkCjwvYmxvY2txdW90ZT4KCjxoMz4KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMz4KCjxibG9ja3F1b3RlPgoxR0pNN0tNOiBTV1Q6TGludXggLSBUYWJsZSBhbmQgVHJlZSByZXR1cm4gYSBkaWZmZXJlbnQgc2l6ZSBmb3IgZXZlcnkgc2Vjb25kIGNhbGwgdG8gY29tcHV0ZVNpemUKPGJyPjFHSkxLSEU6IFNXVDpTUEFSQyAtIEdQIG9uICJJbnN0YWxsZWQgSlJFcyIgcHJlZmVyZW5jZSBwYWdlCjxicj4xR0pMSzYzOiBTV1Q6QUxMIC0gU3R5bGVkVGV4dCAtIGJpZGkgLSBrZXlib2FyZCBzd2l0Y2hpbmcKPGJyPjFHSkxFMzY6IFNXVDpXSU5OVCAtIEFscGhhIGRhdGEgcmVkcmF3aW5nIGltcHJvcGVybHkgYWZ0ZXIgb2NjbHVzaW9uCjxicj4xR0pBMkw3OiBTV1Q6V0lOIC0gRGlmZmVyZW50IGJlaGF2aW9yIGZvciBHQy5kcmF3U3RyaW5nKCkgYXJncyBvbiBXaW4gdnMuIFBob3Rvbgo8YnI+MUdJWjBQNjogU1dUOldJTk5UIC0gR0MuZHJhd0ltYWdlKCkgcHJvYmxlbSB3aXRoIHRyYW5zcGFyZW50IHBpeGVscwo8YnI+MUdJWEVMSTogU1dUOkFMTCAtIE5lZWQgQ2FyZXQgdG8gYWxsb3cgYml0bWFwcyBzbyBiaWRpIGNhcmV0IGNhbiBiZSBjcmVhdGVkCjxicj4xR0k3RlFGOiBTV1Q6QUxMIC0gQ2FuJ3Qgc2V0IGZvY3VzIHRvIFRhc2tzIFZpZXcgYnkgS2V5Ym9hcmQKPGJyPjFHSTdFQkw6IFNXVDpMaW51eCAtIGFwaSB0eXBvOiBUb29sSXRlbT4+Z2V0RGlzYWJsZWRtYWdlKCkKPGJyPjFHSTNQODY6IFNXVDpBTEwgLSBTZW1hbnRpYyBkaWZmZXJlbmNlcyBiZXR3ZWVuIGVtdWxhdGVkIFRhYmxlIGFuZCBUcmVlIGNvZGViYXNlIG9uIE1vdGlmIGFuZCBQaG90b24KPGJyPjFHSTFXRUE6IFNXVDpOZXV0cmlubyAtIFRleHQgc2VsZWN0aW9uIGNvZGUgbm90IHdvcmtpbmcgY29ycmVjdGx5Cjxicj4xR0hXRUQyOiBTV1Q6V0lOTlQgLSBHQy5zdHJpbmdFeHRlbnQoKSBub3QgY29ycmVjdCBmb3IgV2luZG93cyBBcmlhbCBmb250Cjxicj4xR0hXQjdHOiBTV1Q6TGludXggLSBMaW51eCBmb250IGRpYWxvZyBkb2Vzbid0IG9wZW4gd2l0aCBnaXZlbiB2YWx1ZXMuCjxicj4xR0hWUkZZOiBTV1Q6TmV1dHJpbm8gLSBUZXh0I0NsZWFyU2VsZWN0aW9uIGNoYW5nZXMgdGhlIENhcmV0UG9zaXRpb24gaW4gYSBTSU5HTEUtbGluZSB3aWRnZXQKPGJyPjFHSFZMVjY6IFNXVDpOZXV0cmlubyAtIFRleHQjU2V0VG9wSW5kZXggYW5kIGdldFRvcEluZGV4IGluY29uc2lzdGVudAo8YnI+MUdIT0o2VDogU1dUOk5ldXRyaW5vIC0gVGV4dCNzZXRTZWxlY3Rpb24gaW5jb25zaXN0ZW50IGJldHdlZW4gU0lOR0xFIGFuZCBNVUxUSQo8YnI+MUdIQkxSQTogU1dUOk5ldXRyaW5vIC0gRGlzcGxheS5nZXRCb3VuZHMoKSByZXR1cm5zIGluY29ycmVjdCBpbmZvCjxicj4xR0g0OFVROiBTV1Q6TmV1dHJpbm8gLSBFbnRlciBrZXkgZG9lcyBub3QgaW5zZXJ0IG5ldyBsaW5lIHdpdGggVGV4dC5NVUxUSSB3aWRnZXQKPGJyPjFHR1QwVE06IFNXVDpOZXV0cmlubyAtIEdDI2RyYXdBcmMgaW5jb25zaXN0ZW50IGJldHdlZW4gTlQgYW5kIE5UTwo8YnI+MUdHMURCVDogU1dUOlNQQVJDIC0gU29sYXJpcyBsb3NlcyBpbnB1dCBjaGFyYWN0ZXJzCjxicj4xR0cwN0hXOiBTV1Q6TGludXggLSBUcmVlLmdldEl0ZW0oKSBtb2RpZmllcyBpdHMgYXJndW1lbnQgb24gTW90aWYKPGJyPjFHRzAwNjk6IFNXVDpMaW51eCAtIFdlaXJkIGxheW91dCBpc3N1ZXMgc2VlbiBpbiBDb250cm9sIEV4YW1wbGUKPGJyPjFHRlpaTEs6IFNXVDpMaW51eCAtIFRvb2xJdGVtcyBub3QgZGlzYWJsZWQgd2hlbiBjb250YWluaW5nIFRvb2xCYXIgaXMgZGlzYWJsZWQKPGJyPjFHRlpVM1g6IFNXVDpBTEwgLSBJbWFnZUxvYWRlci5sb2FkKFN0cmluZykgbm90IGNsb3NpbmcgZmlsZSBpbnB1dCBzdHJlYW0KPGJyPjFHRlpQRFA6IFNXVDpMaW51eCAtIENvbWJvIGJveCB3aXRoIFNXVC5TSU1QTEUgc3R5bGUgZG9lcyBub3QgcmVzcGVjdCBEaXNhYmxlZCBmbGFnICh2aXN1YWxseSkKPGJyPjFHRlc4NUg6IFNXVDpBTEwgLSBQcmludGVyLmdldFByaW50ZXJEYXRhKCkgaGFzIHN0YWxlIGNvbW1lbnQKPGJyPjFHRlc2TVE6IFNXVDpBTEwgLSBEQ1I6IFByb2dyYW0gY2xhc3MgbmVlZHMgLmVxdWFscygpIGFuZCAuaGFzaENvZGUoKQo8YnI+MUdGVzRZTjogU1dUOkFMTCAtIEhlbHAgS2V2aW5IIGFkZCBwcmludGluZyB0byBFY2xpcHNlCjxicj4xR0ZRS0RUOiBTV1Q6QUxMIC0gSW1hZ2Uuc2V0QmFja2dyb3VuZCgpIC8gZ2V0QmFja2dyb3VuZCgpIGFzeW1tZXRyeQo8YnI+MUdGT05WVzogU1dUOkxpbnV4IC0gRW1wdHkgQ29tYm8gc2hvdWxkIG5vdCBmaXJlIFNlbGVjdGlvbiBldmVudAo8YnI+MUdGTDBIUDogU1dUOkxpbnV4IC0gUmVtYWluaW5nIGl0ZW1zIGluIFNXVCBjb21tZW50cyB0byBmaXgKPGJyPjFHRVQ5MEQ6IFNXVDpMaW51eCAtIFNXVEV4Y2VwdGlvbnMgYnJpbmcgZG93biBFY2xpcHNlCjxicj4xR0VTUUJLOiBJVFBKVUk6V0lOTlQgLSBIb3cgdG8gZ2V0IGFjY2VzcyB0byBwb3AtdXAgbWVudXMgb2YgdGhlIEphdmEgZWRpdG9yID8KPGJyPjFHRUxYNEE6IElUUFVJOkFMTCAtIEhvdmVyIGhlbHAgaXMgbm90IHZpc2libGUgaWYgcGFuZSBpcyBkcmFnZ2VkIG91dCBvZiB3b3JrYmVuY2gKPGJyPjFHRUhXQUY6IElUUFVJOldJTjIwMDAgLSBDYW4ndCBlbnRlciB0ZXh0IGluIGEgU3dpbmcgVGV4dEZpZWxkIG9yIFRleHRBcmVhCjxicj4xR0U1RUNKOiBJVFBVSTpXSU4yMDAwIC0gSG92ZXIgaGVscCBmb3IgdGl0bGUgYmFyIGJ1dHRvbnMgYXBwZWFycyBiZWhpbmQgZGV0YWNoZWQgdmlldwo8YnI+MUdEWDdSODogSVRQVUk6QUxMIC0gU1dUIHNldFRleHQoKSBkb2VzIE5PVCBoYXZlIGFueSB3YXkgdG8gYXZvaWQgbWFraW5nIG1uZW1vbmljcy4KPGJyPjFHRDVVSEE6IFNXVDpXSU4yMDAwIC0gRG91YmxlLWNsaWNraW5nIG9uIHRvb2xiYXIgaXRlbSBnaXZlcyBkb3VibGUtY2xpY2sgZXZlbnQgb24gdG9vbGJhcgo8YnI+MUdCWElFTzogU1dUOkFMTCAtIERDUjogSW5jbHVkZSBjdXJzb3IgcG9zIGluIFRyYWNrZXIgbW92ZSBldmVudAo8YnI+MUc0SU1RMzogU1dUOldJTk5UIC0gVGFibGUgaW1hZ2VzIGluY29ycmVjdCBhZnRlciByYXBpZCByZW1vdmFsIGFuZCBjcmVhdGlvbgo8L2Jsb2NrcXVvdGU+CgoKPGgyPiBTV1QgQnVpbGQgMi4wIDAwMiAtIFdlZG5lc2RheSBKdWx5IDE4LCAyMDAxIDwvaDI+Cgo8aDM+CjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDM+Cgo8YmxvY2txdW90ZT4KMUdHWjEzVDogU1dUOk5ldXRyaW5vIC0gaW52YWxpZCBtb3VzZSBzdGF0ZSBvY2N1cmluZyBpbiBQaG90b24KPGJyPjFHR1JDQ1M6IFNXVDpOZXV0cmlubyAtIExhYmVsIGRvZXMgbm90IHdyYXAgaW4gU1dUMDEyNQo8YnI+MUdHQU9OMjogU1dUOkFMTCAtIFNjYWxpbmcgaW1hZ2Ugd2l0aCBhbHBoYXMgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkKPGJyPjFHRlpRVlE6IFNXVDpMaW51eCAtIFZlcnRpY2FsIFByb2dyZXNzQmFyIGdyb3dzIGluY29ycmVjdGx5Cjxicj4xR0ZRQTE4OiBTV1Q6TGludXggLSBDaGVlc2Ugd2l0aCBHQyBkcmF3Um91bmRlZFJlY3RhbmdsZSgpIG9uIE1vdGlmCjxicj4xR0ZQSzZHOiBTV1Q6TGludXggLSBNb3RpZiBmaWxsUG9seWdvbigpIHNwZWNpZmllcyBpbXByb3BlciBoaW50CjwvYmxvY2txdW90ZT4KCgo8aDI+IFNXVCBCdWlsZCAyLjAgMDAxIC0gVGh1cnNkYXkgSnVseSAxMiwgMjAwMSA8L2gyPgoKPGgzPgo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gzPgoKPGJsb2NrcXVvdGU+CjFHR0VUNzY6IFNXVDpOZXV0cmlubyAtIENhbnZhcyBkb2VzIG5vdCByZXNwb25kIHRvIHNldEZvY3VzKCkKPGJyPjFHR0FTNVA6IFNXVDpOZXV0cmlubyAtIFBob3RvbiBvbiBRTlggNi4xLnggbmVlZHMgU1dUIG5hdGl2ZSBjaGFuZ2VzCjxicj4xR0c5NlJPOiBTV1Q6TmV1dHJpbm8gLSBkcmF3T3ZhbCBhbmQgZmlsbE92YWwgbm90IGNvbXBhdGlibGUKPGJyPjFHRzhaTFY6IFNXVDpXSU5OVCAtIGRyYXdPdmFsIGJlaGF2ZXMgZGlmZmVyZW50bHkgb24gV2luZG93cyB2cy4gb3RoZXIgcGxhdGZvcm1zCjxicj4xR0ZLWUQ5OiBTV1Q6TGludXggLSAtSEFORy0gKFhzZXJ2ZXIpIFdoZW4gcGVyZm9taW5nIGRpc3BsYXkud2FrZSgpIGluIGEgRE5EIGRyYWdTdGFydCgpCjxicj4xR0ZLSzM3OiBTV1Q6TGludXggLSBGaWxlVmlld2VyIGV4YW1wbGVzIGlzc3Vlcwo8YnI+MUdGQkhYNjogU1dUOkFMTCAtIENUYWJJdGVtIHRvb2wgdGlwIGZsYXNoaW5nCjxicj4xR0Y5Wk1UOiBTV1Q6U1BBUkMgLSA4LWJpdCBJY29ucyBhcmUgbG9zaW5nIGNvbG9ycwo8YnI+MUdGOVpKRzogU1dUOlNQQVJDIC0gSWNvbnMgYXJlIGJlaW5nIG1hc2tlZCBpbmNvcnJlY3RseSBvbiBTb2xhcmlzCjxicj4xR0Y5WUhEOiBJVFBVSTpXSU4yMDAwIC0gU1dURXhjZXB0aW9uOiBoZWxwIHZpZXcKPGJyPjFHRjlZMzI6IFNXVDpTUEFSQyAtIDI0LWJpdCBNU0IgSWNvbnMgYXJlIHdyb25nIGNvbG9yIChncmVlbmlzaCkKPGJyPjFHRjBEMDU6IFNXVDpMaW51eCAtIEdQRnMgd2hlbiBydW5uaW5nIEpVbml0IFRlc3RSdW5uZXIgaW4gSjkgQVdUCjxicj4xR0VVWlpDOiBTV1Q6QUxMIC0gIk5hbWUiIG9mIHBsdWdpbiBpbmNvbnNpc3RhbnQgd2l0aCBvdGhlciBwbHVnaW5zCjxicj4xR0VURFA1OiBJVFBVSTpMaW51eCAtIE5QRSB3aGlsZSBjbG9zaW5nIGVkaXRvciBvbiBsaW51eAo8YnI+MUdEVlJUNTogU1dUOk5ldXRyaW5vIC0gQWxwaGEgY2hhbm5lbCBtZW1vcnkgbGVhawo8YnI+MUdEUlhaUjogSVRQSlVJOkxpbnV4IC0gU1dUOiBDb250ZXh0LU1lbnVzIGlzc3VlIHVuZGVyIExpbnV4IAo8YnI+MUdEME9TSzogU1dUOkFMTCAtIEFQSSAtIHBhY2thZ2UgamF2YWRvYyBmb3IgU1dUIHBhY2thZ2VzIG1pc3NpbmcKPGJyPjFHQ0hTNzU6IFNXVDpXSU5OVCAtIHdvcmtiZW5jaCBleGl0cyBkdXJpbmcgZXhwYW5kIGNvbGxhcHNlCjxicj4xR0NGVVMwOiBTV1Q6QUxMIC0gQ1RhYkZvbGRlciAiZmxvYXRpbmciIFggc3RpY2tzIHNvbWV0aW1lcwo8YnI+MUdBUjk1TzogU1dUOkFMTCAtIFJlbW92ZSBTbWFsbHRhbGsgY29tbWVudHMgZnJvbSBTV1QgY29kZQo8YnI+MUdBUVJORDogU1dUOkFMTCAtIERPQzogV3JpdGUgZ29vZCBKYXZhZG9jIGNvbW1lbnRzIGZvciBhbGwgb2YgU1dUCjxicj4xRzk3STI4OiBTV1Q6TGludXggLSBUb29sIGJhciBidXR0b25zIGRvIG5vdCBhbHdheXMgd29yawo8YnI+MUc4NEFaQjogSVRQRFVJOkFMTCAtIFJlbmFtZSB0cnVuY2F0ZXMgbmFtZQo8YnI+MUc4NDVFWjogU1dUOldJTjIwMDAgLSBTcGVjIGZvciBMYXlvdXQuY29tcHV0ZVNpemUoKSBpcyB0cnVuY2F0ZWQKPGJyPjFHN1lYTEI6IFNXVDpXSU4gLSBTdHlsZWRUZXh0IC0gTkxTIFN1cHBvcnQKPGJyPjFHN05TSFI6IFNXVDpBTEwgLSBXaWRnZXQuYWRkTGlzdGVuZXIoaW50LCBMaXN0ZW5lcikgdnMuIGFkZGluZyB0eXBlZCBsaXN0ZW5lcnMKPGJyPjFHNFhESk86IFNXVDpMaW51eCAtIFRyZWUgbmVlZHMgdG8gZGlzcGxheSBhbiBpbnNlcnQgbWFya2VyCjxicj4xRzBZOE5aOiBTV1Q6QUxMIC0gQ29tYm8gYm94IGRvZXNuJ3Qgc2VuZCBrZXkgYW5kIG1vdXNlIGV2ZW50cyAKPGJyPjFGWEFWTEY6IFNXVDpXSU5OVCAtIERpc2FibGVkIHRvb2xiYXIgaWNvbnMgZG9uJ3QgYWRhcHQgdG8gYXBwZWFyYW5jZSBjaGFuZ2VzCjxicj4xRlYxUzE4OiBTV1Q6QUxMIC0gTmVlZCBtb3JlIFdNXyogbWVzc2FnZXMgcGFzc2VkIHRvIEFjdGl2ZVggQ29udHJvbAo8YnI+MUZUV1g1NTogU1dUOkFMTCAtIEluY29uc2lzdGFudCBjb21tZW50aW5nIG9mIHdoaWNoIFNXVCBvYmplY3RzIG5lZWQgdG8gYmUgZGlzcG9zZWQuCjwvYmxvY2txdW90ZT4KPC9ib2R5Pgo8L2h0bWw+Cg==