A/MNCmL5IVRjAAAAAAAAAAAFAAAAQAAAAHOXAAAAZAAAWgAAZAEAZAIAbAEAWgEAZwAAZQEAagIARF0VAFoDAGUEAGUBAGUDAIMCAF4CAHEcAFoFAGQDAGQEAGQFAGcDAFoGAGQGAFoHAGQHAIQAAFoIAGQIAIQAAFoJAGQJAGQKAGQLAIQCAFoKAGQEAGQOAGQMAIQAAIMAAFlaCwBkBQBkDwBkDQCEAACDAABZWgwAZAIAUygQAAAAc1sIAABVdGlsaXRpZXMgdG8gY29tcGlsZSBwb3NzaWJseSBpbmNvbXBsZXRlIFB5dGhvbiBzb3VyY2UgY29kZS4KClRoaXMgbW9kdWxlIHByb3ZpZGVzIHR3byBpbnRlcmZhY2VzLCBicm9hZGx5IHNpbWlsYXIgdG8gdGhlIGJ1aWx0aW4KZnVuY3Rpb24gY29tcGlsZSgpLCB3aGljaCB0YWtlIHByb2dyYW0gdGV4dCwgYSBmaWxlbmFtZSBhbmQgYSAnbW9kZScKYW5kOgoKLSBSZXR1cm4gY29kZSBvYmplY3QgaWYgdGhlIGNvbW1hbmQgaXMgY29tcGxldGUgYW5kIHZhbGlkCi0gUmV0dXJuIE5vbmUgaWYgdGhlIGNvbW1hbmQgaXMgaW5jb21wbGV0ZQotIFJhaXNlIFN5bnRheEVycm9yLCBWYWx1ZUVycm9yIG9yIE92ZXJmbG93RXJyb3IgaWYgdGhlIGNvbW1hbmQgaXMgYQogIHN5bnRheCBlcnJvciAoT3ZlcmZsb3dFcnJvciBhbmQgVmFsdWVFcnJvciBjYW4gYmUgcHJvZHVjZWQgYnkKICBtYWxmb3JtZWQgbGl0ZXJhbHMpLgoKQXBwcm9hY2g6CgpGaXJzdCwgY2hlY2sgaWYgdGhlIHNvdXJjZSBjb25zaXN0cyBlbnRpcmVseSBvZiBibGFuayBsaW5lcyBhbmQKY29tbWVudHM7IGlmIHNvLCByZXBsYWNlIGl0IHdpdGggJ3Bhc3MnLCBiZWNhdXNlIHRoZSBidWlsdC1pbgpwYXJzZXIgZG9lc24ndCBhbHdheXMgZG8gdGhlIHJpZ2h0IHRoaW5nIGZvciB0aGVzZS4KCkNvbXBpbGUgdGhyZWUgdGltZXM6IGFzIGlzLCB3aXRoIFxuLCBhbmQgd2l0aCBcblxuIGFwcGVuZGVkLiAgSWYgaXQKY29tcGlsZXMgYXMgaXMsIGl0J3MgY29tcGxldGUuICBJZiBpdCBjb21waWxlcyB3aXRoIG9uZSBcbiBhcHBlbmRlZCwKd2UgZXhwZWN0IG1vcmUuICBJZiBpdCBkb2Vzbid0IGNvbXBpbGUgZWl0aGVyIHdheSwgd2UgY29tcGFyZSB0aGUKZXJyb3Igd2UgZ2V0IHdoZW4gY29tcGlsaW5nIHdpdGggXG4gb3IgXG5cbiBhcHBlbmRlZC4gIElmIHRoZSBlcnJvcnMKYXJlIHRoZSBzYW1lLCB0aGUgY29kZSBpcyBicm9rZW4uICBCdXQgaWYgdGhlIGVycm9ycyBhcmUgZGlmZmVyZW50LCB3ZQpleHBlY3QgbW9yZS4gIE5vdCBpbnR1aXRpdmU7IG5vdCBldmVuIGd1YXJhbnRlZWQgdG8gaG9sZCBpbiBmdXR1cmUKcmVsZWFzZXM7IGJ1dCB0aGlzIG1hdGNoZXMgdGhlIGNvbXBpbGVyJ3MgYmVoYXZpb3IgZnJvbSBQeXRob24gMS40CnRocm91Z2ggMi4yLCBhdCBsZWFzdC4KCkNhdmVhdDoKCkl0IGlzIHBvc3NpYmxlIChidXQgbm90IGxpa2VseSkgdGhhdCB0aGUgcGFyc2VyIHN0b3BzIHBhcnNpbmcgd2l0aCBhCnN1Y2Nlc3NmdWwgb3V0Y29tZSBiZWZvcmUgcmVhY2hpbmcgdGhlIGVuZCBvZiB0aGUgc291cmNlOyBpbiB0aGlzCmNhc2UsIHRyYWlsaW5nIHN5bWJvbHMgbWF5IGJlIGlnbm9yZWQgaW5zdGVhZCBvZiBjYXVzaW5nIGFuIGVycm9yLgpGb3IgZXhhbXBsZSwgYSBiYWNrc2xhc2ggZm9sbG93ZWQgYnkgdHdvIG5ld2xpbmVzIG1heSBiZSBmb2xsb3dlZCBieQphcmJpdHJhcnkgZ2FyYmFnZS4gIFRoaXMgd2lsbCBiZSBmaXhlZCBvbmNlIHRoZSBBUEkgZm9yIHRoZSBwYXJzZXIgaXMKYmV0dGVyLgoKVGhlIHR3byBpbnRlcmZhY2VzIGFyZToKCmNvbXBpbGVfY29tbWFuZChzb3VyY2UsIGZpbGVuYW1lLCBzeW1ib2wpOgoKICAgIENvbXBpbGVzIGEgc2luZ2xlIGNvbW1hbmQgaW4gdGhlIG1hbm5lciBkZXNjcmliZWQgYWJvdmUuCgpDb21tYW5kQ29tcGlsZXIoKToKCiAgICBJbnN0YW5jZXMgb2YgdGhpcyBjbGFzcyBoYXZlIF9fY2FsbF9fIG1ldGhvZHMgaWRlbnRpY2FsIGluCiAgICBzaWduYXR1cmUgdG8gY29tcGlsZV9jb21tYW5kOyB0aGUgZGlmZmVyZW5jZSBpcyB0aGF0IGlmIHRoZQogICAgaW5zdGFuY2UgY29tcGlsZXMgcHJvZ3JhbSB0ZXh0IGNvbnRhaW5pbmcgYSBfX2Z1dHVyZV9fIHN0YXRlbWVudCwKICAgIHRoZSBpbnN0YW5jZSAncmVtZW1iZXJzJyBhbmQgY29tcGlsZXMgYWxsIHN1YnNlcXVlbnQgcHJvZ3JhbSB0ZXh0cwogICAgd2l0aCB0aGUgc3RhdGVtZW50IGluIGZvcmNlLgoKVGhlIG1vZHVsZSBhbHNvIHByb3ZpZGVzIGFub3RoZXIgY2xhc3M6CgpDb21waWxlKCk6CgogICAgSW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgYWN0IGxpa2UgdGhlIGJ1aWx0LWluIGZ1bmN0aW9uIGNvbXBpbGUsCiAgICBidXQgd2l0aCAnbWVtb3J5JyBpbiB0aGUgc2Vuc2UgZGVzY3JpYmVkIGFib3ZlLgpp/////050DwAAAGNvbXBpbGVfY29tbWFuZHQHAAAAQ29tcGlsZXQPAAAAQ29tbWFuZENvbXBpbGVyaQACAABjBAAAAAsAAAAFAAAAQwAAAHM2AQAAeFIAfAEAagAAZAEAgwEARF0sAH0EAHwEAGoBAIMAAH0EAHwEAHIQAHwEAGQCABlkAwBrAwByEABQcRAAcRAAV3wDAGQEAGsDAHJVAGQFAH0BAG4AAGQAAAR9BQAEfQYAfQcAZAAABH0IAAR9CQB9CgB5FgB8AAB8AQB8AgB8AwCDAwB9CABXbhMABHQDAGsKAHKcAAF9BQABbgEAWHkaAHwAAHwBAGQBABd8AgB8AwCDAwB9CQBXbhMABHQDAGsKAHLMAAF9BgABbgEAWHkaAHwAAHwBAGQGABd8AgB8AwCDAwB9CgBXbhMABHQDAGsKAHL8AAF9BwABbgEAWHwIAHIHAXwIAFN8CQAMcjIBdAQAfAYAgwEAdAQAfAcAgwEAawIAcjIBdAMAfAYAggIAbgAAZAAAUygHAAAATnMBAAAACmkAAAAAdAEAAAAjdAQAAABldmFsdAQAAABwYXNzcwIAAAAKCigFAAAAdAUAAABzcGxpdHQFAAAAc3RyaXB0BAAAAE5vbmV0CwAAAFN5bnRheEVycm9ydAQAAAByZXByKAsAAAB0CAAAAGNvbXBpbGVydAYAAABzb3VyY2V0CAAAAGZpbGVuYW1ldAYAAABzeW1ib2x0BAAAAGxpbmV0AwAAAGVycnQEAAAAZXJyMXQEAAAAZXJyMnQEAAAAY29kZXQFAAAAY29kZTF0BQAAAGNvZGUyKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2Rlb3AucHl0DgAAAF9tYXliZV9jb21waWxlRAAAAHMwAAAAAAIWAQwBFgEIAgwBCQIOAQ4CAwEWAQ8BBAIDARoBDwEEAgMBGgEPAQQCBgEEAR8BYwMAAAADAAAABQAAAEMAAABzEwAAAHQAAHwAAHwBAHwCAHQBAIMEAFMoAQAAAE4oAgAAAHQHAAAAY29tcGlsZXQWAAAAUHlDRl9ET05UX0lNUExZX0RFREVOVCgDAAAAUgwAAABSDQAAAFIOAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2Rlb3AucHl0CAAAAF9jb21waWxlZQAAAHMCAAAAAAFzBwAAADxpbnB1dD50BgAAAHNpbmdsZWMDAAAAAwAAAAUAAABDAAAAcxMAAAB0AAB0AQB8AAB8AQB8AgCDBABTKAEAAABzcwIAAENvbXBpbGUgYSBjb21tYW5kIGFuZCBkZXRlcm1pbmUgd2hldGhlciBpdCBpcyBpbmNvbXBsZXRlLgoKICAgIEFyZ3VtZW50czoKCiAgICBzb3VyY2UgLS0gdGhlIHNvdXJjZSBzdHJpbmc7IG1heSBjb250YWluIFxuIGNoYXJhY3RlcnMKICAgIGZpbGVuYW1lIC0tIG9wdGlvbmFsIGZpbGVuYW1lIGZyb20gd2hpY2ggc291cmNlIHdhcyByZWFkOyBkZWZhdWx0CiAgICAgICAgICAgICAgICAiPGlucHV0PiIKICAgIHN5bWJvbCAtLSBvcHRpb25hbCBncmFtbWFyIHN0YXJ0IHN5bWJvbDsgInNpbmdsZSIgKGRlZmF1bHQpIG9yICJldmFsIgoKICAgIFJldHVybiB2YWx1ZSAvIGV4Y2VwdGlvbnMgcmFpc2VkOgoKICAgIC0gUmV0dXJuIGEgY29kZSBvYmplY3QgaWYgdGhlIGNvbW1hbmQgaXMgY29tcGxldGUgYW5kIHZhbGlkCiAgICAtIFJldHVybiBOb25lIGlmIHRoZSBjb21tYW5kIGlzIGluY29tcGxldGUKICAgIC0gUmFpc2UgU3ludGF4RXJyb3IsIFZhbHVlRXJyb3Igb3IgT3ZlcmZsb3dFcnJvciBpZiB0aGUgY29tbWFuZCBpcyBhCiAgICAgIHN5bnRheCBlcnJvciAoT3ZlcmZsb3dFcnJvciBhbmQgVmFsdWVFcnJvciBjYW4gYmUgcHJvZHVjZWQgYnkKICAgICAgbWFsZm9ybWVkIGxpdGVyYWxzKS4KICAgICgCAAAAUhYAAABSGQAAACgDAAAAUgwAAABSDQAAAFIOAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2Rlb3AucHlSAAAAAGgAAABzAgAAAAASYwAAAAAAAAAAAQAAAEIAAABzIAAAAGUAAFoBAGQAAFoCAGQBAIQAAFoDAGQCAIQAAFoEAFJTKAMAAABz6wAAAEluc3RhbmNlcyBvZiB0aGlzIGNsYXNzIGJlaGF2ZSBtdWNoIGxpa2UgdGhlIGJ1aWx0LWluIGNvbXBpbGUKICAgIGZ1bmN0aW9uLCBidXQgaWYgb25lIGlzIHVzZWQgdG8gY29tcGlsZSB0ZXh0IGNvbnRhaW5pbmcgYSBmdXR1cmUKICAgIHN0YXRlbWVudCwgaXQgInJlbWVtYmVycyIgYW5kIGNvbXBpbGVzIGFsbCBzdWJzZXF1ZW50IHByb2dyYW0gdGV4dHMKICAgIHdpdGggdGhlIHN0YXRlbWVudCBpbiBmb3JjZS5jAQAAAAEAAAACAAAAQwAAAHMNAAAAdAAAfAAAXwEAZAAAUygBAAAATigCAAAAUhgAAAB0BQAAAGZsYWdzKAEAAAB0BAAAAHNlbGYoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVvcC5weXQIAAAAX19pbml0X1+BAAAAcwIAAAAAAWMEAAAABgAAAAYAAABDAAAAc1UAAAB0AAB8AQB8AgB8AwB8AABqAQBkAQCDBQB9BAB4MwB0AgBEXSsAfQUAfAQAagMAfAUAagQAQHIiAHwAAARqAQB8BQBqBABPAl8BAHEiAHEiAFd8BABTKAIAAABOaQEAAAAoBQAAAFIXAAAAUhsAAAB0CQAAAF9mZWF0dXJlc3QIAAAAY29fZmxhZ3N0DQAAAGNvbXBpbGVyX2ZsYWcoBgAAAFIcAAAAUgwAAABSDQAAAFIOAAAAdAYAAABjb2Rlb2J0BwAAAGZlYXR1cmUoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L2NvZGVvcC5weXQIAAAAX19jYWxsX1+EAAAAcwoAAAAAARsBDQEQARkBKAUAAAB0CAAAAF9fbmFtZV9fdAoAAABfX21vZHVsZV9fdAcAAABfX2RvY19fUh0AAABSIwAAACgAAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2Rlb3AucHlSAQAAAHwAAABzBgAAAAYEBgEJA2MAAAAAAAAAAAMAAABCAAAAcyYAAABlAABaAQBkAABaAgBkAQCEAABaAwBkAgBkAwBkBACEAgBaBABSUygFAAAAcygBAABJbnN0YW5jZXMgb2YgdGhpcyBjbGFzcyBoYXZlIF9fY2FsbF9fIG1ldGhvZHMgaWRlbnRpY2FsIGluCiAgICBzaWduYXR1cmUgdG8gY29tcGlsZV9jb21tYW5kOyB0aGUgZGlmZmVyZW5jZSBpcyB0aGF0IGlmIHRoZQogICAgaW5zdGFuY2UgY29tcGlsZXMgcHJvZ3JhbSB0ZXh0IGNvbnRhaW5pbmcgYSBfX2Z1dHVyZV9fIHN0YXRlbWVudCwKICAgIHRoZSBpbnN0YW5jZSAncmVtZW1iZXJzJyBhbmQgY29tcGlsZXMgYWxsIHN1YnNlcXVlbnQgcHJvZ3JhbSB0ZXh0cwogICAgd2l0aCB0aGUgc3RhdGVtZW50IGluIGZvcmNlLmMBAAAAAQAAAAIAAABDAAAAcxAAAAB0AACDAAB8AABfAQBkAABTKAEAAABOKAIAAABSAQAAAFILAAAAKAEAAABSHAAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZW9wLnB5Uh0AAACSAAAAcwIAAAAAAXMHAAAAPGlucHV0PlIaAAAAYwQAAAAEAAAABQAAAEMAAABzFgAAAHQAAHwAAGoBAHwBAHwCAHwDAIMEAFMoAQAAAHO1AgAAQ29tcGlsZSBhIGNvbW1hbmQgYW5kIGRldGVybWluZSB3aGV0aGVyIGl0IGlzIGluY29tcGxldGUuCgogICAgICAgIEFyZ3VtZW50czoKCiAgICAgICAgc291cmNlIC0tIHRoZSBzb3VyY2Ugc3RyaW5nOyBtYXkgY29udGFpbiBcbiBjaGFyYWN0ZXJzCiAgICAgICAgZmlsZW5hbWUgLS0gb3B0aW9uYWwgZmlsZW5hbWUgZnJvbSB3aGljaCBzb3VyY2Ugd2FzIHJlYWQ7CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdCAiPGlucHV0PiIKICAgICAgICBzeW1ib2wgLS0gb3B0aW9uYWwgZ3JhbW1hciBzdGFydCBzeW1ib2w7ICJzaW5nbGUiIChkZWZhdWx0KSBvcgogICAgICAgICAgICAgICAgICAiZXZhbCIKCiAgICAgICAgUmV0dXJuIHZhbHVlIC8gZXhjZXB0aW9ucyByYWlzZWQ6CgogICAgICAgIC0gUmV0dXJuIGEgY29kZSBvYmplY3QgaWYgdGhlIGNvbW1hbmQgaXMgY29tcGxldGUgYW5kIHZhbGlkCiAgICAgICAgLSBSZXR1cm4gTm9uZSBpZiB0aGUgY29tbWFuZCBpcyBpbmNvbXBsZXRlCiAgICAgICAgLSBSYWlzZSBTeW50YXhFcnJvciwgVmFsdWVFcnJvciBvciBPdmVyZmxvd0Vycm9yIGlmIHRoZSBjb21tYW5kIGlzIGEKICAgICAgICAgIHN5bnRheCBlcnJvciAoT3ZlcmZsb3dFcnJvciBhbmQgVmFsdWVFcnJvciBjYW4gYmUgcHJvZHVjZWQgYnkKICAgICAgICAgIG1hbGZvcm1lZCBsaXRlcmFscykuCiAgICAgICAgKAIAAABSFgAAAFILAAAAKAQAAABSHAAAAFIMAAAAUg0AAABSDgAAACgAAAAAKAAAAABzcQAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvY29kZW9wLnB5UiMAAACVAAAAcwIAAAAAEygFAAAAUiQAAABSJQAAAFImAAAAUh0AAABSIwAAACgAAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2Rlb3AucHlSAgAAAIsAAABzBgAAAAYFBgIJAygAAAAAKAAAAAAoDQAAAFImAAAAdAoAAABfX2Z1dHVyZV9fdBEAAABhbGxfZmVhdHVyZV9uYW1lc3QFAAAAZm5hbWV0BwAAAGdldGF0dHJSHgAAAHQHAAAAX19hbGxfX1IYAAAAUhYAAABSGQAAAFIAAAAAUgEAAABSAgAAACgAAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9jb2Rlb3AucHl0CAAAADxtb2R1bGU+OQAAAHMUAAAABgIMAgMBIgIPAgYCCSEJAw8UEw8=