From 5e964027702bdc2aaa8a6447835d38615771ef14 Mon Sep 17 00:00:00 2001 From: Richard Holland Date: Tue, 5 Sep 2023 20:19:26 +0000 Subject: [PATCH] more governance debugging --- hook/govern.c | 22 +- src/ripple/app/hook/xahau.h | 840 +++++++++++++------------- src/ripple/app/tx/impl/Change.cpp | 23 +- src/ripple/app/tx/impl/Transactor.cpp | 9 +- src/ripple/app/tx/impl/XahauGenesis.h | 7 +- src/test/app/XahauGenesis_test.cpp | 194 ++++-- 6 files changed, 618 insertions(+), 477 deletions(-) diff --git a/hook/govern.c b/hook/govern.c index 10c869cba..19c91b8ac 100644 --- a/hook/govern.c +++ b/hook/govern.c @@ -544,7 +544,7 @@ int64_t hook(uint32_t r) { // add / change member uint8_t previous_member[32]; - int previous_present = (state(previous_member + 12, 20, n, 1) == 20); + int previous_present = (state(previous_member + 12, 20, &n, 1) == 20); if (previous_present && !topic_data_zero) { @@ -554,9 +554,13 @@ int64_t hook(uint32_t r) } else { + // adjust member count if (previous_present) + { + trace(SBUF("Previous present:"), previous_member, 32, 1); member_count--; + } else member_count++; @@ -607,14 +611,24 @@ int64_t hook(uint32_t r) } } - if (!topic_data_zero) + if (topic_data_zero) + { + // delete the old member + // reverse key + ASSERT(state_set(0,0, &n, 1) == 0); + + // forward key + ASSERT(state_set(0, 0, topic_data + 12, 20) == 0); + + } + else { // add the new member // reverse key - ASSERT(state_set(topic_data, 20, n, 1) == 20); + ASSERT(state_set(topic_data, 20, &n, 1) == 20); // forward key - ASSERT(state_set(n, 1, topic_data, 32) == 20); + ASSERT(state_set(n, 1, topic_data + 12, 20) == 20); } DONE("Governance: Action member change."); diff --git a/src/ripple/app/hook/xahau.h b/src/ripple/app/hook/xahau.h index 70c47cdbd..897580686 100644 --- a/src/ripple/app/hook/xahau.h +++ b/src/ripple/app/hook/xahau.h @@ -47,19 +47,19 @@ static const std::vector GovernanceHook = 0x62U,0x61U,0x72U,0x72U,0x61U,0x79U,0x00U,0x04U,0x03U,0x65U, 0x6EU,0x76U,0x04U,0x73U,0x6CU,0x6FU,0x74U,0x00U,0x04U,0x03U, 0x02U,0x01U,0x01U,0x05U,0x03U,0x01U,0x00U,0x02U,0x06U,0x08U, - 0x01U,0x7FU,0x01U,0x41U,0xD0U,0x98U,0x04U,0x0BU,0x07U,0x08U, - 0x01U,0x04U,0x68U,0x6FU,0x6FU,0x6BU,0x00U,0x16U,0x0AU,0xFFU, - 0xA8U,0x00U,0x01U,0xFBU,0xA8U,0x00U,0x03U,0x08U,0x7FU,0x04U, + 0x01U,0x7FU,0x01U,0x41U,0xE0U,0x98U,0x04U,0x0BU,0x07U,0x08U, + 0x01U,0x04U,0x68U,0x6FU,0x6FU,0x6BU,0x00U,0x16U,0x0AU,0x8BU, + 0xAAU,0x00U,0x01U,0x87U,0xAAU,0x00U,0x03U,0x07U,0x7FU,0x04U, 0x7EU,0x02U,0x7CU,0x23U,0x00U,0x41U,0xB0U,0x0AU,0x6BU,0x22U, 0x00U,0x24U,0x00U,0x41U,0x01U,0x41U,0x01U,0x10U,0x00U,0x1AU, 0x41U,0x01U,0x10U,0x01U,0x1AU,0x10U,0x02U,0x42U,0xE3U,0x00U, 0x52U,0x04U,0x40U,0x41U,0x94U,0x08U,0x41U,0xCCU,0x00U,0x42U, 0xF7U,0x00U,0x10U,0x03U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0x90U, - 0x0AU,0x6AU,0x41U,0x0CU,0x72U,0x22U,0x04U,0x41U,0x14U,0x41U, + 0x0AU,0x6AU,0x41U,0x0CU,0x72U,0x22U,0x03U,0x41U,0x14U,0x41U, 0x81U,0x80U,0x20U,0x10U,0x04U,0x1AU,0x20U,0x00U,0x41U,0xF0U, - 0x09U,0x6AU,0x41U,0x0CU,0x72U,0x22U,0x08U,0x41U,0x14U,0x10U, + 0x09U,0x6AU,0x41U,0x0CU,0x72U,0x22U,0x07U,0x41U,0x14U,0x10U, 0x05U,0x1AU,0x02U,0x40U,0x20U,0x00U,0x29U,0x03U,0xFCU,0x09U, - 0x22U,0x0AU,0x20U,0x00U,0x29U,0x03U,0x9CU,0x0AU,0x51U,0x04U, + 0x22U,0x09U,0x20U,0x00U,0x29U,0x03U,0x9CU,0x0AU,0x51U,0x04U, 0x40U,0x20U,0x00U,0x28U,0x02U,0x8CU,0x0AU,0x20U,0x00U,0x28U, 0x02U,0xACU,0x0AU,0x47U,0x20U,0x00U,0x29U,0x03U,0x84U,0x0AU, 0x20U,0x00U,0x29U,0x03U,0xA4U,0x0AU,0x52U,0x72U,0x0DU,0x01U, @@ -71,117 +71,119 @@ static const std::vector GovernanceHook = 0x40U,0x20U,0x00U,0x28U,0x02U,0x8CU,0x0AU,0x20U,0x00U,0x28U, 0x02U,0x90U,0x01U,0x46U,0x0DU,0x02U,0x0BU,0x0BU,0x41U,0xE0U, 0x08U,0x41U,0x21U,0x42U,0x85U,0x01U,0x10U,0x03U,0x1AU,0x0BU, - 0x0BU,0x20U,0x00U,0x29U,0x03U,0xFCU,0x09U,0x21U,0x0AU,0x0BU, - 0x0BU,0x41U,0x80U,0x08U,0x29U,0x03U,0x00U,0x20U,0x0AU,0x51U, + 0x0BU,0x20U,0x00U,0x29U,0x03U,0xFCU,0x09U,0x21U,0x09U,0x0BU, + 0x0BU,0x41U,0x80U,0x08U,0x29U,0x03U,0x00U,0x20U,0x09U,0x51U, 0x04U,0x7FU,0x20U,0x00U,0x29U,0x03U,0x84U,0x0AU,0x41U,0x88U, - 0x08U,0x29U,0x03U,0x00U,0x51U,0x04U,0x7FU,0x02U,0x7FU,0x41U, - 0x00U,0x20U,0x00U,0x28U,0x02U,0x8CU,0x0AU,0x41U,0x90U,0x08U, - 0x28U,0x02U,0x00U,0x47U,0x0DU,0x00U,0x1AU,0x41U,0x81U,0x09U, - 0x41U,0x33U,0x41U,0x00U,0x41U,0x00U,0x41U,0x00U,0x10U,0x06U, - 0x1AU,0x41U,0x01U,0x0BU,0x05U,0x41U,0x00U,0x0BU,0x05U,0x41U, - 0x00U,0x0BU,0x21U,0x02U,0x41U,0x00U,0x41U,0x00U,0x41U,0xB4U, - 0x09U,0x41U,0x02U,0x10U,0x07U,0x22U,0x0AU,0x42U,0x7BU,0x51U, - 0x04U,0x40U,0x20U,0x00U,0x41U,0x90U,0x09U,0x6AU,0x41U,0x01U, - 0x41U,0xB7U,0x09U,0x41U,0x03U,0x10U,0x08U,0x42U,0x7FU,0x57U, - 0x04U,0x40U,0x41U,0xBBU,0x09U,0x41U,0x3AU,0x42U,0x97U,0x01U, - 0x10U,0x09U,0x1AU,0x0BU,0x41U,0xF5U,0x09U,0x41U,0x03U,0x20U, - 0x00U,0x31U,0x00U,0x90U,0x09U,0x10U,0x0AU,0x1AU,0x20U,0x00U, - 0x41U,0x90U,0x09U,0x6AU,0x41U,0x01U,0x41U,0xB4U,0x09U,0x41U, - 0x02U,0x10U,0x0BU,0x42U,0x00U,0x57U,0x04U,0x40U,0x41U,0xF9U, - 0x09U,0x41U,0x1AU,0x42U,0x9BU,0x01U,0x10U,0x09U,0x1AU,0x0BU, - 0x41U,0x93U,0x0AU,0x41U,0x0CU,0x20U,0x00U,0x2DU,0x00U,0x90U, - 0x09U,0x22U,0x03U,0xADU,0x42U,0xFFU,0x01U,0x83U,0x22U,0x0AU, - 0x10U,0x0AU,0x1AU,0x20U,0x00U,0x2DU,0x00U,0x90U,0x09U,0x22U, - 0x01U,0x45U,0x04U,0x40U,0x41U,0xA0U,0x0AU,0x41U,0x2EU,0x42U, - 0xA2U,0x01U,0x10U,0x09U,0x1AU,0x20U,0x00U,0x2DU,0x00U,0x90U, - 0x09U,0x21U,0x01U,0x0BU,0x20U,0x01U,0x41U,0xFFU,0x01U,0x71U, - 0x41U,0x15U,0x4FU,0x04U,0x40U,0x41U,0xCEU,0x0AU,0x41U,0x3DU, - 0x42U,0xA5U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x02U,0x04U, - 0x40U,0x02U,0x40U,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x41U, - 0x08U,0x41U,0x8BU,0x0BU,0x41U,0x03U,0x10U,0x08U,0x42U,0x7FU, - 0x57U,0x04U,0x40U,0x41U,0x8FU,0x0BU,0x41U,0x39U,0x42U,0xAAU, - 0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0x20U,0x6AU, - 0x41U,0x08U,0x41U,0xC8U,0x0BU,0x41U,0x03U,0x10U,0x08U,0x42U, - 0x7FU,0x57U,0x04U,0x40U,0x41U,0xCCU,0x0BU,0x41U,0x37U,0x42U, - 0xADU,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x29U,0x03U, - 0x20U,0x50U,0x04U,0x40U,0x41U,0x83U,0x0CU,0x41U,0x2EU,0x42U, - 0xB0U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0xB0U, - 0x09U,0x6AU,0x41U,0x08U,0x41U,0xB1U,0x0CU,0x41U,0x02U,0x10U, + 0x08U,0x29U,0x03U,0x00U,0x51U,0x04U,0x7FU,0x20U,0x00U,0x28U, + 0x02U,0x8CU,0x0AU,0x41U,0x90U,0x08U,0x28U,0x02U,0x00U,0x46U, + 0x04U,0x7FU,0x41U,0x81U,0x09U,0x41U,0x33U,0x41U,0x00U,0x41U, + 0x00U,0x41U,0x00U,0x10U,0x06U,0x1AU,0x41U,0x01U,0x05U,0x41U, + 0x00U,0x0BU,0x05U,0x41U,0x00U,0x0BU,0x05U,0x41U,0x00U,0x0BU, + 0x21U,0x02U,0x41U,0x00U,0x41U,0x00U,0x41U,0xB4U,0x09U,0x41U, + 0x02U,0x10U,0x07U,0x22U,0x09U,0x42U,0x7BU,0x51U,0x04U,0x40U, + 0x20U,0x00U,0x41U,0x90U,0x09U,0x6AU,0x41U,0x01U,0x41U,0xB7U, + 0x09U,0x41U,0x03U,0x10U,0x08U,0x42U,0x7FU,0x57U,0x04U,0x40U, + 0x41U,0xBBU,0x09U,0x41U,0x3AU,0x42U,0x97U,0x01U,0x10U,0x09U, + 0x1AU,0x0BU,0x41U,0xF5U,0x09U,0x41U,0x03U,0x20U,0x00U,0x31U, + 0x00U,0x90U,0x09U,0x10U,0x0AU,0x1AU,0x20U,0x00U,0x41U,0x90U, + 0x09U,0x6AU,0x41U,0x01U,0x41U,0xB4U,0x09U,0x41U,0x02U,0x10U, 0x0BU,0x42U,0x00U,0x57U,0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U, - 0x1AU,0x42U,0xB3U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U, - 0x41U,0x20U,0x6AU,0x41U,0x08U,0x41U,0xB4U,0x0CU,0x41U,0x02U, - 0x10U,0x0BU,0x42U,0x00U,0x55U,0x0DU,0x00U,0x41U,0xF9U,0x09U, - 0x41U,0x1AU,0x42U,0xB6U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x0BU, - 0x41U,0x00U,0x21U,0x01U,0x03U,0x40U,0x41U,0xB9U,0x81U,0x80U, - 0x80U,0x78U,0x41U,0x15U,0x10U,0x00U,0x1AU,0x02U,0x40U,0x20U, - 0x00U,0x20U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x2DU,0x00U, - 0x00U,0x22U,0x01U,0x20U,0x03U,0x4FU,0x0DU,0x00U,0x20U,0x00U, - 0x20U,0x01U,0x3AU,0x00U,0x52U,0x20U,0x00U,0x41U,0xC9U,0xA6U, - 0x01U,0x3BU,0x00U,0x50U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU, - 0x41U,0x14U,0x20U,0x00U,0x41U,0xD0U,0x00U,0x6AU,0x41U,0x03U, - 0x10U,0x08U,0x42U,0x14U,0x52U,0x04U,0x40U,0x41U,0xB7U,0x0CU, - 0x41U,0x3FU,0x42U,0xBEU,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x41U, - 0xF6U,0x0CU,0x41U,0x08U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU, - 0x22U,0x01U,0x41U,0x14U,0x41U,0x01U,0x10U,0x06U,0x1AU,0x20U, - 0x01U,0x41U,0x14U,0x20U,0x00U,0x41U,0x01U,0x10U,0x0BU,0x42U, - 0x14U,0x52U,0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U, - 0xC4U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0x01U, - 0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U,0x14U,0x10U,0x0BU, - 0x42U,0x01U,0x52U,0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU, - 0x42U,0xC8U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x2DU, - 0x00U,0x00U,0x41U,0x01U,0x6AU,0x21U,0x01U,0x0CU,0x01U,0x0BU, - 0x0BU,0x41U,0xFEU,0x0CU,0x41U,0x2AU,0x42U,0xCBU,0x01U,0x10U, - 0x03U,0x1AU,0x0BU,0x41U,0x93U,0x0AU,0x41U,0x0CU,0x20U,0x0AU, - 0x10U,0x0AU,0x1AU,0x41U,0x00U,0x41U,0x00U,0x20U,0x04U,0x41U, - 0x14U,0x10U,0x07U,0x42U,0x7FU,0x57U,0x04U,0x40U,0x41U,0xA8U, - 0x0DU,0x41U,0xC5U,0x00U,0x42U,0xD7U,0x01U,0x10U,0x09U,0x1AU, - 0x0BU,0x20U,0x00U,0x41U,0xEEU,0x09U,0x6AU,0x41U,0x02U,0x41U, - 0xEDU,0x0DU,0x41U,0x01U,0x10U,0x0CU,0x21U,0x09U,0x20U,0x00U, - 0x2DU,0x00U,0xEFU,0x09U,0x21U,0x04U,0x20U,0x00U,0x2DU,0x00U, - 0xEEU,0x09U,0x21U,0x03U,0x02U,0x40U,0x20U,0x09U,0x42U,0x02U, - 0x51U,0x04U,0x40U,0x02U,0x40U,0x20U,0x03U,0x41U,0xC8U,0x00U, - 0x6BU,0x22U,0x01U,0x41U,0x0BU,0x4BU,0x0DU,0x00U,0x41U,0x01U, - 0x20U,0x01U,0x74U,0x41U,0x81U,0x18U,0x71U,0x0DU,0x02U,0x0BU, - 0x0BU,0x41U,0xEFU,0x0DU,0x41U,0x3DU,0x42U,0xE6U,0x01U,0x10U, - 0x09U,0x1AU,0x0BU,0x02U,0x40U,0x20U,0x03U,0x41U,0xD3U,0x00U, - 0x46U,0x04U,0x40U,0x20U,0x04U,0x41U,0x14U,0x4FU,0x04U,0x40U, - 0x41U,0xACU,0x0EU,0x41U,0x30U,0x42U,0xEAU,0x01U,0x10U,0x09U, - 0x1AU,0x41U,0x01U,0x21U,0x05U,0x0CU,0x02U,0x0BU,0x0BU,0x20U, - 0x03U,0x41U,0xC8U,0x00U,0x46U,0x04U,0x40U,0x20U,0x04U,0x41U, - 0x0BU,0x4FU,0x04U,0x40U,0x41U,0xDCU,0x0EU,0x41U,0x2FU,0x42U, - 0xEDU,0x01U,0x10U,0x09U,0x1AU,0x41U,0x01U,0x21U,0x05U,0x41U, - 0x01U,0x21U,0x06U,0x0CU,0x02U,0x0BU,0x0BU,0x20U,0x03U,0x41U, - 0xC8U,0x00U,0x46U,0x21U,0x06U,0x41U,0x01U,0x21U,0x05U,0x20U, - 0x03U,0x41U,0xD2U,0x00U,0x47U,0x0DU,0x00U,0x41U,0x00U,0x21U, - 0x05U,0x20U,0x04U,0x41U,0xC4U,0x00U,0x46U,0x20U,0x04U,0x41U, - 0xD2U,0x00U,0x46U,0x72U,0x0DU,0x00U,0x41U,0x8BU,0x0FU,0x41U, - 0x3CU,0x42U,0xF0U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U, - 0x41U,0x01U,0x3AU,0x00U,0xEDU,0x09U,0x20U,0x02U,0x45U,0x04U, - 0x40U,0x02U,0x40U,0x20U,0x00U,0x41U,0xEDU,0x09U,0x6AU,0x41U, - 0x01U,0x41U,0xC7U,0x0FU,0x41U,0x01U,0x10U,0x0CU,0x42U,0x01U, - 0x52U,0x04U,0x40U,0x41U,0xC9U,0x0FU,0x41U,0xC1U,0x00U,0x42U, - 0xF8U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x2DU,0x00U, - 0xEDU,0x09U,0x22U,0x01U,0x41U,0x31U,0x6BU,0x41U,0xFFU,0x01U, - 0x71U,0x41U,0x02U,0x4FU,0x04U,0x40U,0x41U,0x8AU,0x10U,0x41U, - 0x30U,0x42U,0xFBU,0x01U,0x10U,0x09U,0x1AU,0x20U,0x00U,0x2DU, - 0x00U,0xEDU,0x09U,0x21U,0x01U,0x0BU,0x20U,0x00U,0x20U,0x01U, - 0x41U,0x30U,0x6BU,0x22U,0x01U,0x3AU,0x00U,0xEDU,0x09U,0x20U, - 0x01U,0x41U,0xFFU,0x01U,0x71U,0x41U,0x02U,0x47U,0x20U,0x05U, - 0x72U,0x0DU,0x00U,0x41U,0xBAU,0x10U,0x41U,0xC5U,0x00U,0x42U, - 0x81U,0x02U,0x10U,0x09U,0x1AU,0x0BU,0x0BU,0x41U,0x20U,0x41U, - 0x20U,0x41U,0x14U,0x41U,0x08U,0x20U,0x03U,0x41U,0xD3U,0x00U, - 0x46U,0x1BU,0x20U,0x06U,0x1BU,0x22U,0x06U,0x6BU,0x41U,0xFCU, - 0x01U,0x71U,0x22U,0x01U,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU, - 0x6AU,0x22U,0x07U,0x20U,0x06U,0x41U,0xFFU,0x10U,0x41U,0x01U, - 0x10U,0x0CU,0x20U,0x06U,0xADU,0x22U,0x09U,0x52U,0x04U,0x40U, - 0x41U,0x81U,0x11U,0x41U,0xC3U,0x00U,0x42U,0x8FU,0x02U,0x10U, - 0x09U,0x1AU,0x0BU,0x20U,0x00U,0x20U,0x04U,0x3AU,0x00U,0x92U, - 0x0AU,0x20U,0x00U,0x20U,0x03U,0x3AU,0x00U,0x91U,0x0AU,0x20U, - 0x00U,0x41U,0xD6U,0x00U,0x3AU,0x00U,0x90U,0x0AU,0x20U,0x00U, - 0x20U,0x00U,0x2DU,0x00U,0xEDU,0x09U,0x3AU,0x00U,0x93U,0x0AU, + 0x1AU,0x42U,0x9BU,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x41U,0x93U, + 0x0AU,0x41U,0x0CU,0x20U,0x00U,0x2DU,0x00U,0x90U,0x09U,0x22U, + 0x04U,0xADU,0x42U,0xFFU,0x01U,0x83U,0x22U,0x09U,0x10U,0x0AU, + 0x1AU,0x20U,0x00U,0x2DU,0x00U,0x90U,0x09U,0x22U,0x01U,0x45U, + 0x04U,0x40U,0x41U,0xA0U,0x0AU,0x41U,0x2EU,0x42U,0xA2U,0x01U, + 0x10U,0x09U,0x1AU,0x20U,0x00U,0x2DU,0x00U,0x90U,0x09U,0x21U, + 0x01U,0x0BU,0x20U,0x01U,0x41U,0xFFU,0x01U,0x71U,0x41U,0x15U, + 0x4FU,0x04U,0x40U,0x41U,0xCEU,0x0AU,0x41U,0x3DU,0x42U,0xA5U, + 0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x02U,0x04U,0x40U,0x02U, + 0x40U,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x41U,0x08U,0x41U, + 0x8BU,0x0BU,0x41U,0x03U,0x10U,0x08U,0x42U,0x7FU,0x57U,0x04U, + 0x40U,0x41U,0x8FU,0x0BU,0x41U,0x39U,0x42U,0xAAU,0x01U,0x10U, + 0x09U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0x20U,0x6AU,0x41U,0x08U, + 0x41U,0xC8U,0x0BU,0x41U,0x03U,0x10U,0x08U,0x42U,0x7FU,0x57U, + 0x04U,0x40U,0x41U,0xCCU,0x0BU,0x41U,0x37U,0x42U,0xADU,0x01U, + 0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x29U,0x03U,0x20U,0x50U, + 0x04U,0x40U,0x41U,0x83U,0x0CU,0x41U,0x2EU,0x42U,0xB0U,0x01U, + 0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU, + 0x41U,0x08U,0x41U,0xB1U,0x0CU,0x41U,0x02U,0x10U,0x0BU,0x42U, + 0x00U,0x57U,0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U, + 0xB3U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0x20U, + 0x6AU,0x41U,0x08U,0x41U,0xB4U,0x0CU,0x41U,0x02U,0x10U,0x0BU, + 0x42U,0x00U,0x55U,0x0DU,0x00U,0x41U,0xF9U,0x09U,0x41U,0x1AU, + 0x42U,0xB6U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x0BU,0x41U,0x00U, + 0x21U,0x01U,0x03U,0x40U,0x41U,0xB9U,0x81U,0x80U,0x80U,0x78U, + 0x41U,0x15U,0x10U,0x00U,0x1AU,0x02U,0x40U,0x20U,0x00U,0x20U, + 0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x2DU,0x00U,0x00U,0x22U, + 0x01U,0x20U,0x04U,0x4FU,0x0DU,0x00U,0x20U,0x00U,0x20U,0x01U, + 0x3AU,0x00U,0x52U,0x20U,0x00U,0x41U,0xC9U,0xA6U,0x01U,0x3BU, + 0x00U,0x50U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U,0x14U, + 0x20U,0x00U,0x41U,0xD0U,0x00U,0x6AU,0x41U,0x03U,0x10U,0x08U, + 0x42U,0x14U,0x52U,0x04U,0x40U,0x41U,0xB7U,0x0CU,0x41U,0x3FU, + 0x42U,0xBEU,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x41U,0xF6U,0x0CU, + 0x41U,0x08U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x22U,0x01U, + 0x41U,0x14U,0x41U,0x01U,0x10U,0x06U,0x1AU,0x20U,0x01U,0x41U, + 0x14U,0x20U,0x00U,0x41U,0x01U,0x10U,0x0BU,0x42U,0x14U,0x52U, + 0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xC4U,0x01U, + 0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0x01U,0x20U,0x00U, + 0x41U,0x80U,0x01U,0x6AU,0x41U,0x14U,0x10U,0x0BU,0x42U,0x01U, + 0x52U,0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xC8U, + 0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x2DU,0x00U,0x00U, + 0x41U,0x01U,0x6AU,0x21U,0x01U,0x0CU,0x01U,0x0BU,0x0BU,0x41U, + 0xFEU,0x0CU,0x41U,0x2AU,0x42U,0xCBU,0x01U,0x10U,0x03U,0x1AU, + 0x0BU,0x41U,0x93U,0x0AU,0x41U,0x0CU,0x20U,0x09U,0x10U,0x0AU, + 0x1AU,0x41U,0x00U,0x41U,0x00U,0x20U,0x03U,0x41U,0x14U,0x10U, + 0x07U,0x42U,0x7FU,0x57U,0x04U,0x40U,0x41U,0xA8U,0x0DU,0x41U, + 0xC5U,0x00U,0x42U,0xD7U,0x01U,0x10U,0x09U,0x1AU,0x0BU,0x20U, + 0x00U,0x41U,0xEEU,0x09U,0x6AU,0x41U,0x02U,0x41U,0xEDU,0x0DU, + 0x41U,0x01U,0x10U,0x0CU,0x21U,0x08U,0x20U,0x00U,0x2DU,0x00U, + 0xEEU,0x09U,0x21U,0x03U,0x20U,0x00U,0x20U,0x00U,0x2DU,0x00U, + 0xEFU,0x09U,0x22U,0x01U,0x3AU,0x00U,0xEDU,0x09U,0x02U,0x40U, + 0x20U,0x08U,0x42U,0x02U,0x51U,0x04U,0x40U,0x02U,0x40U,0x20U, + 0x03U,0x41U,0xC8U,0x00U,0x6BU,0x22U,0x04U,0x41U,0x0BU,0x4BU, + 0x0DU,0x00U,0x41U,0x01U,0x20U,0x04U,0x74U,0x41U,0x81U,0x18U, + 0x71U,0x0DU,0x02U,0x0BU,0x0BU,0x41U,0xEFU,0x0DU,0x41U,0x3DU, + 0x42U,0xE6U,0x01U,0x10U,0x09U,0x1AU,0x20U,0x00U,0x2DU,0x00U, + 0xEDU,0x09U,0x21U,0x01U,0x0BU,0x02U,0x40U,0x20U,0x03U,0x41U, + 0xD3U,0x00U,0x46U,0x04U,0x40U,0x20U,0x01U,0x41U,0x14U,0x4FU, + 0x04U,0x40U,0x41U,0xACU,0x0EU,0x41U,0x30U,0x42U,0xEAU,0x01U, + 0x10U,0x09U,0x1AU,0x41U,0x00U,0x21U,0x04U,0x41U,0x01U,0x21U, + 0x05U,0x0CU,0x02U,0x0BU,0x0BU,0x20U,0x03U,0x41U,0xC8U,0x00U, + 0x46U,0x04U,0x40U,0x20U,0x01U,0x41U,0x0BU,0x4FU,0x04U,0x40U, + 0x41U,0xDCU,0x0EU,0x41U,0x2FU,0x42U,0xEDU,0x01U,0x10U,0x09U, + 0x1AU,0x41U,0x01U,0x21U,0x05U,0x41U,0x01U,0x21U,0x04U,0x0CU, + 0x02U,0x0BU,0x0BU,0x20U,0x03U,0x41U,0xC8U,0x00U,0x46U,0x21U, + 0x04U,0x41U,0x01U,0x21U,0x05U,0x20U,0x03U,0x41U,0xD2U,0x00U, + 0x47U,0x0DU,0x00U,0x41U,0x00U,0x21U,0x05U,0x20U,0x01U,0x41U, + 0xC4U,0x00U,0x46U,0x20U,0x01U,0x41U,0xD2U,0x00U,0x46U,0x72U, + 0x0DU,0x00U,0x41U,0x8BU,0x0FU,0x41U,0x3CU,0x42U,0xF0U,0x01U, + 0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0x01U,0x3AU,0x00U, + 0xECU,0x09U,0x20U,0x02U,0x45U,0x04U,0x40U,0x02U,0x40U,0x20U, + 0x00U,0x41U,0xECU,0x09U,0x6AU,0x41U,0x01U,0x41U,0xC7U,0x0FU, + 0x41U,0x01U,0x10U,0x0CU,0x42U,0x01U,0x52U,0x04U,0x40U,0x41U, + 0xC9U,0x0FU,0x41U,0xC1U,0x00U,0x42U,0xF8U,0x01U,0x10U,0x09U, + 0x1AU,0x0BU,0x20U,0x00U,0x2DU,0x00U,0xECU,0x09U,0x22U,0x01U, + 0x41U,0x31U,0x6BU,0x41U,0xFFU,0x01U,0x71U,0x41U,0x02U,0x4FU, + 0x04U,0x40U,0x41U,0x8AU,0x10U,0x41U,0x30U,0x42U,0xFBU,0x01U, + 0x10U,0x09U,0x1AU,0x20U,0x00U,0x2DU,0x00U,0xECU,0x09U,0x21U, + 0x01U,0x0BU,0x20U,0x00U,0x20U,0x01U,0x41U,0x30U,0x6BU,0x22U, + 0x01U,0x3AU,0x00U,0xECU,0x09U,0x20U,0x01U,0x41U,0xFFU,0x01U, + 0x71U,0x41U,0x02U,0x47U,0x20U,0x05U,0x72U,0x0DU,0x00U,0x41U, + 0xBAU,0x10U,0x41U,0xC5U,0x00U,0x42U,0x81U,0x02U,0x10U,0x09U, + 0x1AU,0x0BU,0x0BU,0x41U,0x20U,0x41U,0x20U,0x41U,0x14U,0x41U, + 0x08U,0x20U,0x03U,0x41U,0xD3U,0x00U,0x46U,0x1BU,0x20U,0x04U, + 0x1BU,0x22U,0x05U,0x6BU,0x41U,0xFCU,0x01U,0x71U,0x22U,0x01U, + 0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x6AU,0x22U,0x06U,0x20U, + 0x05U,0x41U,0xFFU,0x10U,0x41U,0x01U,0x10U,0x0CU,0x20U,0x05U, + 0xADU,0x22U,0x08U,0x52U,0x04U,0x40U,0x41U,0x81U,0x11U,0x41U, + 0xC3U,0x00U,0x42U,0x8FU,0x02U,0x10U,0x09U,0x1AU,0x0BU,0x20U, + 0x00U,0x20U,0x03U,0x3AU,0x00U,0x91U,0x0AU,0x20U,0x00U,0x41U, + 0xD6U,0x00U,0x3AU,0x00U,0x90U,0x0AU,0x20U,0x00U,0x20U,0x00U, + 0x2DU,0x00U,0xEDU,0x09U,0x3AU,0x00U,0x92U,0x0AU,0x20U,0x00U, + 0x20U,0x00U,0x2DU,0x00U,0xECU,0x09U,0x3AU,0x00U,0x93U,0x0AU, 0x20U,0x01U,0x20U,0x00U,0x41U,0x90U,0x09U,0x6AU,0x6AU,0x20U, - 0x06U,0x20U,0x00U,0x41U,0x90U,0x0AU,0x6AU,0x41U,0x20U,0x10U, - 0x07U,0x22U,0x0BU,0x20U,0x09U,0x51U,0x04U,0x40U,0x02U,0x40U, + 0x05U,0x20U,0x00U,0x41U,0x90U,0x0AU,0x6AU,0x41U,0x20U,0x10U, + 0x07U,0x22U,0x0AU,0x20U,0x08U,0x51U,0x04U,0x40U,0x02U,0x40U, 0x20U,0x00U,0x29U,0x03U,0x90U,0x09U,0x20U,0x00U,0x29U,0x03U, 0xB0U,0x09U,0x52U,0x20U,0x00U,0x29U,0x03U,0x98U,0x09U,0x20U, 0x00U,0x29U,0x03U,0xB8U,0x09U,0x52U,0x72U,0x20U,0x00U,0x29U, @@ -189,153 +191,155 @@ static const std::vector GovernanceHook = 0x20U,0x00U,0x29U,0x03U,0xA8U,0x09U,0x20U,0x00U,0x29U,0x03U, 0xC8U,0x09U,0x52U,0x72U,0x72U,0x0DU,0x00U,0x41U,0xC4U,0x11U, 0x41U,0x3FU,0x42U,0xA0U,0x02U,0x10U,0x03U,0x1AU,0x0BU,0x0BU, - 0x20U,0x07U,0x20U,0x06U,0x20U,0x00U,0x41U,0x90U,0x0AU,0x6AU, - 0x41U,0x20U,0x10U,0x0BU,0x20U,0x09U,0x52U,0x04U,0x40U,0x41U, + 0x20U,0x06U,0x20U,0x05U,0x20U,0x00U,0x41U,0x90U,0x0AU,0x6AU, + 0x41U,0x20U,0x10U,0x0BU,0x20U,0x08U,0x52U,0x04U,0x40U,0x41U, 0xF9U,0x09U,0x41U,0x1AU,0x42U,0xA7U,0x02U,0x10U,0x09U,0x1AU, - 0x0BU,0x41U,0x00U,0x21U,0x01U,0x02U,0x40U,0x20U,0x0BU,0x42U, - 0x01U,0x59U,0x04U,0x40U,0x20U,0x00U,0x20U,0x04U,0x3AU,0x00U, - 0x92U,0x09U,0x20U,0x00U,0x20U,0x03U,0x3AU,0x00U,0x91U,0x09U, - 0x20U,0x00U,0x41U,0xC3U,0x00U,0x3AU,0x00U,0x90U,0x09U,0x20U, - 0x00U,0x41U,0x00U,0x3AU,0x00U,0x80U,0x01U,0x20U,0x00U,0x20U, - 0x00U,0x2DU,0x00U,0xEDU,0x09U,0x3AU,0x00U,0x93U,0x09U,0x20U, - 0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U,0x01U,0x20U,0x00U,0x41U, - 0x90U,0x09U,0x6AU,0x41U,0x20U,0x10U,0x07U,0x50U,0x0DU,0x01U, - 0x20U,0x00U,0x2DU,0x00U,0x80U,0x01U,0x22U,0x02U,0x45U,0x0DU, - 0x01U,0x20U,0x00U,0x20U,0x02U,0x41U,0x01U,0x6BU,0x22U,0x01U, - 0x3AU,0x00U,0x80U,0x01U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU, - 0x41U,0x00U,0x20U,0x01U,0x41U,0xFFU,0x01U,0x71U,0x22U,0x01U, - 0x1BU,0x20U,0x01U,0x41U,0x00U,0x47U,0x20U,0x00U,0x41U,0x90U, - 0x09U,0x6AU,0x41U,0x20U,0x10U,0x0BU,0x50U,0x04U,0x40U,0x41U, - 0xF9U,0x09U,0x41U,0x1AU,0x42U,0xB9U,0x02U,0x10U,0x09U,0x1AU, - 0x0BU,0x20U,0x02U,0x21U,0x01U,0x0BU,0x0BU,0x20U,0x00U,0x41U, - 0x00U,0x3AU,0x00U,0x8FU,0x09U,0x20U,0x00U,0x29U,0x03U,0xB0U, - 0x09U,0x21U,0x09U,0x20U,0x00U,0x41U,0xC3U,0x00U,0x3AU,0x00U, - 0xB0U,0x09U,0x20U,0x00U,0x20U,0x00U,0x2DU,0x00U,0xEDU,0x09U, - 0x3AU,0x00U,0xB3U,0x09U,0x20U,0x00U,0x20U,0x04U,0x3AU,0x00U, - 0xB2U,0x09U,0x20U,0x00U,0x20U,0x03U,0x3AU,0x00U,0xB1U,0x09U, - 0x20U,0x00U,0x41U,0x8FU,0x09U,0x6AU,0x22U,0x02U,0x41U,0x01U, - 0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x22U,0x05U,0x41U,0x20U, - 0x10U,0x07U,0x1AU,0x20U,0x00U,0x20U,0x00U,0x2DU,0x00U,0x8FU, - 0x09U,0x41U,0x01U,0x6AU,0x3AU,0x00U,0x8FU,0x09U,0x20U,0x02U, - 0x41U,0x01U,0x20U,0x05U,0x41U,0x20U,0x10U,0x0BU,0x42U,0x00U, - 0x57U,0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xCAU, - 0x02U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x20U,0x09U,0x37U, - 0x03U,0xB0U,0x09U,0x41U,0x00U,0x21U,0x05U,0x02U,0x40U,0x20U, - 0x09U,0x50U,0x04U,0x40U,0x20U,0x00U,0x41U,0xF0U,0x09U,0x6AU, - 0x29U,0x03U,0x00U,0x42U,0x00U,0x52U,0x20U,0x00U,0x41U,0xB0U, - 0x0AU,0x6AU,0x29U,0x03U,0x00U,0x42U,0x00U,0x52U,0x72U,0x0DU, - 0x01U,0x20U,0x00U,0x41U,0xF0U,0x0AU,0x6AU,0x29U,0x03U,0x00U, - 0x50U,0x21U,0x05U,0x0BU,0x0BU,0x41U,0x83U,0x12U,0x41U,0x0FU, - 0x20U,0x05U,0xADU,0x10U,0x0AU,0x1AU,0x41U,0x93U,0x12U,0x41U, - 0x05U,0x20U,0x00U,0x31U,0x00U,0x8FU,0x09U,0x10U,0x0AU,0x1AU, - 0x41U,0x93U,0x0AU,0x41U,0x0CU,0x20U,0x0AU,0x10U,0x0AU,0x1AU, - 0x41U,0x99U,0x12U,0x41U,0x06U,0x20U,0x00U,0x41U,0xEEU,0x09U, - 0x6AU,0x41U,0x02U,0x41U,0x01U,0x10U,0x06U,0x1AU,0x20U,0x0AU, - 0xB9U,0x22U,0x0DU,0x44U,0x52U,0xB8U,0x1EU,0x85U,0xEBU,0x51U, - 0xE0U,0x3FU,0xA2U,0x22U,0x0EU,0x99U,0x44U,0x00U,0x00U,0x00U, - 0x00U,0x00U,0x00U,0xE0U,0x43U,0x63U,0x04U,0x7EU,0x20U,0x0EU, - 0xB0U,0x05U,0x42U,0x80U,0x80U,0x80U,0x80U,0x80U,0x80U,0x80U, - 0x80U,0x80U,0x7FU,0x0BU,0x21U,0x09U,0x20U,0x00U,0x2DU,0x00U, - 0xEDU,0x09U,0x41U,0x01U,0x47U,0x21U,0x02U,0x20U,0x0DU,0x44U, - 0x9AU,0x99U,0x99U,0x99U,0x99U,0x99U,0xE9U,0x3FU,0xA2U,0x22U, - 0x0DU,0x99U,0x44U,0x00U,0x00U,0x00U,0x00U,0x00U,0x00U,0xE0U, - 0x43U,0x63U,0x04U,0x7EU,0x20U,0x0DU,0xB0U,0x05U,0x42U,0x80U, - 0x80U,0x80U,0x80U,0x80U,0x80U,0x80U,0x80U,0x80U,0x7FU,0x0BU, - 0x21U,0x0BU,0x02U,0x40U,0x20U,0x02U,0x04U,0x40U,0x20U,0x00U, - 0x31U,0x00U,0x8FU,0x09U,0x21U,0x0BU,0x20U,0x09U,0x42U,0x02U, - 0x20U,0x09U,0x42U,0x02U,0x55U,0x1BU,0x22U,0x0CU,0x20U,0x01U, - 0xADU,0x57U,0x04U,0x40U,0x02U,0x40U,0x20U,0x0BU,0x20U,0x0CU, - 0x59U,0x0DU,0x00U,0x41U,0xDBU,0x12U,0x41U,0x3EU,0x41U,0x00U, - 0x41U,0x00U,0x41U,0x00U,0x10U,0x06U,0x1AU,0x42U,0x01U,0x21U, - 0x09U,0x0CU,0x03U,0x0BU,0x0BU,0x42U,0x00U,0x21U,0x09U,0x20U, - 0x0BU,0x20U,0x0CU,0x59U,0x0DU,0x01U,0x41U,0x99U,0x13U,0x41U, - 0xC7U,0x00U,0x42U,0xFCU,0x02U,0x10U,0x03U,0x1AU,0x05U,0x42U, - 0x00U,0x21U,0x09U,0x20U,0x00U,0x31U,0x00U,0x8FU,0x09U,0x20U, - 0x0BU,0x42U,0x02U,0x20U,0x0BU,0x42U,0x02U,0x55U,0x1BU,0x20U, - 0x0AU,0x20U,0x03U,0x41U,0xD3U,0x00U,0x46U,0x1BU,0x59U,0x0DU, - 0x01U,0x41U,0x9FU,0x12U,0x41U,0x3CU,0x42U,0xF4U,0x02U,0x10U, - 0x03U,0x1AU,0x0BU,0x0BU,0x41U,0xE0U,0x13U,0x41U,0x11U,0x41U, - 0xF2U,0x13U,0x41U,0x10U,0x41U,0x00U,0x10U,0x06U,0x1AU,0x20U, - 0x00U,0x2DU,0x00U,0xEDU,0x09U,0x41U,0x02U,0x46U,0x04U,0x40U, - 0x10U,0x0DU,0x21U,0x0BU,0x20U,0x00U,0x41U,0x9EU,0x01U,0x6AU, - 0x42U,0x80U,0x80U,0x80U,0x80U,0xB0U,0x8EU,0xC0U,0xC0U,0x14U, - 0x37U,0x00U,0x00U,0x20U,0x00U,0x41U,0xE8U,0x80U,0x01U,0x3BU, - 0x00U,0x99U,0x01U,0x20U,0x00U,0x41U,0xA0U,0x36U,0x3BU,0x00U, - 0x93U,0x01U,0x20U,0x00U,0x41U,0xA0U,0x34U,0x3BU,0x00U,0x8DU, - 0x01U,0x20U,0x00U,0x41U,0x00U,0x36U,0x00U,0x89U,0x01U,0x20U, - 0x00U,0x41U,0x24U,0x3AU,0x00U,0x88U,0x01U,0x20U,0x00U,0x42U, - 0x92U,0x80U,0x8CU,0x93U,0x82U,0x10U,0x37U,0x03U,0x80U,0x01U, - 0x20U,0x00U,0x41U,0x00U,0x36U,0x00U,0x9BU,0x01U,0x20U,0x00U, - 0x20U,0x0BU,0xA7U,0x22U,0x02U,0x41U,0x05U,0x6AU,0x22U,0x01U, - 0x3AU,0x00U,0x98U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x08U, - 0x76U,0x3AU,0x00U,0x97U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U, - 0x10U,0x76U,0x3AU,0x00U,0x96U,0x01U,0x20U,0x00U,0x20U,0x01U, - 0x41U,0x18U,0x76U,0x3AU,0x00U,0x95U,0x01U,0x20U,0x00U,0x20U, - 0x02U,0x41U,0x01U,0x6AU,0x22U,0x01U,0x3AU,0x00U,0x92U,0x01U, - 0x20U,0x00U,0x20U,0x01U,0x41U,0x08U,0x76U,0x3AU,0x00U,0x91U, - 0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x10U,0x76U,0x3AU,0x00U, - 0x90U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x18U,0x76U,0x3AU, - 0x00U,0x8FU,0x01U,0x20U,0x00U,0x20U,0x00U,0x29U,0x03U,0xFCU, - 0x09U,0x37U,0x03U,0xA6U,0x01U,0x20U,0x00U,0x41U,0x83U,0x29U, - 0x3BU,0x01U,0xBAU,0x01U,0x20U,0x00U,0x20U,0x00U,0x29U,0x03U, - 0x84U,0x0AU,0x37U,0x03U,0xAEU,0x01U,0x20U,0x00U,0x20U,0x00U, - 0x28U,0x02U,0x8CU,0x0AU,0x36U,0x02U,0xB6U,0x01U,0x20U,0x00U, - 0x41U,0x80U,0x08U,0x29U,0x03U,0x00U,0x37U,0x03U,0xBCU,0x01U, - 0x20U,0x00U,0x41U,0x88U,0x08U,0x29U,0x03U,0x00U,0x37U,0x03U, - 0xC4U,0x01U,0x20U,0x00U,0x41U,0x90U,0x08U,0x28U,0x02U,0x00U, - 0x36U,0x02U,0xCCU,0x01U,0x20U,0x00U,0x41U,0xD0U,0x01U,0x6AU, - 0x22U,0x01U,0x41U,0x80U,0x04U,0x10U,0x0EU,0xA7U,0x20U,0x01U, - 0x6AU,0x22U,0x01U,0x41U,0xF0U,0xB2U,0x08U,0x36U,0x02U,0x08U, - 0x20U,0x01U,0x42U,0xF0U,0xA7U,0x80U,0xBFU,0x81U,0x8EU,0xC6U, - 0x80U,0xD4U,0x00U,0x37U,0x03U,0x00U,0x20U,0x01U,0x41U,0x0BU, - 0x6AU,0x20U,0x04U,0x20U,0x03U,0x41U,0x04U,0x74U,0x6AU,0x3AU, - 0x00U,0x00U,0x20U,0x01U,0x41U,0x15U,0x6AU,0x20U,0x06U,0x3AU, - 0x00U,0x00U,0x20U,0x01U,0x41U,0x14U,0x6AU,0x41U,0x19U,0x3AU, - 0x00U,0x00U,0x20U,0x01U,0x41U,0x0CU,0x6AU,0x42U,0xE1U,0xC1U, - 0xDFU,0x80U,0x87U,0xA3U,0x80U,0xABU,0xF0U,0x00U,0x37U,0x03U, - 0x00U,0x20U,0x01U,0x41U,0x16U,0x6AU,0x21U,0x01U,0x20U,0x09U, - 0x50U,0x04U,0x40U,0x20U,0x01U,0x20U,0x07U,0x29U,0x03U,0x00U, - 0x37U,0x03U,0x00U,0x20U,0x01U,0x20U,0x07U,0x29U,0x03U,0x08U, - 0x37U,0x03U,0x08U,0x20U,0x01U,0x41U,0x10U,0x6AU,0x20U,0x07U, - 0x29U,0x03U,0x10U,0x37U,0x03U,0x00U,0x20U,0x01U,0x41U,0x18U, - 0x6AU,0x20U,0x07U,0x29U,0x03U,0x18U,0x37U,0x03U,0x00U,0x0BU, - 0x20U,0x01U,0x20U,0x06U,0x6AU,0x22U,0x01U,0x41U,0xE1U,0xE3U, - 0x03U,0x3BU,0x01U,0x00U,0x20U,0x01U,0x20U,0x00U,0x41U,0x80U, - 0x01U,0x6AU,0x22U,0x01U,0x6BU,0x21U,0x02U,0x20U,0x00U,0x20U, - 0x01U,0x20U,0x02U,0x10U,0x0FU,0x22U,0x09U,0x3CU,0x00U,0xA1U, - 0x01U,0x20U,0x00U,0x41U,0xE8U,0x00U,0x3AU,0x00U,0x99U,0x01U, - 0x20U,0x00U,0x20U,0x09U,0x42U,0x08U,0x88U,0x3CU,0x00U,0xA0U, - 0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x10U,0x88U,0x3CU,0x00U, - 0x9FU,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x18U,0x88U,0x3CU, - 0x00U,0x9EU,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x20U,0x88U, - 0x3CU,0x00U,0x9DU,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x28U, - 0x88U,0x3CU,0x00U,0x9CU,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U, - 0x30U,0x88U,0x3CU,0x00U,0x9BU,0x01U,0x20U,0x00U,0x20U,0x09U, - 0x42U,0x38U,0x88U,0xA7U,0x41U,0x3FU,0x71U,0x41U,0xC0U,0x00U, - 0x72U,0x3AU,0x00U,0x9AU,0x01U,0x41U,0x82U,0x14U,0x41U,0x22U, - 0x20U,0x01U,0x20U,0x02U,0x41U,0x01U,0x10U,0x06U,0x1AU,0x41U, - 0xA4U,0x14U,0x41U,0x18U,0x20U,0x00U,0x41U,0x20U,0x6AU,0x41U, - 0x20U,0x20U,0x01U,0x20U,0x02U,0x10U,0x10U,0x22U,0x09U,0x10U, - 0x0AU,0x1AU,0x20U,0x09U,0x42U,0x20U,0x51U,0x04U,0x40U,0x41U, - 0xBCU,0x14U,0x41U,0x2AU,0x42U,0xD0U,0x03U,0x10U,0x03U,0x1AU, - 0x0BU,0x41U,0xE6U,0x14U,0x41U,0x25U,0x42U,0xD2U,0x03U,0x10U, - 0x09U,0x1AU,0x0BU,0x02U,0x40U,0x02U,0x40U,0x20U,0x03U,0x41U, - 0xD2U,0x00U,0x6BU,0x22U,0x01U,0x41U,0x01U,0x4DU,0x04U,0x40U, - 0x20U,0x01U,0x41U,0x01U,0x46U,0x0DU,0x01U,0x41U,0x8BU,0x15U, - 0x41U,0x06U,0x20U,0x07U,0x20U,0x06U,0x20U,0x00U,0x41U,0xEEU, - 0x09U,0x6AU,0x41U,0x02U,0x10U,0x0BU,0x22U,0x09U,0x10U,0x0AU, - 0x1AU,0x20U,0x09U,0x42U,0x00U,0x57U,0x04U,0x40U,0x41U,0xF9U, - 0x09U,0x41U,0x1AU,0x42U,0xDCU,0x03U,0x10U,0x09U,0x1AU,0x0BU, - 0x20U,0x04U,0x41U,0xD2U,0x00U,0x46U,0x04U,0x40U,0x41U,0x92U, - 0x15U,0x41U,0x29U,0x42U,0xDEU,0x03U,0x10U,0x03U,0x1AU,0x0BU, - 0x41U,0xBBU,0x15U,0x41U,0x2AU,0x42U,0xE0U,0x03U,0x10U,0x03U, - 0x1AU,0x05U,0x20U,0x03U,0x41U,0xC8U,0x00U,0x47U,0x0DU,0x02U, - 0x0BU,0x20U,0x00U,0x41U,0xD0U,0x00U,0x6AU,0x22U,0x01U,0x41U, - 0x22U,0x41U,0x01U,0x20U,0x08U,0x41U,0x14U,0x41U,0x00U,0x41U, - 0x00U,0x41U,0x00U,0x41U,0x00U,0x10U,0x11U,0x1AU,0x20U,0x01U, - 0x41U,0x22U,0x41U,0x05U,0x10U,0x12U,0x1AU,0x41U,0x05U,0x41U, - 0x8BU,0x80U,0x3CU,0x41U,0x06U,0x10U,0x13U,0x1AU,0x41U,0x06U, - 0x20U,0x04U,0x41U,0x07U,0x10U,0x14U,0x42U,0x07U,0x51U,0x04U, + 0x0BU,0x41U,0x00U,0x21U,0x01U,0x02U,0x40U,0x20U,0x0AU,0x42U, + 0x01U,0x59U,0x04U,0x40U,0x20U,0x00U,0x20U,0x03U,0x3AU,0x00U, + 0x91U,0x09U,0x20U,0x00U,0x41U,0xC3U,0x00U,0x3AU,0x00U,0x90U, + 0x09U,0x20U,0x00U,0x41U,0x00U,0x3AU,0x00U,0x80U,0x01U,0x20U, + 0x00U,0x20U,0x00U,0x2DU,0x00U,0xEDU,0x09U,0x3AU,0x00U,0x92U, + 0x09U,0x20U,0x00U,0x20U,0x00U,0x2DU,0x00U,0xECU,0x09U,0x3AU, + 0x00U,0x93U,0x09U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U, + 0x01U,0x20U,0x00U,0x41U,0x90U,0x09U,0x6AU,0x41U,0x20U,0x10U, + 0x07U,0x50U,0x0DU,0x01U,0x20U,0x00U,0x2DU,0x00U,0x80U,0x01U, + 0x22U,0x02U,0x45U,0x0DU,0x01U,0x20U,0x00U,0x20U,0x02U,0x41U, + 0x01U,0x6BU,0x22U,0x01U,0x3AU,0x00U,0x80U,0x01U,0x20U,0x00U, + 0x41U,0x80U,0x01U,0x6AU,0x41U,0x00U,0x20U,0x01U,0x41U,0xFFU, + 0x01U,0x71U,0x22U,0x01U,0x1BU,0x20U,0x01U,0x41U,0x00U,0x47U, + 0x20U,0x00U,0x41U,0x90U,0x09U,0x6AU,0x41U,0x20U,0x10U,0x0BU, + 0x50U,0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xB9U, + 0x02U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x02U,0x21U,0x01U,0x0BU, + 0x0BU,0x20U,0x00U,0x41U,0x00U,0x3AU,0x00U,0x8FU,0x09U,0x20U, + 0x00U,0x29U,0x03U,0xB0U,0x09U,0x21U,0x08U,0x20U,0x00U,0x41U, + 0xC3U,0x00U,0x3AU,0x00U,0xB0U,0x09U,0x20U,0x00U,0x20U,0x00U, + 0x2DU,0x00U,0xECU,0x09U,0x3AU,0x00U,0xB3U,0x09U,0x20U,0x00U, + 0x20U,0x00U,0x2DU,0x00U,0xEDU,0x09U,0x3AU,0x00U,0xB2U,0x09U, + 0x20U,0x00U,0x20U,0x03U,0x3AU,0x00U,0xB1U,0x09U,0x20U,0x00U, + 0x41U,0x8FU,0x09U,0x6AU,0x22U,0x02U,0x41U,0x01U,0x20U,0x00U, + 0x41U,0xB0U,0x09U,0x6AU,0x22U,0x04U,0x41U,0x20U,0x10U,0x07U, + 0x1AU,0x20U,0x00U,0x20U,0x00U,0x2DU,0x00U,0x8FU,0x09U,0x41U, + 0x01U,0x6AU,0x3AU,0x00U,0x8FU,0x09U,0x20U,0x02U,0x41U,0x01U, + 0x20U,0x04U,0x41U,0x20U,0x10U,0x0BU,0x42U,0x00U,0x57U,0x04U, + 0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xCAU,0x02U,0x10U, + 0x09U,0x1AU,0x0BU,0x20U,0x00U,0x20U,0x08U,0x37U,0x03U,0xB0U, + 0x09U,0x41U,0x00U,0x21U,0x04U,0x02U,0x40U,0x20U,0x08U,0x50U, + 0x04U,0x40U,0x20U,0x00U,0x41U,0xF0U,0x09U,0x6AU,0x29U,0x03U, + 0x00U,0x42U,0x00U,0x52U,0x20U,0x00U,0x41U,0xB0U,0x0AU,0x6AU, + 0x29U,0x03U,0x00U,0x42U,0x00U,0x52U,0x72U,0x0DU,0x01U,0x20U, + 0x00U,0x41U,0xF0U,0x0AU,0x6AU,0x29U,0x03U,0x00U,0x50U,0x21U, + 0x04U,0x0BU,0x0BU,0x41U,0x83U,0x12U,0x41U,0x0FU,0x20U,0x04U, + 0xADU,0x10U,0x0AU,0x1AU,0x41U,0x93U,0x12U,0x41U,0x05U,0x20U, + 0x00U,0x31U,0x00U,0x8FU,0x09U,0x10U,0x0AU,0x1AU,0x41U,0x93U, + 0x0AU,0x41U,0x0CU,0x20U,0x09U,0x10U,0x0AU,0x1AU,0x41U,0x99U, + 0x12U,0x41U,0x06U,0x20U,0x00U,0x41U,0xEEU,0x09U,0x6AU,0x41U, + 0x02U,0x41U,0x01U,0x10U,0x06U,0x1AU,0x20U,0x09U,0xB9U,0x22U, + 0x0CU,0x44U,0x52U,0xB8U,0x1EU,0x85U,0xEBU,0x51U,0xE0U,0x3FU, + 0xA2U,0x22U,0x0DU,0x99U,0x44U,0x00U,0x00U,0x00U,0x00U,0x00U, + 0x00U,0xE0U,0x43U,0x63U,0x04U,0x7EU,0x20U,0x0DU,0xB0U,0x05U, + 0x42U,0x80U,0x80U,0x80U,0x80U,0x80U,0x80U,0x80U,0x80U,0x80U, + 0x7FU,0x0BU,0x21U,0x08U,0x20U,0x00U,0x2DU,0x00U,0xECU,0x09U, + 0x41U,0x01U,0x47U,0x21U,0x02U,0x20U,0x0CU,0x44U,0x9AU,0x99U, + 0x99U,0x99U,0x99U,0x99U,0xE9U,0x3FU,0xA2U,0x22U,0x0CU,0x99U, + 0x44U,0x00U,0x00U,0x00U,0x00U,0x00U,0x00U,0xE0U,0x43U,0x63U, + 0x04U,0x7EU,0x20U,0x0CU,0xB0U,0x05U,0x42U,0x80U,0x80U,0x80U, + 0x80U,0x80U,0x80U,0x80U,0x80U,0x80U,0x7FU,0x0BU,0x21U,0x0AU, + 0x02U,0x40U,0x20U,0x02U,0x04U,0x40U,0x20U,0x00U,0x31U,0x00U, + 0x8FU,0x09U,0x21U,0x0AU,0x20U,0x08U,0x42U,0x02U,0x20U,0x08U, + 0x42U,0x02U,0x55U,0x1BU,0x22U,0x0BU,0x20U,0x01U,0xADU,0x57U, + 0x04U,0x40U,0x02U,0x40U,0x20U,0x0AU,0x20U,0x0BU,0x59U,0x0DU, + 0x00U,0x41U,0xDBU,0x12U,0x41U,0x3EU,0x41U,0x00U,0x41U,0x00U, + 0x41U,0x00U,0x10U,0x06U,0x1AU,0x42U,0x01U,0x21U,0x08U,0x0CU, + 0x03U,0x0BU,0x0BU,0x42U,0x00U,0x21U,0x08U,0x20U,0x0AU,0x20U, + 0x0BU,0x59U,0x0DU,0x01U,0x41U,0x99U,0x13U,0x41U,0xC7U,0x00U, + 0x42U,0xFCU,0x02U,0x10U,0x03U,0x1AU,0x05U,0x42U,0x00U,0x21U, + 0x08U,0x20U,0x00U,0x31U,0x00U,0x8FU,0x09U,0x20U,0x0AU,0x42U, + 0x02U,0x20U,0x0AU,0x42U,0x02U,0x55U,0x1BU,0x20U,0x09U,0x20U, + 0x03U,0x41U,0xD3U,0x00U,0x46U,0x1BU,0x59U,0x0DU,0x01U,0x41U, + 0x9FU,0x12U,0x41U,0x3CU,0x42U,0xF4U,0x02U,0x10U,0x03U,0x1AU, + 0x0BU,0x0BU,0x41U,0xE0U,0x13U,0x41U,0x11U,0x41U,0xF2U,0x13U, + 0x41U,0x10U,0x41U,0x00U,0x10U,0x06U,0x1AU,0x20U,0x00U,0x2DU, + 0x00U,0xECU,0x09U,0x41U,0x02U,0x46U,0x04U,0x40U,0x10U,0x0DU, + 0x21U,0x0AU,0x20U,0x00U,0x41U,0x9EU,0x01U,0x6AU,0x42U,0x80U, + 0x80U,0x80U,0x80U,0xB0U,0x8EU,0xC0U,0xC0U,0x14U,0x37U,0x00U, + 0x00U,0x20U,0x00U,0x41U,0xE8U,0x80U,0x01U,0x3BU,0x00U,0x99U, + 0x01U,0x20U,0x00U,0x41U,0xA0U,0x36U,0x3BU,0x00U,0x93U,0x01U, + 0x20U,0x00U,0x41U,0xA0U,0x34U,0x3BU,0x00U,0x8DU,0x01U,0x20U, + 0x00U,0x41U,0x00U,0x36U,0x00U,0x89U,0x01U,0x20U,0x00U,0x41U, + 0x24U,0x3AU,0x00U,0x88U,0x01U,0x20U,0x00U,0x42U,0x92U,0x80U, + 0x8CU,0x93U,0x82U,0x10U,0x37U,0x03U,0x80U,0x01U,0x20U,0x00U, + 0x41U,0x00U,0x36U,0x00U,0x9BU,0x01U,0x20U,0x00U,0x20U,0x0AU, + 0xA7U,0x22U,0x02U,0x41U,0x05U,0x6AU,0x22U,0x01U,0x3AU,0x00U, + 0x98U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x08U,0x76U,0x3AU, + 0x00U,0x97U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x10U,0x76U, + 0x3AU,0x00U,0x96U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x18U, + 0x76U,0x3AU,0x00U,0x95U,0x01U,0x20U,0x00U,0x20U,0x02U,0x41U, + 0x01U,0x6AU,0x22U,0x01U,0x3AU,0x00U,0x92U,0x01U,0x20U,0x00U, + 0x20U,0x01U,0x41U,0x08U,0x76U,0x3AU,0x00U,0x91U,0x01U,0x20U, + 0x00U,0x20U,0x01U,0x41U,0x10U,0x76U,0x3AU,0x00U,0x90U,0x01U, + 0x20U,0x00U,0x20U,0x01U,0x41U,0x18U,0x76U,0x3AU,0x00U,0x8FU, + 0x01U,0x20U,0x00U,0x20U,0x00U,0x29U,0x03U,0xFCU,0x09U,0x37U, + 0x03U,0xA6U,0x01U,0x20U,0x00U,0x41U,0x83U,0x29U,0x3BU,0x01U, + 0xBAU,0x01U,0x20U,0x00U,0x20U,0x00U,0x29U,0x03U,0x84U,0x0AU, + 0x37U,0x03U,0xAEU,0x01U,0x20U,0x00U,0x20U,0x00U,0x28U,0x02U, + 0x8CU,0x0AU,0x36U,0x02U,0xB6U,0x01U,0x20U,0x00U,0x41U,0x80U, + 0x08U,0x29U,0x03U,0x00U,0x37U,0x03U,0xBCU,0x01U,0x20U,0x00U, + 0x41U,0x88U,0x08U,0x29U,0x03U,0x00U,0x37U,0x03U,0xC4U,0x01U, + 0x20U,0x00U,0x41U,0x90U,0x08U,0x28U,0x02U,0x00U,0x36U,0x02U, + 0xCCU,0x01U,0x20U,0x00U,0x41U,0xD0U,0x01U,0x6AU,0x22U,0x01U, + 0x41U,0x80U,0x04U,0x10U,0x0EU,0xA7U,0x20U,0x01U,0x6AU,0x22U, + 0x01U,0x41U,0xF0U,0xB2U,0x08U,0x36U,0x02U,0x08U,0x20U,0x01U, + 0x42U,0xF0U,0xA7U,0x80U,0xBFU,0x81U,0x8EU,0xC6U,0x80U,0xD4U, + 0x00U,0x37U,0x03U,0x00U,0x20U,0x01U,0x41U,0x0BU,0x6AU,0x20U, + 0x00U,0x2DU,0x00U,0xEDU,0x09U,0x20U,0x03U,0x41U,0x04U,0x74U, + 0x6AU,0x3AU,0x00U,0x00U,0x20U,0x01U,0x41U,0x15U,0x6AU,0x20U, + 0x05U,0x3AU,0x00U,0x00U,0x20U,0x01U,0x41U,0x14U,0x6AU,0x41U, + 0x19U,0x3AU,0x00U,0x00U,0x20U,0x01U,0x41U,0x0CU,0x6AU,0x42U, + 0xE1U,0xC1U,0xDFU,0x80U,0x87U,0xA3U,0x80U,0xABU,0xF0U,0x00U, + 0x37U,0x03U,0x00U,0x20U,0x01U,0x41U,0x16U,0x6AU,0x21U,0x01U, + 0x20U,0x08U,0x50U,0x04U,0x40U,0x20U,0x01U,0x20U,0x06U,0x29U, + 0x03U,0x00U,0x37U,0x03U,0x00U,0x20U,0x01U,0x20U,0x06U,0x29U, + 0x03U,0x08U,0x37U,0x03U,0x08U,0x20U,0x01U,0x41U,0x10U,0x6AU, + 0x20U,0x06U,0x29U,0x03U,0x10U,0x37U,0x03U,0x00U,0x20U,0x01U, + 0x41U,0x18U,0x6AU,0x20U,0x06U,0x29U,0x03U,0x18U,0x37U,0x03U, + 0x00U,0x0BU,0x20U,0x01U,0x20U,0x05U,0x6AU,0x22U,0x01U,0x41U, + 0xE1U,0xE3U,0x03U,0x3BU,0x01U,0x00U,0x20U,0x01U,0x20U,0x00U, + 0x41U,0x80U,0x01U,0x6AU,0x22U,0x01U,0x6BU,0x21U,0x02U,0x20U, + 0x00U,0x20U,0x01U,0x20U,0x02U,0x10U,0x0FU,0x22U,0x08U,0x3CU, + 0x00U,0xA1U,0x01U,0x20U,0x00U,0x41U,0xE8U,0x00U,0x3AU,0x00U, + 0x99U,0x01U,0x20U,0x00U,0x20U,0x08U,0x42U,0x08U,0x88U,0x3CU, + 0x00U,0xA0U,0x01U,0x20U,0x00U,0x20U,0x08U,0x42U,0x10U,0x88U, + 0x3CU,0x00U,0x9FU,0x01U,0x20U,0x00U,0x20U,0x08U,0x42U,0x18U, + 0x88U,0x3CU,0x00U,0x9EU,0x01U,0x20U,0x00U,0x20U,0x08U,0x42U, + 0x20U,0x88U,0x3CU,0x00U,0x9DU,0x01U,0x20U,0x00U,0x20U,0x08U, + 0x42U,0x28U,0x88U,0x3CU,0x00U,0x9CU,0x01U,0x20U,0x00U,0x20U, + 0x08U,0x42U,0x30U,0x88U,0x3CU,0x00U,0x9BU,0x01U,0x20U,0x00U, + 0x20U,0x08U,0x42U,0x38U,0x88U,0xA7U,0x41U,0x3FU,0x71U,0x41U, + 0xC0U,0x00U,0x72U,0x3AU,0x00U,0x9AU,0x01U,0x41U,0x82U,0x14U, + 0x41U,0x22U,0x20U,0x01U,0x20U,0x02U,0x41U,0x01U,0x10U,0x06U, + 0x1AU,0x41U,0xA4U,0x14U,0x41U,0x18U,0x20U,0x00U,0x41U,0x20U, + 0x6AU,0x41U,0x20U,0x20U,0x01U,0x20U,0x02U,0x10U,0x10U,0x22U, + 0x08U,0x10U,0x0AU,0x1AU,0x20U,0x08U,0x42U,0x20U,0x51U,0x04U, + 0x40U,0x41U,0xBCU,0x14U,0x41U,0x2AU,0x42U,0xD0U,0x03U,0x10U, + 0x03U,0x1AU,0x0BU,0x41U,0xE6U,0x14U,0x41U,0x25U,0x42U,0xD2U, + 0x03U,0x10U,0x09U,0x1AU,0x0BU,0x02U,0x40U,0x02U,0x40U,0x20U, + 0x03U,0x41U,0xD2U,0x00U,0x6BU,0x22U,0x01U,0x41U,0x01U,0x4DU, + 0x04U,0x40U,0x20U,0x01U,0x41U,0x01U,0x46U,0x0DU,0x01U,0x41U, + 0x8BU,0x15U,0x41U,0x06U,0x20U,0x06U,0x20U,0x05U,0x20U,0x00U, + 0x41U,0xEEU,0x09U,0x6AU,0x41U,0x02U,0x10U,0x0BU,0x22U,0x08U, + 0x10U,0x0AU,0x1AU,0x20U,0x08U,0x42U,0x00U,0x57U,0x04U,0x40U, + 0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xDCU,0x03U,0x10U,0x09U, + 0x1AU,0x0BU,0x20U,0x00U,0x2DU,0x00U,0xEDU,0x09U,0x41U,0xD2U, + 0x00U,0x46U,0x04U,0x40U,0x41U,0x92U,0x15U,0x41U,0x29U,0x42U, + 0xDEU,0x03U,0x10U,0x03U,0x1AU,0x0BU,0x41U,0xBBU,0x15U,0x41U, + 0x2AU,0x42U,0xE0U,0x03U,0x10U,0x03U,0x1AU,0x05U,0x20U,0x03U, + 0x41U,0xC8U,0x00U,0x47U,0x0DU,0x02U,0x0BU,0x20U,0x00U,0x41U, + 0xD0U,0x00U,0x6AU,0x22U,0x01U,0x41U,0x22U,0x41U,0x01U,0x20U, + 0x07U,0x41U,0x14U,0x41U,0x00U,0x41U,0x00U,0x41U,0x00U,0x41U, + 0x00U,0x10U,0x11U,0x1AU,0x20U,0x01U,0x41U,0x22U,0x41U,0x05U, + 0x10U,0x12U,0x1AU,0x41U,0x05U,0x41U,0x8BU,0x80U,0x3CU,0x41U, + 0x06U,0x10U,0x13U,0x1AU,0x41U,0x06U,0x20U,0x00U,0x2DU,0x00U, + 0xEDU,0x09U,0x41U,0x07U,0x10U,0x14U,0x42U,0x07U,0x51U,0x04U, 0x40U,0x02U,0x40U,0x41U,0x07U,0x41U,0x9FU,0x80U,0x14U,0x41U, 0x08U,0x10U,0x13U,0x1AU,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU, 0x41U,0x20U,0x41U,0x08U,0x10U,0x15U,0x42U,0x20U,0x52U,0x04U, @@ -353,72 +357,48 @@ static const std::vector GovernanceHook = 0x00U,0x10U,0x11U,0x1AU,0x20U,0x01U,0x41U,0x22U,0x41U,0x09U, 0x10U,0x12U,0x42U,0x09U,0x52U,0x04U,0x40U,0x41U,0xA2U,0x16U, 0x41U,0xC3U,0x00U,0x42U,0x82U,0x04U,0x10U,0x09U,0x1AU,0x0BU, - 0x20U,0x00U,0x41U,0x20U,0x6AU,0x20U,0x04U,0x41U,0x02U,0x74U, - 0x6AU,0x41U,0x7FU,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x20U, - 0x05U,0x1BU,0x36U,0x02U,0x00U,0x10U,0x0DU,0x21U,0x09U,0x20U, - 0x00U,0x41U,0x14U,0x10U,0x05U,0x1AU,0x20U,0x00U,0x41U,0x9EU, - 0x01U,0x6AU,0x42U,0x80U,0x80U,0x80U,0x80U,0xB0U,0x8EU,0xC0U, - 0xC0U,0x14U,0x37U,0x00U,0x00U,0x20U,0x00U,0x41U,0xE8U,0x80U, - 0x01U,0x3BU,0x00U,0x99U,0x01U,0x20U,0x00U,0x41U,0xA0U,0x36U, - 0x3BU,0x00U,0x93U,0x01U,0x20U,0x00U,0x41U,0xA0U,0x34U,0x3BU, - 0x00U,0x8DU,0x01U,0x20U,0x00U,0x41U,0x00U,0x36U,0x00U,0x89U, - 0x01U,0x20U,0x00U,0x41U,0x24U,0x3AU,0x00U,0x88U,0x01U,0x20U, - 0x00U,0x42U,0x92U,0x80U,0xD8U,0x90U,0x82U,0x10U,0x37U,0x03U, - 0x80U,0x01U,0x20U,0x00U,0x41U,0x00U,0x36U,0x00U,0x9BU,0x01U, - 0x20U,0x00U,0x20U,0x09U,0xA7U,0x22U,0x02U,0x41U,0x05U,0x6AU, - 0x22U,0x01U,0x3AU,0x00U,0x98U,0x01U,0x20U,0x00U,0x20U,0x01U, - 0x41U,0x08U,0x76U,0x3AU,0x00U,0x97U,0x01U,0x20U,0x00U,0x20U, - 0x01U,0x41U,0x10U,0x76U,0x3AU,0x00U,0x96U,0x01U,0x20U,0x00U, - 0x20U,0x01U,0x41U,0x18U,0x76U,0x3AU,0x00U,0x95U,0x01U,0x20U, - 0x00U,0x20U,0x02U,0x41U,0x01U,0x6AU,0x22U,0x01U,0x3AU,0x00U, - 0x92U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x08U,0x76U,0x3AU, - 0x00U,0x91U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x10U,0x76U, - 0x3AU,0x00U,0x90U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x18U, - 0x76U,0x3AU,0x00U,0x8FU,0x01U,0x20U,0x00U,0x20U,0x00U,0x29U, - 0x03U,0x00U,0x37U,0x03U,0xA6U,0x01U,0x20U,0x00U,0x20U,0x00U, - 0x29U,0x03U,0x08U,0x37U,0x03U,0xAEU,0x01U,0x20U,0x00U,0x20U, - 0x00U,0x28U,0x02U,0x10U,0x36U,0x02U,0xB6U,0x01U,0x20U,0x00U, - 0x41U,0xBAU,0x01U,0x6AU,0x22U,0x01U,0x41U,0xC6U,0x07U,0x10U, - 0x0EU,0xA7U,0x20U,0x01U,0x6AU,0x22U,0x01U,0x41U,0xFBU,0xDDU, - 0x03U,0x3BU,0x00U,0x00U,0x20U,0x01U,0x41U,0x02U,0x6AU,0x21U, - 0x01U,0x20U,0x00U,0x28U,0x02U,0x20U,0x22U,0x02U,0x04U,0x40U, - 0x20U,0x01U,0x41U,0x22U,0x36U,0x00U,0x00U,0x20U,0x01U,0x41U, - 0x04U,0x6AU,0x41U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x01U,0x41U, - 0x06U,0x6AU,0x21U,0x03U,0x20U,0x01U,0x41U,0x05U,0x6AU,0x21U, - 0x01U,0x20U,0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U, - 0x41U,0x1FU,0x3AU,0x00U,0x00U,0x20U,0x01U,0x20U,0x02U,0x29U, - 0x03U,0x00U,0x37U,0x03U,0x01U,0x20U,0x01U,0x20U,0x02U,0x29U, - 0x03U,0x08U,0x37U,0x03U,0x09U,0x20U,0x01U,0x20U,0x02U,0x29U, - 0x03U,0x10U,0x37U,0x03U,0x11U,0x20U,0x01U,0x20U,0x02U,0x29U, - 0x03U,0x18U,0x37U,0x03U,0x19U,0x20U,0x03U,0x41U,0x20U,0x6AU, - 0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U,0x00U,0x20U, - 0x03U,0x41U,0x01U,0x6AU,0x0BU,0x21U,0x01U,0x0BU,0x20U,0x01U, - 0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x28U,0x02U, - 0x24U,0x21U,0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U, - 0x01U,0x20U,0x02U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x01U,0x3AU, - 0x00U,0x06U,0x20U,0x01U,0x41U,0x22U,0x36U,0x00U,0x02U,0x20U, - 0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x1FU, - 0x3AU,0x00U,0x07U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x00U, - 0x37U,0x03U,0x08U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x08U, - 0x37U,0x03U,0x10U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x10U, - 0x37U,0x03U,0x18U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x18U, - 0x37U,0x03U,0x20U,0x20U,0x01U,0x41U,0x28U,0x6AU,0x05U,0x20U, - 0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U,0x07U,0x20U,0x01U,0x41U, - 0x09U,0x6AU,0x0BU,0x05U,0x20U,0x01U,0x41U,0x02U,0x6AU,0x0BU, - 0x22U,0x01U,0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U, - 0x28U,0x02U,0x28U,0x21U,0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U, - 0x3AU,0x00U,0x01U,0x20U,0x02U,0x04U,0x7FU,0x20U,0x01U,0x41U, - 0x01U,0x3AU,0x00U,0x06U,0x20U,0x01U,0x41U,0x22U,0x36U,0x00U, - 0x02U,0x20U,0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U, - 0x41U,0x1FU,0x3AU,0x00U,0x07U,0x20U,0x01U,0x20U,0x02U,0x29U, - 0x03U,0x00U,0x37U,0x03U,0x08U,0x20U,0x01U,0x20U,0x02U,0x29U, - 0x03U,0x08U,0x37U,0x03U,0x10U,0x20U,0x01U,0x20U,0x02U,0x29U, - 0x03U,0x10U,0x37U,0x03U,0x18U,0x20U,0x01U,0x20U,0x02U,0x29U, - 0x03U,0x18U,0x37U,0x03U,0x20U,0x20U,0x01U,0x41U,0x28U,0x6AU, - 0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U,0x07U,0x20U, - 0x01U,0x41U,0x09U,0x6AU,0x0BU,0x05U,0x20U,0x01U,0x41U,0x02U, - 0x6AU,0x0BU,0x22U,0x01U,0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U, - 0x20U,0x00U,0x28U,0x02U,0x2CU,0x21U,0x02U,0x20U,0x01U,0x41U, + 0x20U,0x00U,0x41U,0x20U,0x6AU,0x20U,0x00U,0x2DU,0x00U,0xEDU, + 0x09U,0x41U,0x02U,0x74U,0x6AU,0x41U,0x7FU,0x20U,0x00U,0x41U, + 0xB0U,0x09U,0x6AU,0x20U,0x04U,0x1BU,0x36U,0x02U,0x00U,0x10U, + 0x0DU,0x21U,0x08U,0x20U,0x00U,0x41U,0x14U,0x10U,0x05U,0x1AU, + 0x20U,0x00U,0x41U,0x9EU,0x01U,0x6AU,0x42U,0x80U,0x80U,0x80U, + 0x80U,0xB0U,0x8EU,0xC0U,0xC0U,0x14U,0x37U,0x00U,0x00U,0x20U, + 0x00U,0x41U,0xE8U,0x80U,0x01U,0x3BU,0x00U,0x99U,0x01U,0x20U, + 0x00U,0x41U,0xA0U,0x36U,0x3BU,0x00U,0x93U,0x01U,0x20U,0x00U, + 0x41U,0xA0U,0x34U,0x3BU,0x00U,0x8DU,0x01U,0x20U,0x00U,0x41U, + 0x00U,0x36U,0x00U,0x89U,0x01U,0x20U,0x00U,0x41U,0x24U,0x3AU, + 0x00U,0x88U,0x01U,0x20U,0x00U,0x42U,0x92U,0x80U,0xD8U,0x90U, + 0x82U,0x10U,0x37U,0x03U,0x80U,0x01U,0x20U,0x00U,0x41U,0x00U, + 0x36U,0x00U,0x9BU,0x01U,0x20U,0x00U,0x20U,0x08U,0xA7U,0x22U, + 0x02U,0x41U,0x05U,0x6AU,0x22U,0x01U,0x3AU,0x00U,0x98U,0x01U, + 0x20U,0x00U,0x20U,0x01U,0x41U,0x08U,0x76U,0x3AU,0x00U,0x97U, + 0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x10U,0x76U,0x3AU,0x00U, + 0x96U,0x01U,0x20U,0x00U,0x20U,0x01U,0x41U,0x18U,0x76U,0x3AU, + 0x00U,0x95U,0x01U,0x20U,0x00U,0x20U,0x02U,0x41U,0x01U,0x6AU, + 0x22U,0x01U,0x3AU,0x00U,0x92U,0x01U,0x20U,0x00U,0x20U,0x01U, + 0x41U,0x08U,0x76U,0x3AU,0x00U,0x91U,0x01U,0x20U,0x00U,0x20U, + 0x01U,0x41U,0x10U,0x76U,0x3AU,0x00U,0x90U,0x01U,0x20U,0x00U, + 0x20U,0x01U,0x41U,0x18U,0x76U,0x3AU,0x00U,0x8FU,0x01U,0x20U, + 0x00U,0x20U,0x00U,0x29U,0x03U,0x00U,0x37U,0x03U,0xA6U,0x01U, + 0x20U,0x00U,0x20U,0x00U,0x29U,0x03U,0x08U,0x37U,0x03U,0xAEU, + 0x01U,0x20U,0x00U,0x20U,0x00U,0x28U,0x02U,0x10U,0x36U,0x02U, + 0xB6U,0x01U,0x20U,0x00U,0x41U,0xBAU,0x01U,0x6AU,0x22U,0x01U, + 0x41U,0xC6U,0x07U,0x10U,0x0EU,0xA7U,0x20U,0x01U,0x6AU,0x22U, + 0x01U,0x41U,0xFBU,0xDDU,0x03U,0x3BU,0x00U,0x00U,0x20U,0x01U, + 0x41U,0x02U,0x6AU,0x21U,0x01U,0x20U,0x00U,0x28U,0x02U,0x20U, + 0x22U,0x02U,0x04U,0x40U,0x20U,0x01U,0x41U,0x22U,0x36U,0x00U, + 0x00U,0x20U,0x01U,0x41U,0x04U,0x6AU,0x41U,0x01U,0x3AU,0x00U, + 0x00U,0x20U,0x01U,0x41U,0x06U,0x6AU,0x21U,0x03U,0x20U,0x01U, + 0x41U,0x05U,0x6AU,0x21U,0x01U,0x20U,0x02U,0x41U,0x7FU,0x47U, + 0x04U,0x7FU,0x20U,0x01U,0x41U,0x1FU,0x3AU,0x00U,0x00U,0x20U, + 0x01U,0x20U,0x02U,0x29U,0x03U,0x00U,0x37U,0x03U,0x01U,0x20U, + 0x01U,0x20U,0x02U,0x29U,0x03U,0x08U,0x37U,0x03U,0x09U,0x20U, + 0x01U,0x20U,0x02U,0x29U,0x03U,0x10U,0x37U,0x03U,0x11U,0x20U, + 0x01U,0x20U,0x02U,0x29U,0x03U,0x18U,0x37U,0x03U,0x19U,0x20U, + 0x03U,0x41U,0x20U,0x6AU,0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U, + 0x3BU,0x00U,0x00U,0x20U,0x03U,0x41U,0x01U,0x6AU,0x0BU,0x21U, + 0x01U,0x0BU,0x20U,0x01U,0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U, + 0x20U,0x00U,0x28U,0x02U,0x24U,0x21U,0x02U,0x20U,0x01U,0x41U, 0xEEU,0x01U,0x3AU,0x00U,0x01U,0x20U,0x02U,0x04U,0x7FU,0x20U, 0x01U,0x41U,0x01U,0x3AU,0x00U,0x06U,0x20U,0x01U,0x41U,0x22U, 0x36U,0x00U,0x02U,0x20U,0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU, @@ -430,7 +410,7 @@ static const std::vector GovernanceHook = 0x28U,0x6AU,0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U, 0x07U,0x20U,0x01U,0x41U,0x09U,0x6AU,0x0BU,0x05U,0x20U,0x01U, 0x41U,0x02U,0x6AU,0x0BU,0x22U,0x01U,0x41U,0xE1U,0x01U,0x3AU, - 0x00U,0x00U,0x20U,0x00U,0x28U,0x02U,0x30U,0x21U,0x02U,0x20U, + 0x00U,0x00U,0x20U,0x00U,0x28U,0x02U,0x28U,0x21U,0x02U,0x20U, 0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U,0x01U,0x20U,0x02U,0x04U, 0x7FU,0x20U,0x01U,0x41U,0x01U,0x3AU,0x00U,0x06U,0x20U,0x01U, 0x41U,0x22U,0x36U,0x00U,0x02U,0x20U,0x02U,0x41U,0x7FU,0x47U, @@ -442,7 +422,7 @@ static const std::vector GovernanceHook = 0x01U,0x41U,0x28U,0x6AU,0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U, 0x3BU,0x00U,0x07U,0x20U,0x01U,0x41U,0x09U,0x6AU,0x0BU,0x05U, 0x20U,0x01U,0x41U,0x02U,0x6AU,0x0BU,0x22U,0x01U,0x41U,0xE1U, - 0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x28U,0x02U,0x34U,0x21U, + 0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x28U,0x02U,0x2CU,0x21U, 0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U,0x01U,0x20U, 0x02U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x01U,0x3AU,0x00U,0x06U, 0x20U,0x01U,0x41U,0x22U,0x36U,0x00U,0x02U,0x20U,0x02U,0x41U, @@ -455,7 +435,7 @@ static const std::vector GovernanceHook = 0xFBU,0x00U,0x3BU,0x00U,0x07U,0x20U,0x01U,0x41U,0x09U,0x6AU, 0x0BU,0x05U,0x20U,0x01U,0x41U,0x02U,0x6AU,0x0BU,0x22U,0x01U, 0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x28U,0x02U, - 0x38U,0x21U,0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U, + 0x30U,0x21U,0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U, 0x01U,0x20U,0x02U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x01U,0x3AU, 0x00U,0x06U,0x20U,0x01U,0x41U,0x22U,0x36U,0x00U,0x02U,0x20U, 0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x1FU, @@ -467,7 +447,7 @@ static const std::vector GovernanceHook = 0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U,0x07U,0x20U,0x01U,0x41U, 0x09U,0x6AU,0x0BU,0x05U,0x20U,0x01U,0x41U,0x02U,0x6AU,0x0BU, 0x22U,0x01U,0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U, - 0x28U,0x02U,0x3CU,0x21U,0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U, + 0x28U,0x02U,0x34U,0x21U,0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U, 0x3AU,0x00U,0x01U,0x20U,0x02U,0x04U,0x7FU,0x20U,0x01U,0x41U, 0x01U,0x3AU,0x00U,0x06U,0x20U,0x01U,0x41U,0x22U,0x36U,0x00U, 0x02U,0x20U,0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U, @@ -479,7 +459,7 @@ static const std::vector GovernanceHook = 0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U,0x07U,0x20U, 0x01U,0x41U,0x09U,0x6AU,0x0BU,0x05U,0x20U,0x01U,0x41U,0x02U, 0x6AU,0x0BU,0x22U,0x01U,0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U, - 0x20U,0x00U,0x28U,0x02U,0x40U,0x21U,0x02U,0x20U,0x01U,0x41U, + 0x20U,0x00U,0x28U,0x02U,0x38U,0x21U,0x02U,0x20U,0x01U,0x41U, 0xEEU,0x01U,0x3AU,0x00U,0x01U,0x20U,0x02U,0x04U,0x7FU,0x20U, 0x01U,0x41U,0x01U,0x3AU,0x00U,0x06U,0x20U,0x01U,0x41U,0x22U, 0x36U,0x00U,0x02U,0x20U,0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU, @@ -491,7 +471,7 @@ static const std::vector GovernanceHook = 0x28U,0x6AU,0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U, 0x07U,0x20U,0x01U,0x41U,0x09U,0x6AU,0x0BU,0x05U,0x20U,0x01U, 0x41U,0x02U,0x6AU,0x0BU,0x22U,0x01U,0x41U,0xE1U,0x01U,0x3AU, - 0x00U,0x00U,0x20U,0x00U,0x28U,0x02U,0x44U,0x21U,0x02U,0x20U, + 0x00U,0x00U,0x20U,0x00U,0x28U,0x02U,0x3CU,0x21U,0x02U,0x20U, 0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U,0x01U,0x20U,0x02U,0x04U, 0x7FU,0x20U,0x01U,0x41U,0x01U,0x3AU,0x00U,0x06U,0x20U,0x01U, 0x41U,0x22U,0x36U,0x00U,0x02U,0x20U,0x02U,0x41U,0x7FU,0x47U, @@ -503,81 +483,115 @@ static const std::vector GovernanceHook = 0x01U,0x41U,0x28U,0x6AU,0x05U,0x20U,0x01U,0x41U,0xFBU,0x00U, 0x3BU,0x00U,0x07U,0x20U,0x01U,0x41U,0x09U,0x6AU,0x0BU,0x05U, 0x20U,0x01U,0x41U,0x02U,0x6AU,0x0BU,0x22U,0x01U,0x41U,0xE1U, - 0xE3U,0x03U,0x3BU,0x00U,0x00U,0x20U,0x01U,0x20U,0x00U,0x41U, - 0x80U,0x01U,0x6AU,0x22U,0x02U,0x6BU,0x41U,0x02U,0x6AU,0x21U, - 0x01U,0x20U,0x00U,0x20U,0x02U,0x20U,0x01U,0x10U,0x0FU,0x22U, - 0x09U,0x3CU,0x00U,0xA1U,0x01U,0x20U,0x00U,0x41U,0xE8U,0x00U, - 0x3AU,0x00U,0x99U,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U,0x08U, - 0x88U,0x3CU,0x00U,0xA0U,0x01U,0x20U,0x00U,0x20U,0x09U,0x42U, - 0x10U,0x88U,0x3CU,0x00U,0x9FU,0x01U,0x20U,0x00U,0x20U,0x09U, - 0x42U,0x18U,0x88U,0x3CU,0x00U,0x9EU,0x01U,0x20U,0x00U,0x20U, - 0x09U,0x42U,0x20U,0x88U,0x3CU,0x00U,0x9DU,0x01U,0x20U,0x00U, - 0x20U,0x09U,0x42U,0x28U,0x88U,0x3CU,0x00U,0x9CU,0x01U,0x20U, - 0x00U,0x20U,0x09U,0x42U,0x30U,0x88U,0x3CU,0x00U,0x9BU,0x01U, - 0x20U,0x00U,0x20U,0x09U,0x42U,0x38U,0x88U,0xA7U,0x41U,0x3FU, - 0x71U,0x41U,0xC0U,0x00U,0x72U,0x3AU,0x00U,0x9AU,0x01U,0x41U, - 0xE5U,0x16U,0x41U,0x0BU,0x20U,0x00U,0x41U,0x20U,0x20U,0x02U, - 0x20U,0x01U,0x10U,0x10U,0x22U,0x09U,0x10U,0x0AU,0x1AU,0x20U, - 0x09U,0x20U,0x01U,0xADU,0x52U,0x04U,0x40U,0x41U,0xF1U,0x16U, - 0x41U,0x2FU,0x42U,0x9AU,0x04U,0x10U,0x09U,0x1AU,0x0BU,0x41U, - 0xA0U,0x17U,0x41U,0x1BU,0x42U,0x9CU,0x04U,0x10U,0x03U,0x1AU, - 0x0BU,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U,0x0CU,0x72U, - 0x41U,0x14U,0x20U,0x04U,0x41U,0x01U,0x10U,0x07U,0x22U,0x09U, - 0x42U,0x14U,0x52U,0x20U,0x05U,0x72U,0x04U,0x40U,0x02U,0x40U, - 0x41U,0x93U,0x0AU,0x41U,0x0CU,0x42U,0x7FU,0x42U,0x01U,0x20U, - 0x09U,0x42U,0x14U,0x51U,0x1BU,0x20U,0x0AU,0x7CU,0x22U,0x0AU, - 0x10U,0x0AU,0x1AU,0x20U,0x0AU,0x42U,0x01U,0x57U,0x04U,0x40U, - 0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xB5U,0x04U,0x10U,0x09U, - 0x1AU,0x0BU,0x20U,0x00U,0x20U,0x0AU,0x3CU,0x00U,0x20U,0x20U, - 0x00U,0x41U,0x20U,0x6AU,0x41U,0x01U,0x41U,0xB4U,0x09U,0x41U, - 0x02U,0x10U,0x0BU,0x42U,0x01U,0x51U,0x0DU,0x00U,0x41U,0xF9U, - 0x09U,0x41U,0x1AU,0x42U,0xB8U,0x04U,0x10U,0x09U,0x1AU,0x0BU, - 0x05U,0x41U,0xBBU,0x17U,0x41U,0x25U,0x41U,0x00U,0x41U,0x00U, - 0x41U,0x00U,0x10U,0x06U,0x1AU,0x0BU,0x20U,0x09U,0x42U,0x14U, - 0x51U,0x04U,0x40U,0x02U,0x40U,0x20U,0x00U,0x41U,0xD6U,0x00U, - 0x3AU,0x00U,0x80U,0x01U,0x41U,0x01U,0x21U,0x01U,0x03U,0x40U, - 0x41U,0xC0U,0x84U,0x80U,0x80U,0x78U,0x41U,0x21U,0x10U,0x00U, - 0x1AU,0x20U,0x01U,0x41U,0x20U,0x46U,0x0DU,0x01U,0x20U,0x00U, - 0x41U,0xD2U,0x00U,0x41U,0xC8U,0x00U,0x41U,0xD3U,0x00U,0x20U, - 0x01U,0x41U,0x0CU,0x49U,0x22U,0x02U,0x1BU,0x20U,0x01U,0x41U, - 0x02U,0x49U,0x22U,0x03U,0x1BU,0x3AU,0x00U,0x81U,0x01U,0x20U, - 0x00U,0x41U,0x00U,0x41U,0xFEU,0x01U,0x41U,0xF4U,0x01U,0x20U, - 0x02U,0x1BU,0x20U,0x03U,0x1BU,0x20U,0x01U,0x6AU,0x3AU,0x00U, - 0x82U,0x01U,0x20U,0x00U,0x41U,0x20U,0x6AU,0x41U,0x20U,0x20U, - 0x00U,0x41U,0x80U,0x01U,0x6AU,0x41U,0x20U,0x10U,0x07U,0x42U, - 0x20U,0x51U,0x04U,0x40U,0x02U,0x40U,0x20U,0x00U,0x41U,0xC3U, - 0x00U,0x3AU,0x00U,0x20U,0x20U,0x00U,0x41U,0x00U,0x3AU,0x00U, - 0x50U,0x20U,0x00U,0x20U,0x00U,0x2FU,0x00U,0x81U,0x01U,0x3BU, - 0x00U,0x21U,0x20U,0x00U,0x41U,0xD0U,0x00U,0x6AU,0x41U,0x01U, - 0x20U,0x00U,0x41U,0x20U,0x6AU,0x41U,0x20U,0x10U,0x07U,0x42U, - 0x01U,0x51U,0x04U,0x40U,0x02U,0x40U,0x20U,0x00U,0x2DU,0x00U, - 0x50U,0x22U,0x02U,0x41U,0x01U,0x4BU,0x04U,0x40U,0x20U,0x00U, - 0x20U,0x02U,0x41U,0x01U,0x6BU,0x3AU,0x00U,0x50U,0x20U,0x00U, - 0x41U,0xD0U,0x00U,0x6AU,0x41U,0x01U,0x20U,0x00U,0x41U,0x20U, - 0x6AU,0x41U,0x20U,0x10U,0x0BU,0x42U,0x01U,0x51U,0x0DU,0x01U, - 0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xD8U,0x04U,0x10U,0x09U, - 0x1AU,0x05U,0x41U,0x00U,0x41U,0x00U,0x20U,0x00U,0x41U,0x20U, - 0x6AU,0x41U,0x20U,0x10U,0x0BU,0x50U,0x0DU,0x01U,0x41U,0xF9U, - 0x09U,0x41U,0x1AU,0x42U,0xD3U,0x04U,0x10U,0x09U,0x1AU,0x0BU, - 0x0BU,0x0BU,0x41U,0x00U,0x41U,0x00U,0x20U,0x00U,0x41U,0x80U, - 0x01U,0x6AU,0x41U,0x20U,0x10U,0x0BU,0x50U,0x0DU,0x00U,0x41U, - 0xF9U,0x09U,0x41U,0x1AU,0x42U,0xDDU,0x04U,0x10U,0x09U,0x1AU, - 0x0BU,0x0BU,0x20U,0x01U,0x41U,0x01U,0x6AU,0x21U,0x01U,0x0CU, - 0x00U,0x0BU,0x00U,0x0BU,0x0BU,0x20U,0x05U,0x45U,0x04U,0x40U, - 0x02U,0x40U,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x41U,0x14U, - 0x20U,0x04U,0x41U,0x01U,0x10U,0x0BU,0x42U,0x14U,0x52U,0x04U, - 0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xE6U,0x04U,0x10U, - 0x09U,0x1AU,0x0BU,0x20U,0x04U,0x41U,0x01U,0x20U,0x00U,0x41U, - 0xB0U,0x09U,0x6AU,0x41U,0x20U,0x10U,0x0BU,0x42U,0x14U,0x51U, - 0x0DU,0x00U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xE9U,0x04U, - 0x10U,0x09U,0x1AU,0x0BU,0x0BU,0x41U,0xE0U,0x17U,0x41U,0x22U, - 0x42U,0xECU,0x04U,0x10U,0x03U,0x1AU,0x0BU,0x41U,0x82U,0x18U, - 0x41U,0x22U,0x42U,0xF0U,0x04U,0x10U,0x09U,0x1AU,0x20U,0x00U, - 0x41U,0xB0U,0x0AU,0x6AU,0x24U,0x00U,0x20U,0x0AU,0x0BU,0x0BU, - 0xB1U,0x10U,0x02U,0x00U,0x41U,0x80U,0x08U,0x0BU,0x14U,0xB5U, + 0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x28U,0x02U,0x40U,0x21U, + 0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U,0x01U,0x20U, + 0x02U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x01U,0x3AU,0x00U,0x06U, + 0x20U,0x01U,0x41U,0x22U,0x36U,0x00U,0x02U,0x20U,0x02U,0x41U, + 0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x1FU,0x3AU,0x00U, + 0x07U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x00U,0x37U,0x03U, + 0x08U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x08U,0x37U,0x03U, + 0x10U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x10U,0x37U,0x03U, + 0x18U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x18U,0x37U,0x03U, + 0x20U,0x20U,0x01U,0x41U,0x28U,0x6AU,0x05U,0x20U,0x01U,0x41U, + 0xFBU,0x00U,0x3BU,0x00U,0x07U,0x20U,0x01U,0x41U,0x09U,0x6AU, + 0x0BU,0x05U,0x20U,0x01U,0x41U,0x02U,0x6AU,0x0BU,0x22U,0x01U, + 0x41U,0xE1U,0x01U,0x3AU,0x00U,0x00U,0x20U,0x00U,0x28U,0x02U, + 0x44U,0x21U,0x02U,0x20U,0x01U,0x41U,0xEEU,0x01U,0x3AU,0x00U, + 0x01U,0x20U,0x02U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x01U,0x3AU, + 0x00U,0x06U,0x20U,0x01U,0x41U,0x22U,0x36U,0x00U,0x02U,0x20U, + 0x02U,0x41U,0x7FU,0x47U,0x04U,0x7FU,0x20U,0x01U,0x41U,0x1FU, + 0x3AU,0x00U,0x07U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x00U, + 0x37U,0x03U,0x08U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x08U, + 0x37U,0x03U,0x10U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x10U, + 0x37U,0x03U,0x18U,0x20U,0x01U,0x20U,0x02U,0x29U,0x03U,0x18U, + 0x37U,0x03U,0x20U,0x20U,0x01U,0x41U,0x28U,0x6AU,0x05U,0x20U, + 0x01U,0x41U,0xFBU,0x00U,0x3BU,0x00U,0x07U,0x20U,0x01U,0x41U, + 0x09U,0x6AU,0x0BU,0x05U,0x20U,0x01U,0x41U,0x02U,0x6AU,0x0BU, + 0x22U,0x01U,0x41U,0xE1U,0xE3U,0x03U,0x3BU,0x00U,0x00U,0x20U, + 0x01U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU,0x22U,0x02U,0x6BU, + 0x41U,0x02U,0x6AU,0x21U,0x01U,0x20U,0x00U,0x20U,0x02U,0x20U, + 0x01U,0x10U,0x0FU,0x22U,0x08U,0x3CU,0x00U,0xA1U,0x01U,0x20U, + 0x00U,0x41U,0xE8U,0x00U,0x3AU,0x00U,0x99U,0x01U,0x20U,0x00U, + 0x20U,0x08U,0x42U,0x08U,0x88U,0x3CU,0x00U,0xA0U,0x01U,0x20U, + 0x00U,0x20U,0x08U,0x42U,0x10U,0x88U,0x3CU,0x00U,0x9FU,0x01U, + 0x20U,0x00U,0x20U,0x08U,0x42U,0x18U,0x88U,0x3CU,0x00U,0x9EU, + 0x01U,0x20U,0x00U,0x20U,0x08U,0x42U,0x20U,0x88U,0x3CU,0x00U, + 0x9DU,0x01U,0x20U,0x00U,0x20U,0x08U,0x42U,0x28U,0x88U,0x3CU, + 0x00U,0x9CU,0x01U,0x20U,0x00U,0x20U,0x08U,0x42U,0x30U,0x88U, + 0x3CU,0x00U,0x9BU,0x01U,0x20U,0x00U,0x20U,0x08U,0x42U,0x38U, + 0x88U,0xA7U,0x41U,0x3FU,0x71U,0x41U,0xC0U,0x00U,0x72U,0x3AU, + 0x00U,0x9AU,0x01U,0x41U,0xE5U,0x16U,0x41U,0x0BU,0x20U,0x00U, + 0x41U,0x20U,0x20U,0x02U,0x20U,0x01U,0x10U,0x10U,0x22U,0x08U, + 0x10U,0x0AU,0x1AU,0x20U,0x08U,0x20U,0x01U,0xADU,0x52U,0x04U, + 0x40U,0x41U,0xF1U,0x16U,0x41U,0x2FU,0x42U,0x9AU,0x04U,0x10U, + 0x09U,0x1AU,0x0BU,0x41U,0xA0U,0x17U,0x41U,0x1BU,0x42U,0x9CU, + 0x04U,0x10U,0x03U,0x1AU,0x0BU,0x20U,0x00U,0x41U,0x80U,0x01U, + 0x6AU,0x41U,0x0CU,0x72U,0x41U,0x14U,0x20U,0x00U,0x41U,0xEDU, + 0x09U,0x6AU,0x41U,0x01U,0x10U,0x07U,0x22U,0x0AU,0x42U,0x14U, + 0x52U,0x22U,0x01U,0x20U,0x04U,0x72U,0x04U,0x40U,0x02U,0x40U, + 0x41U,0x93U,0x0AU,0x41U,0x0CU,0x20U,0x01U,0x04U,0x7EU,0x42U, + 0x01U,0x05U,0x41U,0xE0U,0x17U,0x41U,0x12U,0x20U,0x00U,0x41U, + 0x80U,0x01U,0x6AU,0x41U,0x20U,0x41U,0x01U,0x10U,0x06U,0x1AU, + 0x42U,0x7FU,0x0BU,0x20U,0x09U,0x7CU,0x22U,0x09U,0x10U,0x0AU, + 0x1AU,0x20U,0x09U,0x42U,0x01U,0x57U,0x04U,0x40U,0x41U,0xF9U, + 0x09U,0x41U,0x1AU,0x42U,0xB9U,0x04U,0x10U,0x09U,0x1AU,0x0BU, + 0x20U,0x00U,0x20U,0x09U,0x3CU,0x00U,0x20U,0x20U,0x00U,0x41U, + 0x20U,0x6AU,0x41U,0x01U,0x41U,0xB4U,0x09U,0x41U,0x02U,0x10U, + 0x0BU,0x42U,0x01U,0x51U,0x0DU,0x00U,0x41U,0xF9U,0x09U,0x41U, + 0x1AU,0x42U,0xBCU,0x04U,0x10U,0x09U,0x1AU,0x0BU,0x05U,0x41U, + 0xBBU,0x17U,0x41U,0x25U,0x41U,0x00U,0x41U,0x00U,0x41U,0x00U, + 0x10U,0x06U,0x1AU,0x0BU,0x20U,0x0AU,0x42U,0x14U,0x51U,0x04U, + 0x40U,0x02U,0x40U,0x20U,0x00U,0x41U,0xD6U,0x00U,0x3AU,0x00U, + 0x80U,0x01U,0x41U,0x01U,0x21U,0x01U,0x03U,0x40U,0x41U,0xC4U, + 0x84U,0x80U,0x80U,0x78U,0x41U,0x21U,0x10U,0x00U,0x1AU,0x20U, + 0x01U,0x41U,0x20U,0x46U,0x0DU,0x01U,0x20U,0x00U,0x41U,0xD2U, + 0x00U,0x41U,0xC8U,0x00U,0x41U,0xD3U,0x00U,0x20U,0x01U,0x41U, + 0x0CU,0x49U,0x22U,0x02U,0x1BU,0x20U,0x01U,0x41U,0x02U,0x49U, + 0x22U,0x03U,0x1BU,0x3AU,0x00U,0x81U,0x01U,0x20U,0x00U,0x41U, + 0x00U,0x41U,0xFEU,0x01U,0x41U,0xF4U,0x01U,0x20U,0x02U,0x1BU, + 0x20U,0x03U,0x1BU,0x20U,0x01U,0x6AU,0x3AU,0x00U,0x82U,0x01U, + 0x20U,0x00U,0x41U,0x20U,0x6AU,0x41U,0x20U,0x20U,0x00U,0x41U, + 0x80U,0x01U,0x6AU,0x41U,0x20U,0x10U,0x07U,0x42U,0x20U,0x51U, + 0x04U,0x40U,0x02U,0x40U,0x20U,0x00U,0x41U,0xC3U,0x00U,0x3AU, + 0x00U,0x20U,0x20U,0x00U,0x41U,0x00U,0x3AU,0x00U,0x50U,0x20U, + 0x00U,0x20U,0x00U,0x2FU,0x00U,0x81U,0x01U,0x3BU,0x00U,0x21U, + 0x20U,0x00U,0x41U,0xD0U,0x00U,0x6AU,0x41U,0x01U,0x20U,0x00U, + 0x41U,0x20U,0x6AU,0x41U,0x20U,0x10U,0x07U,0x42U,0x01U,0x51U, + 0x04U,0x40U,0x02U,0x40U,0x20U,0x00U,0x2DU,0x00U,0x50U,0x22U, + 0x02U,0x41U,0x01U,0x4BU,0x04U,0x40U,0x20U,0x00U,0x20U,0x02U, + 0x41U,0x01U,0x6BU,0x3AU,0x00U,0x50U,0x20U,0x00U,0x41U,0xD0U, + 0x00U,0x6AU,0x41U,0x01U,0x20U,0x00U,0x41U,0x20U,0x6AU,0x41U, + 0x20U,0x10U,0x0BU,0x42U,0x01U,0x51U,0x0DU,0x01U,0x41U,0xF9U, + 0x09U,0x41U,0x1AU,0x42U,0xDCU,0x04U,0x10U,0x09U,0x1AU,0x05U, + 0x41U,0x00U,0x41U,0x00U,0x20U,0x00U,0x41U,0x20U,0x6AU,0x41U, + 0x20U,0x10U,0x0BU,0x50U,0x0DU,0x01U,0x41U,0xF9U,0x09U,0x41U, + 0x1AU,0x42U,0xD7U,0x04U,0x10U,0x09U,0x1AU,0x0BU,0x0BU,0x0BU, + 0x41U,0x00U,0x41U,0x00U,0x20U,0x00U,0x41U,0x80U,0x01U,0x6AU, + 0x41U,0x20U,0x10U,0x0BU,0x50U,0x0DU,0x00U,0x41U,0xF9U,0x09U, + 0x41U,0x1AU,0x42U,0xE1U,0x04U,0x10U,0x09U,0x1AU,0x0BU,0x0BU, + 0x20U,0x01U,0x41U,0x01U,0x6AU,0x21U,0x01U,0x0CU,0x00U,0x0BU, + 0x00U,0x0BU,0x0BU,0x02U,0x40U,0x20U,0x04U,0x04U,0x40U,0x41U, + 0x00U,0x41U,0x00U,0x20U,0x00U,0x41U,0xEDU,0x09U,0x6AU,0x41U, + 0x01U,0x10U,0x0BU,0x50U,0x45U,0x04U,0x40U,0x41U,0xF9U,0x09U, + 0x41U,0x1AU,0x42U,0xEAU,0x04U,0x10U,0x09U,0x1AU,0x0BU,0x41U, + 0x00U,0x41U,0x00U,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x41U, + 0x0CU,0x72U,0x41U,0x14U,0x10U,0x0BU,0x50U,0x0DU,0x01U,0x41U, + 0xF9U,0x09U,0x41U,0x1AU,0x42U,0xEDU,0x04U,0x10U,0x09U,0x1AU, + 0x05U,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU,0x41U,0x14U,0x20U, + 0x00U,0x41U,0xEDU,0x09U,0x6AU,0x41U,0x01U,0x10U,0x0BU,0x42U, + 0x14U,0x52U,0x04U,0x40U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U, + 0xF4U,0x04U,0x10U,0x09U,0x1AU,0x0BU,0x20U,0x00U,0x2DU,0x00U, + 0xEDU,0x09U,0x41U,0x01U,0x20U,0x00U,0x41U,0xB0U,0x09U,0x6AU, + 0x41U,0x0CU,0x72U,0x41U,0x14U,0x10U,0x0BU,0x42U,0x14U,0x51U, + 0x0DU,0x01U,0x41U,0xF9U,0x09U,0x41U,0x1AU,0x42U,0xF7U,0x04U, + 0x10U,0x09U,0x1AU,0x0BU,0x0BU,0x41U,0xF2U,0x17U,0x41U,0x22U, + 0x42U,0xFAU,0x04U,0x10U,0x03U,0x1AU,0x0BU,0x41U,0x94U,0x18U, + 0x41U,0x22U,0x42U,0xFEU,0x04U,0x10U,0x09U,0x1AU,0x20U,0x00U, + 0x41U,0xB0U,0x0AU,0x6AU,0x24U,0x00U,0x20U,0x09U,0x0BU,0x0BU, + 0xC3U,0x10U,0x02U,0x00U,0x41U,0x80U,0x08U,0x0BU,0x14U,0xB5U, 0xF7U,0x62U,0x79U,0x8AU,0x53U,0xD5U,0x43U,0xA0U,0x14U,0xCAU, 0xF8U,0xB2U,0x97U,0xCFU,0xF8U,0xF2U,0xF9U,0x37U,0xE8U,0x00U, - 0x41U,0x94U,0x08U,0x0BU,0x8FU,0x10U,0x47U,0x6FU,0x76U,0x65U, + 0x41U,0x94U,0x08U,0x0BU,0xA1U,0x10U,0x47U,0x6FU,0x76U,0x65U, 0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U,0x50U,0x61U, 0x73U,0x73U,0x69U,0x6EU,0x67U,0x20U,0x6EU,0x6FU,0x6EU,0x2DU, 0x49U,0x6EU,0x76U,0x6FU,0x6BU,0x65U,0x20U,0x74U,0x78U,0x6EU, @@ -777,13 +791,15 @@ static const std::vector GovernanceHook = 0x6FU,0x75U,0x73U,0x5FU,0x70U,0x72U,0x65U,0x73U,0x65U,0x6EU, 0x74U,0x20U,0x26U,0x26U,0x20U,0x21U,0x74U,0x6FU,0x70U,0x69U, 0x63U,0x5FU,0x64U,0x61U,0x74U,0x61U,0x5FU,0x7AU,0x65U,0x72U, - 0x6FU,0x00U,0x47U,0x6FU,0x76U,0x65U,0x72U,0x6EU,0x61U,0x6EU, - 0x63U,0x65U,0x3AU,0x20U,0x41U,0x63U,0x74U,0x69U,0x6FU,0x6EU, - 0x20U,0x6DU,0x65U,0x6DU,0x62U,0x65U,0x72U,0x20U,0x63U,0x68U, - 0x61U,0x6EU,0x67U,0x65U,0x2EU,0x00U,0x47U,0x6FU,0x76U,0x65U, - 0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U,0x49U,0x6EU, - 0x74U,0x65U,0x72U,0x6EU,0x61U,0x6CU,0x20U,0x6CU,0x6FU,0x67U, - 0x69U,0x63U,0x20U,0x65U,0x72U,0x72U,0x6FU,0x72U,0x2EU + 0x6FU,0x00U,0x50U,0x72U,0x65U,0x76U,0x69U,0x6FU,0x75U,0x73U, + 0x20U,0x70U,0x72U,0x65U,0x73U,0x65U,0x6EU,0x74U,0x3AU,0x00U, + 0x47U,0x6FU,0x76U,0x65U,0x72U,0x6EU,0x61U,0x6EU,0x63U,0x65U, + 0x3AU,0x20U,0x41U,0x63U,0x74U,0x69U,0x6FU,0x6EU,0x20U,0x6DU, + 0x65U,0x6DU,0x62U,0x65U,0x72U,0x20U,0x63U,0x68U,0x61U,0x6EU, + 0x67U,0x65U,0x2EU,0x00U,0x47U,0x6FU,0x76U,0x65U,0x72U,0x6EU, + 0x61U,0x6EU,0x63U,0x65U,0x3AU,0x20U,0x49U,0x6EU,0x74U,0x65U, + 0x72U,0x6EU,0x61U,0x6CU,0x20U,0x6CU,0x6FU,0x67U,0x69U,0x63U, + 0x20U,0x65U,0x72U,0x72U,0x6FU,0x72U,0x2EU }; static const std::vector RewardHook = diff --git a/src/ripple/app/tx/impl/Change.cpp b/src/ripple/app/tx/impl/Change.cpp index 0976eb5f4..799ef472f 100644 --- a/src/ripple/app/tx/impl/Change.cpp +++ b/src/ripple/app/tx/impl/Change.cpp @@ -283,14 +283,14 @@ Change::preCompute() inline std::pair< - std::map, - std::map, std::vector>> + std::vector>, + std::vector, std::vector>>> normalizeXahauGenesis( - std::map const& entries, - std::map, std::vector> params, + std::vector> const& entries, + std::vector, std::vector>> params, beast::Journal const& j) { - std::map amounts; + std::vector> amounts; uint8_t mc = 0; for (auto const& [rn, x]: entries) { @@ -321,14 +321,14 @@ normalizeXahauGenesis( std::string& idStr = parsed->first; AccountID& id = parsed->second; - amounts.emplace(idStr, x); + amounts.emplace_back(idStr, x); JLOG(j.warn()) << "featureXahauGenesis: " << "initial validator: " << rn << " =>accid: " << idStr; // initial member enumeration - params.emplace( + params.emplace_back( std::vector{'I', 'S', mc++}, std::vector(id.data(), id.data() + 20)); continue; @@ -339,7 +339,7 @@ normalizeXahauGenesis( } // initial member count - params.emplace( + params.emplace_back( std::vector{'I', 'M', 'C'}, std::vector{mc}); @@ -365,9 +365,10 @@ Change::activateXahauGenesis() std::tuple< uint256, // hook on std::vector, // hook code - std::map< - std::vector, // param name - std::vector>>> // param value + std::vector< + std::pair< + std::vector, // param name + std::vector>>>> // param value genesis_hooks = { { diff --git a/src/ripple/app/tx/impl/Transactor.cpp b/src/ripple/app/tx/impl/Transactor.cpp index fbbee118f..ca5e8f84e 100644 --- a/src/ripple/app/tx/impl/Transactor.cpp +++ b/src/ripple/app/tx/impl/Transactor.cpp @@ -272,7 +272,14 @@ Transactor::calculateBaseFee(ReadView const& view, STTx const& tx) // The computation has two parts: // * The base fee, which is the same for most transactions. // * The additional cost of each multisignature on the transaction. - XRPAmount const baseFee = view.fees().base; + XRPAmount baseFee = view.fees().base; + + if (tx.getFieldU16(sfTransactionType) == ttIMPORT) + { + XRPAmount const importFee = baseFee * 10; + if (importFee > baseFee) + baseFee = importFee; + } // Each signer adds one more baseFee to the minimum required fee // for the transaction. diff --git a/src/ripple/app/tx/impl/XahauGenesis.h b/src/ripple/app/tx/impl/XahauGenesis.h index a43c08355..12675fb59 100644 --- a/src/ripple/app/tx/impl/XahauGenesis.h +++ b/src/ripple/app/tx/impl/XahauGenesis.h @@ -10,7 +10,7 @@ namespace XahauGenesis constexpr XRPAmount ExchangeAmount { 2'000'000 * DROPS_PER_XRP }; inline - std::map const + std::vector> const Distribution { {"rMYm3TY5D3rXYVAz6Zr2PDqEcjsTYbNiAT", InfraAmount}, @@ -30,8 +30,7 @@ namespace XahauGenesis // if the ttEnableAmendment has an optional flag (that cannot be added in production) // then whatever is in this array is used inline - std::map - TestDistribution; + std::vector> TestDistribution; // For the Governance Hook: HookOn is set to ttINVOKE only @@ -40,7 +39,7 @@ namespace XahauGenesis GovernanceHookOn("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFBFFFFF"); inline - std::map, std::vector> const + std::vector, std::vector>> const GovernanceParameters { // 1.003274 -xfl-> 6089869970204910592 -le-> 0x00E461EE78908354 diff --git a/src/test/app/XahauGenesis_test.cpp b/src/test/app/XahauGenesis_test.cpp index 104255330..011946d10 100644 --- a/src/test/app/XahauGenesis_test.cpp +++ b/src/test/app/XahauGenesis_test.cpp @@ -160,7 +160,8 @@ struct XahauGenesis_test : public beast::unit_test::suite // check distribution amounts and hook parameters { uint8_t member_count = 0; - std::map, std::vector> params = XahauGenesis::GovernanceParameters; + std::vector, std::vector>> params = + XahauGenesis::GovernanceParameters; for (auto const& [rn, x]: XahauGenesis::Distribution) { const char first = rn.c_str()[0]; @@ -178,7 +179,7 @@ struct XahauGenesis_test : public beast::unit_test::suite auto bal = acc->getFieldAmount(sfBalance); BEAST_EXPECT(bal == STAmount(x)); - params.emplace( + params.emplace_back( std::vector{'I', 'S', member_count++}, std::vector(id.data(), id.data() + 20)); continue; @@ -195,13 +196,13 @@ struct XahauGenesis_test : public beast::unit_test::suite BEAST_EXPECT(bal == STAmount(x)); // initial member enumeration - params.emplace( + params.emplace_back( std::vector{'I', 'S', member_count++}, std::vector(id.data(), id.data() + 20)); } // initial member count - params.emplace( + params.emplace_back( std::vector{'I', 'M', 'C'}, std::vector{member_count}); @@ -212,6 +213,7 @@ struct XahauGenesis_test : public beast::unit_test::suite // these should be recorded in the same order std::set> keys_used; + int counter = 0; for (auto& param : leParams) { auto key = param.getFieldVL(sfHookParameterName); @@ -220,14 +222,14 @@ struct XahauGenesis_test : public beast::unit_test::suite // no duplicates allowed BEAST_EXPECT(keys_used.find(key) == keys_used.end()); - // should be in our precomputed params - BEAST_EXPECT(params.find(key) != params.end()); + BEAST_EXPECT(counter < leParams.size()); - // value should match - BEAST_EXPECT(params[key] == val); + BEAST_EXPECT(params[counter].first == key); + BEAST_EXPECT(params[counter].second == val); // add key to used set keys_used.emplace(key); + counter++; } } @@ -314,7 +316,7 @@ struct XahauGenesis_test : public beast::unit_test::suite for (auto& m: members) { std::string acc = toBase58(m); - XahauGenesis::TestDistribution[acc] = XRPAmount(10000000000); + XahauGenesis::TestDistribution.emplace_back(acc, XRPAmount(10000000000)); } activate(env, true, true, true); @@ -357,11 +359,31 @@ struct XahauGenesis_test : public beast::unit_test::suite auto const david = Account("david"); auto const edward = Account("edward"); - env.fund(XRP(10000), alice, bob, carol, david, edward); + auto const m6 = Account("m6"); + auto const m7 = Account("m7"); + auto const m8 = Account("m8"); + auto const m9 = Account("m9"); + auto const m10 = Account("m10"); + auto const m11 = Account("m11"); + auto const m12 = Account("m12"); + auto const m13 = Account("m13"); + auto const m14 = Account("m14"); + auto const m15 = Account("m15"); + auto const m16 = Account("m16"); + auto const m17 = Account("m17"); + auto const m18 = Account("m18"); + auto const m19 = Account("m19"); + auto const m20 = Account("m20"); + + env.fund(XRP(10000), alice, bob, carol, david, edward, + m6, m7, m8, m9, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20); env.close(); - setupGov(env, {alice.id(), bob.id(), carol.id(), david.id(), edward.id()}); + std::vector initial_members {alice, bob, carol, david, edward}; + std::vector initial_members_ids { alice.id(), bob.id(), carol.id(), david.id(), edward.id() }; + + setupGov(env, initial_members_ids); auto vote = [&]( Account const& acc, @@ -436,11 +458,42 @@ struct XahauGenesis_test : public beast::unit_test::suite if (shouldFail) actioned = false; - uint8_t const key[32] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, topic1, topic2}; + bool isZero = true; + for (auto& x: vote_data) + if (x != 0) + { + isZero = false; + break; + } + + bool isOldDataZero = true; + for (auto& x : old_data) + if (x != 0) + { + isOldDataZero = false; + break; + } + + uint8_t const key[32] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + topic1 == 'S' ? 0 : topic1, topic2}; // check actioning prior to vote { - auto entry = env.le(keylet::hookState(env.master.id(), uint256::fromVoid(key), beast::zero)); - BEAST_EXPECT((old_data.empty() && !entry) || + auto entry = env.le(keylet::hookState(env.master.id(), uint256::fromVoid(key), beast::zero)); + std::cout + << "topic vote precheck: \n" + << "\tacc: " << acc.human() << " shouldAction: " << (actioned ? "true": "false") + << "\tshouldFail: " << (shouldFail ? "true": "false") << "\n" + << "\ttopic: " << topic1 << "," << (topic2 < 48 ? topic2 + '1' : topic2) << "\n" + << "\tisOldDataZero: " << (isOldDataZero ? "true" : "false") << "\n" + << "\tisVoteDataZero: " << (isZero ? "true" : "false") << "\n" + << "\told_data: " << strHex(old_data) << "\n" + << "\tlgr_data: " << (!entry ? "doesn't exist" : strHex(entry->getFieldVL(sfHookStateData))) << "\n" + << "\tnew_data: " << strHex(vote_data) << "\n" + << "\t(isOldDataZero && !entry): " << (isOldDataZero && !entry ? "true" : "false") << "\n" + << "\t(entry && entry->getFieldVL(sfHookStateData) == old_data): " << + (entry && entry->getFieldVL(sfHookStateData) == old_data ? "true" : "false") << "\n"; + + BEAST_EXPECT((isOldDataZero && !entry) || (entry && entry->getFieldVL(sfHookStateData) == old_data)); } @@ -462,23 +515,15 @@ struct XahauGenesis_test : public beast::unit_test::suite } // check actioning + if (!shouldFail) { // if the vote count isn't high enough it will be hte old value if it's high enough it will be the // new value auto entry = env.le(keylet::hookState(env.master.id(), uint256::fromVoid(key), beast::zero)); - bool isZero = true; - for (auto& x: vote_data) - if (x != 0) + if (!actioned && isOldDataZero) { - isZero = false; - break; - } - - - if (!actioned && old_data.empty()) - { - BEAST_EXPECT(!entry); + BEAST_EXPECT(!entry || entry->getFieldVL(sfHookStateData) == old_data); return; } @@ -487,17 +532,33 @@ struct XahauGenesis_test : public beast::unit_test::suite if (isZero) BEAST_EXPECT(!entry); else + { + std::cout << "new data: " << strHex(vote_data) << "\n"; + std::cout << "lgr data: " << + (!entry ? "" : strHex(entry->getFieldVL(sfHookStateData))) << "\n"; BEAST_EXPECT(!!entry && entry->getFieldVL(sfHookStateData) == vote_data); + } } else { - std::cout << "old data: " << strHex(entry->getFieldVL(sfHookStateData)) << "\n"; - BEAST_EXPECT(entry->getFieldVL(sfHookStateData) == old_data); + if (!!entry) + { + std::cout << "old data: " << strHex(entry->getFieldVL(sfHookStateData)) << "\n"; + } + BEAST_EXPECT(!!entry && entry->getFieldVL(sfHookStateData) == old_data); } } }; - + auto vecFromAcc = [](Account const& acc) -> std::vector + { + uint8_t const* data = acc.id().data(); + std::vector ret(data, data+20); + std::cout << "ret: `" << strHex(ret) << "`, size: " << ret.size() << "\n"; + return ret; + }; + + // 100% vote for a different reward rate { // this will be the new reward rate @@ -524,19 +585,19 @@ struct XahauGenesis_test : public beast::unit_test::suite uint8_t const member_count_key[32] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,'M','C'}; std::vector const null_acc_id {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; + + // four of the 5 vote to remove alice { + std::vector const null_acc_id {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; - std::vector id; - id.reserve(20); - memcpy(id.data(), alice.id().data(), 20); + std::vector id = vecFromAcc(alice); doL1Vote(bob, 'S', 0, null_acc_id, id, false); doL1Vote(carol, 'S', 0, null_acc_id, id, false); doL1Vote(david, 'S', 0, null_acc_id, id, false); doL1Vote(edward, 'S', 0, null_acc_id, id, true); } - // check the membercount is now 4 { auto entry = env.le(keylet::hookState(env.master.id(), @@ -548,14 +609,17 @@ struct XahauGenesis_test : public beast::unit_test::suite // continue to remove members (david) { - std::vector id; - id.reserve(20); - memcpy(id.data(), david.id().data(), 20); + std::vector id = vecFromAcc(david); doL1Vote(bob, 'S', 3, null_acc_id, id, false); doL1Vote(carol, 'S', 3, null_acc_id, id, false); doL1Vote(edward, 'S', 3, null_acc_id, id, true); } + { + // RH TODO: check all david's previous votes were correctly removed + // check expected hookstate count + } + // check the membercount is now 3 { auto entry = env.le(keylet::hookState(env.master.id(), @@ -567,9 +631,7 @@ struct XahauGenesis_test : public beast::unit_test::suite // continue to remove members (carol) { - std::vector id; - id.reserve(20); - memcpy(id.data(), carol.id().data(), 20); + std::vector id = vecFromAcc(carol); doL1Vote(bob, 'S', 2, null_acc_id, id, false); doL1Vote(edward, 'S', 2, null_acc_id, id, true); } @@ -586,10 +648,8 @@ struct XahauGenesis_test : public beast::unit_test::suite // member count can't fall below 2 // try to vote out edward using 2/2 votes { - std::vector id; - id.reserve(20); - memcpy(id.data(), edward.id().data(), 20); - doL1Vote(bob, 'S', 4, null_acc_id, id, true); + std::vector id = vecFromAcc(edward); + doL1Vote(bob, 'S', 4, null_acc_id, id, false); doL1Vote(edward, 'S', 4, null_acc_id, id, false, true); } @@ -604,9 +664,7 @@ struct XahauGenesis_test : public beast::unit_test::suite // try to remove bob using 1/2 votes { - std::vector id; - id.reserve(20); - memcpy(id.data(), bob.id().data(), 20); + std::vector id = vecFromAcc(bob); doL1Vote(bob, 'S', 1, null_acc_id, id, false, false); } @@ -619,6 +677,52 @@ struct XahauGenesis_test : public beast::unit_test::suite BEAST_REQUIRE(!!entry); BEAST_EXPECT(entry->getFieldVL(sfHookStateData) == expected_data); } + + // replace edward with alice + { + std::vector id = vecFromAcc(alice); + doL1Vote(bob, 'S', 4, null_acc_id, id, false); + doL1Vote(edward, 'S', 4, null_acc_id, id, true); + // subsequent edward vote should fail because he's not a member anymore + doL1Vote(edward, 'S', 4, null_acc_id, id, false, true); + } + + // check the membercount is now 2 + { + auto entry = env.le(keylet::hookState(env.master.id(), + uint256::fromVoid(member_count_key), beast::zero)); + std::vector const expected_data {0x02U}; + BEAST_REQUIRE(!!entry); + BEAST_EXPECT(entry->getFieldVL(sfHookStateData) == expected_data); + } + + auto doSeatVote = [&](uint8_t seat_no, uint8_t final_count, + AccountID const& candidate, AccountID const& previous, + std::vector const& voters) + { + std::vector previd { 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0} ; + memcpy(previd.data(), previous.data(), 20); + + std::vector id { 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0} ; + memcpy(id.data(), candidate.data(), 20); + + int count = voters.size(); + for (Account const* voter : voters) + doL1Vote(*voter, 'S', seat_no, id, previd, --count <= 0); + + { + auto entry = env.le(keylet::hookState(env.master.id(), + uint256::fromVoid(member_count_key), beast::zero)); + std::vector const expected_data {final_count}; + BEAST_REQUIRE(!!entry); + BEAST_EXPECT(entry->getFieldVL(sfHookStateData) == expected_data); + } + }; + + std::cout << "Put edward back into seat 0\n"; + + // put edward into seat 0 previously occupied by alice + doSeatVote(0, 3, edward.id(), noAccount(), {&alice, &bob}); }