ZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvTWFrZV9hbGwubWFrIGIvcnVudGltZS90dXRvci9NYWtlX2FsbC5tYWsKaW5kZXggMDFmZDEyZC4uYWFmYzM5NiAxMDA2NDQKLS0tIGEvcnVudGltZS90dXRvci9NYWtlX2FsbC5tYWsKKysrIGIvcnVudGltZS90dXRvci9NYWtlX2FsbC5tYWsKQEAgLTQxLDcgKzQxLDggQEAKIAkJdHV0b3IxLnpoLnV0Zi04CiAKIENIQVBURVIyID0gXAotCQl0dXRvcjIKKwkJdHV0b3IyIFwKKwkJdHV0b3IyLml0CiAKIENPTlZFUlRFRCA9ICQoQ0hBUFRFUjEpICQoQ0hBUFRFUjIpCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IyLml0IGIvcnVudGltZS90dXRvci90dXRvcjIuaXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwNGIzNQotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IyLml0CkBAIC0wLDAgKzEsMTk3IEBACis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cis9ICAgIEJlbnZlbnV0byAgYWxsYSAgIEcgdSBpIGQgYSAgICBhbGwnRWRpdG9yICAgViBJIE0gICAtICAgIFZlcnNpb25lIDEuNyAgICA9Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cis9CQkJICBDIEEgUCBJIFQgTyBMIE8gICBEVUUJCQkJICAgICAgPQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgIEhpYyBTdW50IERyYWNvbmVzOiBTZSBxdWVzdGEg6CBsYSBwcmltYSB2b2x0YSBjaGUgdmkgYWNjb3N0YXRlIGEgdmltCisgICAgIGUgcHJlZmVyaXRlIGluaXppYXJlIGRhbCBjYXBpdG9sbyBpbnRyb2R1dHRpdm8sIGdlbnRpbG1lbnRlIGltbWV0dGV0ZQorICAgICA6cTxJTlZJTz4gZSBwb2kgaW5pemlhdGUgZGEgcXVlbGxvLgorCisgICAgIElsIHRlbXBvIG5lY2Vzc2FyaW8gcGVyIGNvbXBsZXRhcmUgcXVlc3RvIGNhcGl0b2xvIOggZGkgY2lyY2EgOC0xMAorICAgICBtaW51dGksIGEgc2Vjb25kYSBkZWwgdGVtcG8gdXRpbGl6emF0byBwZXIgZmFyZSBkZWxsZSBwcm92ZS4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQlMZXppb25lIDIuMS4xOiBJIFJFR0lTVFJJIENPTiBOT01FCisKKworICAgICAgICAgKiogQ29waWFyZSBkdWUgcGFyb2xlIGluIHJlZ2lzdHJpIGRpdmVyc2kgZSBwb2kgaW5jb2xsYXJsZSAqKgorCisgIDEuIFNwb3N0YXRlIGlsIGN1cnNvcmUgYWxsYSByaWdhIHF1aSBzb3R0byBtYXJjYXRhIGNvbiAtLS0+CisKKyAgMi4gQW5kYXRlIHN1IHVuYSBsZXR0ZXJhIHF1YWxzaWFzaSBkaSAnRWR3YXJkJyBlIGJhdHRldGUgImF5aXcKKworTU5FTU9OSUNPOiBuZWwgcmVnaXN0cm8oIikgZGkgbm9tZSAoYSkgKHkpY29waWEgKGkpaW50ZXJuYSAodylwYXJvbGEKKworICAzLiBTcG9zdGF0ZXZpIGFsbGEgcGFyb2xhICdiaXNjb3R0aScgKGZjIG8gMmZiIG8gJGIgbyAvYmlzPElOVklPPikKKyAgICAgZSBiYXR0ZXRlICAgImJ5aXcKKworICA0LiBBbmRhdGUgc3UgdW5hIGxldHRlcmEgcXVhbHNpYXNpIGRpICdWaW5jZScgZSBiYXR0ZXRlICAgY2l3PEMtcj5hPEVTQz4KKworTU5FTU9OSUNPOiAoYyljYW1iaWEgKGkpaW50ZXJuYSAodylwYXJvbGEgY29uIDxDb250ZW51dG8gKHIpZWdpc3Rybz4gZGkgbm9tZSAoYSkKKworICA1LiBBbmRhdGUgc3UgdW5hIGxldHRlcmEgcXVhbHNpYXNpIGRpICdkb2xjaScgZSBiYXR0ZXRlICAgY2l3PEMtcj5iPEVTQz4KKworLS0tPiAgYSkgRWR3YXJkIHNhcuAgZCdvcmEgaW4gcG9pIHJlc3BvbnNhYmlsZSBkZWxsYSByYXppb25lIGRpIGJpc2NvdHRpCisgICAgICBiKSBDb21lIGNvbXBpdG8sIFZpbmNlIHNhcuAgaWwgc29sbyBhIGRlY2lkZXJlIHJpZ3VhcmRvIGFpIGRvbGNpCisKK05PVEE6IEFuY2hlIHVuYSBwYXJvbGEgY2FuY2VsbGF0YSBwdfIgZXNzZXJlIGludmlhdGEgYWQgdW4gcmVnaXN0cm8sIHAuZXMuLAorICAgICAgInNkaXcgY2FuY2VsbGVy4CAoZCkgbGEgcGFyb2xhIHNvdHRvIGlsIGN1cnNvcmUgKGl3KSBlIGxhIG1ldHRlcuAKKyAgICAgIG5lbCByZWdpc3RybyAocykKK1JJRkVSSU1FTlRJOiAJUmVnaXN0cmkgCSAgOmggcmVnaXN0ZXJzCisJCVJlZ2lzdHJpIGNvbiBub21lIDpoIHF1b3RlYQorCQlNb3ZpbWVudG8JICA6aCBtb3Rpb24udHh0PElOVklPPiAvaW5uZXI8SU5WSU8+CisJCUNUUkwtUgkJICA6aCBpbnNlcnQ8SU5WSU8+IC9DVFJMLVI8SU5WSU8+CisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisJCQlMZXppb25lIDIuMS4yOiBJTCBSRUdJU1RSTyBERUxMRSBFU1BSRVNTSU9OSQorCisKKwkgICAgICAgKiogSW5zZXJpcmUgYWwgdm9sbyByaXN1bHRhdGkgZGkgdW4gY2FsY29sbyAqKgorCisgIDEuIFNwb3N0YXRlIGlsIGN1cnNvcmUgYWxsYSByaWdhIHF1aSBzb3R0byBtYXJjYXRhIGNvbiAtLS0+CisKKyAgMi4gQW5kYXRlIHN1IHVuIHB1bnRvIHF1YWxzaWFzaSBkZWwgbnVtZXJvIGZvcm5pdG8KKworICAzLiBCYXR0ZXRlIGNpdzxDLXI+PTYwKjYwKjI0PElOVklPPgorCisgIDQuIFN1bGxhIHJpZ2Egc2VndWVudGUsIGVudHJhdGUgaW4gbW9kbyBJbnNlcnQgZSBhZ2dpdW5nZXRlCisgICAgIGxhIGRhdGEgZGkgb2dnaSBjb24gPEMtcj49c3lzdGVtKCdkYXRlJyk8SU5WSU8+CisKK05PVEE6IFR1dHRlIGxlIGNoaWFtYXRlIGEgc2lzdGVtYSBkaXBlbmRvbm8gZGFsIFMuTy4sIHAuZXMuLCBpbiBhbWJpZW50ZQorICAgICAgV2luZG93cyBzaSB1c2EgICAgc3lzdGVtKCdkYXRlIC90JykgICBvICA6ciFkYXRlIC90CisKKy0tLT4gTm9uIHJpY29yZG8gaWwgbnVtZXJvIGVzYXR0byBkaSBzZWNvbmRpIGluIHVuIGdpb3Jubywg6CA4NDYwMD8KKyAgICAgTGEgZGF0YSBkaSBvZ2dpIOg6IAorCitOT1RBOiBMbyBzdGVzc28gcmlzdWx0YXRvIHNpIHB18iBvdHRlbmVyZSBjb24gICA6cHU9c3lzdGVtKCdkYXRlJykKKyAgICAgIG8sIGFuY29yYSBwafkgYnJldmVtZW50ZSwgY29uICA6ciFkYXRlCisKK1JJRkVSSU1FTlRJOiAJUmVnaXN0cm8gZXNwcmVzc2lvbmkJOmggcXVvdGU9CisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisJCQlMZXppb25lIDIuMS4zOiBJIFJFR0lTVFJJIE5VTUVSQVRJCisKKworCSAgICAqKiBCYXR0ZXJlIHl5IGUgZGQgcGVyIHZlZGVyZSBsJ2VmZmV0dG8gc3VpIHJlZ2lzdHJpICoqCisKKyAgMS4gU3Bvc3RhdGUgaWwgY3Vyc29yZSBhbGxhIHJpZ2EgcXVpIHNvdHRvIG1hcmNhdGEgY29uIC0tLT4KKworICAyLiBDb3BpYXRlICh5eSkgbGEgcmlnYSBzdGVzc2EgZSBjb250cm9sbGF0ZSBpIHJlZ2lzdHJpIGNvbiA6cmVnPElOVklPPgorCisgIDMuIENhbmNlbGxhdGUgbGEgcmlnYSBjaGUgaW5pemlhIGNvbiAiMC4iIGNvbiAiY2RkLCBwb2kgY29udHJvbGxhdGUgaQorICAgICByZWdpc3RyaSAoRG92ZSB2aSBhc3BldHRhdGUgc2lhIGZpbml0YSBsYSByaWdhIGNhbmNlbGxhdGE/KQorCisgIDQuIENvbnRpbnVhdGUgYSBjYW5jZWxsYXJlIG9nbmkgcmlnYSBzZWd1ZW50ZSwgY29udHJvbGxhbmRvIG9nbmkgdm9sdGEKKyAgICAgY29uIDpyZWcgaWwgcmlzdWx0YXRvCitOT1RBOiBEb3ZyZXN0ZSBub3RhcmUgY2hlIGxlIHJpZ2hlIGNhbmNlbGxhdGUgcGVyIHByaW1lIHNjZW5kb25vIG5lbGxhCisgICAgICBsaXN0YSwgbWFuIG1hbm8gY2hlIHZlbmdvbm8gYWdnaXVudGUgbnVvdmUgcmlnaGUgY2FuY2VsbGF0ZQorICA1LiBQb2kgaW5jb2xsYXRlIChwKSBpIHNlZ3VlbnRpIHJlZ2lzdHJpIG5lbGwnb3JkaW5lOyBjLCA3LCA0LCA4LCAyLisKKyAgICAgb3NzaWEgImNwICI3cCAuLi4KKworLS0tPiAwLiBRdWVzdG8KKyAgICAgOS4gZG9uZG9sYW50ZQorICAgICA4LiBtZXNzYWdnaW8KKyAgICAgNy4g6AorICAgICA2LiBpbgorICAgICA1LiBhc3NlCisgICAgIDQuIHVuCisgICAgIDMuIGd1ZXJyZXNjbworICAgICAyLiBzZWdyZXRvCisgICAgIDEuIHRyaWJ1dG8KKworTk9UQTogTGUgY2FuY2VsbGF6aW9uaSBkaSByaWdoZSBpbnRlcmUgKGRkKSBzb3ByYXZ2aXZvbm8gbmVpIHJlZ2lzdHJpIG51bWVyYXRpCisgICAgICBtb2x0byBwafkgYSBsdW5nbyBkZWxsZSBjb3BpZSBkaSByaWdoZSBpbnRlcmUgKHl5KSwgbyBkZWxsZQorICAgICAgY2FuY2VsbGF6aW9uaSBjaGUgaW1wbGljYW5vIG1vdmltZW50aSBtaW5vcmkKKworUklGRVJJTUVOVEk6IAlSZWdpc3RyaSBudW1lcmF0aSAJOmggcXVvdGUwCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisJCQlMZXppb25lIDIuMS40OiBJTCBGQVNDSU5PIERFTExFIE1BUkNBVFVSRQorCisKKwkgICAgICAgICAqKiBFdml0YXJlIGRpIGNvbnRhcmUgbGUgcmlnaGUgZGkgY29kaWNlICoqCisKK05PVEE6IFVuIHByb2JsZW1hIGZyZXF1ZW50ZSBxdWFuZG8gc2kgc2NyaXZvbm8gcHJvZ3JhbW1pIOggc3Bvc3RhcmUgbnVtZXJvc2UKKyAgICAgIHJpZ2hlIGRpIGNvZGljZS4gSWwgbWV0b2RvIHNlZ3VlbnRlIGV2aXRhIGRpIGRvdmVyIGNhbGNvbGFyZSBudW1lcmkgZGkKKyAgICAgIHJpZ2EgY29uIG9wZXJhemlvbmkgdGlwbyAgICJhMTQ3ZCAgbyAgOjk0NSwxMDkxZCBhICBvLCBhbmNvciBwZWdnaW8sCisgICAgICB1c2FuZG8gcHJpbWEgaTxDLXI+PTEwOTEtOTQ1PElOVklPPgorCisgIDEuIFNwb3N0YXRlIGlsIGN1cnNvcmUgYWxsYSByaWdhIHF1aSBzb3R0byBtYXJjYXRhIGNvbiAtLS0+CisKKyAgMi4gQW5kYXRlIGFsbGEgcHJpbWEgcmlnYSBkZWxsYSBmdW56aW9uZSBlIG1hcmNhdGVsYSBjb24gICBtYQorCitOT1RBOiBMYSBwb3NpemlvbmUgc3VsbGEgcmlnYSBOT04g6CBpbXBvcnRhbnRlIQorCisgIDMuIFNwb3N0YXRldmkgYSBmaW5lIHJpZ2EgZSBkYSBxdWkgYWxsYSBmaW5lIGRlbCBibG9jY28gZGkgY29kaWNlCisgICAgIGNvbiAgICQlCisKKyAgNC4gQ2FuY2VsbGF0ZSBpbCBibG9jY28gc2FsdmFuZG9sbyBuZWwgcmVnaXN0cm8gYSBjb24gICAiYWQnYQorCitNTkVNT05JQ086IG5lbCByZWdpc3RybygiKSBkaSBub21lIChhKSBtZXR0ZXJlIGxhIGNhbmNlbGxhemlvbmUgKGQpIGRhbAorCSAgY3Vyc29yZSBmaW5vIGFsbGEgUklHQSBjaGUgY29udGllbmUgaWwgbWFyY2F0b3JlICgnKSAoYSkKKworICA1LiBJbmNvbGxhcmUgaWwgYmxvY2NvIHRoZSBsZSByaWdoZSBCQkIgZSBDQ0MgICAiYXAKKworTk9UQTogUHJvdmFyZSBwafkgdm9sdGUgcXVlc3Qnb3BlcmF6aW9uZSwgcGVyIGltcHJhdGljaGlyc2kgICAgbWEkJSJhZCdhCisKKy0tLT4gQUFBCisgICAgIGZ1bmN0aW9uIGNyZXNjaXV0YVRyb3Bwb2luRnJldHRhKCkgeworICAgICAgIGlmICggY29uZGl6aW9uZVZlcmEgKSB7CisgICAgICAgICBmYWlRdWFsY29zYSgpCisgICAgICAgfQorICAgICAgIC8vIExhIGNsYXNzaWZpY2F6aW9uZSBkZWxsYSBub3N0cmEgZnVuemlvbmUg6CBjYW1iaWF0YQorICAgICAgIC8vIG5vbiBoYSBzZW5zbyBtYW50ZW5lcmxhIG5lbGxhIHBvc2l6aW9uZSBhdHR1YWxlCisKKyAgICAgICAvLyAuLi5pbW1hZ2luYXRlIGNlbnRpbmFpYSBkaSByaWdoZSBkaSBjb2RpY2UKKworICAgICAgIC8vIEluZ2VudWFtZW50ZSBzaSBwb3RyZWJiZSBhbmRhcmUgZGFsbCdpbml6aW8gYWxsYSBmaW5lCisgICAgICAgLy8gZSBhbm5vdGFyZSBkYSBxdWFsY2hlIHBhcnRlIGlsIG51bWVybyBkaSByaWdoZQorICAgICB9CisgICAgIEJCQgorICAgICBDQ0MKKworTk9UQTogbWFyY2F0dXJlIGUgcmVnaXN0cmkgbm9uIGhhbm5vIG5pZW50ZSBpbiBjb211bmUsIHF1aW5kaSBpbCByZWdpc3RybworICAgICAgYSDoIGNvbXBsZXRhbWVudGUgaW5kaXBlbmRlbnRlIGRhbGxhIG1hcmNhdHVyYSBhLiBRdWVzdG8gbm9uIHZhbGUKKyAgICAgIHBlciBpIG5vbWkgZGVpIHJlZ2lzdHJpIGUgcXVlbGxpIGRlbGxlIG1hY3JvIGRpIFZpbS4KKworUklGRVJJTUVOVEk6IAlNYXJjYXR1cmUJCTpoIG1hcmtzCisJCU1vdmltZW50aSBtYXJjYXR1cmUgCTpoIG1hcmstbW90aW9ucyAoZGlmZmVyZW56YSBmcmEgJyBlIGApCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisJCQlMZXppb25lIDIuMSBTT01NQVJJTworCisKKyAgMS4gUGVyIGluc2VyaXJlIChjb3BpYW5kbywgY2FuY2VsbGFuZG8pIHRlc3RvLCBlIHBlciBpbmNvbGxhcmxvIChpbmNvbGxhKSkKKyAgICAgc29ubyBkaXNwb25pYmlsaSAyNiByZWdpc3RyaSAoYS16KSAKKyAgMi4gQ29waWFyZSB1bmEgcGFyb2xhIGRhIHVuYSBwb3NpemlvbmUgcXVhbHNpYXNpIGFsIHN1byBpbnRlcm5vOiAgIHlpdworICAzLiBDYW1iaWFyZSB1bmEgcGFyb2xhIGRhIHVuYSBwb3NpemlvbmUgcXVhbHNpYXNpIGFsIHN1byBpbnRlcm5vOiAgIGNpdworICA0LiBJbnNlcmlyZSB0ZXN0byBkaXJldHRhbWVudGUgZGEgcmVnaXN0cmkgaW4gbW9kbyBJbnNlcnQ6ICAgKEMtcilhCisKKyAgNS4gSW5zZXJpcmUgaWwgcmlzdWx0YXRvIGRpIHNlbXBsaWNpIG9wZXJhemlvbmkgYXJpdG1ldGljaGUgaW4gbW9kbworICAgICBJbnNlcnQ6IChDLXIpPTYwKjYwPElOVklPPgorICA2LiBJbnNlcmlyZSBpbCByaXN1bHRhdG8gZGkgY2hpYW1hdGUgYSBzaXN0ZW1hIGluIG1vZG8gSW5zZXJ0OgorICAgICAoQy1yKT1zeXN0ZW0oJ2xzIC0xJykKKworICA3LiBDb250cm9sbGFyZSBjb250ZW51dG8gcmVnaXN0cmkgY29uICAgOnJlZworICA4LiBWZWRlcmUgZG92ZSB2YW5ubyBhIGZpbmlyZSBsZSBjYW5jZWxsYXppb25pIGRpIGludGVyZSByaWdoZTogZGQKKyAgICAgbmVpIHJlZ2lzdHJpIG51bWVyYXRpLCBvc3NpYSBkaXNjZW5kZW5kbyBkYWwgcmVnaXN0cm8gMSBhbCA5LgorICAgICBPc3NlcnZhcmUgY2hlIGxlIHJpZ2hlIGludGVyZSBjYW5jZWxsYXRlIHNvbm8gZGlzcG9uaWJpbGkgbmVpIHJlZ2lzdHJpCisgICAgIG51bWVyYXRpIHBp+SBhIGx1bmdvIGRpIHF1YWxzaWFzaSBhbHRyYSBtb2RpZmljYQorICA5LiBWZWRlcmUgbGEgZGVzdGluYXppb25lIGZpbmFsZSBkZWxsZSBvcGVyYXppb25pIGRpIGNvcGlhIG5laSByZWdpc3RyaQorICAgICBudW1lcmF0aSBlIGNvbnRyb2xsYXJlIHF1YW50byBzaSBwdfIgYXNwZXR0YXJlIGNoZSBkdXJpbm8KKworIDEwLiBJbnNlcmlyZSBtYXJjYXR1cmUgaW4gbW9kbyBOb3JtYWxlICAgbVthLXpBLVowLTldCisgMTEuIFNwb3N0YXJzaSBhIHVuYSByaWdhIG1hcmNhdGEgY29uIGlsIGNvbWFuZG8gICcKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKyAgUXVpIGZpbmlzY2UgaWwgY2FwaXRvbG8gZHVlIGRlbGxhIGd1aWRhIFZpbS4gQ2kgc29ubyBsYXZvcmkgaW4gY29yc28uCisKKyAgUXVlc3RvIGNhcGl0b2xvIOggc3RhdG8gc2NyaXR0byBkYSBQYXVsIEQuIFBhcmtlcgorICBlIHRyYWRvdHRvIGRhIEFudG9uaW8gQ29sb21ibworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yMi5pdC51dGYtOCBiL3J1bnRpbWUvdHV0b3IvdHV0b3IyLml0LnV0Zi04Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzMzdhY2QKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yMi5pdC51dGYtOApAQCAtMCwwICsxLDE5NyBAQAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorPSAgICBCZW52ZW51dG8gIGFsbGEgICBHIHUgaSBkIGEgICAgYWxsJ0VkaXRvciAgIFYgSSBNICAgLSAgICBWZXJzaW9uZSAxLjcgICAgPQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorPQkJCSAgQyBBIFAgSSBUIE8gTCBPICAgRFVFCQkJCSAgICAgID0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgICBIaWMgU3VudCBEcmFjb25lczogU2UgcXVlc3RhIMOoIGxhIHByaW1hIHZvbHRhIGNoZSB2aSBhY2Nvc3RhdGUgYSB2aW0KKyAgICAgZSBwcmVmZXJpdGUgaW5pemlhcmUgZGFsIGNhcGl0b2xvIGludHJvZHV0dGl2bywgZ2VudGlsbWVudGUgaW1tZXR0ZXRlCisgICAgIDpxPElOVklPPiBlIHBvaSBpbml6aWF0ZSBkYSBxdWVsbG8uCisKKyAgICAgSWwgdGVtcG8gbmVjZXNzYXJpbyBwZXIgY29tcGxldGFyZSBxdWVzdG8gY2FwaXRvbG8gw6ggZGkgY2lyY2EgOC0xMAorICAgICBtaW51dGksIGEgc2Vjb25kYSBkZWwgdGVtcG8gdXRpbGl6emF0byBwZXIgZmFyZSBkZWxsZSBwcm92ZS4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisJCQlMZXppb25lIDIuMS4xOiBJIFJFR0lTVFJJIENPTiBOT01FCisKKworICAgICAgICAgKiogQ29waWFyZSBkdWUgcGFyb2xlIGluIHJlZ2lzdHJpIGRpdmVyc2kgZSBwb2kgaW5jb2xsYXJsZSAqKgorCisgIDEuIFNwb3N0YXRlIGlsIGN1cnNvcmUgYWxsYSByaWdhIHF1aSBzb3R0byBtYXJjYXRhIGNvbiAtLS0+CisKKyAgMi4gQW5kYXRlIHN1IHVuYSBsZXR0ZXJhIHF1YWxzaWFzaSBkaSAnRWR3YXJkJyBlIGJhdHRldGUgImF5aXcKKworTU5FTU9OSUNPOiBuZWwgcmVnaXN0cm8oIikgZGkgbm9tZSAoYSkgKHkpY29waWEgKGkpaW50ZXJuYSAodylwYXJvbGEKKworICAzLiBTcG9zdGF0ZXZpIGFsbGEgcGFyb2xhICdiaXNjb3R0aScgKGZjIG8gMmZiIG8gJGIgbyAvYmlzPElOVklPPikKKyAgICAgZSBiYXR0ZXRlICAgImJ5aXcKKworICA0LiBBbmRhdGUgc3UgdW5hIGxldHRlcmEgcXVhbHNpYXNpIGRpICdWaW5jZScgZSBiYXR0ZXRlICAgY2l3PEMtcj5hPEVTQz4KKworTU5FTU9OSUNPOiAoYyljYW1iaWEgKGkpaW50ZXJuYSAodylwYXJvbGEgY29uIDxDb250ZW51dG8gKHIpZWdpc3Rybz4gZGkgbm9tZSAoYSkKKworICA1LiBBbmRhdGUgc3UgdW5hIGxldHRlcmEgcXVhbHNpYXNpIGRpICdkb2xjaScgZSBiYXR0ZXRlICAgY2l3PEMtcj5iPEVTQz4KKworLS0tPiAgYSkgRWR3YXJkIHNhcsOgIGQnb3JhIGluIHBvaSByZXNwb25zYWJpbGUgZGVsbGEgcmF6aW9uZSBkaSBiaXNjb3R0aQorICAgICAgYikgQ29tZSBjb21waXRvLCBWaW5jZSBzYXLDoCBpbCBzb2xvIGEgZGVjaWRlcmUgcmlndWFyZG8gYWkgZG9sY2kKKworTk9UQTogQW5jaGUgdW5hIHBhcm9sYSBjYW5jZWxsYXRhIHB1w7IgZXNzZXJlIGludmlhdGEgYWQgdW4gcmVnaXN0cm8sIHAuZXMuLAorICAgICAgInNkaXcgY2FuY2VsbGVyw6AgKGQpIGxhIHBhcm9sYSBzb3R0byBpbCBjdXJzb3JlIChpdykgZSBsYSBtZXR0ZXLDoAorICAgICAgbmVsIHJlZ2lzdHJvIChzKQorUklGRVJJTUVOVEk6IAlSZWdpc3RyaSAJICA6aCByZWdpc3RlcnMKKwkJUmVnaXN0cmkgY29uIG5vbWUgOmggcXVvdGVhCisJCU1vdmltZW50bwkgIDpoIG1vdGlvbi50eHQ8SU5WSU8+IC9pbm5lcjxJTlZJTz4KKwkJQ1RSTC1SCQkgIDpoIGluc2VydDxJTlZJTz4gL0NUUkwtUjxJTlZJTz4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKwkJCUxlemlvbmUgMi4xLjI6IElMIFJFR0lTVFJPIERFTExFIEVTUFJFU1NJT05JCisKKworCSAgICAgICAqKiBJbnNlcmlyZSBhbCB2b2xvIHJpc3VsdGF0aSBkaSB1biBjYWxjb2xvICoqCisKKyAgMS4gU3Bvc3RhdGUgaWwgY3Vyc29yZSBhbGxhIHJpZ2EgcXVpIHNvdHRvIG1hcmNhdGEgY29uIC0tLT4KKworICAyLiBBbmRhdGUgc3UgdW4gcHVudG8gcXVhbHNpYXNpIGRlbCBudW1lcm8gZm9ybml0bworCisgIDMuIEJhdHRldGUgY2l3PEMtcj49NjAqNjAqMjQ8SU5WSU8+CisKKyAgNC4gU3VsbGEgcmlnYSBzZWd1ZW50ZSwgZW50cmF0ZSBpbiBtb2RvIEluc2VydCBlIGFnZ2l1bmdldGUKKyAgICAgbGEgZGF0YSBkaSBvZ2dpIGNvbiA8Qy1yPj1zeXN0ZW0oJ2RhdGUnKTxJTlZJTz4KKworTk9UQTogVHV0dGUgbGUgY2hpYW1hdGUgYSBzaXN0ZW1hIGRpcGVuZG9ubyBkYWwgUy5PLiwgcC5lcy4sIGluIGFtYmllbnRlCisgICAgICBXaW5kb3dzIHNpIHVzYSAgICBzeXN0ZW0oJ2RhdGUgL3QnKSAgIG8gIDpyIWRhdGUgL3QKKworLS0tPiBOb24gcmljb3JkbyBpbCBudW1lcm8gZXNhdHRvIGRpIHNlY29uZGkgaW4gdW4gZ2lvcm5vLCDDqCA4NDYwMD8KKyAgICAgTGEgZGF0YSBkaSBvZ2dpIMOoOiAKKworTk9UQTogTG8gc3Rlc3NvIHJpc3VsdGF0byBzaSBwdcOyIG90dGVuZXJlIGNvbiAgIDpwdT1zeXN0ZW0oJ2RhdGUnKQorICAgICAgbywgYW5jb3JhIHBpw7kgYnJldmVtZW50ZSwgY29uICA6ciFkYXRlCisKK1JJRkVSSU1FTlRJOiAJUmVnaXN0cm8gZXNwcmVzc2lvbmkJOmggcXVvdGU9CisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisJCQlMZXppb25lIDIuMS4zOiBJIFJFR0lTVFJJIE5VTUVSQVRJCisKKworCSAgICAqKiBCYXR0ZXJlIHl5IGUgZGQgcGVyIHZlZGVyZSBsJ2VmZmV0dG8gc3VpIHJlZ2lzdHJpICoqCisKKyAgMS4gU3Bvc3RhdGUgaWwgY3Vyc29yZSBhbGxhIHJpZ2EgcXVpIHNvdHRvIG1hcmNhdGEgY29uIC0tLT4KKworICAyLiBDb3BpYXRlICh5eSkgbGEgcmlnYSBzdGVzc2EgZSBjb250cm9sbGF0ZSBpIHJlZ2lzdHJpIGNvbiA6cmVnPElOVklPPgorCisgIDMuIENhbmNlbGxhdGUgbGEgcmlnYSBjaGUgaW5pemlhIGNvbiAiMC4iIGNvbiAiY2RkLCBwb2kgY29udHJvbGxhdGUgaQorICAgICByZWdpc3RyaSAoRG92ZSB2aSBhc3BldHRhdGUgc2lhIGZpbml0YSBsYSByaWdhIGNhbmNlbGxhdGE/KQorCisgIDQuIENvbnRpbnVhdGUgYSBjYW5jZWxsYXJlIG9nbmkgcmlnYSBzZWd1ZW50ZSwgY29udHJvbGxhbmRvIG9nbmkgdm9sdGEKKyAgICAgY29uIDpyZWcgaWwgcmlzdWx0YXRvCitOT1RBOiBEb3ZyZXN0ZSBub3RhcmUgY2hlIGxlIHJpZ2hlIGNhbmNlbGxhdGUgcGVyIHByaW1lIHNjZW5kb25vIG5lbGxhCisgICAgICBsaXN0YSwgbWFuIG1hbm8gY2hlIHZlbmdvbm8gYWdnaXVudGUgbnVvdmUgcmlnaGUgY2FuY2VsbGF0ZQorICA1LiBQb2kgaW5jb2xsYXRlIChwKSBpIHNlZ3VlbnRpIHJlZ2lzdHJpIG5lbGwnb3JkaW5lOyBjLCA3LCA0LCA4LCAyLisKKyAgICAgb3NzaWEgImNwICI3cCAuLi4KKworLS0tPiAwLiBRdWVzdG8KKyAgICAgOS4gZG9uZG9sYW50ZQorICAgICA4LiBtZXNzYWdnaW8KKyAgICAgNy4gw6gKKyAgICAgNi4gaW4KKyAgICAgNS4gYXNzZQorICAgICA0LiB1bgorICAgICAzLiBndWVycmVzY28KKyAgICAgMi4gc2VncmV0bworICAgICAxLiB0cmlidXRvCisKK05PVEE6IExlIGNhbmNlbGxhemlvbmkgZGkgcmlnaGUgaW50ZXJlIChkZCkgc29wcmF2dml2b25vIG5laSByZWdpc3RyaSBudW1lcmF0aQorICAgICAgbW9sdG8gcGnDuSBhIGx1bmdvIGRlbGxlIGNvcGllIGRpIHJpZ2hlIGludGVyZSAoeXkpLCBvIGRlbGxlCisgICAgICBjYW5jZWxsYXppb25pIGNoZSBpbXBsaWNhbm8gbW92aW1lbnRpIG1pbm9yaQorCitSSUZFUklNRU5USTogCVJlZ2lzdHJpIG51bWVyYXRpIAk6aCBxdW90ZTAKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKwkJCUxlemlvbmUgMi4xLjQ6IElMIEZBU0NJTk8gREVMTEUgTUFSQ0FUVVJFCisKKworCSAgICAgICAgICoqIEV2aXRhcmUgZGkgY29udGFyZSBsZSByaWdoZSBkaSBjb2RpY2UgKioKKworTk9UQTogVW4gcHJvYmxlbWEgZnJlcXVlbnRlIHF1YW5kbyBzaSBzY3Jpdm9ubyBwcm9ncmFtbWkgw6ggc3Bvc3RhcmUgbnVtZXJvc2UKKyAgICAgIHJpZ2hlIGRpIGNvZGljZS4gSWwgbWV0b2RvIHNlZ3VlbnRlIGV2aXRhIGRpIGRvdmVyIGNhbGNvbGFyZSBudW1lcmkgZGkKKyAgICAgIHJpZ2EgY29uIG9wZXJhemlvbmkgdGlwbyAgICJhMTQ3ZCAgbyAgOjk0NSwxMDkxZCBhICBvLCBhbmNvciBwZWdnaW8sCisgICAgICB1c2FuZG8gcHJpbWEgaTxDLXI+PTEwOTEtOTQ1PElOVklPPgorCisgIDEuIFNwb3N0YXRlIGlsIGN1cnNvcmUgYWxsYSByaWdhIHF1aSBzb3R0byBtYXJjYXRhIGNvbiAtLS0+CisKKyAgMi4gQW5kYXRlIGFsbGEgcHJpbWEgcmlnYSBkZWxsYSBmdW56aW9uZSBlIG1hcmNhdGVsYSBjb24gICBtYQorCitOT1RBOiBMYSBwb3NpemlvbmUgc3VsbGEgcmlnYSBOT04gw6ggaW1wb3J0YW50ZSEKKworICAzLiBTcG9zdGF0ZXZpIGEgZmluZSByaWdhIGUgZGEgcXVpIGFsbGEgZmluZSBkZWwgYmxvY2NvIGRpIGNvZGljZQorICAgICBjb24gICAkJQorCisgIDQuIENhbmNlbGxhdGUgaWwgYmxvY2NvIHNhbHZhbmRvbG8gbmVsIHJlZ2lzdHJvIGEgY29uICAgImFkJ2EKKworTU5FTU9OSUNPOiBuZWwgcmVnaXN0cm8oIikgZGkgbm9tZSAoYSkgbWV0dGVyZSBsYSBjYW5jZWxsYXppb25lIChkKSBkYWwKKwkgIGN1cnNvcmUgZmlubyBhbGxhIFJJR0EgY2hlIGNvbnRpZW5lIGlsIG1hcmNhdG9yZSAoJykgKGEpCisKKyAgNS4gSW5jb2xsYXJlIGlsIGJsb2NjbyB0aGUgbGUgcmlnaGUgQkJCIGUgQ0NDICAgImFwCisKK05PVEE6IFByb3ZhcmUgcGnDuSB2b2x0ZSBxdWVzdCdvcGVyYXppb25lLCBwZXIgaW1wcmF0aWNoaXJzaSAgICBtYSQlImFkJ2EKKworLS0tPiBBQUEKKyAgICAgZnVuY3Rpb24gY3Jlc2NpdXRhVHJvcHBvaW5GcmV0dGEoKSB7CisgICAgICAgaWYgKCBjb25kaXppb25lVmVyYSApIHsKKyAgICAgICAgIGZhaVF1YWxjb3NhKCkKKyAgICAgICB9CisgICAgICAgLy8gTGEgY2xhc3NpZmljYXppb25lIGRlbGxhIG5vc3RyYSBmdW56aW9uZSDDqCBjYW1iaWF0YQorICAgICAgIC8vIG5vbiBoYSBzZW5zbyBtYW50ZW5lcmxhIG5lbGxhIHBvc2l6aW9uZSBhdHR1YWxlCisKKyAgICAgICAvLyAuLi5pbW1hZ2luYXRlIGNlbnRpbmFpYSBkaSByaWdoZSBkaSBjb2RpY2UKKworICAgICAgIC8vIEluZ2VudWFtZW50ZSBzaSBwb3RyZWJiZSBhbmRhcmUgZGFsbCdpbml6aW8gYWxsYSBmaW5lCisgICAgICAgLy8gZSBhbm5vdGFyZSBkYSBxdWFsY2hlIHBhcnRlIGlsIG51bWVybyBkaSByaWdoZQorICAgICB9CisgICAgIEJCQgorICAgICBDQ0MKKworTk9UQTogbWFyY2F0dXJlIGUgcmVnaXN0cmkgbm9uIGhhbm5vIG5pZW50ZSBpbiBjb211bmUsIHF1aW5kaSBpbCByZWdpc3RybworICAgICAgYSDDqCBjb21wbGV0YW1lbnRlIGluZGlwZW5kZW50ZSBkYWxsYSBtYXJjYXR1cmEgYS4gUXVlc3RvIG5vbiB2YWxlCisgICAgICBwZXIgaSBub21pIGRlaSByZWdpc3RyaSBlIHF1ZWxsaSBkZWxsZSBtYWNybyBkaSBWaW0uCisKK1JJRkVSSU1FTlRJOiAJTWFyY2F0dXJlCQk6aCBtYXJrcworCQlNb3ZpbWVudGkgbWFyY2F0dXJlIAk6aCBtYXJrLW1vdGlvbnMgKGRpZmZlcmVuemEgZnJhICcgZSBgKQorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworCQkJTGV6aW9uZSAyLjEgU09NTUFSSU8KKworCisgIDEuIFBlciBpbnNlcmlyZSAoY29waWFuZG8sIGNhbmNlbGxhbmRvKSB0ZXN0bywgZSBwZXIgaW5jb2xsYXJsbyAoaW5jb2xsYSkpCisgICAgIHNvbm8gZGlzcG9uaWJpbGkgMjYgcmVnaXN0cmkgKGEteikgCisgIDIuIENvcGlhcmUgdW5hIHBhcm9sYSBkYSB1bmEgcG9zaXppb25lIHF1YWxzaWFzaSBhbCBzdW8gaW50ZXJubzogICB5aXcKKyAgMy4gQ2FtYmlhcmUgdW5hIHBhcm9sYSBkYSB1bmEgcG9zaXppb25lIHF1YWxzaWFzaSBhbCBzdW8gaW50ZXJubzogICBjaXcKKyAgNC4gSW5zZXJpcmUgdGVzdG8gZGlyZXR0YW1lbnRlIGRhIHJlZ2lzdHJpIGluIG1vZG8gSW5zZXJ0OiAgIChDLXIpYQorCisgIDUuIEluc2VyaXJlIGlsIHJpc3VsdGF0byBkaSBzZW1wbGljaSBvcGVyYXppb25pIGFyaXRtZXRpY2hlIGluIG1vZG8KKyAgICAgSW5zZXJ0OiAoQy1yKT02MCo2MDxJTlZJTz4KKyAgNi4gSW5zZXJpcmUgaWwgcmlzdWx0YXRvIGRpIGNoaWFtYXRlIGEgc2lzdGVtYSBpbiBtb2RvIEluc2VydDoKKyAgICAgKEMtcik9c3lzdGVtKCdscyAtMScpCisKKyAgNy4gQ29udHJvbGxhcmUgY29udGVudXRvIHJlZ2lzdHJpIGNvbiAgIDpyZWcKKyAgOC4gVmVkZXJlIGRvdmUgdmFubm8gYSBmaW5pcmUgbGUgY2FuY2VsbGF6aW9uaSBkaSBpbnRlcmUgcmlnaGU6IGRkCisgICAgIG5laSByZWdpc3RyaSBudW1lcmF0aSwgb3NzaWEgZGlzY2VuZGVuZG8gZGFsIHJlZ2lzdHJvIDEgYWwgOS4KKyAgICAgT3NzZXJ2YXJlIGNoZSBsZSByaWdoZSBpbnRlcmUgY2FuY2VsbGF0ZSBzb25vIGRpc3BvbmliaWxpIG5laSByZWdpc3RyaQorICAgICBudW1lcmF0aSBwacO5IGEgbHVuZ28gZGkgcXVhbHNpYXNpIGFsdHJhIG1vZGlmaWNhCisgIDkuIFZlZGVyZSBsYSBkZXN0aW5hemlvbmUgZmluYWxlIGRlbGxlIG9wZXJhemlvbmkgZGkgY29waWEgbmVpIHJlZ2lzdHJpCisgICAgIG51bWVyYXRpIGUgY29udHJvbGxhcmUgcXVhbnRvIHNpIHB1w7IgYXNwZXR0YXJlIGNoZSBkdXJpbm8KKworIDEwLiBJbnNlcmlyZSBtYXJjYXR1cmUgaW4gbW9kbyBOb3JtYWxlICAgbVthLXpBLVowLTldCisgMTEuIFNwb3N0YXJzaSBhIHVuYSByaWdhIG1hcmNhdGEgY29uIGlsIGNvbWFuZG8gICcKKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKyAgUXVpIGZpbmlzY2UgaWwgY2FwaXRvbG8gZHVlIGRlbGxhIGd1aWRhIFZpbS4gQ2kgc29ubyBsYXZvcmkgaW4gY29yc28uCisKKyAgUXVlc3RvIGNhcGl0b2xvIMOoIHN0YXRvIHNjcml0dG8gZGEgUGF1bCBELiBQYXJrZXIKKyAgZSB0cmFkb3R0byBkYSBBbnRvbmlvIENvbG9tYm8KK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo=