A/MNCmL5IVRjAAAAAAAAAAADAAAAQAAAAHNeAAAAZAAAWgAAZAEAZwEAWgEAZAIAZQIAZgEAZAMAhAAAgwAAWVoDAGQEAIQAAFoEAGQBAGUDAGYBAGQFAIQAAIMAAFlaBQBkBgBkBwBsBgBtBwBaBwBtCABaCAABZAgAUygJAAAAc/gMAABUaHJlYWQtbG9jYWwgb2JqZWN0cy4KCihOb3RlIHRoYXQgdGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBQeXRob24gdmVyc2lvbiBvZiB0aGUgdGhyZWFkaW5nLmxvY2FsCiBjbGFzcy4gIERlcGVuZGluZyBvbiB0aGUgdmVyc2lvbiBvZiBQeXRob24geW91J3JlIHVzaW5nLCB0aGVyZSBtYXkgYmUgYQogZmFzdGVyIG9uZSBhdmFpbGFibGUuICBZb3Ugc2hvdWxkIGFsd2F5cyBpbXBvcnQgdGhlIGBsb2NhbGAgY2xhc3MgZnJvbQogYHRocmVhZGluZ2AuKQoKVGhyZWFkLWxvY2FsIG9iamVjdHMgc3VwcG9ydCB0aGUgbWFuYWdlbWVudCBvZiB0aHJlYWQtbG9jYWwgZGF0YS4KSWYgeW91IGhhdmUgZGF0YSB0aGF0IHlvdSB3YW50IHRvIGJlIGxvY2FsIHRvIGEgdGhyZWFkLCBzaW1wbHkgY3JlYXRlCmEgdGhyZWFkLWxvY2FsIG9iamVjdCBhbmQgdXNlIGl0cyBhdHRyaWJ1dGVzOgoKICA+Pj4gbXlkYXRhID0gbG9jYWwoKQogID4+PiBteWRhdGEubnVtYmVyID0gNDIKICA+Pj4gbXlkYXRhLm51bWJlcgogIDQyCgpZb3UgY2FuIGFsc28gYWNjZXNzIHRoZSBsb2NhbC1vYmplY3QncyBkaWN0aW9uYXJ5OgoKICA+Pj4gbXlkYXRhLl9fZGljdF9fCiAgeydudW1iZXInOiA0Mn0KICA+Pj4gbXlkYXRhLl9fZGljdF9fLnNldGRlZmF1bHQoJ3dpZGdldHMnLCBbXSkKICBbXQogID4+PiBteWRhdGEud2lkZ2V0cwogIFtdCgpXaGF0J3MgaW1wb3J0YW50IGFib3V0IHRocmVhZC1sb2NhbCBvYmplY3RzIGlzIHRoYXQgdGhlaXIgZGF0YSBhcmUKbG9jYWwgdG8gYSB0aHJlYWQuIElmIHdlIGFjY2VzcyB0aGUgZGF0YSBpbiBhIGRpZmZlcmVudCB0aHJlYWQ6CgogID4+PiBsb2cgPSBbXQogID4+PiBkZWYgZigpOgogIC4uLiAgICAgaXRlbXMgPSBteWRhdGEuX19kaWN0X18uaXRlbXMoKQogIC4uLiAgICAgaXRlbXMuc29ydCgpCiAgLi4uICAgICBsb2cuYXBwZW5kKGl0ZW1zKQogIC4uLiAgICAgbXlkYXRhLm51bWJlciA9IDExCiAgLi4uICAgICBsb2cuYXBwZW5kKG15ZGF0YS5udW1iZXIpCgogID4+PiBpbXBvcnQgdGhyZWFkaW5nCiAgPj4+IHRocmVhZCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PWYpCiAgPj4+IHRocmVhZC5zdGFydCgpCiAgPj4+IHRocmVhZC5qb2luKCkKICA+Pj4gbG9nCiAgW1tdLCAxMV0KCndlIGdldCBkaWZmZXJlbnQgZGF0YS4gIEZ1cnRoZXJtb3JlLCBjaGFuZ2VzIG1hZGUgaW4gdGhlIG90aGVyIHRocmVhZApkb24ndCBhZmZlY3QgZGF0YSBzZWVuIGluIHRoaXMgdGhyZWFkOgoKICA+Pj4gbXlkYXRhLm51bWJlcgogIDQyCgpPZiBjb3Vyc2UsIHZhbHVlcyB5b3UgZ2V0IGZyb20gYSBsb2NhbCBvYmplY3QsIGluY2x1ZGluZyBhIF9fZGljdF9fCmF0dHJpYnV0ZSwgYXJlIGZvciB3aGF0ZXZlciB0aHJlYWQgd2FzIGN1cnJlbnQgYXQgdGhlIHRpbWUgdGhlCmF0dHJpYnV0ZSB3YXMgcmVhZC4gIEZvciB0aGF0IHJlYXNvbiwgeW91IGdlbmVyYWxseSBkb24ndCB3YW50IHRvIHNhdmUKdGhlc2UgdmFsdWVzIGFjcm9zcyB0aHJlYWRzLCBhcyB0aGV5IGFwcGx5IG9ubHkgdG8gdGhlIHRocmVhZCB0aGV5CmNhbWUgZnJvbS4KCllvdSBjYW4gY3JlYXRlIGN1c3RvbSBsb2NhbCBvYmplY3RzIGJ5IHN1YmNsYXNzaW5nIHRoZSBsb2NhbCBjbGFzczoKCiAgPj4+IGNsYXNzIE15TG9jYWwobG9jYWwpOgogIC4uLiAgICAgbnVtYmVyID0gMgogIC4uLiAgICAgaW5pdGlhbGl6ZWQgPSBGYWxzZQogIC4uLiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3cpOgogIC4uLiAgICAgICAgIGlmIHNlbGYuaW5pdGlhbGl6ZWQ6CiAgLi4uICAgICAgICAgICAgIHJhaXNlIFN5c3RlbUVycm9yKCdfX2luaXRfXyBjYWxsZWQgdG9vIG1hbnkgdGltZXMnKQogIC4uLiAgICAgICAgIHNlbGYuaW5pdGlhbGl6ZWQgPSBUcnVlCiAgLi4uICAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUoa3cpCiAgLi4uICAgICBkZWYgc3F1YXJlZChzZWxmKToKICAuLi4gICAgICAgICByZXR1cm4gc2VsZi5udW1iZXIgKiogMgoKVGhpcyBjYW4gYmUgdXNlZnVsIHRvIHN1cHBvcnQgZGVmYXVsdCB2YWx1ZXMsIG1ldGhvZHMgYW5kCmluaXRpYWxpemF0aW9uLiAgTm90ZSB0aGF0IGlmIHlvdSBkZWZpbmUgYW4gX19pbml0X18gbWV0aG9kLCBpdCB3aWxsIGJlCmNhbGxlZCBlYWNoIHRpbWUgdGhlIGxvY2FsIG9iamVjdCBpcyB1c2VkIGluIGEgc2VwYXJhdGUgdGhyZWFkLiAgVGhpcwppcyBuZWNlc3NhcnkgdG8gaW5pdGlhbGl6ZSBlYWNoIHRocmVhZCdzIGRpY3Rpb25hcnkuCgpOb3cgaWYgd2UgY3JlYXRlIGEgbG9jYWwgb2JqZWN0OgoKICA+Pj4gbXlkYXRhID0gTXlMb2NhbChjb2xvcj0ncmVkJykKCk5vdyB3ZSBoYXZlIGEgZGVmYXVsdCBudW1iZXI6CgogID4+PiBteWRhdGEubnVtYmVyCiAgMgoKYW4gaW5pdGlhbCBjb2xvcjoKCiAgPj4+IG15ZGF0YS5jb2xvcgogICdyZWQnCiAgPj4+IGRlbCBteWRhdGEuY29sb3IKCkFuZCBhIG1ldGhvZCB0aGF0IG9wZXJhdGVzIG9uIHRoZSBkYXRhOgoKICA+Pj4gbXlkYXRhLnNxdWFyZWQoKQogIDQKCkFzIGJlZm9yZSwgd2UgY2FuIGFjY2VzcyB0aGUgZGF0YSBpbiBhIHNlcGFyYXRlIHRocmVhZDoKCiAgPj4+IGxvZyA9IFtdCiAgPj4+IHRocmVhZCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PWYpCiAgPj4+IHRocmVhZC5zdGFydCgpCiAgPj4+IHRocmVhZC5qb2luKCkKICA+Pj4gbG9nCiAgW1soJ2NvbG9yJywgJ3JlZCcpLCAoJ2luaXRpYWxpemVkJywgVHJ1ZSldLCAxMV0KCndpdGhvdXQgYWZmZWN0aW5nIHRoaXMgdGhyZWFkJ3MgZGF0YToKCiAgPj4+IG15ZGF0YS5udW1iZXIKICAyCiAgPj4+IG15ZGF0YS5jb2xvcgogIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAuLi4KICBBdHRyaWJ1dGVFcnJvcjogJ015TG9jYWwnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdjb2xvcicKCk5vdGUgdGhhdCBzdWJjbGFzc2VzIGNhbiBkZWZpbmUgc2xvdHMsIGJ1dCB0aGV5IGFyZSBub3QgdGhyZWFkCmxvY2FsLiBUaGV5IGFyZSBzaGFyZWQgYWNyb3NzIHRocmVhZHM6CgogID4+PiBjbGFzcyBNeUxvY2FsKGxvY2FsKToKICAuLi4gICAgIF9fc2xvdHNfXyA9ICdudW1iZXInCgogID4+PiBteWRhdGEgPSBNeUxvY2FsKCkKICA+Pj4gbXlkYXRhLm51bWJlciA9IDQyCiAgPj4+IG15ZGF0YS5jb2xvciA9ICdyZWQnCgpTbywgdGhlIHNlcGFyYXRlIHRocmVhZDoKCiAgPj4+IHRocmVhZCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PWYpCiAgPj4+IHRocmVhZC5zdGFydCgpCiAgPj4+IHRocmVhZC5qb2luKCkKCmFmZmVjdHMgd2hhdCB3ZSBzZWU6CgogID4+PiBteWRhdGEubnVtYmVyCiAgMTEKCj4+PiBkZWwgbXlkYXRhCnQFAAAAbG9jYWx0CgAAAF9sb2NhbGJhc2VjAAAAAAAAAAADAAAAQgAAAHMXAAAAZQAAWgEAZAQAWgIAZAMAhAAAWgMAUlMoBQAAAHQLAAAAX2xvY2FsX19rZXl0DAAAAF9sb2NhbF9fYXJnc3QMAAAAX2xvY2FsX19sb2NrYwEAAAAGAAAABQAAAE8AAABzwAAAAHQAAGoBAHwAAIMBAH0DAGQBAGQCAHQCAHQDAHwDAIMBAIMBABdmAgB9BAB0AABqBAB8AwBkAQB8BACDAwABdAAAagQAfAMAZAMAfAEAfAIAZgIAgwMAAXQAAGoEAHwDAGQEAHQFAIMAAIMDAAF8AQBzeQB8AgBymgB8AABqBgB0AABqBgBrCABymgB0BwBkBQCDAQCCAQBuAAB0AABqCAB8AwBkBgCDAgB9BQB8BQB0CQCDAABqCgB8BAA8fAMAUygHAAAATlICAAAAcw0AAAB0aHJlYWQubG9jYWwuUgMAAABSBAAAAHMqAAAASW5pdGlhbGl6YXRpb24gYXJndW1lbnRzIGFyZSBub3Qgc3VwcG9ydGVkdAgAAABfX2RpY3RfXygLAAAAdAYAAABvYmplY3R0BwAAAF9fbmV3X190AwAAAHN0cnQCAAAAaWR0CwAAAF9fc2V0YXR0cl9fdAUAAABSTG9ja3QIAAAAX19pbml0X190CQAAAFR5cGVFcnJvcnQQAAAAX19nZXRhdHRyaWJ1dGVfX3QOAAAAY3VycmVudF90aHJlYWRSBQAAACgGAAAAdAMAAABjbHN0BAAAAGFyZ3N0AgAAAGt3dAQAAABzZWxmdAMAAABrZXl0BAAAAGRpY3QoAAAAACgAAAAAc3sAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L190aHJlYWRpbmdfbG9jYWwucHlSBwAAAJcAAABzFAAAAAABDwEcARMBGQEWAh4BDwUSARACKAMAAABzCwAAAF9sb2NhbF9fa2V5cwwAAABfbG9jYWxfX2FyZ3NzDAAAAF9sb2NhbF9fbG9jaygEAAAAdAgAAABfX25hbWVfX3QKAAAAX19tb2R1bGVfX3QJAAAAX19zbG90c19fUgcAAAAoAAAAACgAAAAAKAAAAABzewAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvX3RocmVhZGlu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