IyBUaGlzIGlzIGEgZnJvemVuIHN0YXRlIGZpbGUgZ2VuZXJhdGVkIGJ5IEdOVSBNNCAxLjQuMTcKVjEKUTEsMQpbXQpUMTIsNjkKX200X2xpc3RfY21wbTRfaWYoWyQxXSwgW10sIFswbTRfaWdub3JlXSwgWyQyXSwgWzBdLCBbbTRfdW5xdW90ZV0sIFskMm00X2lnbm9yZV0pCkYxMiw5Cm00X2RlYnVnZmlsZWRlYnVnZmlsZQpUOCwwCl9tNF93YXJuClQxNSwyMTgKbTRfbWFwX2FyZ3Nfc2VwbTRfaWYoWyQjXSwgWzBdLCBbbTRfZmF0YWwoWyQwOiB0b28gZmV3IGFyZ3VtZW50czogJCNdKV0sCiAgICAgICBbJCNdLCBbMV0sIFtdLAogICAgICAgWyQjXSwgWzJdLCBbXSwKICAgICAgIFskI10sIFszXSwgW10sCiAgICAgICBbJCNdLCBbNF0sIFskMVskNF0kMltdXSwKICAgICAgIFskMVskNF0kMltdX200X2ZvcmVhY2goWyQzW10kMV0sIFskMl0sIG00X3NoaWZ0MygkQCkpXSkKVDgsMTUwCm00X2RlZnVubTRfZGVmaW5lKFttNF9sb2NhdGlvbigkMSldLCBtNF9sb2NhdGlvbiltNF9kZWZhdWx0KFskM10sIFttNF9kZWZpbmVdKShbJDFdLAogIFtfbTRfZGVmdW5fcHJvKF1tNF9kcXVvdGUoJFswXSlbKSQyW11fbTRfZGVmdW5fZXBpKF1tNF9kcXVvdGUoJFswXSlbKV0pClQxOCw1MApfbTRfc2V0X2NvbnRlbnRzXzFfbTRfc3RhY2tfcmV2ZXJzZShbX200X3NldChbJDFdKV0sIFtfbTRfc2V0XygkMSldKQpUMTgsOTQKX200X3NldF9jb250ZW50c18yX200X3N0YWNrX3JldmVyc2UoW19tNF9zZXRfKCQxKV0sIFtfbTRfc2V0KFskMV0pXSwKICBbJDJbXV9tNF9kZWZuKFtfbTRfc2V0XygkMSldKSQzXSwgWyQ0W11dKQpUOCw4MQptNF9jaG9tcG00X2Zvcm1hdChbWyUuKnNdXSwgbTRfaW5kZXgobTRfdHJhbnNsaXQoW1skMV1dLCBbCi8uXSwgWy8gIF0pWy4vLl0sIFsvLl0pLCBbJDFdKQpUMTMsODIKbTRfZHF1b3RlX2VsdG00X2lmKFskI10sIFswXSwgW10sCiAgICAgICBbJCNdLCBbMV0sIFtbWyQxXV1dLAogICAgICAgW1tbJDFdXSwkMChtNF9zaGlmdCgkQCkpXSkKVDI0LDMyCm00X2RlZmF1bHRfbmJsYW5rX3F1b3RlZG00X2lmYmxhbmsoWyQxXSwgW1skMl1dLCBbWyQxXV0pClQ5LDU3Cm00X2FwcGVuZG00X2RlZmluZShbJDFdLCBtNF9pZmRlZihbJDFdLCBbX200X2RlZm4oWyQxXSlbJDNdXSlbJDJdKQpUMTEsMzcKbTRfbGlzdF9jbXBfJDBfcmF3KG00X2RxdW90ZSgkMSksIG00X2RxdW90ZSgkMikpClQ3LDg0Cl9tNF9mb3IkNFskMV0kNVtdbTRfaWYoWyQxXSwgWyQyXSwgW10sCgkJIFskMChtNF9ldmFsKFskMSArICQzXSksIFskMl0sIFskM10sIFskNF0sIFskNV0pXSkKVDEyLDc4Cm00X2ZvcmVhY2hfd200X3B1c2hkZWYoWyQxXSltNF9tYXBfYXJnc193KFskMl0sCiAgW200X2RlZmluZShbJDFdLF0sIFspJDNdKW00X3BvcGRlZihbJDFdKQpUMTEsMTY1Cl9tNF9kdW1wZGVmbTRfaWYoWyQjXSwgWzBdLCBbbTRfZmF0YWwoWyQwOiBtaXNzaW5nIGFyZ3VtZW50XSldLAogICAgICAgWyQjXSwgWzFdLCBbbTRfYnVpbHRpbihbZHVtcGRlZl0sIFskMV0pXSwKICAgICAgIFttNF9tYXBfYXJnc19zZXAoW200X2J1aWx0aW4oW2R1bXBkZWZdLF0sIFspXSwgW10sICRAKV0pClQxNCwxMzEKbTRfc2V0X2FkZF9hbGxtNF9kZWZpbmUoW19tNF9zZXRfc2l6ZSgkMSldLCBtNF9ldmFsKG00X3NldF9zaXplKFskMV0pCiAgKyBtNF9sZW4obTRfaWZkZWYoW19tNF9zZXRfY2xlYW51cCgkMSldLCBbXyQwX2NoZWNrXSwgW18kMF0pKFskMV0sICRAKSkpKQpGNyw0Cm00X2luY3JpbmNyCkY4LDQKX200X2RlZm5kZWZuClQxMywxMjQKX200X2RlZnVuX3Byb200X2lmZGVmKFtfbTRf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bTRfc2V0X3NpemUoWyQxXSwgW200X2luY3JdKSQzXSwgWyQ0XSldLAoJICBbbTRfZGVmaW5lKFtfbTRfc2V0KFskMV0sJDIpXSwKCQkgICAgIFsxXSltNF9wdXNoZGVmKFtfbTRfc2V0KFskMV0pXSwKCQkJCSAgICBbJDJdKV9tNF9zZXRfc2l6ZShbJDFdLCBbbTRfaW5jcl0pJDNdKQpUMTQsMTIyCm00X2FwcGVuZF91bmlxbTRfaWZ2YWwoWyQzXSwgW200X2lmKG00X2luZGV4KFskMl0sIFskM10pLCBbLTFdLCBbXSwKCQkgICAgICAgW200X3dhcm4oW3N5bnRheF0sCgkJCQlbJDA6IGAkMicgY29udGFpbnMgYCQzJ10pXSldKV8kMCgkQCkKVDE1LDAKX200X2RpdmVydF9kdW1wClQyMCwyMAptNF9QQUNLQUdFX0JVR1JFUE9SVGJ1Zy1hdXRvY29uZkBnbnUub3JnClQ4LDY2Cm00X2lmc2V0bTRfaWZkZWYoWyQxXSwKCSAgW200X2lmdmFsKF9tNF9kZWZuKFskMV0pLCBbJDJdLCBbJDNdKV0sCgkgIFskM10pClQ3LDE4MgptNF9jb25kbTRfaWYoWyQjXSwgWzBdLCBbbTRfZmF0YWwoWyQwOiBjYW5ub3QgYmUgY2FsbGVkIHdpdGhvdXQgYXJndW1lbnRzXSldLAogICAgICAgWyQjXSwgWzFdLCBbJDFdLAogICAgICAgbTRfZXZhbChbJCMgJSAzXSksIFsyXSwgW200X2ZhdGFsKFskMDogbWlzc2luZyBhbiBhcmd1bWVudF0pXSwKICAgICAgIFtfJDAoJEApXSkKVDEyLDMwCm00X2VzeXNjbWRfc200X2Nob21wX2FsbChtNF9lc3lzY21kKFskMV0pKQpUMTUsMTQ4Cl9tNF9hcHBlbmRfdW5pcW00X2lmZGVmKFskMV0sCgkgIFttNF9pZihtNF9pbmRleChbJDNdX200X2RlZm4oWyQxXSlbJDNdLCBbJDMkMiQzXSksIFstMV0sCgkJIFttNF9hcHBlbmQoWyQxXSwgWyQyXSwgWyQzXSkkNF0sIFskNV0pXSwKCSAgW200X2RlZmluZShbJDFdLCBbJDJdKSQ0XSkKVDksMzEKX200X2FwcGx5bTRfaWYoWyQyXSwgW10sIFtdLCBbJDEoJDIpW11dKQpUMTAsMgptNF91bnF1b3RlJCoKVDksNzIKbTRfbWFwYWxsbTRfaWYoWyQyXSwgW10sIFtdLAogICAgICAgW19tNF9mb3JlYWNoKFttNF9hcHBseShbJDFdLF0sIFspXSwgW10sICQyKV0pCkYxNCw2Cl9tNF9kaXZlcnRfcmF3ZGl2ZXJ0ClQ2LDEyMgptNF9jZHJtNF9pZihbJCNdLCAwLCBbbTRfZmF0YWwoWyQwOiBjYW5ub3QgYmUgY2FsbGVkIHdpdGhvdXQgYXJndW1lbnRzXSldLAogICAgICAgWyQjXSwgMSwgW10sCiAgICAgICBbbTRfZHF1b3RlKG00X3NoaWZ0KCRAKSldKQpUMTQsNDEKX200X2xpc3RfY21wXzFfbTRfbGlzdF9jbXBfMihbJDJdLCBbbTRfc2hpZnQyKCRAKV0sICQxKQpUMTQsOTUKX200X2xpc3RfY21wXzJfbTRfbGlzdF9jbXAoWyQxJDNdLCBtNF9jbXAoWyQzKzBdLCBbJDErMF0pKSgKICBbX200X2xpc3RfY21wXzEobTRfZHF1b3RlKG00X3NoaWZ0MygkQCkpLCAkMildKQpUMTEsNTMKX200X2pvaW5hbGxtNF9pZihbJCNdLCBbMl0sIFtdLCBbWyQxJDNdJDAoWyQxXSwgbTRfc2hpZnQyKCRAKSldKQpUOSwxNTgKbTRfcG9wZGVmbTRfaWYoWyQjXSwgWzBdLCBbWyQwXV0sCiAgICAgICBbJCNdLCBbMV0sIFttNF9pZmRlZihbJDFdLCBbX200X3BvcGRlZihbJDFdKV0sCgkJCSAgICBbbTRfZmF0YWwoWyQwOiB1bmRlZmluZWQgbWFjcm86ICQxXSldKV0sCiAgICAgICBbbTRfbWFwX2FyZ3MoWyQwXSwgJEApXSkKVDEyLDE1MgpfbTRfc2V0X2R1bXBtNF9pZmRlZihbX200X3NldChbJDFdKV0sCgkgIFtbJDJdX200X2RlZm4oW19tNF9zZXQoWyQxXSldKV9tNF9wb3BkZWYoW19tNF9zZXQoWyQxXSxdX200X2RlZm4oCgkJW19tNF9zZXQoWyQxXSldKVspXSwgW19tNF9zZXQoWyQxXSldKSQwKFskMV0sIFskMiQzXSldKQpUMTIsMzIKbTRfbWFrZV9saXN0bTRfam9pbihbLApdLCBtNF9kcXVvdGVfZWx0KCRAKSkKVDUsNzMKbTRfZG9tNF9pZihbJCNdLCAwLCBbXSwKICAgICAgIFskI10sIDEsIFskMVtdXSwKICAgICAgIFskMVtdJDAobTRfc2hpZnQoJEApKV0pCkY5LDYKbTRfc3Vic3Ryc3Vic3RyClQxOCw4Cm00X1BBQ0tBR0VfVEFSTkFNRWF1dG9jb25mClQxMywyNTIKbTRfc2V0X3JlbW92ZW00X3NldF9jb250YWlucyhbJDFdLCBbJDJdLCBbX200X3NldF9zaXplKFskMV0sCiAgICBbbTRfZGVjcl0pbTRfaWYoX200X2RlZm4oW19tNF9zZXQoWyQxXSldKSwgWyQyXSwKCQkgICAgW19tNF9wb3BkZWYoW19tNF9zZXQoWyQxXSwkMildLCBbX200X3NldChbJDFdKV0pXSwKCQkgICAgW200X2RlZmluZShbX200X3NldF9jbGVhbnVwKCQxKV0pbTRfZGVmaW5lKAoJCSAgICAgIFtfbTRfc2V0KFskMV0sJDIpXSwgWzBdKV0pJDNdLCBbJDRdKQpUMTksMTA5Cl9tNF9kZWZ1bl9lcGlfb3V0ZXJfbTRfcG9wZGVmKFtfbTRfZGl2ZXJ0X2R1bXBdLCBbX200X2RpdmVydGluZyhbJDFdKV0sIFtfbTRfZGl2ZXJ0aW5nXSltNF9kaXZlcnRfcG9wKFtHUk9XXSltNF91bmRpdmVydChbR1JPV10pClQxNSw1OAptNF9kaXZlcnRfc3RhY2ttNF9zdGFja19mb3JlYWNoX3NlcF9saWZvKFtfbTRfZGl2ZXJ0X3N0YWNrXSwgW10sIFtdLCBbCl0pClQxNywzMQptNF9kZWZhdWx0X3F1b3RlZG00X2lmKFskMV0sIFtdLCBbWyQyXV0sIFtbJDFdXSkKRjksNgptNF9zeXNjbWRzeXNjbWQKVDExLDEzNgptNF9zZXRfZHVtcG00X2lmZGVmKFtfbTRfc2V0X3NpemUoJDEpXSwKCSAgW19tNF9wb3BkZWYoW19tNF9zZXRfc2l6ZSgkMSldKV0pbTRfaWZkZWYoW19tNF9zZXRfY2xlYW51cCgkMSldLAogICAgW18kMF9jaGVja10sIFtfJDBdKShbJDFdLCBbXSwgWyQyXSkKVDksNTgKbTRfaWZ2YWxubTRfaWYoWyQxXSwKICAgICAgIFtdLCAgIFttNF9uKFskM10pXSwKCSAgICAgW200X24oWyQyXSldKQpUNywwCl9fZ251X18KVDEwLDI3Cm00X2pvaW5hbGxbJDJdXyQwKFskMV0sIG00X3NoaWZ0KCRAKSkKVDksMjIKbTRfc2hpZnQybTRfc2hpZnQobTRfc2hpZnQoJEApKQpUMTgsODAKbTRfZXhwYW5zaW9uX3N0YWNrbTRfc3RhY2tfZm9yZWFjaF9zZXBfbGlmbyhbXyQwXSwgW18kMF9lbnRyeShdLCBbKQpdKW00X2xvY2F0aW9uWzogdGhlIHRvcCBsZXZlbF0KVDksMzIKbTRfc2hpZnQzbTRfc2hpZnQobTRfc2hpZnQobTRfc2hpZnQoJEApKSkKVDE3LDE1MgptNF92ZXJzaW9uX3ByZXJlcW00X2lmKG00X3ZlcnNpb25fY29tcGFyZShbMi42OV0sIFskMV0pLAoJWy0xXSwKCVttNF9kZWZhdWx0KFskM10sCgkJICAgIFttNF9mYXRhbChbQXV0b2NvbmYgdmVyc2lvbiAkMSBvciBoaWdoZXIgaXMgcmVxdWlyZWRdLAoJCQkgICAgICBbNjNdKV0pXSwKCVskMl0pClQxNiw1MApfbTRfbGlzdF9jbXBfcmF3bTRfaWYoWyQxXSwgWyQyXSwgWzBdLCBbX200X2xpc3RfY21wXzEoWyQxXSwgJDIpXSkKVDgsMApfX3VuaXhfXwpUMTQsMTA5Cm00X2ZpbGVfYXBwZW5kbTRfc3lzY21kKFtjYXQgPj4kMSA8PF9tNGVvZgokMgpfbTRlb2YKXSkKbTRfaWYobTRfc3lzdmFsLCBbMF0sIFtdLAogICAgICBbbTRfZmF0YWwoWyQwOiBjYW5ub3Qgd3JpdGU6ICQxXSldKQpUMTUsNDkKbTRfcmVuYW1lX2ZvcmNlbTRfaWZkZWYoWyQyXSwgW19tNF91bmRlZmluZShbJDJdKV0pbTRfcmVuYW1lKCRAKQpUOSwyMjIKbTRfYm1hdGNobTRfaWYoWyQjXSwgMCwgW200X2ZhdGFsKFskMDogdG9vIGZldyBhcmd1bWVudHM6ICQjXSldLAogICAgICAgWyQjXSwgMSwgW200X2ZhdGFsKFskMDogdG9vIGZldyBhcmd1bWVudHM6ICQjOiAkMV0pXSwKICAgICAgIFskI10sIDIsIFskMl0sCiAgICAgICBbbTRfaWYobTRfYnJlZ2V4cChbJDFdLCBbJDJdKSwgLTEsIFskMChbJDFdLCBtNF9zaGlmdDMoJEApKV0sCgkgICAgICBbJDNdKV0pClQxMywzMzMKbTRfZGl2ZXJ0X3BvcG00X2lmKFskMV0sIFtdLCBbXSwKICAgICAgIFskMV0sIF9tNF9kZWZuKFtfbTRfZGl2ZXJ0X2RpdmVyc2lvbl0pLCBbXSwKICAgICAgIFttNF9mYXRhbChbJDAoJDEpOiBkaXZlcnNpb24gbWlzbWF0Y2g6Cl1tNF9kaXZlcnRfc3RhY2spXSlfbTRfcG9wZGVmKFtfbTRfZGl2ZXJ0X3N0YWNrXSwgW19tNF9kaXZlcnRfZGl2ZXJzaW9uXSltNF9pZmRlZihbX200X2RpdmVydF9kaXZlcnNpb25dLCBbXSwKCSAgIFttNF9mYXRhbChbdG9vIG1hbnkgbTRfZGl2ZXJ0X3BvcF0pXSlfbTRfZGl2ZXJ0X3JhdyhfbTRfZGl2ZXJ0KF9tNF9kZWZuKFtfbTRfZGl2ZXJ0X2RpdmVyc2lvbl0pLCBbLV0pKQpUMTAsMTIxCm00X3JlX3dvcmRbYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWl9dW2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpfMDEyMzQ1Njc4OV0qClQxNCwzNwptNF9QQUNLQUdFX1VSTGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9hdXRvY29uZi8KVDExLDYyCm00X2NyX2FsbnVtYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkKRjExLDgKbTRfdHJhbnNsaXR0cmFuc2xpdApUMTQsMTEwCm00X2RpdmVydF9wdXNobTRfZGl2ZXJ0X3N0YWNrX3B1c2goWyQwXSwgWyQxXSltNF9wdXNoZGVmKFtfbTRfZGl2ZXJ0X2RpdmVyc2lvbl0sIFskMV0pX200X2RpdmVydF9yYXcoX200X2RpdmVydChbJDFdLCBbJDJdKSkKVDgsODcKbTRfZmF0YWxtNF9lcnJwcmludG4obTRfbG9jYXRpb25bOiBlcnJvcjogJDFdCm00X2V4cGFuc2lvbl9zdGFjayltNF9leGl0KG00X2lmKFskMl0sLCAxLCBbJDJdKSkKRjgsNQptNF9pZmRlZmlmZGVmClQ3LDIwCm00X3dyYXBfbTRfd3JhcChbXSwgWyQxW11dKQpUMTIsMTEwCl9tNF9zZXRfc2l6ZW00X2RlZmluZShbX200X3NldF9zaXplKCQxKV0sCgkgICBtNF9pZmRlZihbX200X3NldF9zaXplKCQxKV0sIFskMihtNF9pbmRpcihbX200X3NldF9zaXplKCQxKV0pKV0sCgkJICAgIFsxXSkpClQ2LDQzCm00X21hcF9tNF9mb3JlYWNoKFtfbTRfYXBwbHkoWyQxXSxdLCBbKV0sIFtdLCAkMikKVDEwLDU0Cm00X2luY2x1ZGVtNF9pbmNsdWRlX3VuaXF1ZShbJDFdKWRubAptNF9idWlsdGluKFtpbmNsdWRlXSwgWyQxXSkKVDgsMTg5Cm00X3NwbGl0bTRfaWYoWyQxXSwgW10sIFtdLAogICAgICAgWyQyXSwgWyBdLCBbbTRfaWYobTRfaW5kZXgoWyQxXSwgWyBdKSwgWy0xXSwgW1tbJDFdXV0sCgkJCSBbXyQwKFskMV0sIFskMl0sIFssIF0pXSldLAogICAgICAgWyQyXSwgW10sIFtfJDAoWyQxXSwgW1sJIF0rXSwgWywgXSldLAogICAgICAgW18kMChbJDFdLCBbJDJdLCBbLCBdKV0pClQ2LDE5MAptNF9taW5tNF9pZihbJCNdLCBbMF0sIFttNF9mYXRhbChbdG9vIGZldyBhcmd1bWVudHMgdG8gJDBdKV0sCiAgICAgICBbJCNdLCBbMV0sIFttNF9ldmFsKFskMV0pXSwKICAgICAgIFskIyQxXSwgWzIkMl0sIFttNF9ldmFsKFskMV0pXSwKICAgICAgIFskI10sIFsyXSwgW18kMCgkQCldLAogICAgICAgW19tNF9taW5tYXgoW18kMF0sICRAKV0pCkYxNCwxMQptNF9jaGFuZ2VxdW90ZWNoYW5nZXF1b3RlClQxMCw1NAptNF9pZmJsYW5rbTRfaWYobTRfdHJhbnNsaXQoW1skMV1dLCAgWyBdWwldWwpdKSwgW10sIFskMl0sIFskM10pClQxNCwxNjYKbTRfY2xlYXJkaXZlcnRtNF9pZihbJCNdLCBbMF0sIFttNF9mYXRhbChbJDA6IG1pc3NpbmcgYXJndW1lbnRdKV0sCiAgICAgICBbX200X2RpdmVydF9yYXcoWy0xXSltNF91bmRpdmVydCgkQClfbTRfZGl2ZXJ0X3JhdygKCSBfbTRfZGl2ZXJ0KF9tNF9kZWZuKFtfbTRfZGl2ZXJ0X2RpdmVyc2lvbl0pLCBbLV0pKV0pClQxOCwyMDYKX200X3RleHRfd3JhcF93b3JkbTRfZGVmaW5lKFttNF9DdXJzb3JdLCBtNF9ldmFsKG00X0N1cnNvciArIG00X3FsZW4oWyQxXSkgKyAxKSltNF9pZihtNF9ldmFsKG00X0N1cnNvciA+IChbJDNdKSksCiAgICAgIFsxXSwgW200X2RlZmluZShbbTRfQ3Vyc29yXSwgbTRfZXZhbChtNF9JbmRlbnQgKyBtNF9xbGVuKFskMV0pICsgMSkpClskMl1dLAogICAgICBbbTRfU2VwYXJhdG9yW11dKVskMV0KVDcsNDgKbTRfcWxlbm00X2lmZGVmKFskMC0kMV0sIFtfbTRfZGVmbihbJDAtXV0sIFtfJDAoXSlbJDFdKQpUNiwxOTAKbTRfbWF4bTRfaWYoWyQjXSwgWzBdLCBbbTRfZmF0YWwoW3RvbyBmZXcgYXJndW1lbnRzIHRvICQwXSldLAogICAgICAgWyQjXSwgWzFdLCBbbTRfZXZhbChbJDFdKV0sCiAgICAgICBbJCMkMV0sIFsyJDJdLCBbbTRfZXZhbChbJDFdKV0sCiAgICAgICBbJCNdLCBbMl0sIFtfJDAoJEApXSwKICAgICAgIFtfbTRfbWlubWF4KFtfJDBdLCAkQCldKQpGMTEsOAptNF9lcnJwcmludGVycnByaW50ClQxMCwxMzcKX200X2RpdmVydG00X2lmZGVmKFtfbTRfZGl2ZXJ0KCQxKV0sCgkgIFttNF9pbmRpcihbX200X2RpdmVydCgkMSldKV0sCgkgIFttNF9pZihbJDJdLCBbXSwgW200X3dhcm4oW3N5bnRheF0sCgkgICAgIFtwcmVmZXIgbmFtZWQgZGl2ZXJzaW9uc10pXSkkMV0pClQxMywyNgptNF9jcl9MRVRURVJTQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoKVDE3LDk0Cl9tNF9zdGFja19yZXZlcnNlbTRfaWZkZWYoWyQxXSwgW200X3B1c2hkZWYoWyQyXSwKICBfbTRfZGVmbihbJDFdKSkkM1tdX200X3BvcGRlZihbJDFdKSQwKFskMV0sIFskMl0sIFskNCQzXSldKQpGMTEsNwptNF9tYWtldGVtcG1rc3RlbXAKVDQsMzcKbTRfbm00X2lmKFskMV0sCiAgICAgICBbXSwgW10sCgkgICBbJDEKXSkKVDEwLDE1NAptNF9wcm92aWRlbTRfaWZkZWYoW200X3Byb3ZpZGUoJDEpXSwgW10sClttNF9zZXRfYWRkKFtfbTRfcHJvdmlkZV0sIFskMV0sIFttNF9kZWZpbmUoW200X3Byb3ZpZGUoJDEpXSwKICBtNF9pZmRlZihbX200X2RpdmVydGluZ10sIFtfbTRfZGVmbihbX200X2RpdmVydGluZ10pXSkpXSldKQpUMTEsNjUKbTRfc2V0X3NpemVtNF9pZmRlZihbX200X3NldF9zaXplKCQxKV0sIFttNF9pbmRpcihbX200X3NldF9zaXplKCQxKV0pXSwgWzBdKQpUOSwwCm00X2lnbm9yZQpUOSwyOApfbTRfcXVvdGVtNF9pZihbJCNdLCBbMF0sIFtdLCBbWyQqXV0pClQ5LDM1Cm00X3NoaWZ0bm00X2Fzc2VydCgwIDwgJDEgJiYgJDEgPCAkIylfJDAoJEApClQ3LDc1Cm00X3dhcm5fbTRfd2FybihbJDFdLCBbJDJdLAptNF9pZmRlZihbX200X2V4cGFuc2lvbl9zdGFja10sIFttNF9leHBhbnNpb25fc3RhY2tdKSkKVDE2LDI0NQptNF9jcl9ub3RfZGlnaXRzAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMqJSYnKCkkKywuLzo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/y0KVDEyLDI1Cm00X3NldF9saXN0Y200X3NldF9tYXBfc2VwKFskMV0sIFssXSkKRjksNgptNF9kaXZudW1kaXZudW0KVDIxLDc2Cl9tNF9zZXRfYWRkX2FsbF9jaGVja200X2lmKFskI10sIFsyXSwgW10sCiAgICAgICBbbTRfc2V0X2FkZChbJDFdLCBbJDNdKSQwKFskMV0sIG00X3NoaWZ0MigkQCkpXSkKVDEwLDMKbTRfbmV3bGluZQokMQpUMTMsMjkzCm00X2RlZnVuX29uY2VtNF9kZWZpbmUoW200X2xvY2F0aW9uKCQxKV0sIG00X2xvY2F0aW9uKW00X2RlZmluZShbJDFdLCBbX200X2RlZnVuX29uY2UoWyQxXSwgWyQyXSwgbTRfaWYoX200X2RpdmVydF9kdW1wLCBbXSwKICBbW19tNF9kZWZ1bl9wcm8oWyQxXSltNF91bnF1b3RlKF0sIFspX200X2RlZnVuX2VwaShbJDFdKV1dLAptNF9pZmRlZihbX200X2RpdmVydGluZyhbJDFdKV0sIFstXSksIFstXSwgW1ttNF91bnF1b3RlKF0sIFspXV0sCiAgW1tfbTRfcmVxdWlyZV9jYWxsKFskMV0sXSwgWywgX200X2RpdmVydF9kdW1wKV1dKSldKQpUMTMsNDc0Cl9tNF90ZXh0X3dyYXBtNF9wdXNoZGVmKFttNF9JbmRlbnRdLCBtNF9xbGVuKFskMl0pKW00X3B1c2hkZWYoW200X0N1cnNvcl0sIG00X3FsZW4oWyQzXSkpbTRfcHVzaGRlZihbbTRfU2VwYXJhdG9yXSwgW200X2RlZmluZShbbTRfU2VwYXJhdG9yXSwgWyBdKV0pWyQzXW00X2NvbmQoW200X0N1cnNvcl0sIG00X0luZGVudCwgW10sCgkgICAgICBbbTRfZXZhbChtNF9DdXJzb3IgPiBtNF9JbmRlbnQpXSwgWzFdLCBbClskMl1tNF9kZWZpbmUoW200X0N1cnNvcl0sIG00X0luZGVudCldLAoJICAgICAgW200X2Zvcm1hdChbJSpzXSwgbTRfbWF4KFswXSwKICBtNF9ldmFsKG00X0luZGVudCAtIG00X0N1cnNvcikpLCBbXSltNF9kZWZpbmUoW200X0N1cnNvcl0sIG00X0luZGVudCldKW00X21hcF9hcmdzX3coWyQxXSwgWyQwX3dvcmQoXSwgWywgWyQyXSwgWyQ0XSldKV9tNF9wb3BkZWYoW200X1NlcGFyYXRvcl0sIFttNF9DdXJzb3JdLCBbbTRfSW5kZW50XSkKRjksNgptNF9mb3JtYXRmb3JtYXQKRjEwLDcKbTRfbWtzdGVtcG1rc3RlbXAKRjExLDExCl9fcHJvZ3JhbV9fX19wcm9ncmFtX18KVDcsMTU2Cm00X2RlZm5tNF9pZihbJCNdLCBbMF0sIFtbJDBdXSwKICAgICAgIFskI10sIFsxXSwgW200X2lmZGVmKFskMV0sIFtfbTRfZGVmbihbJDFdKV0sCgkJCSAgICBbbTRfZmF0YWwoWyQwOiB1bmRlZmluZWQgbWFjcm86ICQxXSldKV0sCiAgICAgICBbbTRfbWFwX2FyZ3MoWyQwXSwgJEApXSkKVDE2LDU0Cm00X2FwcGVuZF91bmlxX3dtNF9tYXBfYXJnc193KFskMl0sIFtfbTRfYXBwZW5kX3VuaXEoWyQxXSxdLCBbLCBbIF0pXSkKVDEzLDIwNwptNF9tYXBfYXJnc193XyQwKF9tNF9zcGxpdChbIF1tNF9mbGF0dGVuKFskMV0pWyBdLCBbWwkgXStdLAoJICAgICAgIG00X2lmKG00X2luZGV4KFskMiQzJDRdLCBbXF0pLCBbLTFdLCBbWyQzW10kNFtdJDJdXSwKCQkgICAgIFttNF9icGF0c3Vic3QoW1skM1tdJDRbXSQyXV0sIFtcXF0sIFtcXFxcXSldKSksCiAgICAgbTRfbGVuKFtbXSQzW10kNF0pLCBtNF9sZW4oWyQ0W10kMltdXSkpClQ2LDQKbTRfY2FyWyQxXQpUOCwyCm00X2NvdW50JCMKVDE0LDQyCl9tNF9kZWZ1bl9vbmNlbTRfcHVzaGRlZihbJDFdKSQzWyQyW11tNF9wcm92aWRlKFskMV0pXSQ0ClQxNCw2MgptNF9zZXRfZm9yZWFjaG00X3B1c2hkZWYoWyQyXSltNF9zZXRfbWFwX3NlcChbJDFdLCBbbTRfZGVmaW5lKFskMl0sXSwgWykkM10pClQxNiwxMDEKbTRfc3RhY2tfZm9yZWFjaF9tNF9zdGFja19yZXZlcnNlKFskMV0sIFttNF90bXAtJDFdKV9tNF9zdGFja19yZXZlcnNlKFttNF90bXAtJDFdLCBbJDFdLCBbJDIoX200X2RlZm4oW200X3RtcC0kMV0pKV0pClQxMiw3NwptNF9jaG9tcF9hbGxtNF9mb3JtYXQoW1slLipzXV0sIG00X2JyZWdleHAobTRfdHJhbnNsaXQoW1skMV1dLCBbCi9dLCBbLyBdKSwgWy8qJF0pLCBbJDFdKQpUNiw0NgptNF9jbXBtNF9ldmFsKCgoWyQxXSkgPiAoWyQyXSkpIC0gKChbJDFdKSA8IChbJDJdKSkpCkY1LDYKbTRfaWZpZmVsc2UKVDksMzYKbTRfcmVuYW1lbTRfY29weShbJDFdLCBbJDJdKW00X3VuZGVmaW5lKFskMV0pCkY4LDUKbTRfaW5kaXJpbmRpcgpUMTIsMQpfbTRfZGl2ZXJ0KCkwCkYxMiw5Cm00X2NoYW5nZWNvbWNoYW5nZWNvbQpUMTAsNjIKbTRfbm9xdW90ZW00X2NoYW5nZXF1b3RlKFstPTx7KF0sWyl9Pj0tXSkkMS09PHsoKX0+PS1tNF9jaGFuZ2VxdW90ZShbLF0pCkY4LDUKbTRfaW5kZXhpbmRleApUMTQsNTgKX200X21hcF9hcmdzX3dtNF9zdWJzdHIoWyQxXSwgWyQyXSwgbTRfZXZhbChtNF9sZW4oWyQxXSkgLSBbJDJdIC0gWyQzXSkpClQxNCwxMDcKbTRfc2V0X21hcF9zZXBtNF9pZmRlZihbX200X3NldF9jbGVhbnVwKCQxKV0sIFtfbTRfc2V0X2NvbnRlbnRzXzFjXSwKCSAgW19tNF9zZXRfY29udGVudHNfMV0pKFskMV0pX200X3NldF9jb250ZW50c18yKCRAKQpUOSwxNzQKbTRfZXhwYW5kbTRfcHVzaGRlZihbbTRfZGl2ZXJ0XSwgX200X2RlZm4oW19tNF9kaXZlcnRfdW5zYWZlXSkpbTRfcHVzaGRlZihbbTRfZGl2ZXJ0X3B1c2hdLCBfbTRfZGVmbihbX200X2RpdmVydF91bnNhZmVdKSltNF9jaG9tcChfJDAoWyQxCl0pKV9tNF9wb3BkZWYoW200X2RpdmVydF0sIFttNF9kaXZlcnRfcHVzaF0pClQxNywyMjkKbTRfY3Jfbm90X0xFVFRFUlMBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyolJicoKSQrLC4vMDEyMzQ1Njc4OTo7PD0+P0BbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8tClQxOCwyNTYKX200X3NldF9kdW1wX2NoZWNrbTRfaWZkZWYoW19tNF9zZXQoWyQxXSldLAoJICBbbTRfc2V0X2NvbnRhaW5zKFskMV0sIF9tNF9kZWZuKFtfbTRfc2V0KFskMV0pXSksCgkJCSAgIFtbJDJdX200X2RlZm4oW19tNF9zZXQoWyQxXSldKV0pX200X3BvcGRlZigKICAgIFtfbTRfc2V0KFskMV0sXV9tNF9kZWZuKFtfbTRfc2V0KFskMV0pXSlbKV0sCiAgICBbX200X3NldChbJDFdKV0pJDAoWyQxXSwgWyQyJDNdKV0sCgkgIFtfbTRfcG9wZGVmKFtfbTRfc2V0X2NsZWFudXAoJDEpXSldKQpUMTEsMTcKbTRfbG9jYXRpb25fX2ZpbGVfXzpfX2xpbmVfXwpUMTEsNTQKbTRfaWZuYmxhbmttNF9pZihtNF90cmFuc2xpdChbWyQxXV0sICBbIF1bCV1bCl0pLCBbXSwgWyQzXSwgWyQyXSkKVDEzLDEzNApfbTRfZGVmdW5fZXBpX200X3BvcGRlZihbX200X2V4cGFuZGluZygkMSldLCBbX200X2V4cGFuc2lvbl9zdGFja10pbTRfaWZkZWYoW19tNF9leHBhbnNpb25fc3RhY2tdLCBbXSwgW19tNF9kZWZ1bl9lcGlfb3V0ZXIoWyQxXSldKW00X3Byb3ZpZGUoWyQxXSkKVDEwLDQwCm00X3dhcm5pbmdtNF9lcnJwcmludG4obTRfbG9jYXRpb25bOiB3YXJuaW5nOiAkMV0pCkY3LDQKbTRfZXZhbGV2YWwKVDE1LDUKX200X2RpdmVydF9ncm93MTAwMDAKVDYsNTk4Cm00X2Zvcm00X3B1c2hkZWYoWyQxXSwgbTRfZXZhbChbJDJdKSltNF9jb25kKFttNF9ldmFsKChbJDNdKSA+IChbJDJdKSldLCAxLAoJICAgW200X3B1c2hkZWYoW19tNF9zdGVwXSwgbTRfZXZhbChtNF9kZWZhdWx0X3F1b3RlZChbJDRdLAoJICAgICAgMSkpKW00X2Fzc2VydChfbTRfc3RlcCA+IDApXyQwKF9tNF9kZWZuKFskMV0pLAogIG00X2V2YWwoKChbJDNdKSAtIChbJDJdKSkgLyBfbTRfc3RlcCAqIF9tNF9zdGVwICsgKFskMl0pKSwgX200X3N0ZXAsXSwKCSBbbTRfZXZhbCgoWyQzXSkgPCAoWyQyXSkpXSwgMSwKCSAgIFttNF9wdXNoZGVmKFtfbTRfc3RlcF0sIG00X2V2YWwobTRfZGVmYXVsdF9xdW90ZWQoWyQ0XSwKCSAgICAgIC0xKSkpbTRfYXNzZXJ0KF9tNF9zdGVwIDwgMClfJDAoX200X2RlZm4oWyQxXSksCiAgbTRfZXZhbCgoKFskMl0pIC0gKFskM10pKSAvIC0oX200X3N0ZXApICogX200X3N0ZXAgKyAoWyQyXSkpLCBfbTRfc3RlcCxdLAoJIFttNF9wdXNoZGVmKFtfbTRfc3RlcF0pXyQwKF9tNF9kZWZuKFskMV0pLCBfbTRfZGVmbihbJDFdKSwgMCxdKVttNF9kZWZpbmUoWyQxXSxdLCBbKSQ1XSltNF9wb3BkZWYoW19tNF9zdGVwXSwgWyQxXSkKVDE2LDI5OAptNF9tYXBfYXJnc19wYWlybTRfaWYoWyQjXSwgWzBdLCBbbTRfZmF0YWwoWyQwOiB0b28gZmV3IGFyZ3VtZW50czogJCNdKV0sCiAgICAgICBbJCNdLCBbMV0sIFttNF9mYXRhbChbJDA6IHRvbyBmZXcgYXJndW1lbnRzOiAkIzogJDFdKV0sCiAgICAgICBbJCNdLCBbMl0sIFtdLAogICAgICAgWyQjXSwgWzNdLCBbbTRfZGVmYXVsdChbJDJdLCBbJDFdKShbJDNdKVtdXSwKICAgICAgIFskI10sIFs0XSwgWyQxKFskM10sIFskNF0pW11dLAogICAgICAgWyQxKFskM10sIFskNF0pW10kMChbJDFdLCBbJDJdLCBtNF9zaGlmdChtNF9zaGlmdDMoJEApKSldKQpUNywzNgptNF9zaWdubTRfZXZhbCgoKFskMV0pID4gMCkgLSAoKFskMV0pIDwgMCkpClQyNSw1MwpfbTRfZXhwYW5zaW9uX3N0YWNrX2VudHJ5X200X2RlZm4oW200X2xvY2F0aW9uKCQxKV0pWzogJDEgaXMgZXhwYW5kZWQgZnJvbS4uLl0KVDksMTI3Cl9tNF9zcGxpdG00X2NoYW5nZXF1b3RlKFstPTx7KF0sWyl9Pj0tXSlbbTRfYnBhdHN1YnN0KC09PHsoLT08eygkMSl9Pj0tKX0+PS0sIC09PHsoJDIpfT49LSwKCSAgICAgICAtPTx7KF0kM1spfT49LSldbTRfY2hhbmdlcXVvdGUoWywgXSkKVDgsODUKX200X2pvaW5tNF9pZihbJCMkMl0sIFsyXSwgW10sCiAgICAgICBbbTRfaWYoWyQyXSwgW10sIFtdLCBbWyQxJDJdXSkkMChbJDFdLCBtNF9zaGlmdDIoJEApKV0pClQxMywyNzYKbTRfc2V0X2RlbGV0ZW00X2lmZGVmKFtfbTRfc2V0KFskMV0pXSwKCSAgW19tNF9wb3BkZWYoW19tNF9zZXQoWyQxXSxdX200X2RlZm4oW19tNF9zZXQoWyQxXSldKVspXSwKCQkgICAgICBbX200X3NldChbJDFdKV0pJDAoWyQxXSldLAoJICBbbTRfaWZkZWYoW19tNF9zZXRfY2xlYW51cCgkMSldLAoJCSAgICBbX200X3BvcGRlZihbX200X3NldF9jbGVhbnVwKCQxKV0pXSltNF9pZmRlZigKCQkgICAgW19tNF9zZXRfc2l6ZSgkMSldLAoJCSAgICBbX200X3BvcGRlZihbX200X3NldF9zaXplKCQxKV0pXSldKQpUMTIsMTAKbTRfY3JfZGlnaXRzMDEyMzQ1Njc4OQpUMTcsMTcKbTRfUEFDS0FHRV9TVFJJTkdHTlUgQXV0b2NvbmYgMi42OQpGMTAsNgpfbTRfcG9wZGVmcG9wZGVmClQ3LDE2ODgKbTRfaW5pdCMgQWxsIHRoZSBNNHN1Z2FyIG1hY3JvcyBzdGFydCB3aXRoIGBtNF8nLCBleGNlcHQgYGRubCcga2VwdCBhcyBpcwojIGZvciBzYWtlIG9mIHNpbXBsaWNpdHkuCm00X3BhdHRlcm5fZm9yYmlkKFteXz9tNF9dKQptNF9wYXR0ZXJuX2ZvcmJpZChbXmRubCRdKQoKIyBJZiBfX200X3ZlcnNpb25fXyBpcyBkZWZpbmVkLCB3ZSBhc3N1bWUgdGhhdCB3ZSBhcmUgYmVpbmcgcnVuIGJ5IE00CiMgMS42IG9yIG5ld2VyLCB0aHVzICRAIHJlY3Vyc2lvbiBpcyBsaW5lYXIsIGFuZCBkZWJ1Z21vZGUoK2RvKQojIGlzIGF2YWlsYWJsZSBmb3IgZmFzdGVyIGNoZWNrcyBvZiBkZXJlZmVyZW5jaW5nIHVuZGVmaW5lZCBtYWNyb3MKIyBhbmQgZm9yY2luZyBkdW1wZGVmIHRvIHByaW50IHRvIHN0ZGVyciByZWdhcmRsZXNzIG9mIGRlYnVnZmlsZS4KIyBCdXQgaWYgaXQgaXMgbWlzc2luZywgd2UgYXNzdW1lIHdlIGFyZSBiZWluZyBydW4gYnkgTTQgMS40LngsIHRoYXQKIyAkQCByZWN1cnNpb24gaXMgcXVhZHJhdGljLCBhbmQgdGhhdCB3ZSBuZWVkIGZvcmVhY2gtYmFzZWQKIyByZXBsYWNlbWVudCBtYWNyb3MuICBBbHNvLCBtNCBwcmlvciB0byAxLjQuOCBsb3NlcyB0cmFjayBvZiBsb2NhdGlvbgojIGR1cmluZyBtNHdyYXAgdGV4dDsgX19saW5lX18gc2hvdWxkIG5ldmVyIGJlIDAuCiMKIyBVc2UgdGhlIHJhdyBidWlsdGluIHRvIGF2b2lkIHRyaXBwaW5nIHVwIGluY2x1ZGUgdHJhY2luZy4KIyBNZWFud2hpbGUsIGF2b2lkIG00X2NvcHksIHNpbmNlIGl0IHRlbXBvcmFyaWx5IHVuZGVmaW5lcyBtNF9kZWZuLgptNF9pZmRlZihbX19tNF92ZXJzaW9uX19dLApbbTRfZGVidWdtb2RlKFsrZG9dKQptNF9kZWZpbmUoW200X2RlZm5dLCBfbTRfZGVmbihbX200X2RlZm5dKSkKbTRfZGVmaW5lKFttNF9kdW1wZGVmXSwgX200X2RlZm4oW19tNF9kdW1wZGVmXSkpCm00X2RlZmluZShbbTRfcG9wZGVmXSwgX200X2RlZm4oW19tNF9wb3BkZWZdKSkKbTRfZGVmaW5lKFttNF91bmRlZmluZV0sIF9tNF9kZWZuKFtfbTRfdW5kZWZpbmVdKSldLApbbTRfYnVpbHRpbihbaW5jbHVkZV0sIFttNHN1Z2FyL2ZvcmVhY2gubTRdKQptNF93cmFwX2xpZm8oW200X2lmKF9fbGluZV9fLCBbMF0sIFttNF9wdXNoZGVmKFttNF9sb2NhdGlvbl0sCl1dbTRfZHF1b3RlKG00X2RxdW90ZShtNF9kcXVvdGUoX19maWxlX186X19saW5lX18pKSlbWyldKV0pXSkKCiMgUmV3cml0ZSB0aGUgZmlyc3QgZW50cnkgb2YgdGhlIGRpdmVyc2lvbiBzdGFjay4KbTRfZGl2ZXJ0KFtLSUxMXSkKCiMgQ2hlY2sgdGhlIGRpdmVydCBwdXNoL3BvcCBwZXJmZWN0IGJhbGFuY2UuCiMgU29tZSB1c2VycyBhcmUgcHJvbmUgdG8gYWxzbyB1c2UgbTRfd3JhcCB0byByZWdpc3RlciBsYXN0LW1pbnV0ZQojIG00X2RpdmVydF90ZXh0OyBzbyBhZnRlciBvdXIgZGl2ZXJzaW9uIGNsZWFudXBzLCB3ZSByZXN0b3JlCiMgS0lMTCBhcyB0aGUgYm90dG9tIG9mIHRoZSBkaXZlcnNpb24gc3RhY2suCm00X3dyYXAoW200X3BvcGRlZihbX200X2RpdmVydF9kaXZlcnNpb25dKW00X2lmZGVmKAogIFtfbTRfZGl2ZXJ0X2RpdmVyc2lvbl0sIFttNF9mYXRhbChbJDA6IHVuYmFsYW5jZWQgbTRfZGl2ZXJ0X3B1c2g6Cl1tNF9kaXZlcnRfc3RhY2spXSlfbTRfcG9wZGVmKFtfbTRfZGl2ZXJ0X3N0YWNrXSltNF9kaXZlcnRfcHVzaChbS0lMTF0pXSkKClQxMSwxNjIKbTRfZHVtcGRlZnNtNF9pZihbJCNdLCBbMF0sIFttNF9mYXRhbChbJDA6IG1pc3NpbmcgYXJndW1lbnRdKV0sCiAgICAgICBbJCNdLCBbMV0sIFttNF9zdGFja19mb3JlYWNoX2xpZm8oWyQxXSwgW200X2R1bXBkZWYoWyQxXSltNF9pZ25vcmVdKV0sCiAgICAgICBbbTRfbWFwX2FyZ3MoWyQwXSwgJEApXSkKVDEyLDE2Cm00X3dyYXBfbGlmb19tNF93cmFwKFskMVtdXSkKVDEwLDEwMwptNF9mbGF0dGVubTRfaWYobTRfaW5kZXgoWyQxXSwgWwpdKSwgWy0xXSwgW1skMV1dLAogICAgICAgW200X3RyYW5zbGl0KG00X2JwYXRzdWJzdChbW1skMV1dXSwgW1xcCl0pLCBbCl0sIFsgXSldKQpUMjAsMzYKX200X3NldF9pbnRlcnNlY3Rpb25tNF9zZXRfY29udGFpbnMoWyQxXSwgWyQyXSwgWyxbJDJdXSkKVDksMTU2Cm00X2VzY2FwZW00X2lmKG00X2luZGV4KG00X3RyYW5zbGl0KFskMV0sCiAgIFtbXSMsKCldW2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpfMDEyMzQ1Njc4OV0sIFskJCRdKSwgWyRdKSwKICBbLTFdLCBbbTRfZWNob10sIFtfJDBdKShbJDFdKQpUMTIsMjQKbTRfcmVuYW1lX200bTRfcmVuYW1lKFskMV0sIFttNF8kMV0pClQyMCwxMTEKbTRfc3RhY2tfZm9yZWFjaF9zZXBfbTRfc3RhY2tfcmV2ZXJzZShbJDFdLCBbbTRfdG1wLSQxXSlfbTRfc3RhY2tfcmV2ZXJzZShbbTRfdG1wLSQxXSwgWyQxXSwgWyQyW11fbTRfZGVmbihbbTRfdG1wLSQxXSkkM10sIFskNFtdXSkKVDE5LDE1NgpfbTRfZGVmdW5fcHJvX291dGVybTRfc2V0X2RlbGV0ZShbX200X3Byb3ZpZGVdKW00X3B1c2hkZWYoW19tNF9kaXZlcnRpbmcoWyQxXSldKW00X3B1c2hkZWYoW19tNF9kaXZlcnRpbmddLCBbJDFdKW00X3B1c2hkZWYoW19tNF9kaXZlcnRfZHVtcF0sIG00X2Rpdm51bSltNF9kaXZlcnRfcHVzaChbR1JPV10pClQxNyw2MwptNF9zZXRfZGlmZmVyZW5jZW00X2lmKFskMV0sIFskMl0sIFtdLCBbbTRfc2V0X21hcF9zZXAoWyQxXSwgW18kMChbJDJdLF0sIFspXSldKQpUMTcsMjkyCl9tNF9yZXF1aXJlX2NoZWNrbTRfaWYoX200X2RlZm4oW19tNF9kaXZlcnRpbmddKSwgWyQyXSwgW200X2lnbm9yZV0sCiAgICAgICBtNF9pZmRlZihbX200X2RpdmVydGluZyhbJDJdKV0sIFstXSksIFstXSwgW200X3dhcm4oW3N5bnRheF0sCiAgIFskMzogYCQxJyB3YXMgZXhwYW5kZWQgYmVmb3JlIGl0IHdhcyByZXF1aXJlZApodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYXV0b2NvbmYvbWFudWFsL2F1dG9jb25mLmh0bWwjRXhwYW5kZWQtQmVmb3JlLVJlcXVpcmVkXSlfbTRfcmVxdWlyZV9jYWxsXSwKICAgICAgIFttNF9pZ25vcmVdKQpUMTksMTY2Cm00X3NldF9pbnRlcnNlY3Rpb25tNF9pZihbJDFdLCBbJDJdLCBbbTRfc2V0X2xpc3RjKFskMV0pXSwKICAgICAgIG00X2V2YWwobTRfc2V0X3NpemUoWyQyXSkgPCBtNF9zZXRfc2l6ZShbJDFdKSksIFsxXSwgWyQwKFskMl0sIFskMV0pXSwKICAgICAgIFttNF9zZXRfbWFwX3NlcChbJDFdLCBbXyQwKFskMl0sXSwgWyldKV0pClQyMSwxMDEKbTRfc3RhY2tfZm9yZWFjaF9saWZvX200X3N0YWNrX3JldmVyc2UoWyQxXSwgW200X3RtcC0kMV0sIFskMihfbTRfZGVmbihbbTRfdG1wLSQxXSkpXSlfbTRfc3RhY2tfcmV2ZXJzZShbbTRfdG1wLSQxXSwgWyQxXSkKVDExLDMzCm00X3NldF9saXN0bTRfc2V0X21hcF9zZXAoWyQxXSwgW10sIFtdLCBbLF0pCkY4LDgKX19saW5lX19fX2xpbmVfXwpUMTMsNDEKX200X3NldF91bmlvbm00X2lmZGVmKFtfbTRfc2V0KFskMV0sJDIpXSwgW10sIFssWyQyXV0pClQxMCw1NQpfbTRfc2hpZnQybTRfaWYoWyQjXSwgWzJdLCBbXSwKICAgICAgIFssIG00X3NoaWZ0KG00X3NoaWZ0KCRAKSldKQpUMTgsNAptNF9QQUNLQUdFX1ZFUlNJT04yLjY5ClQxMCw2NQpfbTRfc2hpZnQzbTRfaWYoWyQjXSwgWzNdLCBbXSwKICAgICAgIFssIG00X3NoaWZ0KG00X3NoaWZ0KG00X3NoaWZ0KCRAKSkpXSkKVDEwLDg0Cl9tNF9taW5tYXhtNF9pZihbJCNdLCBbM10sIFskMShbJDJdLCBbJDNdKV0sCiAgICAgICBbJDAoWyQxXSwgJDEoWyQyXSwgWyQzXSksIG00X3NoaWZ0MygkQCkpXSkKVDExLDIzOAptNF90ZXh0X2JveG00X3B1c2hkZWYoW200X0JvcmRlcl0sCgkgICAgbTRfdHJhbnNsaXQobTRfZm9ybWF0KFtbWyUqc11dXSwgbTRfZGVjcihtNF9xbGVuKF9tNF9leHBhbmQoWyQxCl0pKSksIFtdKSwgWyBdLCBtNF9kZWZhdWx0X3F1b3RlZChbJDJdLCBbLV0pKSlbIyNdIF9tNF9kZWZuKFttNF9Cb3JkZXJdKSBbIyNdClsjI10gJDEgWyMjXQpbIyNdIF9tNF9kZWZuKFttNF9Cb3JkZXJdKSBbIyNdX200X3BvcGRlZihbbTRfQm9yZGVyXSkKVDE1LDE4MAptNF9zZXRfY29udGFpbnNtNF9pZmRlZihbX200X3NldF9jbGVhbnVwKCQxKV0sCgkgIFttNF9pZihtNF9pZmRlZihbX200X3NldChbJDFdLCQyKV0sCgkJICAgIFttNF9pbmRpcihbX200X3NldChbJDFdLCQyKV0pXSwgWzBdKSwgWzFdLCBbJDNdLCBbJDRdKV0sCgkgIFttNF9pZmRlZihbX200X3NldChbJDFdLCQyKV0sIFskM10sIFskNF0pXSkKRjEwLDcKbTRfZXN5c2NtZGVzeXNjbWQKVDEwLDMyCm00X3NldF9tYXBtNF9zZXRfbWFwX3NlcChbJDFdLCBbJDIoXSwgWyldKQpUMTQsNTMKbTRfY3Jfc3ltYm9sczFhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaXwpUMTQsNjMKbTRfY3Jfc3ltYm9sczJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaXzAxMjM0NTY3ODkKVDEyLDE4Cm00X2VycnByaW50bm00X2VycnByaW50KFskMQpdKQpUMTMsMzA2Cm00X2JwYXRzdWJzdHNtNF9pZihbJCNdLCAwLCBbbTRfZmF0YWwoWyQwOiB0b28gZmV3IGFyZ3VtZW50czogJCNdKV0sCiAgICAgICBbJCNdLCAxLCBbbTRfZmF0YWwoWyQwOiB0b28gZmV3IGFyZ3VtZW50czogJCM6ICQxXSldLAogICAgICAgWyQjXSwgMiwgW200X3VucXVvdGUobTRfYnVpbHRpbihbcGF0c3Vic3RdLCBbWyQxXV0sIFskMl0pKV0sCiAgICAgICBbJCNdLCAzLCBbbTRfdW5xdW90ZShtNF9idWlsdGluKFtwYXRzdWJzdF0sIFtbJDFdXSwgWyQyXSwgWyQzXSkpXSwKICAgICAgIFtfJDAoJEBtNF9pZihtNF9ldmFsKCQjICYgMSksIDAsIFssXSkpXSkKRjcsNAptNF9kZWNyZGVjcgpUMTIsOTMKbTRfdGV4dF93cmFwXyQwKG00X2VzY2FwZShbJDFdKSwgWyQyXSwgbTRfZGVmYXVsdF9xdW90ZWQoWyQzXSwgWyQyXSksCiAgICAgbTRfZGVmYXVsdF9xdW90ZWQoWyQ0XSwgWzc5XSkpClQxMiw5MwptNF9zZXRfZW1wdHltNF9pZmRlZihbX200X3NldF9zaXplKCQxKV0sCgkgIFttNF9pZihtNF9pbmRpcihbX200X3NldF9zaXplKCQxKV0pLCBbMF0sIFskMl0sIFskM10pXSwgWyQyXSkKVDE1LDM2Cm00X3NldF9jb250ZW50c200X3NldF9tYXBfc2VwKFskMV0sIFtdLCBbXSwgW1skMl1dKQpUMTAsMTY4Cm00X2NvbWJpbmVtNF9pZihbJDJdLCBbXSwgW10sIG00X2V2YWwoWyQjID4gM10pLCBbMV0sClttNF9tYXBfYXJnc19zZXAoW200X21hcF9hcmdzX3NlcChtNF9kcXVvdGUoXSwgWylbWyQzXV0sIFtdLCBbWyQxXV0sXV1tNF9kcXVvdGUobTRfZHF1b3RlKG00X3NoaWZ0MygkQCkpKVtbKV0sIFtbJDFdXSwgJDIpXSkKVDE4LDIwMgptNF9jcl9ub3Rfc3ltYm9sczEBAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyolJicoKSQrLC4vMDEyMzQ1Njc4OTo7PD0+P0BbXF1eYHt8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8tClQxOCwxOTIKbTRfY3Jfbm90X3N5bWJvbHMyAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMqJSYnKCkkKywuLzo7PD0+P0BbXF1eYHt8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8tCkYxMiw4Cm00X2JwYXRzdWJzdHBhdHN1YnN0ClQ3LDIKbTRfZWNobyRAClQyNSwxMTEKbTRfc3RhY2tfZm9yZWFjaF9zZXBfbGlmb19tNF9zdGFja19yZXZlcnNlKFskMV0sIFttNF90bXAtJDFdLCBbJDJbXV9tNF9kZWZuKFttNF90bXAtJDFdKSQzXSwgWyQ0W11dKV9tNF9zdGFja19yZXZlcnNlKFttNF90bXAtJDFdLCBbJDFdKQpUNyw5MQptNF9hcmdubTRfYXNzZXJ0KFswIDwgJDFdKW00X3B1c2hkZWYoW18kMF0sIFtfbTRfcG9wZGVmKFtfJDBdKV1tNF9kcXVvdGUoWyRdbTRfaW5jcihbJDFdKSkpXyQwKCRAKQpUOCwyNwptNF9pZnZhbG00X2lmKFskMV0sIFtdLCBbJDNdLCBbJDJdKQpUNywxOTcKbTRfY29weW00X2lmZGVmKFskMl0sIFttNF9mYXRhbChbJDA6IHdvbid0IG92ZXJ3cml0ZSBkZWZpbmVkIG1hY3JvOiAkMl0pXSwKCSAgW200X3N0YWNrX2ZvcmVhY2hfc2VwKFskMV0sIFttNF9wdXNoZGVmKFskMl0sXSwgWyldKV0pbTRfaWZkZWYoW200X2xvY2F0aW9uKCQxKV0sIFttNF9kZWZpbmUoW200X2xvY2F0aW9uKCQyKV0sIG00X2xvY2F0aW9uKV0pClQxNCwxMTMKbTRfZXhwYW5kX29uY2VtNF9wcm92aWRlX2lmKG00X2RlZmF1bHRfcXVvdGVkKFskMl0sIFskMV0pLAoJICAgICAgIFtdLAoJICAgICAgIFttNF9wcm92aWRlKG00X2RlZmF1bHRfcXVvdGVkKFskMl0sIFskMV0pKVtdJDFdKQpUMTQsOTYKX200X2JwYXRzdWJzdHNtNF9pZihbJCNdLCAyLCBbJDFdLAogICAgICAgWyQwKG00X2J1aWx0aW4oW3BhdHN1YnN0XSwgW1skMV1dLCBbJDJdLCBbJDNdKSwKCSAgIG00X3NoaWZ0MygkQCkpXSkKVDEzLDQxCm00X3Byb3ZpZGVfaWZtNF9pZmRlZihbbTRfcHJvdmlkZSgkMSldLAoJICBbJDJdLCBbJDNdKQpUMjAsNApfbTRfZGl2ZXJ0X2RpdmVyc2lvbktJTEwKRjEyLDgKX200X3VuZGl2ZXJ0dW5kaXZlcnQKVDcsNTQKX200X2Nkcm00X2lmKFskI10sIDEsIFtdLAogICAgICAgWywgbTRfZHF1b3RlKG00X3NoaWZ0KCRAKSldKQpUMTAsODYKbTRfdG91cHBlcm00X3RyYW5zbGl0KFtbJDFdXSwgW2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6XSwKCQkgICAgIFtBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWl0pClQ4LDE5Cm00X2N1cnJ5JDEobTRfc2hpZnQoJEAsKV8kMApUMTcsMjgKbTRfZGVmYXVsdF9uYmxhbmttNF9pZmJsYW5rKFskMV0sIFskMl0sIFskMV0pClQxMiw0OAptNF9yZV9lc2NhcGVtNF9icGF0c3Vic3QoWyQxXSwKCSAgICAgIFtbXVsqKy4/XF4kXV0sIFtcXFwmXSkKVDEyLDI2Cm00X25vcm1hbGl6ZW00X3N0cmlwKG00X2ZsYXR0ZW4oWyQxXSkpClQxOCw0MApfbTRfc2V0X2RpZmZlcmVuY2VtNF9zZXRfY29udGFpbnMoWyQxXSwgWyQyXSwgW10sIFssWyQyXV0pCkYzLDMKZG5sZG5sCkYxMiw4Cl9tNF91bmRlZmluZXVuZGVmaW5lClQxMCw3OQpfbTRfc2hpZnRubTRfaWYoWyQxXSwgMSwgW200X3NoaWZ0KF0sCiAgICAgICBbJDAobTRfZGVjcihbJDFdKV0pLCBtNF9zaGlmdChtNF9zaGlmdCgkQCkpKQpUMjAsMTcwCl9tNF92ZXJzaW9uX3VubGV0dGVybTRfYnBhdHN1YnN0KG00X2JwYXRzdWJzdChtNF90cmFuc2xpdChbW1tbMCwkMV1dXV0sIFsuLV0sIFssLF0pLFtbYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWl1dWytdLAoJICAgICAgWysxLC0xLFswcjM2OlwmXV0pLCBbLDBdLCBbLFswcjEwOjBdXSkKVDExLDEzNgptNF91bmRpdmVydG00X2lmKFskI10sIFswXSwgW200X2ZhdGFsKFskMDogbWlzc2luZyBhcmd1bWVudF0pXSwKICAgICAgIFskI10sIFsxXSwgW19tNF91bmRpdmVydChfbTRfZGl2ZXJ0KFskMV0pKV0sCiAgICAgICBbbTRfbWFwX2FyZ3MoWyQwXSwgJEApXSkKVDEwLDQxMgptNF9yZXF1aXJlbTRfaWZkZWYoW19tNF9leHBhbmRpbmcoJDEpXSwKICBbbTRfZmF0YWwoWyQwOiBjaXJjdWxhciBkZXBlbmRlbmN5IG9mICQxXSldKW00X2lmKF9tNF9kaXZlcnRfZHVtcCwgW10sCiAgW200X2ZhdGFsKFskMCgkMSk6IGNhbm5vdCBiZSB1c2VkIG91dHNpZGUgb2YgYW4gXWRubAptNF9pZihbJDBdLCBbbTRfcmVxdWlyZV0sIFtbbTRfZGVmdW5dXSwgW1tBQ19ERUZVTl1dKVsnZCBtYWNyb10pXSltNF9wcm92aWRlX2lmKFskMV0sIFttNF9zZXRfY29udGFpbnMoW19tNF9wcm92aWRlXSwgWyQxXSwKICAgIFtfbTRfcmVxdWlyZV9jaGVjayhbJDFdLCBfbTRfZGVmbihbbTRfcHJvdmlkZSgkMSldKSwgWyQwXSldLCBbbTRfaWdub3JlXSldLAogIFtfbTRfcmVxdWlyZV9jYWxsXSkoWyQxXSwgWyQyXSwgX200X2RpdmVydF9kdW1wKQpUNywxMTkKbTRfY2FzZW00X2lmKFskI10sIDAsIFtdLAogICAgICAgWyQjXSwgMSwgW10sCiAgICAgICBbJCNdLCAyLCBbJDJdLAogICAgICAgWyQxXSwgWyQyXSwgWyQzXSwKICAgICAgIFskMChbJDFdLCBtNF9zaGlmdDMoJEApKV0pClQxMSw1NQptNF9zaW5jbHVkZW00X2luY2x1ZGVfdW5pcXVlKFskMV0pZG5sCm00X2J1aWx0aW4oW3NpbmNsdWRlXSwgWyQxXSkKVDksMjU1Cm00X2NyX2FsbAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjKiUmJygpJCssLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/LQpUMTksNjIKbTRfdmVyc2lvbl91bmxldHRlcm00X3N1YnN0cihtNF9tYXBfYXJncyhbLm00X2V2YWxdLCBtNF91bnF1b3RlKF8kMChbJDFdKSkpLCBbM10pClQxNywzMgptNF9kZWZpbmVfZGVmYXVsdG00X2lmbmRlZihbJDFdLCBbbTRfZGVmaW5lKCRAKV0pClQxMSwxNjAKbTRfdW5kZWZpbmVtNF9pZihbJCNdLCBbMF0sIFtbJDBdXSwKICAgICAgIFskI10sIFsxXSwgW200X2lmZGVmKFskMV0sIFtfbTRfdW5kZWZpbmUoWyQxXSldLAoJCQkgICAgW200X2ZhdGFsKFskMDogdW5kZWZpbmVkIG1hY3JvOiAkMV0pXSldLAogICAgICAgW200X21hcF9hcmdzKFskMF0sICRAKV0pClQxNSwxMgptNF9QQUNLQUdFX05BTUVHTlUgQXV0b2NvbmYKRjEwLDcKbTRfYnVpbHRpbmJ1aWx0aW4KVDE0LDQ0Cm00X2RpdmVydF9vbmNlbTRfZXhwYW5kX29uY2UoW200X2RpdmVydF90ZXh0KFskMV0sIFskMl0pXSkKVDExLDE0NgpfbTRfZXhwYW5kX200X2lmKFskNF0sIFt9Pj0tXSwKICAgICAgIFttNF9jaGFuZ2VxdW90ZShbLT08eyQyXSwgWyl9Pj0tXSkkM200X2NoYW5nZXF1b3RlKFssIF0pXSwKICAgICAgIFskMChbJDFdLCBbKCQyXSwgLT08eygkMiQxKX0+PS0sIFt9Pj0tXSltNF9pZ25vcmUkMl0pClQxNyw2NApfbTRfZGl2ZXJ0X3Vuc2FmZW00X2ZhdGFsKFskMDogY2Fubm90IGNoYW5nZSBkaXZlcnNpb24gdG8gYCQxJyBpbnNpZGUgbTRfZXhwYW5kXSkKVDgsOTkKX200X2NvbmRtNF9pZigoJDEpLCBbKCQyKV0sIFskM10sCiAgICAgICBbJCNdLCBbM10sIFtdLAogICAgICAgWyQjXSwgWzRdLCBbJDRdLAogICAgICAgWyQwKG00X3NoaWZ0MygkQCkpXSkKVDE2LDAKbTRfcGF0dGVybl9hbGxvdwpUMTcsMjUzCm00X2RpdmVydF9yZXF1aXJlbTRfaWZkZWYoW19tNF9leHBhbmRpbmcoJDIpXSwKICBbbTRfZmF0YWwoWyQwOiBjaXJjdWxhciBkZXBlbmRlbmN5IG9mICQyXSldKW00X2lmKF9tNF9kaXZlcnRfZHVtcCwgW10sCiAgW200X2ZhdGFsKFskMCgkMik6IGNhbm5vdCBiZSB1c2VkIG91dHNpZGUgb2YgYW4gbTRfZGVmdW4nZCBtYWNyb10pXSltNF9wcm92aWRlX2lmKFskMl0sIFtdLAogIFtfbTRfcmVxdWlyZV9jYWxsKFskMl0sIFskM10sIF9tNF9kaXZlcnQoWyQxXSwgWy1dKSldKQpGOSw2Cm00X3N5c3ZhbHN5c3ZhbApUMTcsMAptNF9wYXR0ZXJuX2ZvcmJpZApUOSw2OQptNF9hc3NlcnRtNF9pZihtNF9ldmFsKFskMV0pLCAwLAogICAgICAgW200X2ZhdGFsKFthc3NlcnQgZmFpbGVkOiAkMV0sIFskMl0pXSkKRjEwLDcKbTRfcHVzaGRlZnB1c2hkZWYKVDIwLDUzCm00X2RpdmVydF9zdGFja19wdXNobTRfcHVzaGRlZihbX200X2RpdmVydF9zdGFja10sIG00X2xvY2F0aW9uWzogJDE6ICQyXSkKVDE3LDEwNQpfbTRfZGVmaW5lX2NyX25vdG00X2RlZmluZShbbTRfY3Jfbm90XyQxXSwKCSAgIG00X3RyYW5zbGl0KG00X2RxdW90ZShtNF9kZWZuKFttNF9jcl9hbGxdKSksCgkJICAgICAgIG00X2RlZm4oW200X2NyXyQxXSkpKQpUMjMsMzkKbTRfZXhwYW5zaW9uX3N0YWNrX3B1c2htNF9wdXNoZGVmKFtfbTRfZXhwYW5zaW9uX3N0YWNrXSwgWyQxXSkKVDEzLDI2Cm00X2NyX2xldHRlcnNhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egpUMTAsMzYKX200X2V4cGFuZCQwXyhbJDFdLCBbKF0sIC09PHsoJDEpfT49LSwgW30+PS1dKQpUMTEsMTQ5Cm00X21hcF9hcmdzbTRfaWYoWyQjXSwgWzBdLCBbbTRfZmF0YWwoWyQwOiB0b28gZmV3IGFyZ3VtZW50czogJCNdKV0sCiAgICAgICBbJCNdLCBbMV0sIFtdLAogICAgICAgWyQjXSwgWzJdLCBbJDEoWyQyXSlbXV0sCiAgICAgICBbX200X2ZvcmVhY2goWyQxKF0sIFspXSwgJEApXSkKVDE5LDI4OApfbTRfc2V0X2NvbnRlbnRzXzFjbTRfaWZkZWYoW19tNF9zZXQoWyQxXSldLAoJICBbbTRfc2V0X2NvbnRhaW5zKFskMV0sIF9tNF9kZWZuKFtfbTRfc2V0KFskMV0pXSksCgkJICAgW200X3B1c2hkZWYoW19tNF9zZXRfKCQxKV0sIF9tNF9kZWZuKFtfbTRfc2V0KFskMV0pXSkpXSwKCQkgICBbX200X3BvcGRlZihbX200X3NldChbJDFdLF1fbTRfZGVmbigKICAgICAgW19tNF9zZXQoWyQxXSldKVspXSldKV9tNF9wb3BkZWYoW19tNF9zZXQoWyQxXSldKSQwKFskMV0pXSwKCSAgW19tNF9wb3BkZWYoW19tNF9zZXRfY2xlYW51cCgkMSldKV0pClQ3LDY1Cl9tNF9taW5tNF9ldmFsKCgoWyQxXSkgPCAoWyQyXSkpICogKFskMV0pICsgKChbJDFdKSA+PSAoWyQyXSkpICogKFskMl0pKQpGOCw1Cm00X3NoaWZ0c2hpZnQKVDE2LDQ1MgpfbTRfcmVxdWlyZV9jYWxsbTRfcHVzaGRlZihbX200X2RpdmVydF9ncm93XSwgbTRfZGVjcihfbTRfZGl2ZXJ0X2dyb3cpKW00X3B1c2hkZWYoW19tNF9kaXZlcnRpbmcoWyQxXSldKW00X3B1c2hkZWYoW19tNF9kaXZlcnRpbmddLCBbJDFdKW00X2RpdmVydF9wdXNoKF9tNF9kaXZlcnRfZ3JvdywgWy1dKW00X2lmKFskMl0sIFtdLCBbJDFdLCBbJDJdKQptNF9wcm92aWRlX2lmKFskMV0sIFttNF9zZXRfcmVtb3ZlKFtfbTRfcHJvdmlkZV0sIFskMV0pXSwKICBbbTRfd2Fybihbc3ludGF4XSwgWyQxIGlzIG00X3JlcXVpcmUnZCBidXQgbm90IG00X2RlZnVuJ2RdKV0pX200X2RpdmVydF9yYXcoJDMpX200X3VuZGl2ZXJ0KF9tNF9kaXZlcnRfZ3JvdyltNF9kaXZlcnRfcG9wKF9tNF9kaXZlcnRfZ3JvdylfbTRfcG9wZGVmKFtfbTRfZGl2ZXJ0X2dyb3ddLApbX200X2RpdmVydGluZyhbJDFdKV0sIFtfbTRfZGl2ZXJ0aW5nXSkKVDExLDcwCl9tNF9mb3JlYWNobTRfaWYoWyQjXSwgWzNdLCBbXSwKICAgICAgIFskMVskNF0kMltdJDAoWyQxXSwgWyQyXSwgbTRfc2hpZnQzKCRAKSldKQpUNyw2NQpfbTRfbWF4bTRfZXZhbCgoKFskMV0pID4gKFskMl0pKSAqIChbJDFdKSArICgoWyQxXSkgPD0gKFskMl0pKSAqIChbJDJdKSkKRjgsOApfX2ZpbGVfX19fZmlsZV9fCkYxMCw2Cm00X2JyZWdleHByZWdleHAKVDEzLDQyCm00X21hcGFsbF9zZXBtNF9pZihbJDNdLCBbXSwgW10sIFtfJDAoWyQxXSwgWyQyXSwgJDMpXSkKVDksMjYKbTRfaWZuZGVmbTRfaWZkZWYoWyQxXSwgWyQzXSwgWyQyXSkKVDEzLDQ3Cm00X2NvcHlfZm9yY2VtNF9pZmRlZihbJDJdLCBbX200X3VuZGVmaW5lKFskMl0pXSltNF9jb3B5KCRAKQpUNywxMDgKbTRfam9pbm00X2lmKFskI10sIFsxXSwgW10sCiAgICAgICBbJCNdLCBbMl0sIFtbJDJdXSwKICAgICAgIFttNF9pZihbJDJdLCBbXSwgW10sIFtbJDJdX10pJDAoWyQxXSwgbTRfc2hpZnQyKCRAKSldKQpGNyw2Cm00X2V4aXRtNGV4aXQKVDEyLDgzCm00X3NldF91bmlvbm00X3NldF9saXN0YyhbJDFdKW00X2lmKFskMV0sIFskMl0sIFtdLAogIFttNF9zZXRfbWFwX3NlcChbJDJdLCBbXyQwKFskMV0sXSwgWyldKV0pClQxNiwyCl9tNF9kaXZlcnQoS0lMTCktMQpUMTAsMTAwCm00X2ZvcmVhY2htNF9pZihbJDJdLCBbXSwgW10sCiAgICAgICBbbTRfcHVzaGRlZihbJDFdKV8kMChbbTRfZGVmaW5lKFskMV0sXSwgWykkM10sIFtdLAogICQyKW00X3BvcGRlZihbJDFdKV0pCkYxMSw4Cm00X3RyYWNlb2ZmdHJhY2VvZmYKVDgsMzMKbTRfYXBwbHltNF9pZihbJDJdLCBbXSwgWyQxXSwgWyQxKCQyKV0pW10KVDMwLDAKbTRfaW5jbHVkZShtNHN1Z2FyL3ZlcnNpb24ubTQpClQxNCw3MwpfbTRfbWFwYWxsX3NlcG00X2FwcGx5KFskMV0sIFskM10pX200X2ZvcmVhY2goW200X2FwcGx5KFskMltdJDFdLF0sIFspXSwgbTRfc2hpZnQyKCRAKSkKVDksMTMyCm00X2RpdmVydG00X3BvcGRlZihbX200X2RpdmVydF9zdGFja10pbTRfZGVmaW5lKFtfbTRfZGl2ZXJ0X2RpdmVyc2lvbl0sIFskMV0pbTRfZGl2ZXJ0X3N0YWNrX3B1c2goWyQwXSwgWyQxXSlfbTRfZGl2ZXJ0X3JhdyhfbTRfZGl2ZXJ0KFskMV0pKQpGMTAsNwptNF90cmFjZW9udHJhY2VvbgpUMTMsNTIKbTRfY3JfTGV0dGVyc2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoKVDksNzUKbTRfYmVmb3JlbTRfcHJvdmlkZV9pZihbJDJdLAoJICAgICAgIFttNF93YXJuKFtzeW50YXhdLCBbJDIgd2FzIGNhbGxlZCBiZWZvcmUgJDFdKV0pClQxMCwxNDMKbTRfbWFwX3NlcG00X3B1c2hkZWYoW200X1NlcF0sIFttNF9kZWZpbmUoW200X1NlcF0sIF9tNF9kZWZuKFttNF91bnF1b3RlXSkpXSlfbTRfZm9yZWFjaChbX200X2FwcGx5KFttNF9TZXAoWyQyXSlbXSQxXSxdLCBbKV0sIFtdLCAkMyltNF9wb3BkZWYoW200X1NlcF0pClQxMiw1NQptNF9jb3B5X3VubTRtNF9jb3B5KFskMV0sIG00X2JwYXRzdWJzdChbJDFdLCBbXm00X1woLipcKV0sIFtbXDFdXSkpClQxMCw4NgptNF90b2xvd2VybTRfdHJhbnNsaXQoW1skMV1dLCBbQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpdLAoJCSAgICAgW2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6XSkKVDgsMTg5Cl9tNF93cmFwbTRfaWZkZWYoWyQwX3RleHRdLAoJICBbbTRfZGVmaW5lKFskMF90ZXh0XSwgWyQxXV9tNF9kZWZuKFskMF90ZXh0XSlbJDJdKV0sCgkgIFttNF9idWlsdGluKFttNHdyYXBdLCBbbTRfdW5xdW90ZSgKICBfbTRfZGVmbihbJDBfdGV4dF0pX200X3BvcGRlZihbJDBfdGV4dF0pKV0pbTRfZGVmaW5lKFskMF90ZXh0XSwgWyQxJDJdKV0pCkY5LDYKbTRfZGVmaW5lZGVmaW5lClQxMCwyNwptNF9kZWZhdWx0bTRfaWYoWyQxXSwgW10sIFskMl0sIFskMV0pClQ5LDUKX200X2N1cnJ5WyQxXSkKVDgsMTk4Cl9tNF9xbGVubTRfZGVmaW5lKFttNF9xbGVuLSQxXSwKbTRfaWYobTRfaW5kZXgoWyQxXSwgW0BdKSwgWy0xXSwgW200X2xlbihbJDFdKV0sCiAgICAgIFttNF9sZW4obTRfYnBhdHN1YnN0KFtbJDFdXSwKCQkJICAgW0BcKFwoPDpcfDo+XHxTfFx8JTpcfFx7Olx8Olx9XClcKEBcKVx8JnRAXCldLAoJCQkgICBbXDNdKSldKSlfbTRfZGVmbihbbTRfcWxlbi0kMV0pClQxMCw3MgptNF9yZXZlcnNlbTRfaWYoWyQjXSwgWzBdLCBbXSwgWyQjXSwgWzFdLCBbWyQxXV0sCiAgICAgICBbJDAobTRfc2hpZnQoJEApKSwgWyQxXV0pClQxMCwyOTQKX200X2VzY2FwZW00X2NoYW5nZXF1b3RlKFstPTx7KF0sWyl9Pj0tXSltNF9icGF0c3Vic3QobTRfYnBhdHN1YnN0KG00X2JwYXRzdWJzdChtNF9icGF0c3Vic3QoCgkgIC09PHsoLT08eygtPTx7KC09PHsoLT08eygkMSl9Pj0tKX0+PS0pfT49LSl9Pj0tKX0+PS0sCgktPTx7KCMpfT49LSwgLT08eyhAJTpAKX0+PS0pLAogICAgICAtPTx7KFxbKX0+PS0sIC09PHsoQDw6QCl9Pj0tKSwKICAgIC09PHsoXF0pfT49LSwgLT08eyhAOj5AKX0+PS0pLAogIC09PHsoXCQpfT49LSwgLT08eyhAU3xAKX0+PS0pbTRfY2hhbmdlcXVvdGUoWyxdKQpUMTYsNTUKX200X2RpdmVydF9zdGFjay4uLy4uL2xpYi9tNHN1Z2FyL200c3VnYXIubTQ6MzI1OTogbTRfZGl2ZXJ0X3B1c2g6IEtJTEwKVDE3LDIyOQptNF9jcl9ub3RfbGV0dGVycwECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjKiUmJygpJCssLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9ge3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/y0KVDE3LDExNwptNF9pbmNsdWRlX3VuaXF1ZW00X2lmZGVmKFttNF9pbmNsdWRlKCQxKV0sCgkgIFttNF93YXJuKFtzeW50YXhdLCBbZmlsZSBgJDEnIGluY2x1ZGVkIHNldmVyYWwgdGltZXNdKV0pZG5sCm00X2RlZmluZShbbTRfaW5jbHVkZSgkMSldKQpUOCw3NwptNF9zdHJpcG00X2JwYXRzdWJzdHMoWyQxIF0sCgkgICAgICAgW1sJIF0rXSwgWyBdLAoJICAgICAgIFteLiA/XCguKlwpIC4kXSwgW1tbXDFdXV0pClQ5LDQKbTRfZHF1b3RlWyRAXQpELTEsMAoKIyBFbmQgb2YgZnJvemVuIHN0YXRlIGZpbGUK