Owo7ICBDb3B5cmlnaHQgKGMpIDIwMTAgVGhlIFdlYk0gcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgo7CjsgIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKOyAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCjsgIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKOyAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQo7ICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KOwoKCjsgICAgICAgICAgICAgICAgICAgcjAgIHIxICByMiAgcjMgIHI0ICByNSAgcjYgIHI3ICByOCAgcjkgIHIxMCByMTEgcjEyICAgICByMTQKICAgIEVYUE9SVCAgfHZwOF9zaG9ydF9pZGN0NHg0bGxtXzFfdjZ8CiAgICBFWFBPUlQgIHx2cDhfc2hvcnRfaWRjdDR4NGxsbV92NnwKICAgIEVYUE9SVCAgfHZwOF9zaG9ydF9pZGN0NHg0bGxtX3Y2X3Njb3R0fAogICAgRVhQT1JUICB8dnA4X3Nob3J0X2lkY3Q0eDRsbG1fdjZfZHVhbHwKCiAgICBBUkVBICAgIHwudGV4dHwsIENPREUsIFJFQURPTkxZCgo7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKOyogIHZvaWQgc2hvcnRfaWRjdDR4NGxsbV8xX3Y2KElOVDE2ICogaW5wdXQsIElOVDE2ICogb3V0cHV0LCBJTlQzMiBwaXRjaCkKOyogICAgICByMCAgSU5UMTYgKiBpbnB1dAo7KiAgICAgIHIxICBJTlQxNiAqIG91dHB1dAo7KiAgICAgIHIyICBJTlQzMiBwaXRjaAo7KiAgYmVuY2g6ICAzLzUKOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgp8dnA4X3Nob3J0X2lkY3Q0eDRsbG1fMV92NnwgUFJPQyAgICAgICAgIDsgICBjeWNsZXMgIGluICBvdXQgcGl0CiAgICAgICAgICAgIDsKICAgIGxkcnNoICAgcjAsIFtyMF0gICAgOyBsb2FkIGlucHV0WzBdIDEsIHIwIHVuIDIKICAgIGFkZCByMCwgcjAsICM0ICA7ICAgMSAgICs0CiAgICBzdG1kYiAgIHNwISwge3I0LCByNSwgbHJ9ICAgOyBtYWtlIHJvb20gZm9yIHdpZGUgd3JpdGVzIDEgICAgICAgICAgICAgICAgICAgYmFja3VwCiAgICBtb3YgcjAsIHIwLCBhc3IgIzMgIDsgKGlucHV0WzBdICsgNCkgPj4gMyAgIDEsIHIwIHJlcWBkIF4xICA+PiAzCiAgICBwa2hidCAgIHI0LCByMCwgcjAsIGxzbCAjMTYgOyBwYWNrIHIwIGludG8gcjQgICAxLCByMCByZXFgZCBeMSAgICAgICAgICAgICAgICAgIHBhY2sKICAgIG1vdiByNSwgcjQgIDsgZXhwYW5kICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kCgogICAgc3RyZCAgICByNCwgW3IxXSwgcjIgICAgOyAqb3V0cHV0ID0gcjAsIHBvc3QgaW5jICAgIDEKICAgIHN0cmQgICAgcjQsIFtyMV0sIHIyICAgIDsgICAxCiAgICBzdHJkICAgIHI0LCBbcjFdLCByMiAgICA7ICAgMQogICAgc3RyZCAgICByNCwgW3IxXSAgICA7ICAgMQogICAgICAgICAgICA7CiAgICBsZG1pYSAgIHNwISwge3I0LCByNSwgcGN9ICAgOyByZXBsYWNlIHZhcnMsIHJldHVybiAgICAgICAgICAgICAgICAgICAgICByZXN0b3JlCiAgICBFTkRQICAgICAgICA7IHx2cDhfc2hvcnRfaWRjdDR4NGxsbV8xX3Y2fAo7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCjsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCjsqICB2b2lkIHNob3J0X2lkY3Q0eDRsbG1fdjYoSU5UMTYgKiBpbnB1dCwgSU5UMTYgKiBvdXRwdXQsIElOVDMyIHBpdGNoKQo7KiAgICAgIHIwICBJTlQxNiAqIGlucHV0CjsqICAgICAgcjEgIElOVDE2ICogb3V0cHV0CjsqICAgICAgcjIgIElOVDMyIHBpdGNoCjsqICBiZW5jaDoKOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgp8dnA4X3Nob3J0X2lkY3Q0eDRsbG1fdjZ8IFBST0MgICAgICAgICAgIDsgICBjeWNsZXMgIGluICBvdXQgcGl0CiAgICAgICAgICAgIDsKICAgIHN0bWRiICAgc3AhLCB7cjQtcjExLCBscn0gICA7IGJhY2t1cCByZWdpc3RlcnMgIDEgICAgICAgICAgICAgICAgICAgYmFja3VwCiAgICAgICAgICAgIDsKICAgIG1vdiByNCwgIzB4MDAwMDRFMDAgOyAgIDEgICAgICAgICAgICAgICAgICAgY3N0CiAgICBvcnIgcjQsIHI0LCAjMHgwMDAwMDA3QiA7IGNvc3BpOHNxcnQybWludXMxCiAgICBtb3YgcjUsICMweDAwMDA4QTAwIDsgICAxICAgICAgICAgICAgICAgICAgICAgICBjc3QKICAgIG9yciByNSwgcjUsICMweDAwMDAwMDhDIDsgc2lucGk4c3FydDIKICAgICAgICAgICAgOwogICAgbW92IHI2LCAjNCAgOyBpPTQgICAxICAgICAgICAgICAgICAgICAgICAgICAgICAgaQpsb29wMSAgICAgICAgICAgOwogICAgbGRyc2ggICByMTIsIFtyMCwgIzhdICAgOyBpbnB1dFs0XSAgMSwgcjEyIHVuYXZhaWwgMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbNF0KICAgIGxkcnNoICAgcjMsIFtyMCwgIzI0XSAgIDsgaW5wdXRbMTJdIDEsIHIzIHVuYXZhaWwgMiAgICAgICAgICAgICBbMTJdCiAgICBsZHJzaCAgIHI4LCBbcjAsICMxNl0gICA7IGlucHV0WzhdICAxLCByOCB1bmF2YWlsIDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbOF0KICAgIGxkcnNoICAgcjcsIFtyMF0sICMweDIgIDsgaW5wdXRbMF0gIDEsIHI3IHVuYXZhaWwgMiArKyAgICAgICAgICAgICAgICAgICAgICAgICAgWzBdCiAgICBzbXVsd2IgIHIxMCwgcjUsIHIxMiAgICA7IChbNF0gKiBzaW5waThzcXJ0MikgPj4gMTYgMSwgcjEwIHVuIDIsIHIxMi9yNSBeMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQxCiAgICBzbXVsd2IgIHIxMSwgcjQsIHIzIDsgKFsxMl0gKiBjb3NwaThzcXJ0Mm1pbnVzMSkgPj4gMTYgIDEsIHIxMSB1biAyLCByMy9yNCBeMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdDIKICAgIGFkZCByOSwgcjcsIHI4ICA7IGExID0gWzBdICsgWzhdICAgIDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhMQogICAgc3ViIHI3LCByNywgcjggIDsgYjEgPSBbMF0gLSBbOF0gICAgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMQogICAgYWRkIHIxMSwgcjMsIHIxMSAgICA7IHRlbXAyIDEKICAgIHJzYiByMTEsIHIxMSwgcjEwICAgOyBjMSA9IHRlbXAxIC0gdGVtcDIgICAgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYzEKICAgIHNtdWx3YiAgcjMsIHI1LCByMyAgOyAoWzEyXSAqIHNpbnBpOHNxcnQyKSA+PiAxNiAgICAxLCByMyB1biAyLCByMy9yNSBeIDEgICAgICAgICAgICAgICB0MgogICAgc211bHdiICByMTAsIHI0LCByMTIgICAgOyAoWzRdICogY29zcGk4c3FydDJtaW51czEpID4+IDE2ICAgMSwgcjEwIHVuIDIsIHIxMi9yNCBeMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQxCiAgICBhZGQgcjgsIHI3LCByMTEgOyBiMSArIGMxICAgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYitjCiAgICBzdHJoICAgIHI4LCBbcjEsIHIyXSAgICA7IG91dFtwaXRjaF0gPSBiMStjMSAgICAxCiAgICBzdWIgcjcsIHI3LCByMTEgOyBiMSAtIGMxICAgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLWMKICAgIGFkZCByMTAsIHIxMiwgcjEwICAgOyB0ZW1wMSAxCiAgICBhZGQgcjMsIHIxMCwgcjMgOyBkMSA9IHRlbXAxICsgdGVtcDIgICAgMSAgICAgICAgICAgICAgIGQxCiAgICBhZGQgcjEwLCByOSwgcjMgOyBhMSArIGQxICAgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhK2QKICAgIHN1YiByMywgcjksIHIzICA7IGExIC0gZDEgICAxICAgICAgICAgICAgICAgYS1kCiAgICBhZGQgcjgsIHIyLCByMiAgOyBwaXRjaCAqIDIgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcCoyCiAgICBzdHJoICAgIHI3LCBbcjEsIHI4XSAgICA7IG91dFtwaXRjaCoyXSA9IGIxLWMxICAxCiAgICBhZGQgcjcsIHIyLCByMiwgbHNsICMxICA7IHBpdGNoICogMyAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAqMwogICAgc3RyaCAgICByMywgW3IxLCByN10gICAgOyBvdXRbcGl0Y2gqM10gPSBhMS1kMSAgMQogICAgc3VicyAgICByNiwgcjYsICMxICA7IGktLSAgIDEgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQogICAgc3RyaCAgICByMTAsIFtyMV0sICMweDIgOyBvdXRbMF0gPSBhMStkMSAgICAxICAgICAgICsrCiAgICBibmUgbG9vcDEgICA7IGlmIGk+MCwgY29udGludWUKICAgICAgICAgICAgOwogICAgc3ViIHIxLCByMSwgIzggIDsgc2V0IHVwIG91dCBmb3IgbmV4dCBsb29wICAxICAgICAgIC00CiAgICAgICAgICAgIDsgZm9yIHRoaXMgaXRlcmF0aW9uLCBpbnB1dD1wcmV2IG91dHB1dAogICAgbW92IHI2LCAjNCAgOyBpPTQgICAxICAgICAgICAgICAgICAgICAgICAgICAgICAgaQo7ICAgYiAgIHJldHVybmZ1bGwKbG9vcDIgICAgICAgICAgIDsKICAgIGxkcnNoICAgcjExLCBbcjEsICMyXSAgIDsgaW5wdXRbMV0gIDEsIHIxMSB1biAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzFdCiAgICBsZHJzaCAgIHI4LCBbcjEsICM2XSAgICA7IGlucHV0WzNdICAxLCByOCB1biAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFszXQogICAgbGRyc2ggICByMywgW3IxLCAjNF0gICAgOyBpbnB1dFsyXSAgMSwgcjMgdW4gMiAgICAgICAgICAgICAgWzJdCiAgICBsZHJzaCAgIHIwLCBbcjFdICAgIDsgaW5wdXRbMF0gIDEsIHIwIHVuIDIgIFswXQogICAgc211bHdiICByOSwgcjUsIHIxMSA7IChbMV0gKiBzaW5waThzcXJ0MikgPj4gMTYgMSwgcjkgdW4gMiwgcjUvcjExIF4xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdDEKICAgIHNtdWx3YiAgcjEwLCByNCwgcjggOyAoWzNdICogY29zcGk4c3FydDJtaW51czEpID4+IDE2ICAgMSwgcjEwIHVuIDIsIHI0L3I4IF4xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQyCiAgICBhZGQgcjcsIHIwLCByMyAgOyBhMSA9IFswXSArIFsyXSAgICAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGExCiAgICBzdWIgcjAsIHIwLCByMyAgOyBiMSA9IFswXSAtIFsyXSAgICAxICAgYjEKICAgIGFkZCByMTAsIHI4LCByMTAgICAgOyB0ZW1wMiAxCiAgICByc2IgcjksIHIxMCwgcjkgOyBjMSA9IHRlbXAxIC0gdGVtcDIgICAgMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMxCiAgICBzbXVsd2IgIHI4LCByNSwgcjggIDsgKFszXSAqIHNpbnBpOHNxcnQyKSA+PiAxNiAxLCByOCB1biAyLCByNS9yOCBeMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQyCiAgICBzbXVsd2IgIHIxMCwgcjQsIHIxMSAgICA7IChbMV0gKiBjb3NwaThzcXJ0Mm1pbnVzMSkgPj4gMTYgICAxLCByMTAgdW4gMiwgcjQvcjExIF4xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdDEKICAgIGFkZCByMywgcjAsIHI5ICA7IGIxK2MxIDEgICAgICAgICAgICAgICBiK2MKICAgIGFkZCByMywgcjMsICM0ICA7IGIxK2MxKzQgICAxICAgICAgICAgICAgICAgKzQKICAgIGFkZCByMTAsIHIxMSwgcjEwICAgOyB0ZW1wMSAxCiAgICBtb3YgcjMsIHIzLCBhc3IgIzMgIDsgYjErYzErNCA+PiAzICAxLCByMyBeMSAgICAgICAgICAgICAgICA+PjMKICAgIHN0cmggICAgcjMsIFtyMSwgIzJdICAgIDsgb3V0WzFdID0gYjErYzEgICAgMQogICAgYWRkIHIxMCwgcjEwLCByOCAgICA7IGQxID0gdGVtcDEgKyB0ZW1wMiAgICAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQxCiAgICBhZGQgcjMsIHI3LCByMTAgOyBhMStkMSAxICAgICAgICAgICAgICAgYStkCiAgICBhZGQgcjMsIHIzLCAjNCAgOyBhMStkMSs0ICAgMSAgICAgICAgICAgICAgICs0CiAgICBzdWIgcjcsIHI3LCByMTAgOyBhMS1kMSAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEtZAogICAgYWRkIHI3LCByNywgIzQgIDsgYTEtZDErNCAgIDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKzQKICAgIG1vdiByMywgcjMsIGFzciAjMyAgOyBhMStkMSs0ID4+IDMgIDEsIHIzIF4xICAgICAgICAgICAgICAgID4+MwogICAgbW92IHI3LCByNywgYXNyICMzICA7IGExLWQxKzQgPj4gMyAgMSwgcjcgXjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4+MwogICAgc3RyaCAgICByNywgW3IxLCAjNl0gICAgOyBvdXRbM10gPSBhMS1kMSAgICAxCiAgICBzdWIgcjAsIHIwLCByOSAgOyBiMS1jMSAxICAgYi1jCiAgICBhZGQgcjAsIHIwLCAjNCAgOyBiMS1jMSs0ICAgMSAgICs0CiAgICBzdWJzICAgIHI2LCByNiwgIzEgIDsgaS0tICAgMSAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCiAgICBtb3YgcjAsIHIwLCBhc3IgIzMgIDsgYjEtYzErNCA+PiAzICAxLCByMCBeMSAgICA+PjMKICAgIHN0cmggICAgcjAsIFtyMSwgIzRdICAgIDsgb3V0WzJdID0gYjEtYzEgICAgMQogICAgc3RyaCAgICByMywgW3IxXSwgcjIgICAgOyBvdXRbMF0gPSBhMStkMSAgICAxCjsgICBhZGQgcjEsIHIxLCByMiAgOyBvdXQgKz0gcGl0Y2ggIDEgICAgICAgKysKICAgIGJuZSBsb29wMiAgIDsgaWYgaT4wLCBjb250aW51ZQpyZXR1cm5mdWxsICAgICAgICAgIDsKICAgIGxkbWlhICAgc3AhLCB7cjQgLSByMTEsIHBjfSA7IHJlcGxhY2UgdmFycywgcmV0dXJuICAgICAgICAgICAgICAgICAgICAgIHJlc3RvcmUKICAgIEVORFAKCjsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgo7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKOyogIHZvaWQgc2hvcnRfaWRjdDR4NGxsbV92Nl9zY290dChJTlQxNiAqIGlucHV0LCBJTlQxNiAqIG91dHB1dCwgSU5UMzIgcGl0Y2gpCjsqICAgICAgcjAgIElOVDE2ICogaW5wdXQKOyogICAgICByMSAgSU5UMTYgKiBvdXRwdXQKOyogICAgICByMiAgSU5UMzIgcGl0Y2gKOyogIGJlbmNoOgo7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCnx2cDhfc2hvcnRfaWRjdDR4NGxsbV92Nl9zY290dHwgUFJPQyAgICAgICAgIDsgICBjeWNsZXMgIGluICBvdXQgcGl0CjsgICBtb3YgcjAsICMwICA7CjsgICBsZHIgcjAsIFtyMF0gICAgOwogICAgc3RtZGIgICBzcCEsIHtyNCAtIHIxMSwgbHJ9IDsgYmFja3VwIHJlZ2lzdGVycyAgMSAgICAgICAgICAgICAgICAgICBiYWNrdXAKICAgICAgICAgICAgOwogICAgbW92IHIzLCAjMHgwMDAwNEUwMCA7ICAgICAgICAgICAgICAgICAgIGNvcwogICAgb3JyIHIzLCByMywgIzB4MDAwMDAwN0IgOyBjb3NwaThzcXJ0Mm1pbnVzMQogICAgbW92IHI0LCAjMHgwMDAwOEEwMCA7ICAgICAgICAgICAgICAgICAgICAgICBzaW4KICAgIG9yciByNCwgcjQsICMweDAwMDAwMDhDIDsgc2lucGk4c3FydDIKICAgICAgICAgICAgOwogICAgbW92IHI1LCAjMHgyICAgIDsgaSAgICAgICAgICAgICAgICAgICAgICAgICBpCiAgICAgICAgICAgIDsKc2hvcnRfaWRjdDR4NGxsbV92Nl9zY290dF9sb29wMSAgICAgICAgICA7CiAgICBsZHIgcjEwLCBbcjAsICMoNCoyKV0gICA7IGk1IHwgaTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUsNAogICAgbGRyIHIxMSwgW3IwLCAjKDEyKjIpXSAgOyBpMTMgfCBpMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMsMTIKICAgICAgICAgICAgOwogICAgc211bHdiICByNiwgcjQsIHIxMCA7ICgoaXBbNF0gKiBzaW5waThzcXJ0MikgPj4gMTYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsdDEKICAgIHNtdWx3YiAgcjcsIHIzLCByMTEgOyAoKGlwWzEyXSAqIGNvc3BpOHNxcnQybWludXMxKSA+PiAxNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbHQyCiAgICAgICAgICAgIDsKICAgIHNtdWx3YiAgcjEyLCByMywgcjEwICAgIDsgKChpcFs0XSAqIGNvc3BpOHNxcnQybWlzdTEpID4+IDE2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbDJ0MgogICAgc211bHdiICByMTQsIHI0LCByMTEgICAgOyAoKGlwWzEyXSAqIHNpbnBpOHNxcnQyKSA+PiAxNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbDJ0MQogICAgICAgICAgICA7CiAgICBhZGQgcjYsIHI2LCByNyAgOyBwYXJ0aWFsIGMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsdDEtbHQyCiAgICBhZGQgcjEyLCByMTIsIHIxNCAgIDsgcGFydGlhbCBkMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbDJ0MitsMnQxCiAgICAgICAgICAgIDsKICAgIHNtdWx3dCAgcjE0LCByNCwgcjEwICAgIDsgKChpcFs1XSAqIHNpbnBpOHNxcnQyKSA+PiAxNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHQxCiAgICBzbXVsd3QgIHI3LCByMywgcjExIDsgKChpcFsxM10gKiBjb3NwaThzcXJ0Mm1pbnVzMSkgPj4gMTYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0MgogICAgICAgICAgICA7CiAgICBzbXVsd3QgIHI4LCByMywgcjEwIDsgKChpcFs1XSAqIGNvc3BpOHNxcnQybWludXMxKSA+PiAxNikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoMnQxCiAgICBzbXVsd3QgIHI5LCByNCwgcjExIDsgKChpcFsxM10gKiBzaW5waThzcXJ0MikgPj4gMTYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoMnQyCiAgICAgICAgICAgIDsKICAgIGFkZCByNywgcjE0LCByNyA7IHBhcnRpYWwgYzFfMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodDEraHQyCiAgICBzdWIgcjgsIHI4LCByOSAgOyBwYXJ0aWFsIGQxXzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGgydDEtaDJ0MgogICAgICAgICAgICA7CiAgICBwa2hidCAgIHI2LCByNiwgcjcsIGxzbCAjMTYgOyBwYXJ0aWFsIGMxXzIgfCBwYXJ0aWFsIGMxXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFjawogICAgcGtoYnQgICByMTIsIHIxMiwgcjgsIGxzbCAjMTYgICA7IHBhcnRpYWwgZDFfMiB8IHBhcnRpYWwgZDFfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWNrCiAgICAgICAgICAgIDsKICAgIHVzdWIxNiAgcjYsIHI2LCByMTAgOyBjMV8yIHwgYzFfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjCiAgICB1YWRkMTYgIHIxMiwgcjEyLCByMTEgICA7IGQxXzIgfCBkMV8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQKICAgICAgICAgICAgOwogICAgbGRyIHIxMCwgW3IwLCAjMF0gICA7IGkxIHwgaTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsMAogICAgbGRyIHIxMSwgW3IwLCAjKDgqMildICAgOyBpOSB8IGkxMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOSwxMAogICAgICAgICAgICA7Cjs7Ozs7OyAgYWRkIHIwLCByMCwgIzB4NCAgICA7ICAgICAgICs0Cjs7Ozs7OyAgYWRkIHIxLCByMSwgIzB4NCAgICA7ICAgICAgICAgICArNAogICAgICAgICAgICA7CiAgICB1YWRkMTYgIHI4LCByMTAsIHIxMSAgICA7IGkxICsgaTkgfCBpMCArIGk4IGFrYSBhMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYQogICAgdXN1YjE2ICByOSwgcjEwLCByMTEgICAgOyBpMSAtIGk5IHwgaTAgLSBpOCBha2EgYjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiCiAgICAgICAgICAgIDsKICAgIHVhZGQxNiAgcjcsIHI4LCByMTIgOyBhMSArIGQxIHBhaXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYStkCiAgICB1c3ViMTYgIHIxNCwgcjgsIHIxMiAgICA7IGExIC0gZDEgcGFpciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS1kCiAgICAgICAgICAgIDsKICAgIHN0ciByNywgW3IxXSAgICA7IG9wWzBdID0gYTEgKyBkMQogICAgc3RyIHIxNCwgW3IxLCByMl0gICA7IG9wW3BpdGNoKjNdID0gYTEgLSBkMQogICAgICAgICAgICA7CiAgICBhZGQgcjAsIHIwLCAjMHg0ICAgIDsgb3BbcGl0Y2hdID0gYjEgKyBjMSAgICAgICArKwogICAgYWRkIHIxLCByMSwgIzB4NCAgICA7IG9wW3BpdGNoKjJdID0gYjEgLSBjMSAgICAgICAgICsrCiAgICAgICAgICAgIDsKICAgIHN1YnMgICAgcjUsIHI1LCAjMHgxICAgIDsgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQogICAgYm5lIHNob3J0X2lkY3Q0eDRsbG1fdjZfc2NvdHRfbG9vcDEgIDsKICAgICAgICAgICAgOwogICAgc3ViIHIxLCByMSwgIzE2IDsgcmVzZXQgb3V0cHV0IHB0cgogICAgbW92IHI1LCAjMHg0ICAgIDsKICAgIG1vdiByMCwgcjEgIDsgaW5wdXQgPSBvdXRwdXQKICAgICAgICAgICAgOwpzaG9ydF9pZGN0NHg0bGxtX3Y2X3Njb3R0X2xvb3AyICAgICAgICAgIDsKICAgICAgICAgICAgOwogICAgc3VicyAgICByNSwgcjUsICMweDEgICAgOwogICAgYm5lIHNob3J0X2lkY3Q0eDRsbG1fdjZfc2NvdHRfbG9vcDIgIDsKICAgICAgICAgICAgOwogICAgbGRtaWEgICBzcCEsIHtyNCAtIHIxMSwgcGN9IDsKICAgIEVORFAgICAgICAgIDsKICAgICAgICAgICAgOwo7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCjsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCjsqICB2b2lkIHNob3J0X2lkY3Q0eDRsbG1fdjZfZHVhbChJTlQxNiAqIGlucHV0LCBJTlQxNiAqIG91dHB1dCwgSU5UMzIgcGl0Y2gpCjsqICAgICAgcjAgIElOVDE2ICogaW5wdXQKOyogICAgICByMSAgSU5UMTYgKiBvdXRwdXQKOyogICAgICByMiAgSU5UMzIgcGl0Y2gKOyogIGJlbmNoOgo7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCnx2cDhfc2hvcnRfaWRjdDR4NGxsbV92Nl9kdWFsfCBQUk9DICAgICAgICAgIDsgICBjeWNsZXMgIGluICBvdXQgcGl0CiAgICAgICAgICAgIDsKICAgIHN0bWRiICAgc3AhLCB7cjQtcjExLCBscn0gICA7IGJhY2t1cCByZWdpc3RlcnMgIDEgICAgICAgICAgICAgICAgICAgYmFja3VwCiAgICBtb3YgcjMsICMweDAwMDA0RTAwIDsgICAgICAgICAgICAgICAgICAgY29zCiAgICBvcnIgcjMsIHIzLCAjMHgwMDAwMDA3QiA7IGNvc3BpOHNxcnQybWludXMxCiAgICBtb3YgcjQsICMweDAwMDA4QTAwIDsgICAgICAgICAgICAgICAgICAgICAgIHNpbgogICAgb3JyIHI0LCByNCwgIzB4MDAwMDAwOEMgOyBzaW5waThzcXJ0MgogICAgbW92IHI1LCAjMHgyICAgIDsgaT0yICAgICAgICAgICAgICAgICAgICAgICAgICAgaQpsb29wMV9kdWFsCiAgICBsZHIgcjYsIFtyMCwgIyg0KjIpXSAgICA7IGk1IHwgaTQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNXw0CiAgICBsZHIgcjEyLCBbcjAsICMoMTIqMildICA7IGkxMyB8IGkxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTN8MTIKICAgIGxkciByMTQsIFtyMCwgIyg4KjIpXSAgIDsgaTkgfCBpOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDl8OAoKICAgIHNtdWx3dCAgcjksIHIzLCByNiAgOyAoaXBbNV0gKiBjb3NwaThzcXJ0Mm1pbnVzMSkgPj4gMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjCiAgICBzbXVsd2IgIHI3LCByMywgcjYgIDsgKGlwWzRdICogY29zcGk4c3FydDJtaW51czEpID4+IDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNGMKICAgIHNtdWx3dCAgcjEwLCByNCwgcjYgOyAoaXBbNV0gKiBzaW5waThzcXJ0MikgPj4gMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVzCiAgICBzbXVsd2IgIHI4LCByNCwgcjYgIDsgKGlwWzRdICogc2lucGk4c3FydDIpID4+IDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNHMKICAgIHBraGJ0ICAgcjcsIHI3LCByOSwgbHNsICMxNiA7IDVjIHwgNGMKICAgIHNtdWx3dCAgcjExLCByMywgcjEyICAgIDsgKGlwWzEzXSAqIGNvc3BpOHNxcnQybWludXMxKSA+PiAxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxM2MKICAgIHBraGJ0ICAgcjgsIHI4LCByMTAsIGxzbCAjMTYgICAgOyA1cyB8IDRzCiAgICB1YWRkMTYgIHI2LCByNiwgcjcgIDsgNWMrNSB8IDRjKzQKICAgIHNtdWx3dCAgcjcsIHI0LCByMTIgOyAoaXBbMTNdICogc2lucGk4c3FydDIpID4+IDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzcwogICAgc211bHdiICByOSwgcjMsIHIxMiA7IChpcFsxMl0gKiBjb3NwaThzcXJ0Mm1pbnVzMSkgPj4gMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyYwogICAgc211bHdiICByMTAsIHI0LCByMTIgICAgOyAoaXBbMTJdICogc2lucGk4c3FydDIpID4+IDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEycwogICAgc3VicyAgICByNSwgcjUsICMweDEgICAgOyBpLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAtLQogICAgcGtoYnQgICByOSwgcjksIHIxMSwgbHNsICMxNiAgICA7IDEzYyB8IDEyYwogICAgbGRyIHIxMSwgW3IwXSwgIzB4NCA7IGkxIHwgaTAgICAgICAgKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxfDAKICAgIHBraGJ0ICAgcjEwLCByMTAsIHI3LCBsc2wgIzE2ICAgOyAxM3MgfCAxMnMKICAgIHVhZGQxNiAgcjcsIHIxMiwgcjkgOyAxM2MrMTMgfCAxMmMrMTIKICAgIHVzdWIxNiAgcjcsIHI4LCByNyAgOyBjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYwogICAgdWFkZDE2ICByNiwgcjYsIHIxMCA7IGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQKICAgIHVhZGQxNiAgcjEwLCByMTEsIHIxNCAgIDsgYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEKICAgIHVzdWIxNiAgcjgsIHIxMSwgcjE0ICAgIDsgYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiCiAgICB1YWRkMTYgIHI5LCByMTAsIHI2IDsgYStkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGErZAogICAgdXN1YjE2ICByMTAsIHIxMCwgcjYgICAgOyBhLWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEtZAogICAgdWFkZDE2ICByNiwgcjgsIHI3ICA7IGIrYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiK2MKICAgIHVzdWIxNiAgcjcsIHI4LCByNyAgOyBiLWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGItYwogICAgc3RyIHI2LCBbcjEsIHIyXSAgICA7IG81IHwgbzQKICAgIGFkZCByNiwgcjIsIHIyICA7IHBpdGNoICogMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDIKICAgIHN0ciByNywgW3IxLCByNl0gICAgOyBvOSB8IG84CiAgICBhZGQgcjYsICByNiwgcjIgOyBwaXRjaCAqIDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAzCiAgICBzdHIgcjEwLCBbcjEsIHI2XSAgIDsgbzEzIHwgbzEyCiAgICBzdHIgcjksIFtyMV0sICMweDQgIDsgbzEgfCBvMCAgICAgICAgICAgKysKICAgIGJuZSBsb29wMV9kdWFsICA7CiAgICBtb3YgcjUsICMweDIgICAgOyBpPTIgICAgICAgICAgICAgICAgICAgICAgICAgICBpCiAgICBzdWIgcjAsIHIxLCAjOCAgOyByZXNldCBpbnB1dC9vdXRwdXQgICAgICAgIGkvbwpsb29wMl9kdWFsCiAgICBsZHIgcjYsIFtyMCwgcjJdICAgIDsgaTUgfCBpNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1fDQKICAgIGxkciByMSwgW3IwXSAgICA7IGkxIHwgaTAgICAgICAgICAgIDF8MAogICAgbGRyIHIxMiwgW3IwLCAjMHg0XSA7IGkzIHwgaTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgM3wyCiAgICBhZGQgcjE0LCByMiwgIzB4NCAgIDsgcGl0Y2ggKyAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHArMgogICAgbGRyIHIxNCwgW3IwLCByMTRdICA7IGk3IHwgaTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3fDYKICAgIHNtdWx3dCAgcjksIHIzLCByNiAgOyAoaXBbNV0gKiBjb3NwaThzcXJ0Mm1pbnVzMSkgPj4gMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVjCiAgICBzbXVsd3QgIHI3LCByMywgcjEgIDsgKGlwWzFdICogY29zcGk4c3FydDJtaW51czEpID4+IDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMWMKICAgIHNtdWx3dCAgcjEwLCByNCwgcjYgOyAoaXBbNV0gKiBzaW5waThzcXJ0MikgPj4gMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDVzCiAgICBzbXVsd3QgIHI4LCByNCwgcjEgIDsgKGlwWzFdICogc2lucGk4c3FydDIpID4+IDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMXMKICAgIHBraGJ0ICAgcjExLCByNiwgcjEsIGxzbCAjMTYgICAgOyBpMCB8IGk0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHw0CiAgICBwa2hidCAgIHI3LCByOSwgcjcsIGxzbCAjMTYgOyAxYyB8IDVjCiAgICBwa2hidCAgIHI4LCByMTAsIHI4LCBsc2wgIzE2ICAgIDsgMXMgfCA1cyA9IHRlbXAxIKkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGMxCiAgICBwa2h0YiAgIHIxLCByMSwgcjYsIGFzciAjMTYgOyBpMSB8IGk1ICAgICAgICAgICAxfDUKICAgIHVhZGQxNiAgcjEsIHI3LCByMSAgOyAxYysxIHwgNWMrNSA9IHRlbXAyIChkKSAgICAgICAgICAgdGQyCiAgICBwa2hidCAgIHI5LCByMTQsIHIxMiwgbHNsICMxNiAgIDsgaTIgfCBpNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyfDYKICAgIHVhZGQxNiAgcjEwLCByMTEsIHI5ICAgIDsgYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEKICAgIHVzdWIxNiAgcjksIHIxMSwgcjkgOyBiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiCiAgICBwa2h0YiAgIHI2LCByMTIsIHIxNCwgYXNyICMxNiAgIDsgaTMgfCBpNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzfDcKICAgIHN1YnMgICAgcjUsIHI1LCAjMHgxICAgIDsgaS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KICAgIHNtdWx3dCAgcjcsIHIzLCByNiAgOyAoaXBbM10gKiBjb3NwaThzcXJ0Mm1pbnVzMSkgPj4gMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzYwogICAgc211bHd0ICByMTEsIHI0LCByNiA7IChpcFszXSAqIHNpbnBpOHNxcnQyKSA+PiAxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDNzCiAgICBzbXVsd2IgIHIxMiwgcjMsIHI2IDsgKGlwWzddICogY29zcGk4c3FydDJtaW51czEpID4+IDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3YwogICAgc211bHdiICByMTQsIHI0LCByNiA7IChpcFs3XSAqIHNpbnBpOHNxcnQyKSA+PiAxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDdzCgogICAgcGtoYnQgICByNywgcjEyLCByNywgbHNsICMxNiAgICA7IDNjIHwgN2MKICAgIHBraGJ0ICAgcjExLCByMTQsIHIxMSwgbHNsICMxNiAgOyAzcyB8IDdzID0gdGVtcDEgKGQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGQxCiAgICB1YWRkMTYgIHI2LCByNywgcjYgIDsgM2MrMyB8IDdjKzcgPSB0ZW1wMiAgKGMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGMyCiAgICB1c3ViMTYgIHIxMiwgcjgsIHI2IDsgYyAobzEgfCBvNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYwogICAgdWFkZDE2ICByNiwgcjExLCByMSA7IGQgKG8zIHwgbzcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQKICAgIHVhZGQxNiAgcjcsIHIxMCwgcjYgOyBhK2QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGErZAogICAgbW92IHI4LCAjMHg0ICAgIDsgc2V0IHVwIDQncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0CiAgICBvcnIgcjgsIHI4LCAjMHg0MDAwMCAgICA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNHw0CiAgICB1c3ViMTYgIHI2LCByMTAsIHI2IDsgYS1kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEtZAogICAgdWFkZDE2ICByNiwgcjYsIHI4ICA7IGEtZCs0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzfDcKICAgIHVhZGQxNiAgcjcsIHI3LCByOCAgOyBhK2QrNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB8NAogICAgdWFkZDE2ICByMTAsIHI5LCByMTIgICAgOyBiK2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIrYwogICAgdXN1YjE2ICByMSwgcjksIHIxMiA7IGItYyAgICAgICAgICAgYi1jCiAgICB1YWRkMTYgIHIxMCwgcjEwLCByOCAgICA7IGIrYys0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMXw1CiAgICB1YWRkMTYgIHIxLCByMSwgcjggIDsgYi1jKzQgICAgICAgICAyfDYKICAgIG1vdiByOCwgcjEwLCBhc3IgIzE5ICAgIDsgbzEgPj4gMwogICAgc3RyaCAgICByOCwgW3IwLCAjMl0gICAgOyBvMQogICAgbW92IHI4LCByMSwgYXNyICMxOSA7IG8yID4+IDMKICAgIHN0cmggICAgcjgsIFtyMCwgIzRdICAgIDsgbzIKICAgIG1vdiByOCwgcjYsIGFzciAjMTkgOyBvMyA+PiAzCiAgICBzdHJoICAgIHI4LCBbcjAsICM2XSAgICA7IG8zCiAgICBtb3YgcjgsIHI3LCBhc3IgIzE5IDsgbzAgPj4gMwogICAgc3RyaCAgICByOCwgW3IwXSwgcjIgICAgOyBvMCAgICAgICAgK3AKICAgIHN4dGggICAgcjEwLCByMTAgICAgOwogICAgbW92IHI4LCByMTAsIGFzciAjMyA7IG81ID4+IDMKICAgIHN0cmggICAgcjgsIFtyMCwgIzJdICAgIDsgbzUKICAgIHN4dGggICAgcjEsIHIxICA7CiAgICBtb3YgcjgsIHIxLCBhc3IgIzMgIDsgbzYgPj4gMwogICAgc3RyaCAgICByOCwgW3IwLCAjNF0gICAgOyBvNgogICAgc3h0aCAgICByNiwgcjYgIDsKICAgIG1vdiByOCwgcjYsIGFzciAjMyAgOyBvNyA+PiAzCiAgICBzdHJoICAgIHI4LCBbcjAsICM2XSAgICA7IG83CiAgICBzeHRoICAgIHI3LCByNyAgOwogICAgbW92IHI4LCByNywgYXNyICMzICA7IG80ID4+IDMKICAgIHN0cmggICAgcjgsIFtyMF0sIHIyICAgIDsgbzQgICAgICAgICtwCjs7Ozs7ICAgc3VicyAgICByNSwgcjUsICMweDEgICAgOyBpLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAtLQogICAgYm5lIGxvb3AyX2R1YWwgIDsKICAgICAgICAgICAgOwogICAgbGRtaWEgICBzcCEsIHtyNCAtIHIxMSwgcGN9IDsgcmVwbGFjZSB2YXJzLCByZXR1cm4gICAgICAgICAgICAgICAgICAgICAgcmVzdG9yZQogICAgRU5EUAoKICAgIEVORAo=