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EABkigCDAAdlSABkCwBkiwBkZQBkjABkZwBkFwFkaABnAABkaQBlNABnAQBkagBkFABkEABkjQCDAAdlSABkCwBkjgBkZQBkjwBkZwBkFwFkaABnAABkaQBlNABnAQBkagBkFABkEABkkACDAAdlSABkCwBkkQBkZQBkkgBkZwBlHABkaABnAABkaQBlOgBnAQBkagBkawBkEABkkwCDAAdlSABkCwBklABkZQBklQBkZwBlHgBkaABnAABkaQBlOgBnAQBkagBkDgBkEABklgCDAAdlSABkCwBklwBkZQBkmABkZwBlJABkaABnAABkaQBlNgBnAQBkagBkawBkEABkmQCDAAdlSABkCwBkmgBkZQBkmwBkZwBlJgBkaABnAABkaQBlNgBnAQBkagBkDgBkEABknACDAAdlSABkCwBknQBkZQBkngBkZwBkFwFkaABnAABkaQBlQQBnAQBkagBkDgBkEABknwCDAAdlSABkCwBkoABkZQBkoQBkZwBkFwFkaABlQQBlRABnAgBkaQBlQQBnAQBkagBkawBkEABkogCDAAdlSABkCwBkowBkZQBkpABkZwBkFwFkaABlQQBlRQBlRgBnAwBkaQBlQQBnAQBkagBkDgBkEABkpQCDAAdlSABkCwBkpgBkZQBkpwBkZwBkFwFkaABlRQBlRgBnAgBkaQBlQQBnAQBkagBkawBkEABkqACDAAdlSABkCwBkqQBkZQBkqgBkZwBkFwFkaABnAABkaQBlPwBnAQBkagBkDgBkEABkqwCDAAdlSABkCwBkrABkZQBkrQBkZwBkFwFkaABlRQBlRgBnAgBkaQBlPwBnAQBkagBkawBkEABkrgCDAAdlSABkCwBkrwBkZQBksABkZwBkFwFkaABlRABnAQBkaQBlPwBnAQBkagBkFABkEABksQCDAAdlSABkCwBksgBkZQBkswBkZwBkFwFkaABlRABlRABnAgBkaQBlPwBnAQBkagBkFABkEABktACDAAdlSABkCwBktQBkZQBktgBkZwBkFwFkaABlRABlRABlRABnAwBkaQBlPwBnAQBkagBkFABkEABktwCDAAdlSABkCwBkuABkZQBkuQBkZwBkFwFkaABnAABkaQBlQwBnAQBkagBkDgBkEABkugCDAAdlSABkCwBkuwBkZQBkvABkZwBkFwFkaABlRQBlRgBnAgBkaQBlQwBnAQBkagBkawBkEABkvQCDAAdlSABkCwBkvgBkZQBkvwBkZwBkFwFkaABlQwBlRABlRABnAwBkaQBlQwBnAQBkagBkawBkEABkwACDAAdlSABkCwBkwQBkZQBkwgBkZwBkFwFkaABlQwBlRQBlRgBnAwBkaQBlQwBnAQBkagBkDgBkEABkwwCDAAdlSABkCwBkxABkZQBkxQBkZwBkFwFkaABlRABnAQBkaQBnAABkagBkawBkEABkxgCDAAdlSABkCwBkxwBkZQBkyABkZwBkFwFkaABlRABnAQBkaQBlRABlRABnAgBkagBkawBkEABkyQCDAAdlSABkCwBkygBkZQBkywBkZwBkFwFkaABnAABkaQBlRQBnAQBkagBkawBkEABkzACDAAdlSABkCwBkzQBkZQBkzgBkZwBkFwFkaABlRQBlRgBnAgBkaQBnAABkagBkDgBkEABkzwCDAAdlSABkCwBk0ABkZQBk0QBkZwBlIQBkaABnAABkaQBlRABnAQBkagBkawBkEABk0gCDAAdlSABkCwBk0wBkZQBk1ABkZwBlCwBkaABnAABkaQBlRABnAQBkagBkDgBkEABk1QCDAAdlSABkCwBk1gBkZQBk1wBkZwBlDwBkaABnAABkaQBlRABnAQBkagBkDgBkEABk2ACDAAdlSABkCwBk2QBkZQBk2gBkZwBlIQBkaABnAABkaQBnAABkagBkawBkEABk2wCDAAdlSABkCwBk3ABkZQBk3QBkZwBlCwBkaABnAABkaQBnAABkagBkDgBkEABk3gCDAAdlSABkCwBk3wBkZQBk4ABkZwBlDwBkaABnAABkaQBnAABkagBkDgBkEABk4QCDAAdlSABkCwBk4gBkZQBk4wBkZwBlCwBkaABnAABkaQBlRABnAQBkagBkFABkEABk5ACDAAdlSABkCwBk5QBkZQBk5gBkZwBlDQBkaABnAABkaQBlRABnAQBkagBkFABkEABk5wCDAAdlSABkCwBk6ABkZQBk6QBkZwBlDwBkaABnAABkaQBlRABnAQBkagBkFABkEABk6gCDAAdlSABkCwBk6wBkZQBk7ABkZwBlFgBkaABnAABkaQBlRABnAQBkagBkawBkEABk7QCDAAdlSABkCwBk7gBkZQBk7wBkZwBkFwFkaABlRABlRABnAgBkaQBlRABnAQBkagBkawBkEABk8ACDAAdlSABkCwBk8QBkZQBk8gBkZwBkFwFkaABlRABlRABnAgBkaQBlRABnAQBkagBkawBkEABk8wCDAAdlSABkCwBk9ABkZQBk9QBkZwBlFgBkaABlRQBlRgBnAgBkaQBlRABnAQBkagBkawBkEABk9gCDAAdlSABkCwBk9wBkZQBk+ABkZwBkFwFkaABlRQBlRABlRgBnAwBkaQBlRABnAQBkagBkDgBkEABk+QCDAAdlSABkCwBk+gBkZQBk+wBkZwBkFwFkaABlRABlRABnAgBkaQBlRABnAQBkagBkFABkEABk/ACDAAdlSABkCwBk/QBkZQBk/gBkZwBlCwBkaABnAABkaQBnAABkagBkFABkEABk/wCDAAdlSABkCwBkAAFkZQBkAQFkZwBkFwFkaABlRABnAQBkaQBnAABkagBkawBkEABkAgGDAAdlSABkCwBkAwFkZQBkBAFkZwBlFABkaABnAABkaQBlRABnAQBkagBkawBkEABkBQGDAAdlSABkCwBkBgFkZQBkBwFkZwBkFwFkaABlRABnAQBkaQBlRABnAQBkagBkDgBkEABkCAGDAAdnNQBaSQBbSABpAABaSgBpAABaSwB4ngBlTABlSQCDAQBEXZAAXAIAWk0AWk4AZU4Aak8AZUoAawYAchkQZVAAZAkBZU4Aak8AZUoAZU4Aak8AGWVNAGYDABaDAQCCAQBuAABlTgBqUQBlSwBrBgByThBlUABkCgFlTgBqUQBlSwBlTgBqUQAZZU0AZgMAFoMBAIIBAG4AAGVNAGVKAGVOAGpPADxlTQBlSwBlTgBqUQA8cdgPV1tKAFtLAFtNAFtOAGkAAFpSAHgbAGVJAERdEwBaTgBlTgBlUgBlTgBqUQA8cYUQV1tOAGVTAGQLAYQBAFpUAGVUAIMAAAFbVABkDAGEAABaVQBkDQGEAABaVgBkFwFkFwFkGABkDgGEAwBaVwBkDwFkGAFkEAGEAACDAABZWlgAZBEBWlkAZBIBWloAaQIAZVkAZBMBNmVaAGQUATZaWwBkFQGEAABaXABlXQBkFgFrAgByKxFlXACDAAABbgAAZBcBUygZAQAAc3IBAAAiRXhlY3V0YWJsZSBkb2N1bWVudGF0aW9uIiBmb3IgdGhlIHBpY2tsZSBtb2R1bGUuCgpFeHRlbnNpdmUgY29tbWVudHMgYWJvdXQgdGhlIHBpY2tsZSBwcm90b2NvbHMgYW5kIHBpY2tsZS1tYWNoaW5lIG9wY29kZXMKY2FuIGJlIGZvdW5kIGhlcmUuICBTb21lIGZ1bmN0aW9ucyBtZWFudCBmb3IgZXh0ZXJuYWwgdXNlOgoKZ2Vub3BzKHBpY2tsZSkKICAgR2VuZXJhdGUgYWxsIHRoZSBvcGNvZGVzIGluIGEgcGlja2xlLCBhcyAob3Bjb2RlLCBhcmcsIHBvc2l0aW9uKSB0cmlwbGVzLgoKZGlzKHBpY2tsZSwgb3V0PU5vbmUsIG1lbW89Tm9uZSwgaW5kZW50bGV2ZWw9NCkKICAgUHJpbnQgYSBzeW1ib2xpYyBkaXNhc3NlbWJseSBvZiBhIHBpY2tsZS4KdAMAAABkaXN0BgAAAGdlbm9wc3QIAAAAb3B0aW1pemVp/////2n+////af3///90EgAAAEFyZ3VtZW50RGVzY3JpcHRvcmMAAAAAAAAAAAQAAABCAAAAcxcAAABlAABaAQBkBQBaAgBkBACEAABaAwBSUygGAAAAdAQAAABuYW1ldAEAAABudAYAAAByZWFkZXJ0AwAAAGRvY2MFAAAABQAAAAIAAABDAAAAcygAAAB8AQB8AABfAAB8AgB8AABfAQB8AwB8AABfAgB8BAB8AABfAwBkAABTKAEAAABOKAQAAABSBAAAAFIFAAAAUgYAAABSBwAAACgFAAAAdAQAAABzZWxmUgQAAABSBQAAAFIGAAAAUgcAAAAoAAAAACgAAAAAc1MAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9waWNrbGV0b29scy5weXQIAAAAX19pbml0X1+4AAAAcwgAAAAAAgkGCQIJAygEAAAAcwQAAABuYW1lUgUAAABzBgAAAHJlYWRlcnMDAAAAZG9jKAQAAAB0CAAAAF9fbmFtZV9fdAoAAABfX21vZHVsZV9fdAkAAABfX3Nsb3RzX19SCQAAACgAAAAAKAAAAAAoAAAAAHNTAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvcGlj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UHFBAHFBAFd0AgBkBwB8AwAWgwEAggEAbgAAfAEAcr4AfAMAagQAZAgAgwEAfQMAbgAAfAMAUygJAAAAc50CAAAKICAgID4+PiBpbXBvcnQgU3RyaW5nSU8KICAgID4+PiByZWFkX3N0cmluZ25sKFN0cmluZ0lPLlN0cmluZ0lPKCInYWJjZCdcbmVmZ1xuIikpCiAgICAnYWJjZCcKCiAgICA+Pj4gcmVhZF9zdHJpbmdubChTdHJpbmdJTy5TdHJpbmdJTygiXG4iKSkKICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgIC4uLgogICAgVmFsdWVFcnJvcjogbm8gc3RyaW5nIHF1b3RlcyBhcm91bmQgJycKCiAgICA+Pj4gcmVhZF9zdHJpbmdubChTdHJpbmdJTy5TdHJpbmdJTygiXG4iKSwgc3RyaXBxdW90ZXM9RmFsc2UpCiAgICAnJwoKICAgID4+PiByZWFkX3N0cmluZ25sKFN0cmluZ0lPLlN0cmluZ0lPKCInJ1xuIikpCiAgICAnJwoKICAgID4+PiByZWFkX3N0cmluZ25sKFN0cmluZ0lPLlN0cmluZ0lPKCciYWJjZCInKSkKICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgIC4uLgogICAgVmFsdWVFcnJvcjogbm8gbmV3bGluZSBmb3VuZCB3aGVuIHRyeWluZyB0byByZWFkIHN0cmluZ25sCgogICAgRW1iZWRkZWQgZXNjYXBlcyBhcmUgdW5kb25lIGluIHRoZSByZXN1bHQuCiAgICA+Pj4gcmVhZF9zdHJpbmdubChTdHJpbmdJTy5TdHJpbmdJTyhyIidhXG5cXGJceDAwY1x0ZCciICsgIlxuJ2UnIikpCiAgICAnYVxuXFxiXHgwMGNcdGQnCiAgICBzAQAAAApzLQAAAG5vIG5ld2xpbmUgZm91bmQgd2hlbiB0cnlpbmcgdG8gcmVhZCBzdHJpbmdubGn/////cwIAAAAnInMsAAAAc3RyaW5xIHF1b3RlICVyIG5vdCBmb3VuZCBhdCBib3RoIGVuZHMgb2YgJXJpAQAAAHMaAAAAbm8gc3RyaW5nIHF1b3RlcyBhcm91bmQgJXJ0DQAAAHN0cmluZ19lc2NhcGUoBQAAAHQIAAAAcmVhZGxpbmV0CAAAAGVuZHN3aXRoUhAAAAB0CgAAAHN0YXJ0c3dpdGh0BgAAAGRlY29kZSgFAAAAUhEAAABSHwAAAHQLAAAAc3RyaXBxdW90ZXNSEgAAAHQBAAAAcSgAAAAAKAAAAABzUwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L3BpY2tsZXRvb2xzLnB5dA0AAAByZWFkX3N0cmluZ25sBgEAAHMgAAAAABsMAQ8BDwEKAgYBDQEPAQ8BBgETAQ0BCAITBAYBEgF0CAAAAHN0cmluZ25sc6IAAABBIG5ld2xpbmUtdGVybWluYXRlZCBzdHJpbmcuCgogICAgICAgICAgICAgICAgICAgVGhpcyBpcyBhIHJlcHItc3R5bGUgc3RyaW5nLCB3aXRoIGVtYmVkZGVkIGVzY2FwZXMsIGFuZAogICAgICAgICAgICAgICAgICAgYnJhY2tldGluZyBxdW90ZXMuCiAgICAgICAgICAgICAgICAgICBjAQAAAAEAAAAGAAAAQwAAAHMWAAAAdAAAfAAAZAEAdAEAZAIAdAEAgwECUygDAAAATlIfAAAAUiAAAAAoAgAAAFIiAAAAdAUAAABGYWxzZSgBAAAAUhEAAAAoAAAAACgAAAAAc1MAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9waWNrbGV0b29scy5weXQWAAAAcmVhZF9zdHJpbmdubF9ub2VzY2FwZUEBAABzAgAAAAABdBEAAABzdHJpbmdubF9ub2VzY2FwZXMDAQAAQSBuZXdsaW5lLXRlcm1pbmF0ZWQgc3RyaW5nLgoKICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBhIHN0ci1zdHlsZSBzdHJpbmcsIHdpdGhvdXQgZW1iZWRkZWQgZXNjYXBlcywKICAgICAgICAgICAgICAgICAgICAgICAgb3IgYnJhY2tldGluZyBxdW90ZXMuICBJdCBzaG91bGQgY29uc2lzdCBzb2xlbHkgb2YKICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRhYmxlIEFTQ0lJIGNoYXJhY3RlcnMuCiAgICAgICAgICAgICAgICAgICAgICAgIGMBAAAAAQAAAAQAAABDAAAAcxoAAABkAQB0AAB8AACDAQB0AAB8AACDAQBmAgAWUygCAAAAc3wAAAAKICAgID4+PiBpbXBvcnQgU3RyaW5nSU8KICAgID4+PiByZWFkX3N0cmluZ25sX25vZXNjYXBlX3BhaXIoU3RyaW5nSU8uU3RyaW5nSU8oIlF1ZXVlXG5FbXB0eVxuanVuayIpKQogICAgJ1F1ZXVlIEVtcHR5JwogICAgcwUAAAAlcyAlcygBAAAAUiUAAAAoAQAAAFIRAAAAKAAAAAAoAAAAAHNTAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvcGlja2xldG9vbHMucHl0GwAAAHJlYWRfc3RyaW5nbmxfbm9lc2NhcGVfcGFpck8BAABzAgAAAAAHdBYAAABzdHJpbmdubF9ub2VzY2FwZV9wYWlyc7YBAABBIHBhaXIgb2YgbmV3bGluZS10ZXJtaW5hdGVkIHN0cmluZ3MuCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZXNlIGFyZSBzdHItc3R5bGUgc3RyaW5ncywgd2l0aG91dCBlbWJlZGRlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVzY2FwZXMsIG9yIGJyYWNrZXRpbmcgcXVvdGVzLiAgVGhleSBzaG91bGQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zaXN0IHNvbGVseSBvZiBwcmludGFibGUgQVNDSUkgY2hhcmFjdGVycy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgcGFpciBpcyByZXR1cm5lZCBhcyBhIHNpbmdsZSBzdHJpbmcsIHdpdGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHNpbmdsZSBibGFuayBzZXBhcmF0aW5nIHRoZSB0d28gc3RyaW5ncy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjAQAAAAMAAAAFAAAAQwAAAHNw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bmNvZGUoJ3V0Zi04JykKICAgID4+PiBlbmMKICAgICdhYmNkXHhlYVx4YWZceDhkJwogICAgPj4+IG4gPSBjaHIobGVuKGVuYykpICsgY2hyKDApICogMyAgIyBsaXR0bGUtZW5kaWFuIDQtYnl0ZSBsZW5ndGgKICAgID4+PiB0ID0gcmVhZF91bmljb2Rlc3RyaW5nNChTdHJpbmdJTy5TdHJpbmdJTyhuICsgZW5jICsgJ2p1bmsnKSkKICAgID4+PiBzID09IHQKICAgIFRydWUKCiAgICA+Pj4gcmVhZF91bmljb2Rlc3RyaW5nNChTdHJpbmdJTy5TdHJpbmdJTyhuICsgZW5jWzotMV0pKQogICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgLi4uCiAgICBWYWx1ZUVycm9yOiBleHBlY3RlZCA3IGJ5dGVzIGluIGEgdW5pY29kZXN0cmluZzQsIGJ1dCBvbmx5IDYgcmVtYWluCiAgICBpAAAAAHMhAAAAdW5pY29kZXN0cmluZzQgYnl0ZSBjb3VudCA8IDA6ICVkcwUAAAB1dGYtOHM5AAAAZXhwZWN0ZWQgJWQgYnl0ZXMgaW4gYSB1bmljb2Rlc3RyaW5nNCwgYnV0IG9ubHkgJWQgcmVtYWluTigFAAAAUhkAAABSEAAAAFIOAAAAUhUAAABSLQAAACgDAAAAUhEAAABSBQAAAFISAAAAKAAAAAAoAAAAAHNTAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvcGlja2xldG9vbHMucHl0EwAAAHJlYWRfdW5pY29kZXN0cmluZzS9AQAAcxAAAAAAEgwBDAETAQ8BEgENAQYBdA4AAAB1bmljb2Rlc3RyaW5nNHNBAQAAQSBjb3VudGVkIFVuaWNvZGUgc3RyaW5nLgoKICAgICAgICAgICAgICAgICAgICBUaGUgZmlyc3QgYXJndW1lbnQgaXMgYSA0LWJ5dGUgbGl0dGxlLWVuZGlhbiBzaWduZWQgaW50CiAgICAgICAgICAgICAgICAgICAgZ2l2aW5nIHRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIHN0cmluZywg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dAogICAgICAgICAgICAgICAgICAgICAgICAgIGluIGEgc2hvcnQgUHl0aG9uIGludCBvbiB0aGUgYm94IHdoZXJlIHRoZSBwaWNrbGUKICAgICAgICAgICAgICAgICAgICAgICAgICB3YXMgd3JpdHRlbiAtLSBidXQgdGhlcmUncyBubyBndWFyYW50ZWUgaXQgd2lsbCBmaXQKICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBhIHNob3J0IFB5dGhvbiBpbnQgb24gdGhlIGJveCB3aGVyZSB0aGUgcGlja2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgcmVhZC4KICAgICAgICAgICAgICAgICAgICAgICAgICB0DgAAAGRlY2ltYWxubF9sb25nc7sAAABBIG5ld2xpbmUtdGVybWluYXRlZCBkZWNpbWFsIGludGVnZXIgbGl0ZXJhbC4KCiAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGhhcyBhIHRyYWlsaW5nICdMJywgYW5kIGNhbiByZXByZXNlbnQgaW50ZWdlcnMKICAgICAgICAgICAgICAgICAgICAgICAgIG9mIGFueSBzaXplLgogICAgICAgICAgICAgICAgICAgICAgICAgYwEAAAACAAAABgAAAEMAAABzIgAAAHQAAHwAAGQBAHQBAGQCAHQBAIMBAn0BAHQCAHwBAIMBAFMoAwAAAHNbAAAACiAgICA+Pj4gaW1wb3J0IFN0cmluZ0lPCiAgICA+Pj4gcmVhZF9mbG9hdG5sKFN0cmluZ0lPLlN0cmluZ0lPKCItMS4yNVxuNiIpKQogICAgLTEuMjUKICAgIFIfAAAAUiAAAAAoAwAAAFIiAAAAUiQAAAB0BQAAAGZsb2F0KAIAAABSEQAAAFI5AAAAKAAAAAAoAAAAAHNTAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvcGlja2xldG9vbHMucHl0DAAAAHJlYWRfZmxvYXRubDICAABzBAAAAAAGGAF0BwAAAGZsb2F0bmxzjwEAAEEgbmV3bGluZS10ZXJtaW5hdGVkIGRlY2ltYWwgZmxvYXRpbmcgbGl0ZXJh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Uk0AAAAoAAAAACgAAAAAKAAAAABzUwAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L3BpY2tsZXRvb2xzLnB5UkgAAAC5AgAAcwoAAAAGAwAEAAMGAwkNUjYAAABSSQAAAHMzAAAAQSBzaG9ydCAoYXMgb3Bwb3NlZCB0byBsb25nKSBQeXRob24gaW50ZWdlciBvYmplY3QuUjgAAABzMwAAAEEgbG9uZyAoYXMgb3Bwb3NlZCB0byBzaG9ydCkgUHl0aG9uIGludGVnZXIgb2JqZWN0LnQLAAAAaW50X29yX2Jvb2xzOgAAAEEgUHl0aG9uIGludGVnZXIgb2JqZWN0IChzaG9ydCBvciBsb25nKSwgb3IgYSBQeXRob24gYm9vbC50BAAAAGJvb2xzFQAAAEEgUHl0aG9uIGJvb2wgb2JqZWN0LlI+AAAAcxYAAABBIFB5dGhvbiBmbG9hdCBvYmplY3QudAMAAABzdHJzFwAAAEEgUHl0aG9uIHN0cmluZyBvYmplY3QuUi0AAABzHwAAAEEgUHl0aG9uIFVuaWNvZGUgc3RyaW5nIG9iamVjdC50BAAAAE5vbmVzFwAAAFRoZSBQeXRob24gTm9uZSBvYmplY3QuUksAAABzFgAAAEEgUHl0aG9uIHR1cGxlIG9iamVjdC50BAAAAGxpc3RzFQAAAEEgUHl0aG9uIGxpc3Qgb2JqZWN0LnQEAAAAZGljdHMVAAAAQSBQeXRob24gZGljdCBvYmplY3QudAMAAABhbnlzHgAAAEFueSBraW5kIG9mIG9iamVjdCB3aGF0c29ldmVyLnQEAAAAbWFya3MCAgAAJ1RoZSBtYXJrJyBpcyBhIHVuaXF1ZSBvYmplY3QuCgogICAgICAgICAgICAgICAgIE9wY29kZXMgdGhhdCBvcGVyYXRlIG9uIGEgdmFyaWFibGUgbnVtYmVyIG9mIG9iamVjdHMKICAgICAgICAgICAgICAgICBnZW5lcmFsbHkgZG9uJ3QgZW1iZWQgdGhlIGNvdW50IG9mIG9iamVjdHMgaW4gdGhlIG9wY29kZSwKICAgICAgICAgICAgICAgICBvciBwdWxsIGl0IG9mZiB0aGUgc3RhY2suICBJbnN0ZWFkIHRoZSBNQVJLIG9wY29kZSBpcyB1c2VkCiAgICAgICAgICAgICAgICAgdG8gcHVzaCBhIHNwZWNpYWwgbWFya2VyIG9iamVjdCBvbiB0aGUgc3RhY2ssIGFuZCB0aGVuCiAgICAgICAgICAgICAgICAgc29tZSBvdGhlciBvcGNvZGVzIGdyYWIgYWxsIHRoZSBvYmplY3RzIGZyb20gdGhlIHRvcCBvZgogICAgICAgICAgICAgICAgIHRoZSBzdGFjayBkb3duIHRvIChidXQgbm90IGluY2x1ZGluZykgdGhlIHRvcG1vc3QgbWFya2VyCiAgICAgICAgICAgICAgICAgb2JqZWN0LgogICAgICAgICAgICAgICAgIHQKAAAAc3RhY2tzbGljZXNLAgAAQW4gb2JqZWN0IHJlcHJlc2VudGluZyBhIGNvbnRpZ3VvdXMgc2xpY2Ugb2YgdGhlIHN0YWNrLgoKICAgICAgICAgICAgICAgICBUaGlzIGlzIHVzZWQgaW4gY29uanVjdGlvbiB3aXRoIG1hcmtvYmplY3QsIHRvIHJlcHJlc2VudCBhbGwKICAgICAgICAgICAgICAgICBvZiB0aGUgc3RhY2sgZm9sbG93aW5nIHRoZSB0b3Btb3N0IG1hcmtvYmplY3QuICBGb3IgZXhhbXBsZSwKICAgICAgICAgICAgICAgICB0aGUgUE9QX01BUksgb3Bjb2RlIGNoYW5nZXMgdGhlIHN0YWNrIGZyb20KCiAgICAgICAgICAgICAgICAgICAgIFsuLi4sIG1hcmtvYmplY3QsIHN0YWNrc2xpY2VdCiAgICAgICAgICAgICAgICAgdG8KICAgICAgICAgICAgICAgICAgICAgWy4uLl0KCiAgICAgICAgICAgICAgICAgTm8gbWF0dGVyIGhvdyBtYW55IG9iamVjdCBhcmUgb24gdGhlIHN0YWNrIGFmdGVyIHRoZSB0b3Btb3N0CiAgICAgICAgICAgICAgICAgbWFya29iamVjdCwgUE9QX01BUksgZ2V0cyByaWQgb2YgYWxsIG9mIHRoZW0gKGluY2x1ZGluZyB0aGUKICAgICAgICAgICAgICAgICB0b3Btb3N0IG1hcmtvYmplY3QgdG9vKS4KICAgICAgICAgICAgICAgICB0CgAAAE9wY29kZUluZm9jAAAAAAAAAAAHAAAAQgAAAHMXAAAAZQAAWgEAZAgAWgIAZAcAhAAAWgMAUlMoCQAAAFIEAAAAdAQAAABjb2RldAMAAABhcmd0DAAAAHN0YWNrX2JlZm9yZXQLAAAAc3RhY2tfYWZ0ZXJ0BQAAAHByb3RvUgcAAABjCAAAAAkAAAACAAAAQwAAAHNlAAAAfAEAfAAAXwAAfAIAfAAAXwEAfAMAfAAAXwIAeA4AfAQARF0GAH0IAHEiAFd8BAB8AABfAwB4DgB8BQBEXQYAfQgAcTwAV3wFAHwAAF8EAHwGAHwAAF8FAHwHAHwAAF8GAGQAAFMoAQAAAE4oBwAAAFIEAAAAUlgAAABSWQAAAFJaAAAAUlsAAABSXAAAAFIHAAAAKAkAAABSCAAAAFIEAAAAUlgAAABSWQAAAFJaAAAAUlsAAABSXAAAAFIHAAAAdAEAAAB4KAAAAAAoAAAAAHNTAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvcGlja2xldG9vbHMucHlSCQAAAFYDAABzFgAAAAADCQQJAwkDDQEEAQkDDQEEAQkDCQMoBwAAAHMEAAAAbmFtZXMEAAAAY29kZXMDAAAAYXJncwwAAABzdGFja19iZWZvcmVzCwAAAHN0YWNrX2FmdGVycwUAAABwcm90b3MDAAAAZG9jKAQAAABSCgAAAFILAAAAUgwAAABSCQAAACgAAAAAKAAAAAAoAAAAAHNTAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvcGlja2xldG9vbHMucHlSVwAAADcDAABzEAAAAAYEAAQACAADAAMAAwADBgN0AwAAAElOVFJYAAAAdAEAAABJUlkAAABSWgAAAFJbAAAAUlwAAABpAAAAAHOkAwAAUHVzaCBhbiBpbnRlZ2VyIG9yIGJvb2wuCgogICAgICBUaGUgYXJndW1lbnQgaXMgYSBuZXdsaW5lLXRlcm1pbmF0ZWQgZGVjaW1hbCBsaXRlcmFsIHN0cmluZy4KCiAgICAgIFRoZSBpbnRlbnQgbWF5IGhhdmUgYmVlbiB0aGF0IHRoaXMgYWx3YXlzIGZpdCBpbiBhIHNob3J0IFB5dGhvbiBpbnQsCiAgICAgIGJ1dCBJTlQgY2FuIGJlIGdlbmVyYXRlZCBpbiBwaWNrbGVzIHdyaXR0ZW4gb24gYSA2NC1iaXQgYm94IHRoYXQKICAgICAgcmVxdWlyZSBhIFB5dGhvbiBsb25nIG9uIGEgMzItYml0IGJveC4gIFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcwogICAgICBhbmQgTE9ORyB0aGVuIGlzIHRoYXQgSU5UIHNraXBzIGEgdHJhaWxpbmcgJ0wnLCBhbmQgcHJvZHVjZXMgYSBzaG9ydAogICAgICBpbnQgd2hlbmV2ZXIgcG9zc2libGUuCgogICAgICBBbm90aGVyIGRpZmZlcmVuY2UgaXMgZHVlIHRvIHRoYXQsIHdoZW4gYm9vbCB3YXMgaW50cm9kdWNlZCBhcyBhCiAgICAgIGRpc3RpbmN0IHR5cGUgaW4gMi4zLCBidWlsdGluIG5hbWVzIFRydWUgYW5kIEZhbHNlIHdlcmUgYWxzbyBhZGRlZCB0bwogICAgICAyLjIuMiwgbWFwcGluZyB0byBpbnRzIDEgYW5kIDAuICBGb3IgY29tcGF0aWJpbGl0eSBpbiBib3RoIGRpcmVjdGlvbnMsCiAgICAgIFRydWUgZ2V0cyBwaWNrbGVkIGFzIElOVCArICJJMDFcbiIsIGFuZCBGYWxzZSBhcyBJTlQgKyAiSTAwXG4iLgogICAgICBMZWFkaW5nIHplcm9lcyBhcmUgbmV2ZXIgcHJvZHVjZWQgZm9yIGEgZ2VudWluZSBpbnRlZ2VyLiAgVGhlIDIuMwogICAgICAoYW5kIGxhdGVyKSB1bnBpY2tsZXJzIHNwZWNpYWwtY2FzZSB0aGVzZSBhbmQgcmV0dXJuIGJvb2wgaW5zdGVhZDsKICAgICAgZWFybGllciB1bnBpY2tsZXJzIGlnbm9yZSB0aGUgbGVhZGluZyAiMCIgYW5kIHJldHVybiB0aGUgaW50LgogICAgICB0BgAAAEJJTklOVHQBAAAASnMxAQAAUHVzaCBhIGZvdXItYnl0ZSBzaWduZWQgaW50ZWdlci4KCiAgICAgIFRoaXMgaGFuZGxlcyB0aGUgZnVsbCByYW5nZSBvZiBQeXRob24gKHNob3J0KSBpbnRlZ2VycyBvbiBhIDMyLWJpdAogICAgICBib3gsIGRpcmVjdGx5IGFzIGJpbmFyeSBieXRlcyAoMSBmb3IgdGhlIG9wY29kZSBhbmQgNCBmb3IgdGhlIGludGVnZXIpLgogICAgICBJZiB0aGUgaW50ZWdlciBpcyBub24tbmVnYXRpdmUgYW5kIGZpdHMgaW4gMSBvciAyIGJ5dGVzLCBwaWNrbGluZyB2aWEKICAgICAgQklOSU5UMSBvciBCSU5JTlQyIHNhdmVzIHNwYWNlLgogICAgICB0BwAAAEJJTklOVDF0AQAAAEtzjAAAAFB1c2ggYSBvbmUtYnl0ZSB1bnNpZ25lZCBpbnRlZ2VyLgoKICAgICAgVGhpcyBpcyBhIHNwYWNlIG9wdGltaXphdGlvbiBmb3IgcGlja2xpbmcgdmVyeSBzbWFsbCBub24tbmVnYXRpdmUgaW50cywKICAgICAgaW4gcmFuZ2UoMjU2KS4KICAgICAgdAcAAABCSU5JTlQydAEAAABNc+sAAABQdXNoIGEgdHdvLWJ5dGUgdW5zaWduZWQgaW50ZWdlci4KCiAgICAgIFRoaXMgaXMgYSBzcGFjZSBvcHRpbWl6YXRpb24gZm9yIHBpY2tsaW5nIHNtYWxsIHBvc2l0aXZlIGludHMsIGluCiAgICAgIHJhbmdlKDI1NiwgMioqMTYpLiAgSW50ZWdlcnMgaW4gcmFuZ2UoMjU2KSBjYW4gYWxzbyBiZSBwaWNrbGVkIHZpYQogICAgICBCSU5JTlQyLCBidXQgQklOSU5UMSBpbnN0ZWFkIHNhdmVzIGEgYnl0ZS4KICAgICAgdAQAAABMT05HUjIAAABzxwEAAFB1c2ggYSBsb25nIGludGVnZXIuCgogICAgICBUaGUgc2FtZSBhcyBJTlQsIGV4Y2VwdCB0aGF0IHRoZSBsaXRlcmFsIGVuZHMgd2l0aCAnTCcsIGFuZCBhbHdheXMKICAgICAgdW5waWNrbGVzIHRvIGEgUHl0aG9uIGxvbmcuICBUaGVyZSBkb2Vzbid0IHNlZW0gYSByZWFsIHB1cnBvc2UgdG8gdGhlCiAgICAgIHRyYWlsaW5nICdMJy4KCiAgICAgIE5vdGUgdGhhdCBMT05HIHRha2VzIHRpbWUgcXVhZHJhdGljIGluIHRoZSBudW1iZXIgb2YgZGlnaXRzIHdoZW4KICAgICAgdW5waWNrbGluZyAodGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBuYXR1cmUgb2YgZGVjaW1hbC0+YmluYXJ5CiAgICAgIGNvbnZlcnNpb24pLiAgUHJvdG8gMiBhZGRlZCBsaW5lYXItdGltZSAoaW4gQzsgc3RpbGwgcXVhZHJhdGljLXRpbWUKICAgICAgaW4gUHl0aG9uKSBMT05HMSBhbmQgTE9ORzQgb3Bjb2Rlcy4KICAgICAgdAUAAABMT05HMXMBAAAAinN8AAAATG9uZyBpbnRlZ2VyIHVzaW5nIG9uZS1ieXRlIGxlbmd0aC4KCiAgICAgIEEgbW9yZSBlZmZpY2llbnQgZW5jb2Rpbmcgb2YgYSBQeXRob24gbG9uZzsgdGhlIGxvbmcxIGVuY29kaW5nCiAgICAgIHNheXMgaXQgYWxsLnQFAAAATE9ORzRzAQAAAItzfgAAAExvbmcgaW50ZWdlciB1c2luZyBmb3VuZC1ieXRlIGxlbmd0aC4KCiAgICAgIEEgbW9yZSBlZmZpY2llbnQgZW5jb2Rpbmcgb2YgYSBQeXRob24gbG9uZzsgdGhlIGxvbmc0IGVuY29kaW5nCiAgICAgIHNheXMgaXQgYWxsLnQGAAAAU1RSSU5HdAEAAABTc9MAAABQdXNoIGEgUHl0aG9uIHN0cmluZyBvYmplY3QuCgogICAgICBUaGUgYXJndW1lbnQgaXMgYSByZXByLXN0eWxlIHN0cmluZywgd2l0aCBicmFja2V0aW5nIHF1b3RlIGNoYXJhY3RlcnMsCiAgICAgIGFuZCBwZXJoYXBzIGVtYmVkZGVkIGVzY2FwZXMuICBUaGUgYXJndW1lbnQgZXh0ZW5kcyB1bnRpbCB0aGUgbmV4dAogICAgICBuZXdsaW5lIGNoYXJhY3Rlci4KICAgICAgdAkAAABCSU5TVFJJTkd0AQAAAFRz/QAAAFB1c2ggYSBQeXRob24gc3RyaW5nIG9iamVjdC4KCiAgICAgIFRoZXJlIGFyZSB0d28gYXJndW1lbnRzOiAgdGhlIGZpcnN0IGlzIGEgNC1ieXRlIGxpdHRsZS1lbmRpYW4gc2lnbmVkIGludAogICAgICBnaXZpbmcgdGhlIG51bWJlciBvZiBieXRlcyBpbiB0aGUgc3RyaW5nLCBhbmQgdGhlIHNlY29uZCBpcyB0aGF0IG1hbnkKICAgICAgYnl0ZXMsIHdoaWNoIGFyZSB0YWtlbiBsaXRlcmFsbHkgYXMgdGhlIHN0cmluZyBjb250ZW50LgogICAgICB0DwAAAFNIT1JUX0JJTlNUUklOR3QBAAAAVXPxAAAAUHVzaCBhIFB5dGhvbiBzdHJpbmcgb2JqZWN0LgoKICAgICAgVGhlcmUgYXJlIHR3byBhcmd1bWVudHM6ICB0aGUgZmlyc3QgaXMgYSAxLWJ5dGUgdW5zaWduZWQgaW50IGdpdmluZwogICAgICB0aGUgbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBzdHJpbmcsIGFuZCB0aGUgc2Vjb25kIGlzIHRoYXQgbWFueSBieXRlcywKICAgICAgd2hpY2ggYXJlIHRha2VuIGxpdGVyYWxseSBhcyB0aGUgc3RyaW5nIGNvbnRlbnQuCiAgICAgIHQEAAAATk9ORXQBAAAATnMXAAAAUHVzaCBOb25lIG9uIHRoZSBzdGFjay50BwAAAE5FV1RSVUVzAQAAAIhzJgAAAFRydWUuCgogICAgICBQdXNoIFRydWUgb250byB0aGUgc3RhY2sudAgAAABORVdGQUxTRXMBAAAAiXMnAAAAVHJ1ZS4KCiAgICAgIFB1c2ggRmFsc2Ugb250byB0aGUgc3RhY2sudAcAAABVTklDT0RFdAEAAABWc+cAAABQdXNoIGEgUHl0aG9uIFVuaWNvZGUgc3RyaW5nIG9iamVjdC4KCiAgICAgIFRoZSBhcmd1bWVudCBpcyBhIHJhdy11bmljb2RlLWVzY2FwZSBlbmNvZGluZyBvZiBhIFVuaWNvZGUgc3RyaW5nLAogICAgICBhbmQgc28gbWF5IGNvbnRhaW4gZW1iZWRkZWQgZXNjYXBlIHNlcXVlbmNlcy4gIFRoZSBhcmd1bWVudCBleHRlbmRzCiAgICAgIHVudGlsIHRoZSBuZXh0IG5ld2xpbmUgY2hhcmFjdGVyLgogICAgICB0CgAAAEJJTlVOSUNPREV0AQAAAFhzAgEAAFB1c2ggYSBQeXRob24gVW5pY29kZSBzdHJpbmcgb2JqZWN0LgoKICAgICAgVGhlcmUgYXJlIHR3byBhcmd1bWVudHM6ICB0aGUgZmlyc3QgaXMgYSA0LWJ5dGUgbGl0dGxlLWVuZGlhbiBzaWduZWQgaW50CiAgICAgIGdpdmluZyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBzdHJpbmcuICBUaGUgc2Vjb25kIGlzIHRoYXQgbWFueQogICAgICBieXRlcywgYW5kIGlzIHRoZSBVVEYtOCBlbmNvZGluZyBvZiB0aGUgVW5pY29kZSBzdHJpbmcuCiAgICAgIHQFAAAARkxPQVR0AQAAAEZzjQIAAE5ld2xpbmUtdGVybWluYXRlZCBkZWNpbWFsIGZsb2F0IGxpdGVyYWwuCgogICAgICBUaGUgYXJndW1lbnQgaXMgcmVwcihhX2Zsb2F0KSwgYW5kIGluIGdlbmVyYWwgcmVxdWlyZXMgMTcgc2lnbmlmaWNhbnQKICAgICAgZGlnaXRzIGZvciByb3VuZHRyaXAgY29udmVyc2lvbiB0byBiZSBhbiBpZGVudGl0eSAodGhpcyBpcyBzbyBmb3IKICAgICAgSUVFRS03NTQgZG91YmxlIHByZWNpc2lvbiB2YWx1ZXMsIHdoaWNoIGlzIHdoYXQgUHl0aG9uIGZsb2F0IG1hcHMgdG8KICAgICAgb24gbW9zdCBib3hlcykuCgogICAgICBJbiBnZW5lcmFsLCBGTE9BVCBjYW5ub3QgYmUgdXNlZCB0byB0cmFuc3BvcnQgaW5maW5pdGllcywgTmFOcywgb3IKICAgICAgbWludXMgemVybyBhY3Jvc3MgYm94ZXMgKG9yIGV2ZW4gb24gYSBzaW5nbGUgYm94LCBpZiB0aGUgcGxhdGZvcm0gQwogICAgICBsaWJyYXJ5IGNhbid0IHJlYWQgdGhlIHN0cmluZ3MgaXQgcHJvZHVjZXMgZm9yIHN1Y2ggdGhpbmdzIC0tIFdpbmRvd3MKICAgICAgaXMgbGlrZSB0aGF0KSwgYnV0IG1heSBkbyBsZXNzIGRhbWFnZSB0aGFuIEJJTkZMT0FUIG9uIGJveGVzIHdpdGgKICAgICAgZ3JlYXRlciBwcmVjaXNpb24gb3IgZHluYW1pYyByYW5nZSB0aGFuIElFRUUtNzU0IGRvdWJsZS4KICAgICAgdAgAAABCSU5GTE9BVHQBAAAAR3PcAQAARmxvYXQgc3RvcmVkIGluIGJpbmFyeSBmb3JtLCB3aXRoIDggYnl0ZXMgb2YgZGF0YS4KCiAgICAgIFRoaXMgZ2VuZXJhbGx5IHJlcXVpcmVzIGxlc3MgdGhhbiBoYWxmIHRoZSBzcGFjZSBvZiBGTE9BVCBlbmNvZGluZy4KICAgICAgSW4gZ2VuZXJhbCwgQklORkxPQVQgY2Fubm90IGJlIHVzZWQgdG8gdHJhbnNwb3J0IGluZmluaXRpZXMsIE5hTnMsIG9yCiAgICAgIG1pbnVzIHplcm8sIHJhaXNlcyBhbiBleGNlcHRpb24gaWYgdGhlIGV4cG9uZW50IGV4Y2VlZHMgdGhlIHJhbmdlIG9mCiAgICAgIGFuIElFRUUtNzU0IGRvdWJsZSwgYW5kIHJldGFpbnMgbm8gbW9yZSB0aGFuIDUzIGJpdHMgb2YgcHJlY2lzaW9uIChpZgogICAgICB0aGVyZSBhcmUgbW9yZSB0aGFuIHRoYXQsICJhZGQgYSBoYWxmIGFuZCBjaG9wIiByb3VuZGluZyBpcyB1c2VkIHRvCiAgICAgIGN1dCBpdCBiYWNrIHRvIDUzIHNpZ25pZmljYW50IGJpdHMpLgogICAgICB0CgAAAEVNUFRZX0xJU1R0AQAAAF1zEwAAAFB1c2ggYW4gZW1wdHkgbGlzdC50BgAAAEFQUEVORHQBAAAAYXOtAAAAQXBwZW5kIGFuIG9iamVjdCB0byBhIGxpc3QuCgogICAgICBTdGFjayBiZWZvcmU6ICAuLi4gcHlsaXN0IGFueW9iamVjdAogICAgICBTdGFjayBhZnRlcjogICAuLi4gcHlsaXN0K1thbnlvYmplY3RdCgogICAgICBhbHRob3VnaCBweWxpc3QgaXMgcmVhbGx5IGV4dGVuZGVkIGluLXBsYWNlLgogICAgICB0BwAAAEFQUEVORFN0AQAAAGVzxwAAAEV4dGVuZCBhIGxpc3QgYnkgYSBzbGljZSBvZiBzdGFjayBvYmplY3RzLgoKICAgICAgU3RhY2sgYmVmb3JlOiAgLi4uIHB5bGlzdCBtYXJrb2JqZWN0IHN0YWNrc2xpY2UKICAgICAgU3RhY2sgYWZ0ZXI6ICAgLi4uIHB5bGlzdCtzdGFja3NsaWNlCgogICAgICBhbHRob3VnaCBweWxpc3QgaXMgcmVhbGx5IGV4dGVuZGVkIGluLXBsYWNlLgogICAgICB0BAAAAExJU1R0AQAAAGxzcwEAAEJ1aWxkIGEgbGlzdCBvdXQgb2YgdGhlIHRvcG1vc3Qgc3RhY2sgc2xpY2UsIGFmdGVyIG1hcmtvYmplY3QuCgogICAgICBBbGwgdGhlIHN0YWNrIGVudHJpZXMgZm9sbG93aW5nIHRoZSB0b3Btb3N0IG1hcmtvYmplY3QgYXJlIHBsYWNlZCBpbnRvCiAgICAgIGEgc2luZ2xlIFB5dGhvbiBsaXN0LCB3aGljaCBzaW5nbGUgbGlzdCBvYmplY3QgcmVwbGFjZXMgYWxsIG9mIHRoZQogICAgICBzdGFjayBmcm9tIHRoZSB0b3Btb3N0IG1hcmtvYmplY3Qgb253YXJkLiAgRm9yIGV4YW1wbGUsCgogICAgICBTdGFjayBiZWZvcmU6IC4uLiBtYXJrb2JqZWN0IDEgMiAzICdhYmMnCiAgICAgIFN0YWNrIGFmdGVyOiAgLi4uIFsxLCAyLCAzLCAnYWJjJ10KICAgICAgdAsAAABFTVBUWV9UVVBMRXQBAAAAKXMUAAAAUHVzaCBhbiBlbXB0eSB0dXBsZS50BQAAAFRVUExFdAEAAAB0c3YBAABCdWlsZCBhIHR1cGxlIG91dCBvZiB0aGUgdG9wbW9zdCBzdGFjayBzbGljZSwgYWZ0ZXIgbWFya29iamVjdC4KCiAgICAgIEFsbCB0aGUgc3RhY2sgZW50cmllcyBmb2xsb3dpbmcgdGhlIHRvcG1vc3QgbWFya29iamVjdCBhcmUgcGxhY2VkIGludG8KICAgICAgYSBzaW5nbGUgUHl0aG9uIHR1cGxlLCB3aGljaCBzaW5nbGUgdHVwbGUgb2JqZWN0IHJlcGxhY2VzIGFsbCBvZiB0aGUKICAgICAgc3RhY2sgZnJvbSB0aGUgdG9wbW9zdCBtYXJrb2JqZWN0IG9ud2FyZC4gIEZvciBleGFtcGxlLAoKICAgICAgU3RhY2sgYmVmb3JlOiAuLi4gbWFya29iamVjdCAxIDIgMyAnYWJjJwogICAgICBTdGFjayBhZnRlcjogIC4uLiAoMSwgMiwgMywgJ2FiYycpCiAgICAgIHQGAAAAVFVQTEUxcwEAAACFc/wAAABCdWlsZCBhIG9uZS10dXBsZSBvdXQgb2YgdGhlIHRvcG1vc3QgaXRlbSBvbiB0aGUgc3RhY2suCgogICAgICBUaGlzIGNvZGUgcG9wcyBvbmUgdmFsdWUgb2ZmIHRoZSBzdGFjayBhbmQgcHVzaGVzIGEgdHVwbGUgb2YKICAgICAgbGVuZ3RoIDEgd2hvc2Ugb25lIGl0ZW0gaXMgdGhhdCB2YWx1ZSBiYWNrIG9udG8gaXQuICBJbiBvdGhlcgogICAgICB3b3JkczoKCiAgICAgICAgICBzdGFja1stMV0gPSB0dXBsZShzdGFja1stMTpdKQogICAgICB0BgAAAFRVUExFMnMBAAAAhnMBAQAAQnVpbGQgYSB0d28tdHVwbGUgb3V0IG9mIHRoZSB0b3AgdHdvIGl0ZW1zIG9uIHRoZSBzdGFjay4KCiAgICAgIFRoaXMgY29kZSBwb3BzIHR3byB2YWx1ZXMgb2ZmIHRoZSBzdGFjayBhbmQgcHVzaGVzIGEgdHVwbGUgb2YKICAgICAgbGVuZ3RoIDIgd2hvc2UgaXRlbXMgYXJlIHRob3NlIHZhbHVlcyBiYWNrIG9udG8gaXQuICBJbiBvdGhlcgogICAgICB3b3JkczoKCiAgICAgICAgICBzdGFja1stMjpdID0gW3R1cGxlKHN0YWNrWy0yOl0pXQogICAgICB0BgAAAFRVUExFM3MBAAAAh3MHAQAAQnVpbGQgYSB0aHJlZS10dXBsZSBvdXQgb2YgdGhlIHRvcCB0aHJlZSBpdGVtcyBvbiB0aGUgc3RhY2suCgogICAgICBUaGlzIGNvZGUgcG9wcyB0aHJlZSB2YWx1ZXMgb2ZmIHRoZSBzdGFjayBhbmQgcHVzaGVzIGEgdHVwbGUgb2YKICAgICAgbGVuZ3RoIDMgd2hvc2UgaXRlbXMgYXJlIHRob3NlIHZhbHVlcyBiYWNrIG9udG8gaXQuICBJbiBvdGhlcgogICAgICB3b3JkczoKCiAgICAgICAgICBzdGFja1stMzpdID0gW3R1cGxlKHN0YWNrWy0zOl0pXQogICAgICB0CgAAAEVNUFRZX0RJQ1R0AQAAAH1zEwAAAFB1c2ggYW4gZW1wdHkgZGljdC50BAAAAERJQ1R0AQAAAGRzsgEAAEJ1aWxkIGEgZGljdCBvdXQgb2YgdGhlIHRvcG1vc3Qgc3RhY2sgc2xpY2UsIGFmdGVyIG1hcmtvYmplY3QuCgogICAgICBBbGwgdGhlIHN0YWNrIGVudHJpZXMgZm9sbG93aW5nIHRoZSB0b3Btb3N0IG1hcmtvYmplY3QgYXJlIHBsYWNlZCBpbnRvCiAgICAgIGEgc2luZ2xlIFB5dGhvbiBkaWN0LCB3aGljaCBzaW5nbGUgZGljdCBvYmplY3QgcmVwbGFjZXMgYWxsIG9mIHRoZQogICAgICBzdGFjayBmcm9tIHRoZSB0b3Btb3N0IG1hcmtvYmplY3Qgb253YXJkLiAgVGhlIHN0YWNrIHNsaWNlIGFsdGVybmF0ZXMKICAgICAga2V5LCB2YWx1ZSwga2V5LCB2YWx1ZSwgLi4uLiAgRm9yIGV4YW1wbGUsCgogICAgICBTdGFjayBiZWZvcmU6IC4uLiBtYXJrb2JqZWN0IDEgMiAzICdhYmMnCiAgICAgIFN0YWNrIGFmdGVyOiAgLi4uIHsxOiAyLCAzOiAnYWJjJ30KICAgICAgdAcAAABTRVRJVEVNUjkAAABzugAAAEFkZCBhIGtleSt2YWx1ZSBwYWlyIHRvIGFuIGV4aXN0aW5nIGRpY3QuCgogICAgICBTdGFjayBiZWZvcmU6ICAuLi4gcHlkaWN0IGtleSB2YWx1ZQogICAgICBTdGFjayBhZnRlcjogICAuLi4gcHlkaWN0CgogICAgICB3aGVyZSBweWRpY3QgaGFzIGJlZW4gbW9kaWZpZWQgdmlhIHB5ZGljdFtrZXldID0gdmFsdWUuCiAgICAgIHQIAAAAU0VUSVRFTVN0AQAAAHVzXAIAAEFkZCBhbiBhcmJpdHJhcnkgbnVtYmVyIG9mIGtleSt2YWx1ZSBwYWlycyB0byBhbiBleGlzdGluZyBkaWN0LgoKICAgICAgVGhlIHNsaWNlIG9mIHRoZSBzdGFjayBmb2xsb3dpbmcgdGhlIHRvcG1vc3QgbWFya29iamVjdCBpcyB0YWtlbiBhcwogICAgICBhbiBhbHRlcm5hdGluZyBzZXF1ZW5jZSBvZiBrZXlzIGFuZCB2YWx1ZXMsIGFkZGVkIHRvIHRoZSBkaWN0CiAgICAgIGltbWVkaWF0ZWx5IHVuZGVyIHRoZSB0b3Btb3N0IG1hcmtvYmplY3QuICBFdmVyeXRoaW5nIGF0IGFuZCBhZnRlciB0aGUKICAgICAgdG9wbW9zdCBtYXJrb2JqZWN0IGlzIHBvcHBlZCwgbGVhdmluZyB0aGUgbXV0YXRlZCBkaWN0IGF0IHRoZSB0b3AKICAgICAgb2YgdGhlIHN0YWNrLgoKICAgICAgU3RhY2sgYmVmb3JlOiAgLi4uIHB5ZGljdCBtYXJrb2JqZWN0IGtleV8xIHZhbHVlXzEgLi4uIGtleV9uIHZhbHVlX24KICAgICAgU3RhY2sgYWZ0ZXI6ICAgLi4uIHB5ZGljdAoKICAgICAgd2hlcmUgcHlkaWN0IGhhcyBiZWVuIG1vZGlmaWVkIHZpYSBweWRpY3Rba2V5X2ldID0gdmFsdWVfaSBmb3IgaSBpbgogICAgICAxLCAyLCAuLi4sIG4sIGFuZCBpbiB0aGF0IG9yZGVyLgogICAgICB0AwAAAFBPUHQBAAAAMHM8AAAARGlzY2FyZCB0aGUgdG9wIHN0YWNrIGl0ZW0sIHNocmlua2luZyB0aGUgc3RhY2sgYnkgb25lIGl0ZW0udAMAAABEVVB0AQAAADJzPQAAAFB1c2ggdGhlIHRvcCBzdGFjayBpdGVtIG9udG8gdGhlIHN0YWNrIGFnYWluLCBkdXBsaWNhdGluZyBpdC50BAAAAE1BUkt0AQAAAChz8gAAAFB1c2ggbWFya29iamVjdCBvbnRvIHRoZSBzdGFjay4KCiAgICAgIG1hcmtvYmplY3QgaXMgYSB1bmlxdWUgb2JqZWN0LCB1c2VkIGJ5IG90aGVyIG9wY29kZXMgdG8gaWRlbnRpZnkgYQogICAgICByZWdpb24gb2YgdGhlIHN0YWNrIGNvbnRhaW5pbmcgYSB2YXJpYWJsZSBudW1iZXIgb2Ygb2JqZWN0cyBmb3IgdGhlbQogICAgICB0byB3b3JrIG9uLiAgU2VlIG1hcmtvYmplY3QuZG9jIGZvciBtb3JlIGRldGFpbC4KICAgICAgdAgAAABQT1BfTUFSS3QBAAAAMXMVAQAAUG9wIGFsbCB0aGUgc3RhY2sgb2JqZWN0cyBhdCBhbmQgYWJvdmUgdGhlIHRvcG1vc3QgbWFya29iamVjdC4KCiAgICAgIFdoZW4gYW4gb3Bjb2RlIHVzaW5nIGEgdmFyaWFibGUgbnVtYmVyIG9mIHN0YWNrIG9iamVjdHMgaXMgZG9uZSwKICAgICAgUE9QX01BUksgaXMgdXNlZCB0byByZW1vdmUgdGhvc2Ugb2JqZWN0cywgYW5kIHRvIHJlbW92ZSB0aGUgbWFya29iamVjdAogICAgICB0aGF0IGRlbGltaXRlZCB0aGVpciBzdGFydGluZyBwb3NpdGlvbiBvbiB0aGUgc3RhY2suCiAgICAgIHQDAAAAR0VUdAEAAABnc+gAAABSZWFkIGFuIG9iamVjdCBmcm9tIHRoZSBtZW1vIGFuZCBwdXNoIGl0IG9uIHRoZSBzdGFjay4KCiAgICAgIFRoZSBpbmRleCBvZiB0aGUgbWVtbyBvYmplY3QgdG8gcHVzaCBpcyBnaXZlbiBieSB0aGUgbmV3bGluZS10ZXJtaW5hdGVkCiAgICAgIGRlY2ltYWwgc3RyaW5nIGZvbGxvd2luZy4gIEJJTkdFVCBhbmQgTE9OR19CSU5HRVQgYXJlIHNwYWNlLW9wdGltaXplZAogICAgICB2ZXJzaW9ucy4KICAgICAgdAYAAABCSU5HRVR0AQAAAGhzogAAAFJlYWQgYW4gb2JqZWN0IGZyb20gdGhlIG1lbW8gYW5kIHB1c2ggaXQgb24gdGhlIHN0YWNrLgoKICAgICAgVGhlIGluZGV4IG9mIHRoZSBtZW1vIG9iamVjdCB0byBwdXNoIGlzIGdpdmVuIGJ5IHRoZSAxLWJ5dGUgdW5zaWduZWQKICAgICAgaW50ZWdlciBmb2xsb3dpbmcuCiAgICAgIHQLAAAATE9OR19CSU5HRVR0AQAAAGpzrgAAAFJlYWQgYW4gb2JqZWN0IGZyb20gdGhlIG1lbW8gYW5kIHB1c2ggaXQgb24gdGhlIHN0YWNrLgoKICAgICAgVGhlIGluZGV4IG9mIHRoZSBtZW1vIG9iamVjdCB0byBwdXNoIGlzIGdpdmVuIGJ5IHRoZSA0LWJ5dGUgc2lnbmVkCiAgICAgIGxpdHRsZS1lbmRpYW4gaW50ZWdlciBmb2xsb3dpbmcuCiAgICAgIHQDAAAAUFVUdAEAAABwc/cAAABTdG9yZSB0aGUgc3RhY2sgdG9wIGludG8gdGhlIG1lbW8uICBUaGUgc3RhY2sgaXMgbm90IHBvcHBlZC4KCiAgICAgIFRoZSBpbmRleCBvZiB0aGUgbWVtbyBsb2NhdGlvbiB0byB3cml0ZSBpbnRvIGlzIGdpdmVuIGJ5IHRoZSBuZXdsaW5lLQogICAgICB0ZXJtaW5hdGVkIGRlY2ltYWwgc3RyaW5nIGZvbGxvd2luZy4gIEJJTlBVVCBhbmQgTE9OR19CSU5QVVQgYXJlCiAgICAgIHNwYWNlLW9wdGltaXplZCB2ZXJzaW9ucy4KICAgICAgdAYAAABCSU5QVVRSIQAAAHOwAAAAU3RvcmUgdGhlIHN0YWNrIHRvcCBpbnRvIHRoZSBtZW1vLiAgVGhlIHN0YWNrIGlzIG5vdCBwb3BwZWQuCgogICAgICBUaGUgaW5kZXggb2YgdGhlIG1lbW8gbG9jYXRpb24gdG8gd3JpdGUgaW50byBpcyBnaXZlbiBieSB0aGUgMS1ieXRlCiAgICAgIHVuc2lnbmVkIGludGVnZXIgZm9sbG93aW5nLgogICAgICB0CwAAAExPTkdfQklOUFVUdAEAAAByc7wAAABTdG9yZSB0aGUgc3RhY2sgdG9wIGludG8gdGhlIG1lbW8uICBUaGUgc3RhY2sgaXMgbm90IHBvcHBlZC4KCiAgICAgIFRoZSBpbmRleCBvZiB0aGUgbWVtbyBsb2NhdGlvbiB0byB3cml0ZSBpbnRvIGlzIGdpdmVuIGJ5IHRoZSA0LWJ5dGUKICAgICAgc2lnbmVkIGxpdHRsZS1lbmRpYW4gaW50ZWdlciBmb2xsb3dpbmcuCiAgICAgIHQEAAAARVhUMXMBAAAAgnOMAgAARXh0ZW5zaW9uIGNvZGUuCgogICAgICBUaGlzIGNvZGUgYW5kIHRoZSBzaW1pbGFyIEVYVDIgYW5kIEVYVDQgYWxsb3cgdXNpbmcgYSByZWdpc3RyeQogICAgICBvZiBwb3B1bGFyIG9iamVjdHMgdGhhdCBhcmUgcGlja2xlZCBieSBuYW1lLCB0eXBpY2FsbHkgY2xhc3Nlcy4KICAgICAgSXQgaXMgZW52aXNpb25lZCB0aGF0IHRocm91Z2ggYSBnbG9iYWwgbmVnb3RpYXRpb24gYW5kCiAgICAgIHJlZ2lzdHJhdGlvbiBwcm9jZXNzLCB0aGlyZCBwYXJ0aWVzIGNhbiBzZXQgdXAgYSBtYXBwaW5nIGJldHdlZW4KICAgICAgaW50cyBhbmQgb2JqZWN0IG5hbWVzLgoKICAgICAgSW4gb3JkZXIgdG8gZ3VhcmFudGVlIHBpY2tsZSBpbnRlcmNoYW5nZWFiaWxpdHksIHRoZSBleHRlbnNpb24KICAgICAgY29kZSByZWdpc3RyeSBvdWdodCB0byBiZSBnbG9iYWwsIGFsdGhvdWdoIGEgcmFuZ2Ugb2YgY29kZXMgbWF5CiAgICAgIGJlIHJlc2VydmVkIGZvciBwcml2YXRlIHVzZS4KCiAgICAgIEVYVDEgaGFzIGEgMS1ieXRlIGludGVnZXIgYXJndW1lbnQuICBUaGlzIGlzIHVzZWQgdG8gaW5kZXggaW50byB0aGUKICAgICAgZXh0ZW5zaW9uIHJlZ2lzdHJ5LCBhbmQgdGhlIG9iamVjdCBhdCB0aGF0IGluZGV4IGlzIHB1c2hlZCBvbiB0aGUgc3RhY2suCiAgICAgIHQEAAAARVhUMnMBAAAAg3NOAAAARXh0ZW5zaW9uIGNvZGUuCgogICAgICBTZWUgRVhUMS4gIEVYVDIgaGFzIGEgdHdvLWJ5dGUgaW50ZWdlciBhcmd1bWVudC4KICAgICAgdAQAAABFWFQ0cwEAAACEc08AAABFeHRlbnNpb24gY29kZS4KCiAgICAgIFNlZSBFWFQxLiAgRVhUNCBoYXMgYSBmb3VyLWJ5dGUgaW50ZWdlciBhcmd1bWVudC4KICAgICAgdAYAAABHTE9CQUx0AQAAAGNzpwEAAFB1c2ggYSBnbG9iYWwgb2JqZWN0IChtb2R1bGUuYXR0cikgb24gdGhlIHN0YWNrLgoKICAgICAgVHdvIG5ld2xpbmUtdGVybWluYXRlZCBzdHJpbmdzIGZvbGxvdyB0aGUgR0xPQkFMIG9wY29kZS4gIFRoZSBmaXJzdCBpcwogICAgICB0YWtlbiBhcyBhIG1vZHVsZSBuYW1lLCBhbmQgdGhlIHNlY29uZCBhcyBhIGNsYXNzIG5hbWUuICBUaGUgY2xhc3MKICAgICAgb2JqZWN0IG1vZHVsZS5jbGFzcyBpcyBwdXNoZWQgb24gdGhlIHN0YWNrLiAgTW9yZSBhY2N1cmF0ZWx5LCB0aGUKICAgICAgb2JqZWN0IHJldHVybmVkIGJ5IHNlbGYuZmluZF9jbGFzcyhtb2R1bGUsIGNsYXNzKSBpcyBwdXNoZWQgb24gdGhlCiAgICAgIHN0YWNrLCBzbyB1bnBpY2tsaW5nIHN1YmNsYXNzZXMgY2FuIG92ZXJyaWRlIHRoaXMgZm9ybSBvZiBsb29rdXAuCiAgICAgIHQGAAAAUkVEVUNFdAEAAABSc04EAABQdXNoIGFuIG9iamVjdCBidWlsdCBmcm9tIGEgY2FsbGFibGUgYW5kIGFuIGFyZ3VtZW50IHR1cGxlLgoKICAgICAgVGhlIG9wY29kZSBpcyBuYW1lZCB0byByZW1pbmQgb2YgdGhlIF9fcmVkdWNlX18oKSBtZXRob2QuCgogICAgICBTdGFjayBiZWZvcmU6IC4uLiBjYWxsYWJsZSBweXR1cGxlCiAgICAgIFN0YWNrIGFmdGVyOiAgLi4uIGNhbGxhYmxlKCpweXR1cGxlKQoKICAgICAgVGhlIGNhbGxhYmxlIGFuZCB0aGUgYXJndW1lbnQgdHVwbGUgYXJlIHRoZSBmaXJzdCB0d28gaXRlbXMgcmV0dXJuZWQKICAgICAgYnkgYSBfX3JlZHVjZV9fIG1ldGhvZC4gIEFwcGx5aW5nIHRoZSBjYWxsYWJsZSB0byB0aGUgYXJndHVwbGUgaXMKICAgICAgc3VwcG9zZWQgdG8gcmVwcm9kdWNlIHRoZSBvcmlnaW5hbCBvYmplY3QsIG9yIGF0IGxlYXN0IGdldCBpdCBzdGFydGVkLgogICAgICBJZiB0aGUgX19yZWR1Y2VfXyBtZXRob2QgcmV0dXJucyBhIDMtdHVwbGUsIHRoZSBsYXN0IGNvbXBvbmVudCBpcyBhbgogICAgICBhcmd1bWVudCB0byBiZSBwYXNzZWQgdG8gdGhlIG9iamVjdCdzIF9fc2V0c3RhdGVfXywgYW5kIHRoZW4gdGhlIFJFRFVDRQogICAgICBvcGNvZGUgaXMgZm9sbG93ZWQgYnkgY29kZSB0byBjcmVhdGUgc2V0c3RhdGUncyBhcmd1bWVudCwgYW5kIHRoZW4gYQogICAgICBCVUlMRCBvcGNvZGUgdG8gYXBwbHkgIF9fc2V0c3RhdGVfXyB0byB0aGF0IGFyZ3VtZW50LgoKICAgICAgSWYgdHlwZShjYWxsYWJsZSkgaXMgbm90IENsYXNzVHlwZSwgUkVEVUNFIGNvbXBsYWlucyB1bmxlc3MgdGhlCiAgICAgIGNhbGxhYmxlIGhhcyBiZWVuIHJlZ2lzdGVyZWQgd2l0aCB0aGUgY29weV9yZWcgbW9kdWxlJ3MKICAgICAgc2FmZV9jb25zdHJ1Y3RvcnMgZGljdCwgb3IgdGhlIGNhbGxhYmxlIGhhcyBhIG1hZ2ljCiAgICAgICdfX3NhZmVfZm9yX3VucGlja2xpbmdfXycgYXR0cmlidXRlIHdpdGggYSB0cnVlIHZhbHVlLiAgSSdtIG5vdCBzdXJlCiAgICAgIHdoeSBpdCBkb2VzIHRoaXMsIGJ1dCBJJ3ZlIHN1cmUgc2VlbiB0aGlzIGNvbXBsYWludCBvZnRlbiBlbm91Z2ggd2hlbgogICAgICBJIGRpZG4ndCB3YW50IHRvIDx3aW5rPi4KICAgICAgdAUAAABCVUlMRHQBAAAAYnPIAgAARmluaXNoIGJ1aWxkaW5nIGFuIG9iamVjdCwgdmlhIF9fc2V0c3RhdGVfXyBvciBkaWN0IHVwZGF0ZS4KCiAgICAgIFN0YWNrIGJlZm9yZTogLi4uIGFueW9iamVjdCBhcmd1bWVudAogICAgICBTdGFjayBhZnRlcjogIC4uLiBhbnlvYmplY3QKCiAgICAgIHdoZXJlIGFueW9iamVjdCBtYXkgaGF2ZSBiZWVuIG11dGF0ZWQsIGFzIGZvbGxvd3M6CgogICAgICBJZiB0aGUgb2JqZWN0IGhhcyBhIF9fc2V0c3RhdGVfXyBtZXRob2QsCgogICAgICAgICAgYW55b2JqZWN0Ll9fc2V0c3RhdGVfXyhhcmd1bWVudCkKCiAgICAgIGlzIGNhbGxlZC4KCiAgICAgIEVsc2UgdGhlIGFyZ3VtZW50IG11c3QgYmUgYSBkaWN0LCB0aGUgb2JqZWN0IG11c3QgaGF2ZSBhIF9fZGljdF9fLCBhbmQKICAgICAgdGhlIG9iamVjdCBpcyB1cGRhdGVkIHZpYQoKICAgICAgICAgIGFueW9iamVjdC5fX2RpY3RfXy51cGRhdGUoYXJndW1lbnQpCgogICAgICBUaGlzIG1heSByYWlzZSBSdW50aW1lRXJyb3IgaW4gcmVzdHJpY3RlZCBleGVjdXRpb24gbW9kZSAod2hpY2gKICAgICAgZGlzYWxsb3dzIGFjY2VzcyB0byBfX2RpY3RfXyBkaXJlY3RseSk7IGluIHRoYXQgY2FzZSwgdGhlIG9iamVjdAogICAgICBpcyB1cGRhdGVkIGluc3RlYWQgdmlhCgogICAgICAgICAgZm9yIGssIHYgaW4gYXJndW1lbnQuaXRlbXMoKToKICAgICAgICAgICAgICBhbnlvYmplY3Rba10gPSB2CiAgICAgIHQEAAAASU5TVHQBAAAAaXOTCQAAQnVpbGQgYSBjbGFzcyBpbnN0YW5jZS4KCiAgICAgIFRoaXMgaXMgdGhlIHByb3RvY29sIDAgdmVyc2lvbiBvZiBwcm90b2NvbCAxJ3MgT0JKIG9wY29kZS4KICAgICAgSU5TVCBpcyBmb2xsb3dlZCBieSB0d28gbmV3bGluZS10ZXJtaW5hdGVkIHN0cmluZ3MsIGdpdmluZyBhCiAgICAgIG1vZHVsZSBhbmQgY2xhc3MgbmFtZSwganVzdCBhcyBmb3IgdGhlIEdMT0JBTCBvcGNvZGUgKGFuZCBzZWUKICAgICAgR0xPQkFMIGZvciBtb3JlIGRldGFpbHMgYWJvdXQgdGhhdCkuICBzZWxmLmZpbmRfY2xhc3MobW9kdWxlLCBuYW1lKQogICAgICBpcyB1c2VkIHRvIGdldCBhIGNsYXNzIG9iamVjdC4KCiAgICAgIEluIGFkZGl0aW9uLCBhbGwgdGhlIG9iamVjdHMgb24gdGhlIHN0YWNrIGZvbGxvd2luZyB0aGUgdG9wbW9zdAogICAgICBtYXJrb2JqZWN0IGFyZSBnYXRoZXJlZCBpbnRvIGEgdHVwbGUgYW5kIHBvcHBlZCAoYWxvbmcgd2l0aCB0aGUKICAgICAgdG9wbW9zdCBtYXJrb2JqZWN0KSwganVzdCBhcyBmb3IgdGhlIFRVUExFIG9wY29kZS4KCiAgICAgIE5vdyBpdCBnZXRzIGNvbXBsaWNhdGVkLiAgSWYgYWxsIG9mIHRoZXNlIGFyZSB0cnVlOgoKICAgICAgICArIFRoZSBhcmd0dXBsZSBpcyBlbXB0eSAobWFya29iamVjdCB3YXMgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2sKICAgICAgICAgIGF0IHRoZSBzdGFydCkuCgogICAgICAgICsgSXQncyBhbiBvbGQtc3R5bGUgY2xhc3Mgb2JqZWN0ICh0aGUgdHlwZSBvZiB0aGUgY2xhc3Mgb2JqZWN0IGlzCiAgICAgICAgICBDbGFzc1R5cGUpLgoKICAgICAgICArIFRoZSBjbGFzcyBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIF9fZ2V0aW5pdGFyZ3NfXyBhdHRyaWJ1dGUuCgogICAgICB0aGVuIHdlIHdhbnQgdG8gY3JlYXRlIGFuIG9sZC1zdHlsZSBjbGFzcyBpbnN0YW5jZSB3aXRob3V0IGludm9raW5nCiAgICAgIGl0cyBfX2luaXRfXygpIG1ldGhvZCAocGlja2xlIGhhcyB3YWZmbGVkIG9uIHRoaXMgb3ZlciB0aGUgeWVhcnM7IG5vdAogICAgICBjYWxsaW5nIF9faW5pdF9fKCkgaXMgY3VycmVudCB3aXNkb20pLiAgSW4gdGhpcyBjYXNlLCBhbiBpbnN0YW5jZSBvZgogICAgICBhbiBvbGQtc3R5bGUgZHVtbXkgY2xhc3MgaXMgY3JlYXRlZCwgYW5kIHRoZW4gd2UgdHJ5IHRvIHJlYmluZCBpdHMKICAgICAgX19jbGFzc19fIGF0dHJpYnV0ZSB0byB0aGUgZGVzaXJlZCBjbGFzcyBvYmplY3QuICBJZiB0aGlzIHN1Y2NlZWRzLAogICAgICB0aGUgbmV3IGluc3RhbmNlIG9iamVjdCBpcyBwdXNoZWQgb24gdGhlIHN0YWNrLCBhbmQgd2UncmUgZG9uZS4gIEluCiAgICAgIHJlc3RyaWN0ZWQgZXhlY3V0aW9uIG1vZGUgaXQgY2FuIGZhaWwgKGFzc2lnbm1lbnQgdG8gX19jbGFzc19fIGlzCiAgICAgIGRpc2FsbG93ZWQpLCBhbmQgSSdtIG5vdCByZWFsbHkgc3VyZSB3aGF0IGhhcHBlbnMgdGhlbiAtLSBpdCBsb29rcwogICAgICBsaWtlIHRoZSBjb2RlIGVuZHMgdXAgY2FsbGluZyB0aGUgY2xhc3Mgb2JqZWN0J3MgX19pbml0X18gYW55d2F5LAogICAgICB2aWEgZmFsbGluZyBpbnRvIHRoZSBuZXh0IGNhc2UuCgogICAgICBFbHNlICh0aGUgYXJndHVwbGUgaXMgbm90IGVtcHR5LCBpdCdzIG5vdCBhbiBvbGQtc3R5bGUgY2xhc3Mgb2JqZWN0LAogICAgICBvciB0aGUgY2xhc3Mgb2JqZWN0IGRvZXMgaGF2ZSBhIF9fZ2V0aW5pdGFyZ3NfXyBhdHRyaWJ1dGUpLCB0aGUgY29kZQogICAgICBmaXJzdCBpbnNpc3RzIHRoYXQgdGhlIGNsYXNzIG9iamVjdCBoYXZlIGEgX19zYWZlX2Zvcl91bnBpY2tsaW5nX18KICAgICAgYXR0cmlidXRlLiAgVW5saWtlIGFzIGZvciB0aGUgX19zYWZlX2Zvcl91bnBpY2tsaW5nX18gY2hlY2sgaW4gUkVEVUNFLAogICAgICBpdCBkb2Vzbid0IG1hdHRlciB3aGV0aGVyIHRoaXMgYXR0cmlidXRlIGhhcyBhIHRydWUgb3IgZmFsc2UgdmFsdWUsIGl0CiAgICAgIG9ubHkgbWF0dGVycyB3aGV0aGVyIGl0IGV4aXN0cyAoWFhYIHRoaXMgaXMgYSBidWc7IGNQaWNrbGUKICAgICAgcmVxdWlyZXMgdGhlIGF0dHJpYnV0ZSB0byBiZSB0cnVlKS4gIElmIF9fc2FmZV9mb3JfdW5waWNrbGluZ19fCiAgICAgIGRvZXNuJ3QgZXhpc3QsIFVucGlja2xpbmdFcnJvciBpcyByYWlzZWQuCgogICAgICBFbHNlICh0aGUgY2xhc3Mgb2JqZWN0IGRvZXMgaGF2ZSBhIF9fc2FmZV9mb3JfdW5waWNrbGluZ19fIGF0dHIpLAogICAgICB0aGUgY2xhc3Mgb2JqZWN0IG9idGFpbmVkIGZyb20gSU5TVCdzIGFyZ3VtZW50cyBpcyBhcHBsaWVkIHRvIHRoZQogICAgICBhcmd0dXBsZSBvYnRhaW5lZCBmcm9tIHRoZSBzdGFjaywgYW5kIHRoZSByZXN1bHRpbmcgaW5zdGFuY2Ugb2JqZWN0CiAgICAgIGlzIHB1c2hlZCBvbiB0aGUgc3RhY2suCgogICAgICBOT1RFOiAgY2hlY2tzIGZvciBfX3NhZmVfZm9yX3VucGlja2xpbmdfXyB3ZW50IGF3YXkgaW4gUHl0aG9uIDIuMy4KICAgICAgdAMAAABPQkp0AQAAAG9z2AQAAEJ1aWxkIGEgY2xhc3MgaW5zdGFuY2UuCgogICAgICBUaGlzIGlzIHRoZSBwcm90b2NvbCAxIHZlcnNpb24gb2YgcHJvdG9jb2wgMCdzIElOU1Qgb3Bjb2RlLCBhbmQgaXMKICAgICAgdmVyeSBtdWNoIGxpa2UgaXQuICBUaGUgbWFqb3IgZGlmZmVyZW5jZSBpcyB0aGF0IHRoZSBjbGFzcyBvYmplY3QKICAgICAgaXMgdGFrZW4gb2ZmIHRoZSBzdGFjaywgYWxsb3dpbmcgaXQgdG8gYmUgcmV0cmlldmVkIGZyb20gdGhlIG1lbW8KICAgICAgcmVwZWF0ZWRseSBpZiBzZXZlcmFsIGluc3RhbmNlcyBvZiB0aGUgc2FtZSBjbGFzcyBhcmUgY3JlYXRlZC4gIFRoaXMKICAgICAgY2FuIGJlIG11Y2ggbW9yZSBlZmZpY2llbnQgKGluIGJvdGggdGltZSBhbmQgc3BhY2UpIHRoYW4gcmVwZWF0ZWRseQogICAgICBlbWJlZGRpbmcgdGhlIG1vZHVsZSBhbmQgY2xhc3MgbmFtZXMgaW4gSU5TVCBvcGNvZGVzLgoKICAgICAgVW5saWtlIElOU1QsIE9CSiB0YWtlcyBubyBhcmd1bWVudHMgZnJvbSB0aGUgb3Bjb2RlIHN0cmVhbS4gIEluc3RlYWQKICAgICAgdGhlIGNsYXNzIG9iamVjdCBpcyB0YWtlbiBvZmYgdGhlIHN0YWNrLCBpbW1lZGlhdGVseSBhYm92ZSB0aGUKICAgICAgdG9wbW9zdCBtYXJrb2JqZWN0OgoKICAgICAgU3RhY2sgYmVmb3JlOiAuLi4gbWFya29iamVjdCBjbGFzc29iamVjdCBzdGFja3NsaWNlCiAgICAgIFN0YWNrIGFmdGVyOiAgLi4uIG5ld19pbnN0YW5jZV9vYmplY3QKCiAgICAgIEFzIGZvciBJTlNULCB0aGUgcmVtYWluZGVyIG9mIHRoZSBzdGFjayBhYm92ZSB0aGUgbWFya29iamVjdCBpcwogICAgICBnYXRoZXJlZCBpbnRvIGFuIGFyZ3VtZW50IHR1cGxlLCBhbmQgdGhlbiB0aGUgbG9naWMgc2VlbXMgaWRlbnRpY2FsLAogICAgICBleGNlcHQgdGhhdCBubyBfX3NhZmVfZm9yX3VucGlja2xpbmdfXyBjaGVjayBpcyBkb25lIChYWFggdGhpcyBpcwogICAgICBhIGJ1ZzsgY1BpY2tsZSBkb2VzIHRlc3QgX19zYWZlX2Zvcl91bnBpY2tsaW5nX18pLiAgU2VlIElOU1QgZm9yCiAgICAgIHRoZSBnb3J5IGRldGFpbHMuCgogICAgICBOT1RFOiAgSW4gUHl0aG9uIDIuMywgSU5TVCBhbmQgT0JKIGFyZSBpZGVudGljYWwgZXhjZXB0IGZvciBob3cgdGhleQogICAgICBnZXQgdGhlIGNsYXNzIG9iamVjdC4gIFRoYXQgd2FzIGFsd2F5cyB0aGUgaW50ZW50OyB0aGUgaW1wbGVtZW50YXRpb25zCiAgICAgIGhhZCBkaXZlcmdlZCBmb3IgYWNjaWRlbnRhbCByZWFzb25zLgogICAgICB0BgAAAE5FV09CSnMBAAAAgXNMAQAAQnVpbGQgYW4gb2JqZWN0IGluc3RhbmNlLgoKICAgICAgVGhlIHN0YWNrIGJlZm9yZSBzaG91bGQgYmUgdGhvdWdodCBvZiBhcyBjb250YWluaW5nIGEgY2xhc3MKICAgICAgb2JqZWN0IGZvbGxvd2VkIGJ5IGFuIGFyZ3VtZW50IHR1cGxlICh0aGUgdHVwbGUgYmVpbmcgdGhlIHN0YWNrCiAgICAgIHRvcCkuICBDYWxsIHRoZXNlIGNscyBhbmQgYXJncy4gIFRoZXkgYXJlIHBvcHBlZCBvZmYgdGhlIHN0YWNrLAogICAgICBhbmQgdGhlIHZhbHVlIHJldHVybmVkIGJ5IGNscy5fX25ld19fKGNscywgKmFyZ3MpIGlzIHB1c2hlZCBiYWNrCiAgICAgIG9udG8gdGhlIHN0YWNrLgogICAgICB0BQAAAFBST1RPcwEAAACAc64AAABQcm90b2NvbCB2ZXJzaW9uIGluZGljYXRvci4KCiAgICAgIEZvciBwcm90b2NvbCAyIGFuZCBhYm92ZSwgYSBwaWNrbGUgbXVzdCBzdGFydCB3aXRoIHRoaXMgb3Bjb2RlLgogICAgICBUaGUgYXJndW1lbnQgaXMgdGhlIHByb3RvY29sIHZlcnNpb24sIGFuIGludCBpbiByYW5nZSgyLCAyNTYpLgogICAgICB0BAAAAFNUT1B0AQAAAC5zzwAAAFN0b3AgdGhlIHVucGlja2xpbmcgbWFjaGluZS4KCiAgICAgIEV2ZXJ5IHBpY2tsZSBlbmRzIHdpdGggdGhpcyBvcGNvZGUuICBUaGUgb2JqZWN0IGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrCiAgICAgIGlzIHBvcHBlZCwgYW5kIHRoYXQncyB0aGUgcmVzdWx0IG9mIHVucGlja2xpbmcuICBUaGUgc3RhY2sgc2hvdWxkIGJlCiAgICAgIGVtcHR5IHRoZW4uCiAgICAgIHQGAAAAUEVSU0lEdAEAAABQcxgCAABQdXNoIGFuIG9iamVjdCBpZGVudGlmaWVkIGJ5IGEgcGVyc2lzdGVudCBJRC4KCiAgICAgIFRoZSBwaWNrbGUgbW9kdWxlIGRvZXNuJ3QgZGVmaW5lIHdoYXQgYSBwZXJzaXN0ZW50IElEIG1lYW5zLiAgUEVSU0lEJ3MKICAgICAgYXJndW1lbnQgaXMgYSBuZXdsaW5lLXRlcm1pbmF0ZWQgc3RyLXN0eWxlIChubyBlbWJlZGRlZCBlc2NhcGVzLCBubwogICAgICBicmFja2V0aW5nIHF1b3RlIGNoYXJhY3RlcnMpIHN0cmluZywgd2hpY2ggKmlzKiAidGhlIHBlcnNpc3RlbnQgSUQiLgogICAgICBUaGUgdW5waWNrbGVyIHBhc3NlcyB0aGlzIHN0cmluZyB0byBzZWxmLnBlcnNpc3RlbnRfbG9hZCgpLiAgV2hhdGV2ZXIKICAgICAgb2JqZWN0IHRoYXQgcmV0dXJucyBpcyBwdXNoZWQgb24gdGhlIHN0YWNrLiAgVGhlcmUgaXMgbm8gaW1wbGVtZW50YXRpb24KICAgICAgb2YgcGVyc2lzdGVudF9sb2FkKCkgaW4gUHl0aG9uJ3MgdW5waWNrbGVyOiAgaXQgbXVzdCBiZSBzdXBwbGllZCBieSBhbgogICAgICB1bnBpY2tsZXIgc3ViY2xhc3MuCiAgICAgIHQJAAAAQklOUEVSU0lEdAEAAABRc1gBAABQdXNoIGFuIG9iamVjdCBpZGVudGlmaWVkIGJ5IGEgcGVyc2lzdGVudCBJRC4KCiAgICAgIExpa2UgUEVSU0lELCBleGNlcHQgdGhlIHBlcnNpc3RlbnQgSUQgaXMgcG9wcGVkIG9mZiB0aGUgc3RhY2sgKGluc3RlYWQKICAgICAgb2YgYmVpbmcgYSBzdHJpbmcgZW1i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ZSBwaWNrbGUgY29udGFpbnMgUFVUIG9yIEJJTlBVVCBvcGNvZGVzLgogICAgUGFzc2luZyB0aGUgc2FtZSBtZW1vIG9iamVjdCB0byBhbm90aGVyIGRpcygpIGNhbGwgdGhlbiBhbGxvd3MgZGlzYXNzZW1ibHkKICAgIHRvIHByb2NlZWQgYWNyb3NzIG11bHRpcGxlIHBpY2tsZXMgdGhhdCB3ZXJlIGFsbCBjcmVhdGVkIGJ5IHRoZSBzYW1lCiAgICBwaWNrbGVyIHdpdGggdGhlIHNhbWUgbWVtby4gIE9yZGluYXJpbHkgeW91IGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgdGhpcy4KCiAgICBPcHRpb25hbCBhcmcgaW5kZW50bGV2ZWwgaXMgdGhlIG51bWJlciBvZiBibGFua3MgYnkgd2hpY2ggdG8gaW5kZW50CiAgICBhIG5ldyBNQVJLIGxldmVsLiAgSXQgZGVmYXVsdHMgdG8gNC4KCiAgICBJbiBhZGRpdGlvbiB0byBwcmludGluZyB0aGUgZGlzYXNzZW1ibHksIHNvbWUgc2FuaXR5IGNoZWNrcyBhcmUgbWFkZToKCiAgICArIEFsbCBlbWJlZGRlZCBvcGNvZGUgYXJndW1lbnRzICJtYWtlIHNlbnNlIi4KCiAgICArIEV4cGxpY2l0IGFuZCBpbXBsaWNpdCBwb3Agb3BlcmF0aW9ucyBoYXZlIGVub3VnaCBpdGVtcyBvbiB0aGUgc3RhY2suCgogICAgKyBXaGVuIGFuIG9wY29kZSBpbXBsaWNpdGx5IHJlZmVycyB0byBhIG1hcmtvYmplY3QsIGEgbWFya29iamVjdCBpcwogICAgICBhY3R1YWxseSBvbiB0aGUgc3RhY2suCgogICAgKyBBIG1lbW8gZW50cnkgaXNuJ3QgcmVmZXJlbmNlZCBiZWZvcmUgaXQncyBkZWZpbmVkLgoKICAgICsgVGhlIG1hcmtvYmplY3QgaXNuJ3Qgc3RvcmVkIGluIHRoZSBtZW1vLgoKICAgICsgQSBtZW1vIGVudHJ5IGlzbid0IHJlZGVmaW5lZC4KICAgIGn/////dAEAAAAgcwQAAAAlNWQ6cwkAAAAlLTRzICVzJXNpAQAAAFKRAAAAcx8AAAAoTUFSSyBhdCB1bmtub3duIG9wY29kZSBvZmZzZXQpcwwAAAAoTUFSSyBhdCAlZClpAAAAAHMXAAAAbm8gTUFSSyBleGlzdHMgb24gc3RhY2tSnwAAAFKhAAAAUqIAAABzGwAAAG1lbW8ga2V5ICVyIGFscmVhZHkgZGVmaW5lZHMnAAAAc3RhY2sgaXMgZW1wdHkgLS0gY2FuJ3Qgc3RvcmUgaW50byBtZW1vcyIAAABjYW4ndCBzdG9yZSBtYXJrb2JqZWN0IGluIHRoZSBtZW1vUpkAAABSmwAAAFKdAAAAcyYAAABtZW1vIGtleSAlciBoYXMgbmV2ZXIgYmVlbiBzdG9yZWQgaW50b2kKAAAAczMAAAB0cmllcyB0byBwb3AgJWQgaXRlbXMgZnJvbSBzdGFjayB3aXRoIG9ubHkgJWQgaXRlbXNzIAAAAGhpZ2hlc3QgcHJvdG9jb2wgYW1vbmcgb3Bjb2RlcyA9cx4AAABzdGFjayBub3QgZW1wdHkgYWZ0ZXIgU1RPUDogJXJOKAMAAABzAwAAAFBVVFKhAAAAUqIAAAAoAwAAAHMDAAAAR0VUUpsAAABSnQAAACgQAAAAUlEAAABSAQAAAHQEAAAAcmVwclJYAAAAUhUAAABSBAAAAHQDAAAAbWF4UlwAAABSWgAAAFJbAAAAdAoAAABtYXJrb2JqZWN0dAMAAABwb3B0BQAAAGluZGV4UhAAAABSwQAAAHQGAAAAZXh0ZW5kKBIAAABSuQAAAHQDAAAAb3V0dAQAAABtZW1vdAsAAABpbmRlbnRsZXZlbHQFAAAAc3RhY2t0CAAAAG1heHByb3RvdAkAAABtYXJrc3RhY2t0CwAAAGluZGVudGNodW5rdAgAAABlcnJvcm1zZ1LQAAAAUlkAAABSzwAAAHQEAAAAbGluZXQGAAAAYmVmb3JldAUAAABhZnRlcnQIAAAAbnVtdG9wb3B0BwAAAG1hcmttc2d0BwAAAG1hcmtwb3MoAAAAACgAAAAAc1MAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9waWNrbGV0b29scy5weVIAAAAAYwcAAHOEAAAAACcGAQwBCQEGAQYBCgEGARwBDAERAhYBDQENAhIBCQEJAQwDBgEbAQYBEAUGAQwBDAEJAgoCEwEOAQoCAwETAQ0CDQINAw8CDAENAQYBCQEQAQkCEQIPAQwCEAINAhICGwEMARcBBgEUAQoCBgMPAxIBBgEZAQYBCwEMAhACEQIQAQYBdAgAAABfRXhhbXBsZWMAAAAAAAAAAAEAAABCAAAAcxEAAABlAABaAQBkAACEAABaAgBSUygBAAAAYwIAAAACAAAAAgAAAEMAAABzDQAAAHwBAHwAAF8AAGQAAFMoAQAAAE4oAQAAAHQFAAAAdmFsdWUoAgAAAFIIAAAAUu8AAAAoAAAAACgAAAAAc1MAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9waWNrbGV0b29scy5weVIJAAAA7QcAAHMCAAAAAAEoAwAAAFIKAAAAUgsAAABSCQAAACgAAAAAKAAAAAAoAAAAAHNTAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvcGlja2xldG9vbHMucHlS7gAAAOwHAABzAgAAAAYBc40TAAAKPj4+IGltcG9ydCBwaWNrbGUKPj4+IHggPSBbMSwgMiwgKDMsIDQpLCB7J2FiYyc6IHUiZGVmIn1dCj4+PiBwa2wgPSBwaWNrbGUuZHVtcHMoeCwgMCkKPj4+IGRpcyhwa2wpCiAgICAwOiAoICAgIE1BUksKICAgIDE6IGwgICAgICAgIExJU1QgICAgICAgKE1BUksgYXQgMCkKICAgIDI6IHAgICAgUFVUICAgICAgICAwCiAgICA1OiBJICAgIElOVCAgICAgICAgMQogICAgODogYSAgICBBUFBFTkQKICAgIDk6IEkgICAgSU5UICAgICAgICAyCiAgIDEyOiBhICAgIEFQUEVORAogICAxMzogKCAgICBNQVJLCiAgIDE0OiBJICAgICAgICBJTlQgICAgICAgIDMKICAgMTc6IEkgICAgICAgIElOVCAgICAgICAgNAogICAyMDogdCAgICAgICAgVFVQTEUgICAgICAoTUFSSyBhdCAxMykKICAgMjE6IHAgICAgUFVUICAgICAgICAxCiAgIDI0OiBhICAgIEFQUEVORAogICAyNTogKCAgICBNQVJLCiAgIDI2OiBkICAgICAgICBESUNUICAgICAgIChNQVJLIGF0IDI1KQogICAyNzogcCAgICBQVVQgICAgICAgIDIKICAgMzA6IFMgICAgU1RSSU5HICAgICAnYWJjJwogICAzNzogcCAgICBQVVQgICAgICAgIDMKICAgNDA6IFYgICAgVU5JQ09ERSAgICB1J2RlZicKICAgNDU6IHAgICAgUFVUICAgICAgICA0CiAgIDQ4OiBzICAgIFNFVElURU0KICAgNDk6IGEgICAgQVBQRU5ECiAgIDUwOiAuICAgIFNUT1AKaGlnaGVzdCBwcm90b2NvbCBhbW9uZyBvcGNvZGVzID0gMAoKVHJ5IGFnYWluIHdpdGggYSAiYmluYXJ5IiBwaWNrbGUuCgo+Pj4gcGtsID0gcGlja2xlLmR1bXBzKHgsIDEpCj4+PiBkaXMocGtsKQogICAgMDogXSAgICBFTVBUWV9MSVNUCiAgICAxOiBxICAgIEJJTlBVVCAgICAgMAogICAgMzogKCAgICBNQVJLCiAgICA0OiBLICAgICAgICBCSU5JTlQxICAgIDEKICAgIDY6IEsgICAgICAgIEJJTklOVDEgICAgMgogICAgODogKCAgICAgICAgTUFSSwogICAgOTogSyAgICAgICAgICAgIEJJTklOVDEgICAgMwogICAxMTogSyAgICAgICAgICAgIEJJTklOVDEgICAgNAogICAxMzogdCAgICAgICAgICAgIFRVUExFICAgICAgKE1BUksgYXQgOCkKICAgMTQ6IHEgICAgICAgIEJJTlBVVCAgICAgMQogICAxNjogfSAgICAgICAgRU1QVFlfRElDVAogICAxNzogcSAgICAgICAgQklOUFVUICAgICAyCiAgIDE5OiBVICAgICAgICBTSE9SVF9CSU5TVFJJTkcgJ2FiYycKICAgMjQ6IHEgICAgICAgIEJJTlBVVCAgICAgMwogICAyNjogWCAgICAgICAgQklOVU5JQ09ERSB1J2RlZicKICAgMzQ6IHEgICAgICAgIEJJTlBVVCAgICAgNAogICAzNjogcyAgICAgICAgU0VUSVRFTQogICAzNzogZSAgICAgICAgQVBQRU5EUyAgICAoTUFSSyBhdCAzKQogICAzODogLiAgICBTVE9QCmhpZ2hlc3QgcHJvdG9jb2wgYW1vbmcgb3Bjb2RlcyA9IDEKCkV4ZXJjaXNlIHRoZSBJTlNUL09CSi9CVUlMRCBmYW1pbHkuCgo+Pj4gaW1wb3J0IHBpY2tsZXRvb2xzCj4+PiBkaXMocGlja2xlLmR1bXBzKHBpY2tsZXRvb2xzLmRpcywgMCkpCiAgICAwOiBjICAgIEdMT0JBTCAgICAgJ3BpY2tsZXRvb2xzIGRpcycKICAgMTc6IHAgICAgUFVUICAgICAgICAwCiAgIDIwOiAuICAgIFNUT1AKaGlnaGVzdCBwcm90b2NvbCBhbW9uZyBvcGNvZGVzID0gMAoKPj4+IGZyb20gcGlja2xldG9vbHMgaW1wb3J0IF9FeGFtcGxlCj4+PiB4ID0gW19FeGFtcGxlKDQyKV0gKiAyCj4+PiBkaXMocGlja2xlLmR1bXBzKHgsIDApKQogICAgMDogKCAgICBNQVJLCiAgICAxOiBsICAgICAgICBMSVNUICAgICAgIChNQVJLIGF0IDApCiAgICAyOiBwICAgIFBVVCAgICAgICAgMAogICAgNTogKCAgICBNQVJLCiAgICA2OiBpICAgICAgICBJTlNUICAgICAgICdwaWNrbGV0b29scyBfRXhhbXBsZScgKE1BUksgYXQgNSkKICAgMjg6IHAgICAgUFVUICAgICAgICAxCiAgIDMxOiAoICAgIE1BUksKICAgMzI6IGQgICAgICAgIERJQ1QgICAgICAgKE1BUksgYXQgMzEpCiAgIDMzOiBwICAgIFBVVCAgICAgICAgMgogICAzNjogUyAgICBTVFJJTkcgICAgICd2YWx1ZScKICAgNDU6IHAgICAgUFVUICAgICAgICAzCiAgIDQ4OiBJICAgIElOVCAgICAgICAgNDIKICAgNTI6IHMgICAgU0VUSVRFTQogICA1MzogYiAgICBCVUlMRAogICA1NDogYSAgICBBUFBFTkQKICAgNTU6IGcgICAgR0VUICAgICAgICAxCiAgIDU4OiBhICAgIEFQUEVORAogICA1OTogLiAgICBTVE9QCmhpZ2hlc3QgcHJvdG9jb2wgYW1vbmcgb3Bjb2RlcyA9IDAKCj4+PiBkaXMocGlja2xlLmR1bXBzKHgsIDEpKQogICAgMDogXSAgICBFTVBUWV9MSVNUCiAgICAxOiBxICAgIEJJTlBVVCAgICAgMAogICAgMzogKCAgICBNQVJLCiAgICA0OiAoICAgICAgICBNQVJLCiAgICA1OiBjICAgICAgICAgICAgR0xPQkFMICAgICAncGlja2xldG9vbHMgX0V4YW1wbGUnCiAgIDI3OiBxICAgICAgICAgICAgQklOUFVUICAgICAxCiAgIDI5OiBvICAgICAgICAgICAgT0JKICAgICAgICAoTUFSSyBhdCA0KQogICAzMDogcSAgICAgICAgQklOUFVUICAgICAyCiAgIDMyOiB9ICAgICAgICBFTVBUWV9ESUNUCiAgIDMzOiBxICAgICAgICBCSU5QVVQgICAgIDMKICAgMzU6IFUgICAgICAgIFNIT1JUX0JJTlNUUklORyAndmFsdWUnCiAgIDQyOiBxICAgICAgICBCSU5QVVQgICAgIDQKICAgNDQ6IEsgICAgICAgIEJJTklOVDEgICAgNDIKICAgNDY6IHMgICAgICAgIFNFVElURU0KICAgNDc6IGIgICAgICAgIEJVSUxECiAgIDQ4OiBoICAgICAgICBCSU5HRVQgICAgIDIKICAgNTA6IGUgICAgICAgIEFQUEVORFMgICAgKE1BUksgYXQgMykKICAgNTE6IC4gICAgU1RPUApoaWdoZXN0IHByb3RvY29sIGFtb25nIG9wY29kZXMgPSAxCgpUcnkgInRoZSBjYW5vbmljYWwiIHJlY3Vyc2l2ZS1vYmplY3QgdGVzdC4KCj4+PiBMID0gW10KPj4+IFQgPSBMLAo+Pj4gTC5hcHBlbmQoVCkKPj4+IExbMF0gaXMgVApUcnVlCj4+PiBUWzBdIGlzIEwKVHJ1ZQo+Pj4gTFswXVswXSBpcyBMClRydWUKPj4+IFRbMF1bMF0gaXMgVApUcnVlCj4+PiBkaXMocGlja2xlLmR1bXBzKEwsIDApKQogICAgMDogKCAgICBNQVJLCiAgICAxOiBsICAgICAgICBMSVNUICAgICAgIChNQVJLIGF0IDApCiAgICAyOiBwICAgIFBVVCAgICAgICAgMAogICAgNTogKCAgICBNQVJLCiAgICA2OiBnICAgICAgICBHRVQgICAgICAgIDAKICAgIDk6IHQgICAgICAgIFRVUExFICAgICAgKE1BUksgYXQgNSkKICAgMTA6IHAgICAgUFVUICAgICAgICAxCiAgIDEzOiBhICAgIEFQUEVORAogICAxNDogLiAgICBTVE9QCmhpZ2hlc3QgcHJvdG9jb2wgYW1vbmcgb3Bjb2RlcyA9IDAKCj4+PiBkaXMocGlja2xlLmR1bXBzKEwsIDEpKQogICAgMDogXSAgICBFTVBUWV9MSVNUCiAgICAxOiBxICAgIEJJTlBVVCAgICAgMAogICAgMzogKCAgICBNQVJLCiAgICA0OiBoICAgICAgICBCSU5HRVQgICAgIDAKICAgIDY6IHQgICAgICAgIFRVUExFICAgICAgKE1BUksgYXQgMykKICAgIDc6IHEgICAgQklOUFVUICAgICAxCiAgICA5OiBhICAgIEFQUEVORAogICAxMDogLiAgICBTVE9QCmhpZ2hlc3QgcHJvdG9jb2wgYW1vbmcgb3Bjb2RlcyA9IDEKCk5vdGUgdGhhdCwgaW4gdGhlIHByb3RvY29sIDAgcGlja2xlIG9mIHRoZSByZWN1cnNpdmUgdHVwbGUsIHRoZSBkaXNhc3NlbWJsZXIKaGFzIHRvIGVtdWxhdGUgdGhlIHN0YWNrIGluIG9yZGVyIHRvIHJlYWxpemUgdGhhdCB0aGUgUE9QIG9wY29kZSBhdCAxNiBnZXRzCnJpZCBvZiB0aGUgTUFSSyBhdCAwLgoKPj4+IGRpcyhwaWNrbGUuZHVtcHMoVCwgMCkpCiAgICAwOiAoICAgIE1BUksKICAgIDE6ICggICAgICAgIE1BUksKICAgIDI6IGwgICAgICAgICAgICBMSVNUICAgICAgIChNQVJLIGF0IDEpCiAgICAzOiBwICAgICAgICBQVVQgICAgICAgIDAKICAgIDY6ICggICAgICAgIE1BUksKICAgIDc6IGcgICAgICAgICAgICBHRVQgICAgICAgIDAKICAgMTA6IHQgICAgICAgICAgICBUVVBMRSAgICAgIChNQVJLIGF0IDYpCiAgIDExOiBwICAgICAgICBQVVQgICAgICAgIDEKICAgMTQ6IGEgICAgICAgIEFQUEVORAogICAxNTogMCAgICAgICAgUE9QCiAgIDE2OiAwICAgICAgICBQT1AgICAgICAgIChNQVJLIGF0IDApCiAgIDE3OiBnICAgIEdFVCAgICAgICAgMQogICAyMDogLiAgICBTVE9QCmhpZ2hlc3QgcHJvdG9jb2wgYW1vbmcgb3Bjb2RlcyA9IDAKCj4+PiBkaXMocGlja2xlLmR1bXBzKFQsIDEpKQogICAgMDogKCAgICBNQVJLCiAgICAxOiBdICAgICAgICBFTVBUWV9MSVNUCiAgICAyOiBxICAgICAgICBCSU5QVVQgICAgIDAKICAgIDQ6ICggICAgICAgIE1BUksKICAgIDU6IGggICAgICAgICAgICBCSU5HRVQgICAgIDAKICAgIDc6IHQgICAgICAgICAgICBUVVBMRSAgICAgIChNQVJLIGF0IDQpCiAgICA4OiBxICAgICAgICBCSU5QVVQgICAgIDEKICAgMTA6IGEgICAgICAgIEFQUEVORAogICAxMTogMSAgICAgICAgUE9QX01BUksgICAoTUFSSyBhdCAwKQogICAxMjogaCAgICBCSU5HRVQgICAgIDEKICAgMTQ6IC4gICAgU1RPUApoaWdoZXN0IHByb3RvY29sIGFtb25nIG9wY29kZXMgPSAxCgpUcnkgcHJvdG9jb2wgMi4KCj4+PiBkaXMocGlja2xlLmR1bXBzKEwsIDIpKQogICAgMDogXHg4MCBQUk9UTyAgICAgIDIKICAgIDI6IF0gICAgRU1QVFlfTElTVAogICAgMzogcSAgICBCSU5QVVQgICAgIDAKICAgIDU6IGggICAgQklOR0VUICAgICAwCiAgICA3OiBceDg1IFRVUExFMQogICAgODogcSAgICBCSU5QVVQgICAgIDEKICAgMTA6IGEgICAgQVBQRU5ECiAgIDExOiAuICAgIFNUT1AKaGlnaGVzdCBwcm90b2NvbCBhbW9uZyBvcGNvZGVzID0gMgoKPj4+IGRpcyhwaWNrbGUuZHVtcHMoVCwgMikpCiAgICAwOiBceDgwIFBST1RPICAgICAgMgogICAgMjogXSAgICBFTVBUWV9MSVNUCiAgICAzOiBxICAgIEJJTlBVVCAgICAgMAogICAgNTogaCAgICBCSU5HRVQgICAgIDAKICAgIDc6IFx4ODUgVFVQTEUxCiAgICA4OiBxICAgIEJJTlBVVCAgICAgMQogICAxMDogYSAgICBBUFBFTkQKICAgMTE6IDAgICAgUE9Q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BgEJAwkOBgEGAQYBBgEJAwkOBgEGAQYBBgEJAw8xBgEGAQYBBgUJAgkDBgEGAQYBBgYJAgkJBgEGAQYBBggJAgkWBgEGAQYBBgYJAwkRBgEGAQYBBgYJAwkOBgEGAQYBBgYJAgkbBgEGAQYBBgcJAwkdCRgGAQYBBgEGCAkCBgEGAQYBBgUJAwkJBgEGAQYBBggJAgkQBgEGAQYBBg0JBBACCRUGAQYBBgEGBgkCCRcGAQYBBgEGCAkJFh4GAQYBBgEJAgYBBgEGAQkCBgEGAQ8BCQMGAQYBCQEJAgYBBgEGAQkCBgEGAQYBCQIGAQYBBgEJAgYBBgEMAQkCBgEGAQYBCQIGAQYBBgEJAgYBBgEGAQkCBgEGAQYBCQIGAQYBBgoJAgYBBgEGDgkFFjsGBQwBBgEGAQYBCQEGEgYCDAEGAQYBBgEJAQYHBgIMAQYBBgEGAQkBBgUGAgwBBgEGAQYBCQEGBgYCDAEGAQYBBgEJAQYLBgIMAQYBBgEGAQkBBgQGAgwBBgEGAQYBCQEGBAYEDAEGAQYBBgEJAQYGBgIMAQYBBgEGAQkBBgYGAgwBBgEGAQYBCQEGBgYEDAEGAQYBBgEJAQYBBgUMAQYBBgEGAQkBBgMGAgwBBgEGAQYBCQEGAwYEDAEGAQYBBgEJAQYGBgIMAQYBBgEGAQkBBgYGBAwBBgEGAQYBCQEGDQYCDAEGAQYBBgEJAQYJBgQMAQYBBgEGAQkBBgEGAgwBBgEGAQwBCQEGBwYCDAEGAQYBDwEJAQYHBgIMAQYBBgEMAQkBBgkGBAwBBgEGAQYBCQEGAQYCDAEGAQYBDAEJAQYJBgIMAQYBBgEJAQkBBggGAgwBBgEGAQwBCQEGCAYCDAEGAQYBDwEJAQYIBgQMAQYBBgEGAQkBBgEGAgwBBgEGAQwBCQEGCgYCDAEGAQYBDwEJAQYHBgIMAQYBBgEPAQkBBg4GBAwBBgEGAQkBBgEGAQYCDAEGAQYBCQEMAQYBBgIMAQYBBgEGAQkBBgYGAgwBBgEGAQwBBgEGBgYFDAEGAQYBBgEJAQYGBgIMAQYBBgEGAQkBBgUGAgwBBgEGAQYBCQEGBQYCDAEGAQYBBgEGAQYGBgIMAQYBBgEGAQYBBgUGAgwBBgEGAQYBBgEGBQYFDAEGAQYBBgEJAQYPBgIMAQYBBgEGAQkBBgQGAgwBBgEGAQYBCQEGBAYFDAEGAQYBBgEJAQYIBgcMAQYBBgEMAQkBBhYGAgwBBgEGAQwBCQEGGQYCDAEGAQYBDAEJAQYxBgIMAQYBBgEPAQkBBhoGAgwBBgEGAQwBCQEGCAYEDAEGAQYBBgEGAQYFBgIMAQYBBgEJAQYBBgYGBAwBBgEGAQYBCQEGCgYCDAEGAQYBCQEJAQYHDAIDAwYBBgIZAQ8BBgEgAQ8BBgEgAg0BEQIMBwYBDQERAQMCDCYHAQMFCTkJGxKJE88GHAYCCgEKAwkEDAE=