IyBTcGFtQXNzYXNzaW4gdHJhbnNsYXRpb25zOiBGcmFu52Fpc2UKIwojIFdyaXR0ZW4gYnkgTWljaGVsIEJvdWlzc291IDxtaWNoZWxAYm91aXNzb3UubmV0PiBmb3IgU3BhbUFzc2Fzc2luIDIuNjAKIyBMYXRlc3QgcmV2aXNpb246IDIwMDMvMTEvMTQKIwojIFBsZWFzZSBkb24ndCBtb2RpZnkgdGhpcyBmaWxlIGFzIHlvdXIgY2hhbmdlcyB3aWxsIGJlIG92ZXJ3cml0dGVuIHdpdGgKIyB0aGUgbmV4dCB1cGRhdGUuIFVzZSBAQExPQ0FMX1JVTEVTX0RJUkBAL2xvY2FsLmNmIGluc3RlYWQuCiMgU2VlICdwZXJsZG9jIE1haWw6OlNwYW1Bc3Nhc3Npbjo6Q29uZicgZm9yIGRldGFpbHMuCiMKIyA8QExJQ0VOU0U+CiMgTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCiMgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZSBkaXN0cmlidXRlZCB3aXRoCiMgdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLgojIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wCiMgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgKIyB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKIwojICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKIwojIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAojIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgojIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KIyA8L0BMSUNFTlNFPgojCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKIyAgICAgIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KbGFuZyBmciBjbGVhci1yZXBvcnQtdGVtcGxhdGUKbGFuZyBmciByZXBvcnQgLS0tLS0tLS0tLS0tLS0tLS0tIETpYnV0IGRlIFJhcHBvcnQgU3BhbUFzc2Fzc2luIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQpsYW5nIGZyIHJlcG9ydCBDZSBtZXNzYWdlIGVzdCBwcm9iYWJsZW1lbnQgZHUgU1BBTSAobWVzc2FnZSBub24gc29sbGljaXTpIGVudm956SBlbgpsYW5nIGZyIHJlcG9ydCBtYXNzZSwgcHVibGljaXTpLCBlc2Nyb3F1ZXJpZS4uLikuCmxhbmcgZnIgcmVwb3J0CmxhbmcgZnIgcmVwb3J0IENldHRlIG5vdGljZSBhIOl06SBham91dOllIHBhciBsZSBzeXN06G1lIGQnYW5hbHlzZSAiU3BhbUFzc2Fzc2luIiBzdXIKbGFuZyBmciByZXBvcnQgdm90cmUgc2VydmV1ciBkZSBjb3VycmllciAiX0hPU1ROQU1FXyIsIHBvdXIgdm91cwpsYW5nIGZyIHJlcG9ydCBhaWRlciDgIGlkZW50aWZpZXIgY2UgdHlwZSBkZSBtZXNzYWdlcy4KbGFuZyBmciByZXBvcnQKbGFuZyBmciByZXBvcnQgTGUgc3lzdOhtZSBTcGFtQXNzYXNzaW4gYWpvdXRlIHVuIGVuLXTqdGUgIlgtU3BhbS1GbGFnOiBZRVMiIGF1eApsYW5nIGZyIHJlcG9ydCBtZXNzYWdlcyBxdSdpbCBjb25zaWTocmUgY29tbWUg6XRhbnQgcHJvYmFibGVtZW50IGR1IFNwYW0uCmxhbmcgZnIgcmVwb3J0IFZvdXMgcG91dmV6IHNpIHZvdXMgbGUgc291aGFpdGV6IHV0aWxpc2VyIGNldHRlIGNhcmFjdOlyaXN0aXF1ZQpsYW5nIGZyIHJlcG9ydCBwb3VyIHLpZ2xlciB1biBmaWx0cmUgZGFucyB2b3RyZSBsb2dpY2llbCBkZSBsZWN0dXJlIGRlIGNvdXJyaWVyLApsYW5nIGZyIHJlcG9ydCBhZmluIGRlIGTpdHJ1aXJlIG91IGRlIGNsYXNzZXIg4CBwYXJ0IGNlIHR5cGUgZGUgbWVzc2FnZS4KbGFuZyBmciByZXBvcnQKbGFuZyBmciByZXBvcnQgU2kgY2Ugcm9ib3QgYSBjbGFzc2lmaekgaW5jb3JyZWN0ZW1lbnQgdW4gbWVzc2FnZSBxdWkgdm91cyDpdGFpdApsYW5nIGZyIHJlcG9ydCBkZXN0aW7pLCBvdSBwb3VyIHRvdXRlIHF1ZXN0aW9uLCB2ZXVpbGxleiBjb250YWN0ZXIgbCdhZG1pbmlzdHJhdGV1cgpsYW5nIGZyIHJlcG9ydCBkdSBzeXN06G1lIHBhciBlLW1haWwg4CBfQ09OVEFDVEFERFJFU1NfIC4KbGFuZyBmciByZXBvcnQKbGFuZyBmciByZXBvcnQgVm9pciBodHRwczovL3NwYW1hc3Nhc3Npbi5hcGFjaGUub3JnL3RhZy8gcG91ciBwbHVzIGRlIGTpdGFpbHMgKGVuIGFuZ2xhaXMpLgpsYW5nIGZyIHJlcG9ydApsYW5nIGZyIHJlcG9ydCBE6XRhaWxzIGRlIGwnYW5hbHlzZSBkdSBtZXNzYWdlOiAgIChfU0NPUkVfIHBvaW50cywgX1JFUURfIHJlcXVpcykKbGFuZyBmciByZXBvcnQgX1NVTU1BUllfCmxhbmcgZnIgcmVwb3J0IC0tLS0tLS0tLS0tLS0tLS0tLS0tIEZpbiBkZSBSYXBwb3J0IFNwYW1Bc3Nhc3NpbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMgICAgICAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCiMgVm91cyBkZXZyaWV6IGNoYW5nZXIgInJlcG9ydF9jb250YWN0IiBkYW5zIGxlIGZpY2hpZXIgMTBfbWlzYy5jZi4KIyBfQ09OVEFDVEFERFJFU1NfIGVzdCByZW1wbGFj6WUgcGFyIGNlIHRleHRlLgojICAgICAgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgoKIyAgICAgICAgICAgICAgICAgICAgIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KbGFuZyBmciBjbGVhci11bnNhZmUtcmVwb3J0LXRlbXBsYXRlCmxhbmcgZnIgdW5zYWZlLXJlcG9ydCBMZSBtZXNzYWdlIG9yaWdpbmFsIG4n6XRhbnQgcGFzIGF1IGZvcm1hdCB0ZXh0IGJydXQsIGlsIGVzdCBwZXV0Lep0cmUKbGFuZyBmciB1bnNhZmUtcmVwb3J0IGRhbmdlcmV1eCBkZSBsJ291dnJpciBhdmVjIHZvdHJlIGxvZ2ljaWVsIGUtbWFpbCA7IGVuIHBhcnRpY3VsaWVyIGlsCmxhbmcgZnIgdW5zYWZlLXJlcG9ydCBwb3VycmFpdCBjb250ZW5pciB1biB2aXJ1cywgb3UgY29uZmlybWVyIOAgbCdleHDpZGl0ZXVyIHF1ZSB2b3RyZQpsYW5nIGZyIHVuc2FmZS1yZXBvcnQgYWRyZXNzZSBlLW1haWwgZXN0IGFjdGl2ZSwgZXQgcGV1dCByZWNldm9pciBkdSBzcGFtLiBTaSB2b3VzIHZvdWxlegpsYW5nIGZyIHVuc2FmZS1yZXBvcnQgbGlyZSBjZSBtZXNzYWdlLCBldCBuJ+p0ZXMgcGFzIGNlcnRhaW4gZGUgbGEgc+ljdXJpdOkgZGUgdm90cmUgbG9naWNpZWwKbGFuZyBmciB1bnNhZmUtcmVwb3J0IGUtbWFpbCwgaWwgZXN0IHBsdXMgcHJ1ZGVudCBkJ2VucmVnaXN0cmVyIGNlIG1lc3NhZ2Ugc3VyIHZvdHJlIGRpc3F1ZQpsYW5nIGZyIHVuc2FmZS1yZXBvcnQgZHVyLCBldCBkZSBsJ2FmZmljaGVyIGVuc3VpdGUgYXZlYyB1biDpZGl0ZXVyIGRlIHRleHRlLgojICAgICAgICAgICAgICAgICAgICAgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgoKIyMjIyMjIyMjIyMjIwojIDIzX2JheWVzLmNmCmlmcGx1Z2luIE1haWw6OlNwYW1Bc3Nhc3Npbjo6UGx1Z2luOjpCYXllcwpsYW5nIGZyIGRlc2NyaWJlIEJBWUVTXzAwCUwnYWxnb3JpdGhtZSBCYXnpc2llbiBhIOl2YWx16SBsYSBwcm9iYWJpbGl06SBkZSBzcGFtIGVudHJlIDAgZXQgMSUKbGFuZyBmciBkZXNjcmliZSBCQVlFU18wNQlMJ2FsZ29yaXRobWUgQmF56XNpZW4gYSDpdmFsdekgbGEgcHJvYmFiaWxpdOkgZGUgc3BhbSBlbnRyZSAxIGV0IDUlCmxhbmcgZnIgZGVzY3JpYmUgQkFZRVNfMjAJTCdhbGdvcml0aG1lIEJheelzaWVuIGEg6XZhbHXpIGxhIHByb2JhYmlsaXTpIGRlIHNwYW0gZW50cmUgNSBldCAyMCUKbGFuZyBmciBkZXNjcmliZSBCQVlFU180MAlMJ2FsZ29yaXRobWUgQmF56XNpZW4gYSDpdmFsdekgbGEgcHJvYmFiaWxpdOkgZGUgc3BhbSBlbnRyZSAyMCBldCA0MCUKbGFuZyBmciBkZXNjcmliZSBCQVlFU181MAlMJ2FsZ29yaXRobWUgQmF56XNpZW4gYSDpdmFsdekgbGEgcHJvYmFiaWxpdOkgZGUgc3BhbSBlbnRyZSA0MCBldCA2MCUKbGFuZyBmciBkZXNjcmliZSBCQVlFU182MAlMJ2FsZ29yaXRobWUgQmF56XNpZW4gYSDpdmFsdekgbGEgcHJvYmFiaWxpdOkgZGUgc3BhbSBlbnRyZSA2MCBldCA4MCUKbGFuZyBmciBkZXNjcmliZSBCQVlFU184MAlMJ2FsZ29yaXRobWUgQmF56XNpZW4gYSDpdmFsdekgbGEgcHJvYmFiaWxpdOkgZGUgc3BhbSBlbnRyZSA4MCBldCA5NSUKbGFuZyBmciBkZXNjcmliZSBCQVlFU185NQlMJ2FsZ29yaXRobWUgQmF56XNpZW4gYSDpdmFsdekgbGEgcHJvYmFiaWxpdOkgZGUgc3BhbSBlbnRyZSA5NSBldCA5OSUKbGFuZyBmciBkZXNjcmliZSBCQVlFU185OQlMJ2FsZ29yaXRobWUgQmF56XNpZW4gYSDpdmFsdekgbGEgcHJvYmFiaWxpdOkgZGUgc3BhbSBlbnRyZSA5OSBldCAxMDAlCmxhbmcgZnIgZGVzY3JpYmUgQkFZRVNfOTk5ICAgICAgTCdhbGdvcml0aG1lIEJheelzaWVuIGEg6XZhbHXpIGxhIHByb2JhYmlsaXTpIGRlIHNwYW0gZW50cmUgOTkuOSBldCAxMDAlCmVuZGlmCgpsYW5nIGZyIGRlc2NyaWJlIEFDVF9OT1dfQ0FQUwkJRGVtYW5kZSBkJ2FnaXIgaW1t6WRpYXRlbWVudCAoZW4gbWFqdXNjdWxlcykKbGFuZyBmciBkZXNjcmliZSBCQURfQ1JFRElUCQlDb250aWVudCAiRWxpbWluYXRlIEJhZCBDcmVkaXQiCmxhbmcgZnIgZGVzY3JpYmUgQkFOR19HVUFSCQlRdWVscXVlIGNob3NlIGVzdCAiZ2FyYW50aSIgZGUgbWFuaehyZSBlbXBoYXRpcXVlCmxhbmcgZnIgZGVzY3JpYmUgQkFOR19PUFJBSCAgICAgIAlQYXJsZSBkJ09wcmFoIGF2ZWMgcG9pbnQgZCdleGNsYW1hdGlvbiAhCmxhbmcgZnIgZGVzY3JpYmUgQklMTElPTl9ET0xMQVJTICAgICAgICBFdm9xdWUgZGVzIG1pbGxpb25zIG91IG1pbGxpYXJkcyBkZSBkb2xsYXJzCmxhbmcgZnIgZGVzY3JpYmUgQkxBTktfTElORVNfODBfOTAJTGUgY29ycHMgZHUgbWVzc2FnZSBhIDgwIOAgOTAlIGRlIGxpZ25lcyB2aWRlcwpsYW5nIGZyIGRlc2NyaWJlIENIQVJTRVRfRkFSQVdBWQlNZXNzYWdlIHV0aWxpc2FudCB1biBqZXUgZGUgY2FyYWN06HJlcyBleG90aXF1ZQpsYW5nIGZyIGRlc2NyaWJlIENIQVJTRVRfRkFSQVdBWV9IRUFERVIJRW4tdOp0ZSB1dGlsaXNhbnQgdW4gamV1IGRlIGNhcmFjdOhyZXMgZXhvdGlxdWUKbGFuZyBmciBkZXNjcmliZSBDT05GSVJNRURfRk9SR0VECUxlcyBlbi106nRlcyAiUmVjZWl2ZWQ6IiBvbnQg6XTpIGZhbHNpZmnpcwpsYW5nIGZyIGRlc2NyaWJlIENVTV9TSE9UICAgICAgICAgICAgICAgUG9ybm9ncmFwaGllIHByb2JhYmxlLCAiZ3JvcyBwbGFucyBkJ+lqYWN1bGF0aW9ucyIKbGFuZyBmciBkZXNjcmliZSBEQVRFX0lOX1BBU1RfMDNfMDYJRGF0ZTogZXN0IDMg4CA2IGhldXJlcyBhdmFudCBsYSBkYXRlIGRlIGwnZW4tdOp0ZSBSZWNlaXZlZDoKbGFuZyBmciBkZXNjcmliZSBEQVRFX0lOX1BBU1RfMDZfMTIJRGF0ZTogZXN0IDYg4CAxMiBoZXVyZXMgYXZhbnQgbGEgZGF0ZSBkZSBsJ2VuLXTqdGUgUmVjZWl2ZWQ6CmxhbmcgZnIgZGVzY3JpYmUgREFURV9JTl9QQVNUXzEyXzI0CURhdGU6IGVzdCAxMiDgIDI0IGhldXJlcyBhdmFudCBsYSBkYXRlIGRlIGwnZW4tdOp0ZSBSZWNlaXZlZDoKbGFuZyBmciBkZXNjcmliZSBEQVRFX0lOX1BBU1RfMjRfNDgJRGF0ZTogZXN0IDI0IOAgNDggaGV1cmVzIGF2YW50IGxhIGRhdGUgZGUgbCdlbi106nRlIFJlY2VpdmVkOgpsYW5nIGZyIGRlc2NyaWJlIERBVEVfSU5fUEFTVF85Nl9YWAlEYXRlOiBlc3QgcGx1cyBkZSA5NiBoZXVyZXMgYXZhbnQgbGEgZGF0ZSBkZSBsJ2VuLXTqdGUgUmVjZWl2ZWQ6CmxhbmcgZnIgZGVzY3JpYmUgREFURV9JTl9GVVRVUkVfMDNfMDYJRGF0ZTogZXN0IDMg4CA2IGhldXJlcyBhcHLocyBsYSBkYXRlIGRlIGwnZW4tdOp0ZSBSZWNlaXZlZDoKbGFuZyBmciBkZXNjcmliZSBEQVRFX0lOX0ZVVFVSRV8wNl8xMglEYXRlOiBlc3QgNiDgIDEyIGhldXJlcyBhcHLocyBsYSBkYXRlIGRlIGwnZW4tdOp0ZSBSZWNlaXZlZDoKbGFuZyBmciBkZXNjcmliZSBEQVRFX0lOX0ZVVFVSRV8xMl8yNAlEYXRlOiBlc3QgMTIg4CAyNCBoZXVyZXMgYXBy6HMgbGEgZGF0ZSBkZSBsJ2VuLXTqdGUgUmVjZWl2ZWQ6CmxhbmcgZnIgZGVzY3JpYmUgREFURV9JTl9GVVRVUkVfMjRfNDgJRGF0ZTogZXN0IDI0IOAgNDggaGV1cmVzIGFwcuhzIGxhIGRhdGUgZGUgbCdlbi106nRlIFJlY2VpdmVkOgpsYW5nIGZyIGRlc2NyaWJlIERBVEVfSU5fRlVUVVJFXzQ4Xzk2CURhdGU6IGVzdCA0OCDgIDk2IGhldXJlcyBhcHLocyBsYSBkYXRlIGRlIGwnZW4tdOp0ZSBSZWNlaXZlZDoKbGFuZyBmciBkZXNjcmliZSBEQVRFX0lOX0ZVVFVSRV85Nl9YWAlEYXRlOiBlc3QgcGx1cyBkZSA5NiBoZXVyZXMgYXBy6HMgbGEgZGF0ZSBkZSBsJ2VuLXTqdGUgUmVjZWl2ZWQ6CmxhbmcgZnIgZGVzY3JpYmUgTUlTU0lOR19EQVRFCQlFbi106nRlICJEYXRlOiIgYWJzZW50CmxhbmcgZnIgZGVzY3JpYmUgREFURV9TUEFNV0FSRV9ZMksJTCdlbi106nRlIGRhdGUgdXRpbGlzZSB1biBmb3JtYXQgWTJLIGluaGFiaXR1ZWwKbGFuZyBmciBkZXNjcmliZSBERUFSX0ZSSUVORAkJQ29udGllbnQgbGEgZm9ybXVsZSAiRGVhciBmcmllbmQiCmxhbmcgZnIgZGVzY3JpYmUgREVBUl9TT01FVEhJTkcJCUxlIG1lc3NhZ2UgY29udGllbnQgIkRlYXIuLi4gKHF1ZWxxdSd1bikiCmxhbmcgZnIgZGVzY3JpYmUgRElFVF8xCQkJU3BhbSBwcm9wb3NhbnQgdW5lIHBlcnRlIGRlIHBvaWRzCmxhbmcgZnIgZGVzY3JpYmUgRU1BSUxfUk9UMTMJCUNvcnBzIGNvbnRpZW50IHVuZSBhZHJlc3NlIG1haWwgZW5jb2TpZSBlbiBST1QxMwpsYW5nIGZyIGRlc2NyaWJlIEVYQ1VTRV9SRU1PVkUJCUV4cGxpcXVlIGNvbW1lbnQg6nRyZSByZXRpcukgZGVzIGxpc3RlcyBkZSBtYWlsaW5nIChzb2ktZGlzYW50Li4uKQpsYW5nIGZyIGRlc2NyaWJlIEVYQ1VTRV80CQlQcul0ZW5kIHF1ZSB2b3VzIHBvdXZleiB2b3VzIGZhaXJlIHN1cHByaW1lciBkZSBsZXVyIGxpc3RlCmxhbmcgZnIgZGVzY3JpYmUgRVhDVVNFXzI0CQlQcul0ZW5kIHF1ZSB2b3VzIGF2ZXogZGVtYW5k6SDgIHJlY2V2b2lyIGNldHRlIHB1YmxpY2l06QpsYW5nIGZyIGRlc2NyaWJlIEZJTl9GUkVFIAkJUGFybGUgZGUgImxpYmVydOkgZmluYW5jaehyZSIgKEZpbmFuY2lhbCBGcmVlZG9tKQpsYW5nIGZyIGRlc2NyaWJlIEZPUkdFRF9IT1RNQUlMX1JDVkQyCUZyb20gaG90bWFpbC5jb20sIG1haXMgc2FucyAiUmVjZWl2ZWQ6IgpsYW5nIGZyIGRlc2NyaWJlIEZPUkdFRF9JTVNfSFRNTAlJTVMgbidlbnZvaWUgcGFzIGRlIG1lc3NhZ2VzIGVuIEhUTUwgc2V1bApsYW5nIGZyIGRlc2NyaWJlIEZPUkdFRF9JTVNfVEFHUwlJTVMgbidlbnZvaWUgcGFzIGRlIEhUTUwgZGFucyBjZSBmb3JtYXQKbGFuZyBmciBkZXNjcmliZSBGT1JHRURfTVVBX0VVRE9SQQlNZXNzYWdlIGZhbHNpZmnpIHBy6XRlbmRhbnQgcHJvdmVuaXIgZHUgbG9naWNpZWwgRXVkb3JhCmxhbmcgZnIgZGVzY3JpYmUgRk9SR0VEX01VQV9JTVMJCU1lc3NhZ2UgZmFsc2lmaekgcHLpdGVuZGFudCBwcm92ZW5pciBkdSBsb2dpY2llbCBJTVMKbGFuZyBmciBkZXNjcmliZSBGT1JHRURfTVVBX01PWklMTEEJTWVzc2FnZSBmYWxzaWZp6SBwcul0ZW5kYW50IHByb3ZlbmlyIGR1IGxvZ2ljaWVsIE1vemlsbGEKbGFuZyBmciBkZXNjcmliZSBGT1JHRURfTVVBX09JTU8JTWVzc2FnZSBmYWxzaWZp6SBwcul0ZW5kYW50IHByb3ZlbmlyIGR1IGxvZ2ljaWVsIE1TIE91dGxvb2sgSU1PCmxhbmcgZnIgZGVzY3JpYmUgRk9SR0VEX01VQV9PVVRMT09LCU1lc3NhZ2UgZmFsc2lmaekgcHLpdGVuZGFudCBwcm92ZW5pciBkdSBsb2dpY2llbCBNUyBPdXRsb29rCmxhbmcgZnIgZGVzY3JpYmUgRk9SR0VEX01VQV9USEVCQVRfQk9VTiBNYWlsIHBy6XRlbmRhbnQgcHJvdmVuaXIgZGUgVGhlIEJhdCEgKGJvdW5kYXJ5KQpsYW5nIGZyIGRlc2NyaWJlIEZPUkdFRF9NVUFfVEhFQkFUX0NTCU1haWwgcHJldGVuZGFudCBwcm92ZW5pciBkZSBUaGUgQmF0ISAoY2hhcnNldCkKbGFuZyBmciBkZXNjcmliZSBGT1JHRURfT1VUTE9PS19IVE1MCU91dGxvb2sgbidlbnZvaWUgcGFzIGRlIG1lc3NhZ2VzIGVuIEhUTUwgc2V1bApsYW5nIGZyIGRlc2NyaWJlIEZPUkdFRF9PVVRMT09LX1RBR1MJT3V0bG9vayBuJ2Vudm9pZSBwYXMgZGUgSFRNTCBzb3VzIGNlIGZvcm1hdApsYW5nIGZyIGRlc2NyaWJlIEZPUkdFRF9RVUFMQ09NTV9UQUdTCVFVQUxDT01NIG1haWxlcnMgbidlbnZvaWVudCBwYXMgZGUgSFRNTCBzb3VzIGNlIGZvcm1hdApsYW5nIGZyIGRlc2NyaWJlIEZPUkdFRF9URUxFU1BfUkNWRAlDb250aWVudCB1biBub20gZGUgbWFjaGluZSBmYWxzaWZp6SBjaGV6IHVuIEYuQS5JLiBiculzaWxpZW4KbGFuZyBmciBkZXNjcmliZSBGT1JHRURfVEhFQkFUX0hUTUwJVGhlIEJhdCEgbidlbnZvaWUgcGFzIGRlIG1lc3NhZ2VzIGVuIEhUTUwgc2V1bApsYW5nIGZyIGRlc2NyaWJlIEZPUkdFRF9ZQUhPT19SQ1ZECUNvbnRpZW50IHVuIGVuLXTqdGUgZmFsc2lmaekgUmVjZWl2ZWQ6IHlhaG9vLmNvbQpsYW5nIGZyIGRlc2NyaWJlIEZPUldBUkRfTE9PS0lORwlDb250aWVudCB1biAiU3RvY2sgRGlzY2xhaW1lciBTdGF0ZW1lbnQiIChib3Vyc2UpCmxhbmcgZnIgZGVzY3JpYmUgRlJFRV9QT1JOICAgICAgICAgICAgICBQb3Jub2dyYXBoaWUgcHJvYmFibGUgIkZyZWUgcG9ybiIKbGFuZyBmciBkZXNjcmliZSBGUkVFX1FVT1RFX0lOU1RBTlQJQ29udGllbnQgZm9ybXVsZSB0eXBlICJGcmVlIGV4cHJlc3MiIG91ICJubyBvYmxpZ2F0aW9uIgpsYW5nIGZyIGRlc2NyaWJlIEZST01fSUxMRUdBTF9DSEFSUwlGcm9tOiBjb250aWVudCB0cm9wIGRlIGNhcmFjdOhyZXMgYnJ1dHMgaW52YWxpZGVzCmxhbmcgZnIgZGVzY3JpYmUgRlJPTV9OT19VU0VSCQlMJ2VuLXTqdGUgRnJvbTogbidhIHBhcyBkZSBub20gZCd1dGlsaXNhdGV1ciBhdmFudCBsZSBzaWduZSBACmxhbmcgZnIgZGVzY3JpYmUgRlJPTV9PRkZFUlMJCUwnYWRyZXNzZSBkJ2V4cOlkaXRldXIgZXN0ICJhdCBzb21ldGhpbmctb2ZmZXJzIgpsYW5nIGZyIGRlc2NyaWJlIEZST01fU1RBUlRTX1dJVEhfTlVNUwlMJ2VuLXTqdGUgRnJvbTogY29tbWVuY2UgcGFyIGRlcyBjaGlmZnJlcwpsYW5nIGZyIGRlc2NyaWJlIEdBUFBZX1NVQkpFQ1QJCUwnZW4tdOp0ZSBTdWJqZWN0OiBjb250aWVudCBkdSAidCBlIHggdCBlICBlIHMgcCBhIGMg6SIKbGFuZyBmciBkZXNjcmliZSBHVFVCRQkJCVRlc3QgZ+lu6XJpcXVlIGRlIGNvdXJyaWVyIG5vbiBzb2xsaWN06SBlbiBtYXNzZQpsYW5nIGZyIGRlc2NyaWJlIEdVQVJBTlRFRURfMTAwX1BFUkNFTlQJQ29udGllbnQgIk9uZSBodW5kcmVkIHBlcmNlbnQgZ3VhcmFudGVlZCIgKDEwMCUgZ2FyYW50aSkKbGFuZyBmciBkZXNjcmliZSBIRUFEX0lMTEVHQUxfQ0hBUlMJRW4tdOp0ZSBjb250aWVudCB0cm9wIGRlIGNhcmFjdOhyZXMgYnJ1dHMgaW52YWxpZGVzCmxhbmcgZnIgZGVzY3JpYmUgSEVBREVSX0NPVU5UX0NUWVBFCVBsdXNpZXVycyBlbi106nRlcyBDb250ZW50LVR5cGUKbGFuZyBmciBkZXNjcmliZSBISURFX1dJTl9TVEFUVVMJSmF2YXNjcmlwdCBkZXN0aW7pIOAgY2Ftb3VmbGVyIHVuZSBVUkwgZGFucyBsZSBuYXZpZ2F0ZXVyCmxhbmcgZnIgZGVzY3JpYmUgSFRNTF9DSEFSU0VUX0ZBUkFXQVkJSmV1IGRlIGNhcmFjdOhyZXMgZXhvdGlxdWUgdXRpbGlz6SBwb3VyIGxlIEhUTUwKbGFuZyBmciBkZXNjcmliZSBIVE1MX0NPTU1FTlRfU0FWRURfVVJMCUxlIG1lc3NhZ2UgSFRNTCBlc3QgdW5lIHBhZ2Ugd2ViIHNhdXZlZ2FyZOllCmxhbmcgZnIgZGVzY3JpYmUgSFRNTF9FTUJFRFMJCUhUTUw6IEluY2x1c2lvbiBkJ29iamV0cwpsYW5nIGZyIGRlc2NyaWJlIEhUTUxfRk9OVF9GQUNFX0JBRAlMZSBub20gZGUgbGEgcG9saWNlIEhUTUwgbidlc3QgcGFzIHVuIG1vdApsYW5nIGZyIGRlc2NyaWJlIEhUTUxfRk9OVF9MT1dfQ09OVFJBU1QJUG9saWNlIEhUTUwgZGUgbGEgbeptZSBjb3VsZXVyIHF1ZSBsZSBmb25kCmxhbmcgZnIgZGVzY3JpYmUgSFRNTF9GT1JNQUNUSU9OX01BSUxUTwlIVE1MIGluY2x1dCB1biBmb3JtdWxhaXJlIGQnZW52b2kgZGUgbWFpbApsYW5nIGZyIGRlc2NyaWJlIEhUTUxfSU1BR0VfT05MWV8wNAlIVE1MIGNvbnRpZW50IGltYWdlcyBhdmVjIDIwMCDgIDQwMCBvY3RldHMgZGUgdGV4dGUKbGFuZyBmciBkZXNjcmliZSBIVE1MX0lNQUdFX09OTFlfMDgJSFRNTCBjb250aWVudCBpbWFnZXMgYXZlYyA2MDAg4CA4MDAgb2N0ZXRzIGRlIHRleHRlCmxhbmcgZnIgZGVzY3JpYmUgSFRNTF9JTUFHRV9PTkxZXzEyCUhUTUwgY29udGllbnQgaW1hZ2VzIGF2ZWMgMTAwMCDgIDEyMDAgb2N0ZXRzIGRlIHRleHRlCmxhbmcgZnIgZGVzY3JpYmUgSFRNTF9JTUFHRV9SQVRJT18wMglIVE1MIEZhaWJsZSByYXRpbyBkZSB0ZXh0ZSBwYXIgcmFwcG9ydCBhdXggaW1hZ2VzCmxhbmcgZnIgZGVzY3JpYmUgSFRNTF9JTUFHRV9SQVRJT18wNCAgIEhUTUwgRmFpYmxlIHJhdGlvIGRlIHRleHRlIHBhciByYXBwb3J0IGF1eCBpbWFnZXMKbGFuZyBmciBkZXNjcmliZSBIVE1MX0lNQUdFX1JBVElPXzA2ICAgSFRNTCBGYWlibGUgcmF0aW8gZGUgdGV4dGUgcGFyIHJhcHBvcnQgYXV4IGltYWdlcwpsYW5nIGZyIGRlc2NyaWJlIEhUTUxfSU1BR0VfUkFUSU9fMDggICBIVE1MIEZhaWJsZSByYXRpbyBkZSB0ZXh0ZSBwYXIgcmFwcG9ydCBhdXggaW1hZ2VzCmxhbmcgZnIgZGVzY3JpYmUgSFRNTF9NRVNTQUdFCQlIVE1MIGluY2x1cyBkYW5zIGxlIG1lc3NhZ2UKbGFuZyBmciBkZXNjcmliZSBIVE1MX01JTUVfTk9fSFRNTF9UQUcJTWVzc2FnZSBlbiBIVE1MIHNldWwsIG1haXMgc2FucyB0YWdzIEhUTUwKbGFuZyBmciBkZXNjcmliZSBIVE1MX1RBR19CQUxBTkNFX0JPRFkJTGUgdGFnIGRlIGZlcm1ldHVyZSBkZSAiYm9keSIgSFRNTCBlc3QgbWFucXVhbnQKbGFuZyBmciBkZXNjcmliZSBIVE1MX1RBR19CQUxBTkNFX0hFQUQJTGUgdGFnIGRlIGZlcm1ldHVyZSBkZSAiaGVhZCIgSFRNTCBlc3QgbWFucXVhbnQKbGFuZyBmciBkZXNjcmliZSBIVFRQX0VTQ0FQRURfSE9TVAlVUkk6IENvbnRpZW50IGRlcyAlLWVzY2FwZXMgZGFucyBsZSBub20gZGUgbWFjaGluZQpsYW5nIGZyIGRlc2NyaWJlIEhUVFBfRVhDRVNTSVZFX0VTQ0FQRVMJVVJJOiBDb250aWVudCBkZXMgJS1lc2NhcGVzIG5vbWJyZXV4IGV0IHN1cGVyZmx1cwpsYW5nIGZyIGRlc2NyaWJlIElNUE9URU5DRQkJUHLpdGVuZCBwZXJtZXR0cmUgZGUgY29tYmF0dHJlIGwnaW1wdWlzc2FuY2UKbGFuZyBmciBkZXNjcmliZSBNT1JFX1NFWCAJCVBhcmxlIGQnYXVnbWVudGVyIGxlIGTpc2lyIHNleHVlbApsYW5nIGZyIGRlc2NyaWJlIElOVkFMSURfREFURQkJTCdlbi106nRlIERhdGU6IGVzdCBpbmNvcnJlY3QgKGlsIGNvbnRpZW50IEFNL1BNKQpsYW5nIGZyIGRlc2NyaWJlIElOVkFMSURfREFURV9UWl9BQlNVUkQJTCdlbi106nRlIERhdGU6IGVzdCBpbmNvcnJlY3QgKGxhIHpvbmUgZGUgdGVtcHMgbidleGlzdGUgcGFzKQpsYW5nIGZyIGRlc2NyaWJlIElOVkFMSURfTVNHSUQJCUxlIE1lc3NhZ2UtSUQgZXN0IGludmFsaWRlLCBzZWxvbiBsYSBSRkMtMjgyMgpsYW5nIGZyIGRlc2NyaWJlIElQX0xJTktfUExVUwkJQWRyZXNzZSBJUCBlbiBk6WNpbWFsIHN1aXZpZSBkJ3VuIENHSQpsYW5nIGZyIGRlc2NyaWJlIEpBUEFORVNFX1VDRV9TVUJKRUNUCVN1amV0IGNvbnRpZW50IHVuZSBtYXJxdWUgamFwb25haXNlIGRlIHNwYW0KbGFuZyBmciBkZXNjcmliZSBKT0lOX01JTExJT05TCQlDb250aWVudCAiSm9pbiBNaWxsaW9ucyBvZiBBbWVyaWNhbnMiCmxhbmcgZnIgZGVzY3JpYmUgS09SRUFOX1VDRV9TVUJKRUNUCUxlIHN1amV0IGNvbnRpZW50IGRlcyBjYXJhY3TocmVzIGNvcullbnMKbGFuZyBmciBkZXNjcmliZSBMSVZFX1BPUk4gICAgICAgICAgICAgIFBvcm5vZ3JhcGhpZSBwcm9iYWJsZTogcG9ybm8gZW4gZGlyZWN0LWxpdmUKbGFuZyBmciBkZXNjcmliZSBTVUJKRUNUX0RJRVQgICAgICAgICAgICBMZSBzdWpldCBwYXJsZSBkZSBwZXJ0ZSBkZSBwb2lkcwpsYW5nIGZyIGRlc2NyaWJlIExPV19QUklDRSAgICAgICAgICAgICAgQ29udGllbnQgIkxvd2VzdCBQcmljZSIgKGxlIHByaXggbGUgcGx1cyBiYXMpCmxhbmcgZnIgZGVzY3JpYmUgTUFSS0VUSU5HX1BBUlRORVJTCVBy6XRlbmQgcXVlIHZvdXMgdm91cyDqdGVzIGVucmVnaXN0cukgYXVwcuhzIGQndW4gInBhcnRlbmFpcmUiIHF1ZWxjb25xdWUKI2xhbmcgZnIgZGVzY3JpYmUgTUlMTElPTl9VU0QgCQlQaHJhc2UgY2zpIGQnZXNjcm9xdWVyaWUgbmln6XJpZW5uZSAobWlsbGlvbnMgb2YgZG9sbGFycykKbGFuZyBmciBkZXNjcmliZSBfX01JTUVfQkFTRTY0CQlJbmNsdXQgdW4gYXR0YWNoZW1lbnQgZW4gQkFTRTY0CiNsYW5nIGZyIGRlc2NyaWJlIE1JTUVfQkFTRTY0X0JMQU5LUwlMaWduZSBibGFuY2hlcyBzdXJudW3pcmFpcmVzIGRhbnMgbCdlbmNvZGFnZSBCQVNFNjQKbGFuZyBmciBkZXNjcmliZSBNSU1FX0JBU0U2NF9URVhUCVRleHRlIGR1IG1lc3NhZ2UgY2Ftb3VmbOkgcGFyIGVuY29kYWdlIGVuIEJBU0U2NApsYW5nIGZyIGRlc2NyaWJlIE1JTUVfQk9VTkRfTUFOWV9IRVgJTW90aWYgY2FyYWN06XJpc3RpcXVlIGQnb3V0aWwgZGUgc3BhbSBkYW5zIGxlcyBk6WxpbWl0ZXVycyBNSU1FCmxhbmcgZnIgZGVzY3JpYmUgTUlNRV9DSEFSU0VUX0ZBUkFXQVkJSmV1IGRlIGNhcmFjdOhyZXMgTUlNRSBleG90aXF1ZQpsYW5nIGZyIGRlc2NyaWJlIE1JTUVfSEVBREVSX0NUWVBFX09OTFkgRW4tdOp0ZSAiQ29udGVudC1UeXBlIiBwculzZW50IHNhbnMgbGVzIGVuLXTqdGVzIE1JTUUgcmVxdWlzCmxhbmcgZnIgZGVzY3JpYmUgTUlNRV9IVE1MX01PU1RMWQlNZXNzYWdlIG11bHRpcGFydCBwcmluY2lwYWxlbWVudCBlbiBNSU1FIHRleHQvaHRtbApsYW5nIGZyIGRlc2NyaWJlIE1JTUVfSFRNTF9PTkxZCQlMZSBtZXNzYWdlIHBvc3PoZGUgdW5pcXVlbWVudCBkZXMgcGFydGllcyBNSU1FIHRleHQvaHRtbApsYW5nIGZyIGRlc2NyaWJlIE1JTUVfSFRNTF9PTkxZX01VTFRJCU1lc3NhZ2UgbXVsdGlwYXJ0IHVuaXF1ZW1lbnQgZW4gTUlNRSB0ZXh0L2h0bWwKbGFuZyBmciBkZXNjcmliZSBfX01JTUVfUVAJCUNvbnRpZW50IGVuIGF0dGFjaGVtZW50IGVuIHF1b3RlZC1wcmludGFibGUKbGFuZyBmciBkZXNjcmliZSBNSU1FX1FQX0xPTkdfTElORQlMaWduZSBxdW90ZWQtcHJpbnRhYmxlIGRlIHBsdXMgZGUgNzYgY2FyYWN06HJlcwpsYW5nIGZyIGRlc2NyaWJlIE1JU1NJTkdfSEVBREVSUwlMZSBtZXNzYWdlIG5lIGNvbXBvcnRlIHBhcyBsJ2VuLXTqdGUgVG86CmxhbmcgZnIgZGVzY3JpYmUgTUlTU0lOR19NSU1FT0xFCVBvc3PoZGUgdW4gZW4tdOp0ZSBYLU1TTWFpbC1Qcmlvcml0eSwgbWFpcyBwYXMgZGUgWC1NaW1lT0xFCmxhbmcgZnIgZGVzY3JpYmUgTU9ORVlfQkFDSwkJVm91cyBnYXJhbnRpdCB1biAicmVtYm91cnNlbWVudCBzaSBpbnNhdGlzZmFpdCIgKGVuIGFuZ2xhaXMpCmxhbmcgZnIgZGVzY3JpYmUgTVNHSURfRlJPTV9NVEFfSEVBREVSCU1lc3NhZ2UtSUQgYWpvdXTpIHBhciB1biByZWxhaXMKbGFuZyBmciBkZXNjcmliZSBNU0dJRF9PVVRMT09LX0lOVkFMSUQJTWVzc2FnZS1JRCBmYWxzaWZp6SAoZm9ydG1hdCBPdXRsb29rIEV4cHJlc3MpCmxhbmcgZnIgZGVzY3JpYmUgTVVMVElfRk9SR0VECQlsZXMgZW4tdOp0ZXMgIlJlY2VpdmVkIiBtb250cmVudCBkZSBub21icmV1c2VzIGZhbHNpZmljYXRpb25zCiNsYW5nIGZyIGRlc2NyaWJlIE5BX0RPTExBUlMJCVBhcmxlIGQndW4gbWlsbGlvbiBkZSBkb2xsYXJzICJub3JkLWFt6XJpY2FpbnMiCmxhbmcgZnIgZGVzY3JpYmUgTk9ORVhJU1RFTlRfQ0hBUlNFVAlNZXNzYWdlIHLpZGln6SBkYW5zIHVuIGpldSBkZSBjYXJhY3TocmVzIGluZXhpc3RhbnQKbGFuZyBmciBkZXNjcmliZSBOT1RfQURWSVNPUgkJQ29udGllbnQgIk5vdCByZWdpc3RlcmVkIGludmVzdG1lbnQgYWR2aXNvciIKbGFuZyBmciBkZXNjcmliZSBOT19ETlNfRk9SX0ZST00JQWRyZXNzZSBGcm9tOiBpbmNvbm51ZSBlbiBETlMgKHBhcyBkJ2VucmVnaXN0cmVtZW50IE1YKQpsYW5nIGZyIGRlc2NyaWJlIE5PX01FRElDQUwJCUNvbnRpZW50ICJObyBNZWRpY2FsIEV4YW1zIiAoc2FucyBleGFtZW4gbelkaWNhbCkKbGFuZyBmciBkZXNjcmliZSBOT19SRE5TX0RPVENPTV9IRUxPCUhFTE8gZGUgRi5BLkkuIGltcG9ydGFudCwgbWFpcyBwYXMgZGUgckROUwpsYW5nIGZyIGRlc2NyaWJlIE5VTUVSSUNfSFRUUF9BRERSCVV0aWxpc2UgdW5lIGFkcmVzc2UgSVAsIHNhbnMgcG9pbnRzLCBkYW5zIHVuZSBVUkwKbGFuZyBmciBkZXNjcmliZSBPQkZVU0NBVElOR19DT01NRU5UCUNvbW1lbnRhaXJlcyBIVE1MIGludXRpbGVzIGRlc3RpbulzIOAgY2Ftb3VmbGVyIGxlIHRleHRlCmxhbmcgZnIgZGVzY3JpYmUgT0JTQ1VSRURfRU1BSUwgICAgICAgICBMZSBtZXNzYWdlIHNlbWJsZSBjb250ZW5pciB1bmUgYWRyZXNzZSBtYWlsIGNhbW91ZmzpZSBwYXIgcm90MTMKbGFuZyBmciBkZXNjcmliZSBPTkxJTkVfUEhBUk1BQ1kJUHJvZHVpdHMgcGhhcm1hY2V1dGlxdWVzIGVuIGxpZ25lCmxhbmcgZnIgZGVzY3JpYmUgQk9EWV9FTkhBTkNFTUVOVAkJQXJuYXF1ZSBwcul0ZW5kYW50IGF1Z21lbnRlciBsYSB0YWlsZSBkZSB2b3RyZSBw6W5pcwpsYW5nIGZyIGRlc2NyaWJlIEJPRFlfRU5IQU5DRU1FTlQyCQlBcm5hcXVlIHBy6XRlbmRhbnQgYXVnbWVudGVyIGxhIHRhaWxlIGRlIHZvdHJlIHDpbmlzCmxhbmcgZnIgZGVzY3JpYmUgUExJTkdfUVVFUlkJCUxlIHN1amV0IGEgdW4gcG9pbnQgZCdpbnRlcnJvZ2F0aW9uIEVUIHVuIHBvaW50IGQnZXhjbGFtYXRpb24KbGFuZyBmciBkZXNjcmliZSBQUkVTVF9OT05fQUNDUkVESVRFRAlGYWl0IHLpZulyZW5jZSBhIHVuZSAicHJlc3RpZ2lldXNlIHVuaXZlcnNpdOkiIG5vbiByZWNvbm51ZQpsYW5nIGZyIGRlc2NyaWJlIFJBVFdBUkVfRUdST1VQUwlUcmFjZSBkZSBsb2dpY2llbCBkZSBtYWlsaW5nIGVuIG1hc3NlIChlR3JvdXBzKSBkYW5zIGxlcyBlbi106nRlcwpsYW5nIGZyIGRlc2NyaWJlIFJBVFdBUkVfSEFTSF9EQVNICUNvbnRpZW50IHVuICJoYXNoYnVzdGVyIiBhdSBmb3JtYXQgU2VuZC1TYWZlCmxhbmcgZnIgZGVzY3JpYmUgUkFUV0FSRV9PRV9NQUxGT1JNRUQJRW4tdOp0ZSBYLU1haWxlciBpbmRpcXVlIE5vIGRlIHZlcnNpb24gT3V0bG9vayBFeHByZXNzIG1hbGZvcm3pCmxhbmcgZnIgZGVzY3JpYmUgUkNWRF9BTV9QTQkJRW4tdOp0ZSBSZWNlaXZlZDogZmFsc2lmaekgKEFNL1BNKQpsYW5nIGZyIGRlc2NyaWJlIFJDVkRfRkFLRV9IRUxPX0RPVENPTSAgRW4tdOp0ZSBSZWNlaXZlZCBjb250aWVudCBub20gZCdo9HRlIGZhbHNpZmnpIGRhbnMgbGUgSEVMTwpsYW5nIGZyIGRlc2NyaWJlIFJDVkRfSU5fQkxfU1BBTUNPUF9ORVQJUmVsYWlzIGxpc3TpIGRhbnMgaHR0cDovL3NwYW1jb3AubmV0L2JsLnNodG1sCmxhbmcgZnIgZGVzY3JpYmUgUkNWRF9JTl9TT1JCU19EVUwJRW52b3npIGRpcmVjdGVtZW50IGRlcHVpcyB1bmUgYWRyZXNzZSBJUCBkeW5hbWlxdWUKbGFuZyBmciBkZXNjcmliZSBSQ1ZEX0lOX01BUFNfRFVMCVJlbGFpcyBsaXN06SBkYW5zIERVTCwgaHR0cDovL3d3dy5tYWlsLWFidXNlLm9yZy9kdWwvCmxhbmcgZnIgZGVzY3JpYmUgUkNWRF9JTl9NQVBTX05NTAlSZWxhaXMgbGlzdOkgZGFucyBOTUwsIGh0dHA6Ly93d3cubWFpbC1hYnVzZS5vcmcvbm1sLwpsYW5nIGZyIGRlc2NyaWJlIFJDVkRfSU5fTUFQU19SQkwJUmVsYWlzIGxpc3TpIGRhbnMgUkJMLCBodHRwOi8vd3d3Lm1haWwtYWJ1c2Uub3JnL3JibC8KbGFuZyBmciBkZXNjcmliZSBSQ1ZEX0lOX01BUFNfUlNTCVJlbGFpcyBsaXN06SBkYW5zIFJTUywgaHR0cDovL3d3dy5tYWlsLWFidXNlLm9yZy9yc3MvCmxhbmcgZnIgZGVzY3JpYmUgUkNWRF9JTl9TQkwJCVJlbGFpcyBsaXN06SBkYW5zIGh0dHBzOi8vd3d3LnNwYW1oYXVzLm9yZy9zYmwvCmxhbmcgZnIgZGVzY3JpYmUgUkNWRF9JTl9TT1JCU19CTE9DSwlTT1JCUzogUmVsYWlzIHJlZnVzYW50IGQn6nRyZSB0ZXN06SBwYXIgU09SQlMKbGFuZyBmciBkZXNjcmliZSBSQ1ZEX0lOX1NPUkJTX0hUVFAJU09SQlM6IEVudm956SBwYXIgdW4gcHJveHkgSFRUUCBvdXZlcnQKbGFuZyBmciBkZXNjcmliZSBSQ1ZEX0lOX1NPUkJTX01JU0MJU09SQlM6IEVudm956SBwYXIgdW4gcHJveHkgb3V2ZXJ0CmxhbmcgZnIgZGVzY3JpYmUgUkNWRF9JTl9TT1JCU19TTVRQCVNPUkJTOiBFbnZveekgcGFyIHVuIHJlbGFpcyBTTVRQIG91dmVydApsYW5nIGZyIGRlc2NyaWJlIFJDVkRfSU5fU09SQlNfU09DS1MJU09SQlM6IEVudm956SBwYXIgdW4gcHJveHkgU09DS1Mgb3V2ZXJ0CmxhbmcgZnIgZGVzY3JpYmUgUkNWRF9JTl9TT1JCU19XRUIJU09SQlM6IEVudm956SBkZXB1aXMgdW4gc2VydmV1ciB3ZWIgdnVsbulyYWJsZQpsYW5nIGZyIGRlc2NyaWJlIFJDVkRfSU5fU09SQlNfWk9NQklFCVNPUkJTOiBFbnZveekgZGVwdWlzIHVuIHLpc2VhdSBJUCBwaXJhdOkKbGFuZyBmciBkZXNjcmliZSBSRUZJTkFOQ0VfTk9XICAgICAgICAgIE9mZnJlIGRlIHJlZmluYW5jZW1lbnQgaW1tb2JpbGllcgpsYW5nIGZyIGRlc2NyaWJlIFJFRklOQU5DRV9ZT1VSX0hPTUUJT2ZmcmUgZGUgcmVmaW5hbmNlbWVudCBpbW1vYmlsaWVyCmxhbmcgZnIgZGVzY3JpYmUgU09SVEVEX1JFQ0lQUwkJTGEgbGlzdGUgZGVzIGRlc3RpbmF0YWlyZXMgZXN0IHRyaellIHBhciBvcmRyZSBhbHBoYWLpdGlxdWUKbGFuZyBmciBkZXNjcmliZSBTVE9DS19BTEVSVAkJQ29udGllbnQgbGEgZm9ybXVsZSAic3RvY2sgYWxlcnQiCmxhbmcgZnIgZGVzY3JpYmUgU1RST05HX0JVWQkJQ29udGllbnQgbGEgZm9ybXVsZSAic3Ryb25nIGJ1eSIKbGFuZyBmciBkZXNjcmliZSBTVUJKX0FMTF9DQVBTCQlMZSBzdWpldCBlc3QgZW4gbWFqdXNjdWxlcwpsYW5nIGZyIGRlc2NyaWJlIFNVQkpfQVNfU0VFTgkJTGUgc3VqZXQgY29udGllbnQgIkFzIFNlZW4iIChn6W7pcmFsZW1lbnQgInZ1IOAgbGEgdOls6SIuLi4pCmxhbmcgZnIgZGVzY3JpYmUgU1VCSl9CVVkgICAgICAgICAgICAgICBMZSBzdWpldCBjb21tZW5jZSBwYXIgIkJ1eSwgQnV5aW5nIiAoYWNoZXRleiwgYWNoYXQpCmxhbmcgZnIgZGVzY3JpYmUgU1VCSl9ET0xMQVJTICAgICAgICAgICBMZSBzdWpldCBjb21tZW5jZSBwYXIgdW5lIHNvbW1lIGVuIGRvbGxhcnMKbGFuZyBmciBkZXNjcmliZSBTVUJKX0lMTEVHQUxfQ0hBUlMJU3ViamVjdDogY29udGllbnQgdHJvcCBkZSBjYXJhY3TocmVzIGJydXRzIGludmFsaWRlcwojbGFuZyBmciBkZXNjcmliZSBTVUJKX1lPVVJfREVCVAkJTGUgc3VqZXQgY29udGllbnQgIllvdXIgQmlsbHMiICh2b3MgZmFjdHVyZXMpIG91IHNpbWlsYWlyZQpsYW5nIGZyIGRlc2NyaWJlIFNVQkpfWU9VUl9GQU1JTFkJTGUgc3VqZXQgY29udGllbnQgIllvdXIgRmFtaWx5IiAodm90cmUgZmFtaWxsZSkKbGFuZyBmciBkZXNjcmliZSBTVVNQSUNJT1VTX1JFQ0lQUwlMJ2VuLXTqdGUgVG86IGNvbnRpZW50IHBsdXMgZGUgZGl4IGZvaXMgbGUgbeptZSBub20gZGUgZG9tYWluZQpsYW5nIGZyIGRlc2NyaWJlIFRPX01BTEZPUk1FRAkJTCdlbi106nRlIFRvOiBjb250aWVudCB1bmUgYWRyZXNzZSBtYWwgZm9ybellCmxhbmcgZnIgZGVzY3JpYmUgVFJBQ0tFUl9JRAkJQ29udGllbnQgdW4gbnVt6XJvIHBlcm1ldHRhbnQgZGUgdm91cyBpZGVudGlmaWVyCmxhbmcgZnIgZGVzY3JpYmUgVU5DTEFJTUVEX01PTkVZICAgICAgICBBcmdlbnQgbm9uIHLpY2xhbek6IENoYWN1biBzYWl0IHF1ZSBjJ2VzdCBjb3VyYW50IDstKQpsYW5nIGZyIGRlc2NyaWJlIFVQUEVSQ0FTRV81MF83NQlNZXNzYWdlIGNvbXBvc+kgZGUgNTAg4CA3NSUgZGUgbWFqdXNjdWxlcwpsYW5nIGZyIGRlc2NyaWJlIFVQUEVSQ0FTRV83NV8xMDAJTWVzc2FnZSBjb21wb3PpIGRlIDc1IOAgMTAwJSBkZSBtYWp1c2N1bGVzCmxhbmcgZnIgZGVzY3JpYmUgVVJHX0JJWgkJQ29udGllbnQgbGEgZm9ybXVsZSAidXJnZW50IGJ1c2luZXNzIgpsYW5nIGZyIGRlc2NyaWJlIFVTRVJfSU5fQUxMX1NQQU1fVE8JRGVzdGluYXRhaXJlIHN1ciBsYSBsaXN0ZSAiYWxsX3NwYW1fdG8iIChjb25maWcgU0EgbG9jYWxlKQpsYW5nIGZyIGRlc2NyaWJlIFVTRVJfSU5fQkxBQ0tMSVNUCUV4cOlkaXRldXIgc3VyIGxhIGxpc3RlIG5vaXJlIChjb25maWcgU0EgbG9jYWxlKQpsYW5nIGZyIGRlc2NyaWJlIFVTRVJfSU5fQkxBQ0tMSVNUX1RPICAgRGVzdGluYXRhaXJlIHN1ciBsYSBsaXN0ZSAiYmxhY2tsaXN0X3RvIiAoY29uZmlnIFNBIGxvY2FsZSkKbGFuZyBmciBkZXNjcmliZSBVU0VSX0lOX0RFRl9XSElURUxJU1QJRXhw6WRpdGV1ciBkYW5zIGxhIGxpc3RlIE9LIHBhciBk6WZhdXQgZGUgU3BhbUFzc2Fzc2luCmxhbmcgZnIgZGVzY3JpYmUgVVNFUl9JTl9NT1JFX1NQQU1fVE8JRGVzdGluYXRhaXJlIHN1ciBsYSBsaXN0ZSAibW9yZV9zcGFtX3RvIiAoY29uZmlnIFNBIGxvY2FsZSkKbGFuZyBmciBkZXNjcmliZSBVU0VSX0lOX1dISVRFTElTVAlFeHDpZGl0ZXVyIHN1ciBsYSBsaXN0ZSBibGFuY2hlIChPSykgKGNvbmZpZyBTQSBsb2NhbGUpCmxhbmcgZnIgZGVzY3JpYmUgVVNFUl9JTl9XRUxDT01FTElTVF9UTwlEZXN0aW5hdGFpcmUgc3VyIGxhIGxpc3RlIGJsYW5jaGUgKGNvbmZpZyBTQSkKI2xhbmcgZnIgZGVzY3JpYmUgVVNfRE9MTEFSU18zICAgICAgICAgICBFc2Nyb3EuIG5pZ+lyaWVubmUsIHZlcnNpb24gbW9kaWZp6WUsIHBocmFzZSBjbOkgKCROTixOTk4sTk5OLk5OKQpsYW5nIGZyIGRlc2NyaWJlIERSVUdfRURfT05MSU5FICAgICAgICAgIFZlbnRlIGRlIFZpYWdyYSBwYXIgY29ycmVzcG9uZGFuY2UKbGFuZyBmciBkZXNjcmliZSBXRUlSRF9QT1JUCQlMaWVuIEhUVFAgdmVycyB1biBudW3pcm8gZGUgcG9ydCBub24gc3RhbmRhcmQKbGFuZyBmciBkZXNjcmliZSBXRUlSRF9RVU9USU5HCQlVdGlsaXNhdGlvbiDpdHJhbmdlIGRlIHN5bWJvbGVzIGRlIGNpdGF0aW9ucwpsYW5nIGZyIGRlc2NyaWJlIFdJVEhfTENfU01UUAkJVW5lIGxpZ25lIFJlY2VpdmVkOiBjb250aWVudCB1biBzaWduZSBkZSBzcGFtICgic210cCIgZW4gbWludXNjdWxlcykKCmlmcGx1Z2luIE1haWw6OlNwYW1Bc3Nhc3Npbjo6UGx1Z2luOjpBbnRpVmlydXMKbGFuZyBmciBkZXNjcmliZSBNSU1FX1NVU1BFQ1RfTkFNRSAgICAJTGUgbm9tIGR1IGZpY2hpZXIgam9pbnQgTUlNRSBzZW1ibGUgc3VzcGVjdCAodmlydXMgPykKZW5kaWYKCmlmcGx1Z2luIE1haWw6OlNwYW1Bc3Nhc3Npbjo6UGx1Z2luOjpEQ0MKbGFuZyBmciBkZXNjcmliZSBEQ0NfQ0hFQ0sJCU1lc3NhZ2UgbGlzdOkgcGFyIERDQzogaHR0cDovL3d3dy53d3cuZGNjLXNlcnZlcnMubmV0L2RjYy8KZW5kaWYKCmlmcGx1Z2luIE1haWw6OlNwYW1Bc3Nhc3Npbjo6UGx1Z2luOjpQeXpvcgpsYW5nIGZyIGRlc2NyaWJlIFBZWk9SX0NIRUNLCQlNZXNzYWdlIGxpc3TpIHBhciBQeXpvciwgdm9pciBodHRwczovL3B5em9yLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC8KZW5kaWYKCmlmcGx1Z2luIE1haWw6OlNwYW1Bc3Nhc3Npbjo6UGx1Z2luOjpUZXh0Q2F0CmxhbmcgZnIgZGVzY3JpYmUgQk9EWV84QklUUwkJQ29udGllbnQgcGx1c2lldXJzIGNhcmFjdOhyZXMgOC1iaXRzIGNvbnPpY3V0aWZzCmxhbmcgZnIgZGVzY3JpYmUgVU5XQU5URURfTEFOR1VBR0VfQk9EWQlNZXNzYWdlIGRhbnMgdW5lIGxhbmd1ZSBub24gZOlzaXLpZSAoY29uZmlnIGxvY2FsZSkKZW5kaWYKCmlmcGx1Z2luIE1haWw6OlNwYW1Bc3Nhc3Npbjo6UGx1Z2luOjpBY2Nlc3NEQgpsYW5nIGZyIGRlc2NyaWJlIEFDQ0VTU0RCCQlDZSBtZXNzYWdlIGF1cmFpdCDpdOkgYmxvcXXpIHBhciBhY2Nlc3NkYgplbmRpZgoKbGFuZyBmciBkZXNjcmliZSBOT1JNQUxfSFRUUF9UT19JUCAgICAgVVJJOiBDb250aWVudCB1bmUgYWRyZXNzZSBJUCBlbiBub3RhdGlvbiBk6WNpbWFsZQoK