Figure

E Pairwise Differences

LS0tDQp0aXRsZTogICI8aDQ+IDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS9WSVMtU0lHL1dvbmRlcmZ1bC1XZWRuZXNkYXlzL3RyZWUvbWFzdGVyL2RhdGEvMjAyMS8yMDIxLTA0LTE0Jz4gU3VzdGFpbmVkIFJlc3BvbnNlIEFuYWx5c2lzIDwvYT4gdXNpbmcgVHJhamVjdG9yeSBDbHVzdGVyaW5nIGJ5IEFndXN0aW4gQ2FsYXRyb25pIg0Kb3V0cHV0Og0KICAgaHRtbF9kb2N1bWVudDoNCiAgICAgIHNlbGZfY29udGFpbmRlZDogVFJVRQ0KICAgICAgY29kZV9kb3dubG9hZDogeWVzDQogICAgICB0b2M6IGZhbHNlIA0KLS0tDQoNCjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hZ3N0bi9XVyIgY2xhc3M9ImdpdGh1Yi1jb3JuZXIiIGFyaWEtbGFiZWw9IlZpZXcgc291cmNlIG9uIEdpdEh1YiI+PHN2ZyB3aWR0aD0iODAiIGhlaWdodD0iODAiIHZpZXdCb3g9IjAgMCAyNTAgMjUwIiBzdHlsZT0iZmlsbDojNzBCN0ZEOyBjb2xvcjojZmZmOyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgYm9yZGVyOiAwOyByaWdodDogMDsiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMCwwIEwxMTUsMTE1IEwxMzAsMTE1IEwxNDIsMTQyIEwyNTAsMjUwIEwyNTAsMCBaIj48L3BhdGg+PHBhdGggZD0iTTEyOC4zLDEwOS4wIEMxMTMuOCw5OS43IDExOS4wLDg5LjYgMTE5LjAsODkuNiBDMTIyLjAsODIuNyAxMjAuNSw3OC42IDEyMC41LDc4LjYgQzExOS4yLDcyLjAgMTIzLjQsNzYuMyAxMjMuNCw3Ni4zIEMxMjcuMyw4MC45IDEyNS41LDg3LjMgMTI1LjUsODcuMyBDMTIyLjksOTcuNiAxMzAuNiwxMDEuOSAxMzQuNCwxMDMuMiIgZmlsbD0iY3VycmVudENvbG9yIiBzdHlsZT0idHJhbnNmb3JtLW9yaWdpbjogMTMwcHggMTA2cHg7IiBjbGFzcz0ib2N0by1hcm0iPjwvcGF0aD48cGF0aCBkPSJNMTE1LjAsMTE1LjAgQzExNC45LDExNS4xIDExOC43LDExNi41IDExOS44LDExNS40IEwxMzMuNywxMDEuNiBDMTM2LjksOTkuMiAxMzkuOSw5OC40IDE0Mi4yLDk4LjYgQzEzMy44LDg4LjAgMTI3LjUsNzQuNCAxNDMuOCw1OC4wIEMxNDguNSw1My40IDE1NC4wLDUxLjIgMTU5LjcsNTEuMCBDMTYwLjMsNDkuNCAxNjMuMiw0My42IDE3MS40LDQwLjEgQzE3MS40LDQwLjEgMTc2LjEsNDIuNSAxNzguOCw1Ni4yIEMxODMuMSw1OC42IDE4Ny4yLDYxLjggMTkwLjksNjUuNCBDMTk0LjUsNjkuMCAxOTcuNyw3My4yIDIwMC4xLDc3LjYgQzIxMy44LDgwLjIgMjE2LjMsODQuOSAyMTYuMyw4NC45IEMyMTIuNyw5My4xIDIwNi45LDk2LjAgMjA1LjQsOTYuNiBDMjA1LjEsMTAyLjQgMjAzLjAsMTA3LjggMTk4LjMsMTEyLjUgQzE4MS45LDEyOC45IDE2OC4zLDEyMi41IDE1Ny43LDExNC4xIEMxNTcuOSwxMTYuOSAxNTYuNywxMjAuOSAxNTIuNywxMjQuOSBMMTQxLjAsMTM2LjUgQzEzOS44LDEzNy43IDE0MS42LDE0MS45IDE0MS44LDE0MS44IFoiIGZpbGw9ImN1cnJlbnRDb2xvciIgY2xhc3M9Im9jdG8tYm9keSI+PC9wYXRoPjwvc3ZnPjwvYT4NCg0KYGBgez1odG1sfQ0KPHN0eWxlPi5naXRodWItY29ybmVyOmhvdmVyIC5vY3RvLWFybXthbmltYXRpb246b2N0b2NhdC13YXZlIDU2MG1zIGVhc2UtaW4tb3V0fUBrZXlmcmFtZXMgb2N0b2NhdC13YXZlezAlLDEwMCV7dHJhbnNmb3JtOnJvdGF0ZSgwKX0yMCUsNjAle3RyYW5zZm9ybTpyb3RhdGUoLTI1ZGVnKX00MCUsODAle3RyYW5zZm9ybTpyb3RhdGUoMTBkZWcpfX1AbWVkaWEgKG1heC13aWR0aDo1MDBweCl7LmdpdGh1Yi1jb3JuZXI6aG92ZXIgLm9jdG8tYXJte2FuaW1hdGlvbjpub25lfS5naXRodWItY29ybmVyIC5vY3RvLWFybXthbmltYXRpb246b2N0b2NhdC13YXZlIDU2MG1zIGVhc2UtaW4tb3V0fX08L3N0eWxlPg0KYGBgDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Kb3B0aW9ucyh3aWR0aCA9IDIwMCkNCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UsIGV2YWwgPSBUUlVFLCB3YXJuaW5nID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSwgY29tbWVudCA9IE5BLCBjYWNoZSA9IEZBTFNFKQ0KYGBgDQoNCmBgYHtyIGxvYWQtcGFja2FnZXN9DQpwYWNtYW46OnBfbG9hZCh0aWR5dmVyc2UpDQpwYWNtYW46OnBfbG9hZChnZ3RleHQpDQojIGRldnRvb2xzOjppbnN0YWxsX2dpdGh1YigiaHJicm1zdHIvd2FmZmxlIikNCmxpYnJhcnkod2FmZmxlKQ0KIyBwYWNtYW46OnBfbG9hZChndHN1bW1hcnkpDQojIGh0dHA6Ly93d3cuZGFuaWVsZHNqb2JlcmcuY29tL2d0c3VtbWFyeS13ZWlsbC1jb3JuZWxsLXByZXNlbnRhdGlvbi8jMQ0KYGBgDQoNCmBgYHtyIGltcG9ydC1kYXRhfQ0KZDFfdyA8LSByZWFkLmNzdigiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1ZJUy1TSUcvV29uZGVyZnVsLVdlZG5lc2RheXMvbWFzdGVyL2RhdGEvMjAyMS8yMDIxLTA0LTE0L1dXV19TdXN0YWluZWRSZXNwb25zZS5jc3YiKSAlPiUgDQogICBtdXRhdGUoSUQgPSBwYXJzZV9udW1iZXIoVVNVQkpJRCksDQogICAgICAgICAgVFJUQyA9IGZhY3RvcihUUlQsIGxhYmVscyA9IGMoIkQxIiwiRDIiLCJDIikpKSANCg0Kd3JpdGUuY3N2KGQxX3csICJXV1dfU3VzdGFpbmVkUmVzcG9uc2UuY3N2IikNCg0KZDFfbCA8LSBkMV93ICU+JSANCiAgIHBpdm90X2xvbmdlcihjb2xzID0gYyhCQVNFTElORSwgV0VFSzAxLCBXRUVLMDQsIFdFRUswOCwgV0VFSzE2LCBXRUVLMjQsIFdFRUszMiwgV0VFSzQwLCBXRUVLNTIpLA0KICAgICAgICAgICAgICAgIG5hbWVzX3RvID0gIlRJTUVDIiwNCiAgICAgICAgICAgICAgICB2YWx1ZXNfdG8gPSAiUEFTSSIpICU+JSANCiAgIHNlbGVjdChJRCwgVFJUQywgVElNRUMsIFBBU0kpICU+JSANCiAgIG11dGF0ZShUSU1FTiA9IGlmZWxzZShUSU1FQyA9PSAiQkFTRUxJTkUiLCAwLCBwYXJzZV9udW1iZXIoVElNRUMpKSkgJT4lIA0KICAgZ3JvdXBfYnkoSUQpICU+JSANCiAgIG11dGF0ZShQQVNJX0NIRyAgPSAgUEFTSSAtIFBBU0lbVElNRUMgPT0gIkJBU0VMSU5FIl0sDQogICAgICAgICAgUEFTSV9QQ0hHID0gMTAwKihQQVNJIC0gUEFTSVtUSU1FQyA9PSAiQkFTRUxJTkUiXSkgLyBQQVNJW1RJTUVDID09ICJCQVNFTElORSJdKSAlPiUgDQogICB1bmdyb3VwKCkNCmBgYA0KDQpgYGB7ciBpbXB1dGUtZGF0YSwgaW5jbHVkZT1GQUxTRX0NCnBhY21hbjo6cF9sb2FkKG1pY2UpDQpkMV9pbXAgIDwtIG1pY2UoZDFfdyAlPiUgc2VsZWN0KC1VU1VCSklELCAtVFJULCAtSUQpLCBtID0gMSwgbWF4aXRlciA9IDUwMCwgbWV0aG9kID0gJ3BtbScsIHNlZWQgPSAxMjMpDQpkMV9jb21wIDwtIGJpbmRfY29scyggZDFfdyAlPiUgc2VsZWN0KElEKSwNCiAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZShkMV9pbXApKQ0KYGBgDQoNCmBgYHtyIGxvbmctZGF0YX0NCmQxX2xfaW1wIDwtIGQxX2NvbXAgJT4lIA0KICAgcGl2b3RfbG9uZ2VyKGNvbHMgPSBjKEJBU0VMSU5FLCBXRUVLMDEsIFdFRUswNCwgV0VFSzA4LCBXRUVLMTYsIFdFRUsyNCwgV0VFSzMyLCBXRUVLNDAsIFdFRUs1MiksDQogICAgICAgICAgICAgICAgbmFtZXNfdG8gPSAiVElNRUMiLA0KICAgICAgICAgICAgICAgIHZhbHVlc190byA9ICJQQVNJIikgJT4lIA0KICAgc2VsZWN0KElELCBUUlRDLCBUSU1FQywgUEFTSSkgJT4lIA0KICAgbXV0YXRlKFRJTUVOID0gaWZlbHNlKFRJTUVDID09ICJCQVNFTElORSIsIDAsIHBhcnNlX251bWJlcihUSU1FQykpKSAlPiUgDQogICBncm91cF9ieShJRCkgJT4lIA0KICAgbXV0YXRlKFBBU0lfQ0hHICA9ICBQQVNJIC0gUEFTSVtUSU1FTiA9PSAwXSwNCiAgICAgICAgICBQQVNJX1BDSEcgPSAxMDAqKFBBU0kgLSBQQVNJW1RJTUVOID09IDBdKSAvIFBBU0lbVElNRU4gPT0gMF0pICU+JSANCiAgIHVuZ3JvdXAoKQ0KYGBgDQoNCmBgYHtyIGttbC1jbHVzdGVyc30NCnBhY21hbjo6cF9sb2FkKGxhdHJlbmQpDQoNCmttbE1ldGhvZCAgPC0gbGNNZXRob2RLTUwocmVzcG9uc2UgPSAiUEFTSV9QQ0hHIiwgaWQgPSAiSUQiLCB0aW1lID0gIlRJTUVOIiwgbmJSZWRyYXdpbmcgPSAyNSkNCmttbE1ldGhvZHMgPC0gbGNNZXRob2RzKGttbE1ldGhvZCwgbkNsdXN0ZXJzID0gMTo1KQ0Ka21sTW9kZWxzICA8LSBsYXRyZW5kQmF0Y2goa21sTWV0aG9kcywgZGF0YSA9IGQxX2xfaW1wLCB2ZXJib3NlID0gRkFMU0UpDQprbWxNb2RlbDUgIDwtIHN1YnNldChrbWxNb2RlbHMsIG5DbHVzdGVycyA9PSA1LCBkcm9wID0gVFJVRSkNCmNsdXN0ZXJOYW1lcyhrbWxNb2RlbDUpIDwtIGMoJ1QyJywnVDMnLCdUMScsJ1Q0JywnVDUnKQ0KYGBgDQoNCmBgYHtyIGRlcml2ZS1kYXRhfQ0KdF9wIDwtIGRhdGEuZnJhbWUoVFJBSiAgID0gY2x1c3Rlck5hbWVzKGttbE1vZGVsNSksDQogICAgICAgICAgICAgICAgICBQICAgICAgPSBndHN1bW1hcnk6OnN0eWxlX3BlcmNlbnQoDQogICAgICAgICAgICAgICAgICAgICBjbHVzdGVyUHJvcG9ydGlvbnMoa21sTW9kZWw1KSAlPiUgYXMudmVjdG9yKCksIA0KICAgICAgICAgICAgICAgICAgICAgc3ltYm9sICA9IFRSVUUsIGRpZ2l0cyA9IDEpKSAlPiUgDQogICBtdXRhdGUoVFJBSiA9IFRSQUogJT4lIA0KICAgICAgICAgICAgIGZjdF9yZWxldmVsKCdUMScsICdUMicsICdUMycsICdUNCcsICdUNScpICkgJT4lIA0KICAgbXV0YXRlKFRSQUpfUCA9IHN0cl9nbHVlKCJ7VFJBSn0gKHtQfSkiKSAlPiUgDQogICAgICAgICAgICAgZmN0X3JlbGV2ZWwoJ1QxJywgJ1QyJywgJ1QzJywgJ1Q0JywgJ1Q1JykpICU+JSANCiAgIHNlbGVjdCgtUCkNCg0KZF9wZXIgPC0gZGF0YS5mcmFtZShJRCAgID0gaWRzKGttbE1vZGVsNSksDQogICAgICAgICAgICAgICAgICAgIFRSVEMgPSBkMV93JFRSVEMsDQogICAgICAgICAgICAgICAgICAgIFRSQUogPSB0cmFqZWN0b3J5QXNzaWdubWVudHMoa21sTW9kZWw1KSkgJT4lIA0KICAgbXV0YXRlKFRSQUogPSBUUkFKICU+JSBmY3RfcmVsZXZlbCgnVDEnLCdUMicsJ1QzJywnVDQnLCdUNScpKSAlPiUNCiAgIGxlZnRfam9pbih0X3ApICU+JSANCiAgIGJpbmRfY29scyhwb3N0cHJvYihrbWxNb2RlbDUpICU+JSANCiAgICAgICAgICAgICAgICBkYXRhLmZyYW1lKCkpDQoNCmRfdmlzIDwtIGQxX2wgJT4lIA0KICAgbGVmdF9qb2luKGRfcGVyICU+JSBzZWxlY3QoSUQsIFRSQUosIFRSQUpfUCkpDQoNCmRfdHJhaiA8LSBjbHVzdGVyVHJhamVjdG9yaWVzKGttbE1vZGVsNSwgYXQgPSBzZXEoMCw1MikpICU+JSANCiAgIGFzLmRhdGEuZnJhbWUoKSAlPiUgDQogICByZW5hbWUoVFJBSiA9IENsdXN0ZXIpICU+JSANCiAgIG11dGF0ZShUUkFKID0gVFJBSiAlPiUgZmN0X3JlbGV2ZWwoJ1QxJywnVDInLCdUMycsJ1Q0JywnVDUnKSkgJT4lIA0KICAgbGVmdF9qb2luKHRfcCkNCmBgYA0KDQoNCmBgYHtyIGNyZWF0ZS1maWd1cmVzfQ0KZjAgPC0gZ2dwbG90KGRhdGEgPSBkX3ZpcywNCiAgICAgICAgICAgICBhZXMoeCA9IFRJTUVOLCB5ID0gUEFTSV9QQ0hHLCBncm91cCA9IGZhY3RvcihJRCkpKSArDQogICBnZW9tX2xpbmUoYWxwaGEgPSAwLjIwKSArDQogICBzY2FsZV94X2NvbnRpbnVvdXMoIldlZWsiLA0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcyA9IGMoMCwgMSwgNCwgOCwgMTYsIDI0LCAzMiwgNDAsIDUyKSwNCiAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCJCICAiLCIxIiwiNCIsIjgiLCIxNiIsIjI0IiwiMzIiLCI0MCIsIjUyIikpICsNCiAgIHNjYWxlX3lfY29udGludW91cygiUEFTSSBQZXJjZW50IENoYW5nZSIsDQogICAgICAgICAgICAgICAgICAgICAgbGltaXRzID0gYygtMTAwLCAyNSksDQogICAgICAgICAgICAgICAgICAgICAgYnJlYWtzID0gYyggMjUsICAgIDAsICAgIC0yNSwgICAtNTAsICAgIC03NSwgICAgLTkwLCAgICAtMTAwKSwNCiAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCcyNSUnLCAnMCUnLCAnLTI1JScsICc1MCUnLCAnLTc1JScsICctOTAlJywgJy0xMDAlJyksDQogICAgICAgICAgICAgICAgICAgICAgc2VjLmF4aXMgPSBkdXBfYXhpcyhuYW1lID0gIiIpDQogICApICsNCiAgIHRoZW1lX21pbmltYWwoKSArDQogICB0aGVtZShwYW5lbC5ncmlkLm1pbm9yID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgcGxvdC5tYXJnaW4gPSBtYXJnaW4oMCwwLDAsMCwgJ3B0JykpDQoNCmYxIDwtIGdncGxvdChkYXRhID0gZF92aXMsDQogICAgICAgICAgICAgYWVzKHggPSBUSU1FTiwgeSA9IFBBU0lfUENIRywgZ3JvdXAgPSBmYWN0b3IoSUQpKSkgKw0KICAgZ2VvbV9saW5lKGFscGhhID0gMC4yMCkgKw0KICAgc2NhbGVfeF9jb250aW51b3VzKG5hbWUgPSBOVUxMLA0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcyA9IGMoMCwgMSwgNCwgOCwgMTYsIDI0LCAzMiwgNDAsIDUyKSwNCiAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCJCICAiLCIgMSIsIjQiLCI4IiwiMTYiLCIyNCIsIjMyIiwiNDAiLCI1MiIpKSArDQogICBzY2FsZV95X2NvbnRpbnVvdXMoIlBBU0kgUGVyY2VudCBDaGFuZ2UiLA0KICAgICAgICAgICAgICAgICAgICAgIGxpbWl0cyA9IGMoLTEwMCwgMjUpLA0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcyA9IGMoIDI1LCAgICAwLCAgICAtMjUsICAgLTUwLCAgICAtNzUsICAgIC05MCwgICAgLTEwMCksDQogICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gYygnMjUlJywgJzAlJywgJy0yNSUnLCAnNTAlJywgJy03NSUnLCAnLTkwJScsICctMTAwJScpLA0KICAgICAgICAgICAgICAgICAgICAgIHNlYy5heGlzID0gZHVwX2F4aXMobmFtZSA9ICIiKSkgKw0KICAgZ3VpZGVzKGNvbG9yID0gRkFMU0UpICsNCiAgIGZhY2V0X3dyYXAofiBUUkFKX1AsIG5yb3cgPSAxKSArDQogICB0aGVtZV9taW5pbWFsKCkgKw0KICAgdGhlbWUocGFuZWwuZ3JpZC5taW5vciA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgIHBsb3QubWFyZ2luID0gbWFyZ2luKDAsMCwwLDAsICdwdCcpKSArDQogICB0aGVtZSgNCiAgICAgIHN0cmlwLmJhY2tncm91bmQgPSBlbGVtZW50X2JsYW5rKCksDQogICAgICBzdHJpcC50ZXh0ID0gZWxlbWVudF90ZXh0Ym94KA0KICAgICAgICAgc2l6ZSA9IDEyLA0KICAgICAgICAgY29sb3IgPSAiYmxhY2siLCBmaWxsID0gImdyYXk4NSIsIGJveC5jb2xvciA9ICJncmF5ODUiLA0KICAgICAgICAgaGFsaWduID0gMC41LCBsaW5ldHlwZSA9IDEsIHIgPSB1bml0KDUsICJwdCIpLCB3aWR0aCA9IHVuaXQoMSwgIm5wYyIpLA0KICAgICAgICAgcGFkZGluZyA9IG1hcmdpbigzLCAwLCAzLCAwKSwgbWFyZ2luID0gbWFyZ2luKDMsIDMsIDMsIDMpDQogICAgICApDQogICApDQoNCmYyIDwtIGdncGxvdChkYXRhID0gZF90cmFqLA0KICAgICAgICAgICAgIGFlcyh4ID0gVElNRU4sIHkgPSBQQVNJX1BDSEcsIGdyb3VwID0gVFJBSl9QLCBjb2xvciA9IFRSQUpfUCkpICsNCiAgIGdlb21fbGluZShsd2QgPSAxLjUpICsNCiAgIHNjYWxlX3hfY29udGludW91cyhuYW1lID0gTlVMTCwNCiAgICAgICAgICAgICAgICAgICAgICBicmVha3MgPSBjKDAsIDEsIDQsIDgsIDE2LCAyNCwgMzIsIDQwLCA1MiksDQogICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gYygiQiAgIiwiIDEiLCI0IiwiOCIsIjE2IiwiMjQiLCIzMiIsIjQwIiwiNTIiKSkgKw0KICAgc2NhbGVfeV9jb250aW51b3VzKCJQQVNJIFBlcmNlbnQgQ2hhbmdlIiwNCiAgICAgICAgICAgICAgICAgICAgICBsaW1pdHMgPSBjKC0xMDAsIDApLA0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcyA9IGMoIDAsICAgIC0yNSwgICAtNTAsICAgIC03NSwgICAgLTkwLCAgICAtMTAwKSwNCiAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCcwJScsICctMjUlJywgJzUwJScsICctNzUlJywgJy05MCUnLCAnLTEwMCUnKSwNCiAgICAgICAgICAgICAgICAgICAgICBzZWMuYXhpcyA9IGR1cF9heGlzKG5hbWUgPSAiIikpICsNCiAgIGdndGhlbWVzOjpzY2FsZV9jb2xvcl90YWJsZWF1KHBhbGV0dGUgPSAnQ2xhc3NpYyBDeWNsaWMnKSArDQogICBndWlkZXMoY29sb3IgPSBGQUxTRSkgKw0KICAgZmFjZXRfd3JhcCh+IFRSQUpfUCwgbnJvdyA9IDEpICsNCiAgIHRoZW1lX21pbmltYWwoKSArDQogICB0aGVtZShwYW5lbC5ncmlkLm1pbm9yID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgc3RyaXAuYmFja2dyb3VuZCA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgIHN0cmlwLnRleHQueCA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgIHBsb3QubWFyZ2luID0gbWFyZ2luKDAsMCwwLDAsICdwdCcpKQ0KDQoNCmxpYnJhcnkod2FmZmxlKQ0KDQpkNCA8LSBkX3BlciAlPiUgDQogICBjb3VudChUUkFKX1AsIFRSVEMpICU+JSANCiAgIG11dGF0ZShUUlRDID0gZmN0X3JldihUUlRDKSkNCg0KZjMgPC0gZ2dwbG90KGQ0LCBhZXMoZmlsbCA9IFRSVEMsIHZhbHVlcyA9IG4pKSArDQogICBnZW9tX3dhZmZsZShjb2xvciA9ICJ3aGl0ZSIsIHNpemUgPSAwLjUwLCBuX3Jvd3MgPSAxMCwgZmxpcCA9IFRSVUUpICsNCiAgIGZhY2V0X3dyYXAofiBUUkFKX1AsIG5yb3cgPSAxKSArDQogICBzY2FsZV94X2Rpc2NyZXRlKCkgKyANCiAgIHNjYWxlX3lfY29udGludW91cyhuYW1lID0gIlRyZWF0bWVudCBDb3VudHMiLA0KICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGZ1bmN0aW9uKHgpIHggKiAxMCwNCiAgICAgICAgICAgICAgICAgICAgICBleHBhbmQgPSBjKDAsMCksDQogICAgICAgICAgICAgICAgICAgICAgc2VjLmF4aXMgPSBkdXBfYXhpcyhuYW1lID0gIiIpKSArDQogICBnZ3RoZW1lczo6c2NhbGVfZmlsbF90YWJsZWF1KHBhbGV0dGUgPSAnTWlsbGVyIFN0b25lJywgZGlyZWN0aW9uID0gLTEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBOVUxMLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCJDb21wYXJhdG9yIChDKSIsIlRSVDogRG9zZSAxIChEMSkiLCJUUlQ6IERvc2UgMiAoRDIpIikpICsNCiAgIHRoZW1lX21pbmltYWwoKSArDQogICB0aGVtZShzdHJpcC5iYWNrZ3JvdW5kID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgc3RyaXAudGV4dC54ID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgcGFuZWwuZ3JpZCAgID0gZWxlbWVudF9ibGFuaygpLCANCiAgICAgICAgIGF4aXMudGlja3MueSA9IGVsZW1lbnRfbGluZSgpLA0KICAgICAgICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgYXhpcy50ZXh0LnggID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgYXhpcy50aWNrcy54ID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gYygwLjkwLCAwLjc1KSwNCiAgICAgICAgIHBsb3QubWFyZ2luID0gbWFyZ2luKDAsMCwwLDAsICdwdCcpKSANCg0KDQpmNCA8LSBnZ3Bsb3QoZDQsIGFlcyhmaWxsID0gVFJUQywgeSA9IG4sIHggPSAxKSkgKw0KICAgZ2VvbV9iYXIocG9zaXRpb249ImZpbGwiLCBzdGF0PSJpZGVudGl0eSIpICsNCiAgIGZhY2V0X3dyYXAofiBUUkFKX1AsIG5yb3cgPSAxLCBzdHJpcC5wb3NpdGlvbiA9ICdib3R0b20nLA0KICAgICAgICAgICAgICBsYWJlbGxlciA9IGFzX2xhYmVsbGVyKGMoYFQxICgyOS4wJSlgID0gIlQxIChuPTI2MikgKip4KioiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFQyICgzMC45JSlgID0gIlQyIChuPTI3OCkgKip5KioiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFQzICgzMC42JSlgID0gIlQzIChuPTI3NCkgKip6KioiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFQ0ICg4LjE1JSlgID0gIlQ0IChuPTc0KSAgKip6KioiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFQ1ICgxLjMzJSlgID0gIlQ1IChuPTEyKSAgKip6KioiKSkpICsNCiAgIHNjYWxlX3hfY29udGludW91cyhsYWJlbHMgPSBOVUxMLA0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcyA9IE5VTEwpICsgDQogICBzY2FsZV95X2NvbnRpbnVvdXMobmFtZSA9ICJUcmVhdG1lbnQgUGVyY2VudHMiLA0KICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcyA9IGMoIDAsICAwLjI1LCAgMC41MCwgIDAuNzUsICAgIDEpLA0KICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMoJzAlJywgJzI1JScsICc1MCUnLCAnNzUlJywgJzEwMCUnKSwNCiAgICAgICAgICAgICAgICAgICAgICBleHBhbmQgPSBjKDAsMCksDQogICAgICAgICAgICAgICAgICAgICAgc2VjLmF4aXMgPSBkdXBfYXhpcyhuYW1lID0gIiIpKSArDQogICBnZ3RoZW1lczo6c2NhbGVfZmlsbF90YWJsZWF1KHBhbGV0dGUgPSAnTWlsbGVyIFN0b25lJywgZGlyZWN0aW9uID0gLTEpICsNCiAgIGd1aWRlcyhmaWxsID0gRkFMU0UpICsNCiAgIHRoZW1lX21pbmltYWwoKSArDQogICB0aGVtZShzdHJpcC5iYWNrZ3JvdW5kID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgI3N0cmlwLnRleHQueCA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgIHBhbmVsLmdyaWQgICA9IGVsZW1lbnRfYmxhbmsoKSwgDQogICAgICAgICBheGlzLnRpY2tzLnkgPSBlbGVtZW50X2xpbmUoKSwNCiAgICAgICAgIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgIGF4aXMudGV4dC54ICA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgIGF4aXMudGlja3MueCA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgICAgIHBsb3QubWFyZ2luID0gbWFyZ2luKDAsMCwwLDAsICdwdCcpKSArDQogICB0aGVtZSgNCiAgICAgIHN0cmlwLmJhY2tncm91bmQgPSBlbGVtZW50X2JsYW5rKCksDQogICAgICBzdHJpcC50ZXh0ID0gZWxlbWVudF90ZXh0Ym94KA0KICAgICAgICAgc2l6ZSA9IDEyLA0KICAgICAgICAgY29sb3IgPSAiYmxhY2siLCBmaWxsID0gImdyYXk4NSIsIGJveC5jb2xvciA9ICJncmF5ODUiLA0KICAgICAgICAgaGFsaWduID0gMC41LCBsaW5ldHlwZSA9IDEsIHIgPSB1bml0KDUsICJwdCIpLCB3aWR0aCA9IHVuaXQoMSwgIm5wYyIpLA0KICAgICAgICAgcGFkZGluZyA9IG1hcmdpbigzLCAwLCAzLCAwKSwgbWFyZ2luID0gbWFyZ2luKDMsIDMsIDMsIDMpDQogICAgICApDQogICApDQpgYGANCg0KYGBge3IgY3JlYXRlLWxlZ2VuZH0NCmRmIDwtIGRhdGEuZnJhbWUoDQogICB4ID0gMC4wMCwNCiAgIHkgPSAxLjAsDQogICBsYWJlbCA9ICIqKkZpZ3VyZSBMZWdlbmQqKjogDQogICAqKkEqKiBJbmRpdmlkdWFsIHBhdGllbnRzIHJlc3BvbnNlIG92ZXIgdGltZSANCiAgICoqQioqIEluZGl2aWR1YWwgcGF0aWVudHMgcmVzcG9uc2Ugd2l0aCA1IHRyYWplY3RvcmllcyAoVDEsIFQyLCBUMywgVDQgJiBUNSkgY2x1c3RlciBzb2x1dGlvbiB1c2luZyBhIG5vbi1wYXJhbWV0cmljIGstbWVhbnMgZm9yIGxvbmdpdHVkaW5hbCBkYXRhIA0KICAgKipDKiogR3JvdXBlZCBwYXRpZW50cyByZXNwb25zZSB3aXRoIDUgdHJhamVjdG9yaWVzIChUKSBjbHVzdGVyIHNvbHV0aW9uDQogICAqKkQqKiBUcmVhdG1lbnQgY29tcG9zaXRpb24gY291bnRzIGJ5IHRyYWplY3RvcmllcyBjbHVzdGVycyAoV2FmZmxlIENoYXJ0KSANCiAgICoqRSoqIFRyZWF0bWVudCBjb21wb3NpdGlvbiBwZXJjZW50cyBieSB0cmFqZWN0b3JpZXMgY2x1c3RlcnMgKFN0YWNrZWQgQ2hhcnQgdy8gcGFpcndpc2UgZGlmZmVyZW5jZXMjKSIpDQoNCnQgPC0gZ2dwbG90KCkgKw0KICAgZ2VvbV90ZXh0Ym94KA0KICAgICAgZGF0YSA9IGRmLA0KICAgICAgYWVzKHgsIHksIGxhYmVsID0gbGFiZWwpLA0KICAgICAgY29sb3IgPSAiYmxhY2siLCBmaWxsID0gImdyYXk4NSIsIGJveC5jb2xvciA9ICJncmF5ODUiLA0KICAgICAgd2lkdGggPSBncmlkOjp1bml0KDEuMCwgIm5wYyIpLCAjIDczJSBvZiBwbG90IHBhbmVsIHdpZHRoDQogICAgICBoanVzdCA9IDAsIHZqdXN0ID0gMSwNCiAgICAgIHNpemUgPSA0DQogICApICsNCiAgIHNjYWxlX3hfY29udGludW91cyhleHBhbmQgID0gYygwLDApLA0KICAgICAgICAgICAgICAgICAgICAgIGxpbWl0cyA9IGMoMCwxKSkrDQogICBzY2FsZV95X2NvbnRpbnVvdXMoZXhwYW5kICA9IGMoMCwwKSwNCiAgICAgICAgICAgICAgICAgICAgICBsaW1pdHMgPSBjKDAsMSkpICsNCiAgIHRoZW1lX3ZvaWQoKQ0KYGBgDQoNCiMjIyMgey50YWJzZXQgLnRhYnNldC1waWxsc30NCiMjIyMjIEZpZ3VyZQ0KYGBge3IgY29tYmluZS1maWd1cmVzLCBmaWcuaGVpZ2h0ID0gMTEsIGZpZy53aWR0aCA9IDEyLCBkcGkgPSAzMDB9DQpwYWNtYW46OnBfbG9hZChwYXRjaHdvcmspDQoNCihmMCArIHQpL2YxL2YyL2YzL2Y0ICsgDQogICBwbG90X2Fubm90YXRpb24odGFnX2xldmVscyA9IGxpc3QoYygnQScsJyAnLCdCJywnQycsJ0QnLCdFJykpLA0KICAgICAgICAgICAgICAgICAgIGNhcHRpb24gPSAnI1RyYWplY3RvcmllcyBjbHVzdGVycyAoVCkgbm90IHNoYXJpbmcgdGhlIHNhbWUgbGV0dGVyICgqKngqKiwqKnkqKiwqKnoqKikgDQogICAgICAgICAgICAgICAgICAgYXJlIHNpZ25pZmljYW50bHkgKipwPDAuMDEqKiBkaWZmZXJlbnQgKGkuZS4gVDEgKip4KiogZGlmZmVyZW50IHRoYW4gVDIgKip5KiopIA0KICAgICAgICAgICAgICAgICAgIGluIHRoZWlyIHRyZWFtZW50IGNvbXBvc2l0aW9uJywNCiAgICAgICAgICAgICAgICAgICB0aGVtZSA9IHRoZW1lKHBsb3QuY2FwdGlvbiA9IGVsZW1lbnRfdGV4dGJveChzaXplID0gMTIpKQ0KICAgICAgICAgICAgICAgICAgICkNCmBgYA0KDQojIyMjIyAqKkUqKiBQYWlyd2lzZSBEaWZmZXJlbmNlcw0KYGBge3IsIGZpZy53aWR0aCA9IDcsIGZpZy5oZWlnaHQgPSA0fQ0KcGFjbWFuOjpwX2xvYWQocGFydHlraXQpDQpwYWNtYW46OnBfbG9hZChnZ3BhcnR5KQ0KDQptMSA8LSBjdHJlZShUUlRDIH4gVFJBSiwgZGF0YSA9IGRfcGVyKQ0KDQpnZ3BhcnR5KG0xKSArDQogICBnZW9tX2VkZ2UoKSArDQogICBnZW9tX2VkZ2VfbGFiZWwoKSArDQogICBnZW9tX25vZGVfbGFiZWwobGluZV9saXN0ID0gbGlzdChhZXMobGFiZWwgPSBzcGxpdHZhciksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMobGFiZWwgPSBndHN1bW1hcnk6OnN0eWxlX3B2YWx1ZShwLnZhbHVlLCBkaWdpdHMgPSAyLCBwcmVwZW5kX3AgPSBUUlVFKSkpLA0KICAgICAgICAgICAgICAgICAgIGxpbmVfZ3BhciA9IGxpc3QobGlzdChzaXplID0gMTApLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdChzaXplID0gOSwgZm9udGZhY2UgPSAnYm9sZCcpKSwNCiAgICAgICAgICAgICAgICAgICBpZHMgPSAiaW5uZXIiKSArDQogICBnZW9tX25vZGVfbGFiZWwoYWVzKGxhYmVsID0gcGFzdGUwKCJOID0gIiwgbm9kZXNpemUpKSwNCiAgICAgICAgICAgICAgICAgICBpZHMgPSAidGVybWluYWwiLA0KICAgICAgICAgICAgICAgICAgIHNpemUgPSA0LA0KICAgICAgICAgICAgICAgICAgIG51ZGdlX3kgPSAwLjAyLA0KICAgICAgICAgICAgICAgICAgIG51ZGdlX3ggPSAwLjAxKSArDQogICBnZW9tX25vZGVfcGxvdChnZ2xpc3QgPSBsaXN0KGdlb21fYmFyKGFlcyh4ID0gMSwgZmlsbCA9IFRSVEMgJT4lIGZjdF9yZXYoKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb25fZmlsbCgpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVfeF9jb250aW51b3VzKG5hbWUgPSBOVUxMLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtzID0gTlVMTCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IE5VTEwpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsZV95X2NvbnRpbnVvdXMobmFtZSA9ICJQZXJjZW50IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrcyA9IGMoIDAsICAwLjI1LCAgMC41MCwgIDAuNzUsICAgIDEpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gYygnMCUnLCAnMjUlJywgJzUwJScsICc3NSUnLCAnMTAwJScpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2d0aGVtZXM6OnNjYWxlX2ZpbGxfdGFibGVhdShwYWxldHRlID0gJ01pbGxlciBTdG9uZScsIGRpcmVjdGlvbiA9IC0xLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBOVUxMLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMoIkNvbXBhcmF0b3IgKEMpIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUUlQ6IERvc2UgMSAoRDEpIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUUlQ6IERvc2UgMiAoRDIpIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpZGUgPSBndWlkZV9sZWdlbmQocmV2ZXJzZSA9IFRSVUUpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWVfbWluaW1hbCgpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZShwYW5lbC5ncmlkLm1pbm9yID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbG90Lm1hcmdpbiA9IG1hcmdpbigwLDAsMCwwLCAncHQnKSkNCiAgICksDQogICBzaGFyZWRfYXhpc19sYWJlbHMgPSBUUlVFDQogICApDQpgYGANCg0K