MjlhNGFiZjk2YTgzAgAAAAAAAAABAAAAAQAAAAEAAAAEAAAABQAAAAEAAAAAAAAA/////wAAAAACAAAAUIsAAPKNAAAIAAAAcG9zaXRpb24KAAAAX3Vwb3NpdGlvbgAAAAABAAAAAQAAAP////8AAAAA/////wAAAAD/////AAAAAAAAAAAAAAAAUIsAAPKNAAAKAAAAbG9jYWxDb29yZAwAAABfdWxvY2FsQ29vcmQAAAAAAQAAAAEAAAD/////AAAAAP////8AAAAA/////wAAAAAAAAAAAQAAAAcAAABSiwAA8o0AAAsAAABza19SVEFkanVzdA0AAABfdXNrX1JUQWRqdXN0AAAAAAEAAAABAAAA/////wAAAAD/////AAAAAP////8AAAAAAAAAAP//////////AAAAAP///////////////wAAAAABAAAAAAAAAAAAAAAAAAAAW4sAAPKNAAAeAAAAdUNvb3JkVHJhbnNmb3JtTWF0cml4XzBfU3RhZ2UwIAAAAF91dUNvb3JkVHJhbnNmb3JtTWF0cml4XzBfU3RhZ2UwAAAAAAEAAAABAAAA/////wAAAAD/////AAAAAP////8AAAAAAAAAAP//////////AAAAAP///////////////wAAAAABAAAAAAAAAAAAAAAAAAAAW4sAAPKNAAARAAAAdW1hdHJpeF9TdGFnZTFfYzATAAAAX3V1bWF0cml4X1N0YWdlMV9jMAAAAAABAAAAAQAAAP////8AAAAA/////wAAAAD/////AAAAAAAAAAD//////////wAAAAD///////////////8AAAAAAAAAAAEAAAAAAAAAAAAAAFCLAADxjQAAEQAAAHVJbmNyZW1lbnRfU3RhZ2UxEwAAAF91dUluY3JlbWVudF9TdGFnZTEAAAAAAQAAAAEAAAD/////AAAAAP////8AAAAA/////wAAAAAAAAAA//////////8AAAAA////////////////AAAAAAAAAAABAAAAAAAAAAAAAABSiwAA8Y0AABEAAAB1S2VybmVsX1N0YWdlMVswXRMAAABfdXVLZXJuZWxfU3RhZ2UxWzBdAQAAAAQAAAABAAAAAQAAAP////8AAAAA/////wAAAAD/////AAAAAAAAAAD//////////wAAAAD///////////////8AAAAAAAAAAAEAAAAAAAAAAAAAAFKLAADyjQAAEwAAAHVjbGFtcF9TdGFnZTFfYzBfYzAVAAAAX3V1Y2xhbXBfU3RhZ2UxX2MwX2MwAAAAAAEAAAABAAAA/////wAAAAD/////AAAAAP////8AAAAAAAAAAP//////////AAAAAP///////////////wAAAAAAAAAAAQAAAAAAAAAAAAAAXosAAAAAAAAYAAAAdVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxGgAAAF91dVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxAAAAAAEAAAABAAAA/////wAAAAD/////AAAAAP////8AAAAAAAAAAP//////////AAAAAP///////////////wAAAAAAAAAAAQAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAGAAAAAAAAAAEAAAAEAAAAAAAAAAIAAAAEAAAAAAAAAAMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIwAAAAAAAAAAAAAAAAAAAEAAAAGFAAAAQABAAEAAAAAAAAABgAAAAYAAAAHAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAAHAAAABwAAAAAAAAAHAAAABwAAAAMAAwADAAAAAwAAAAIAAAADAAAAAAAAAN4QAACCHAAAQxAqhqEAAAAAsQAAAAAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAEAAAD///////////////8BAAAAAAAAAAAAAAACAAAA////////////////AwAAAAAAAAAAAAAA/////wUAAAD//////////wMAAAAAAAAAAAAAAP////8AAAAA//////////8BAAAAAAAAAAAAAAD/////AQAAAP//////////BAAAAAAAAAAAAAAA/////wgAAAD//////////wEAAAAAAAAAAQAAAP////8AAAAA//////////8BAAAAAAAAAAAAAAAAAAAAOQcAAHN0cnVjdCBWU19PVVRQVVQKewogICAgZmxvYXQ0IGR4X1Bvc2l0aW9uIDogU1ZfUG9zaXRpb247CiAgICBmbG9hdDQgZ2xfUG9zaXRpb24gOiBURVhDT09SRDE7CiAgICBmbG9hdDIgdjAgOiBURVhDT09SRDA7Cn07CiNwcmFnbWEgd2FybmluZyggZGlzYWJsZTogMzU1NiAzNTcxICkKZmxvYXQzIHZlYzNfY3RvcihmbG9hdDIgeDAsIGZsb2F0IHgxKQp7CiAgICByZXR1cm4gZmxvYXQzKHgwLCB4MSk7Cn0KZmxvYXQ0IHZlYzRfY3RvcihmbG9hdCB4MCwgZmxvYXQgeDEsIGZsb2F0IHgyLCBmbG9hdCB4MykKewogICAgcmV0dXJuIGZsb2F0NCh4MCwgeDEsIHgyLCB4Myk7Cn0KZmxvYXQ0IHZlYzRfY3RvcihmbG9hdDIgeDAsIGZsb2F0IHgxLCBmbG9hdCB4MikKewogICAgcmV0dXJuIGZsb2F0NCh4MCwgeDEsIHgyKTsKfQovLyBVbmlmb3JtcwoKdW5pZm9ybSBmbG9hdDQgX3NrX1JUQWRqdXN0IDogcmVnaXN0ZXIoYzEpOwp1bmlmb3JtIGZsb2F0M3gzIF91Q29vcmRUcmFuc2Zvcm1NYXRyaXhfMF9TdGFnZTAgOiByZWdpc3RlcihjMik7CiNpZmRlZiBBTkdMRV9FTkFCTEVfTE9PUF9GTEFUVEVOCiNkZWZpbmUgTE9PUCBbbG9vcF0KI2RlZmluZSBGTEFUVEVOIFtmbGF0dGVuXQojZWxzZQojZGVmaW5lIExPT1AKI2RlZmluZSBGTEFUVEVOCiNlbmRpZgoKI2RlZmluZSBBVE9NSUNfQ09VTlRFUl9BUlJBWV9TVFJJREUgNAoKLy8gQXR0cmlidXRlcwpzdGF0aWMgZmxvYXQyIF9wb3NpdGlvbiA9IHswLCAwfTsKc3RhdGljIGZsb2F0MiBfbG9jYWxDb29yZCA9IHswLCAwfTsKCnN0YXRpYyBmbG9hdDQgZ2xfUG9zaXRpb24gPSBmbG9hdDQoMCwgMCwgMCwgMCk7CgovLyBWYXJ5aW5ncwpzdGF0aWMgIGZsb2F0MiBfdlRyYW5zZm9ybWVkQ29vcmRzXzBfU3RhZ2UwID0gezAsIDB9OwoKY2J1ZmZlciBEcml2ZXJDb25zdGFudHMgOiByZWdpc3RlcihiMSkKewogICAgZmxvYXQ0IGR4X1ZpZXdBZGp1c3QgOiBwYWNrb2Zmc2V0KGMxKTsKICAgIGZsb2F0MiBkeF9WaWV3Q29vcmRzIDogcGFja29mZnNldChjMik7CiAgICBmbG9hdDIgZHhfVmlld1NjYWxlICA6IHBhY2tvZmZzZXQoYzMpOwp9OwoKQEAgVkVSVEVYIEFUVFJJQlVURVMgQEAKClZTX09VVFBVVCBnZW5lcmF0ZU91dHB1dChWU19JTlBVVCBpbnB1dCkKewogICAgVlNfT1VUUFVUIG91dHB1dDsKICAgIG91dHB1dC5nbF9Qb3NpdGlvbiA9IGdsX1Bvc2l0aW9uOwogICAgb3V0cHV0LmR4X1Bvc2l0aW9uLnggPSBnbF9Qb3NpdGlvbi54OwogICAgb3V0cHV0LmR4X1Bvc2l0aW9uLnkgPSAtIGdsX1Bvc2l0aW9uLnk7CiAgICBvdXRwdXQuZHhfUG9zaXRpb24ueiA9IChnbF9Qb3NpdGlvbi56ICsgZ2xfUG9zaXRpb24udykgKiAwLjU7CiAgICBvdXRwdXQuZHhfUG9zaXRpb24udyA9IGdsX1Bvc2l0aW9uLnc7CiAgICBvdXRwdXQudjAgPSBfdlRyYW5zZm9ybWVkQ29vcmRzXzBfU3RhZ2UwOwoKICAgIHJldHVybiBvdXRwdXQ7Cn0KClZTX09VVFBVVCBtYWluKFZTX0lOUFVUIGlucHV0KXsKICAgIGluaXRBdHRyaWJ1dGVzKGlucHV0KTsKCihfdlRyYW5zZm9ybWVkQ29vcmRzXzBfU3RhZ2UwID0gbXVsKHRyYW5zcG9zZShfdUNvb3JkVHJhbnNmb3JtTWF0cml4XzBfU3RhZ2UwKSwgdmVjM19jdG9yKF9sb2NhbENvb3JkLCAxLjApKS54eSk7CihnbF9Qb3NpdGlvbiA9IHZlYzRfY3RvcihfcG9zaXRpb24ueCwgX3Bvc2l0aW9uLnksIDAuMCwgMS4wKSk7CihnbF9Qb3NpdGlvbiA9IHZlYzRfY3RvcigoKGdsX1Bvc2l0aW9uLnh5ICogX3NrX1JUQWRqdXN0Lnh6KSArIChnbF9Qb3NpdGlvbi53dyAqIF9za19SVEFkanVzdC55dykpLCAwLjAsIGdsX1Bvc2l0aW9uLncpKTsKcmV0dXJuIGdlbmVyYXRlT3V0cHV0KGlucHV0KTsKfQoAAADAFAAAc3RydWN0IFBTX0lOUFVUCnsKICAgIGZsb2F0NCBkeF9Qb3NpdGlvbiA6IFNWX1Bvc2l0aW9uOwogICAgZmxvYXQ0IGdsX1Bvc2l0aW9uIDogVEVYQ09PUkQxOwogICAgZmxvYXQyIHYwIDogVEVYQ09PUkQwOwp9OwoKI3ByYWdtYSB3YXJuaW5nKCBkaXNhYmxlOiAzNTU2IDM1NzEgKQpmbG9hdDMgdmVjM19jdG9yKGZsb2F0MiB4MCwgZmxvYXQgeDEpCnsKICAgIHJldHVybiBmbG9hdDMoeDAsIHgxKTsKfQovLyBVbmlmb3JtcwoKdW5pZm9ybSBmbG9hdDIgX3VJbmNyZW1lbnRfU3RhZ2UxIDogcmVnaXN0ZXIoYzApOwp1bmlmb3JtIGZsb2F0NCBfdUtlcm5lbF9TdGFnZTFbNF0gOiByZWdpc3RlcihjMSk7CnVuaWZvcm0gZmxvYXQzeDMgX3VtYXRyaXhfU3RhZ2UxX2MwIDogcmVnaXN0ZXIoYzUpOwp1bmlmb3JtIGZsb2F0NCBfdWNsYW1wX1N0YWdlMV9jMF9jMCA6IHJlZ2lzdGVyKGM4KTsKc3RhdGljIGNvbnN0IHVpbnQgX3VUZXh0dXJlU2FtcGxlcl8wX1N0YWdlMSA9IDA7CnVuaWZvcm0gVGV4dHVyZTJEPGZsb2F0ND4gdGV4dHVyZXMyRFsxXSA6IHJlZ2lzdGVyKHQwKTsKdW5pZm9ybSBTYW1wbGVyU3RhdGUgc2FtcGxlcnMyRFsxXSA6IHJlZ2lzdGVyKHMwKTsKI2lmZGVmIEFOR0xFX0VOQUJMRV9MT09QX0ZMQVRURU4KI2RlZmluZSBMT09QIFtsb29wXQojZGVmaW5lIEZMQVRURU4gW2ZsYXR0ZW5dCiNlbHNlCiNkZWZpbmUgTE9PUAojZGVmaW5lIEZMQVRURU4KI2VuZGlmCgojZGVmaW5lIEFUT01JQ19DT1VOVEVSX0FSUkFZX1NUUklERSA0CgovLyBWYXJ5aW5ncwpzdGF0aWMgIGZsb2F0MiBfdlRyYW5zZm9ybWVkQ29vcmRzXzBfU3RhZ2UwID0gezAsIDB9OwoKc3RhdGljIGZsb2F0NCBnbF9Db2xvclsxXSA9CnsKICAgIGZsb2F0NCgwLCAwLCAwLCAwKQp9OwoKY2J1ZmZlciBEcml2ZXJDb25zdGFudHMgOiByZWdpc3RlcihiMSkKewogICAgc3RydWN0IFNhbXBsZXJNZXRhZGF0YQogICAgewogICAgICAgIGludCBiYXNlTGV2ZWw7CiAgICAgICAgaW50IGludGVybmFsRm9ybWF0Qml0czsKICAgICAgICBpbnQgd3JhcE1vZGVzOwogICAgICAgIGludCBwYWRkaW5nOwogICAgICAgIGludDQgaW50Qm9yZGVyQ29sb3I7CiAgICB9OwogICAgU2FtcGxlck1ldGFkYXRhIHNhbXBsZXJNZXRhZGF0YVsxXSA6IHBhY2tvZmZzZXQoYzQpOwp9OwoKI2RlZmluZSBHTF9VU0VTX0ZSQUdfQ09MT1IKZmxvYXQ0IGdsX3RleHR1cmUyRCh1aW50IHNhbXBsZXJJbmRleCwgZmxvYXQyIHQsIGZsb2F0IGJpYXMpCnsKICAgIHJldHVybiB0ZXh0dXJlczJEW3NhbXBsZXJJbmRleF0uU2FtcGxlQmlhcyhzYW1wbGVyczJEW3NhbXBsZXJJbmRleF0sIGZsb2F0Mih0LngsIHQueSksIGJpYXMpOwp9CgpmbG9hdDQgZl9UZXh0dXJlRWZmZWN0X1N0YWdlMV9jMF9jMF9mbG9hdDQoaW4gZmxvYXQ0IF9faW5wdXQsIGluIGZsb2F0MiBfX2Nvb3JkcykKewp7CmZsb2F0M3gzIF9tYXRyaXgyMzMzID0gX3VtYXRyaXhfU3RhZ2UxX2MwOwooX19jb29yZHMgPSBtdWwodHJhbnNwb3NlKF9tYXRyaXgyMzMzKSwgdmVjM19jdG9yKF9fY29vcmRzLCAxLjApKS54eSk7Cn0KZmxvYXQ0IF9fb3V0cHV0MjMzNCA9IHswLCAwLCAwLCAwfTsKZmxvYXQyIF9pbkNvb3JkMjMzNSA9IF9fY29vcmRzOwpmbG9hdDIgX3N1YnNldENvb3JkMjMzNiA9IHswLCAwfTsKKF9zdWJzZXRDb29yZDIzMzYueCA9IF9pbkNvb3JkMjMzNS54KTsKKF9zdWJzZXRDb29yZDIzMzYueSA9IF9pbkNvb3JkMjMzNS55KTsKZmxvYXQyIF9jbGFtcGVkQ29vcmQyMzM3ID0gezAsIDB9OwooX2NsYW1wZWRDb29yZDIzMzcueCA9IGNsYW1wKF9zdWJzZXRDb29yZDIzMzYueCwgX3VjbGFtcF9TdGFnZTFfYzBfYzAueCwgX3VjbGFtcF9TdGFnZTFfYzBfYzAueikpOwooX2NsYW1wZWRDb29yZDIzMzcueSA9IGNsYW1wKF9zdWJzZXRDb29yZDIzMzYueSwgX3VjbGFtcF9TdGFnZTFfYzBfYzAueSwgX3VjbGFtcF9TdGFnZTFfYzBfYzAudykpOwpmbG9hdDQgX3RleHR1cmVDb2xvcjIzMzggPSBnbF90ZXh0dXJlMkQoX3VUZXh0dXJlU2FtcGxlcl8wX1N0YWdlMSwgX2NsYW1wZWRDb29yZDIzMzcsIC0wLjUpOwooX19vdXRwdXQyMzM0ID0gKF9faW5wdXQgKiBfdGV4dHVyZUNvbG9yMjMzOCkpOwpyZXR1cm4gX19vdXRwdXQyMzM0Owp9CmZsb2F0NCBmX01hdHJpeEVmZmVjdF9TdGFnZTFfYzBfZmxvYXQ0KGluIGZsb2F0NCBfX2lucHV0LCBpbiBmbG9hdDIgX19jb29yZHMpCnsKZmxvYXQ0IF9fb3V0cHV0MjM0MiA9IHswLCAwLCAwLCAwfTsKKF9fb3V0cHV0MjM0MiA9IGZfVGV4dHVyZUVmZmVjdF9TdGFnZTFfYzBfYzBfZmxvYXQ0KF9faW5wdXQsIF9fY29vcmRzKSk7CnJldHVybiBfX291dHB1dDIzNDI7Cn0KQEAgUElYRUwgT1VUUFVUIEBACgpQU19PVVRQVVQgbWFpbihQU19JTlBVVCBpbnB1dCl7CiAgICBfdlRyYW5zZm9ybWVkQ29vcmRzXzBfU3RhZ2UwID0gaW5wdXQudjAueHk7CgpmbG9hdDQgX291dHB1dF9TdGFnZTEyMzQ0ID0gezAsIDAsIDAsIDB9Owp7Cihfb3V0cHV0X1N0YWdlMTIzNDQgPSBmbG9hdDQoMC4wLCAwLjAsIDAuMCwgMC4wKSk7CmZsb2F0MiBfY29vcmQyMzQ1ID0gKF92VHJhbnNmb3JtZWRDb29yZHNfMF9TdGFnZTAgLSAoNi4wICogX3VJbmNyZW1lbnRfU3RhZ2UxKSk7CmZsb2F0MiBfY29vcmRTYW1wbGVkMjM0NiA9IHswLjAsIDAuMH07CihfY29vcmRTYW1wbGVkMjM0NiA9IF9jb29yZDIzNDUpOwooX291dHB1dF9TdGFnZTEyMzQ0ICs9IChmX01hdHJpeEVmZmVjdF9TdGFnZTFfYzBfZmxvYXQ0KGZsb2F0NCgxLjAsIDEuMCwgMS4wLCAxLjApLCBfY29vcmRTYW1wbGVkMjM0NikgKiBfdUtlcm5lbF9TdGFnZTFbMF0ueCkpOwooX2Nvb3JkMjM0NSArPSBfdUluY3JlbWVudF9TdGFnZTEpOwooX2Nvb3JkU2FtcGxlZDIzNDYgPSBfY29vcmQyMzQ1KTsKKF9vdXRwdXRfU3RhZ2UxMjM0NCArPSAoZl9NYXRyaXhFZmZlY3RfU3RhZ2UxX2MwX2Zsb2F0NChmbG9hdDQoMS4wLCAxLjAsIDEuMCwgMS4wKSwgX2Nvb3JkU2FtcGxlZDIzNDYpICogX3VLZXJuZWxfU3RhZ2UxWzBdLnkpKTsKKF9jb29yZDIzNDUgKz0gX3VJbmNyZW1lbnRfU3RhZ2UxKTsKKF9jb29yZFNhbXBsZWQyMzQ2ID0gX2Nvb3JkMjM0NSk7Cihfb3V0cHV0X1N0YWdlMTIzNDQgKz0gKGZfTWF0cml4RWZmZWN0X1N0YWdlMV9jMF9mbG9hdDQoZmxvYXQ0KDEuMCwgMS4wLCAxLjAsIDEuMCksIF9jb29yZFNhbXBsZWQyMzQ2KSAqIF91S2VybmVsX1N0YWdlMVswXS56KSk7CihfY29vcmQyMzQ1ICs9IF91SW5jcmVtZW50X1N0YWdlMSk7CihfY29vcmRTYW1wbGVkMjM0NiA9IF9jb29yZDIzNDUpOwooX291dHB1dF9TdGFnZTEyMzQ0ICs9IChmX01hdHJpeEVmZmVjdF9TdGFnZTFfYzBfZmxvYXQ0KGZsb2F0NCgxLjAsIDEuMCwgMS4wLCAxLjApLCBfY29vcmRTYW1wbGVkMjM0NikgKiBfdUtlcm5lbF9TdGFnZTFbMF0udykpOwooX2Nvb3JkMjM0NSArPSBfdUluY3JlbWVudF9TdGFnZTEpOwooX2Nvb3JkU2FtcGxlZDIzNDYgPSBfY29vcmQyMzQ1KTsKKF9vdXRwdXRfU3RhZ2UxMjM0NCArPSAoZl9NYXRyaXhFZmZlY3RfU3RhZ2UxX2MwX2Zsb2F0NChmbG9hdDQoMS4wLCAxLjAsIDEuMCwgMS4wKSwgX2Nvb3JkU2FtcGxlZDIzNDYpICogX3VLZXJuZWxfU3RhZ2UxWzFdLngpKTsKKF9jb29yZDIzNDUgKz0gX3VJbmNyZW1lbnRfU3RhZ2UxKTsKKF9jb29yZFNhbXBsZWQyMzQ2ID0gX2Nvb3JkMjM0NSk7Cihfb3V0cHV0X1N0YWdlMTIzNDQgKz0gKGZfTWF0cml4RWZmZWN0X1N0YWdlMV9jMF9mbG9hdDQoZmxvYXQ0KDEuMCwgMS4wLCAxLjAsIDEuMCksIF9jb29yZFNhbXBsZWQyMzQ2KSAqIF91S2VybmVsX1N0YWdlMVsxXS55KSk7CihfY29vcmQyMzQ1ICs9IF91SW5jcmVtZW50X1N0YWdlMSk7CihfY29vcmRTYW1wbGVkMjM0NiA9IF9jb29yZDIzNDUpOwooX291dHB1dF9TdGFnZTEyMzQ0ICs9IChmX01hdHJpeEVmZmVjdF9TdGFnZTFfYzBfZmxvYXQ0KGZsb2F0NCgxLjAsIDEuMCwgMS4wLCAxLjApLCBfY29vcmRTYW1wbGVkMjM0NikgKiBfdUtlcm5lbF9TdGFnZTFbMV0ueikpOwooX2Nvb3JkMjM0NSArPSBfdUluY3JlbWVudF9TdGFnZTEpOwooX2Nvb3JkU2FtcGxlZDIzNDYgPSBfY29vcmQyMzQ1KTsKKF9vdXRwdXRfU3RhZ2UxMjM0NCArPSAoZl9NYXRyaXhFZmZlY3RfU3RhZ2UxX2MwX2Zsb2F0NChmbG9hdDQoMS4wLCAxLjAsIDEuMCwgMS4wKSwgX2Nvb3JkU2FtcGxlZDIzNDYpICogX3VLZXJuZWxfU3RhZ2UxWzFdLncpKTsKKF9jb29yZDIzNDUgKz0gX3VJbmNyZW1lbnRfU3RhZ2UxKTsKKF9jb29yZFNhbXBsZWQyMzQ2ID0gX2Nvb3JkMjM0NSk7Cihfb3V0cHV0X1N0YWdlMTIzNDQgKz0gKGZfTWF0cml4RWZmZWN0X1N0YWdlMV9jMF9mbG9hdDQoZmxvYXQ0KDEuMCwgMS4wLCAxLjAsIDEuMCksIF9jb29yZFNhbXBsZWQyMzQ2KSAqIF91S2VybmVsX1N0YWdlMVsyXS54KSk7CihfY29vcmQyMzQ1ICs9IF91SW5jcmVtZW50X1N0YWdlMSk7CihfY29vcmRTYW1wbGVkMjM0NiA9IF9jb29yZDIzNDUpOwooX291dHB1dF9TdGFnZTEyMzQ0ICs9IChmX01hdHJpeEVmZmVjdF9TdGFnZTFfYzBfZmxvYXQ0KGZsb2F0NCgxLjAsIDEuMCwgMS4wLCAxLjApLCBfY29vcmRTYW1wbGVkMjM0NikgKiBfdUtlcm5lbF9TdGFnZTFbMl0ueSkpOwooX2Nvb3JkMjM0NSArPSBfdUluY3JlbWVudF9TdGFnZTEpOwooX2Nvb3JkU2FtcGxlZDIzNDYgPSBfY29vcmQyMzQ1KTsKKF9vdXRwdXRfU3RhZ2UxMjM0NCArPSAoZl9NYXRyaXhFZmZlY3RfU3RhZ2UxX2MwX2Zsb2F0NChmbG9hdDQoMS4wLCAxLjAsIDEuMCwgMS4wKSwgX2Nvb3JkU2FtcGxlZDIzNDYpICogX3VLZXJuZWxfU3RhZ2UxWzJdLnopKTsKKF9jb29yZDIzNDUgKz0gX3VJbmNyZW1lbnRfU3RhZ2UxKTsKKF9jb29yZFNhbXBsZWQyMzQ2ID0gX2Nvb3JkMjM0NSk7Cihfb3V0cHV0X1N0YWdlMTIzNDQgKz0gKGZfTWF0cml4RWZmZWN0X1N0YWdlMV9jMF9mbG9hdDQoZmxvYXQ0KDEuMCwgMS4wLCAxLjAsIDEuMCksIF9jb29yZFNhbXBsZWQyMzQ2KSAqIF91S2VybmVsX1N0YWdlMVsyXS53KSk7CihfY29vcmQyMzQ1ICs9IF91SW5jcmVtZW50X1N0YWdlMSk7CihfY29vcmRTYW1wbGVkMjM0NiA9IF9jb29yZDIzNDUpOwooX291dHB1dF9TdGFnZTEyMzQ0ICs9IChmX01hdHJpeEVmZmVjdF9TdGFnZTFfYzBfZmxvYXQ0KGZsb2F0NCgxLjAsIDEuMCwgMS4wLCAxLjApLCBfY29vcmRTYW1wbGVkMjM0NikgKiBfdUtlcm5lbF9TdGFnZTFbM10ueCkpOwooX2Nvb3JkMjM0NSArPSBfdUluY3JlbWVudF9TdGFnZTEpOwp9CnsKKGdsX0NvbG9yWzBdID0gX291dHB1dF9TdGFnZTEyMzQ0KTsKfQpyZXR1cm4gZ2VuZXJhdGVPdXRwdXQoKTsKfQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABSiwAACQAAAGdsX0NvbG9yMAsAAABnbF9Db2xvclswXQAAAAAAAAAAAQIAAHN0cnVjdCBHU19JTlBVVAp7CiAgICBmbG9hdDQgZHhfUG9zaXRpb24gOiBTVl9Qb3NpdGlvbjsKICAgIGZsb2F0NCBnbF9Qb3NpdGlvbiA6IFRFWENPT1JEMTsKICAgIGZsb2F0MiB2MCA6IFRFWENPT1JEMDsKfTsKCnN0cnVjdCBHU19PVVRQVVQKewogICAgZmxvYXQ0IGR4X1Bvc2l0aW9uIDogU1ZfUG9zaXRpb247CiAgICBmbG9hdDQgZ2xfUG9zaXRpb24gOiBURVhDT09SRDE7CiAgICBmbG9hdDIgdjAgOiBURVhDT09SRDA7Cn07Cgp2b2lkIGNvcHlWZXJ0ZXgoaW5vdXQgR1NfT1VUUFVUIG91dHB1dCwgR1NfSU5QVVQgaW5wdXQsIEdTX0lOUFVUIGZsYXRpbnB1dCkKewogICAgb3V0cHV0LmdsX1Bvc2l0aW9uID0gaW5wdXQuZ2xfUG9zaXRpb247CiAg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