IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMyBPcGVuIENhbmFyaWFzIFMuTC4gYW5kIG90aGVycy4KIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MjAuaHRtbAojCiMgQ29udHJpYnV0b3JzOgojICAgICBBLiBT4W5jaGV6LUJhcmJ1ZG8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKcGx1Z2luTmFtZSA9IFFWVCBPcGVyYXRpb25hbCBFY29yZS1iYXNlZCBJbXBlcmF0aXZlT0NMIE1vZGVsCnByb3ZpZGVyTmFtZSA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdAoKX1VJX0ltcGVyYXRpdmVPQ0xfY29udGVudF90eXBlID0gRWNvcmUgSW1wZXJhdGl2ZU9DTCBGaWxlCgpfVUlfTm9uQm9vbGVhbkNvbmRpdGlvbl9kaWFnbm9zdGljID0gVGhlIGNvbmRpdGlvbiB0eXBlICh7MH0pIG11c3QgYmUgQm9vbGVhbiB0eXBlLgpfVUlfTWlzc2VkQm9keUV4cHJlc3Npb25fZGlhZ25vc3RpYyA9IE1pc3NlZCBib2R5IGV4cHJlc3Npb24gaW4gdGhlIGltcGVyYXRpdmUgaXRlcmF0ZSBleHByZXNzaW9uICh7MH0pCl9VSV9JbnZhbGlkQ29sbGVjdGlvblZhbHVlX2RpYWdub3N0aWMgPSBUaGUgbW9ub3ZhbHVlZCBsZWZ0IGV4cHJlc3Npb24gKHswfSkgY2FuJyd0IGJlIGFzc2lnbmVkIHRvIGEgbXVsdGl2YWx1ZWQgcmlnaHQgZXhwcmVzc2lvbiAoezF9KQpfVUlfSW52YWxpZElzUmVzZXRfZGlhZ25vc3RpYyA9IFRoZSBsZWZ0IGV4cHJlc3Npb24gKHswfSkgY2FuJyd0IGJlIGFzc2lnbmVkIHdpdGggYWRkaXRpdmUgc2VtYW50aWNzCl9VSV9Ob25Db25mb3JtYW5jZUxlZnRWYWx1ZVR5cGVzX2RpYWdub3N0aWMgPSBUaGUgdmFsdWUgZXhwcmVzc2lvbiAoezF9KSBkb2VzbicndCBjb25mb3JtIHRvIHRoZSBsZWZ0IGV4cHJlc3Npb24gKHswfSkKX1VJX0ludmFsaWRMZWZ0RXhwcmVzc2lvbl9kaWFnbm9zdGljID0gVGhlIGxlZnQgZXhwcmVzc2lvbiAoezB9KSBtdXN0IGJlIGEgdmFyaWFibGUgb3IgYSBwcm9wZXJ0eQpfVUlfUmVmZXJyZWRUeXBlRG9lc05vdENvbmZvcm1XaXRoU291cmNlRWxlbWVudFR5cGVfZGlhZ25vc3RpYyA9IFRoZSByZWZlcnJlZCB0eXBlICh7MH0pIGRvZXNuJyd0IGNvbmZvcm0gdG8gdGhlIHNvdXJjZSBjb2xsZWN0aW9uIGVsZW1lbnQgdHlwZSAoezF9KQpfVUlfTWlzc2VkQ29uZGl0aW9uRXhwcmVzc2lvbl9kaWFnbm9zdGljID0gTWlzc2VkIGNvbmRpdGlvbiBleHByZXNzaW9uIGluIHRoZSBpbXBlcmF0aXZlIGl0ZXJhdGUgZXhwcmVzc2lvbiAoezB9KQpfVUlfSW52YWxpZExpc3RUeXBlTmFtZV9kaWFnbm9zdGljID0gSW52YWxpZCBuYW1lIGZvciB0aGUgTGlzdCB0eXBlICh7MH0pCl9VSV9JbnZhbGlkRGljdGlvbmFyeVR5cGVOYW1lX2RpYWdub3N0aWMgPSBJbnZhbGlkIG5hbWUgZm9yIHRoZSBEaWN0aW9uYXJ5IHR5cGUgKHswfSkKX1VJX1VuZXhwZWN0ZWRCb2R5RXhwcmVzc2lvbl9kaWFnbm9zdGljID0gVW5leHBlY3RlZCBib2R5IGV4cHJlc3Npb24gIGluIHRoZSBpbXBlcmF0aXZlIGl0ZXJhdGUgZXhwcmVzc2lvbiAoezB9KQo=