My40LjIyIChTZWxlY3RpdmUgU3RldmUpCjljYzRmNzBlY2FmMmViYjhjZGVhMmM0ZDM4NTMxNGE5NjkzZTIwYjMKBAhvOhlTYXNzOjpUcmVlOjpSb290Tm9kZQw6DkBjaGlsZHJlblsIbzocU2Fzczo6VHJlZTo6Q29tbWVudE5vZGUMOgtAdmFsdWVbBkkiAiMBLyogTW9kZXJuIG1pY3JvIGNsZWFyZml4IHByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNvbnRhaW4gZmxvYXRzIHdpdGhvdXQgYWRkaW5nIGFkZGl0aW9uYWwgbWFya3VwLgogKgogKiBFeGFtcGxlIHVzYWdlOgogKgogKiAgICAvLyBDb250YWluIGFsbCBmbG9hdHMgd2l0aGluIC53cmFwcGVyCiAqICAgIC53cmFwcGVyIHsKICogICAgICBAaW5jbHVkZSBjbGVhcmZpeDsKICogICAgICAuY29udGVudCwKICogICAgICAuc2lkZWJhciB7CiAqICAgICAgICBmbG9hdCA6IGxlZnQ7CiAqICAgICAgfQogKiAgICB9ICovBjoGRVQ6CkB0eXBlOgtzaWxlbnQ7BlsAOg5AZmlsZW5hbWUwOg1Ab3B0aW9uc3sAOgpAbGluZWkGOhJAc291cmNlX3JhbmdlbzoYU2Fzczo6U291cmNlOjpSYW5nZQk6D0BzdGFydF9wb3NvOhtTYXNzOjpTb3VyY2U6OlBvc2l0aW9uBzsOaQY6DEBvZmZzZXRpBjoNQGVuZF9wb3NvOxIHOw5pETsTaQ06CkBmaWxlSSJiL2hvbWUvYXJ0aHVyL2FyaWEtc2l0ZS9pbmN1YmF0b3ItYXJpYXRvc2NhLXdlYnNpdGUvX3Nhc3MvdmVuZG9yL2JvdXJib24vYWRkb25zL19jbGVhcmZpeC5zY3NzBjsJVDoOQGltcG9ydGVybzogU2Fzczo6SW1wb3J0ZXJzOjpGaWxlc3lzdGVtCDoKQHJvb3RJIj0vaG9tZS9hcnRodXIvYXJpYS1zaXRlL2luY3ViYXRvci1hcmlhdG9zY2Etd2Vic2l0ZS9fc2FzcwY7CUY6D0ByZWFsX3Jvb3RJIj0vaG9tZS9hcnRodXIvYXJpYS1zaXRlL2luY3ViYXRvci1hcmlhdG9zY2Etd2Vic2l0ZS9fc2FzcwY7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AwIvLyBNb2Rlcm4gbWljcm8gY2xlYXJmaXggcHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gY29udGFpbiBmbG9hdHMgd2l0aG91dCBhZGRpbmcgYWRkaXRpb25hbCBtYXJrdXAuCi8vCi8vIEV4YW1wbGUgdXNhZ2U6Ci8vCi8vICAgIC8vIENvbnRhaW4gYWxsIGZsb2F0cyB3aXRoaW4gLndyYXBwZXIKLy8gICAgLndyYXBwZXIgewovLyAgICAgIEBpbmNsdWRlIGNsZWFyZml4OwovLyAgICAgIC5jb250ZW50LAovLyAgICAgIC5zaWRlYmFyIHsKLy8gICAgICAgIGZsb2F0IDogbGVmdDsKLy8gICAgICB9Ci8vICAgIH0KCkBtaXhpbiBjbGVhcmZpeCB7CiAgJjphZnRlciB7CiAgICBjb250ZW50OiIiOwogICAgZGlzcGxheTp0YWJsZTsKICAgIGNsZWFyOmJvdGg7CiAgfQp9CgovLyBBY2tub3dsZWRnZW1lbnRzCi8vIEJlYXQgKnRoYXQqIGNsZWFyZml4OiBbVGhpZXJyeSBLb2JsZW50el0oaHR0cDovL3d3dy5jc3MtMTAxLm9yZy9hcnRpY2xlcy9jbGVhcmZpeC9sYXRlc3QtbmV3LWNsZWFyZml4LXNvLWZhci5waHApCgY7CVQ7DmkGOw9vOxAJOxFvOxIHOw5pBjsTaQY7FG87Egc7DmkGOxNpBjsVQA87FkAQOzxU