A/MNCi5c/FVjAAAAAAAAAAAFAAAAQAAAAHN8AAAAZAAAWgAAeRQAZAEAZAIAbAEAbQIAWgIAAVduFwAEZQMAawoAcjMAAQEBZAMAWgIAbgEAWGQEAGcBAFoEAGQFAIQAAFoFAGQEAGQKAGQGAIQAAIMAAFlaBgBkBwCEAABaBwBlCABkCABrAgByeABlBwCDAAABbgAAZAkAUygLAAAAcwoFAABGaWxlLWxpa2Ugb2JqZWN0cyB0aGF0IHJlYWQgZnJvbSBvciB3cml0ZSB0byBhIHN0cmluZyBidWZmZXIuCgpUaGlzIGltcGxlbWVudHMgKG5lYXJseSkgYWxsIHN0ZGlvIG1ldGhvZHMuCgpmID0gU3RyaW5nSU8oKSAgICAgICMgcmVhZHkgZm9yIHdyaXRpbmcKZiA9IFN0cmluZ0lPKGJ1ZikgICAjIHJlYWR5IGZvciByZWFkaW5nCmYuY2xvc2UoKSAgICAgICAgICAgIyBleHBsaWNpdGx5IHJlbGVhc2UgcmVzb3VyY2VzIGhlbGQKZmxhZyA9IGYuaXNhdHR5KCkgICAjIGFsd2F5cyBmYWxzZQpwb3MgPSBmLnRlbGwoKSAgICAgICMgZ2V0IGN1cnJlbnQgcG9zaXRpb24KZi5zZWVrKHBvcykgICAgICAgICAjIHNldCBjdXJyZW50IHBvc2l0aW9uCmYuc2Vlayhwb3MsIG1vZGUpICAgIyBtb2RlIDA6IGFic29sdXRlOyAxOiByZWxhdGl2ZTsgMjogcmVsYXRpdmUgdG8gRU9GCmJ1ZiA9IGYucmVhZCgpICAgICAgIyByZWFkIHVudGlsIEVPRgpidWYgPSBmLnJlYWQobikgICAgICMgcmVhZCB1cCB0byBuIGJ5dGVzCmJ1ZiA9IGYucmVhZGxpbmUoKSAgIyByZWFkIHVudGlsIGVuZCBvZiBsaW5lICgnXG4nKSBvciBFT0YKbGlzdCA9IGYucmVhZGxpbmVzKCkjIGxpc3Qgb2YgZi5yZWFkbGluZSgpIHJlc3VsdHMgdW50aWwgRU9GCmYudHJ1bmNhdGUoW3NpemVdKSAgIyB0cnVuY2F0ZSBmaWxlIGF0IHRvIGF0IG1vc3Qgc2l6ZSAoZGVmYXVsdDogY3VycmVudCBwb3MpCmYud3JpdGUoYnVmKSAgICAgICAgIyB3cml0ZSBhdCBjdXJyZW50IHBvc2l0aW9uCmYud3JpdGVsaW5lcyhsaXN0KSAgIyBmb3IgbGluZSBpbiBsaXN0OiBmLndyaXRlKGxpbmUpCmYuZ2V0dmFsdWUoKSAgICAgICAgIyByZXR1cm4gd2hvbGUgZmlsZSdzIGNvbnRlbnRzIGFzIGEgc3RyaW5nCgpOb3RlczoKLSBVc2luZyBhIHJlYWwgZmlsZSBpcyBvZnRlbiBmYXN0ZXIgKGJ1dCBsZXNzIGNvbnZlbmllbnQpLgotIFRoZXJlJ3MgYWxzbyBhIG11Y2ggZmFzdGVyIGltcGxlbWVudGF0aW9uIGluIEMsIGNhbGxlZCBjU3RyaW5nSU8sIGJ1dAogIGl0J3Mgbm90IHN1YmNsYXNzYWJsZS4KLSBmaWxlbm8oKSBpcyBsZWZ0IHVuaW1wbGVtZW50ZWQgc28gdGhhdCBjb2RlIHdoaWNoIHVzZXMgaXQgdHJpZ2dlcnMKICBhbiBleGNlcHRpb24gZWFybHkuCi0gU2Vla2luZyBmYXIgYmV5b25kIEVPRiBhbmQgdGhlbiB3cml0aW5nIHdpbGwgaW5zZXJ0IHJlYWwgbnVsbAogIGJ5dGVzIHRoYXQgb2NjdXB5IHNwYWNlIGluIHRoZSBidWZmZXIuCi0gVGhlcmUncyBhIHNpbXBsZSB0ZXN0IHNldCAoc2VlIGVuZCBvZiB0aGlzIGZpbGUpLgpp/////ygBAAAAdAYAAABFSU5WQUxpFgAAAHQIAAAAU3RyaW5nSU9jAQAAAAEAAAACAAAAQwAAAHMWAAAAfAAAchIAdAAAZAEAggIAbgAAZAAAUygCAAAATnMcAAAASS9PIG9wZXJhdGlvbiBvbiBjbG9zZWQgZmlsZSgBAAAAdAoAAABWYWx1ZUVycm9yKAEAAAB0BgAAAGNsb3NlZCgAAAAAKAAAAABzTwAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvU3RyaW5nSU8ucHl0EgAAAF9jb21wbGFpbl9pZmNsb3NlZCYAAABzBAAAAAABBgFjAAAAAAAAAAACAAAAQgAAAHOnAAAAZQAAWgEAZAAAWgIAZAEAZAIAhAEAWgMAZAMAhAAAWgQAZAQAhAAAWgUAZAUAhAAAWgYAZAYAhAAAWgcAZAcAZAgAhAEAWggAZAkAhAAAWgkAZAoAZAsAhAEAWgoAZBMAZAwAhAEAWgwAZAcAZA0AhAEAWg0AZBMAZA4AhAEAWg4AZA8AhAAAWg8AZBAAhAAAWhAAZBEAhAAAWhEAZBIAhAAAWhIAUlMoFAAAAHP0AQAAY2xhc3MgU3RyaW5nSU8oW2J1ZmZlcl0pCgogICAgV2hlbiBhIFN0cmluZ0lPIG9iamVjdCBpcyBjcmVhdGVkLCBpdCBjYW4gYmUgaW5pdGlhbGl6ZWQgdG8gYW4gZXhpc3RpbmcKICAgIHN0cmluZyBieSBwYXNzaW5nIHRoZSBzdHJpbmcgdG8gdGhlIGNvbnN0cnVjdG9yLiBJZiBubyBzdHJpbmcgaXMgZ2l2ZW4sCiAgICB0aGUgU3RyaW5nSU8gd2lsbCBzdGFydCBlbXB0eS4KCiAgICBUaGUgU3RyaW5nSU8gb2JqZWN0IGNhbiBhY2NlcHQgZWl0aGVyIFVuaWNvZGUgb3IgOC1iaXQgc3RyaW5ncywgYnV0CiAgICBtaXhpbmcgdGhlIHR3byBtYXkgdGFrZSBzb21lIGNhcmUuIElmIGJvdGggYXJlIHVzZWQsIDgtYml0IHN0cmluZ3MgdGhhdAogICAgY2Fubm90IGJlIGludGVycHJldGVkIGFzIDctYml0IEFTQ0lJICh0aGF0IHVzZSB0aGUgOHRoIGJpdCkgd2lsbCBjYXVzZQogICAgYSBVbmljb2RlRXJyb3IgdG8gYmUgcmFpc2VkIHdoZW4gZ2V0dmFsdWUoKSBpcyBjYWxsZWQuCiAgICB0AAAAAGMCAAAAAgAAAAMAAABDAAAAc14AAAB0AAB8AQB0AQCDAgBzHgB0AgB8AQCDAQB9AQBuAAB8AQB8AABfAwB0BAB8AQCDAQB8AABfBABnAAB8AABfBQBkAQB8AABfBgB0BwB8AABfCABkAQB8AABfCQBkAABTKAIAAABOaQAAAAAoCgAAAHQKAAAAaXNpbnN0YW5jZXQKAAAAYmFzZXN0cmluZ3QDAAAAc3RydAMAAABidWZ0AwAAAGxlbnQHAAAAYnVmbGlzdHQDAAAAcG9zdAUAAABGYWxzZVIDAAAAdAkAAABzb2Z0c3BhY2UoAgAAAHQEAAAAc2VsZlIJAAAAKAAAAAAoAAAAAHNPAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9TdHJpbmdJTy5weXQIAAAAX19pbml0X182AAAAcxAAAAAAAg8BDwEJAQ8BCQEJAQkBYwEAAAABAAAAAQAAAEMAAABzBAAAAHwAAFMoAQAAAE4oAAAAACgBAAAAUg8AAAAoAAAAACgAAAAAc08AAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L1N0cmluZ0lPLnB5dAgAAABfX2l0ZXJfX0EAAABzAgAAAAABYwEAAAACAAAAAgAAAEMAAABzLAAAAHQAAHwAAGoBAIMBAAF8AABqAgCDAAB9AQB8AQBzKAB0AwCCAQBuAAB8AQBTKAEAAABzXwEAAEEgZmlsZSBvYmplY3QgaXMgaXRzIG93biBpdGVyYXRvciwgZm9yIGV4YW1wbGUgaXRlcihmKSByZXR1cm5zIGYKICAgICAgICAodW5sZXNzIGYgaXMgY2xvc2VkKS4gV2hlbiBhIGZpbGUgaXMgdXNlZCBhcyBhbiBpdGVyYXRvciwgdHlwaWNhbGx5CiAgICAgICAgaW4gYSBmb3IgbG9vcCAoZm9yIGV4YW1wbGUsIGZvciBsaW5lIGluIGY6IHByaW50IGxpbmUpLCB0aGUgbmV4dCgpCiAgICAgICAgbWV0aG9kIGlzIGNhbGxlZCByZXBlYXRlZGx5LiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBuZXh0IGlucHV0IGxpbmUsCiAgICAgICAgb3IgcmFpc2VzIFN0b3BJdGVyYXRpb24gd2hlbiBFT0YgaXMgaGl0LgogICAgICAgICgEAAAAUgQAAABSAwAAAHQIAAAAcmVhZGxpbmV0DQAAAFN0b3BJdGVyYXRpb24oAgAAAFIPAAAAdAEAAAByKAAAAAAoAAAAAHNPAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9TdHJpbmdJTy5weXQEAAAAbmV4dEQAAABzCgAAAAAH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