From c14d4eb26969971dba8869338a75e59f28cb5831 Mon Sep 17 00:00:00 2001 From: Karim Taam Date: Mon, 4 Nov 2024 14:00:04 +0100 Subject: [PATCH 1/3] fix stateroot and add test for devnet 7 Signed-off-by: Karim Taam --- .../ethereum/trie/verkle/node/StemNode.java | 2 +- .../ethereum/trie/verkle/GenesisTest.java | 5 +- src/test/resources/gen-devnet-7.csv | 796 ++++++++++++++++++ 3 files changed, 801 insertions(+), 2 deletions(-) create mode 100644 src/test/resources/gen-devnet-7.csv diff --git a/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/StemNode.java b/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/StemNode.java index f8c2d3ac..14b4af0d 100644 --- a/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/StemNode.java +++ b/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/StemNode.java @@ -225,7 +225,7 @@ public StemNode replaceLocation(Bytes newLocation) { Optional.of(newLocation), stem, hash, - (Optional) previous, + Optional.empty(), commitment, leftHash, leftCommitment, diff --git a/src/test/java/org/hyperledger/besu/ethereum/trie/verkle/GenesisTest.java b/src/test/java/org/hyperledger/besu/ethereum/trie/verkle/GenesisTest.java index c790add0..340efc56 100644 --- a/src/test/java/org/hyperledger/besu/ethereum/trie/verkle/GenesisTest.java +++ b/src/test/java/org/hyperledger/besu/ethereum/trie/verkle/GenesisTest.java @@ -46,7 +46,10 @@ private static Stream provideGenesisAndStateRootExpected() { "0x382960711d9ccf58b9db20122e2253eb9bfa99d513f8c9d4e85b55971721f4de"), Arguments.of( "/gen-devnet-6.csv", - "0x1fbf85345a3cbba9a6d44f991b721e55620a22397c2a93ee8d5011136ac300ee")); + "0x1fbf85345a3cbba9a6d44f991b721e55620a22397c2a93ee8d5011136ac300ee"), + Arguments.of( + "/gen-devnet-7.csv", + "0x514a0e5715b0b6c635ac140a5f25b8665af36cf31836344d27d9645fc57eab76")); } @ParameterizedTest diff --git a/src/test/resources/gen-devnet-7.csv b/src/test/resources/gen-devnet-7.csv new file mode 100644 index 00000000..43b07254 --- /dev/null +++ b/src/test/resources/gen-devnet-7.csv @@ -0,0 +1,796 @@ +0x472ff986f68a631d48c2906c31ae447beb63b54da5070293e30dc5063572af01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x472ff986f68a631d48c2906c31ae447beb63b54da5070293e30dc5063572af00,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0xd2709e0b925889b98790488100ad4785ca0a559ef4acea195184879e4df76a01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd2709e0b925889b98790488100ad4785ca0a559ef4acea195184879e4df76a00,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eab,0x005b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eaa,0x008252602781526020018061182b6027913960400191505060405180910390fd +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ead,0x01ba565b6040805160a080825281018990529081906020820190820160608301 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eac,0x10e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eaf,0x19ffffffffffffffffffffffffffffffffffffffffffffffffe0169091018781 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eae,0x006080840160c085018e8e80828437600083820152601f017fffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eb1,0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eb0,0x000386528c815260200190508c8c808284376000838201819052601f9091017f +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ea3,0x0700000000000000815260040180806020018281038252602681526020018061 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ea2,0x0170576040517f08c379a0000000000000000000000000000000000000000000 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ea5,0x01cd576040517f08c379a0000000000000000000000000000000000000000000 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ea4,0x0218526026913960400191505060405180910390fd5b633b9aca003406156104 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ea7,0x0217d26033913960400191505060405180910390fd5b633b9aca00340467ffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ea6,0x0700000000000000815260040180806020018281038252603381526020018061 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ea9,0x1200000000000000000000000000000000000081526004018080602001828103 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ea8,0x06ffffffffffff811115610535576040517f08c379a000000000000000000000 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ebb,0x00505050505050505060405180910390a1600060028a8a600060801b60405160 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eba,0x0080516001836020036101000a031916815260200191505b509d505050505050 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ebd,0x0b000000000000000000000090941691909301908152604080517fffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ebc,0x012001808484808284377fffffffffffffffffffffffffffffffff0000000000 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ebf,0x008152601090920190819052815191955093508392506020850191508083835b +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ebe,0x1bfffffffffffffffffffffffffffffffffffffffffffffffffffff081840301 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ec1,0x0effffffffffffffffffffffffffe090920191602091820191016107bf565b51 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ec0,0x00602083106107fc57805182527fffffffffffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eb3,0x009084905b83811015610648578181015183820152602001610630565b505050 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eb2,0x01e01690920188810386528c5181528c51602091820193918e01925090819084 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eb5,0x00031916815260200191505b5086810383528881526020018989808284376000 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eb4,0x0050905090810190601f1680156106755780820380516001836020036101000a +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eb7,0x0dffffffffffffffffffffffffe0169092018881038452895181528951602091 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9500,0x00610fa0578260008260208110610f9157fe5b0155506110ac95505050505050 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eb6,0x00838201819052601f9091017fffffffffffffffffffffffffffffffffffffff +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9501,0x00565b600260008260208110610faf57fe5b0154846040516020018083815260 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eb9,0x00526020016106d7565b50505050905090810190601f16801561071c57808203 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9502,0x0120018281526020019250505060405160208183030381529060405260405180 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eb8,0x00820193918b019250908190849084905b838110156106ef5781810151838201 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9503,0x0082805190602001908083835b6020831061102557805182527fffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e8b,0x015b57600080fd5b919390929091602081019035640100000000811115610179 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9504,0x1affffffffffffffffffffffffffffffffffffffffffffffffffe09092019160 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e8a,0x010080fd5b803590602001918460018302840111640100000000831117156101 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9505,0x01209182019101610fe8565b51815160209384036101000a7fffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e8d,0x008460018302840111640100000000831117156101ad57600080fd5b91935091 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9506,0x19ffffffffffffffffffffffffffffffffffffffffffffffffff018019909216 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e8c,0x0057600080fd5b82018360208201111561018b57600080fd5b80359060200191 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9507,0x0091161790526040519190930194509192505080830381855afa158015611082 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e8f,0x0140805160208082528351818301528351919283929083019185019080838360 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9508,0x00573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e8e,0x005035610304565b005b3480156101c657600080fd5b506101cf6110b5565b60 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9509,0x005b50519250600282049150600101610f6e565b50fe5b50505050505050565b +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e91,0x005090810190601f1680156102365780820380516001836020036101000a0319 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c950a,0x0060606110c26020546114ba565b905090565b6020546000908190815b602081 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e90,0x01005b838110156102095781810151838201526020016101f1565b5050505090 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c950b,0x0010156112f05781600116600114156111e6576002600082602081106110f557 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e83,0x00101561006757600080fd5b50357fffffffff00000000000000000000000000 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c950c,0x00fe5b0154846040516020018083815260200182815260200192505050604051 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e82,0x00575b600080fd5b34801561005057600080fd5b506100906004803603602081 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c950d,0x006020818303038152906040526040518082805190602001908083835b602083 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e85,0x009081900360200190f35b6101b8600480360360808110156100ba57600080fd +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c950e,0x001061116b57805182527fffffffffffffffffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e84,0x0f0000000000000000000000000000001661026b565b60408051911515825251 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c950f,0x0bffffffffffffffffffffe0909201916020918201910161112e565b51815160 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e87,0x006020820111156100e757600080fd5b80359060200191846001830284011164 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9510,0x01209384036101000a7fffffffffffffffffffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e86,0x005b8101906020810181356401000000008111156100d557600080fd5b820183 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9511,0x0affffffffffffffffffff018019909216911617905260405191909301945091 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e89,0x05010000000081111561012757600080fd5b8201836020820111156101395760 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9512,0x0092505080830381855afa1580156111c8573d6000803e3d6000fd5b50505060 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e88,0x0501000000008311171561010957600080fd5b91939092909160208101903564 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9513,0x0140513d60208110156111dd57600080fd5b505192506112e2565b6002836021 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e9b,0x012001806118056026913960400191505060405180910390fd5b602084146103 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9514,0x0083602081106111f657fe5b0154604051602001808381526020018281526020 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e9a,0x0b00000000000000000000008152600401808060200182810382526026815260 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9515,0x0001925050506040516020818303038152906040526040518082805190602001 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e9d,0x0700000000000000815260040180806020018281038252603681526020018061 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9516,0x00908083835b6020831061126b57805182527fffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e9c,0x01b6576040517f08c379a0000000000000000000000000000000000000000000 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9517,0x13ffffffffffffffffffffffffffffffffffffe0909201916020918201910161 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e9f,0x00517f08c379a000000000000000000000000000000000000000000000000000 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9518,0x02122e565b51815160209384036101000a7fffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e9e,0x02179c6036913960400191505060405180910390fd5b6060821461040f576040 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9519,0x12ffffffffffffffffffffffffffffffffffff01801990921691161790526040 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ea1,0x00913960400191505060405180910390fd5b670de0b6b3a76400003410156104 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c951a,0x00519190930194509192505080830381855afa1580156112c8573d6000803e3d +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ea0,0x0300000081526004018080602001828103825260298152602001806118786029 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c951b,0x006000fd5b5050506040513d60208110156112dd57600080fd5b505192505b60 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e93,0x010080fd5b506102596110c7565b60408051918252519081900360200190f35b +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c951c,0x0102820491506001016110d1565b506002826112ff6020546114ba565b600060 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e92,0x0016815260200191505b509250505060405180910390f35b3480156102505760 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c951d,0x01401b6040516020018084815260200183805190602001908083835b60208310 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e95,0x040000000082167f01ffc9a70000000000000000000000000000000000000000 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c951e,0x0061135a57805182527fffffffffffffffffffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e94,0x0060007fffffffff000000000000000000000000000000000000000000000000 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c951f,0x0affffffffffffffffffe0909201916020918201910161131d565b5181516020 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e97,0x11000000000000000000000000000000000082167f8564090700000000000000 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9520,0x009384036101000a7fffffffffffffffffffffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e96,0x08000000000000000014806102fe57507fffffffff0000000000000000000000 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9521,0x09ffffffffffffffffff01801990921691161790527fffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e99,0x00861461035d576040517f08c379a00000000000000000000000000000000000 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9522,0x16ffffffffffffffffffffffffffff0000000000000000959095169201918252 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e98,0x15000000000000000000000000000000000000000000145b92915050565b6030 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9523,0x0050604080518083037fffffffffffffffffffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e81,0x006322895118146100a4578063621fd130146101ba578063c5f2892f14610244 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e80,0x0060806040526004361061003f5760003560e01c806301ffc9a7146100445780 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eeb,0x00516020818303038152906040526040518082805190602001908083835b6020 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eea,0x00191667ffffffffffffffff1916815260180182815260200193505050506040 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eed,0x0cffffffffffffffffffffffe09092019160209182019101610d11565b518151 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eec,0x008310610d4e57805182527fffffffffffffffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eef,0x0bffffffffffffffffffffff0180199092169116179052604051919093019450 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eee,0x0060209384036101000a7fffffffffffffffffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ef1,0x006040513d6020811015610dc057600080fd5b50516040805160208181019490 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ef0,0x009192505080830381855afa158015610dab573d6000803e3d6000fd5b505050 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ee3,0x0affffffffffffffffffff018019909216911617905260405191909301945091 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ee2,0x01209384036101000a7fffffffffffffffffffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ee5,0x0140513d6020811015610c4b57600080fd5b5051604051865160029188916000 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ee4,0x0092505080830381855afa158015610c36573d6000803e3d6000fd5b50505060 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ee7,0x007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ee6,0x009188916020918201918291908601908083835b60208310610ca95780518252 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ee9,0x008251168184511680821785525050505050509050018367ffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ee8,0x02ffe09092019160209182019101610c6c565b6001836020036101000a038019 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894efb,0x0060548152602001806117486054913960600191505060405180910390fd5b60 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894efa,0x1000000000000000000000000000000000815260040180806020018281038252 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894efd,0x1100000000000000000000000000000000008152600401808060200182810382 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894efc,0x01205463ffffffff11610f60576040517f08c379a00000000000000000000000 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eff,0x00602080546001019081905560005b60208110156110a9578160011660011415 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894efe,0x005260218152602001806117276021913960400191505060405180910390fd5b +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e01,0x2034f79e0e33b0ae6bef948532021baceb116adf2616478703bec6b17329f1cc +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e00,0x00000000000018d6000000000000000000000000000000000000000000000000 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ef3,0x00909182918401908083835b60208310610e3457805182527fffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ef2,0x0094528082019290925280518083038201815260609092019081905281519192 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ef5,0x009182019101610df7565b51815160209384036101000a7fffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ef4,0x19ffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ef7,0x00161790526040519190930194509192505080830381855afa158015610e9157 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ef6,0x18ffffffffffffffffffffffffffffffffffffffffffffffff01801990921691 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ef9,0x0050519050858114610f02576040517f08c379a0000000000000000000000000 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ef8,0x003d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ecb,0x11ffffffffffffffffffffffffffffffffff0180199092169116179052604051 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eca,0x01bb565b51815160209384036101000a7fffffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ecd,0x0100fd5b5050506040513d602081101561096a57600080fd5b5051600261097b +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ecc,0x009190930194509192505080830381855afa158015610955573d6000803e3d60 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ecf,0x0083525050604080518083038152602092830191829052805190945090925082 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ece,0x00896040818d6116fe565b604051600090602001808484808284379190910192 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ed1,0x16ffffffffffffffffffffffffffffffffffffffffffe0909201916020918201 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ed0,0x00918401908083835b602083106109f457805182527fffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ec3,0x0dffffffffffffffffffffffffff018019909216911617905260405191909301 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ec2,0x00815160209384036101000a7fffffffffffffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ec5,0x0050506040513d602081101561086e57600080fd5b5051905060006002806108 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ec4,0x0094509192505080830381855afa158015610859573d6000803e3d6000fd5b50 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ec7,0x0092505050604051602081830303815290604052604051808280519060200190 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ec6,0x01846040848a8c6116fe565b6040516020018083838082843780830192505050 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ec9,0x12ffffffffffffffffffffffffffffffffffe090920191602091820191016108 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ec8,0x008083835b602083106108f857805182527fffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894edb,0x03ffffff01801990921691161790526040519190930194509192505080830381 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894eda,0x000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894edd,0x0015610b4c57600080fd5b505160408051602081018581529293506000926002 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894edc,0x00855afa158015610b37573d6000803e3d6000fd5b5050506040513d60208110 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894edf,0x006020818303038152906040526040518082805190602001908083835b602083 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ede,0x0092839287928f928f9201838380828437808301925050509350505050604051 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ee1,0x0bffffffffffffffffffffe09092019160209182019101610b9c565b51815160 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ee0,0x0010610bd957805182527fffffffffffffffffffffffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ed3,0x15ffffffffffffffffffffffffffffffffffffffffff01801990921691161790 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ed2,0x0091016109b7565b51815160209384036101000a7fffffffffffffffffffffff +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ed5,0x00803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b505160 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ed4,0x00526040519190930194509192505080830381855afa158015610a51573d6000 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ed7,0x0092019081905281519192909182918401908083835b60208310610ada578051 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ed6,0x0140805160208181019490945280820192909252805180830382018152606090 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ed9,0x04ffffffe09092019160209182019101610a9d565b5181516020938403610100 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894ed8,0x0082527fffffffffffffffffffffffffffffffffffffffffffffffffffffffff +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9524,0x0afffffffffffffffffff8018152601890920190819052815191955093508392 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9525,0x00850191508083835b6020831061143f57805182527fffffffffffffffffffff +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9526,0x16ffffffffffffffffffffffffffffffffffffffffffe0909201916020918201 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9527,0x009101611402565b51815160209384036101000a7fffffffffffffffffffffff +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9528,0x15ffffffffffffffffffffffffffffffffffffffffff01801990921691161790 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9529,0x00526040519190930194509192505080830381855afa15801561149c573d6000 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c952a,0x00803e3d6000fd5b5050506040513d60208110156114b157600080fd5b505192 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c952b,0x0050505090565b60408051600880825281830190925260609160208201818036 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c952c,0x00833701905050905060c082901b8060071a60f81b826000815181106114f457 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c952d,0x00fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffff +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c952e,0x08ffffffffffffffff1916908160001a9053508060061a60f81b826001815181 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c952f,0x001061153757fe5b60200101907effffffffffffffffffffffffffffffffffff +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9530,0x0dffffffffffffffffffffffffff1916908160001a9053508060051a60f81b82 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9531,0x0060028151811061157a57fe5b60200101907effffffffffffffffffffffffff +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9532,0x12ffffffffffffffffffffffffffffffffffff1916908160001a905350806004 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9533,0x001a60f81b826003815181106115bd57fe5b60200101907effffffffffffffff +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9534,0x17ffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9535,0x0053508060031a60f81b8260048151811061160057fe5b60200101907effffff +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9536,0x1cffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9537,0x008160001a9053508060021a60f81b8260058151811061164357fe5b60200101 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9538,0x00907effffffffffffffffffffffffffffffffffffffffffffffffffffffffff +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9539,0x02ffff1916908160001a9053508060011a60f81b8260068151811061168657fe +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c953a,0x005b60200101907effffffffffffffffffffffffffffffffffffffffffffffff +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c953b,0x07ffffffffffffff1916908160001a9053508060001a60f81b82600781518110 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c953c,0x006116c957fe5b60200101907effffffffffffffffffffffffffffffffffffff +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c953d,0x0cffffffffffffffffffffffff1916908160001a90535050919050565b600080 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c953e,0x008585111561170d578182fd5b83861115611719578182fd5b50508201939190 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c953f,0x009203915056fe4465706f736974436f6e74726163743a206d65726b6c652074 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9540,0x007265652066756c6c4465706f736974436f6e74726163743a207265636f6e73 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9541,0x0e74727563746564204465706f7369744461746120646f6573206e6f74206d61 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9542,0x0574636820737570706c696564206465706f7369745f646174615f726f6f7444 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9543,0x0e65706f736974436f6e74726163743a20696e76616c69642077697468647261 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9544,0x0677616c5f63726564656e7469616c73206c656e6774684465706f736974436f +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9545,0x076e74726163743a206465706f7369742076616c7565206e6f74206d756c7469 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9546,0x05706c65206f6620677765694465706f736974436f6e74726163743a20696e76 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9547,0x00616c6964207075626b6579206c656e6774684465706f736974436f6e747261 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9548,0x0763743a206465706f7369742076616c756520746f6f20686967684465706f73 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c9549,0x026974436f6e74726163743a206465706f7369742076616c756520746f6f206c +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c954a,0x0d6f774465706f736974436f6e74726163743a20696e76616c6964207369676e +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c954b,0x026174757265206c656e677468a26469706673582212201dd26f37a621703009 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c954c,0x0fabf16e77e69c93dc50c79db7f6cc37543e3e0e3decdc9764736f6c63430006 +0x64465862f6244f410f93da62f24f4219a6e99fc3d0ad603da813b4be8e5c954d,0x000b003300000000000000000000000000000000000000000000000000000000 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e68,0x87eb0ddba57e35f6d286673802a4af5975e22506c7cf4c64bb6be5ee11527f2c +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e74,0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e77,0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e75,0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e6e,0xdf6af5f5bbdb6be9ef8aa618e4bf8073960867171e29676f8b284dea6a08a85e +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e72,0x8d0d63c39ebade8509e0ae3c9c3876fb5fa112be18f905ecacfecb92057603ab +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e65,0x536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123c +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e64,0xc78009fdf07fc56a11f122370658a353aaa542ed63e44c4bc15ff4cd105ab33c +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e7e,0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e6d,0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e6b,0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e6a,0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e7f,0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e63,0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e79,0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e76,0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e6f,0xb58d900f5e182e3c50ef74969ea16c7726c549757cc23523c369587da7293784 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e69,0x26846476fd5fc54a5d43385167c95144f2643f533cc85bb9d16b782f8d7db193 +0xebce17a24fa43e99a35b1b9f41444af92dfde8904adeb5396828a89341733140,0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e70,0xd49a7502ffcfb0340b1d7885688500ca308161a7f96b62df9d083b71fcc8f2bb +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e7a,0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e7b,0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e78,0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e66,0x9efde052aa15429fae05bad4d0b1d7c64da64d03d7a1854a588c2cb8430c0d30 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e62,0xf5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e73,0x95eec8b2e541cad4e91de38385f2e046619f54496c2382cb6cacd5b98c26f5a4 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e71,0x8fe6b1689256c0d385f42f5bbe2027a22c1996e110ba97c171d3e5948de92beb +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e7c,0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e6c,0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e67,0xd88ddfeed400a8755596b21942c1497e114c302e6118290f91e6772976041fa1 +0x2deb8cb17a9711a74800bfb25ec9989e6145dc4a0dd3c5886132339861894e7d,0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1 +0x8e89f3f0fa54017be6417299c5b84aae8d39125dac90775732dac37f4d6c2701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x8e89f3f0fa54017be6417299c5b84aae8d39125dac90775732dac37f4d6c2700,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0x3b7ee742d173ae9ab81d05d22c81a4cd8a72cf055230d6f590302cfebfed3d00,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0x3b7ee742d173ae9ab81d05d22c81a4cd8a72cf055230d6f590302cfebfed3d01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x9746b0a1602d7ff12e7a81e1bf9abb780595542ba48da6f0e8c5d10a4e244c01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x9746b0a1602d7ff12e7a81e1bf9abb780595542ba48da6f0e8c5d10a4e244c00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x28441f73c6b84eb9c452adb1b083b7bccd5daf8de81cccc1c192fdb126eb0a00,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0x28441f73c6b84eb9c452adb1b083b7bccd5daf8de81cccc1c192fdb126eb0a01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x53b8c2cdcd63485f2fb8161fb74c3674d71e2ae9a53af33ec33641f2d9f5ce01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x53b8c2cdcd63485f2fb8161fb74c3674d71e2ae9a53af33ec33641f2d9f5ce00,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0xcd09585ead56b6b0e991ceb168686d765471eec729fc19d9c145064372f6c600,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0xcd09585ead56b6b0e991ceb168686d765471eec729fc19d9c145064372f6c601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xc550446c7bb31a3402881d592214504d4125c5c6c00aa8375f16d4ae84668601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xc550446c7bb31a3402881d592214504d4125c5c6c00aa8375f16d4ae84668600,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0xd422a51a5fe8cfafa09136864f7102ccff8dda65474ee88a3de144cba2916400,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0xd422a51a5fe8cfafa09136864f7102ccff8dda65474ee88a3de144cba2916401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x927c25ad17ae55a566ee98f3983d30f4fa370a07b71dd2b1c3c51380c3011001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x927c25ad17ae55a566ee98f3983d30f4fa370a07b71dd2b1c3c51380c3011000,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0x64f1d209f8a1cfb938d83dd431b4886076aa587600bdac20c5c6fac318db9700,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0x64f1d209f8a1cfb938d83dd431b4886076aa587600bdac20c5c6fac318db9701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x9868d698b6605c6a1c0ace08cd261f6c8aa6cce1ad2926efe10d21c7bae80600,0x0000000000000000000000000000000000000000000000000000000000000001 +0x9868d698b6605c6a1c0ace08cd261f6c8aa6cce1ad2926efe10d21c7bae80601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x81b4af46836e567d4b303e11630852f9b172b10e2078ab522885917e71eae200,0x0000000000000000000000000000000000000000000000000000000000000001 +0x81b4af46836e567d4b303e11630852f9b172b10e2078ab522885917e71eae201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x6ceb724bd0e0faa6e4e29b3370a43f08521b4f4e0ad0ad8f9fe0457b5f964b00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x6ceb724bd0e0faa6e4e29b3370a43f08521b4f4e0ad0ad8f9fe0457b5f964b01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xfe1f8916a679d6601548c6fcd71f99284cee4680130fafd2279c2d8e56528001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xfe1f8916a679d6601548c6fcd71f99284cee4680130fafd2279c2d8e56528000,0x0000000000000000000000000000000000000000000000000000000000000001 +0x1b6c0bd3d56034d994a23561ae2605e28744204d8d1280e412f2e91833303300,0x0000000000000000000000000000000000000000000000000000000000000001 +0x1b6c0bd3d56034d994a23561ae2605e28744204d8d1280e412f2e91833303301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x143bca63931a6c2e66f0e92ca79688b2e4363b59ed8d67edd260947fff7fec01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x143bca63931a6c2e66f0e92ca79688b2e4363b59ed8d67edd260947fff7fec00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xc3871c74ffe3d40145f9b545b91075b9f02475dd1be7f8944b220512f7a1dc01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xc3871c74ffe3d40145f9b545b91075b9f02475dd1be7f8944b220512f7a1dc00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x719141f815779589a148ea3573976bd0a424a8feecc5482f8a5a685732ecc500,0x0000000000000000000000000000000000000000000000000000000000000001 +0x719141f815779589a148ea3573976bd0a424a8feecc5482f8a5a685732ecc501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x469def341d5a90a68f92ca15bd358725c77f75fa309c5c818de7d0d383e8a400,0x0000000000000000000000000000000000000000000000000000000000000001 +0x469def341d5a90a68f92ca15bd358725c77f75fa309c5c818de7d0d383e8a401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x1576b11236335e08bafa31211aa6c9284e2cd7deb7287da53f14ada45bea1200,0x0000000000000000000000000000000000000000000000000000000000000001 +0x1576b11236335e08bafa31211aa6c9284e2cd7deb7287da53f14ada45bea1201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe6fc458aaf49af3a790f5c1f8f77d04ed2dd3ff6f1566bf9cece7a9042a78b00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xe6fc458aaf49af3a790f5c1f8f77d04ed2dd3ff6f1566bf9cece7a9042a78b01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xeed8866f9f43e469d9fde0d375967c0452d166c129b202c5873523eae5030801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xeed8866f9f43e469d9fde0d375967c0452d166c129b202c5873523eae5030800,0x0000000000000000000000000000000000000000000000000000000000000001 +0xa254f1faf2228dac26c4dc9137d0314bbc2864e16ad8061b39f8ef39f7627f01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa254f1faf2228dac26c4dc9137d0314bbc2864e16ad8061b39f8ef39f7627f00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x2f2440625818b7a110b4c8e580a94f22074a0f0d9fcca14ce9d21627fccea001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x2f2440625818b7a110b4c8e580a94f22074a0f0d9fcca14ce9d21627fccea000,0x0000000000000000000000000000000000000000000000000000000000000001 +0x891ae8c9950e5d872a506bf1a87e62ae3363d9a191c455b96f5c401780546700,0x0000000000000000000000000000000000000000000000000000000000000001 +0x891ae8c9950e5d872a506bf1a87e62ae3363d9a191c455b96f5c401780546701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd349b444fb3042b81263aa6b6c78648ffb99cc344378dcd09f7d3cd9ec8f7900,0x0000000000000000000000000000000000000000000000000000000000000001 +0xd349b444fb3042b81263aa6b6c78648ffb99cc344378dcd09f7d3cd9ec8f7901,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xddf3123885455b07a55e7a070b2fb6534bed45fd296c64b48a267c5513375e00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xddf3123885455b07a55e7a070b2fb6534bed45fd296c64b48a267c5513375e01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x9e6e46084c6d5a8b0da9166ec473874feb78e8d7370a87644b793a736548e301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x9e6e46084c6d5a8b0da9166ec473874feb78e8d7370a87644b793a736548e300,0x0000000000000000000000000000000000000000000000000000000000000001 +0x5bdf12f5e17d2911dac2d2b0fc9e64a3ddc1d1ea4fc2568fe7e741ff2daa1800,0x0000000000000000000000000000000000000000000000000000000000000001 +0x5bdf12f5e17d2911dac2d2b0fc9e64a3ddc1d1ea4fc2568fe7e741ff2daa1801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x569a413302293fe6565003605c565c819efe1b8a0df425b9a4e442c1713ea601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x569a413302293fe6565003605c565c819efe1b8a0df425b9a4e442c1713ea600,0x0000000000000000000000000000000000000000000000000000000000000001 +0x256079cf76c609668ef945675237fab1c7e27fcdb7a1ef25bbf2d0683227d200,0x000000000000005c000000000000000100000000000000000000000000000000 +0x256079cf76c609668ef945675237fab1c7e27fcdb7a1ef25bbf2d0683227d280,0x003373fffffffffffffffffffffffffffffffffffffffe146044576020361460 +0x256079cf76c609668ef945675237fab1c7e27fcdb7a1ef25bbf2d0683227d282,0x005f5260205ff35b42620180004206555f356201800042066201800001550000 +0x256079cf76c609668ef945675237fab1c7e27fcdb7a1ef25bbf2d0683227d201,0x1881aac421928dde11a7fde5a6b42aeb9066496d46895a26a88edb2c2c079410 +0x256079cf76c609668ef945675237fab1c7e27fcdb7a1ef25bbf2d0683227d281,0x0124575f5ffd5b620180005f350680545f35146037575f5ffd5b620180000154 +0xfcd5fe305126e5bedecf15c1151b1c9ca02d1260c62c1afa00e2df39e01eb500,0x0000000000000000000000000000000000000000000000000000000000000001 +0xfcd5fe305126e5bedecf15c1151b1c9ca02d1260c62c1afa00e2df39e01eb501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x735e2ed7b08f4af72ea345479dc2759042b481114dba8dafd839c1a0c7503900,0x0000000000000000000000000000000000000000000000000000000000000001 +0x735e2ed7b08f4af72ea345479dc2759042b481114dba8dafd839c1a0c7503901,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x52f94c3594cb6d3c2bd956fff5940684786dfa1b968c584f6eb844df95374601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x52f94c3594cb6d3c2bd956fff5940684786dfa1b968c584f6eb844df95374600,0x0000000000000000000000000000000000000000000000000000000000000001 +0x2dd8a329b5969554bb398961ae1df4024d20882eeb20d7e03eba6fbcecbe2101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x2dd8a329b5969554bb398961ae1df4024d20882eeb20d7e03eba6fbcecbe2100,0x0000000000000000000000000000000000000000000000000000000000000001 +0x1a100684fd68185060405f3f160e4bb6e034194336b547bdae323f888d533201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x1a100684fd68185060405f3f160e4bb6e034194336b547bdae323f888d533200,0x0000000000000000000000000000000000000000000000000000000000000001 +0x4037e162ad934f8f2f71c077f3434dcd300976c9f2589578848fb81d12039501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x4037e162ad934f8f2f71c077f3434dcd300976c9f2589578848fb81d12039500,0x0000000000000000000000000000000000000000000000000000000000000001 +0xa45159e3699e1465489842e42b0c8d6d0d89f165e1471b7b51434836777c6a01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa45159e3699e1465489842e42b0c8d6d0d89f165e1471b7b51434836777c6a00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xd5a8978901c576db2161f256b1722dd636c9c25b5893ed676bc149b74af83701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd5a8978901c576db2161f256b1722dd636c9c25b5893ed676bc149b74af83700,0x0000000000000000000000000000000000000000000000000000000000000001 +0x96ebb44953d7b9e535617760759dfbe7dcf03cc5933454b5abed216a3cf27801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x96ebb44953d7b9e535617760759dfbe7dcf03cc5933454b5abed216a3cf27800,0x0000000000000000000000000000000000000000000000000000000000000001 +0x46a29cff9e34716f4c93d79b442a5eff1198fbd2aa45aa8fce7661a7ee638900,0x0000000000000000000000000000000000000000000000000000000000000001 +0x46a29cff9e34716f4c93d79b442a5eff1198fbd2aa45aa8fce7661a7ee638901,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xbcc8a2fce6a6797cc79cb9a9d82f30280342e8ce5858c71eb2a81e82049ca300,0x0000000000000000000000000000000000000000000000000000000000000001 +0xbcc8a2fce6a6797cc79cb9a9d82f30280342e8ce5858c71eb2a81e82049ca301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x2da2b608627beae986f5b09704264951a146571aaa12827ed4a8f8e7b6e67400,0x0000000000000000000000000000000000000000000000000000000000000001 +0x2da2b608627beae986f5b09704264951a146571aaa12827ed4a8f8e7b6e67401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x0ae37afa3d70d958eb79993e8d333e48f94036d0e88d1e3ce800a0e8bb317401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x0ae37afa3d70d958eb79993e8d333e48f94036d0e88d1e3ce800a0e8bb317400,0x0000000000000000000000000000000000000000000000000000000000000001 +0x593d8f62958101ec0fdae090ca70dd2e5002fcba820ff112f17b55885272b801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x593d8f62958101ec0fdae090ca70dd2e5002fcba820ff112f17b55885272b800,0x0000000000000000000000000000000000000000000000000000000000000001 +0x9c6ccda1c61c899d5560685f52e8b04cbff2b4b1c53bedfe900ece06047ef100,0x0000000000000000000000000000000000000000000000000000000000000001 +0x9c6ccda1c61c899d5560685f52e8b04cbff2b4b1c53bedfe900ece06047ef101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x4f695e0d51b4ee2275e4c4f8c881fcf209906a6cd7db9cb2896a362ba0673000,0x0000000000000000000000000000000000000000000000000000000000000001 +0x4f695e0d51b4ee2275e4c4f8c881fcf209906a6cd7db9cb2896a362ba0673001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x9a4a42b2f6a043e7d431b262bb1d543beb3cc840df92f1a685108072fadae201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x9a4a42b2f6a043e7d431b262bb1d543beb3cc840df92f1a685108072fadae200,0x0000000000000000000000000000000000000000000000000000000000000001 +0x11f89ce05547949e4a633d83acb9c73e5760f233f0ca3e0d85b81ad086dccf01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x11f89ce05547949e4a633d83acb9c73e5760f233f0ca3e0d85b81ad086dccf00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x28bd4867ff34181fd683e0476727cf53ebbf059625a8252d5dd287f743ffff01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x28bd4867ff34181fd683e0476727cf53ebbf059625a8252d5dd287f743ffff00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x0db7fb3fd47d6e2dc1988225753648fa89ad1129eb357715d3a8b01f88856d01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x0db7fb3fd47d6e2dc1988225753648fa89ad1129eb357715d3a8b01f88856d00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x50714e35d1780fd66377c91612f01226c560c814582dc7484e73f28b05570201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x50714e35d1780fd66377c91612f01226c560c814582dc7484e73f28b05570200,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0x0883e80d34ec1982af9b9a258da8714c5a6e95ea0e08882f78352ea9b15d7e01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x0883e80d34ec1982af9b9a258da8714c5a6e95ea0e08882f78352ea9b15d7e00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x4d56ad5b5b29cd0d5631f9b4911f328ce67b87c4ab77fdbb7e14c2b2b4f45c00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x4d56ad5b5b29cd0d5631f9b4911f328ce67b87c4ab77fdbb7e14c2b2b4f45c01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe1fb48dcb8a0ec862bf0cca63074b5fe331d3cae11fe782c822d14c2ef754b01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe1fb48dcb8a0ec862bf0cca63074b5fe331d3cae11fe782c822d14c2ef754b00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x488a440c7df074cb8191d657efcfa26ca28305404509a61914603faaa3f64301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x488a440c7df074cb8191d657efcfa26ca28305404509a61914603faaa3f64300,0x0000000000000000000000000000000000000000000000000000000000000001 +0x2b0666d65c693f59a7d7e5c9d366c0af0f5918531699a1b36a864575d44b4400,0x0000000000000000000000000000000000000000000000000000000000000001 +0x2b0666d65c693f59a7d7e5c9d366c0af0f5918531699a1b36a864575d44b4401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x6de71901c28ceb262ae31d542a067285a4849be7c8e1db93f1bc95b583153001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x6de71901c28ceb262ae31d542a067285a4849be7c8e1db93f1bc95b583153000,0x0000000000000000000000000000000000000000000000000000000000000001 +0x6a45a5e670e2026c051e19191ebf112fb210ff7816981886fe076fbf5cbcfd01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x6a45a5e670e2026c051e19191ebf112fb210ff7816981886fe076fbf5cbcfd00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x0348e560895e6240106a0f60ed5037c6cccca2f25f97211e20965934fef69901,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x0348e560895e6240106a0f60ed5037c6cccca2f25f97211e20965934fef69900,0x0000000000000000000000000000000000000000000000000000000000000001 +0xaab3a49dc48a73141b5fcc4c3ab55b3ea27cc111463ca21fdb9ac56076c30900,0x0000000000000000000000000000000000000000000000000000000000000001 +0xaab3a49dc48a73141b5fcc4c3ab55b3ea27cc111463ca21fdb9ac56076c30901,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x6e51ca4dabdbaa7239bfb59b366e908e2d653bcc423a342ba4f7781a88e69a01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x6e51ca4dabdbaa7239bfb59b366e908e2d653bcc423a342ba4f7781a88e69a00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x0815de3c6389c00adb6d2ae50db60eefae0754af3f2e2feb224d02dd65ed9000,0x0000000000000000000000000000000000000000000000000000000000000001 +0x0815de3c6389c00adb6d2ae50db60eefae0754af3f2e2feb224d02dd65ed9001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xbe91ee37c44e8d796afe39322bd2209319e3165cd4e2788969ea2f472bec3e00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xbe91ee37c44e8d796afe39322bd2209319e3165cd4e2788969ea2f472bec3e01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xfe38ce53988aece8c358c67dd083249bd57b0539854061495b5832ff5af0fd01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xfe38ce53988aece8c358c67dd083249bd57b0539854061495b5832ff5af0fd00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x4b8f745ce0c95fa2872efbb971b3558db0ea971ddfa19478e1febf84342d2e01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x4b8f745ce0c95fa2872efbb971b3558db0ea971ddfa19478e1febf84342d2e00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xda2cb66b79815fd0b93f8d6867feeb3ad69e34953e24c74abd3785dbac9f3700,0x0000000000000000000000000000000000000000000000000000000000000001 +0xda2cb66b79815fd0b93f8d6867feeb3ad69e34953e24c74abd3785dbac9f3701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd661b2afdf9fb594de12bfe30b31992e8016b841db06f1d9d8ce3a8f80eb7200,0x0000000000000000000000000000000000000000000000000000000000000001 +0xd661b2afdf9fb594de12bfe30b31992e8016b841db06f1d9d8ce3a8f80eb7201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xf3d1620e5345a073e6218148b058d81478f2bf8edf3dadbdf176d46241fb7a00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xf3d1620e5345a073e6218148b058d81478f2bf8edf3dadbdf176d46241fb7a01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xaf09aefed21bf99c116ee42883c1afa3ea104939bb2585338c92c7fc222b7100,0x0000000000000000000000000000000000000000000000000000000000000001 +0xaf09aefed21bf99c116ee42883c1afa3ea104939bb2585338c92c7fc222b7101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x9bb94ccc5db1e5068d80a1ad9b10a60e6ab1bc3b2b31d550f23c70c404b50500,0x0000000000000000000000000000000000000000000000000000000000000001 +0x9bb94ccc5db1e5068d80a1ad9b10a60e6ab1bc3b2b31d550f23c70c404b50501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x32dc4d263877141c40d9ee179a1cfd901ec1d18713c730e9997a4e8e3a173a00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x32dc4d263877141c40d9ee179a1cfd901ec1d18713c730e9997a4e8e3a173a01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x75a259f01b2e7f18d0cbc1d6c891d3acdb1f1f304f25cfc7d81a67215c4a8401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x75a259f01b2e7f18d0cbc1d6c891d3acdb1f1f304f25cfc7d81a67215c4a8400,0x0000000000000000000000000000000000000000000000000000000000000001 +0xb30e009c256089e4007274d5fe5238b3e45c6236557dd142096fe6822ad31601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xb30e009c256089e4007274d5fe5238b3e45c6236557dd142096fe6822ad31600,0x0000000000000000000000000000000000000000000000000000000000000001 +0xd7e5b72df74898bee83d963581cd547073b495b274b360ea9e9799a49e45b801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd7e5b72df74898bee83d963581cd547073b495b274b360ea9e9799a49e45b800,0x0000000000000000000000000000000000000000000000000000000000000001 +0x4dbd9adfcaefeb4edb4e46239653a068fa00a3af698da2c73336e76508569700,0x0000000000000000000000000000000000000000000000000000000000000001 +0x4dbd9adfcaefeb4edb4e46239653a068fa00a3af698da2c73336e76508569701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x9c77e88212a48c4938a24b33237c277b24ef48139719c0f220034c90175d2000,0x0000000000000000000000000000000000000000000000000000000000000001 +0x9c77e88212a48c4938a24b33237c277b24ef48139719c0f220034c90175d2001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xbb6940778f5fe831d3cfd5b24efd77907927dffcfd4e4ce28ef8f5eda8a3f600,0x0000000000000000000000000000000000000000000000000000000000000001 +0xbb6940778f5fe831d3cfd5b24efd77907927dffcfd4e4ce28ef8f5eda8a3f601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x132cf3848eb276b9aa557a85610320317a1e4aa8246573399d291a28c2e05600,0x0000000000000000000000000000000000000000000000000000000000000001 +0x132cf3848eb276b9aa557a85610320317a1e4aa8246573399d291a28c2e05601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x003e8b76aabaf84f16420badce609b735c874a4a2db17bf1c5312c5a7c3c4000,0x0000000000000000000000000000000000000000000000000000000000000001 +0x003e8b76aabaf84f16420badce609b735c874a4a2db17bf1c5312c5a7c3c4001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd713b36d624130be4a12723725f5c10bc6bfa60c8eaceb958543962d193a0300,0x0000000000000000000000000000000000000000000000000000000000000001 +0xd713b36d624130be4a12723725f5c10bc6bfa60c8eaceb958543962d193a0301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x21a2609d0f27afcde1a075ae67b50c4379eb3b0d3a383e5934aa30bebc7f0800,0x0000000000000000000000000000000000000000000000000000000000000001 +0x21a2609d0f27afcde1a075ae67b50c4379eb3b0d3a383e5934aa30bebc7f0801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xf64f60172b062bd040edbc6e50202fb19e54b1b342573bcb4ebd0c5b377fa300,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0xf64f60172b062bd040edbc6e50202fb19e54b1b342573bcb4ebd0c5b377fa301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x262f20effe8bb3463f446afec203564b7bb380723efec841353d29ac9885d300,0x0000000000000000000000000000000000000000000000000000000000000001 +0x262f20effe8bb3463f446afec203564b7bb380723efec841353d29ac9885d301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x1284fbb01ba3db480341cef6975084eaf46e2055a6d2f955ca911eef96e00701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x1284fbb01ba3db480341cef6975084eaf46e2055a6d2f955ca911eef96e00700,0x0000000000000000000000000000000000000000000000000000000000000001 +0xfcc0ce3d02b0e537f6eaf3d55babaad15cf9227c39723b3d938255a106a99201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xfcc0ce3d02b0e537f6eaf3d55babaad15cf9227c39723b3d938255a106a99200,0x0000000000000000000000000000000000000000000000000000000000000001 +0xd5e4f7ab63f237b12316687ec89fbd69a815beb21ff9bf049ce5aa5884cb7600,0x0000000000000000000000000000000000000000000000000000000000000001 +0xd5e4f7ab63f237b12316687ec89fbd69a815beb21ff9bf049ce5aa5884cb7601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd5f60a22f578b01222216496e3322676c2bd1a27f4814fff924ff5795b9dae01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd5f60a22f578b01222216496e3322676c2bd1a27f4814fff924ff5795b9dae00,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0xb59831880bd5aeccd94621d5060eb04e301df6cfadf654946332997791b4c900,0x0000000000000000000000000000000000000000000000000000000000000001 +0xb59831880bd5aeccd94621d5060eb04e301df6cfadf654946332997791b4c901,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x5a3e9eed1c04e8be7598cac97578a4ac1361f7300434437c15238ec4bffdf201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x5a3e9eed1c04e8be7598cac97578a4ac1361f7300434437c15238ec4bffdf200,0x0000000000000000000000000000000000000000000000000000000000000001 +0x508ee4a36de4e8312b7cd09fb01b8393a85c097257885ba145757bb534be6901,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x508ee4a36de4e8312b7cd09fb01b8393a85c097257885ba145757bb534be6900,0x0000000000000000000000000000000000000000000000000000000000000001 +0x44d50418129f0e0cd907afd0fd4d529af6d28a2e57a86c15a494a7d0dd84ec01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x44d50418129f0e0cd907afd0fd4d529af6d28a2e57a86c15a494a7d0dd84ec00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x0cae5ecb540be2b39da18e68d5c042a9e583ed399bf9162a7a560629d669ee00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x0cae5ecb540be2b39da18e68d5c042a9e583ed399bf9162a7a560629d669ee01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xeeccb1bee282b249c326784dff9fbaf7038b205ed7ad80dd8550025653ece200,0x0000000000000000000000000000000000000000000000000000000000000001 +0xeeccb1bee282b249c326784dff9fbaf7038b205ed7ad80dd8550025653ece201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x34c73185718c76bc4c4da01daa82c72f064f7deb720443930c1867ba499d4000,0x0000000000000000000000000000000000000000000000000000000000000001 +0x34c73185718c76bc4c4da01daa82c72f064f7deb720443930c1867ba499d4001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x7bcd34e06b17d5e535be576193659f77d14ab489d6b1df1835e7e9ed961d2000,0x0000000000000000000000000000000000000000000000000000000000000001 +0x7bcd34e06b17d5e535be576193659f77d14ab489d6b1df1835e7e9ed961d2001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x402d3687b6e56b7c20e16de81ce79a8b3147daa1e39a972ee454724e4ff3fe01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x402d3687b6e56b7c20e16de81ce79a8b3147daa1e39a972ee454724e4ff3fe00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xf9d396e567c8612c838d53f29e7b2cd414c141298c1132ce8749ca1caf8c7200,0x0000000000000000000000000000000000000000000000000000000000000001 +0xf9d396e567c8612c838d53f29e7b2cd414c141298c1132ce8749ca1caf8c7201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xb149a343619c00ac474af9834dd0bb26840f1bbb4645f27b35e7fdcdb657c800,0x0000000000000000000000000000000000000000000000000000000000000001 +0xb149a343619c00ac474af9834dd0bb26840f1bbb4645f27b35e7fdcdb657c801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x7817f98e8ca3738e234009581085a98a6948f56eadde4a0cfed005159d931400,0x0000000000000000000000000000000000000000000000000000000000000001 +0x7817f98e8ca3738e234009581085a98a6948f56eadde4a0cfed005159d931401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xeae3765d080336606bdfdee96a4ee964cd8f05b9ac716917399625f1cea56801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xeae3765d080336606bdfdee96a4ee964cd8f05b9ac716917399625f1cea56800,0x0000000000000000000000000000000000000000000000000000000000000001 +0xb0e02c3037f8d42b38724a22731d238ef8f1091ddef6e23a30cbf06b1eafa100,0x0000000000000000000000000000000000000000000000000000000000000001 +0xb0e02c3037f8d42b38724a22731d238ef8f1091ddef6e23a30cbf06b1eafa101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x16a7d947cd1bf55fa2f81d559ba3068a1643d169a414bc44f9d7631e9e2b7800,0x0000000000000000000000000000000000000000000000000000000000000001 +0x16a7d947cd1bf55fa2f81d559ba3068a1643d169a414bc44f9d7631e9e2b7801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xffaaf46179b96b1ce7739fe46165988324acd0668906ee002ff899abacd36501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xffaaf46179b96b1ce7739fe46165988324acd0668906ee002ff899abacd36500,0x0000000000000000000000000000000000000000000000000000000000000001 +0x1d01d344d629b82bf9f6f8ef4888a2a237c8563031f83503e8d11b96bb694000,0x0000000000000000000000000000000000000000000000000000000000000001 +0x1d01d344d629b82bf9f6f8ef4888a2a237c8563031f83503e8d11b96bb694001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x26c30b1ac2cd71552f554321991af170f57b8443b42c4c4938493a56b3614900,0x0000000000000000000000000000000000000000000000000000000000000001 +0x26c30b1ac2cd71552f554321991af170f57b8443b42c4c4938493a56b3614901,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xc223fb76031b0f676dec46273f486681a1027c6ed9ca8dee9cbc02a8606e0700,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0xc223fb76031b0f676dec46273f486681a1027c6ed9ca8dee9cbc02a8606e0701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x720a8620473cad8bfbefc0c75860e4bcd87a6a9285de31baa011199cdedf8e00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x720a8620473cad8bfbefc0c75860e4bcd87a6a9285de31baa011199cdedf8e01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe278835da221f28866dc4203b548128040121195d43549bc813643ff112ad500,0x0000000000000000000000000000000000000000000000000000000000000001 +0xe278835da221f28866dc4203b548128040121195d43549bc813643ff112ad501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe32c1f2ac0e49bd78bb5ffd75797301e769c97ad88fa6de8508518011a822301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe32c1f2ac0e49bd78bb5ffd75797301e769c97ad88fa6de8508518011a822300,0x0000000000000000000000000000000000000000000000000000000000000001 +0xe27b475e12c48413b71ddb20e004ce1a50e3a31e550e9c5584b3da5e8c47e400,0x0000000000000000000000000000000000000000000000000000000000000001 +0xe27b475e12c48413b71ddb20e004ce1a50e3a31e550e9c5584b3da5e8c47e401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x22e3ff9ea6cced80f87582dec71d5257572c61bd5c6f6853dd3e7da652c43201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x22e3ff9ea6cced80f87582dec71d5257572c61bd5c6f6853dd3e7da652c43200,0x0000000000000000000000000000000000000000000000000000000000000001 +0x9b815bd849e95047107fc8c77c8f611c5f19e3606bcd5f64343732acfdd73601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x9b815bd849e95047107fc8c77c8f611c5f19e3606bcd5f64343732acfdd73600,0x0000000000000000000000000000000000000000000000000000000000000001 +0x070d78d75764e34f4dd223971442d9868ff86b050e7c2fa7ce32896215e2fc00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x070d78d75764e34f4dd223971442d9868ff86b050e7c2fa7ce32896215e2fc01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe0678cfaf58a8ffd1281cbfb317f7dffe9b4de7d572100b1024d6e88f8f28101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe0678cfaf58a8ffd1281cbfb317f7dffe9b4de7d572100b1024d6e88f8f28100,0x0000000000000000000000000000000000000000000000000000000000000001 +0xe48a640a9e2cd273cb6901ecabdd923f0485dadc21e8cb6e95648bb1576d8b01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe48a640a9e2cd273cb6901ecabdd923f0485dadc21e8cb6e95648bb1576d8b00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x45e8e90813e032c564a78be69d2d4602e9a72b5b0fce58f18e7c5f80a268d600,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0x45e8e90813e032c564a78be69d2d4602e9a72b5b0fce58f18e7c5f80a268d601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa3442d186b409cfdf13923fd029652dea0b5c9b343c82b9bd3c2947a2bcdaa01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa3442d186b409cfdf13923fd029652dea0b5c9b343c82b9bd3c2947a2bcdaa00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x5146df112e2a2f3816699c1051bc8e805caa1be88d51ee5cf60db367cd6cd600,0x0000000000000000000000000000000000000000000000000000000000000001 +0x5146df112e2a2f3816699c1051bc8e805caa1be88d51ee5cf60db367cd6cd601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x66c5c05bdee656b59a60b49e1e270087424750433c42cb75011afe1862580b00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x66c5c05bdee656b59a60b49e1e270087424750433c42cb75011afe1862580b01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x5515bc11ece20a735c2e87885ffdc10b8565f9ed9b9031ad350ad183f5ea1300,0x0000000000000000000000000000000000000000000000000000000000000001 +0x5515bc11ece20a735c2e87885ffdc10b8565f9ed9b9031ad350ad183f5ea1301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xc438c1f4612a350f0ddf712ea7724b2dca6cada82cb91527200aee69bc97e300,0x0000000000000000000000000000000000000000000000000000000000000001 +0xc438c1f4612a350f0ddf712ea7724b2dca6cada82cb91527200aee69bc97e301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xfeb2ce5b3b6b6932fd8b61b9d20156ec5c6a52036e644990adac937ca6d6ad01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xfeb2ce5b3b6b6932fd8b61b9d20156ec5c6a52036e644990adac937ca6d6ad00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x2a851adb01f3e8048df7a1edaca1aa5bfd2aaffba7d9bdbf7b5ed9b1b3553b01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x2a851adb01f3e8048df7a1edaca1aa5bfd2aaffba7d9bdbf7b5ed9b1b3553b00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xa0c6fdbbdfdf427486d43198551eb5be7c70f86f577f1822f26cb8604df23400,0x0000000000000000000000000000000000000000000000000000000000000001 +0xa0c6fdbbdfdf427486d43198551eb5be7c70f86f577f1822f26cb8604df23401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x56aad8ad8e1341c1f5427185497ffa8388ed2deb471f655b28789e385dd98400,0x0000000000000000000000000000000000000000000000000000000000000001 +0x56aad8ad8e1341c1f5427185497ffa8388ed2deb471f655b28789e385dd98401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x6d6b946f5a0dc68efa28fa126e2182455cbfc19cb37581047cbc2788106a4400,0x0000000000000000000000000000000000000000000000000000000000000001 +0x6d6b946f5a0dc68efa28fa126e2182455cbfc19cb37581047cbc2788106a4401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x0ac28030668de10b998ee60ec1f310c9798c926649800744f7cdb0789fd13c00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x0ac28030668de10b998ee60ec1f310c9798c926649800744f7cdb0789fd13c01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xccd649492865a1c61aaece1b32f34851fb3f87bf36fa17f10dd401e619c64f01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xccd649492865a1c61aaece1b32f34851fb3f87bf36fa17f10dd401e619c64f00,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0x19b464180e578d4d516b7d4a6425a8574afc4bab38aae9fa09aa0bb79b13a201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x19b464180e578d4d516b7d4a6425a8574afc4bab38aae9fa09aa0bb79b13a200,0x0000000000000000000000000000000000000000000000000000000000000001 +0x6ce4283d24973c3a6a1d162f196a1785357b895153f0ce471fa64b0881980a01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x6ce4283d24973c3a6a1d162f196a1785357b895153f0ce471fa64b0881980a00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x9cee3128a4f50902c6358b2a71b84fa2a65d0a9c8787f94fafa41d4579c84800,0x0000000000000000000000000000000000000000000000000000000000000001 +0x9cee3128a4f50902c6358b2a71b84fa2a65d0a9c8787f94fafa41d4579c84801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x7b9cb68c5c3ec27124d781fbdf456781b57d5de7b5d0f39478267f51e2887d00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x7b9cb68c5c3ec27124d781fbdf456781b57d5de7b5d0f39478267f51e2887d01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xbe76b41bcc4c814e04121a5e0f97ff1f09c2981a634bec4718325f47ca1c0f01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xbe76b41bcc4c814e04121a5e0f97ff1f09c2981a634bec4718325f47ca1c0f00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x1d86bf724361a88a5d38ed195c23d58c591093205d651114bbe5b076daa02400,0x0000000000000000000000000000000000000000000000000000000000000001 +0x1d86bf724361a88a5d38ed195c23d58c591093205d651114bbe5b076daa02401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xcc7c0ebabb572d8c66d950b84dee2ab82e50207099c42d6c00b96068c67d6300,0x0000000000000000000000000000000000000000000000000000000000000001 +0xcc7c0ebabb572d8c66d950b84dee2ab82e50207099c42d6c00b96068c67d6301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x558303040934f55c20132e6b0af69297038938e488b9572709113d6ae20b1701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x558303040934f55c20132e6b0af69297038938e488b9572709113d6ae20b1700,0x0000000000000000000000000000000000000000000000000000000000000001 +0x41bf4aedd10f28a6725347d6f858ba17087b081a1b5191244c621242fffa7800,0x0000000000000000000000000000000000000000000000000000000000000001 +0x41bf4aedd10f28a6725347d6f858ba17087b081a1b5191244c621242fffa7801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x42187a2d37e49c7e0e93500a9a703e7a9da7c37fa1f1736dc07a6dcb77fa7300,0x0000000000000000000000000000000000000000000000000000000000000001 +0x42187a2d37e49c7e0e93500a9a703e7a9da7c37fa1f1736dc07a6dcb77fa7301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x8a460adb65d1fb9d841e435775c0b43eeb98db7df77cddfa457f987f9188c000,0x0000000000000000000000000000000000000000000000000000000000000001 +0x8a460adb65d1fb9d841e435775c0b43eeb98db7df77cddfa457f987f9188c001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x6f3058857f5eaf4ff978d73ed2ddbb4d8d33359c8b77b81e45fcc4b40d9b0500,0x0000000000000000000000000000000000000000000000000000000000000001 +0x6f3058857f5eaf4ff978d73ed2ddbb4d8d33359c8b77b81e45fcc4b40d9b0501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x22a961c1e8a0a46d69bbe05ee6d4e7d54cc006cb04afa1f4acbb17b7d6576b00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x22a961c1e8a0a46d69bbe05ee6d4e7d54cc006cb04afa1f4acbb17b7d6576b01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xc2e3dfc4ef67aaace61e7c2b8091ad77fcd75ae6a78b7750c871cd0e9371d901,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xc2e3dfc4ef67aaace61e7c2b8091ad77fcd75ae6a78b7750c871cd0e9371d900,0x0000000000000000000000000000000000000000000000000000000000000001 +0x1a1c579ae2b4d8077b33f0a052f225f6a54f30f215a16ee83a713bb198d37d00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x1a1c579ae2b4d8077b33f0a052f225f6a54f30f215a16ee83a713bb198d37d01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x6b50e401a2287dbe6b40c8d5a88c08a7a031bfcf971d88d5a13a59b345fe4c00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x6b50e401a2287dbe6b40c8d5a88c08a7a031bfcf971d88d5a13a59b345fe4c01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa21b584690e270c11d52be03576423607058a0ed4d0c1edd1f05940e0d979000,0x0000000000000000000000000000000000000000000000000000000000000001 +0xa21b584690e270c11d52be03576423607058a0ed4d0c1edd1f05940e0d979001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x70b97b7c72ac1ae844a1b1d5a4de91d9af4b47178beef68a372393d2fdabbf01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x70b97b7c72ac1ae844a1b1d5a4de91d9af4b47178beef68a372393d2fdabbf00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x64f3ff8e1a35ee1090e0db80e2374588a62a46bbd30c1f34767c1df10a5a6300,0x0000000000000000000000000000000000000000000000000000000000000001 +0x64f3ff8e1a35ee1090e0db80e2374588a62a46bbd30c1f34767c1df10a5a6301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x8716fa4b23e8771ac47dd56b3f4874d8f732ddc5603a5da917471e99d9205000,0x0000000000000000000000000000000000000000000000000000000000000001 +0x8716fa4b23e8771ac47dd56b3f4874d8f732ddc5603a5da917471e99d9205001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x4cad9c2d704a188facc52755cdc62bf947db397516ddd0025541d91729082801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x4cad9c2d704a188facc52755cdc62bf947db397516ddd0025541d91729082800,0x0000000000000000000000000000000000000000000000000000000000000001 +0x54bd9175120ed09aa00562e86250740a70a8131d7f32387624504c9ba8699501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x54bd9175120ed09aa00562e86250740a70a8131d7f32387624504c9ba8699500,0x0000000000000000000000000000000000000000000000000000000000000001 +0xb2c8e42d7413a51f134ff2a7e5ae699d0469ff3a934086109b401429f3d29301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xb2c8e42d7413a51f134ff2a7e5ae699d0469ff3a934086109b401429f3d29300,0x0000000000000000000000000000000000000000000000000000000000000001 +0xd23eab96523799d5b123bd9df18bc8653c05294e4c1380743d3f725f33337500,0x0000000000000000000000000000000000000000000000000000000000000001 +0xd23eab96523799d5b123bd9df18bc8653c05294e4c1380743d3f725f33337501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd8f02c1b8a44c5ef8735974e10bb7faef7b618554bfc8e7b5f27899a85d1f900,0x0000000000000000000000000000000000000000000000000000000000000001 +0xd8f02c1b8a44c5ef8735974e10bb7faef7b618554bfc8e7b5f27899a85d1f901,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x11905090751656089dcc984a5b35ebe09b69cba5c2302ccd00ebed60de336f00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x11905090751656089dcc984a5b35ebe09b69cba5c2302ccd00ebed60de336f01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd59fda8491cfb9e905a4a2df5a135bf75ece093510d66b05299f47fade03b601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd59fda8491cfb9e905a4a2df5a135bf75ece093510d66b05299f47fade03b600,0x0000000000000000000000000000000000000000000000000000000000000001 +0xe952cba5f7c7d3b2d684423961a4c29ee13c6fabeb3583faa3e503d7b1585800,0x0000000000000000000000000000000000000000000000000000000000000001 +0xe952cba5f7c7d3b2d684423961a4c29ee13c6fabeb3583faa3e503d7b1585801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa379c115e23d29ce199bff4ffc35c235eb5e7ebf121a08ca5f8ee17f747d3500,0x0000000000000000000000000000000000000000000000000000000000000001 +0xa379c115e23d29ce199bff4ffc35c235eb5e7ebf121a08ca5f8ee17f747d3501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x6cafea26b869b5d4eac6bb01811824faa5d7b228eb81166355c0b6131c12a601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x6cafea26b869b5d4eac6bb01811824faa5d7b228eb81166355c0b6131c12a600,0x0000000000000000000000000000000000000000000000000000000000000001 +0x01a3bf782e810e587b829b1526fe83a5c9773df1c4754637861ff58401a68900,0x0000000000000000000000000000000000000000000000000000000000000001 +0x01a3bf782e810e587b829b1526fe83a5c9773df1c4754637861ff58401a68901,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x79f107b07e8c0a06fc8fda201711e66cff325819af1e13979dd8d4bdf5c5b700,0x0000000000000000000000000000000000000000000000000000000000000001 +0x79f107b07e8c0a06fc8fda201711e66cff325819af1e13979dd8d4bdf5c5b701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa38770119b2615a02f192d25892dd74b8cdca78a5044da690d96139cbbfebf01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa38770119b2615a02f192d25892dd74b8cdca78a5044da690d96139cbbfebf00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x13f3d028822a9b5e91d06c71b990feaa4c4bb7877fd3087dbed59d46082a5501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x13f3d028822a9b5e91d06c71b990feaa4c4bb7877fd3087dbed59d46082a5500,0x0000000000000000000000000000000000000000000000000000000000000001 +0xf45a1556fc11289559e41b762eaae670bc9671c0327aea4e33dfe40f224a7801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xf45a1556fc11289559e41b762eaae670bc9671c0327aea4e33dfe40f224a7800,0x0000000000000000000000000000000000000000000000000000000000000001 +0x4044efc4c8a172d13907338cd04f1278987a83b6347dfdadc17a59862427f101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x4044efc4c8a172d13907338cd04f1278987a83b6347dfdadc17a59862427f100,0x0000000000000000000000000000000000000000000000000000000000000001 +0x7298855ea8686169fdc034a9fade3d2ec3e3dfa11bb339b8cc2149b933a98d00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x7298855ea8686169fdc034a9fade3d2ec3e3dfa11bb339b8cc2149b933a98d01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x8ab72c2668369bc51d98c5c2e394e2ae3233558c777f6f438ba3b4b8431d8901,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x8ab72c2668369bc51d98c5c2e394e2ae3233558c777f6f438ba3b4b8431d8900,0x0000000000000000000000000000000000000000000000000000000000000001 +0xf413e083da4843de633caabb0d10a4276974de2ad1dac98325303f3cfc37f100,0x0000000000000000000000000000000000000000000000000000000000000001 +0xf413e083da4843de633caabb0d10a4276974de2ad1dac98325303f3cfc37f101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xbc0573b7f2152bfeea0796a555ca3a5b8cf3192a35b5356db7a1c63a1d810400,0x0000000000000000000000000000000000000000000000000000000000000001 +0xbc0573b7f2152bfeea0796a555ca3a5b8cf3192a35b5356db7a1c63a1d810401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x42346c74170eea587794238fb41505068c0b18280ca99b064adac474494cfd01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x42346c74170eea587794238fb41505068c0b18280ca99b064adac474494cfd00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xbe2d3cfde2dc24dc307cfc3926be4e71be68d19db0ccac3839ffe21d84dc5b00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xbe2d3cfde2dc24dc307cfc3926be4e71be68d19db0ccac3839ffe21d84dc5b01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa9ed0cb7398250eb47c854c45af1aa5968f697b163df12d652a0a6367f34f500,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0xa9ed0cb7398250eb47c854c45af1aa5968f697b163df12d652a0a6367f34f501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xaca89da9eebfad8395f981791803cc113e3a9cb9a795531ac38c54820511ed00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xaca89da9eebfad8395f981791803cc113e3a9cb9a795531ac38c54820511ed01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x4adb0cd7b3c4096953d89f9721ffbba23db495a0c0d16760483b6bb88c15a900,0x0000000000000000000000000000000000000000000000000000000000000001 +0x4adb0cd7b3c4096953d89f9721ffbba23db495a0c0d16760483b6bb88c15a901,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x645400fdc6c2eb43ff7d60782ef30344ea2f0337d6c6325c4d3c2c09e14e8e01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x645400fdc6c2eb43ff7d60782ef30344ea2f0337d6c6325c4d3c2c09e14e8e00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xec83f20130abcafe5c00573e421177b015931b4df220afb957b8ca0ba6df2501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xec83f20130abcafe5c00573e421177b015931b4df220afb957b8ca0ba6df2500,0x0000000000000000000000000000000000000000000000000000000000000001 +0x32036a5922602d34e7338f99807a69f6401522fbe4794f523a7ddc14df6faf00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x32036a5922602d34e7338f99807a69f6401522fbe4794f523a7ddc14df6faf01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe73ea1abf3b1d19aff2953bde339f3ec6ac731ed50364fa9d94359a1fee2a801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe73ea1abf3b1d19aff2953bde339f3ec6ac731ed50364fa9d94359a1fee2a800,0x0000000000000000000000000000000000000000000000000000000000000001 +0xb2b88d40ae3fc2b7628dcaeb77800373207b662d20dfc3df01310d5819aec001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xb2b88d40ae3fc2b7628dcaeb77800373207b662d20dfc3df01310d5819aec000,0x0000000000000000000000000000000000000000000000000000000000000001 +0xcfdb31dd1b054fbb9633a99c2d7d8ec54227d8d29d9fe96aba625a5cf0c7d001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xcfdb31dd1b054fbb9633a99c2d7d8ec54227d8d29d9fe96aba625a5cf0c7d000,0x0000000000000000000000000000000000000000000000000000000000000001 +0xae0aa687f188d82830e07620d40258fb6522d28843f071cc6a984a960cdfe801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xae0aa687f188d82830e07620d40258fb6522d28843f071cc6a984a960cdfe800,0x0000000000000000000000000000000000000000000000000000000000000001 +0xf32014abc53465cc35b0b315f0253aacb676d0aee02bf398b9c39743374c4400,0x0000000000000000000000000000000000000000000000000000000000000001 +0xf32014abc53465cc35b0b315f0253aacb676d0aee02bf398b9c39743374c4401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x3fa72ab5cf3dca786e05e95c3fba2c6d66984a9bd0a2d21f8bd259991d1f7200,0x0000000000000000000000000000000000000000000000000000000000000001 +0x3fa72ab5cf3dca786e05e95c3fba2c6d66984a9bd0a2d21f8bd259991d1f7201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa6f677f1eb3c0fb04e197c317130977a4f8d4ae24ab71ecf3623a36949cb6201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa6f677f1eb3c0fb04e197c317130977a4f8d4ae24ab71ecf3623a36949cb6200,0x0000000000000000000000000000000000000000000000000000000000000001 +0x210e5d16248c16f5110a4ea66a1965d5f20aeb52a90524a4d62d159a6c393401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x210e5d16248c16f5110a4ea66a1965d5f20aeb52a90524a4d62d159a6c393400,0x0000000000000000000000000000000000000000000000000000000000000001 +0x1690181790791db04bd0534d89f93a9ec90609672921bfd20cf2f23597bd4b00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x1690181790791db04bd0534d89f93a9ec90609672921bfd20cf2f23597bd4b01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x8a0271510cce2b98323a766a01e3ebde308c08dc249fe77142cd80bb20839d00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x8a0271510cce2b98323a766a01e3ebde308c08dc249fe77142cd80bb20839d01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe27a978f3055c451a5c162659379679cc660390e46ace724727cf588407c5900,0x0000000000000000000000000000000000000000000000000000000000000001 +0xe27a978f3055c451a5c162659379679cc660390e46ace724727cf588407c5901,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd7925597a130eff4f18a0af23be021c46f529399375c3fe9d8d23b3985033c00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xd7925597a130eff4f18a0af23be021c46f529399375c3fe9d8d23b3985033c01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x25dce2ecc39046261be20d64f0faf436fd5fb35fc5058227a898fda04a1e4001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x25dce2ecc39046261be20d64f0faf436fd5fb35fc5058227a898fda04a1e4000,0x0000000000000000000000000000000000000000000000000000000000000001 +0xb04ac21ba4ebcfb3c200dd625d13b0b5c02a64f8fab1bc7b6e123767f2a56100,0x0000000000000000000000000000000000000000000000000000000000000001 +0xb04ac21ba4ebcfb3c200dd625d13b0b5c02a64f8fab1bc7b6e123767f2a56101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xac3e2ea887da07cd8aa966a7454fccf1db00436e8fe18e23314ff647c5f72e01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xac3e2ea887da07cd8aa966a7454fccf1db00436e8fe18e23314ff647c5f72e00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x9f1e458ed3c7afc24285cc084733dc38657c573fdee2963873100dd69313b101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x9f1e458ed3c7afc24285cc084733dc38657c573fdee2963873100dd69313b100,0x0000000000000000000000000000000000000000000000000000000000000001 +0x9363cdebbb8bbfd27b84eab7fa4fa4f3a29a2add2098feafd4697f5d6dc55b00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x9363cdebbb8bbfd27b84eab7fa4fa4f3a29a2add2098feafd4697f5d6dc55b01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x171b04f5ca118924dc4159bec96998818fb798f7a5d5889e4b8b883c31c43900,0x0000000000000000000000000000000000000000000000000000000000000001 +0x171b04f5ca118924dc4159bec96998818fb798f7a5d5889e4b8b883c31c43901,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xb81f3f9eefc8e605fbbd7eeedefec860bf84f416b5b87a63a42d215d31ecce01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xb81f3f9eefc8e605fbbd7eeedefec860bf84f416b5b87a63a42d215d31ecce00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x6fbd980ef840668bd5c332337be3746f490473cdd9b2ae5485f6384ff5da4500,0x0000000000000000000000000000000000000000000000000000000000000001 +0x6fbd980ef840668bd5c332337be3746f490473cdd9b2ae5485f6384ff5da4501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x404007e6babb7a2a6d9f10c1be8368ce4e8b3eb790c887fa159e8b83d644b300,0x0000000000000000000000000000000000000000000000000000000000000001 +0x404007e6babb7a2a6d9f10c1be8368ce4e8b3eb790c887fa159e8b83d644b301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x67e0e7e23fbc51dd816235a179e50ed793e2a30e00865c9de7b2b36e1f397401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x67e0e7e23fbc51dd816235a179e50ed793e2a30e00865c9de7b2b36e1f397400,0x0000000000000000000000000000000000000000000000000000000000000001 +0xf9a3b66508fa2fadb4bbc46de8a66d31b5e36a0dccde88cfed11465abdc30300,0x0000000000000000000000000000000000000000000000000000000000000001 +0xf9a3b66508fa2fadb4bbc46de8a66d31b5e36a0dccde88cfed11465abdc30301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe1dd004d096ad30b731d6d44601eb42b5bf63e00ce6f699b37f5aa02d9808e01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe1dd004d096ad30b731d6d44601eb42b5bf63e00ce6f699b37f5aa02d9808e00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xae6571235e64be70551b8ddb1af9cefa77e1102687c7d8bd1609d1db5a629100,0x0000000000000000000000000000000000000000000000000000000000000001 +0xae6571235e64be70551b8ddb1af9cefa77e1102687c7d8bd1609d1db5a629101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe8a56d24000ed454ab29cd5d46a04d294ea35ba931d6d54c8489a1e75bd52000,0x0000000000000000000000000000000000000000000000000000000000000001 +0xe8a56d24000ed454ab29cd5d46a04d294ea35ba931d6d54c8489a1e75bd52001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xbb5c7cb658298aa1fa1b02a1c678979b05f1d3c2fe046fb42134047b97fb7400,0x0000000000000000000000000000000000000000000000000000000000000001 +0xbb5c7cb658298aa1fa1b02a1c678979b05f1d3c2fe046fb42134047b97fb7401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x53afa1f9fe1e45197d0080de26df3b84442b69c6e8c0ccf05de96efb4fe4d700,0x0000000000000000000000000000000000000000000000000000000000000001 +0x53afa1f9fe1e45197d0080de26df3b84442b69c6e8c0ccf05de96efb4fe4d701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd4dbc81973cd3f14ada638844390af3b677c7fa8f6cd6e054138f9d891556c01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd4dbc81973cd3f14ada638844390af3b677c7fa8f6cd6e054138f9d891556c00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xd5dd413012ae6bc8ec443a3d730557b5df4fcd3ddf74bd789781ed4caa965f00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xd5dd413012ae6bc8ec443a3d730557b5df4fcd3ddf74bd789781ed4caa965f01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x2da14ce7dcc11ad6ad87c70e8e3e52e2034d6e37f35ed39d6da1676a754bd701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x2da14ce7dcc11ad6ad87c70e8e3e52e2034d6e37f35ed39d6da1676a754bd700,0x0000000000000000000000000000000000000000000000000000000000000001 +0x3a717a71b89e6278527d209d3a63810308837c3e5606629c542bdb97765b9c00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x3a717a71b89e6278527d209d3a63810308837c3e5606629c542bdb97765b9c01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x47004bf1f55b5b749403c6eb7ca3b844b41397454a52789f0fcfd302d95cd700,0x0000000000000000000000000000000000000000000000000000000000000001 +0x47004bf1f55b5b749403c6eb7ca3b844b41397454a52789f0fcfd302d95cd701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x97827c7b8e9340e6cd22cb7f73249fb2b15a50ca7dcf70aa10268e6c0f566100,0x0000000000000000000000000000000000000000000000000000000000000001 +0x97827c7b8e9340e6cd22cb7f73249fb2b15a50ca7dcf70aa10268e6c0f566101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe674d053227b7a05e96a87f46c3a2406c24aae7b95ae3d5416a4faf45e31d601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe674d053227b7a05e96a87f46c3a2406c24aae7b95ae3d5416a4faf45e31d600,0x0000000000000000000000000000000000000000000000000000000000000001 +0x35e37865cf898ca89a6617057171a185ea0349923347a31ec92215e8fee70500,0x0000000000000000000000000000000000000000000000000000000000000001 +0x35e37865cf898ca89a6617057171a185ea0349923347a31ec92215e8fee70501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xcdff51a526028caff776fd8ef5bbede51dc861f6050e0f53ba14d668df605001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xcdff51a526028caff776fd8ef5bbede51dc861f6050e0f53ba14d668df605000,0x0000000000000000000000000000000000000000000000000000000000000001 +0xf2e2d3e991205b717d73b6e6a4184d6a12d9a5fc479904e5f2fa4f3bca6c6800,0x0000000000000000000000000000000000000000000000000000000000000001 +0xf2e2d3e991205b717d73b6e6a4184d6a12d9a5fc479904e5f2fa4f3bca6c6801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x4206f5976b55de0dae20ce4a3000665d70fafe48d5e83a2c23c5d36a6f402d00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x4206f5976b55de0dae20ce4a3000665d70fafe48d5e83a2c23c5d36a6f402d01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x94f85fa9828416be796fdee71fdc2f47b231e7b8bacef2612f53c050c65b6900,0x0000000000000000000000000000000000000000000000000000000000000001 +0x94f85fa9828416be796fdee71fdc2f47b231e7b8bacef2612f53c050c65b6901,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x57c75959ffb86d0b6fce45f78b256b5f1ad1a7b7ce6db1425aa34f965c83ba00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x57c75959ffb86d0b6fce45f78b256b5f1ad1a7b7ce6db1425aa34f965c83ba01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa78b8d5c04be31cc92fe38110c34b21da3e4a33a3b32494e200bbab91a9ac101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa78b8d5c04be31cc92fe38110c34b21da3e4a33a3b32494e200bbab91a9ac100,0x0000000000000000000000000000000000000000000000000000000000000001 +0x7d7ddc5e9261edd2469fff1cbcf6fd5f3d6d259d75590e4da903b7f8984b3200,0x0000000000000000000000000000000000000000000000000000000000000001 +0x7d7ddc5e9261edd2469fff1cbcf6fd5f3d6d259d75590e4da903b7f8984b3201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x44a16025ae78419bfc7d7d3cf623a199113ae2c42546dcc79d9088b9b3bd2001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x44a16025ae78419bfc7d7d3cf623a199113ae2c42546dcc79d9088b9b3bd2000,0x0000000000000000000000000000000000000000000000000000000000000001 +0x712c64d6f03decd7b2081878c217de0c5f1bba3f607f1e5ec038ff5a22d5f300,0x0000000000000000000000000000000000000000000000000000000000000001 +0x712c64d6f03decd7b2081878c217de0c5f1bba3f607f1e5ec038ff5a22d5f301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x965bd4f05072cb88f101e58e1a61ff371815b41a924fce05ab2d09a23bf9f800,0x0000000000000000000000000000000000000000000000000000000000000001 +0x965bd4f05072cb88f101e58e1a61ff371815b41a924fce05ab2d09a23bf9f801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa46311a3dccfc22987b0f5fd11384f4b5392d79b70221deb368e784ddf048d01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa46311a3dccfc22987b0f5fd11384f4b5392d79b70221deb368e784ddf048d00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x474315be77069529ce6d9671a9107c0d00502a24a0650c85085d1b7856df9501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x474315be77069529ce6d9671a9107c0d00502a24a0650c85085d1b7856df9500,0x0000000000000000000000000000000000000000000000000000000000000001 +0xfe9263e592db31518bfa265e73a52fc32b7552fded971069de3cea80af695f01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xfe9263e592db31518bfa265e73a52fc32b7552fded971069de3cea80af695f00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x69794876cab6650878d2cb1098217b04973699bafcbb2e7132b0749fcf3b2e00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x69794876cab6650878d2cb1098217b04973699bafcbb2e7132b0749fcf3b2e01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x760f28dd20e51352eca6e9d3ae3173a5863b696a4a875e423a2118f02f394400,0x0000000000000000000000000000000000000000000000000000000000000001 +0x760f28dd20e51352eca6e9d3ae3173a5863b696a4a875e423a2118f02f394401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x74af2ad62458feae1f6dbe0d8fb0070f1e49bc7dac2620c557d4063df892f201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x74af2ad62458feae1f6dbe0d8fb0070f1e49bc7dac2620c557d4063df892f200,0x0000000000000000000000000000000000000000000000000000000000000001 +0xedb14742928ed1724fdddea2ec8b1e10f1c4c16ecd2fa33eee8409ad316d3301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xedb14742928ed1724fdddea2ec8b1e10f1c4c16ecd2fa33eee8409ad316d3300,0x0000000000000000000000000000000000000000000000000000000000000001 +0x8de7fd416ba666e5b12bead9d1006526e9283b6c922b69fc010979cab36d7500,0x0000000000000000000000000000000000000000000000000000000000000001 +0x8de7fd416ba666e5b12bead9d1006526e9283b6c922b69fc010979cab36d7501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xbca8c967cff363f6d64f0455ad71b125732c09d876df08f08d54e20ebcc75f00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xbca8c967cff363f6d64f0455ad71b125732c09d876df08f08d54e20ebcc75f01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xb642d1637a669976bb1a3c78b352f7e7fc506acb7286cf507d2e31a2d697be01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xb642d1637a669976bb1a3c78b352f7e7fc506acb7286cf507d2e31a2d697be00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x5437e9cff1963a9864d71ab5a3553c7fe5600e95c2b13626e8e7bf4d347eed01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x5437e9cff1963a9864d71ab5a3553c7fe5600e95c2b13626e8e7bf4d347eed00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xc4629a90085917d887eb6468acda692396cda2be46ef02bedd3eaf7d1c9f5001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xc4629a90085917d887eb6468acda692396cda2be46ef02bedd3eaf7d1c9f5000,0x0000000000000000000000000000000000000000000000000000000000000001 +0x885d6afd35f40758efc2d7d522568e0973072c510f52be317a1a95d4150bd800,0x0000000000000000000000000000000000000000000000000000000000000001 +0x885d6afd35f40758efc2d7d522568e0973072c510f52be317a1a95d4150bd801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xfb70a769edf876e77afef731f5246f7f3d3e0a21b5b1db5e86661c2bf99a7301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xfb70a769edf876e77afef731f5246f7f3d3e0a21b5b1db5e86661c2bf99a7300,0x0000000000000000000000000000000000000000000000000000000000000001 +0x81b7e1c628ffb56f37afb74c6265e3759f3f9a4e0c02eb996316a93d304caf01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x81b7e1c628ffb56f37afb74c6265e3759f3f9a4e0c02eb996316a93d304caf00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xf1c8b543a44d1cb98698e23936d9cf7db94e439293ba328e2d7f705a3f6e2700,0x0000000000000000000000000000000000000000000000000000000000000001 +0xf1c8b543a44d1cb98698e23936d9cf7db94e439293ba328e2d7f705a3f6e2701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x513806709c716ae9699ba9f3af7e4c5d0c3279c656e746dccbf3bea0acf1c201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x513806709c716ae9699ba9f3af7e4c5d0c3279c656e746dccbf3bea0acf1c200,0x0000000000000000000000000000000000000000000000000000000000000001 +0x5d11935ff6c517446c59287a1b982e596495ea0739035c35f4ceb1beb124ca01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x5d11935ff6c517446c59287a1b982e596495ea0739035c35f4ceb1beb124ca00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x7dffc7fa0946dc711e02d6965091512b6345a1f582a9c3a99960fa2c161b3401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x7dffc7fa0946dc711e02d6965091512b6345a1f582a9c3a99960fa2c161b3400,0x0000000000000000000000000000000000000000000000000000000000000001 +0x722f9352eeff7ccb57916638d84833debc2bcf0bc8602ef387d174b3b5970801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x722f9352eeff7ccb57916638d84833debc2bcf0bc8602ef387d174b3b5970800,0x0000000000000000000000000000000000000000000000000000000000000001 +0x4d71c9d9a8303dc86332c04b36d01a20c3056f9e087d076cd73c4444128ff201,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x4d71c9d9a8303dc86332c04b36d01a20c3056f9e087d076cd73c4444128ff200,0x0000000000000000000000000000000000000000000000000000000000000001 +0x1797276aa691838eb067b8315fcf15cb42a0e7342c8d35454637be00a0433100,0x0000000000000000000000000000000000000000000000000000000000000001 +0x1797276aa691838eb067b8315fcf15cb42a0e7342c8d35454637be00a0433101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x8a30c89b5bf465b9ef852c8e1c045b230c886edb68b9f24fff822999d62ec501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x8a30c89b5bf465b9ef852c8e1c045b230c886edb68b9f24fff822999d62ec500,0x0000000000000000000000000000000000000000000000000000000000000001 +0x2ec5802b85b4ff360efd26442838a4f85caacfb9ca23e34d784462a390115e00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x2ec5802b85b4ff360efd26442838a4f85caacfb9ca23e34d784462a390115e01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x9bb0dba054d700d6cb055393ab467bbd29dcbfb27359e9d89169815910788600,0x0000000000000000000000000000000000000000000000000000000000000001 +0x9bb0dba054d700d6cb055393ab467bbd29dcbfb27359e9d89169815910788601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xce71bd4a36349dac2c2fb7a8e4ae3b1cdd0cd5b33f1f83b8fef421f985a65d00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xce71bd4a36349dac2c2fb7a8e4ae3b1cdd0cd5b33f1f83b8fef421f985a65d01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd3a0dd08e572d8f7750b8f2edd0db035a3f19676028c300ec4af44dc7a3b5a01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd3a0dd08e572d8f7750b8f2edd0db035a3f19676028c300ec4af44dc7a3b5a00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x0854aca86bd762731b69dd37fcff9da750b76588efe80d1f114737e19ab09100,0x0000000000000000000000000000000000000000000000000000000000000001 +0x0854aca86bd762731b69dd37fcff9da750b76588efe80d1f114737e19ab09101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd616df6675fcddfe89489d4abb3cc3430fcdf8ac7bf46ebdcdf7e00bc24ebe00,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0xd616df6675fcddfe89489d4abb3cc3430fcdf8ac7bf46ebdcdf7e00bc24ebe01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xdd1a15ff470d283e174d60ea9b2875eb38fcc2563afa5d4684fd0a8a2a1edc01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xdd1a15ff470d283e174d60ea9b2875eb38fcc2563afa5d4684fd0a8a2a1edc00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x70c3cc15bd568bc6984adef197a81519fe353d428d171216818a9df8738a5d00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x70c3cc15bd568bc6984adef197a81519fe353d428d171216818a9df8738a5d01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x710e2cb198d13fa9d24ce17ab21a2134d76692892e5d276ee9ed5e76cb39fb00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x710e2cb198d13fa9d24ce17ab21a2134d76692892e5d276ee9ed5e76cb39fb01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x1672d8264eed6705c54c46af7acb08ebdc46160d5ddd4e40143ce3c5db347e00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x1672d8264eed6705c54c46af7acb08ebdc46160d5ddd4e40143ce3c5db347e01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x3f192127a77a02047bf8c7fcb3375353a4648bd56bcc61f3883a8b071f1b0001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x3f192127a77a02047bf8c7fcb3375353a4648bd56bcc61f3883a8b071f1b0000,0x0000000000000000000000000000000000000000000000000000000000000001 +0xb2b00f7a3259ae36c45d3828d01a7aba1443e8c1d75c9489b50bd23d7f62e301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xb2b00f7a3259ae36c45d3828d01a7aba1443e8c1d75c9489b50bd23d7f62e300,0x0000000000000000000000000000000000000000000000000000000000000001 +0xfe8498a82b6e2bef7c74c6a69036c2cf7cdf9ee81abcd896a1ff1aa550edfa00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xfe8498a82b6e2bef7c74c6a69036c2cf7cdf9ee81abcd896a1ff1aa550edfa01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x7afd0c46c527bcc70a406121282a099be15ace017d9f26cd1b7abad82fdf4700,0x0000000000000000000000000000000000000000000000000000000000000001 +0x7afd0c46c527bcc70a406121282a099be15ace017d9f26cd1b7abad82fdf4701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x009916e5f0f66a7009d85170a1631c9a8e0ce562392dc4557a2160e546d8da01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x009916e5f0f66a7009d85170a1631c9a8e0ce562392dc4557a2160e546d8da00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x9a55946534ef8472a09b5d62e8a0124e5ae14d8b3a31bf7b3076543c90d27f00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x9a55946534ef8472a09b5d62e8a0124e5ae14d8b3a31bf7b3076543c90d27f01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xe7de7061109f9d0532d1e3c91a9b7f0c78d7f640e71e18d4a74d3440daf16500,0x0000000000000000000000000000000000000000000000000000000000000001 +0xe7de7061109f9d0532d1e3c91a9b7f0c78d7f640e71e18d4a74d3440daf16501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x2f4dd9e251f83f9640d494cd8c79b4fb09e924951865a95649812351c2673801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x2f4dd9e251f83f9640d494cd8c79b4fb09e924951865a95649812351c2673800,0x0000000000000000000000000000000000000000000000000000000000000001 +0xacf0e1ca7870a1e6d2071776d093deeb9c8afd869e1ecad515d45cea42cf5b00,0x0000000000000000000000000000000000000000000000000000000000000001 +0xacf0e1ca7870a1e6d2071776d093deeb9c8afd869e1ecad515d45cea42cf5b01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x462099aa5ea9c83bc35cad0c1d640f037a5e01b3aeb3cd63052d5fc1485a3d01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x462099aa5ea9c83bc35cad0c1d640f037a5e01b3aeb3cd63052d5fc1485a3d00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x579bffb72424cba33032f5632f5a64f47fba27571a4fbee51515a273c8742600,0x0000000000000000000000000000000000000000000000000000000000000001 +0x579bffb72424cba33032f5632f5a64f47fba27571a4fbee51515a273c8742601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xfba972aadad85356df2290b6b74706b2b08527b261c7b3399de303de5382e501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xfba972aadad85356df2290b6b74706b2b08527b261c7b3399de303de5382e500,0x0000000000000000000000000000000000000000000000000000000000000001 +0x3834093f36d29dec928b59e0c076b6e42ef5027e2bdb4dc7bb91c7d8c4650600,0x0000000000000000000000000000000000000000000000000000000000000001 +0x3834093f36d29dec928b59e0c076b6e42ef5027e2bdb4dc7bb91c7d8c4650601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xec2a3c0b06b88c6e2e67a7a8a31b5dbba5ab17511a293e71ed33a9df9098cf00,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0xec2a3c0b06b88c6e2e67a7a8a31b5dbba5ab17511a293e71ed33a9df9098cf01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xb1dd1471f4b2b2ed3483e0198cc72ca0a489966cdb2bfbf030da6f8577018400,0x0000000000000000000000000000000000000000000000000000000000000001 +0xb1dd1471f4b2b2ed3483e0198cc72ca0a489966cdb2bfbf030da6f8577018401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x132ca330c9e865553f97725a97f27b99d69522862b92e5ac47e61feca277e401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x132ca330c9e865553f97725a97f27b99d69522862b92e5ac47e61feca277e400,0x0000000000000000000000000000000000000000000000000000000000000001 +0x9d70be1c44a8dcc79d4528190a0da14c630f894b69aa0cec6ae01502a9248501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x9d70be1c44a8dcc79d4528190a0da14c630f894b69aa0cec6ae01502a9248500,0x0000000000000000000000000000000000000000000000000000000000000001 +0x68ac76317f968ee25a2255a09d0cc380d73c5b1ed809d726627dec08661e7500,0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000 +0x68ac76317f968ee25a2255a09d0cc380d73c5b1ed809d726627dec08661e7501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x4393666d0c56e21b39a353776c186cf88d789e3282f63687049d790f8958ae00,0x0000000000000000000000000000000000000000000000000000000000000001 +0x4393666d0c56e21b39a353776c186cf88d789e3282f63687049d790f8958ae01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 \ No newline at end of file From 4eee4719c876349d9a11b1a748d4e72950fe7330 Mon Sep 17 00:00:00 2001 From: Karim Taam Date: Tue, 5 Nov 2024 16:36:04 +0100 Subject: [PATCH 2/3] fix stateroot during leaf update Signed-off-by: Karim Taam --- .../trie/verkle/node/InternalNode.java | 4 +- .../trie/verkle/node/StoredStemNode.java | 4 + .../trie/verkle/visitor/PutVisitor.java | 8 +- .../ethereum/trie/verkle/ReloadTrieTest.java | 118 ++++++++++++++++++ src/test/resources/devnet-7-block-1.csv | 3 + src/test/resources/devnet-7-block-2.csv | 1 + src/test/resources/devnet-7-block-3.csv | 8 ++ src/test/resources/devnet-7-block-4.csv | 28 +++++ src/test/resources/devnet-7-block-5.csv | 1 + src/test/resources/devnet-7-block-6.csv | 5 + src/test/resources/devnet-7-block-7.csv | 42 +++++++ 11 files changed, 216 insertions(+), 6 deletions(-) create mode 100644 src/test/java/org/hyperledger/besu/ethereum/trie/verkle/ReloadTrieTest.java create mode 100644 src/test/resources/devnet-7-block-1.csv create mode 100644 src/test/resources/devnet-7-block-2.csv create mode 100644 src/test/resources/devnet-7-block-3.csv create mode 100644 src/test/resources/devnet-7-block-4.csv create mode 100644 src/test/resources/devnet-7-block-5.csv create mode 100644 src/test/resources/devnet-7-block-6.csv create mode 100644 src/test/resources/devnet-7-block-7.csv diff --git a/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/InternalNode.java b/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/InternalNode.java index 45e288fd..83cc554b 100644 --- a/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/InternalNode.java +++ b/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/InternalNode.java @@ -160,8 +160,10 @@ private List getStemExtensions() { int depth = location.size(); List extensions = new ArrayList<>(); for (Node childNode : getChildren()) { - if (childNode instanceof StemNode) { + if (childNode instanceof StemNode) { extensions.add(((StemNode) childNode).getStem().slice(depth)); + } else if (childNode instanceof StoredStemNode) { + extensions.add(((StoredStemNode) childNode).getStem().slice(depth)); } } return extensions; diff --git a/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/StoredStemNode.java b/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/StoredStemNode.java index f79a7d54..8d698996 100644 --- a/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/StoredStemNode.java +++ b/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/StoredStemNode.java @@ -74,6 +74,10 @@ public Node accept(NodeVisitor visitor) { return node.accept(visitor); } + public Bytes getStem() { + return stem; + } + /** * Get a string representation of the node. * diff --git a/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/visitor/PutVisitor.java b/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/visitor/PutVisitor.java index 2748392f..0b8d9281 100644 --- a/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/visitor/PutVisitor.java +++ b/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/visitor/PutVisitor.java @@ -141,11 +141,9 @@ public Node visit(final StemNode stemNode, final Bytes path) { public Node visit(final LeafNode leafNode, final Bytes path) { assert path.size() < 33; LeafNode newNode; - oldValue = leafNode.getValue(); - if (oldValue != value) { - newNode = - new LeafNode<>( - leafNode.getLocation(), value, leafNode.isPersisted() ? oldValue : Optional.empty()); + oldValue = leafNode.isPersisted() ? leafNode.getValue() : leafNode.getPrevious(); + if (leafNode.getValue() != value) { + newNode = new LeafNode<>(leafNode.getLocation(), value, oldValue); batchProcessor.ifPresent( processor -> processor.addNodeToBatch(newNode.getLocation(), newNode)); newNode.markDirty(); diff --git a/src/test/java/org/hyperledger/besu/ethereum/trie/verkle/ReloadTrieTest.java b/src/test/java/org/hyperledger/besu/ethereum/trie/verkle/ReloadTrieTest.java new file mode 100644 index 00000000..d7c019b0 --- /dev/null +++ b/src/test/java/org/hyperledger/besu/ethereum/trie/verkle/ReloadTrieTest.java @@ -0,0 +1,118 @@ +/* + * Copyright Hyperledger Besu Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * + */ +package org.hyperledger.besu.ethereum.trie.verkle; + +import org.hyperledger.besu.ethereum.trie.verkle.factory.StoredNodeFactory; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.util.HashMap; +import java.util.Map; +import java.util.stream.Stream; + +import org.apache.commons.csv.CSVFormat; +import org.apache.commons.csv.CSVParser; +import org.apache.commons.csv.CSVRecord; +import org.apache.tuweni.bytes.Bytes; +import org.apache.tuweni.bytes.Bytes32; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +public class ReloadTrieTest { + + private static VerkleTrieBatchHasher batchProcessor; + private static StoredNodeFactory nodeFactory; + private static NodeUpdaterMock nodeUpdater; + + private static Stream provideGenesisAndStateRootExpected() { + return Stream.of( + Arguments.of( + createDataMap( + "/gen-devnet-7.csv", + "0x514a0e5715b0b6c635ac140a5f25b8665af36cf31836344d27d9645fc57eab76")), + Arguments.of( + createDataMap( + "/devnet-7-block-1.csv", + "0x5ac6bdb5f3dc47cfa7665c981f795a1116459dfeecde174433d14d710c433cc4")), + Arguments.of( + createDataMap( + "/devnet-7-block-2.csv", + "0x2a63a94a9cb5dc948f98bd9a18cd4db0214adbc7cef2297a5f84362b14cb6513")), + Arguments.of( + createDataMap( + "/devnet-7-block-3.csv", + "0x4818200283aff9e7fd8a788c28bd6e54a6545a6f3af9e8d75a784c43a4b75fbe")), + Arguments.of( + createDataMap( + "/devnet-7-block-4.csv", + "0x25d529a8a345af4db9e0987fbaea65a17632835180e3a1fb8eeed93743996dc9")), + Arguments.of( + createDataMap( + "/devnet-7-block-5.csv", + "0x19eefd036a31289e338bec949d777ad56c6e7e12e769399a1b1322e601f282cf")), + Arguments.of( + createDataMap( + "/devnet-7-block-6.csv", + "0x0338f6cf3d3087bd33b1d47960f39c2a75a5bc060cf56fcb31ab6f0203bd6866")), + Arguments.of( + createDataMap( + "/devnet-7-block-7.csv", + "0x3a897a8bbc000434f83a9a53e80916fb75bc232497284ccdc3e5c9643f9fc7fc"))); + } + + private static Map createDataMap(String filePath, String expectedRoot) { + Map data = new HashMap<>(); + data.put("filePath", filePath); + data.put("expectedRoot", expectedRoot); + return data; + } + + @BeforeAll + public static void setUp() { + nodeUpdater = new NodeUpdaterMock(); + final NodeLoaderMock nodeLoader = new NodeLoaderMock(nodeUpdater.storage); + batchProcessor = new VerkleTrieBatchHasher(); + nodeFactory = new StoredNodeFactory<>(nodeLoader, value -> value); + } + + @ParameterizedTest + @MethodSource("provideGenesisAndStateRootExpected") + public void reloadTrieTest(final Map data) throws IOException { + final String genesisCSVFile = data.get("filePath"); + final String expectedRoot = data.get("expectedRoot"); + + StoredBatchedVerkleTrie trie = + new StoredBatchedVerkleTrie<>(batchProcessor, nodeFactory); + InputStream input = ReloadTrieTest.class.getResourceAsStream(genesisCSVFile); + try (Reader reader = new InputStreamReader(input, "UTF-8"); + CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT); ) { + for (CSVRecord csvRecord : csvParser) { + Bytes32 key = Bytes32.fromHexString(csvRecord.get(0)); + Bytes value = Bytes.fromHexString(csvRecord.get(1)); + trie.put(key, value); + } + } + trie.commit(nodeUpdater); + + Assertions.assertThat(trie.getRootHash()) + .isEqualByComparingTo(Bytes32.fromHexString(expectedRoot)); + } +} diff --git a/src/test/resources/devnet-7-block-1.csv b/src/test/resources/devnet-7-block-1.csv new file mode 100644 index 00000000..9ff99140 --- /dev/null +++ b/src/test/resources/devnet-7-block-1.csv @@ -0,0 +1,3 @@ +0x5b5fdfedd6a0e932da408ac7d772a36513d1eee9b9926e52620c43a433aad700,0x0000000000000000000000000000000000000000000000000000000000000000 +0x5b5fdfedd6a0e932da408ac7d772a36513d1eee9b9926e52620c43a433aad701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x5b5fdfedd6a0e932da408ac7d772a36513d1eee9b9926e52620c43a433aad740,0xd3223e707747b853db863c5020016d2bbad1896abb16fadb522eee3ef6f8a0af \ No newline at end of file diff --git a/src/test/resources/devnet-7-block-2.csv b/src/test/resources/devnet-7-block-2.csv new file mode 100644 index 00000000..c4fbf030 --- /dev/null +++ b/src/test/resources/devnet-7-block-2.csv @@ -0,0 +1 @@ +0x5b5fdfedd6a0e932da408ac7d772a36513d1eee9b9926e52620c43a433aad741,0xb675fdc29884458a36f2e4df2439d6076a1d963169a1c6a261958bc8064141d6 \ No newline at end of file diff --git a/src/test/resources/devnet-7-block-3.csv b/src/test/resources/devnet-7-block-3.csv new file mode 100644 index 00000000..a1474ee5 --- /dev/null +++ b/src/test/resources/devnet-7-block-3.csv @@ -0,0 +1,8 @@ +0x242271cf1aaa13ede9bb0a1550d6f181c6135afb92be8270221f03cc8a721e00,0x00000000000000000000000000000000000000000000000000b5303ad38b8000 +0x242271cf1aaa13ede9bb0a1550d6f181c6135afb92be8270221f03cc8a721e01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x5b5fdfedd6a0e932da408ac7d772a36513d1eee9b9926e52620c43a433aad742,0xb4bebc9af4e95d4d5cdc052efe78bca155e1f23c18cb89754fba998da964850d +0x96ed99018bcdb2439b664559f70a95ec161cfc6ef2b8e1b42ff61733e87f8e00,0x000000000000000000000000000000000000000000000000000032ceaf08eed0 +0x96ed99018bcdb2439b664559f70a95ec161cfc6ef2b8e1b42ff61733e87f8e01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd5f60a22f578b01222216496e3322676c2bd1a27f4814fff924ff5795b9dae00,0x0000000000000000000000000000000200000000033b2e3c9e65d3617abfc000 +0xdf67dea9181141d6255ac05c7ada5a590fb30a375023f16c31223f067319e300,0x00000000000000000000000000000000000000000000000000b5303ad38b8000 +0xdf67dea9181141d6255ac05c7ada5a590fb30a375023f16c31223f067319e301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 \ No newline at end of file diff --git a/src/test/resources/devnet-7-block-4.csv b/src/test/resources/devnet-7-block-4.csv new file mode 100644 index 00000000..a1bdc6fb --- /dev/null +++ b/src/test/resources/devnet-7-block-4.csv @@ -0,0 +1,28 @@ +0xd57b8a69aeb2f9a903ddcfd9369ba0f915d320b7d57a6f2e859353928493b101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xd57b8a69aeb2f9a903ddcfd9369ba0f915d320b7d57a6f2e859353928493b100,0x0000000000000000000000000000000100000000000000000000000000000000 +0x96ed99018bcdb2439b664559f70a95ec161cfc6ef2b8e1b42ff61733e87f8e00,0x0000000000000000000000000000000000000000000000000014680f9d8d592c +0x242271cf1aaa13ede9bb0a1550d6f181c6135afb92be8270221f03cc8a721e00,0x00000000000000000000000000000032000000000000000000a4fda9d59e70d5 +0xdf67dea9181141d6255ac05c7ada5a590fb30a375023f16c31223f067319e300,0x00000000000000000000000000000032000000000000000000a5ecf2b4eceac9 +0xc0237e3ff2222174a4406e598b9083eca7ac5394cfce7794dea7339c444f8b01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xc0237e3ff2222174a4406e598b9083eca7ac5394cfce7794dea7339c444f8b00,0x0000000000000000000000000000000100000000000000000000000000000000 +0x52ca948195944cfa735a1d2def19f04a938295941eb624ead196fde83d135100,0x0000000000000000000000000000000100000000000000000000000000000000 +0x52ca948195944cfa735a1d2def19f04a938295941eb624ead196fde83d135101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x7b043edef79253e864b2098976fb926c98fd5bc55a765211526eb83a9edac700,0x0000000000000000000000000000000100000000000000000000000000000000 +0x7b043edef79253e864b2098976fb926c98fd5bc55a765211526eb83a9edac701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x3b5d2025a2d86757f10dcd793dd52d3ef008522116d9491c86def85241e40000,0x0000000000000000000000000000000100000000000000000000000000000000 +0x3b5d2025a2d86757f10dcd793dd52d3ef008522116d9491c86def85241e40001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x5b5fdfedd6a0e932da408ac7d772a36513d1eee9b9926e52620c43a433aad743,0xe72df0e23ccf3f7d961611cdb358dd77eeacfd5874c596a9b6c289bbe24eaebc +0x66cbd1783205798606ddde3c7ab71a2daba2243aa2066eeb597183f01cd30701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x66cbd1783205798606ddde3c7ab71a2daba2243aa2066eeb597183f01cd30700,0x0000000000000000000000000000000100000000000000000000000000000000 +0xa36637bb6dbdc343cbfb4efcbd788184db76340f71cb11f6a6be3b11c8709601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa36637bb6dbdc343cbfb4efcbd788184db76340f71cb11f6a6be3b11c8709600,0x0000000000000000000000000000000100000000000000000000000000000000 +0x83600cb74dcd5bbff816546902a3e4e32a7731099720231b5b76361f7d98da01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x83600cb74dcd5bbff816546902a3e4e32a7731099720231b5b76361f7d98da00,0x0000000000000000000000000000000100000000000000000000000000000000 +0x47f6c383b84d7a69c294c3ce8e2bb9b51822ac95e6f3687d0fc7955df2a43e00,0x0000000000000000000000000000000100000000000000000000000000000000 +0x47f6c383b84d7a69c294c3ce8e2bb9b51822ac95e6f3687d0fc7955df2a43e01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xef4c4dab0e00ab80bd6029806f621755905462eccabeed4f39b2e0172b493000,0x0000000000000000000000000000000100000000000000000000000000000000 +0xef4c4dab0e00ab80bd6029806f621755905462eccabeed4f39b2e0172b493001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xfe75ef610182c86a9ddfe420cffb65b8d0be49c67fdece92607e7d061577e801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xfe75ef610182c86a9ddfe420cffb65b8d0be49c67fdece92607e7d061577e800,0x0000000000000000000000000000000100000000000000000000000000000000 +0x93ccc349d514f5d732690d06c5b5a626f83a91e9f06a42dbd0e6e8c116f82101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x93ccc349d514f5d732690d06c5b5a626f83a91e9f06a42dbd0e6e8c116f82100,0x0000000000000000000000000000000100000000000000000000000000000000 \ No newline at end of file diff --git a/src/test/resources/devnet-7-block-5.csv b/src/test/resources/devnet-7-block-5.csv new file mode 100644 index 00000000..3c8b94dd --- /dev/null +++ b/src/test/resources/devnet-7-block-5.csv @@ -0,0 +1 @@ +0x5b5fdfedd6a0e932da408ac7d772a36513d1eee9b9926e52620c43a433aad744,0xd22dde2b2e4198afd930db12a9affe5d0b4f887e912c3264db2629bc15c5c653 \ No newline at end of file diff --git a/src/test/resources/devnet-7-block-6.csv b/src/test/resources/devnet-7-block-6.csv new file mode 100644 index 00000000..6324b83f --- /dev/null +++ b/src/test/resources/devnet-7-block-6.csv @@ -0,0 +1,5 @@ +0x242271cf1aaa13ede9bb0a1550d6f181c6135afb92be8270221f03cc8a721e00,0x000000000000000000000000000000320000000000000000015a2de4a929f0d5 +0x5b5fdfedd6a0e932da408ac7d772a36513d1eee9b9926e52620c43a433aad745,0x648b78057f87b8ee85a161c46c0f647290210489cab795d1d54e7c015f33ed16 +0x96ed99018bcdb2439b664559f70a95ec161cfc6ef2b8e1b42ff61733e87f8e00,0x000000000000000000000000000000000000000000000000001490dc53a1b90c +0xd5f60a22f578b01222216496e3322676c2bd1a27f4814fff924ff5795b9dae00,0x0000000000000000000000000000000400000000033b2e3c9cfb37ea5894d8e0 +0xdf67dea9181141d6255ac05c7ada5a590fb30a375023f16c31223f067319e300,0x000000000000000000000000000000320000000000000000015b1d2d88786ac9 \ No newline at end of file diff --git a/src/test/resources/devnet-7-block-7.csv b/src/test/resources/devnet-7-block-7.csv new file mode 100644 index 00000000..a4b4e636 --- /dev/null +++ b/src/test/resources/devnet-7-block-7.csv @@ -0,0 +1,42 @@ +0x06500b755e95a1cae7c0380b81eefc1a6c637365d23ab04ac9ff659e27aa6a00,0x0000000000000000000000000000000100000000000000000000000000000000 +0x06500b755e95a1cae7c0380b81eefc1a6c637365d23ab04ac9ff659e27aa6a01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x8dc3f7b978faffc53b48dc1da4657a7e01462a7dbab22ec4ddc602afe2803f00,0x0000000000000000000000000000000100000000000000000000000000000000 +0x8dc3f7b978faffc53b48dc1da4657a7e01462a7dbab22ec4ddc602afe2803f01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x638447632f1434844a3c4c6bd69fc55edf3048b15b7ac50de3b84ce2e511c001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x638447632f1434844a3c4c6bd69fc55edf3048b15b7ac50de3b84ce2e511c000,0x0000000000000000000000000000000100000000000000000000000000000000 +0xb60bd055097a6f49f74f423d7cfd348840c8a2557d5c13170b0472688a480100,0x0000000000000000000000000000000100000000000000000000000000000000 +0xb60bd055097a6f49f74f423d7cfd348840c8a2557d5c13170b0472688a480101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x7cfc621bdde2e832c68726d675ed941a033d9aaeeadb918939028b61092ed100,0x0000000000000000000000000000000100000000000000000000000000000000 +0x7cfc621bdde2e832c68726d675ed941a033d9aaeeadb918939028b61092ed101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x96ed99018bcdb2439b664559f70a95ec161cfc6ef2b8e1b42ff61733e87f8e00,0x0000000000000000000000000000000000000000000000000027deb4f19b4d90 +0xa0905023569f2bba0ac978b6066eab3940d9288a228e485c1033a43ef12ae501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa0905023569f2bba0ac978b6066eab3940d9288a228e485c1033a43ef12ae500,0x0000000000000000000000000000000100000000000000000000000000000000 +0xf4afa2ee16c146e5ec91393b06db13c60219af25bf9b11022efa6ba43479f400,0x0000000000000000000000000000000100000000000000000000000000000000 +0xf4afa2ee16c146e5ec91393b06db13c60219af25bf9b11022efa6ba43479f401,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xb843c715717afa4726b6cd8e429e6d012e91c7cf0742150d6ac170d89c67b800,0x0000000000000000000000000000000100000000000000000000000000000000 +0xb843c715717afa4726b6cd8e429e6d012e91c7cf0742150d6ac170d89c67b801,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x9fd425188b9917b41b2afe93a7b993f3c1ec96069a3f0966f5fd1c98da87a501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x9fd425188b9917b41b2afe93a7b993f3c1ec96069a3f0966f5fd1c98da87a500,0x0000000000000000000000000000000100000000000000000000000000000000 +0x245a0401e4bb329a37599f06f0ecaa264009fa9fe204f68c2ef70072df4e2301,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x245a0401e4bb329a37599f06f0ecaa264009fa9fe204f68c2ef70072df4e2300,0x0000000000000000000000000000000100000000000000000000000000000000 +0x242271cf1aaa13ede9bb0a1550d6f181c6135afb92be8270221f03cc8a721e00,0x000000000000000000000000000000640000000000000000014c49efc39d57a9 +0xdf67dea9181141d6255ac05c7ada5a590fb30a375023f16c31223f067319e300,0x000000000000000000000000000000640000000000000000014df2b2e51e2771 +0x677e2dc09e1b6c4e9189de4b693d02bc5663b3d4d21b5466580bd1a01d300500,0x0000000000000000000000000000000100000000000000000000000000000000 +0x677e2dc09e1b6c4e9189de4b693d02bc5663b3d4d21b5466580bd1a01d300501,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xf28ad2ca0f9269815a6781e07ece3491bd3cfec6d7600f51a2d8f1cde9dd3001,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xf28ad2ca0f9269815a6781e07ece3491bd3cfec6d7600f51a2d8f1cde9dd3000,0x0000000000000000000000000000000100000000000000000000000000000000 +0x465a7870a11d3d7d1ccfe492d4e9d346d14ba90d4c25365df0ee3f87e8201701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x465a7870a11d3d7d1ccfe492d4e9d346d14ba90d4c25365df0ee3f87e8201700,0x0000000000000000000000000000000100000000000000000000000000000000 +0x2978696828257c5a2366ac963c76601827ad3a5c63ea3a069395b0aba92cb600,0x0000000000000000000000000000000100000000000000000000000000000000 +0x2978696828257c5a2366ac963c76601827ad3a5c63ea3a069395b0aba92cb601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xa7e216cd20afae7770abdc3a2292ef9f5c47e35e064d627c0e352313d22d2100,0x0000000000000000000000000000000100000000000000000000000000000000 +0xa7e216cd20afae7770abdc3a2292ef9f5c47e35e064d627c0e352313d22d2101,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xcdb13af8ff1652748b969bc69a877c79ef7a31615aea3ee94796b57d7a8e8600,0x0000000000000000000000000000000100000000000000000000000000000000 +0xcdb13af8ff1652748b969bc69a877c79ef7a31615aea3ee94796b57d7a8e8601,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x5b5fdfedd6a0e932da408ac7d772a36513d1eee9b9926e52620c43a433aad746,0x8f501d9292824248a829d498611d29efd7ccc730bf6e5bef7e3a9ad18c349bea +0xdcfecdcf8f71103fa8c135082bacf1bde458bc854cd5bca2d6da8c32e7ef2701,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0xdcfecdcf8f71103fa8c135082bacf1bde458bc854cd5bca2d6da8c32e7ef2700,0x0000000000000000000000000000000100000000000000000000000000000000 +0x0c75ad1c00f4cfd77db95255f396f2c7682f4c9a72141a94e0c7f2e8d9b5fe01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 +0x0c75ad1c00f4cfd77db95255f396f2c7682f4c9a72141a94e0c7f2e8d9b5fe00,0x0000000000000000000000000000000100000000000000000000000000000000 +0x2356616187a55137aa6299d3b34a8e8bc2b83eb1a0d88b08b13db9ddb5af0d00,0x0000000000000000000000000000000100000000000000000000000000000000 +0x2356616187a55137aa6299d3b34a8e8bc2b83eb1a0d88b08b13db9ddb5af0d01,0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 \ No newline at end of file From 3e837188aeddb76f535a460d4b75d9b1846de914 Mon Sep 17 00:00:00 2001 From: Karim Taam Date: Thu, 7 Nov 2024 13:44:29 +0100 Subject: [PATCH 3/3] clean after review Signed-off-by: Karim Taam --- .../besu/ethereum/trie/verkle/node/InternalNode.java | 4 ++-- .../hyperledger/besu/ethereum/trie/verkle/node/StemNode.java | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/InternalNode.java b/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/InternalNode.java index 83cc554b..6031092f 100644 --- a/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/InternalNode.java +++ b/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/InternalNode.java @@ -160,9 +160,9 @@ private List getStemExtensions() { int depth = location.size(); List extensions = new ArrayList<>(); for (Node childNode : getChildren()) { - if (childNode instanceof StemNode) { + if (childNode instanceof StemNode) { extensions.add(((StemNode) childNode).getStem().slice(depth)); - } else if (childNode instanceof StoredStemNode) { + } else if (childNode instanceof StoredStemNode) { extensions.add(((StoredStemNode) childNode).getStem().slice(depth)); } } diff --git a/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/StemNode.java b/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/StemNode.java index 14b4af0d..946d1002 100644 --- a/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/StemNode.java +++ b/src/main/java/org/hyperledger/besu/ethereum/trie/verkle/node/StemNode.java @@ -80,6 +80,7 @@ public StemNode( * @param location Optional location in the tree. * @param stem Node's stem. * @param hash Optional node's vector commitment's hash. + * @param previousHash Optional node's vector previous commitment's hash. * @param commitment Optional node's vector commitment. * @param leftHash Optional hash of vector commitment to left values. * @param leftCommitment Optional vector commitment to left values.