ZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9pZnBzcDA2MC9mcHNwLmRvYyBiL2FyY2gvbTY4ay9pZnBzcDA2MC9mcHNwLmRvYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDgzMTUyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9tNjhrL2lmcHNwMDYwL2Zwc3AuZG9jCkBAIC0wLDAgKzEsMjk1IEBACit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KK01PVE9ST0xBIE1JQ1JPUFJPQ0VTU09SICYgTUVNT1JZIFRFQ0hOT0xPR1kgR1JPVVAKK002ODAwMCBIaS1QZXJmb3JtYW5jZSBNaWNyb3Byb2Nlc3NvciBEaXZpc2lvbgorTTY4MDYwIFNvZnR3YXJlIFBhY2thZ2UKK1Byb2R1Y3Rpb24gUmVsZWFzZSBQMS4wMCAtLSBPY3RvYmVyIDEwLCAxOTk0CisKK002ODA2MCBTb2Z0d2FyZSBQYWNrYWdlIENvcHlyaWdodCCpIDE5OTMsIDE5OTQgTW90b3JvbGEgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworVEhFIFNPRlRXQVJFIGlzIHByb3ZpZGVkIG9uIGFuICJBUyBJUyIgYmFzaXMgYW5kIHdpdGhvdXQgd2FycmFudHkuCitUbyB0aGUgbWF4aW11bSBleHRlbnQgcGVybWl0dGVkIGJ5IGFwcGxpY2FibGUgbGF3LAorTU9UT1JPTEEgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdIRVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELAorSU5DTFVESU5HIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKK2FuZCBhbnkgd2FycmFudHkgYWdhaW5zdCBpbmZyaW5nZW1lbnQgd2l0aCByZWdhcmQgdG8gdGhlIFNPRlRXQVJFCisoSU5DTFVESU5HIEFOWSBNT0RJRklFRCBWRVJTSU9OUyBUSEVSRU9GKSBhbmQgYW55IGFjY29tcGFueWluZyB3cml0dGVuIG1hdGVyaWFscy4KKworVG8gdGhlIG1heGltdW0gZXh0ZW50IHBlcm1pdHRlZCBieSBhcHBsaWNhYmxlIGxhdywKK0lOIE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIEJFIExJQUJMRSBGT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUgorKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04sIERBTUFHRVMgRk9SIExPU1MgT0YgQlVTSU5FU1MgUFJPRklUUywKK0JVU0lORVNTIElOVEVSUlVQVElPTiwgTE9TUyBPRiBCVVNJTkVTUyBJTkZPUk1BVElPTiwgT1IgT1RIRVIgUEVDVU5JQVJZIExPU1MpCitBUklTSU5HIE9GIFRIRSBVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSEUgU09GVFdBUkUuCitNb3Rvcm9sYSBhc3N1bWVzIG5vIHJlc3BvbnNpYmlsaXR5IGZvciB0aGUgbWFpbnRlbmFuY2UgYW5kIHN1cHBvcnQgb2YgdGhlIFNPRlRXQVJFLgorCitZb3UgYXJlIGhlcmVieSBncmFudGVkIGEgY29weXJpZ2h0IGxpY2Vuc2UgdG8gdXNlLCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoZSBTT0ZUV0FSRQorc28gbG9uZyBhcyB0aGlzIGVudGlyZSBub3RpY2UgaXMgcmV0YWluZWQgd2l0aG91dCBhbHRlcmF0aW9uIGluIGFueSBtb2RpZmllZCBhbmQvb3IKK3JlZGlzdHJpYnV0ZWQgdmVyc2lvbnMsIGFuZCB0aGF0IHN1Y2ggbW9kaWZpZWQgdmVyc2lvbnMgYXJlIGNsZWFybHkgaWRlbnRpZmllZCBhcyBzdWNoLgorTm8gbGljZW5zZXMgYXJlIGdyYW50ZWQgYnkgaW1wbGljYXRpb24sIGVzdG9wcGVsIG9yIG90aGVyd2lzZSB1bmRlciBhbnkgcGF0ZW50cworb3IgdHJhZGVtYXJrcyBvZiBNb3Rvcm9sYSwgSW5jLgorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Cis2ODA2MCBGTE9BVElORy1QT0lOVCBTT0ZUV0FSRSBQQUNLQUdFIChLZXJuZWwgdmVyc2lvbikKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIGZpbGUgZnBzcC5zYSBjb250YWlucyB0aGUgNjgwNjAgRmxvYXRpbmctUG9pbnQgU29mdHdhcmUKK1BhY2thZ2UuIFRoaXMgcGFja2FnZSBpcyBlc3NlbnRpYWxseSBhIHNldCBvZiBleGNlcHRpb24gaGFuZGxlcnMKK3RoYXQgY2FuIGJlIGludGVncmF0ZWQgaW50byBhbiBvcGVyYXRpbmcgc3lzdGVtLgorVGhlc2UgZXhjZXB0aW9uIGhhbmRsZXJzIGVtdWxhdGUgVW5pbXBsZW1lbnRlZCBGUCBpbnN0cnVjdGlvbnMsCitpbnN0cnVjdGlvbnMgdXNpbmcgdW5pbXBsZW1lbnRlZCBkYXRhIHR5cGVzLCBhbmQgaW5zdHJ1Y3Rpb25zCit1c2luZyB1bmltcGxlbWVudGVkIGFkZHJlc3NpbmcgbW9kZXMuIEluIGFkZGl0aW9uLCB0aGlzIHBhY2thZ2UKK2luY2x1ZGVzIGV4Y2VwdGlvbiBoYW5kbGVycyB0byBwcm92aWRlIGZ1bGwgSUVFRS03NTQgY29tcGxpYW50CitleGNlcHRpb24gaGFuZGxpbmcuCisKK1JlbGVhc2UgZmlsZSBmb3JtYXQ6CistLS0tLS0tLS0tLS0tLS0tLS0tLQorVGhlIGZpbGUgZnBzcC5zYSBpcyBlc3NlbnRpYWxseSBhIGhleGFkZWNpbWFsIGltYWdlIG9mIHRoZQorcmVsZWFzZSBwYWNrYWdlLiBUaGlzIGlzIHRoZSBPTkxZIGZvcm1hdCB3aGljaCB3aWxsIGJlIHN1cHBvcnRlZC4KK1RoZSBoZXggaW1hZ2Ugd2FzIGNyZWF0ZWQgYnkgYXNzZW1ibGluZyB0aGUgc291cmNlIGNvZGUgYW5kCit0aGVuIGNvbnZlcnRpbmcgdGhlIHJlc3VsdGluZyBiaW5hcnkgb3V0cHV0IGltYWdlIGludG8gYW4KK0FTQ0lJIHRleHQgZmlsZS4gVGhlIGhleGFkZWNpbWFsIG51bWJlcnMgYXJlIGxpc3RlZAordXNpbmcgdGhlIE1vdG9yb2xhIEFzc2VtYmx5IFN5bnRheCBhc3NlbWJsZXIgZGlyZWN0aXZlICJkYy5sIgorKGRlZmluZSBjb25zdGFudCBsb25nd29yZCkuIFRoZSBmaWxlIGNhbiBiZSBjb252ZXJ0ZWQgdG8gb3RoZXIKK2Fzc2VtYmx5IHN5bnRheGVzIGJ5IHVzaW5nIGFueSB3b3JkIHByb2Nlc3NvciB3aXRoIGEgZ2xvYmFsCitzZWFyY2ggYW5kIHJlcGxhY2UgZnVuY3Rpb24uCisKK1RvIGFzc2lzdCBpbiBhc3NlbWJsaW5nIGFuZCBsaW5raW5nIHRoaXMgbW9kdWxlIHdpdGggb3RoZXIgbW9kdWxlcywKK3RoZSBpbnN0YWxsZXIgc2hvdWxkIGFkZCBhIHN5bWJvbGljIGxhYmVsIHRvIHRoZSB0b3Agb2YgdGhlIGZpbGUuCitUaGlzIHdpbGwgYWxsb3cgY2FsbGluZyByb3V0aW5lcyB0byBhY2Nlc3MgdGhlIGVudHJ5IHBvaW50cworb2YgdGhpcyBwYWNrYWdlLgorCitUaGUgc291cmNlIGNvZGUgZnBzcC5zIGhhcyBhbHNvIGJlZW4gaW5jbHVkZWQgYnV0IG9ubHkgZm9yCitkb2N1bWVudGF0aW9uIHB1cnBvc2VzLgorCitSZWxlYXNlIGZpbGUgc3RydWN0dXJlOgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworKHRvcCBvZiBtb2R1bGUpCisJLS0tLS0tLS0tLS0tLS0tLS0KKwl8CQl8IC0gMTI4IGJ5dGUtc2l6ZWQgc2VjdGlvbgorICAgKDEpICB8ICAgQ2FsbC1PdXQJfCAtIDQgYnl0ZXMgcGVyIGVudHJ5ICh1c2VyIGZpbGxzIHRoZXNlIGluKQorCXwJCXwgLSBleGFtcGxlIHJvdXRpbmVzIGluIGZza2VsZXRvbi5zCisJLS0tLS0tLS0tLS0tLS0tLS0KKwl8CQl8IC0gOCBieXRlcyBwZXIgZW50cnkKKyAgICgyKSAgfCBFbnRyeSBQb2ludAl8IC0gdXNlciBkb2VzICJicmEiIG9yICJqbXAiIHRvIHRoaXMgYWRkcmVzcworCXwJCXwKKwktLS0tLS0tLS0tLS0tLS0tLQorCXwJCXwgLSBjb2RlIHNlY3Rpb24KKyAgICgzKSAgfgkJfgorCXwJCXwKKwktLS0tLS0tLS0tLS0tLS0tLQorKGJvdHRvbSBvZiBtb2R1bGUpCisKK1RoZSBmaXJzdCBzZWN0aW9uIG9mIHRoaXMgbW9kdWxlIGlzIHRoZSAiQ2FsbC1vdXQiIHNlY3Rpb24uIFRoaXMgc2VjdGlvbgoraXMgTk9UIElOQ0xVREVEIGluIGZwc3Auc2EgKGFuIGV4YW1wbGUgIkNhbGwtb3V0IiBzZWN0aW9uIGlzIHByb3ZpZGVkIGF0Cit0aGUgZW5kIG9mIHRoZSBmaWxlIGZza2VsZXRvbi5zKS4gVGhlIHB1cnBvc2Ugb2YgdGhpcyBzZWN0aW9uIGlzIHRvIGFsbG93Cit0aGUgRlBTUCByb3V0aW5lcyB0byByZWZlcmVuY2UgZXh0ZXJuYWwgZnVuY3Rpb25zIHRoYXQgbXVzdCBiZSBwcm92aWRlZAorYnkgdGhlIGhvc3Qgb3BlcmF0aW5nIHN5c3RlbS4gVGhpcyBzZWN0aW9uIE1VU1QgYmUgZXhhY3RseSAxMjggYnl0ZXMgaW4KK3NpemUuIFRoZXJlIGFyZSAzMiBmaWVsZHMsIGVhY2ggNCBieXRlcyBpbiBzaXplLiBFYWNoIGZpZWxkIGNvcnJlc3BvbmRzCit0byBhIGZ1bmN0aW9uIHJlcXVpcmVkIGJ5IHRoZSBGUFNQICh0aGVzZSBmdW5jdGlvbnMgYW5kIHRoZWlyIGxvY2F0aW9uIGFyZQorbGlzdGVkIGluICI2ODA2MEZQU1AgY2FsbC1vdXRzIiBiZWxvdykuIEVhY2ggZmllbGQgZW50cnkgc2hvdWxkIGNvbnRhaW4KK3RoZSBhZGRyZXNzIG9mIHRoZSBjb3JyZXNwb25kaW5nIGZ1bmN0aW9uIFJFTEFUSVZFIHRvIHRoZSBzdGFydGluZyBhZGRyZXNzCitvZiB0aGUgImNhbGwtb3V0IiBzZWN0aW9uLiBUaGUgIkNhbGwtb3V0IiBzZWN0aW9uIG11c3Qgc2l0IGFkamFjZW50IHRvIHRoZQorZnBzcC5zYSBpbWFnZSBpbiBtZW1vcnkuCisKK1RoZSBzZWNvbmQgc2VjdGlvbiwgdGhlICJFbnRyeS1wb2ludCIgc2VjdGlvbiwgaXMgdXNlZCBieSBleHRlcm5hbCByb3V0aW5lcwordG8gYWNjZXNzIHRoZSBmdW5jdGlvbnMgd2l0aGluIHRoZSBGUFNQLiBTaW5jZSB0aGUgZnBzcC5zYSBoZXggZmlsZSBjb250YWlucworbm8gc3ltYm9sIG5hbWVzLCB0aGlzIHNlY3Rpb24gY29udGFpbnMgZnVuY3Rpb24gZW50cnkgcG9pbnRzIHRoYXQgYXJlIGZpeGVkCit3aXRoIHJlc3BlY3QgdG8gdGhlIHRvcCBvZiB0aGUgcGFja2FnZS4gVGhlIGN1cnJlbnRseSBkZWZpbmVkIGVudHJ5LXBvaW50cworYXJlIGxpc3RlZCBpbiBzZWN0aW9uICI2ODA2MCBGUFNQIGVudHJ5IHBvaW50cyIgYmVsb3cuIEEgY2FsbGluZyByb3V0aW5lCit3b3VsZCBzaW1wbHkgZXhlY3V0ZSBhICJicmEiIG9yICJqbXAiIHRoYXQganVtcGVkIHRvIHRoZSBzZWxlY3RlZCBmdW5jdGlvbgorZW50cnktcG9pbnQuCisKK0ZvciBleGFtcGxlLCBpZiB0aGUgNjgwNjAgaGFyZHdhcmUgdG9vayBhICJMaW5lLUYgRW11bGF0b3IiIGV4Y2VwdGlvbgorKHZlY3RvciAjMTEpLCB0aGUgb3BlcmF0aW5nIHN5c3RlbSBzaG91bGQgZXhlY3V0ZSBzb21ldGhpbmcgc2ltaWxhciB0bzoKKworCWJyYQlfMDYwRlBTUF9UT1ArMTI4KzQ4CisKKyhfMDYwRlBTUF9UT1AgaXMgdGhlIHN0YXJ0aW5nIGFkZHJlc3Mgb2YgdGhlICJDYWxsLW91dCIgc2VjdGlvbjsgdGhlICJDYWxsLW91dCIKK3NlY3Rpb24gaXMgMTI4IGJ5dGVzIGxvbmc7IGFuZCB0aGUgRi1MaW5lIEZQU1AgaGFuZGxlciBlbnRyeSBwb2ludCBpcyBsb2NhdGVkCis0OCBieXRlcyBmcm9tIHRoZSB0b3Agb2YgdGhlICJFbnRyeS1wb2ludCIgc2VjdGlvbi4pCisKK1RoZSB0aGlyZCBzZWN0aW9uIGlzIHRoZSBjb2RlIHNlY3Rpb24uIEFmdGVyIGVudGVyaW5nIHRocm91Z2ggYW4gIkVudHJ5LXBvaW50IiwKK3RoZSBlbnRyeSBjb2RlIGp1bXBzIHRvIHRoZSBhcHByb3ByaWF0ZSBlbXVsYXRpb24gY29kZSB3aXRoaW4gdGhlIGNvZGUgc2VjdGlvbi4KKworNjgwNjBGUFNQIGNhbGwtb3V0czogKGRldGFpbHMgaW4gZnNrZWxldG9uLnMpCistLS0tLS0tLS0tLS0tLS0tLS0tLQorMHgwMDA6CV8wNjBfcmVhbF9ic3VuCisweDAwNDoJXzA2MF9yZWFsX3NuYW4KKzB4MDA4OglfMDYwX3JlYWxfb3BlcnIKKzB4MDBjOglfMDYwX3JlYWxfb3ZmbAorMHgwMTA6CV8wNjBfcmVhbF91bmZsCisweDAxNDoJXzA2MF9yZWFsX2R6CisweDAxODoJXzA2MF9yZWFsX2luZXgKKzB4MDFjOglfMDYwX3JlYWxfZmxpbmUKKzB4MDIwOglfMDYwX3JlYWxfZnB1X2Rpc2FibGVkCisweDAyNDoJXzA2MF9yZWFsX3RyYXAKKzB4MDI4OglfMDYwX3JlYWxfdHJhY2UKKzB4MDJjOglfMDYwX3JlYWxfYWNjZXNzCisweDAzMDoJXzA2MF9mcHNwX2RvbmUKKworMHgwMzQ6CShNb3Rvcm9sYSByZXNlcnZlZCkKKzB4MDM4OgkoTW90b3JvbGEgcmVzZXJ2ZWQpCisweDAzYzoJKE1vdG9yb2xhIHJlc2VydmVkKQorCisweDA0MDoJXzA2MF9pbWVtX3JlYWQKKzB4MDQ0OglfMDYwX2RtZW1fcmVhZAorMHgwNDg6CV8wNjBfZG1lbV93cml0ZQorMHgwNGM6CV8wNjBfaW1lbV9yZWFkX3dvcmQKKzB4MDUwOglfMDYwX2ltZW1fcmVhZF9sb25nCisweDA1NDoJXzA2MF9kbWVtX3JlYWRfYnl0ZQorMHgwNTg6CV8wNjBfZG1lbV9yZWFkX3dvcmQKKzB4MDVjOglfMDYwX2RtZW1fcmVhZF9sb25nCisweDA2MDoJXzA2MF9kbWVtX3dyaXRlX2J5dGUKKzB4MDY0OglfMDYwX2RtZW1fd3JpdGVfd29yZAorMHgwNjg6CV8wNjBfZG1lbV93cml0ZV9sb25nCisKKzB4MDZjOgkoTW90b3JvbGEgcmVzZXJ2ZWQpCisweDA3MDoJKE1vdG9yb2xhIHJlc2VydmVkKQorMHgwNzQ6CShNb3Rvcm9sYSByZXNlcnZlZCkKKzB4MDc4OgkoTW90b3JvbGEgcmVzZXJ2ZWQpCisweDA3YzoJKE1vdG9yb2xhIHJlc2VydmVkKQorCis2ODA2MEZQU1AgZW50cnkgcG9pbnRzOgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzB4MDAwOglfMDYwX2Zwc3Bfc25hbgorMHgwMDg6CV8wNjBfZnBzcF9vcGVycgorMHgwMTA6CV8wNjBfZnBzcF9vdmZsCisweDAxODoJXzA2MF9mcHNwX3VuZmwKKzB4MDIwOglfMDYwX2Zwc3BfZHoKKzB4MDI4OglfMDYwX2Zwc3BfaW5leAorMHgwMzA6CV8wNjBfZnBzcF9mbGluZQorMHgwMzg6CV8wNjBfZnBzcF91bnN1cHAKKzB4MDQwOglfMDYwX2Zwc3BfZWZmYWRkCisKKworCitNaXNjZWxsYW5lb3VzOgorLS0tLS0tLS0tLS0tLS0KKworXzA2MF9mcHNwX3NuYW46CistLS0tLS0tLS0tLS0tLS0tCistIGRvY3VtZW50ZWQgaW4gMy41IG9mIDA2MFNQIHNwZWMuCistIEJhc2ljIGZsb3c6CisJZXhjZXB0aW9uIHRha2VuIC0tLT4gZW50ZXIgXzA2MF9mcHNwX3NuYW4gLS18CisJCQkJCQkgICAgfAorICAgICAgICAgICAgYWx3YXlzIGV4aXRzIHRocm91Z2ggXzA2MF9yZWFsX3NuYW4gPC0tLS0KKworXzA2MF9mcHNwX29wZXJyOgorLS0tLS0tLS0tLS0tLS0tLQorLSBkb2N1bWVudGVkIGluIDMuNSBvZiAwNjBTUCBzcGVjLgorLSBCYXNpYyBmbG93OgorCWV4Y2VwdGlvbiB0YWtlbiAtLS0+IGVudGVyIF8wNjBfZnBzcF9vcGVyciAtLXwKKwkJCQkJCSAgICAgfAorICAgICAgICAgICBhbHdheXMgZXhpdHMgdGhyb3VnaCBfMDYwX3JlYWxfb3BlcnIgPC0tLS0tCisKK18wNjBfZnBzcF9kejoKKy0tLS0tLS0tLS0tLS0tLS0KKy0gZG9jdW1lbnRlZCBpbiAzLjcgb2YgMDYwU1Agc3BlYy4KKy0gQmFzaWMgZmxvdzoKKwlleGNlcHRpb24gdGFrZW4gLS0tPiBlbnRlciBfMDYwX2Zwc3BfZHogICAtLXwKKwkJCQkJCSAgICB8CisgICAgICAgICAgICBhbHdheXMgZXhpdHMgdGhyb3VnaCBfMDYwX3JlYWxfZHogICA8LS0tLQorCitfMDYwX2Zwc3BfaW5leDoKKy0tLS0tLS0tLS0tLS0tLS0KKy0gZG9jdW1lbnRlZCBpbiAzLjYgb2YgMDYwU1Agc3BlYy4KKy0gQmFzaWMgZmxvdzoKKwlleGNlcHRpb24gdGFrZW4gLS0tPiBlbnRlciBfMDYwX2Zwc3BfaW5leCAtLXwKKwkJCQkJCSAgICB8CisgICAgICAgICAgICBhbHdheXMgZXhpdHMgdGhyb3VnaCBfMDYwX3JlYWxfaW5leCA8LS0tLQorCisKK18wNjBfZnBzcF9vdmZsOgorLS0tLS0tLS0tLS0tLS0tLQorLSBkb2N1bWVudGVkIGluIDMuNCBvZiAwNjBTUCBzcGVjLgorLSBCYXNpYyBmbG93OgorCWV4Y2VwdGlvbiB0YWtlbiAtLS0+IGVudGVyIF8wNjBfZnBzcF9vdmZsIC0tfAorCQkJCQkJICAgIHwKKyAgICAgICAgICAgIG1heSBleGl0IHRocm91Z2ggXzA2MF9yZWFsX2luZXggICAgIDwtLS18CisJCQkJCQkgb3IgfAorICAgICAgICAgICAgbWF5IGV4aXQgdGhyb3VnaCBfMDYwX3JlYWxfb3ZmbCAgICAgPC0tLXwKKwkJCQkJCSBvciB8CisgICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfZnBzcF9kb25lICAgICA8LS0tfAorCitfMDYwX2Zwc3BfdW5mbDoKKy0tLS0tLS0tLS0tLS0tLS0KKy0gZG9jdW1lbnRlZCBpbiAzLjQgb2YgMDYwU1Agc3BlYy4KKy0gQmFzaWMgZmxvdzoKKwlleGNlcHRpb24gdGFrZW4gLS0tPiBlbnRlciBfMDYwX2Zwc3BfdW5mbCAtLXwKKwkJCQkJCSAgICB8CisgICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF9pbmV4ICAgICA8LS0tfAorCQkJCQkJIG9yIHwKKyAgICAgICAgICAgIG1heSBleGl0IHRocm91Z2ggXzA2MF9yZWFsX3VuZmwgICAgIDwtLS18CisJCQkJCQkgb3IgfAorICAgICAgICAgICAgbWF5IGV4aXQgdGhyb3VnaCBfMDYwX2Zwc3BfZG9uZSAgICAgPC0tLXwKKworCitfMDYwX2Zwc3BfZmxpbmU6CistLS0tLS0tLS0tLS0tLS0tLQorLSBub3QgZnVsbHkgZG9jdW1lbnRlZCBpbiAwNjBTUCBzcGVjLgorLSBCYXNpYyBmbG93OgorCWV4Y2VwdGlvbiB0YWtlbiAtLS0+IGVudGVyIF8wNjBfZnBzcF9mbGluZSAtLXwKKwkJCQkJCSAgICAgfAorICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICB2ICAgICAgICAgICAgICAgdiAgICAgICAgICAgICAgICAgICAgIHYKKyAgICh1bmltcGxlbWVudGVkICAgKGZwdSBkaXNhYmxlZCkgICAgICAgKHBvc3NpYmxlIEYtbGluZSBpbGxlZ2FsKQorICAgICBzdGFjayBmcmFtZSkgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB2CisgICAgICAgICAgICB8ICAgICAgICAgICAgICAgdiAgICAgICAgICAgICAgIHNwZWNpYWwgY2FzZSAiZm1vdmVjciI/CisgICAgICAgICAgICB8ICAgICAgICAgZXhpdCB0aHJvdWdoICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICB8ICAgICBfMDYwX3JlYWxfZnB1X2Rpc2FibGVkICAgICAgICAtLS0tLS0tLS0tLS0tCisgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8CisgICAgICAgICAgICB8ICAgICAgICAgICAgICAgXiAgICAgICAgICAgICAgICAgICB2ICAgICAgICAgICB2CisgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgKHllcykgICAgICAgIChubykKKyAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHYgICAgICAgICAgIHYKKyAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIGZwdSBkaXNhYmxlZD8gICBleGl0IHRocm91Z2gKKyAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBfMDYwX3JlYWxfZmxpbmUKKyAgICAgICAgICAgIHYgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICAgIHwKKyAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIHYgICAgICAgICAgIHYKKyAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0oeWVzKSAgICAgICAgKG5vKQorICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgfC0tLS08LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAorICAgICAgICAgICAgfAorICAgICAgICAgICAgfAorICAgICAgICAgICAgfC0tLS0+IG1heSBleGl0IHRocm91Z2ggXzA2MF9yZWFsX3RyYWNlCisgICAgICAgICAgICB8CisgICAgICAgICAgICB8LS0tLT4gbWF5IGV4aXQgdGhyb3VnaCBfMDYwX3JlYWxfdHJhcAorICAgICAgICAgICAgfAorICAgICAgICAgICAgfC0tLS0+IG1heSBleGl0IHRocm91Z2ggXzA2MF9yZWFsX2JzdW4KKyAgICAgICAgICAgIHwKKyAgICAgICAgICAgIHwtLS0tPiBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfZnBzcF9kb25lCisKKworXzA2MF9mcHNwX3Vuc3VwcDoKKy0tLS0tLS0tLS0tLS0tLS0tLQorLSBkb2N1bWVudGVkIGluIDMuMSBvZiAwNjBTUCBzcGVjLgorLSBCYXNpYyBmbG93OgorCWV4Y2VwdGlvbiB0YWtlbiAtLS0+IGVudGVyIF8wNjBfZnBzcF91bnN1cHAgLS18CisJCQkJCQkgICAgICB8CisJCQkJCQkgICAgICB8CisgICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF9zbmFuICAgICAgPC0tLS18CisJCQkJCQkgIG9yICB8CisgICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF9vcGVyciAgICAgPC0tLS18CisJCQkJCQkgIG9yICB8CisgICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF9vdmZsICAgICAgPC0tLS18CisJCQkJCQkgIG9yICB8CisgICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF91bmZsICAgICAgPC0tLS18CisJCQkJCQkgIG9yICB8CisgICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF9pbmV4ICAgICAgPC0tLS18CisJCQkJCQkgIG9yICB8CisgICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF90cmFjZSAgICAgPC0tLS18CisJCQkJCQkgIG9yICB8CisgICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfZnBzcF9kb25lICAgICAgPC0tLS18CisKKworXzA2MF9mcHNwX2VmZmFkZDoKKy0tLS0tLS0tLS0tLS0tLS0tLQorLSBkb2N1bWVudGVkIGluIDMuMyBvZiAwNjAgc3BlYy4KKy0gQmFzaWMgZmxvdzoKKwlleGNlcHRpb24gdGFrZW4gLS0tPiBlbnRlciBfMDYwX2Zwc3BfZWZmYWRkIC0tfAorCQkJCQkJICAgICAgfAorCQkJCQkJICAgICAgfAorICAgICAgICAgICAgbWF5IGV4aXQgdGhyb3VnaCBfMDYwX3JlYWxfdHJhY2UgICAgIDwtLS0tfAorCQkJCQkJICBvciAgfAorICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF9mcHVfZGlzYWJsZWQgICAgIDwtLS0tfAorCQkJCQkJICBvciAgfAorICAgICAgICAgICAgbWF5IGV4aXQgdGhyb3VnaCBfMDYwX2Zwc3BfZG9uZSAgICAgIDwtLS0tfAo=