submission 12305
KernelBot user 7 · python · License unknown
Use it
Vendorable · source mirrored · license unknownView source →
No package. Vendor the mirrored source: 1 lines, June 9 Researcher Reciprocity License v1.0.
amd-fp8-mm-hip-v3.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-amd-fp8-mm-12305?include=source"interfacepython
Compatibility
measured onAMD Instinct MI300X
declared hardwareAMD Instinct MI300X
architecturesgfx942
dtypesfp32, fp8_e4m3fnuz
Benchmark evidence
18 measurements across 1 GPU, fastest first.
Operation / workload
Hardware
Latency
Rank
Observed
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=512 · seed=6563
AMD Instinct MI300X
201.7µs
#75 of 98
2025-04-29
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=576 · seed=12346
AMD Instinct MI300X
216.6µs
#75 of 98
2025-04-29
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=1536 · seed=8135
AMD Instinct MI300X
453.6µs
#88 of 98
2025-04-29
Show all 18 measurements ›Showing all 18 measurements ⌄
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=512 · seed=12341
AMD Instinct MI300X
1.11ms
#91 of 98
2025-04-29
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=576 · seed=9863
AMD Instinct MI300X
1.21ms
#91 of 98
2025-04-29
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=4608 · seed=7531
AMD Instinct MI300X
1.29ms
#90 of 98
2025-04-29
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=1536 · seed=6543
AMD Instinct MI300X
2.57ms
#92 of 98
2025-04-29
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=4608 · seed=65436
AMD Instinct MI300X
6.30ms
#93 of 98
2025-04-29
Reported · How evidence levels are derived →
Source and license
sourceavailable
revision digestsha256:0d132efe966f0bace1cf3f0e68447d926a81f817b68765bda01178e448820164
license declaredunknown
license concludedunknown
imported2026-08-15
Kernel source
amd-fp8-mm-hip-v3.py1 lines
IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcg0KZnJvbSB0b3JjaC51dGlscy5jcHBfZXh0ZW5zaW9uIGltcG9ydCBsb2FkX2lubGluZQ0KZnJvbSB0YXNrIGltcG9ydCBpbnB1dF90LCBvdXRwdXRfdA0KQ1BQX1dSQVBQRVIgPSAiIiINCnZvaWQgZnA4X21tKHRvcmNoOjpUZW5zb3IgYSwgdG9yY2g6OlRlbnNvciBiLCB0b3JjaDo6VGVuc29yIGFzLCB0b3JjaDo6VGVuc29yIGJzLCB0b3JjaDo6VGVuc29yIGMpOw0KIiIiDQoNCkNVREFfU1JDID0gIiIiDQojaW5jbHVkZSA8aGlwL2FtZF9kZXRhaWwvYW1kX2hpcF9mcDguaD4NCiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4NCg0KY29uc3RleHByIGNvbnN0IGludCBCTE9DSyA9IDEyODsNCg0KX19nbG9iYWxfXyB2b2lkIGN1c3RvbV9rZXJuZWwoY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYSwgY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYiwgY29uc3QgZmxvYXQqIGFzLCBjb25zdCBmbG9hdCogYnMsDQogICAgICAgICAgICAgICAgICAgX19oaXBfYmZsb2F0MTYqIGMsIGludCBtLCBpbnQgbiwgaW50IGspIHsNCg0KICAgIC8vIFlvdXIgaW1wbGVtZW50YXRpb24gaGVyZQ0KICAgIC8vIGludCBjeCA9IHRocmVhZElkeC54ICsgYmxvY2tEaW0ueCAqIGJsb2NrSWR4Lng7DQogICAgLy8gaW50IGN5ID0gdGhyZWFkSWR4LnkgKyBibG9ja0RpbS55ICogYmxvY2tJZHgueTsNCiAgICAvLyBpZihjeCA+PSBtIHx8IGN5ID49IG4pIHJldHVybjsNCg0KICAgIGludCB0aHJlYWRfYmxvY2tfbSA9IGJsb2NrSWR4LnggKiAxNjsNCiAgICBpbnQgdGhyZWFkX2Jsb2NrX24gPSBibG9ja0lkeC55ICogMTY7DQoNCiAgICBpbnQgdGhyZWFkX21uX2FiID0gdGhyZWFkSWR4LnggJSAxNjsNCiAgICBpbnQgdGhyZWFkX2tfYWIgID0gdGhyZWFkSWR4LnggLyAxNjsgLy8gYnkgZmxvYXQyDQoNCiAgICBpbnQgdGhyZWFkX21fYyA9ICh0aHJlYWRJZHgueCAvIDE2KSAqIDQ7DQogICAgaW50IHRocmVhZF9uX2MgPSAgdGhyZWFkSWR4LnggJSAxNjsgLy8gYnkgZmxvYXQNCg0KICAgIHVzaW5nIGZsb2F0NCA9IGZsb2F0IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg0KSkpOw0KICAgIGZsb2F0NCB0aWxlX2QgPSB7MH07DQoNCiAgICBjb25zdCBsb25nICphX3B0ciA9IChjb25zdCBsb25nKilhOw0KICAgIGNvbnN0IGxvbmcgKmJfcHRyID0gKGNvbnN0IGxvbmcqKWI7DQoNCiAgICAvLyBsb29wIG92ZXIgayBieSBxdWFudCBibG9jayAoMTI4KQ0KICAgIGZvciAoaW50IGliID0gMDsgaWIgPCBrOyBpYiArPSBCTE9DSykgew0KICAgICAgICBmbG9hdDQgYmxvY2tfdGlsZV9kID0gezB9Ow0KICAgICAgICAvLyBsb29wIG92ZXIgcXVhbnQgYmxvY2sgYnkgbWZtYSBpbnN0cnVjdGlvbiBrICgzMikNCiAgICAgICAgZm9yIChpbnQgaWkgPSBpYjsgaWkgPCBpYiArIEJMT0NLOyBpaSArPSAzMikgew0KICAgICAgICAgICAgaW50IGFfbSA9IHRocmVhZF9ibG9ja19tICsgdGhyZWFkX21uX2FiOw0KICAgICAgICAgICAgaW50IGFfayA9IHRocmVhZF9rX2FiICsgaWkvODsNCiAgICAgICAgICAgIGxvbmcgdGlsZV9hID0gYV9wdHJbYV9tICogay84ICsgYV9rXTsNCiAgICAgICAgICAgIGludCBiX24gPSB0aHJlYWRfYmxvY2tfbiArIHRocmVhZF9tbl9hYjsNCiAgICAgICAgICAgIGludCBiX2sgPSB0aHJlYWRfa19hYiArIGlpLzg7DQogICAgICAgICAgICBsb25nIHRpbGVfYiA9IGJfcHRyW2JfbiAqIGsvOCArIGJfa107DQogICAgICAgICAgICBibG9ja190aWxlX2QgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzE2eDE2eDMyX2ZwOF9mcDgodGlsZV9hLCB0aWxlX2IsIGJsb2NrX3RpbGVfZCwgMCwgMCwgMCk7DQogICAgICAgIH0NCiAgICAgICAgaW50IGFzX20gPSB0aHJlYWRfYmxvY2tfbSArIHRocmVhZF9tX2M7DQogICAgICAgIGludCBhc19rID0gaWIgLyBCTE9DSzsNCiAgICAgICAgaW50IGJzX24gPSAodGhyZWFkX2Jsb2NrX24gKyB0aHJlYWRfbl9jKSAvIEJMT0NLOw0KICAgICAgICBpbnQgYnNfayA9IGliIC8gQkxPQ0s7DQogICAgICAgIHRpbGVfZFswXSArPSBibG9ja190aWxlX2RbMF0gKiBhc1soYXNfbSArIDApICogay9CTE9DSyArIGFzX2tdICogYnNbYnNfbiAqIGsvQkxPQ0sgKyBic19rXTsNCiAgICAgICAgdGlsZV9kWzFdICs9IGJsb2NrX3RpbGVfZFsxXSAqIGFzWyhhc19tICsgMSkgKiBrL0JMT0NLICsgYXNfa10gKiBic1tic19uICogay9CTE9DSyArIGJzX2tdOw0KICAgICAgICB0aWxlX2RbMl0gKz0gYmxvY2tfdGlsZV9kWzJdICogYXNbKGFzX20gKyAyKSAqIGsvQkxPQ0sgKyBhc19rXSAqIGJzW2JzX24gKiBrL0JMT0NLICsgYnNfa107DQogICAgICAgIHRpbGVfZFszXSArPSBibG9ja190aWxlX2RbM10gKiBhc1soYXNfbSArIDMpICogay9CTE9DSyArIGFzX2tdICogYnNbYnNfbiAqIGsvQkxPQ0sgKyBic19rXTsNCiAgICB9DQoNCiAgICAvLyBmaW5hbGx5LCB3cml0ZSB0aGUgcmVzdWx0IGFzIGJmMTYNCiAgICBpbnQgY19tID0gdGhyZWFkX2Jsb2NrX20gKyB0aHJlYWRfbV9jOw0KICAgIGludCBjX24gPSB0aHJlYWRfYmxvY2tfbiArIHRocmVhZF9uX2M7DQogICAgY1soY19tICsgMCkgKiBuICsgY19uXSA9IChfX2hpcF9iZmxvYXQxNikodGlsZV9kWzBdKTsNCiAgICBjWyhjX20gKyAxKSAqIG4gKyBjX25dID0gKF9faGlwX2JmbG9hdDE2KSh0aWxlX2RbMV0pOw0KICAgIGNbKGNfbSArIDIpICogbiArIGNfbl0gPSAoX19oaXBfYmZsb2F0MTYpKHRpbGVfZFsyXSk7DQogICAgY1soY19tICsgMykgKiBuICsgY19uXSA9IChfX2hpcF9iZmxvYXQxNikodGlsZV9kWzNdKTsNCn0NCg0Kdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYykgew0KICAgIGludCBtID0gYS5zaXplKDApOw0KICAgIGludCBuID0gYi5zaXplKDApOw0KICAgIGludCBrID0gYS5zaXplKDEpOw0KICAgIGN1c3RvbV9rZXJuZWw8PDxkaW0zKChtKzE1KS8xNiwgKG4rMTUpLzE2KSwgZGltMyg2NCksIDAsIDA+Pj4gKChfX2hpcF9mcDhfZTRtM19mbnV6KilhLmRhdGFfcHRyKCksIChfX2hpcF9mcDhfZTRtM19mbnV6KiliLmRhdGFfcHRyKCksDQogICAgYXMuZGF0YV9wdHI8ZmxvYXQ+KCksIGJzLmRhdGFfcHRyPGZsb2F0PigpLCAoX19oaXBfYmZsb2F0MTYqKWMuZGF0YV9wdHIoKSwgbSwgbiwgayk7DQogICAgLy9DMTBfQ1VEQV9DSEVDSyhjdWRhR2V0TGFzdEVycm9yKCkpOw0KfQ0KIiIiDQoNCmltcG9ydCBvcw0Kb3MuZW52aXJvblsiQ1hYIl0gPSAiY2xhbmcrKyINCg0KbW9kdWxlID0gbG9hZF9pbmxpbmUoDQogICAgbmFtZT0nZnA4X21tJywNCiAgICBjcHBfc291cmNlcz1bQ1BQX1dSQVBQRVJdLA0KICAgIGN1ZGFfc291cmNlcz1bQ1VEQV9TUkNdLA0KICAgIGZ1bmN0aW9ucz1bJ2ZwOF9tbSddLA0KICAgIHZlcmJvc2U9VHJ1ZSwNCiAgICBleHRyYV9jdWRhX2NmbGFncz1bIi0tb2ZmbG9hZC1hcmNoPWdmeDk0MiIsICItc3RkPWMrKzIwIiwgIi1PMyJdLA0KKQ0KDQoNCmRlZiBjdXN0b21fa2VybmVsKGRhdGE6IGlucHV0X3QpIC0+IG91dHB1dF90Og0KICAgIGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMgPSBkYXRhDQogICAgYSA9IGEuY29udGlndW91cygpDQogICAgYiA9IGIuY29udGlndW91cygpDQogICAgYV9zY2FsZSA9IGFfc2NhbGUuY29udGlndW91cygpDQogICAgYl9zY2FsZSA9IGJfc2NhbGUuY29udGlndW91cygpDQogICAgbW9kdWxlLmZwOF9tbShhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjKQ0KICAgIHJldHVybiBjDQoNCg==Source code from GPU Mode and the KernelBot dataset · June 9 Researcher Reciprocity License v1.0
Changes from previous submission
Against this author's previous submission submission 10955.
- aW1wb3J0IHRvcmNoDQpmcm9tIHRhc2sgaW1wb3J0IGlucHV0X3QsIG91dHB1dF90DQoNCmRlZiBjdXN0b21fa2VybmVsKGRhdGE6IGlucHV0X3QpIC0+IG91dHB1dF90Og0KICAgICIiIg0KICAgIFJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBvZiBibG9jay1zY2FsZSBmcDggZ2VtbQ0KICAgIEFyZ3M6DQogICAgICAgIGRhdGE6IFR1cGxlIHRoYXQgZXhwYW5kcyB0bzoNCiAgICAgICAgICAgIGE6IHRvcmNoLlRlbnNvcltmbG9hdDhfZTRtM2ZudXpdIG9mIHNoYXBlIFttLCBrXSwNCiAgICAgICAgICAgIGI6IHRvcmNoLlRlbnNvcltmbG9hdDhfZTRtM2ZudXpdIG9mIHNoYXBlIFtuLCBrXSwNCiAgICAgICAgICAgIGFfc2NhbGU6IHRvcmNoLlRlbnNvcltmbG9hdDMyXSBvZiBzaGFwZSBbbSwgayAvLyAxMjhdLA0KICAgICAgICAgICAgYl9zY2FsZTogdG9yY2guVGVuc29yW2Zsb2F0MzJdIG9mIHNoYXBlIFtuIC8vIDEyOCwgayAvLyAxMjhdLA0KICAgICAgICAgICAgYzogdG9yY2guVGVuc29yW2JmbG9hdDE2XSBvZiBzaGFwZSBbbSwgbl0NCiAgICBSZXR1cm5zOg0KICAgICAgICBUZW5zb3IgY29udGFpbmluZyBvdXRwdXQgaW4gYmYxNg0KICAgICIiIg0KICAgICMgYzogW20sIG5dIGlzIHByZS1hbGxvY2F0ZWQgbWVtb3J5IHRvIGF2b2lkIHRpbWluZyBhbGxvY2F0aW9uIG92ZXJoZWFkLg0KICAgIGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMgPSBkYXRhDQoNCiAgICAjIGEgaXMgTSB4IEsgaW4gY29sdW1uLW1ham9yIG9yZGVyLCB3ZSBjb252ZXJ0IGhlcmUgZm9yIHNpbXBsaWNpdHkuDQogICAgYSA9IGEuY29udGlndW91cygpDQogICAgYV9zY2FsZSA9IGFfc2NhbGUuY29udGlndW91cygpDQogICAgYl9zY2FsZSA9IGJfc2NhbGUuY29udGlndW91cygpDQoNCiAgICAjIGNvbnN0YW50cw0KICAgIG0gPSBhLnNoYXBlWzBdDQogICAgbiA9IGIuc2hhcGVbMF0NCiAgICBrID0gYS5zaGFwZVsxXQ0KICAgIGJsb2NrX3NoYXBlX24gPSAxMjgNCiAgICBibG9ja19zaGFwZV9rID0gMTI4DQogICAgc2NhbGVfbiA9IGJfc2NhbGUuc2hhcGVbMF0NCiAgICBzY2FsZV9rID0gYl9zY2FsZS5zaGFwZVsxXQ0KDQogICAgIyBBcHBseSBzY2FsaW5nIHRvIGlucHV0ICdhJw0KICAgIGFfc2NhbGUgPSBhX3NjYWxlLnVuc3F1ZWV6ZSgtMSkucmVwZWF0KDEsIDEsIGJsb2NrX3NoYXBlX2spICAjIFNoYXBlOiBbbSwgc2NhbGVfaywgYmxvY2tfc2hhcGVfa10NCiAgICBhX3NjYWxlID0gYV9zY2FsZS5yZXNoYXBlKG0sIHNjYWxlX2sgKiBibG9ja19zaGFwZV9rKQ0KICAgIGFfc2NhbGUgPSBhX3NjYWxlWzosIDprXQ0KDQogICAgIyBEZXF1YW50aXplICdhJywgaW4geW91ciBpbXBsZW1lbnRhdGlvbiB5b3Ugc2hvdWxkIGRvIHRoaXMgYXQgdGhlIGVuZC4NCiAgICBhID0gYS50byhhX3NjYWxlLmR0eXBlKSAqIGFfc2NhbGUNCg0KICAgICMgQXBwbHkgc2NhbGluZyB0byBpbnB1dCAnYicNCiAgICBiX3NjYWxlID0gKA0KICAgICAgICBiX3NjYWxlLnZpZXcoLTEsIDEpDQogICAgICAgIC5yZXBlYXQoMSwgYmxvY2tfc2hhcGVfbiAqIGJsb2NrX3NoYXBlX2spDQogICAgICAgIC52aWV3KHNjYWxlX24sIHNjYWxlX2ssIGJsb2NrX3NoYXBlX24sIGJsb2NrX3NoYXBlX2spDQogICAgICAgIC5wZXJtdXRlKDAsIDIsIDEsIDMpICAjIFJlb3JkZXIgZGltZW5zaW9uczogW3NjYWxlX24sIGJsa19uLCBzY2FsZV9rLCBibGtfa10NCiAgICAgICAgLnJlc2hhcGUoc2NhbGVfbiAqIGJsb2NrX3NoYXBlX24sIHNjYWxlX2sgKiBibG9ja19zaGFwZV9rKQ0KICAgICkNCiAgICBiX3NjYWxlID0gYl9zY2FsZVs6biwgOmtdDQoNCiAgICAjIERlcXVhbnRpemUgJ2InLCBpbiB5b3VyIGltcGxlbWVudGF0aW9uIHlvdSBzaG91bGQgZG8gdGhpcyBhdCB0aGUgZW5kLg0KICAgIGIgPSBiLnRvKGJfc2NhbGUuZHR5cGUpICogYl9zY2FsZQ0KDQogICAgY1suLi5dID0gKGEgQCBiLlQpLnRvKHRvcmNoLmJmbG9hdDE2KQ0KICAgIHJldHVybiBjDQo=No newline at end of file+ IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcg0KZnJvbSB0b3JjaC51dGlscy5jcHBfZXh0ZW5zaW9uIGltcG9ydCBsb2FkX2lubGluZQ0KZnJvbSB0YXNrIGltcG9ydCBpbnB1dF90LCBvdXRwdXRfdA0KQ1BQX1dSQVBQRVIgPSAiIiINCnZvaWQgZnA4X21tKHRvcmNoOjpUZW5zb3IgYSwgdG9yY2g6OlRlbnNvciBiLCB0b3JjaDo6VGVuc29yIGFzLCB0b3JjaDo6VGVuc29yIGJzLCB0b3JjaDo6VGVuc29yIGMpOw0KIiIiDQoNCkNVREFfU1JDID0gIiIiDQojaW5jbHVkZSA8aGlwL2FtZF9kZXRhaWwvYW1kX2hpcF9mcDguaD4NCiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4NCg0KY29uc3RleHByIGNvbnN0IGludCBCTE9DSyA9IDEyODsNCg0KX19nbG9iYWxfXyB2b2lkIGN1c3RvbV9rZXJuZWwoY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYSwgY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYiwgY29uc3QgZmxvYXQqIGFzLCBjb25zdCBmbG9hdCogYnMsDQogICAgICAgICAgICAgICAgICAgX19oaXBfYmZsb2F0MTYqIGMsIGludCBtLCBpbnQgbiwgaW50IGspIHsNCg0KICAgIC8vIFlvdXIgaW1wbGVtZW50YXRpb24gaGVyZQ0KICAgIC8vIGludCBjeCA9IHRocmVhZElkeC54ICsgYmxvY2tEaW0ueCAqIGJsb2NrSWR4Lng7DQogICAgLy8gaW50IGN5ID0gdGhyZWFkSWR4LnkgKyBibG9ja0RpbS55ICogYmxvY2tJZHgueTsNCiAgICAvLyBpZihjeCA+PSBtIHx8IGN5ID49IG4pIHJldHVybjsNCg0KICAgIGludCB0aHJlYWRfYmxvY2tfbSA9IGJsb2NrSWR4LnggKiAxNjsNCiAgICBpbnQgdGhyZWFkX2Jsb2NrX24gPSBibG9ja0lkeC55ICogMTY7DQoNCiAgICBpbnQgdGhyZWFkX21uX2FiID0gdGhyZWFkSWR4LnggJSAxNjsNCiAgICBpbnQgdGhyZWFkX2tfYWIgID0gdGhyZWFkSWR4LnggLyAxNjsgLy8gYnkgZmxvYXQyDQoNCiAgICBpbnQgdGhyZWFkX21fYyA9ICh0aHJlYWRJZHgueCAvIDE2KSAqIDQ7DQogICAgaW50IHRocmVhZF9uX2MgPSAgdGhyZWFkSWR4LnggJSAxNjsgLy8gYnkgZmxvYXQNCg0KICAgIHVzaW5nIGZsb2F0NCA9IGZsb2F0IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg0KSkpOw0KICAgIGZsb2F0NCB0aWxlX2QgPSB7MH07DQoNCiAgICBjb25zdCBsb25nICphX3B0ciA9IChjb25zdCBsb25nKilhOw0KICAgIGNvbnN0IGxvbmcgKmJfcHRyID0gKGNvbnN0IGxvbmcqKWI7DQoNCiAgICAvLyBsb29wIG92ZXIgayBieSBxdWFudCBibG9jayAoMTI4KQ0KICAgIGZvciAoaW50IGliID0gMDsgaWIgPCBrOyBpYiArPSBCTE9DSykgew0KICAgICAgICBmbG9hdDQgYmxvY2tfdGlsZV9kID0gezB9Ow0KICAgICAgICAvLyBsb29wIG92ZXIgcXVhbnQgYmxvY2sgYnkgbWZtYSBpbnN0cnVjdGlvbiBrICgzMikNCiAgICAgICAgZm9yIChpbnQgaWkgPSBpYjsgaWkgPCBpYiArIEJMT0NLOyBpaSArPSAzMikgew0KICAgICAgICAgICAgaW50IGFfbSA9IHRocmVhZF9ibG9ja19tICsgdGhyZWFkX21uX2FiOw0KICAgICAgICAgICAgaW50IGFfayA9IHRocmVhZF9rX2FiICsgaWkvODsNCiAgICAgICAgICAgIGxvbmcgdGlsZV9hID0gYV9wdHJbYV9tICogay84ICsgYV9rXTsNCiAgICAgICAgICAgIGludCBiX24gPSB0aHJlYWRfYmxvY2tfbiArIHRocmVhZF9tbl9hYjsNCiAgICAgICAgICAgIGludCBiX2sgPSB0aHJlYWRfa19hYiArIGlpLzg7DQogICAgICAgICAgICBsb25nIHRpbGVfYiA9IGJfcHRyW2JfbiAqIGsvOCArIGJfa107DQogICAgICAgICAgICBibG9ja190aWxlX2QgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzE2eDE2eDMyX2ZwOF9mcDgodGlsZV9hLCB0aWxlX2IsIGJsb2NrX3RpbGVfZCwgMCwgMCwgMCk7DQogICAgICAgIH0NCiAgICAgICAgaW50IGFzX20gPSB0aHJlYWRfYmxvY2tfbSArIHRocmVhZF9tX2M7DQogICAgICAgIGludCBhc19rID0gaWIgLyBCTE9DSzsNCiAgICAgICAgaW50IGJzX24gPSAodGhyZWFkX2Jsb2NrX24gKyB0aHJlYWRfbl9jKSAvIEJMT0NLOw0KICAgICAgICBpbnQgYnNfayA9IGliIC8gQkxPQ0s7DQogICAgICAgIHRpbGVfZFswXSArPSBibG9ja190aWxlX2RbMF0gKiBhc1soYXNfbSArIDApICogay9CTE9DSyArIGFzX2tdICogYnNbYnNfbiAqIGsvQkxPQ0sgKyBic19rXTsNCiAgICAgICAgdGlsZV9kWzFdICs9IGJsb2NrX3RpbGVfZFsxXSAqIGFzWyhhc19tICsgMSkgKiBrL0JMT0NLICsgYXNfa10gKiBic1tic19uICogay9CTE9DSyArIGJzX2tdOw0KICAgICAgICB0aWxlX2RbMl0gKz0gYmxvY2tfdGlsZV9kWzJdICogYXNbKGFzX20gKyAyKSAqIGsvQkxPQ0sgKyBhc19rXSAqIGJzW2JzX24gKiBrL0JMT0NLICsgYnNfa107DQogICAgICAgIHRpbGVfZFszXSArPSBibG9ja190aWxlX2RbM10gKiBhc1soYXNfbSArIDMpICogay9CTE9DSyArIGFzX2tdICogYnNbYnNfbiAqIGsvQkxPQ0sgKyBic19rXTsNCiAgICB9DQoNCiAgICAvLyBmaW5hbGx5LCB3cml0ZSB0aGUgcmVzdWx0IGFzIGJmMTYNCiAgICBpbnQgY19tID0gdGhyZWFkX2Jsb2NrX20gKyB0aHJlYWRfbV9jOw0KICAgIGludCBjX24gPSB0aHJlYWRfYmxvY2tfbiArIHRocmVhZF9uX2M7DQogICAgY1soY19tICsgMCkgKiBuICsgY19uXSA9IChfX2hpcF9iZmxvYXQxNikodGlsZV9kWzBdKTsNCiAgICBjWyhjX20gKyAxKSAqIG4gKyBjX25dID0gKF9faGlwX2JmbG9hdDE2KSh0aWxlX2RbMV0pOw0KICAgIGNbKGNfbSArIDIpICogbiArIGNfbl0gPSAoX19oaXBfYmZsb2F0MTYpKHRpbGVfZFsyXSk7DQogICAgY1soY19tICsgMykgKiBuICsgY19uXSA9IChfX2hpcF9iZmxvYXQxNikodGlsZV9kWzNdKTsNCn0NCg0Kdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYykgew0KICAgIGludCBtID0gYS5zaXplKDApOw0KICAgIGludCBuID0gYi5zaXplKDApOw0KICAgIGludCBrID0gYS5zaXplKDEpOw0KICAgIGN1c3RvbV9rZXJuZWw8PDxkaW0zKChtKzE1KS8xNiwgKG4rMTUpLzE2KSwgZGltMyg2NCksIDAsIDA+Pj4gKChfX2hpcF9mcDhfZTRtM19mbnV6KilhLmRhdGFfcHRyKCksIChfX2hpcF9mcDhfZTRtM19mbnV6KiliLmRhdGFfcHRyKCksDQogICAgYXMuZGF0YV9wdHI8ZmxvYXQ+KCksIGJzLmRhdGFfcHRyPGZsb2F0PigpLCAoX19oaXBfYmZsb2F0MTYqKWMuZGF0YV9wdHIoKSwgbSwgbiwgayk7DQogICAgLy9DMTBfQ1VEQV9DSEVDSyhjdWRhR2V0TGFzdEVycm9yKCkpOw0KfQ0KIiIiDQoNCmltcG9ydCBvcw0Kb3MuZW52aXJvblsiQ1hYIl0gPSAiY2xhbmcrKyINCg0KbW9kdWxlID0gbG9hZF9pbmxpbmUoDQogICAgbmFtZT0nZnA4X21tJywNCiAgICBjcHBfc291cmNlcz1bQ1BQX1dSQVBQRVJdLA0KICAgIGN1ZGFfc291cmNlcz1bQ1VEQV9TUkNdLA0KICAgIGZ1bmN0aW9ucz1bJ2ZwOF9tbSddLA0KICAgIHZlcmJvc2U9VHJ1ZSwNCiAgICBleHRyYV9jdWRhX2NmbGFncz1bIi0tb2ZmbG9hZC1hcmNoPWdmeDk0MiIsICItc3RkPWMrKzIwIiwgIi1PMyJdLA0KKQ0KDQoNCmRlZiBjdXN0b21fa2VybmVsKGRhdGE6IGlucHV0X3QpIC0+IG91dHB1dF90Og0KICAgIGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMgPSBkYXRhDQogICAgYSA9IGEuY29udGlndW91cygpDQogICAgYiA9IGIuY29udGlndW91cygpDQogICAgYV9zY2FsZSA9IGFfc2NhbGUuY29udGlndW91cygpDQogICAgYl9zY2FsZSA9IGJfc2NhbGUuY29udGlndW91cygpDQogICAgbW9kdWxlLmZwOF9tbShhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjKQ0KICAgIHJldHVybiBjDQoNCg==No newline at end of file
Best evidence level for this revision: reported
JSON