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hQMAAENvbXBpbGUgYW5kIHJ1biBzb21lIHNvdXJjZSBpbiB0aGUgaW50ZXJwcmV0ZXIuCgogICAgICAgIEFyZ3VtZW50cyBhcmUgYXMgZm9yIGNvbXBpbGVfY29tbWFuZCgpLgoKICAgICAgICBPbmUgc2V2ZXJhbCB0aGluZ3MgY2FuIGhhcHBlbjoKCiAgICAgICAgMSkgVGhlIGlucHV0IGlzIGluY29ycmVjdDsgY29tcGlsZV9jb21tYW5kKCkgcmFpc2VkIGFuCiAgICAgICAgZXhjZXB0aW9uIChTeW50YXhFcnJvciBvciBPdmVyZmxvd0Vycm9yKS4gIEEgc3ludGF4IHRyYWNlYmFjawogICAgICAgIHdpbGwgYmUgcHJpbnRlZCBieSBjYWxsaW5nIHRoZSBzaG93c3ludGF4ZXJyb3IoKSBtZXRob2QuCgogICAgICAgIDIpIFRoZSBpbnB1dCBpcyBpbmNvbXBsZXRlLCBhbmQgbW9yZSBpbnB1dCBpcyByZXF1aXJlZDsKICAgICAgICBjb21waWxlX2NvbW1hbmQoKSByZXR1cm5lZCBOb25lLiAgTm90aGluZyBoYXBwZW5zLgoKICAgICAgICAzKSBUaGUgaW5wdXQgaXMgY29tcGxldGU7IGNvbXBpbGVfY29tbWFuZCgpIHJldHVybmVkIGEgY29kZQogICAgICAgIG9iamVjdC4gIFRoZSBjb2RlIGlzIGV4ZWN1dGVkIGJ5IGNhbGxpbmcgc2VsZi5ydW5jb2RlKCkgKHdoaWNoCiAgICAgICAgYWxzbyBoYW5kbGVzIHJ1bi10aW1lIGV4Y2VwdGlvbnMsIGV4Y2VwdCBmb3IgU3lzdGVtRXhpdCkuCgogICAgICAgIFRoZSByZXR1cm4gdmFsdWUgaXMgVHJ1ZSBpbiBjYXNlIDIsIEZhbHNlIGluIHRoZSBvdGhlciBjYXNlcyAodW5sZXNzCiAgICAgICAgYW4gZXhjZXB0aW9uIGlzIHJhaXNlZCkuICBUaGUgcmV0dXJuIHZhbHVlIGNhbiBiZSB1c2VkIHRvCiAgICAgICAgZGVjaWRlIHdoZXRoZXIgdG8gdXNlIHN5cy5wczEgb3Igc3lzLnBzMiB0byBwcm9tcHQgdGhlIG5leHQKICAgICAgICBsaW5lLgoKICAg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dWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvY29kZS5weVIDAAAArgAAAHMMAAAABgYGAg8OCQQMMQkVYwMAAAAFAAAABQAAAEMAAABzWQAAAHQAAHwCAIMBAH0DAHwBAGQCAGsJAHIkAHwBAHwDAF8CAG4kAHkQAGQBAGQCAGwDAH0EAFduEQAEdAQAawoAckcAAQEBbgEAWHwDAGoFAHwAAIMBAAFkAgBTKAMAAABz7wEAAENsb3NlbHkgZW11bGF0ZSB0aGUgaW50ZXJhY3RpdmUgUHl0aG9uIGludGVycHJldGVyLgoKICAgIFRoaXMgaXMgYSBiYWNrd2FyZHMgY29tcGF0aWJsZSBpbnRlcmZhY2UgdG8gdGhlIEludGVyYWN0aXZlQ29uc29sZQogICAgY2xhc3MuICBXaGVuIHJlYWRmdW5jIGlzIG5vdCBzcGVjaWZpZWQsIGl0IGF0dGVtcHRzIHRvIGltcG9ydCB0aGUKICAgIHJlYWRsaW5lIG1vZHVsZSB0byBlbmFibGUgR05VIHJlYWRsaW5lIGlmIGl0IGlzIGF2YWlsYWJsZS4KCiAgICBBcmd1bWVudHMgKGFsbCBvcHRpb25hbCwgYWxsIGRlZmF1bHQgdG8gTm9uZSk6CgogICAgYmFubmVyIC0tIHBhc3NlZCB0byBJbnRlcmFjdGl2ZUNvbnNvbGUuaW50ZXJhY3QoKQogICAgcmVhZGZ1bmMgLS0gaWYgbm90IE5vbmUsIHJlcGxhY2VzIEludGVyYWN0aXZlQ29uc29sZS5yYXdfaW5wdXQoKQogICAgbG9jYWwgLS0gcGFzc2VkIHRvIEludGVyYWN0aXZlSW50ZXJwcmV0ZXIuX19pbml0X18oKQoKICAgIGn/////TigGAAAAUgMAAABSDgAAAFJGAAAAdAgAAAByZWFkbGluZXQLAAAASW1wb3J0RXJyb3JSBAAAACgFAAAAUk8AAAB0CAAAAHJlYWRmdW5jdAUAAABsb2NhbHQHAAAAY29uc29sZVJWAAAAKAAAAAAoAAAAAHNLAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9jb2RlLnB5UgQAAAAcAQAAcxAAAAAADgwBDAEMAgMBEAENAQQBdAgAAABfX21haW5fXygAAAAAKA0AAABSDQAAAFIiAAAAUigAAAB0BgAAAGNvZGVvcFIAAAAAUgEAAAB0BwAAAF9fYWxsX19SBQAAAFICAAAAUgMAAABSDgAAAFIEAAAAUgwAAAAoAAAAACgAAAAAKAAAAABzSwAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvY29kZS5weXQIAAAAPG1vZHVsZT4DAAAAcxYAAAAGBQwBDAEWAgkBCQIJDROSFm4SGQwB