YQ0NCgAAAABKGnxjLBEAAOMAAAAAAAAAAAAAAAAAAAAABQAAAEAAAABzugAAAGQAWgBkAWQCbAFaAmQDZARsA20EWgQBAGQDZAVsBW0GWgYBAGQDZAZsBW0HWgcBAGUCaghyQmQDZAdsCW0KWgoBAEcAZAhkCYQAZAllBoMDWgtlBGoMZQJqDWUOGQBkCpwCZAtkDIQEWg9lBGoQZQRqEWUEahJlBGoTZgRaFGUCahVlBGoQZQRqEWUEahJlBGoTZgQZAFoWZQRqDGUCahdlAmoYZQ4ZABkAZAqcAmQNZA6EBFoZZAJTACkPel9GdW5jdGlvbnMgdGhhdCBleHBvc2UgaW5mb3JtYXRpb24gYWJvdXQgdGVtcGxhdGVzIHRoYXQgbWlnaHQgYmUKaW50ZXJlc3RpbmcgZm9yIGludHJvc3BlY3Rpb24uCukAAAAATukBAAAAKQHaBW5vZGVzKQHaDUNvZGVHZW5lcmF0b3IpAdoFRnJhbWUpAdoLRW52aXJvbm1lbnRjAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAc0wAAABlAFoBZABaAmQBWgNkAmQDZAScAocAZgFkBWQGhAxaBGUFZANkB5wCZAhkCYQEWgZlB2QDZAqcAocAZgFkC2QMhAxaCIcABABaCVMAKQ3aFVRyYWNraW5nQ29kZUdlbmVyYXRvcnouV2UgYWJ1c2UgdGhlIGNvZGUgZ2VuZXJhdG9yIGZvciBpbnRyb3NwZWN0aW9uLnIGAAAATikC2gtlbnZpcm9ubWVudNoGcmV0dXJuYwIAAAAAAAAAAAAAAAIAAAAFAAAAAwAAAHMcAAAAdACDAKABfAFkAWQBoQMBAHQCgwB8AF8DZABTACkCTnoPPGludHJvc3BlY3Rpb24+KQTaBXN1cGVy2ghfX2luaXRfX9oDc2V02hZ1bmRlY2xhcmVkX2lkZW50aWZpZXJzKQLaBHNlbGZyCAAAAKkB2glfX2NsYXNzX1+pAPpIL2hvbWUvaG5pL1RvcG1ldGFsU2UtRFBTL3ZlbnYvbGliL3B5dGhvbjMuOS9zaXRlLXBhY2thZ2VzL2ppbmphMi9tZXRhLnB5cgsAAAARAAAAcwQAAAAAARABeh5UcmFja2luZ0NvZGVHZW5lcmF0b3IuX19pbml0X18pAtoBeHIJAAAAYwIAAAAAAAAAAAAAAAIAAAABAAAAQwAAAHMEAAAAZAFTACkCegxEb24ndCB3cml0ZS5OchEAAAApAnIOAAAAchMAAAByEQAAAHIRAAAAchIAAADaBXdyaXRlFQAAAHMCAAAAAAF6G1RyYWNraW5nQ29kZUdlbmVyYXRvci53cml0ZSkC2gVmcmFtZXIJAAAAYwIAAAAAAAAAAAAAAAUAAAAEAAAAAwAAAHNKAAAAdACDAKABfAGhAQEAfAFqAmoDoAShAEQAXSxcAn0CXAJ9A30EfANkAWsCchh8BHwAagVqBnYBchh8AGoHoAh8BKEBAQBxGGQCUwApA3okUmVtZW1iZXIgYWxsIHVuZGVjbGFyZWQgaWRlbnRpZmllcnMu2gdyZXNvbHZlTikJcgoAAADaC2VudGVyX2ZyYW1l2gdzeW1ib2xz2gVsb2Fkc9oFaXRlbXNyCAAAANoHZ2xvYmFsc3INAAAA2gNhZGQpBXIOAAAAchUAAADaAV/aBmFjdGlvbtoFcGFyYW1yDwAAAHIRAAAAchIAAAByFwAAABgAAABzCAAAAAACDAIYARQBeiFUcmFja2luZ0NvZGVHZW5lcmF0b3IuZW50ZXJfZnJhbWUpCtoIX19uYW1lX1/aCl9fbW9kdWxlX1/aDF9fcXVhbG5hbWVfX9oHX19kb2NfX3ILAAAA2gNzdHJyFAAAAHIFAAAAchcAAADaDV9fY2xhc3NjZWxsX19yEQAAAHIRAAAAcg8AAAByEgAAAHIHAAAADgAAAHMIAAAACAEEAhQEEANyBwAAACkC2gNhc3RyCQAAAGMBAAAAAAAAAAAAAAACAAAAAwAAAEMAAABzGgAAAHQAfABqAYMBfQF8AaACfAChAQEAfAFqA1MAKQFhFgMAAFJldHVybnMgYSBzZXQgb2YgYWxsIHZhcmlhYmxlcyBpbiB0aGUgQVNUIHRoYXQgd2lsbCBiZSBsb29rZWQgdXAgZnJvbQogICAgdGhlIGNvbnRleHQgYXQgcnVudGltZS4gIEJlY2F1c2UgYXQgY29tcGlsZSB0aW1lIGl0J3Mgbm90IGtub3duIHdoaWNoCiAgICB2YXJpYWJsZXMgd2lsbCBiZSB1c2VkIGRlcGVuZGluZyBvbiB0aGUgcGF0aCB0aGUgZXhlY3V0aW9uIHRha2VzIGF0CiAgICBydW50aW1lLCBhbGwgdmFyaWFibGVzIGFyZSByZXR1cm5lZC4KCiAgICA+Pj4gZnJvbSBqaW5qYTIgaW1wb3J0IEVudmlyb25tZW50LCBtZXRhCiAgICA+Pj4gZW52ID0gRW52aXJvbm1lbnQoKQogICAgPj4+IGFzdCA9IGVudi5wYXJzZSgneyUgc2V0IGZvbyA9IDQyICV9e3sgYmFyICsgZm9vIH19JykKICAgID4+PiBtZXRhLmZpbmRfdW5kZWNsYXJlZF92YXJpYWJsZXMoYXN0KSA9PSB7J2Jhcid9CiAgICBUcnVlCgogICAgLi4gYWRtb25pdGlvbjo6IEltcGxlbWVudGF0aW9uCgogICAgICAgSW50ZXJuYWxseSB0aGUgY29kZSBnZW5lcmF0b3IgaXMgdXNlZCBmb3IgZmluZGluZyB1bmRlY2xhcmVkIHZhcmlhYmxlcy4KICAgICAgIFRoaXMgaXMgZ29vZCB0byBrbm93IGJlY2F1c2UgdGhlIGNvZGUgZ2VuZXJhdG9yIG1pZ2h0IHJhaXNlIGEKICAgICAgIDpleGM6YFRlbXBsYXRlQXNzZXJ0aW9uRXJyb3JgIGR1cmluZyBjb21waWxhdGlvbiBhbmQgYXMgYSBtYXR0ZXIgb2YKICAgICAgIGZhY3QgdGhpcyBmdW5jdGlvbiBjYW4gY3VycmVudGx5IHJhaXNlIHRoYXQgZXhjZXB0aW9uIGFzIHdlbGwuCiAgICApBHIHAAAAcggAAADaBXZpc2l0cg0AAAApAnImAAAAWgdjb2RlZ2VuchEAAAByEQAAAHISAAAA2hlmaW5kX3VuZGVjbGFyZWRfdmFyaWFibGVzIQAAAHMGAAAAABMKAQoBcigAAABjAQAAAAAAAAAAAAAABAAAAAUAAABjAAAAc8wAAAB8AKAAdAGhAUQAXbx9AXwBagJ9AnQDfAJ0BGoFgwJzcHQDfAJ0BGoGdARqB2YCgwJyaHwCaghEAF0sfQN0A3wDdARqBYMCcl50A3wDagl0CoMCcmR8A2oJVgABAHE4ZAFWAAEAcThxCmQBVgABAHEKdAN8AmoJdAqDAnKGfAJqCVYAAQBxCnQDfAF0BGoLgwJywHQDfAJqCXQMdA1mAoMCcsB8AmoJRABdFH0DdAN8A3QKgwJyqHwDVgABAHGocQpkAVYAAQBxCmQBUwApAmFiAgAARmluZHMgYWxsIHRoZSByZWZlcmVuY2VkIHRlbXBsYXRlcyBmcm9tIHRoZSBBU1QuICBUaGlzIHdpbGwgcmV0dXJuIGFuCiAgICBpdGVyYXRvciBvdmVyIGFsbCB0aGUgaGFyZGNvZGVkIHRlbXBsYXRlIGV4dGVuc2lvbnMsIGluY2x1c2lvbnMgYW5kCiAgICBpbXBvcnRzLiAgSWYgZHluYW1pYyBpbmhlcml0YW5jZSBvciBpbmNsdXNpb24gaXMgdXNlZCwgYE5vbmVgIHdpbGwgYmUKICAgIHlpZWxkZWQuCgogICAgPj4+IGZyb20gamluamEyIGltcG9ydCBFbnZpcm9ubWVudCwgbWV0YQogICAgPj4+IGVudiA9IEVudmlyb25tZW50KCkKICAgID4+PiBhc3QgPSBlbnYucGFyc2UoJ3slIGV4dGVuZHMgImxheW91dC5odG1sIiAlfXslIGluY2x1ZGUgaGVscGVyICV9JykKICAgID4+PiBsaXN0KG1ldGEuZmluZF9yZWZlcmVuY2VkX3RlbXBsYXRlcyhhc3QpKQogICAgWydsYXlvdXQuaHRtbCcsIE5vbmVdCgogICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VmdWwgZm9yIGRlcGVuZGVuY3kgdHJhY2tpbmcuICBGb3IgZXhhbXBsZSBpZiB5b3Ugd2FudAogICAgdG8gcmVidWlsZCBwYXJ0cyBvZiB0aGUgd2Vic2l0ZSBhZnRlciBhIGxheW91dCB0ZW1wbGF0ZSBoYXMgY2hhbmdlZC4KICAgIE4pDloIZmluZF9hbGzaCl9yZWZfdHlwZXPaCHRlbXBsYXRl2gppc2luc3RhbmNlcgMAAABaBUNvbnN02gVUdXBsZdoETGlzdHIaAAAA2gV2YWx1ZXIkAAAA2gdJbmNsdWRl2gV0dXBsZdoEbGlzdCkEciYAAADaBG5vZGVyKgAAAFoNdGVtcGxhdGVfbmFtZXIRAAAAchEAAAByEgAAANoZZmluZF9yZWZlcmVuY2VkX3RlbXBsYXRlcz0AAABzKAAAAAARDgEGAgwCEgEKAwwBDAEKAwoDBgECAgwBCgQOAQr/BAMKAQoBCgNyMwAAACkaciMAAADaBnR5cGluZ9oBdNoAcgMAAADaCGNvbXBpbGVycgQAAAByBQAAANoNVFlQRV9DSEVDS0lOR3IIAAAAcgYAAAByBwAAANoIVGVtcGxhdGXaA1NldHIkAAAAcigAAABaB0V4dGVuZHNaCkZyb21JbXBvcnTaBkltcG9ydHIvAAAAcikAAADaBVVuaW9uWghfUmVmVHlwZdoISXRlcmF0b3LaCE9wdGlvbmFscjMAAAByEQAAAHIRAAAAchEAAAByEgAAANoIPG1vZHVsZT4BAAAAcxYAAAAEAwgCDAEMAQwCBgEMAxATGBgUARoD