Ly0tIFRoaXMgc2V0IG9mIHRlc3RzIGNoZWNrcyBsb2NhbC1zcGVjaWZpYyBmZWF0dXJlcywgdXNpbmcgdGhlIGZyX0ZSIGxvY2FsZS4gCiAgICBJdCBpcyBub3QgUGVybC1jb21wYXRpYmxlLiBUaGVyZSBpcyBkaWZmZXJlbnQgdmVyc2lvbiBjYWxsZWQgd2ludGVzdGlucHV0MwogIGYgIG9yIHVzZSBvbiBXaW5kb3dzLCB3aGVyZSB0aGUgbG9jYWxlIGlzIGNhbGxlZCAiZnJlbmNoIi4gLS0vCgovXltcd10rLwogICAgKioqIEZhaWxlcnMKTm8gbWF0Y2gKICAgIMljb2xlCk5vIG1hdGNoCgovXltcd10rL0xmcl9GUgogICAgyWNvbGUKIDA6IMljb2xlCgovXltcd10rLwogICAgKioqIEZhaWxlcnMKTm8gbWF0Y2gKICAgIMljb2xlCk5vIG1hdGNoCgovXltcV10rLwogICAgyWNvbGUKIDA6IFx4YzkKCi9eW1xXXSsvTGZyX0ZSCiAgICAqKiogRmFpbGVycwogMDogKioqIAogICAgyWNvbGUKTm8gbWF0Y2gKCi9bXGJdLwogICAgXGIKIDA6IFx4MDgKICAgICoqKiBGYWlsZXJzCk5vIG1hdGNoCiAgICBhCk5vIG1hdGNoCgovW1xiXS9MZnJfRlIKICAgIFxiCiAwOiBceDA4CiAgICAqKiogRmFpbGVycwpObyBtYXRjaAogICAgYQpObyBtYXRjaAoKL15cdysvCiAgICAqKiogRmFpbGVycwpObyBtYXRjaAogICAgyWNvbGUKTm8gbWF0Y2gKCi9eXHcrL0xmcl9GUgogICAgyWNvbGUKIDA6IMljb2xlCgovKC4rKVxiKC4rKS8KICAgIMljb2xlCiAwOiBceGM5Y29sZQogMTogXHhjOQogMjogY29sZQoKLyguKylcYiguKykvTGZyX0ZSCiAgICAqKiogRmFpbGVycwogMDogKioqIEZhaWxlcnMKIDE6ICoqKiAKIDI6IEZhaWxlcnMKICAgIMljb2xlCk5vIG1hdGNoCgovyWNvbGUvaQogICAgyWNvbGUKIDA6IFx4Yzljb2xlCiAgICAqKiogRmFpbGVycwpObyBtYXRjaAogICAg6WNvbGUKTm8gbWF0Y2gKCi/JY29sZS9pTGZyX0ZSCiAgICDJY29sZQogMDogyWNvbGUKICAgIOljb2xlCiAwOiDpY29sZQoKL1x3L0lTCkNhcHR1cmluZyBzdWJwYXR0ZXJuIGNvdW50ID0gMApObyBvcHRpb25zCk5vIGZpcnN0IGNoYXIKTm8gbmVlZCBjaGFyClN1YmplY3QgbGVuZ3RoIGxvd2VyIGJvdW5kID0gMQpTdGFydGluZyBieXRlIHNldDogMCAxIDIgMyA0IDUgNiA3IDggOSBBIEIgQyBEIEUgRiBHIEggSSBKIEsgTCBNIE4gTyBQIAogIFEgUiBTIFQgVSBWIFcgWCBZIFogXyBhIGIgYyBkIGUgZiBnIGggaSBqIGsgbCBtIG4gbyBwIHEgciBzIHQgdSB2IHcgeCB5IHogCgovXHcvSVNMZnJfRlIKQ2FwdHVyaW5nIHN1YnBhdHRlcm4gY291bnQgPSAwCk5vIG9wdGlvbnMKTm8gZmlyc3QgY2hhcgpObyBuZWVkIGNoYXIKU3ViamVjdCBsZW5ndGggbG93ZXIgYm91bmQgPSAxClN0YXJ0aW5nIGJ5dGUgc2V0OiAwIDEgMiAzIDQgNSA2IDcgOCA5IEEgQiBDIEQgRSBGIEcgSCBJIEogSyBMIE0gTiBPIFAgCiAgUSBSIFMgVCBVIFYgVyBYIFkgWiBfIGEgYiBjIGQgZSBmIGcgaCBpIGogayBsIG0gbiBvIHAgcSByIHMgdCB1IHYgdyB4IHkgeiAKICCqILUguiDAIMEgwiDDIMQgxSDGIMcgyCDJIMogyyDMIM0gziDPINAg0SDSINMg1CDVINYg2CDZINog2yDcIN0g3iDfIOAg4SDiIAogIOMg5CDlIOYg5yDoIOkg6iDrIOwg7SDuIO8g8CDxIPIg8yD0IPUg9iD4IPkg+iD7IPwg/SD+IP8gCgovXltceGM4LVx4YzldL2lMZnJfRlIKICAgIMljb2xlCiAwOiDJCiAgICDpY29sZQogMDog6QoKL15bXHhjOC1ceGM5XS9MZnJfRlIKICAgIMljb2xlCiAwOiDJCiAgICAqKiogRmFpbGVycyAKTm8gbWF0Y2gKICAgIOljb2xlCk5vIG1hdGNoCgovXFcrL0xmcl9GUgogICAgPj4+XHhhYTw8PAogMDogPj4+CiAgICA+Pj5ceGJhPDw8IAogMDogPj4+CgovW1xXXSsvTGZyX0ZSCiAgICA+Pj5ceGFhPDw8CiAwOiA+Pj4KICAgID4+Plx4YmE8PDwgCiAwOiA+Pj4KCi9bXls6YWxwaGE6XV0rL0xmcl9GUgogICAgPj4+XHhhYTw8PAogMDogPj4+CiAgICA+Pj5ceGJhPDw8IAogMDogPj4+CgovXHcrL0xmcl9GUgogICAgPj4+XHhhYTw8PAogMDogqgogICAgPj4+XHhiYTw8PCAKIDA6ILoKCi9bXHddKy9MZnJfRlIKICAgID4+Plx4YWE8PDwKIDA6IKoKICAgID4+Plx4YmE8PDwgCiAwOiC6CgovW1s6YWxwaGE6XV0rL0xmcl9GUgogICAgPj4+XHhhYTw8PAogMDogqgogICAgPj4+XHhiYTw8PCAKIDA6ILoKICAgIAovW1s6YWxwaGE6XV1bWzpsb3dlcjpdXVtbOnVwcGVyOl1dL0RaTGZyX0ZSIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgICBCcmEKICAgICAgICBbQS1aYS16XHhhYVx4YjVceGJhXHhjMC1ceGQ2XHhkOC1ceGY2XHhmOC1ceGZmXQogICAgICAgIFthLXpceGI1XHhkZi1ceGY2XHhmOC1ceGZmXQogICAgICAgIFtBLVpceGMwLVx4ZDZceGQ4LVx4ZGVdCiAgICAgICAgS2V0CiAgICAgICAgRW5kCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpDYXB0dXJpbmcgc3VicGF0dGVybiBjb3VudCA9IDAKTm8gb3B0aW9ucwpObyBmaXJzdCBjaGFyCk5vIG5lZWQgY2hhcgoKLy0tIEVuZCBvZiB0ZXN0aW5wdXQzIC0tLwo=