A/MNCmL5IVRjAAAAAAAAAAAGAAAAQAAAAHPwAAAAZAAAWgAAZBEAWgEAZQEAWgIAZQEAZBIAF1oDAGQJAIQAAFoEAGQKAIQAAFoFAGQLAGQMAIQBAFoGAGQLAGQNAIQBAFoHAHkcAGQOAGQPAGwIAFoIAGUHAFoJAGUFAFoKAFduHQAEZQsAawoAcoEAAQEBZQYAWgkAZQQAWgoAbgEAWHhVAGUBAERdTQBaDAB5FwBlCgBlDACDAQBlDQCDAABlDAA8V3GJAARlDgBrCgBy1QABAQFkDgBkDwBsDwBaDwBlDwBqEABkEABlDACDAgABcYkAWHGJAFdbAQBbDABbCgBbBgBbBwBbBQBkDwBTKBMAAABzcAcAAGhhc2hsaWIgbW9kdWxlIC0gQSBjb21tb24gaW50ZXJmYWNlIHRvIG1hbnkgaGFzaCBmdW5jdGlvbnMuCgpuZXcobmFtZSwgc3RyaW5nPScnKSAtIHJldHVybnMgYSBuZXcgaGFzaCBvYmplY3QgaW1wbGVtZW50aW5nIHRoZQogICAgICAgICAgICAgICAgICAgICAgIGdpdmVuIGhhc2ggZnVuY3Rpb247IGluaXRpYWxpemluZyB0aGUgaGFzaAogICAgICAgICAgICAgICAgICAgICAgIHVzaW5nIHRoZSBnaXZlbiBzdHJpbmcgZGF0YS4KCk5hbWVkIGNvbnN0cnVjdG9yIGZ1bmN0aW9ucyBhcmUgYWxzbyBhdmFpbGFibGUsIHRoZXNlIGFyZSBtdWNoIGZhc3Rlcgp0aGFuIHVzaW5nIG5ldygpOgoKbWQ1KCksIHNoYTEoKSwgc2hhMjI0KCksIHNoYTI1NigpLCBzaGEzODQoKSwgYW5kIHNoYTUxMigpCgpNb3JlIGFsZ29yaXRobXMgbWF5IGJlIGF2YWlsYWJsZSBvbiB5b3VyIHBsYXRmb3JtIGJ1dCB0aGUgYWJvdmUgYXJlCmd1YXJhbnRlZWQgdG8gZXhpc3QuCgpOT1RFOiBJZiB5b3Ugd2FudCB0aGUgYWRsZXIzMiBvciBjcmMzMiBoYXNoIGZ1bmN0aW9ucyB0aGV5IGFyZSBhdmFpbGFibGUgaW4KdGhlIHpsaWIgbW9kdWxlLgoKQ2hvb3NlIHlvdXIgaGFzaCBmdW5jdGlvbiB3aXNlbHkuICBTb21lIGhhdmUga25vd24gY29sbGlzaW9uIHdlYWtuZXNzZXMuCnNoYTM4NCBhbmQgc2hhNTEyIHdpbGwgYmUgc2xvdyBvbiAzMiBiaXQgcGxhdGZvcm1zLgoKSGFzaCBvYmplY3RzIGhhdmUgdGhlc2UgbWV0aG9kczoKIC0gdXBkYXRlKGFyZyk6IFVwZGF0ZSB0aGUgaGFzaCBvYmplY3Qgd2l0aCB0aGUgc3RyaW5nIGFyZy4gUmVwZWF0ZWQgY2FsbHMKICAgICAgICAgICAgICAgIGFyZSBlcXVpdmFsZW50IHRvIGEgc2luZ2xlIGNhbGwgd2l0aCB0aGUgY29uY2F0ZW5hdGlvbiBvZiBhbGwKICAgICAgICAgICAgICAgIHRoZSBhcmd1bWVudHMuCiAtIGRpZ2VzdCgpOiAgICBSZXR1cm4gdGhlIGRpZ2VzdCBvZiB0aGUgc3RyaW5ncyBwYXNzZWQgdG8gdGhlIHVwZGF0ZSgpIG1ldGhvZAogICAgICAgICAgICAgICAgc28gZmFyLiBUaGlzIG1heSBjb250YWluIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLCBpbmNsdWRpbmcKICAgICAgICAgICAgICAgIE5VTCBieXRlcy4KIC0gaGV4ZGlnZXN0KCk6IExpa2UgZGlnZXN0KCkgZXhjZXB0IHRoZSBkaWdlc3QgaXMgcmV0dXJuZWQgYXMgYSBzdHJpbmcgb2YKICAgICAgICAgICAgICAgIGRvdWJsZSBsZW5ndGgsIGNvbnRhaW5pbmcgb25seSBoZXhhZGVjaW1hbCBkaWdpdHMuCiAtIGNvcHkoKTogICAgICBSZXR1cm4gYSBjb3B5IChjbG9uZSkgb2YgdGhlIGhhc2ggb2JqZWN0LiBUaGlzIGNhbiBiZSB1c2VkIHRvCiAgICAgICAgICAgICAgICBlZmZpY2llbnRseSBjb21wdXRlIHRoZSBkaWdlc3RzIG9mIHN0cmluZ3MgdGhhdCBzaGFyZSBhIGNvbW1vbgogICAgICAgICAgICAgICAgaW5pdGlhbCBzdWJzdHJpbmcuCgpGb3IgZXhhbXBsZSwgdG8gb2J0YWluIHRoZSBkaWdlc3Qgb2YgdGhlIHN0cmluZyAnTm9ib2R5IGluc3BlY3RzIHRoZQpzcGFtbWlzaCByZXBldGl0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bmFtZSwgc3RyaW5nPScnKSAtIFJldHVybiBhIG5ldyBoYXNoaW5nIG9iamVjdCB1c2luZyB0aGUgbmFtZWQgYWxnb3JpdGhtOwogICAgb3B0aW9uYWxseSBpbml0aWFsaXplZCB3aXRoIGEgc3RyaW5nLgogICAgKAEAAABSGgAAACgCAAAAUhgAAAB0BgAAAHN0cmluZygAAAAAKAAAAABzcgAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvaGFzaGxpYi5weXQIAAAAX19weV9uZXdqAAAAcwIAAAAABGMCAAAAAgAAAAUAAABDAAAAczkAAAB5FAB0AABqAQB8AAB8AQCDAgBTV24eAAR0AgBrCgByNAABAQF0AwB8AACDAQB8AQCDAQBTWGQBAFMoAgAAAHN8AAAAbmV3KG5hbWUsIHN0cmluZz0nJykgLSBSZXR1cm4gYSBuZXcgaGFzaGluZyBvYmplY3QgdXNpbmcgdGhlIG5hbWVkIGFsZ29yaXRobTsKICAgIG9wdGlvbmFsbHkgaW5pdGlhbGl6ZWQgd2l0aCBhIHN0cmluZy4KICAgIE4oBAAAAFIdAAAAUgYAAABSFwAAAFIaAAAAKAIAAABSGAAAAFIiAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9oYXNobGliLnB5dAoAAABfX2hhc2hfbmV3cQAAAHMIAAAAAAQDARQBDQVp/////05zHwAAAGNvZGUgZm9yIGhhc2ggJXMgd2FzIG5vdCBmb3VuZC4oBgAAAHMDAAAAbWQ1cwQAAABzaGExcwYAAABzaGEyMjRzBgAAAHNoYTI1NnMGAAAAc2hhMzg0cwYAAABzaGE1MTIoAgAAAHMDAAAAbmV3cwoAAABhbGdvcml0aG1zKBEAAAB0BwAAAF9fZG9jX190EgAAAF9fYWx3YXlzX3N1cHBvcnRlZFIHAAAAdAcAAABfX2FsbF9fUhoAAABSIAAAAFIjAAAAUiQAAABSHQAAAFIGAAAAdAoAAABfX2dldF9oYXNoUhYAAAB0CwAAAF9fZnVuY19uYW1ldAcAAABnbG9iYWxzUhcAAAB0BwAAAGxvZ2dpbmd0CQAAAGV4Y2VwdGlvbigAAAAAKAAAAAAoAAAAAHNyAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy9oYXNobGliLnB5dAgAAAA8bW9kdWxlPjcAAABzLAAAAAYEBgIGAgoDCRwJDAwHDA4DAQwBBgEKAQ0BBgEKAg0DAwEXAQ0BDAEYAwkB