@coti-io/coti-contracts 0.1.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/npm-publish.yml +2 -1
- package/CONTRIBUTING.md +2 -2
- package/LICENSE +1 -1
- package/README.md +18 -35
- package/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.sol +3 -115
- package/contracts/mocks/README.md +1 -1
- package/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol +257 -280
- package/contracts/mocks/utils/mpc/BitwiseTestsContract.sol +93 -187
- package/contracts/mocks/utils/mpc/{Comparison1Tests.Contract.sol → Comparison1TestsContract.sol} +67 -115
- package/contracts/mocks/utils/mpc/Comparison2TestsContract.sol +76 -116
- package/contracts/mocks/utils/mpc/MinMaxTestsContract.sol +69 -164
- package/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.sol +103 -56
- package/contracts/mocks/utils/mpc/MiscellaneousTestsContract.sol +270 -0
- package/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract.sol +127 -0
- package/contracts/mocks/utils/mpc/README.md +12 -12
- package/contracts/mocks/utils/mpc/TransferScalarTestsContract.sol +54 -211
- package/contracts/mocks/utils/mpc/TransferTestsContract.sol +165 -640
- package/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract.sol +222 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract.sol +222 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol +223 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract.sol +222 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract.sol +265 -0
- package/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol +281 -0
- package/contracts/onboard/AccountOnboard.sol +3 -3
- package/contracts/token/PrivateERC20/PrivateERC20.sol +1 -1
- package/contracts/token/PrivateERC721/IERC721Errors.sol +57 -0
- package/contracts/token/PrivateERC721/PrivateERC721.sol +1 -1
- package/contracts/utils/mpc/MpcCore.sol +2835 -988
- package/contracts/utils/mpc/MpcInterface.sol +6 -4
- package/hardhat.config.ts +17 -6
- package/package.json +20 -4
- package/test/token/PrivateERC20/PrivateERC20.test.ts +2 -2
- package/test/utils/accounts.ts +1 -1
- package/test/utils/mpc/Precompile.test.ts +42 -39
- package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/ArithmeticTestsContract.ts +374 -0
- package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/PrecompilesArythmeticTestsContract.ts +374 -0
- package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/index.ts +5 -0
- package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.ts +96 -10
- package/typechain-types/contracts/mocks/utils/mpc/BitwiseTestsContract.ts +45 -5
- package/typechain-types/contracts/mocks/utils/mpc/Comparison1TestsContract.ts +374 -0
- package/typechain-types/contracts/mocks/utils/mpc/Comparison2TestsContract.ts +45 -5
- package/typechain-types/contracts/mocks/utils/mpc/MinMaxTestsContract.ts +25 -5
- package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.ts +62 -0
- package/typechain-types/contracts/mocks/utils/mpc/MiscellaneousTestsContract.ts +396 -0
- package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract.ts +251 -0
- package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract.ts +11 -8
- package/typechain-types/contracts/mocks/utils/mpc/TransferScalarTestsContract.ts +15 -15
- package/typechain-types/contracts/mocks/utils/mpc/TransferTestsContract.ts +15 -15
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowance64TestsContract.ts +251 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowanceTestsContract.ts +250 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/index.ts +5 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.ts +389 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_64TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_8TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/index.ts +5 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract.ts +391 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract.ts +306 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferTestsContract.ts +125 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferWithAllowanceTestsContract.ts +125 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/index.ts +5 -0
- package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.ts +296 -0
- package/typechain-types/contracts/mocks/utils/mpc/index.ts +9 -6
- package/typechain-types/contracts/onboard/AccountOnboard.ts +9 -4
- package/typechain-types/contracts/token/PrivateERC721/IERC721Errors.ts +69 -0
- package/typechain-types/contracts/token/PrivateERC721/index.ts +1 -0
- package/typechain-types/contracts/utils/mpc/MpcCore.ts +84 -0
- package/typechain-types/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations.ts +81 -40
- package/typechain-types/contracts/utils/mpc/index.ts +1 -0
- package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/ArithmeticTestsContract__factory.ts +387 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/PrecompilesArythmeticTestsContract__factory.ts +388 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +92 -7
- package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +38 -2
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/Comparison1TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +387 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +38 -2
- package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +15 -2
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +66 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous2TestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +424 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +285 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract__factory.ts +19 -3
- package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +4 -4
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +4 -4
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowance64TestsContract__factory.ts +294 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowanceTestsContract__factory.ts +292 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract__factory.ts +720 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_64TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_8TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract__factory.ts +724 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract__factory.ts +507 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferTestsContract__factory.ts +150 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferWithAllowanceTestsContract__factory.ts +150 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/index.ts +5 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract__factory.ts +434 -0
- package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +9 -4
- package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +1 -1
- package/typechain-types/factories/contracts/onboard/AccountOnboard__factory.ts +8 -2
- package/typechain-types/factories/contracts/token/PrivateERC721/IERC721Errors__factory.ts +128 -0
- package/typechain-types/factories/contracts/token/PrivateERC721/index.ts +1 -0
- package/typechain-types/factories/contracts/utils/mpc/MpcCore__factory.ts +77 -0
- package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations__factory.ts +124 -61
- package/typechain-types/factories/contracts/utils/mpc/index.ts +1 -0
- package/typechain-types/hardhat.d.ts +152 -26
- package/typechain-types/index.ts +20 -8
- package/contracts/access/DataPrivacyFramework/README.md +0 -68
- package/contracts/mocks/utils/mpc/Miscellaneous2TestsContract.sol +0 -448
- package/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol +0 -81
- package/contracts/mocks/utils/mpc/ShiftTestsContract.sol +0 -311
- package/contracts/token/PrivateERC20/README.md +0 -104
- package/contracts/token/PrivateERC721/README.md +0 -282
- package/contracts/utils/mpc/README.md +0 -82
package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous2TestsContract__factory.ts
CHANGED
|
@@ -377,7 +377,7 @@ const _abi = [
|
|
|
377
377
|
] as const;
|
|
378
378
|
|
|
379
379
|
const _bytecode =
|
|
380
|
-
"0x608060405234801561001057600080fd5b50615def80620000216000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063a103e4c011610071578063a103e4c01461018c578063a609476a146101bc578063acb38169146101ec578063b30fc30d1461021c578063de2927891461024c578063ebb571fd1461026a576100a9565b80632e544aa0146100ae578063690ec3d9146100de5780636c74e7141461010e57806380f937bc1461013e57806392bba3561461016e575b600080fd5b6100c860048036038101906100c39190614bf1565b610286565b6040516100d59190614c3b565b60405180910390f35b6100f860048036038101906100f39190614c8e565b610316565b6040516101059190614cca565b60405180910390f35b61012860048036038101906101239190614d1e565b61036c565b6040516101359190614d80565b60405180910390f35b61015860048036038101906101539190614e7b565b6106ce565b6040516101659190614ecb565b60405180910390f35b610176610822565b6040516101839190614cca565b60405180910390f35b6101a660048036038101906101a19190614ee6565b610838565b6040516101b39190614d80565b60405180910390f35b6101d660048036038101906101d19190614ee6565b610e17565b6040516101e39190614d80565b60405180910390f35b61020660048036038101906102019190614fde565b6113f6565b604051610213919061502a565b60405180910390f35b6102366004803603810190610231919061509d565b6114d4565b6040516102439190614d80565b60405180910390f35b61025461166b565b6040516102619190614d80565b60405180910390f35b610284600480360381019061027f91906151fa565b611681565b005b6000806102968360000151611728565b90506102a58360200151611728565b61ffff168161ffff161480156102ce57506102c38360400151611728565b61ffff168161ffff16145b61030d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610304906152f9565b60405180910390fd5b80915050919050565b600080610322836117c6565b9050600061032f8261187a565b905061033a81611918565b600060016101000a81548160ff021916908315150217905550600060019054906101000a900460ff1692505050919050565b60006103766149e5565b61037e614a2a565b610386614a4b565b61038e614a7a565b610399848888611681565b60006103a4896117c6565b90506103c16103bc82876000015188602001516119bf565b611a59565b6000806101000a81548160ff021916908360ff1602179055506103ed8186604001518760600151611af7565b8460000181815250506104098186600001518760600151611b91565b8460200181815250506104258186604001518760200151611c2c565b846040018181525050600061043985610286565b905060008054906101000a900460ff1660ff168161ffff1614610491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048890615365565b60405180910390fd5b6104a48287608001518860a00151611cc7565b8460000181815250506104c08287600001518860a00151611d61565b8460200181815250506104dc8287608001518860200151611dfc565b8460400181815250506104f88287604001518860a00151611e97565b8460600181815250506105148287608001518860600151611f32565b8460800181815250506000610528856113f6565b90508063ffffffff1660008054906101000a900460ff1660ff1614610582576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610579906153d1565b60405180910390fd5b610595838860c001518960e00151611fcd565b8460000181815250506105b18388600001518960e00151612067565b8460200181815250506105cd838860c001518960200151612102565b8460400181815250506105e98388604001518960e0015161219d565b846060018181525050610605838860c001518960600151612238565b8460800181815250506106218388608001518960e001516122d3565b8460a001818152505061063d838860c001518960a0015161236e565b8460c00181815250506000610651856106ce565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff16146106af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a69061543d565b60405180910390fd5b60008054906101000a900460ff16985050505050505050509392505050565b6000806106de8360000151612409565b90506106ed8360200151612409565b67ffffffffffffffff168167ffffffffffffffff1614801561072e57506107178360400151612409565b67ffffffffffffffff168167ffffffffffffffff16145b801561075957506107428360800151612409565b67ffffffffffffffff168167ffffffffffffffff16145b8015610784575061076d8360600151612409565b67ffffffffffffffff168167ffffffffffffffff16145b80156107af57506107988360c00151612409565b67ffffffffffffffff168167ffffffffffffffff16145b80156107da57506107c38360a00151612409565b67ffffffffffffffff168167ffffffffffffffff16145b610819576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610810906152f9565b60405180910390fd5b80915050919050565b60008060019054906101000a900460ff16905090565b60006108426149e5565b61084a614a2a565b610852614a4b565b61085a614a7a565b610865848888611681565b61087f61087a856000015186602001516124a6565b611a59565b6000806101000a81548160ff021916908360ff1602179055506108aa8460400151856060015161253d565b8360000181815250506108c5846000015185606001516125d4565b8360200181815250506108e08460400151856020015161266c565b83604001818152505060006108f484610286565b905060008054906101000a900460ff1660ff168161ffff161461094c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610943906154a9565b60405180910390fd5b61095e85608001518660a00151612704565b83600001818152505061097985600001518660a0015161279b565b83602001818152505061099485608001518660200151612833565b8360400181815250506109af85604001518660a001516128cb565b8360600181815250506109ca85608001518660600151612963565b83608001818152505060006109de846113f6565b90508063ffffffff1660008054906101000a900460ff1660ff1614610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f90615515565b60405180910390fd5b610a4a8660c001518760e001516129fb565b836000018181525050610a6586600001518760e00151612a92565b836020018181525050610a808660c001518760200151612b2a565b836040018181525050610a9b86604001518760e00151612bc2565b836060018181525050610ab68660c001518760600151612c5a565b836080018181525050610ad186608001518760e00151612cf2565b8360a0018181525050610aec8660c001518760a00151612d8a565b8360c00181815250506000610b00846106ce565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff1614610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5590615581565b60405180910390fd5b610b74610b6f8b8960200151612e22565b611a59565b60ff1660008054906101000a900460ff1660ff16148015610bbc5750610ba6610ba188600001518b612ebc565b611a59565b60ff1660008054906101000a900460ff1660ff16145b610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290615613565b60405180910390fd5b610c14610c0f8b60ff168960600151612f56565b611728565b61ffff1660008054906101000a900460ff1660ff16148015610c615750610c4a610c4588604001518b60ff16612ff1565b611728565b61ffff1660008054906101000a900460ff1660ff16145b610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c97906156a5565b60405180910390fd5b610cb9610cb48b60ff168960a0015161308c565b613129565b63ffffffff1660008054906101000a900460ff1660ff16148015610d0a5750610cf1610cec88608001518b60ff166131c7565b613129565b63ffffffff1660008054906101000a900460ff1660ff16145b610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4090615737565b60405180910390fd5b610d62610d5d8b60ff168960e00151613264565b612409565b67ffffffffffffffff1660008054906101000a900460ff1660ff16148015610dbb5750610d9e610d998860c001518b60ff16613305565b612409565b67ffffffffffffffff1660008054906101000a900460ff1660ff16145b610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df1906157c9565b60405180910390fd5b60008054906101000a900460ff1697505050505050505092915050565b6000610e216149e5565b610e29614a2a565b610e31614a4b565b610e39614a7a565b610e44848888611681565b610e5e610e59856000015186602001516133a6565b611a59565b6000806101000a81548160ff021916908360ff160217905550610e898460400151856060015161343d565b836000018181525050610ea4846000015185606001516134d4565b836020018181525050610ebf8460400151856020015161356c565b8360400181815250506000610ed384610286565b905060008054906101000a900460ff1660ff168161ffff1614610f2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2290615835565b60405180910390fd5b610f3d85608001518660a00151613604565b836000018181525050610f5885600001518660a0015161369b565b836020018181525050610f7385608001518660200151613733565b836040018181525050610f8e85604001518660a001516137cb565b836060018181525050610fa985608001518660600151613863565b8360800181815250506000610fbd846113f6565b90508063ffffffff1660008054906101000a900460ff1660ff1614611017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100e906158a1565b60405180910390fd5b6110298660c001518760e001516138fb565b83600001818152505061104486600001518760e00151613992565b83602001818152505061105f8660c001518760200151613a2a565b83604001818152505061107a86604001518760e00151613ac2565b8360600181815250506110958660c001518760600151613b5a565b8360800181815250506110b086608001518760e00151613bf2565b8360a00181815250506110cb8660c001518760a00151613c8a565b8360c001818152505060006110df846106ce565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff161461113d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111349061590d565b60405180910390fd5b61115361114e8b8960200151613d22565b611a59565b60ff1660008054906101000a900460ff1660ff1614801561119b575061118561118088600001518b613dbc565b611a59565b60ff1660008054906101000a900460ff1660ff16145b6111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d19061599f565b60405180910390fd5b6111f36111ee8b60ff168960600151613e56565b611728565b61ffff1660008054906101000a900460ff1660ff16148015611240575061122961122488604001518b60ff16613ef1565b611728565b61ffff1660008054906101000a900460ff1660ff16145b61127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127690615a31565b60405180910390fd5b6112986112938b60ff168960a00151613f8c565b613129565b63ffffffff1660008054906101000a900460ff1660ff161480156112e957506112d06112cb88608001518b60ff16614029565b613129565b63ffffffff1660008054906101000a900460ff1660ff16145b611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90615ac3565b60405180910390fd5b61134161133c8b60ff168960e001516140c6565b612409565b67ffffffffffffffff1660008054906101000a900460ff1660ff1614801561139a575061137d6113788860c001518b60ff16614167565b612409565b67ffffffffffffffff1660008054906101000a900460ff1660ff16145b6113d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d090615b55565b60405180910390fd5b60008054906101000a900460ff1697505050505050505092915050565b6000806114068360000151613129565b90506114158360200151613129565b63ffffffff168163ffffffff1614801561144657506114378360400151613129565b63ffffffff168163ffffffff16145b8015611469575061145a8360800151613129565b63ffffffff168163ffffffff16145b801561148c575061147d8360600151613129565b63ffffffff168163ffffffff16145b6114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c2906152f9565b60405180910390fd5b80915050919050565b6000806114e086614208565b905060006114ed866142a9565b905060006114fa8661434b565b9050600061150d8663ffffffff166143ef565b9050600061151a85614496565b905061152d61152882614534565b611a59565b6000806101000a81548160ff021916908360ff1602179055506000611551856145d2565b9050600061156661156183614670565b611728565b905060006115738661470e565b90506000611588611583836147ac565b613129565b905060006115958761484a565b905060006115aa6115a5836148e7565b612409565b90508461ffff1660008054906101000a900460ff1660ff161480156115e457508263ffffffff1660008054906101000a900460ff1660ff16145b801561160957508067ffffffffffffffff1660008054906101000a900460ff1660ff16145b611648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163f90615be7565b60405180910390fd5b60008054906101000a900460ff169b505050505050505050505050949350505050565b60008060009054906101000a900460ff16905090565b61168a82614208565b83600001818152505061169c81614208565b8360200181815250506116b18260ff166142a9565b8360400181815250506116c68160ff166142a9565b8360600181815250506116db8260ff1661434b565b8360800181815250506116f08160ff1661434b565b8360a00181815250506117058260ff166143ef565b8360c001818152505061171a8160ff166143ef565b8360e0018181525050505050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616002600481111561175b5761175a615c07565b5b60f81b846040518363ffffffff1660e01b815260040161177c929190615c80565b6020604051808303816000875af115801561179b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117bf9190615cd5565b9050919050565b600080826117d55760006117d8565b60015b60ff169050606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606000600481111561180e5761180d615c07565b5b60f81b836040518363ffffffff1660e01b815260040161182f929190615c80565b6020604051808303816000875af115801561184e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118729190615cd5565b915050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631d79e49a600060048111156118ad576118ac615c07565b5b60f81b846040518363ffffffff1660e01b81526004016118ce929190615c80565b6020604051808303816000875af11580156118ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119119190615cd5565b9050919050565b600080606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616000600481111561194c5761194b615c07565b5b60f81b856040518363ffffffff1660e01b815260040161196d929190615c80565b6020604051808303816000875af115801561198c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b09190615cd5565b90506000811415915050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d6119eb6001806000614984565b8686866040518563ffffffff1660e01b8152600401611a0d9493929190615d3d565b6020604051808303816000875af1158015611a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a509190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160016004811115611a8c57611a8b615c07565b5b60f81b846040518363ffffffff1660e01b8152600401611aad929190615c80565b6020604051808303816000875af1158015611acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af09190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611b236002806000614984565b8686866040518563ffffffff1660e01b8152600401611b459493929190615d3d565b6020604051808303816000875af1158015611b64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b889190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611bbe600160026000614984565b8686866040518563ffffffff1660e01b8152600401611be09493929190615d3d565b6020604051808303816000875af1158015611bff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c239190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611c59600260016000614984565b8686866040518563ffffffff1660e01b8152600401611c7b9493929190615d3d565b6020604051808303816000875af1158015611c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbe9190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611cf36003806000614984565b8686866040518563ffffffff1660e01b8152600401611d159493929190615d3d565b6020604051808303816000875af1158015611d34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d589190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611d8e600160036000614984565b8686866040518563ffffffff1660e01b8152600401611db09493929190615d3d565b6020604051808303816000875af1158015611dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df39190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611e29600360016000614984565b8686866040518563ffffffff1660e01b8152600401611e4b9493929190615d3d565b6020604051808303816000875af1158015611e6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8e9190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611ec4600260036000614984565b8686866040518563ffffffff1660e01b8152600401611ee69493929190615d3d565b6020604051808303816000875af1158015611f05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f299190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611f5f600360026000614984565b8686866040518563ffffffff1660e01b8152600401611f819493929190615d3d565b6020604051808303816000875af1158015611fa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc49190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611ff96004806000614984565b8686866040518563ffffffff1660e01b815260040161201b9493929190615d3d565b6020604051808303816000875af115801561203a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205e9190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d612094600160046000614984565b8686866040518563ffffffff1660e01b81526004016120b69493929190615d3d565b6020604051808303816000875af11580156120d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f99190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d61212f600460016000614984565b8686866040518563ffffffff1660e01b81526004016121519493929190615d3d565b6020604051808303816000875af1158015612170573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121949190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d6121ca600260046000614984565b8686866040518563ffffffff1660e01b81526004016121ec9493929190615d3d565b6020604051808303816000875af115801561220b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222f9190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d612265600460026000614984565b8686866040518563ffffffff1660e01b81526004016122879493929190615d3d565b6020604051808303816000875af11580156122a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ca9190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d612300600360046000614984565b8686866040518563ffffffff1660e01b81526004016123229493929190615d3d565b6020604051808303816000875af1158015612341573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123659190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d61239b600460036000614984565b8686866040518563ffffffff1660e01b81526004016123bd9493929190615d3d565b6020604051808303816000875af11580156123dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124009190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160048081111561243b5761243a615c07565b5b60f81b846040518363ffffffff1660e01b815260040161245c929190615c80565b6020604051808303816000875af115801561247b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249f9190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96124d26001806000614984565b85856040518463ffffffff1660e01b81526004016124f293929190615d82565b6020604051808303816000875af1158015612511573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125359190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96125696002806000614984565b85856040518463ffffffff1660e01b815260040161258993929190615d82565b6020604051808303816000875af11580156125a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cc9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612601600160026000614984565b85856040518463ffffffff1660e01b815260040161262193929190615d82565b6020604051808303816000875af1158015612640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126649190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612699600260016000614984565b85856040518463ffffffff1660e01b81526004016126b993929190615d82565b6020604051808303816000875af11580156126d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126fc9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96127306003806000614984565b85856040518463ffffffff1660e01b815260040161275093929190615d82565b6020604051808303816000875af115801561276f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127939190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96127c8600160036000614984565b85856040518463ffffffff1660e01b81526004016127e893929190615d82565b6020604051808303816000875af1158015612807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282b9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612860600360016000614984565b85856040518463ffffffff1660e01b815260040161288093929190615d82565b6020604051808303816000875af115801561289f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c39190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96128f8600260036000614984565b85856040518463ffffffff1660e01b815260040161291893929190615d82565b6020604051808303816000875af1158015612937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061295b9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612990600360026000614984565b85856040518463ffffffff1660e01b81526004016129b093929190615d82565b6020604051808303816000875af11580156129cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f39190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612a276004806000614984565b85856040518463ffffffff1660e01b8152600401612a4793929190615d82565b6020604051808303816000875af1158015612a66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8a9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612abf600160046000614984565b85856040518463ffffffff1660e01b8152600401612adf93929190615d82565b6020604051808303816000875af1158015612afe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b229190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612b57600460016000614984565b85856040518463ffffffff1660e01b8152600401612b7793929190615d82565b6020604051808303816000875af1158015612b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bba9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612bef600260046000614984565b85856040518463ffffffff1660e01b8152600401612c0f93929190615d82565b6020604051808303816000875af1158015612c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c529190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612c87600460026000614984565b85856040518463ffffffff1660e01b8152600401612ca793929190615d82565b6020604051808303816000875af1158015612cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cea9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612d1f600360046000614984565b85856040518463ffffffff1660e01b8152600401612d3f93929190615d82565b6020604051808303816000875af1158015612d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d829190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612db7600460036000614984565b85856040518463ffffffff1660e01b8152600401612dd793929190615d82565b6020604051808303816000875af1158015612df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e1a9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612e4e6001806001614984565b8560ff16856040518463ffffffff1660e01b8152600401612e7193929190615d82565b6020604051808303816000875af1158015612e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eb49190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612ee86001806002614984565b858560ff166040518463ffffffff1660e01b8152600401612f0b93929190615d82565b6020604051808303816000875af1158015612f2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f4e9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612f826002806001614984565b8561ffff16856040518463ffffffff1660e01b8152600401612fa693929190615d82565b6020604051808303816000875af1158015612fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe99190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b961301d6001806002614984565b858561ffff166040518463ffffffff1660e01b815260040161304193929190615d82565b6020604051808303816000875af1158015613060573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130849190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96130b86003806001614984565b8563ffffffff16856040518463ffffffff1660e01b81526004016130de93929190615d82565b6020604051808303816000875af11580156130fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131219190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616003600481111561315c5761315b615c07565b5b60f81b846040518363ffffffff1660e01b815260040161317d929190615c80565b6020604051808303816000875af115801561319c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c09190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96131f36003806002614984565b858563ffffffff166040518463ffffffff1660e01b815260040161321993929190615d82565b6020604051808303816000875af1158015613238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061325c9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96132906004806001614984565b8567ffffffffffffffff16856040518463ffffffff1660e01b81526004016132ba93929190615d82565b6020604051808303816000875af11580156132d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132fd9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96133316004806002614984565b858567ffffffffffffffff166040518463ffffffff1660e01b815260040161335b93929190615d82565b6020604051808303816000875af115801561337a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061339e9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56133d26001806000614984565b85856040518463ffffffff1660e01b81526004016133f293929190615d82565b6020604051808303816000875af1158015613411573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134359190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56134696002806000614984565b85856040518463ffffffff1660e01b815260040161348993929190615d82565b6020604051808303816000875af11580156134a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134cc9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613501600160026000614984565b85856040518463ffffffff1660e01b815260040161352193929190615d82565b6020604051808303816000875af1158015613540573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135649190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613599600260016000614984565b85856040518463ffffffff1660e01b81526004016135b993929190615d82565b6020604051808303816000875af11580156135d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135fc9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56136306003806000614984565b85856040518463ffffffff1660e01b815260040161365093929190615d82565b6020604051808303816000875af115801561366f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136939190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56136c8600160036000614984565b85856040518463ffffffff1660e01b81526004016136e893929190615d82565b6020604051808303816000875af1158015613707573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061372b9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613760600360016000614984565b85856040518463ffffffff1660e01b815260040161378093929190615d82565b6020604051808303816000875af115801561379f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137c39190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56137f8600260036000614984565b85856040518463ffffffff1660e01b815260040161381893929190615d82565b6020604051808303816000875af1158015613837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061385b9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613890600360026000614984565b85856040518463ffffffff1660e01b81526004016138b093929190615d82565b6020604051808303816000875af11580156138cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138f39190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56139276004806000614984565b85856040518463ffffffff1660e01b815260040161394793929190615d82565b6020604051808303816000875af1158015613966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061398a9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56139bf600160046000614984565b85856040518463ffffffff1660e01b81526004016139df93929190615d82565b6020604051808303816000875af11580156139fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a229190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613a57600460016000614984565b85856040518463ffffffff1660e01b8152600401613a7793929190615d82565b6020604051808303816000875af1158015613a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aba9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613aef600260046000614984565b85856040518463ffffffff1660e01b8152600401613b0f93929190615d82565b6020604051808303816000875af1158015613b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b529190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613b87600460026000614984565b85856040518463ffffffff1660e01b8152600401613ba793929190615d82565b6020604051808303816000875af1158015613bc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bea9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613c1f600360046000614984565b85856040518463ffffffff1660e01b8152600401613c3f93929190615d82565b6020604051808303816000875af1158015613c5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c829190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613cb7600460036000614984565b85856040518463ffffffff1660e01b8152600401613cd793929190615d82565b6020604051808303816000875af1158015613cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d1a9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613d4e6001806001614984565b8560ff16856040518463ffffffff1660e01b8152600401613d7193929190615d82565b6020604051808303816000875af1158015613d90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613db49190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613de86001806002614984565b858560ff166040518463ffffffff1660e01b8152600401613e0b93929190615d82565b6020604051808303816000875af1158015613e2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e4e9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613e826002806001614984565b8561ffff16856040518463ffffffff1660e01b8152600401613ea693929190615d82565b6020604051808303816000875af1158015613ec5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ee99190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613f1d6001806002614984565b858561ffff166040518463ffffffff1660e01b8152600401613f4193929190615d82565b6020604051808303816000875af1158015613f60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f849190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613fb86003806001614984565b8563ffffffff16856040518463ffffffff1660e01b8152600401613fde93929190615d82565b6020604051808303816000875af1158015613ffd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140219190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56140556003806002614984565b858563ffffffff166040518463ffffffff1660e01b815260040161407b93929190615d82565b6020604051808303816000875af115801561409a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140be9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56140f26004806001614984565b8567ffffffffffffffff16856040518463ffffffff1660e01b815260040161411c93929190615d82565b6020604051808303816000875af115801561413b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061415f9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56141936004806002614984565b858567ffffffffffffffff166040518463ffffffff1660e01b81526004016141bd93929190615d82565b6020604051808303816000875af11580156141dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142009190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606001600481111561423b5761423a615c07565b5b60f81b8460ff166040518363ffffffff1660e01b815260040161425f929190615c80565b6020604051808303816000875af115801561427e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142a29190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600260048111156142dc576142db615c07565b5b60f81b8461ffff166040518363ffffffff1660e01b8152600401614301929190615c80565b6020604051808303816000875af1158015614320573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143449190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606003600481111561437e5761437d615c07565b5b60f81b8463ffffffff166040518363ffffffff1660e01b81526004016143a5929190615c80565b6020604051808303816000875af11580156143c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143e89190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060048081111561442157614420615c07565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b815260040161444c929190615c80565b6020604051808303816000875af115801561446b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061448f9190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663c50c9c02600160048111156144c9576144c8615c07565b5b60f81b846040518363ffffffff1660e01b81526004016144ea929190615c80565b6020604051808303816000875af1158015614509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061452d9190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d2c135e56001600481111561456757614566615c07565b5b60f81b846040518363ffffffff1660e01b8152600401614588929190615c80565b6020604051808303816000875af11580156145a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145cb9190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663c50c9c026002600481111561460557614604615c07565b5b60f81b846040518363ffffffff1660e01b8152600401614626929190615c80565b6020604051808303816000875af1158015614645573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146699190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d2c135e5600260048111156146a3576146a2615c07565b5b60f81b846040518363ffffffff1660e01b81526004016146c4929190615c80565b6020604051808303816000875af11580156146e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147079190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663c50c9c026003600481111561474157614740615c07565b5b60f81b846040518363ffffffff1660e01b8152600401614762929190615c80565b6020604051808303816000875af1158015614781573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147a59190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d2c135e5600360048111156147df576147de615c07565b5b60f81b846040518363ffffffff1660e01b8152600401614800929190615c80565b6020604051808303816000875af115801561481f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148439190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663c50c9c0260048081111561487c5761487b615c07565b5b60f81b846040518363ffffffff1660e01b815260040161489d929190615c80565b6020604051808303816000875af11580156148bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148e09190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d2c135e560048081111561491957614918615c07565b5b60f81b846040518363ffffffff1660e01b815260040161493a929190615c80565b6020604051808303816000875af1158015614959573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061497d9190615cd5565b9050919050565b600081600281111561499957614998615c07565b5b60ff1660088460048111156149b1576149b0615c07565b5b61ffff16901b61ffff1660108660048111156149d0576149cf615c07565b5b62ffffff16901b171760e81b90509392505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614b1482614acb565b810181811067ffffffffffffffff82111715614b3357614b32614adc565b5b80604052505050565b6000614b46614ab7565b9050614b528282614b0b565b919050565b6000819050919050565b614b6a81614b57565b8114614b7557600080fd5b50565b600081359050614b8781614b61565b92915050565b600060608284031215614ba357614ba2614ac6565b5b614bad6060614b3c565b90506000614bbd84828501614b78565b6000830152506020614bd184828501614b78565b6020830152506040614be584828501614b78565b60408301525092915050565b600060608284031215614c0757614c06614ac1565b5b6000614c1584828501614b8d565b91505092915050565b600061ffff82169050919050565b614c3581614c1e565b82525050565b6000602082019050614c506000830184614c2c565b92915050565b60008115159050919050565b614c6b81614c56565b8114614c7657600080fd5b50565b600081359050614c8881614c62565b92915050565b600060208284031215614ca457614ca3614ac1565b5b6000614cb284828501614c79565b91505092915050565b614cc481614c56565b82525050565b6000602082019050614cdf6000830184614cbb565b92915050565b600060ff82169050919050565b614cfb81614ce5565b8114614d0657600080fd5b50565b600081359050614d1881614cf2565b92915050565b600080600060608486031215614d3757614d36614ac1565b5b6000614d4586828701614c79565b9350506020614d5686828701614d09565b9250506040614d6786828701614d09565b9150509250925092565b614d7a81614ce5565b82525050565b6000602082019050614d956000830184614d71565b92915050565b614da481614b57565b8114614daf57600080fd5b50565b600081359050614dc181614d9b565b92915050565b600060e08284031215614ddd57614ddc614ac6565b5b614de760e0614b3c565b90506000614df784828501614db2565b6000830152506020614e0b84828501614db2565b6020830152506040614e1f84828501614db2565b6040830152506060614e3384828501614db2565b6060830152506080614e4784828501614db2565b60808301525060a0614e5b84828501614db2565b60a08301525060c0614e6f84828501614db2565b60c08301525092915050565b600060e08284031215614e9157614e90614ac1565b5b6000614e9f84828501614dc7565b91505092915050565b600067ffffffffffffffff82169050919050565b614ec581614ea8565b82525050565b6000602082019050614ee06000830184614ebc565b92915050565b60008060408385031215614efd57614efc614ac1565b5b6000614f0b85828601614d09565b9250506020614f1c85828601614d09565b9150509250929050565b614f2f81614b57565b8114614f3a57600080fd5b50565b600081359050614f4c81614f26565b92915050565b600060a08284031215614f6857614f67614ac6565b5b614f7260a0614b3c565b90506000614f8284828501614f3d565b6000830152506020614f9684828501614f3d565b6020830152506040614faa84828501614f3d565b6040830152506060614fbe84828501614f3d565b6060830152506080614fd284828501614f3d565b60808301525092915050565b600060a08284031215614ff457614ff3614ac1565b5b600061500284828501614f52565b91505092915050565b600063ffffffff82169050919050565b6150248161500b565b82525050565b600060208201905061503f600083018461501b565b92915050565b61504e81614c1e565b811461505957600080fd5b50565b60008135905061506b81615045565b92915050565b61507a8161500b565b811461508557600080fd5b50565b60008135905061509781615071565b92915050565b600080600080608085870312156150b7576150b6614ac1565b5b60006150c587828801614d09565b94505060206150d68782880161505c565b93505060406150e787828801615088565b92505060606150f887828801615088565b91505092959194509250565b61510d81614b57565b811461511857600080fd5b50565b60008135905061512a81615104565b92915050565b6000610100828403121561514757615146614ac6565b5b615152610100614b3c565b905060006151628482850161511b565b60008301525060206151768482850161511b565b602083015250604061518a84828501614b78565b604083015250606061519e84828501614b78565b60608301525060806151b284828501614f3d565b60808301525060a06151c684828501614f3d565b60a08301525060c06151da84828501614db2565b60c08301525060e06151ee84828501614db2565b60e08301525092915050565b6000806000610140848603121561521457615213614ac1565b5b600061522286828701615130565b93505061010061523486828701614d09565b92505061012061524686828701614d09565b9150509250925092565b600082825260208201905092915050565b7f64656372797074416e64436f6d70617265416c6c526573756c74733a2046616960008201527f6c656420746f206465637279707420616e6420636f6d7061726520616c6c207260208201527f6573756c74730000000000000000000000000000000000000000000000000000604082015250565b60006152e3604683615250565b91506152ee82615261565b606082019050919050565b60006020820190508181036000830152615312816152d6565b9050919050565b7f6d7578546573743a2063617374203136206661696c6564000000000000000000600082015250565b600061534f601783615250565b915061535a82615319565b602082019050919050565b6000602082019050818103600083015261537e81615342565b9050919050565b7f6d7578546573743a2063617374203332206661696c6564000000000000000000600082015250565b60006153bb601783615250565b91506153c682615385565b602082019050919050565b600060208201905081810360008301526153ea816153ae565b9050919050565b7f6d7578546573743a2063617374203634206661696c6564000000000000000000600082015250565b6000615427601783615250565b9150615432826153f1565b602082019050919050565b600060208201905081810360008301526154568161541a565b9050919050565b7f72656d546573743a2063617374203136206661696c6564000000000000000000600082015250565b6000615493601783615250565b915061549e8261545d565b602082019050919050565b600060208201905081810360008301526154c281615486565b9050919050565b7f72656d546573743a2063617374203332206661696c6564000000000000000000600082015250565b60006154ff601783615250565b915061550a826154c9565b602082019050919050565b6000602082019050818103600083015261552e816154f2565b9050919050565b7f72656d546573743a2063617374203634206661696c6564000000000000000000600082015250565b600061556b601783615250565b915061557682615535565b602082019050919050565b6000602082019050818103600083015261559a8161555e565b9050919050565b7f72656d546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b60006155fd602783615250565b9150615608826155a1565b604082019050919050565b6000602082019050818103600083015261562c816155f0565b9050919050565b7f72656d546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b600061568f602883615250565b915061569a82615633565b604082019050919050565b600060208201905081810360008301526156be81615682565b9050919050565b7f72656d546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615721602883615250565b915061572c826156c5565b604082019050919050565b6000602082019050818103600083015261575081615714565b9050919050565b7f72656d546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b60006157b3602883615250565b91506157be82615757565b604082019050919050565b600060208201905081810360008301526157e2816157a6565b9050919050565b7f646976546573743a2063617374203136206661696c6564000000000000000000600082015250565b600061581f601783615250565b915061582a826157e9565b602082019050919050565b6000602082019050818103600083015261584e81615812565b9050919050565b7f646976546573743a2063617374203332206661696c6564000000000000000000600082015250565b600061588b601783615250565b915061589682615855565b602082019050919050565b600060208201905081810360008301526158ba8161587e565b9050919050565b7f646976546573743a2063617374203634206661696c6564000000000000000000600082015250565b60006158f7601783615250565b9150615902826158c1565b602082019050919050565b60006020820190508181036000830152615926816158ea565b9050919050565b7f646976546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b6000615989602783615250565b91506159948261592d565b604082019050919050565b600060208201905081810360008301526159b88161597c565b9050919050565b7f646976546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615a1b602883615250565b9150615a26826159bf565b604082019050919050565b60006020820190508181036000830152615a4a81615a0e565b9050919050565b7f646976546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615aad602883615250565b9150615ab882615a51565b604082019050919050565b60006020820190508181036000830152615adc81615aa0565b9050919050565b7f646976546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615b3f602883615250565b9150615b4a82615ae3565b604082019050919050565b60006020820190508181036000830152615b6e81615b32565b9050919050565b7f4661696c656420746f206f6666626f61726420616e64206f6e626f617264206160008201527f6c6c2076616c7565730000000000000000000000000000000000000000000000602082015250565b6000615bd1602983615250565b9150615bdc82615b75565b604082019050919050565b60006020820190508181036000830152615c0081615bc4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b615c6b81615c36565b82525050565b615c7a81614b57565b82525050565b6000604082019050615c956000830185615c62565b615ca26020830184615c71565b9392505050565b615cb281614b57565b8114615cbd57600080fd5b50565b600081519050615ccf81615ca9565b92915050565b600060208284031215615ceb57615cea614ac1565b5b6000615cf984828501615cc0565b91505092915050565b60007fffffff000000000000000000000000000000000000000000000000000000000082169050919050565b615d3781615d02565b82525050565b6000608082019050615d526000830187615d2e565b615d5f6020830186615c71565b615d6c6040830185615c71565b615d796060830184615c71565b95945050505050565b6000606082019050615d976000830186615d2e565b615da46020830185615c71565b615db16040830184615c71565b94935050505056fea2646970667358221220773797954435188e1632a14107ecb9abaed8b67348c3140474ce12406eac818d64736f6c63430008140033";
|
|
380
|
+
"0x608060405234801561001057600080fd5b50615def80620000216000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063a103e4c011610071578063a103e4c01461018c578063a609476a146101bc578063acb38169146101ec578063b30fc30d1461021c578063de2927891461024c578063ebb571fd1461026a576100a9565b80632e544aa0146100ae578063690ec3d9146100de5780636c74e7141461010e57806380f937bc1461013e57806392bba3561461016e575b600080fd5b6100c860048036038101906100c39190614bf1565b610286565b6040516100d59190614c3b565b60405180910390f35b6100f860048036038101906100f39190614c8e565b610316565b6040516101059190614cca565b60405180910390f35b61012860048036038101906101239190614d1e565b61036c565b6040516101359190614d80565b60405180910390f35b61015860048036038101906101539190614e7b565b6106ce565b6040516101659190614ecb565b60405180910390f35b610176610822565b6040516101839190614cca565b60405180910390f35b6101a660048036038101906101a19190614ee6565b610838565b6040516101b39190614d80565b60405180910390f35b6101d660048036038101906101d19190614ee6565b610e17565b6040516101e39190614d80565b60405180910390f35b61020660048036038101906102019190614fde565b6113f6565b604051610213919061502a565b60405180910390f35b6102366004803603810190610231919061509d565b6114d4565b6040516102439190614d80565b60405180910390f35b61025461166b565b6040516102619190614d80565b60405180910390f35b610284600480360381019061027f91906151fa565b611681565b005b6000806102968360000151611728565b90506102a58360200151611728565b61ffff168161ffff161480156102ce57506102c38360400151611728565b61ffff168161ffff16145b61030d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610304906152f9565b60405180910390fd5b80915050919050565b600080610322836117c6565b9050600061032f8261187a565b905061033a81611918565b600060016101000a81548160ff021916908315150217905550600060019054906101000a900460ff1692505050919050565b60006103766149e5565b61037e614a2a565b610386614a4b565b61038e614a7a565b610399848888611681565b60006103a4896117c6565b90506103c16103bc82876000015188602001516119bf565b611a59565b6000806101000a81548160ff021916908360ff1602179055506103ed8186604001518760600151611af7565b8460000181815250506104098186600001518760600151611b91565b8460200181815250506104258186604001518760200151611c2c565b846040018181525050600061043985610286565b905060008054906101000a900460ff1660ff168161ffff1614610491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048890615365565b60405180910390fd5b6104a48287608001518860a00151611cc7565b8460000181815250506104c08287600001518860a00151611d61565b8460200181815250506104dc8287608001518860200151611dfc565b8460400181815250506104f88287604001518860a00151611e97565b8460600181815250506105148287608001518860600151611f32565b8460800181815250506000610528856113f6565b90508063ffffffff1660008054906101000a900460ff1660ff1614610582576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610579906153d1565b60405180910390fd5b610595838860c001518960e00151611fcd565b8460000181815250506105b18388600001518960e00151612067565b8460200181815250506105cd838860c001518960200151612102565b8460400181815250506105e98388604001518960e0015161219d565b846060018181525050610605838860c001518960600151612238565b8460800181815250506106218388608001518960e001516122d3565b8460a001818152505061063d838860c001518960a0015161236e565b8460c00181815250506000610651856106ce565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff16146106af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a69061543d565b60405180910390fd5b60008054906101000a900460ff16985050505050505050509392505050565b6000806106de8360000151612409565b90506106ed8360200151612409565b67ffffffffffffffff168167ffffffffffffffff1614801561072e57506107178360400151612409565b67ffffffffffffffff168167ffffffffffffffff16145b801561075957506107428360800151612409565b67ffffffffffffffff168167ffffffffffffffff16145b8015610784575061076d8360600151612409565b67ffffffffffffffff168167ffffffffffffffff16145b80156107af57506107988360c00151612409565b67ffffffffffffffff168167ffffffffffffffff16145b80156107da57506107c38360a00151612409565b67ffffffffffffffff168167ffffffffffffffff16145b610819576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610810906152f9565b60405180910390fd5b80915050919050565b60008060019054906101000a900460ff16905090565b60006108426149e5565b61084a614a2a565b610852614a4b565b61085a614a7a565b610865848888611681565b61087f61087a856000015186602001516124a6565b611a59565b6000806101000a81548160ff021916908360ff1602179055506108aa8460400151856060015161253d565b8360000181815250506108c5846000015185606001516125d4565b8360200181815250506108e08460400151856020015161266c565b83604001818152505060006108f484610286565b905060008054906101000a900460ff1660ff168161ffff161461094c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610943906154a9565b60405180910390fd5b61095e85608001518660a00151612704565b83600001818152505061097985600001518660a0015161279b565b83602001818152505061099485608001518660200151612833565b8360400181815250506109af85604001518660a001516128cb565b8360600181815250506109ca85608001518660600151612963565b83608001818152505060006109de846113f6565b90508063ffffffff1660008054906101000a900460ff1660ff1614610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f90615515565b60405180910390fd5b610a4a8660c001518760e001516129fb565b836000018181525050610a6586600001518760e00151612a92565b836020018181525050610a808660c001518760200151612b2a565b836040018181525050610a9b86604001518760e00151612bc2565b836060018181525050610ab68660c001518760600151612c5a565b836080018181525050610ad186608001518760e00151612cf2565b8360a0018181525050610aec8660c001518760a00151612d8a565b8360c00181815250506000610b00846106ce565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff1614610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5590615581565b60405180910390fd5b610b74610b6f8b8960200151612e22565b611a59565b60ff1660008054906101000a900460ff1660ff16148015610bbc5750610ba6610ba188600001518b612ebc565b611a59565b60ff1660008054906101000a900460ff1660ff16145b610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290615613565b60405180910390fd5b610c14610c0f8b60ff168960600151612f56565b611728565b61ffff1660008054906101000a900460ff1660ff16148015610c615750610c4a610c4588604001518b60ff16612ff1565b611728565b61ffff1660008054906101000a900460ff1660ff16145b610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c97906156a5565b60405180910390fd5b610cb9610cb48b60ff168960a0015161308c565b613129565b63ffffffff1660008054906101000a900460ff1660ff16148015610d0a5750610cf1610cec88608001518b60ff166131c7565b613129565b63ffffffff1660008054906101000a900460ff1660ff16145b610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4090615737565b60405180910390fd5b610d62610d5d8b60ff168960e00151613264565b612409565b67ffffffffffffffff1660008054906101000a900460ff1660ff16148015610dbb5750610d9e610d998860c001518b60ff16613305565b612409565b67ffffffffffffffff1660008054906101000a900460ff1660ff16145b610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df1906157c9565b60405180910390fd5b60008054906101000a900460ff1697505050505050505092915050565b6000610e216149e5565b610e29614a2a565b610e31614a4b565b610e39614a7a565b610e44848888611681565b610e5e610e59856000015186602001516133a6565b611a59565b6000806101000a81548160ff021916908360ff160217905550610e898460400151856060015161343d565b836000018181525050610ea4846000015185606001516134d4565b836020018181525050610ebf8460400151856020015161356c565b8360400181815250506000610ed384610286565b905060008054906101000a900460ff1660ff168161ffff1614610f2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2290615835565b60405180910390fd5b610f3d85608001518660a00151613604565b836000018181525050610f5885600001518660a0015161369b565b836020018181525050610f7385608001518660200151613733565b836040018181525050610f8e85604001518660a001516137cb565b836060018181525050610fa985608001518660600151613863565b8360800181815250506000610fbd846113f6565b90508063ffffffff1660008054906101000a900460ff1660ff1614611017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100e906158a1565b60405180910390fd5b6110298660c001518760e001516138fb565b83600001818152505061104486600001518760e00151613992565b83602001818152505061105f8660c001518760200151613a2a565b83604001818152505061107a86604001518760e00151613ac2565b8360600181815250506110958660c001518760600151613b5a565b8360800181815250506110b086608001518760e00151613bf2565b8360a00181815250506110cb8660c001518760a00151613c8a565b8360c001818152505060006110df846106ce565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff161461113d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111349061590d565b60405180910390fd5b61115361114e8b8960200151613d22565b611a59565b60ff1660008054906101000a900460ff1660ff1614801561119b575061118561118088600001518b613dbc565b611a59565b60ff1660008054906101000a900460ff1660ff16145b6111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d19061599f565b60405180910390fd5b6111f36111ee8b60ff168960600151613e56565b611728565b61ffff1660008054906101000a900460ff1660ff16148015611240575061122961122488604001518b60ff16613ef1565b611728565b61ffff1660008054906101000a900460ff1660ff16145b61127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127690615a31565b60405180910390fd5b6112986112938b60ff168960a00151613f8c565b613129565b63ffffffff1660008054906101000a900460ff1660ff161480156112e957506112d06112cb88608001518b60ff16614029565b613129565b63ffffffff1660008054906101000a900460ff1660ff16145b611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90615ac3565b60405180910390fd5b61134161133c8b60ff168960e001516140c6565b612409565b67ffffffffffffffff1660008054906101000a900460ff1660ff1614801561139a575061137d6113788860c001518b60ff16614167565b612409565b67ffffffffffffffff1660008054906101000a900460ff1660ff16145b6113d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d090615b55565b60405180910390fd5b60008054906101000a900460ff1697505050505050505092915050565b6000806114068360000151613129565b90506114158360200151613129565b63ffffffff168163ffffffff1614801561144657506114378360400151613129565b63ffffffff168163ffffffff16145b8015611469575061145a8360800151613129565b63ffffffff168163ffffffff16145b801561148c575061147d8360600151613129565b63ffffffff168163ffffffff16145b6114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c2906152f9565b60405180910390fd5b80915050919050565b6000806114e086614208565b905060006114ed866142a9565b905060006114fa8661434b565b9050600061150d8663ffffffff166143ef565b9050600061151a85614496565b905061152d61152882614534565b611a59565b6000806101000a81548160ff021916908360ff1602179055506000611551856145d2565b9050600061156661156183614670565b611728565b905060006115738661470e565b90506000611588611583836147ac565b613129565b905060006115958761484a565b905060006115aa6115a5836148e7565b612409565b90508461ffff1660008054906101000a900460ff1660ff161480156115e457508263ffffffff1660008054906101000a900460ff1660ff16145b801561160957508067ffffffffffffffff1660008054906101000a900460ff1660ff16145b611648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163f90615be7565b60405180910390fd5b60008054906101000a900460ff169b505050505050505050505050949350505050565b60008060009054906101000a900460ff16905090565b61168a82614208565b83600001818152505061169c81614208565b8360200181815250506116b18260ff166142a9565b8360400181815250506116c68160ff166142a9565b8360600181815250506116db8260ff1661434b565b8360800181815250506116f08160ff1661434b565b8360a00181815250506117058260ff166143ef565b8360c001818152505061171a8160ff166143ef565b8360e0018181525050505050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616002600481111561175b5761175a615c07565b5b60f81b846040518363ffffffff1660e01b815260040161177c929190615c80565b6020604051808303816000875af115801561179b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117bf9190615cd5565b9050919050565b600080826117d55760006117d8565b60015b60ff169050606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606000600481111561180e5761180d615c07565b5b60f81b836040518363ffffffff1660e01b815260040161182f929190615c80565b6020604051808303816000875af115801561184e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118729190615cd5565b915050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631d79e49a600060048111156118ad576118ac615c07565b5b60f81b846040518363ffffffff1660e01b81526004016118ce929190615c80565b6020604051808303816000875af11580156118ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119119190615cd5565b9050919050565b600080606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616000600481111561194c5761194b615c07565b5b60f81b856040518363ffffffff1660e01b815260040161196d929190615c80565b6020604051808303816000875af115801561198c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b09190615cd5565b90506000811415915050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d6119eb6001806000614984565b8686866040518563ffffffff1660e01b8152600401611a0d9493929190615d3d565b6020604051808303816000875af1158015611a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a509190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160016004811115611a8c57611a8b615c07565b5b60f81b846040518363ffffffff1660e01b8152600401611aad929190615c80565b6020604051808303816000875af1158015611acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af09190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611b236002806000614984565b8686866040518563ffffffff1660e01b8152600401611b459493929190615d3d565b6020604051808303816000875af1158015611b64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b889190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611bbe600160026000614984565b8686866040518563ffffffff1660e01b8152600401611be09493929190615d3d565b6020604051808303816000875af1158015611bff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c239190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611c59600260016000614984565b8686866040518563ffffffff1660e01b8152600401611c7b9493929190615d3d565b6020604051808303816000875af1158015611c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbe9190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611cf36003806000614984565b8686866040518563ffffffff1660e01b8152600401611d159493929190615d3d565b6020604051808303816000875af1158015611d34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d589190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611d8e600160036000614984565b8686866040518563ffffffff1660e01b8152600401611db09493929190615d3d565b6020604051808303816000875af1158015611dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df39190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611e29600360016000614984565b8686866040518563ffffffff1660e01b8152600401611e4b9493929190615d3d565b6020604051808303816000875af1158015611e6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8e9190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611ec4600260036000614984565b8686866040518563ffffffff1660e01b8152600401611ee69493929190615d3d565b6020604051808303816000875af1158015611f05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f299190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611f5f600360026000614984565b8686866040518563ffffffff1660e01b8152600401611f819493929190615d3d565b6020604051808303816000875af1158015611fa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc49190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611ff96004806000614984565b8686866040518563ffffffff1660e01b815260040161201b9493929190615d3d565b6020604051808303816000875af115801561203a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205e9190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d612094600160046000614984565b8686866040518563ffffffff1660e01b81526004016120b69493929190615d3d565b6020604051808303816000875af11580156120d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f99190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d61212f600460016000614984565b8686866040518563ffffffff1660e01b81526004016121519493929190615d3d565b6020604051808303816000875af1158015612170573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121949190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d6121ca600260046000614984565b8686866040518563ffffffff1660e01b81526004016121ec9493929190615d3d565b6020604051808303816000875af115801561220b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222f9190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d612265600460026000614984565b8686866040518563ffffffff1660e01b81526004016122879493929190615d3d565b6020604051808303816000875af11580156122a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ca9190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d612300600360046000614984565b8686866040518563ffffffff1660e01b81526004016123229493929190615d3d565b6020604051808303816000875af1158015612341573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123659190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d61239b600460036000614984565b8686866040518563ffffffff1660e01b81526004016123bd9493929190615d3d565b6020604051808303816000875af11580156123dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124009190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160048081111561243b5761243a615c07565b5b60f81b846040518363ffffffff1660e01b815260040161245c929190615c80565b6020604051808303816000875af115801561247b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249f9190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96124d26001806000614984565b85856040518463ffffffff1660e01b81526004016124f293929190615d82565b6020604051808303816000875af1158015612511573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125359190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96125696002806000614984565b85856040518463ffffffff1660e01b815260040161258993929190615d82565b6020604051808303816000875af11580156125a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cc9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612601600160026000614984565b85856040518463ffffffff1660e01b815260040161262193929190615d82565b6020604051808303816000875af1158015612640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126649190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612699600260016000614984565b85856040518463ffffffff1660e01b81526004016126b993929190615d82565b6020604051808303816000875af11580156126d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126fc9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96127306003806000614984565b85856040518463ffffffff1660e01b815260040161275093929190615d82565b6020604051808303816000875af115801561276f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127939190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96127c8600160036000614984565b85856040518463ffffffff1660e01b81526004016127e893929190615d82565b6020604051808303816000875af1158015612807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282b9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612860600360016000614984565b85856040518463ffffffff1660e01b815260040161288093929190615d82565b6020604051808303816000875af115801561289f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c39190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96128f8600260036000614984565b85856040518463ffffffff1660e01b815260040161291893929190615d82565b6020604051808303816000875af1158015612937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061295b9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612990600360026000614984565b85856040518463ffffffff1660e01b81526004016129b093929190615d82565b6020604051808303816000875af11580156129cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f39190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612a276004806000614984565b85856040518463ffffffff1660e01b8152600401612a4793929190615d82565b6020604051808303816000875af1158015612a66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8a9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612abf600160046000614984565b85856040518463ffffffff1660e01b8152600401612adf93929190615d82565b6020604051808303816000875af1158015612afe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b229190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612b57600460016000614984565b85856040518463ffffffff1660e01b8152600401612b7793929190615d82565b6020604051808303816000875af1158015612b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bba9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612bef600260046000614984565b85856040518463ffffffff1660e01b8152600401612c0f93929190615d82565b6020604051808303816000875af1158015612c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c529190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612c87600460026000614984565b85856040518463ffffffff1660e01b8152600401612ca793929190615d82565b6020604051808303816000875af1158015612cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cea9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612d1f600360046000614984565b85856040518463ffffffff1660e01b8152600401612d3f93929190615d82565b6020604051808303816000875af1158015612d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d829190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612db7600460036000614984565b85856040518463ffffffff1660e01b8152600401612dd793929190615d82565b6020604051808303816000875af1158015612df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e1a9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612e4e6001806001614984565b8560ff16856040518463ffffffff1660e01b8152600401612e7193929190615d82565b6020604051808303816000875af1158015612e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eb49190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612ee86001806002614984565b858560ff166040518463ffffffff1660e01b8152600401612f0b93929190615d82565b6020604051808303816000875af1158015612f2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f4e9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612f826002806001614984565b8561ffff16856040518463ffffffff1660e01b8152600401612fa693929190615d82565b6020604051808303816000875af1158015612fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe99190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b961301d6002806002614984565b858561ffff166040518463ffffffff1660e01b815260040161304193929190615d82565b6020604051808303816000875af1158015613060573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130849190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96130b86003806001614984565b8563ffffffff16856040518463ffffffff1660e01b81526004016130de93929190615d82565b6020604051808303816000875af11580156130fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131219190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616003600481111561315c5761315b615c07565b5b60f81b846040518363ffffffff1660e01b815260040161317d929190615c80565b6020604051808303816000875af115801561319c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c09190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96131f36003806002614984565b858563ffffffff166040518463ffffffff1660e01b815260040161321993929190615d82565b6020604051808303816000875af1158015613238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061325c9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96132906004806001614984565b8567ffffffffffffffff16856040518463ffffffff1660e01b81526004016132ba93929190615d82565b6020604051808303816000875af11580156132d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132fd9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96133316004806002614984565b858567ffffffffffffffff166040518463ffffffff1660e01b815260040161335b93929190615d82565b6020604051808303816000875af115801561337a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061339e9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56133d26001806000614984565b85856040518463ffffffff1660e01b81526004016133f293929190615d82565b6020604051808303816000875af1158015613411573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134359190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56134696002806000614984565b85856040518463ffffffff1660e01b815260040161348993929190615d82565b6020604051808303816000875af11580156134a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134cc9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613501600160026000614984565b85856040518463ffffffff1660e01b815260040161352193929190615d82565b6020604051808303816000875af1158015613540573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135649190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613599600260016000614984565b85856040518463ffffffff1660e01b81526004016135b993929190615d82565b6020604051808303816000875af11580156135d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135fc9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56136306003806000614984565b85856040518463ffffffff1660e01b815260040161365093929190615d82565b6020604051808303816000875af115801561366f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136939190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56136c8600160036000614984565b85856040518463ffffffff1660e01b81526004016136e893929190615d82565b6020604051808303816000875af1158015613707573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061372b9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613760600360016000614984565b85856040518463ffffffff1660e01b815260040161378093929190615d82565b6020604051808303816000875af115801561379f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137c39190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56137f8600260036000614984565b85856040518463ffffffff1660e01b815260040161381893929190615d82565b6020604051808303816000875af1158015613837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061385b9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613890600360026000614984565b85856040518463ffffffff1660e01b81526004016138b093929190615d82565b6020604051808303816000875af11580156138cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138f39190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56139276004806000614984565b85856040518463ffffffff1660e01b815260040161394793929190615d82565b6020604051808303816000875af1158015613966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061398a9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56139bf600160046000614984565b85856040518463ffffffff1660e01b81526004016139df93929190615d82565b6020604051808303816000875af11580156139fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a229190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613a57600460016000614984565b85856040518463ffffffff1660e01b8152600401613a7793929190615d82565b6020604051808303816000875af1158015613a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aba9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613aef600260046000614984565b85856040518463ffffffff1660e01b8152600401613b0f93929190615d82565b6020604051808303816000875af1158015613b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b529190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613b87600460026000614984565b85856040518463ffffffff1660e01b8152600401613ba793929190615d82565b6020604051808303816000875af1158015613bc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bea9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613c1f600360046000614984565b85856040518463ffffffff1660e01b8152600401613c3f93929190615d82565b6020604051808303816000875af1158015613c5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c829190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613cb7600460036000614984565b85856040518463ffffffff1660e01b8152600401613cd793929190615d82565b6020604051808303816000875af1158015613cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d1a9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613d4e6001806001614984565b8560ff16856040518463ffffffff1660e01b8152600401613d7193929190615d82565b6020604051808303816000875af1158015613d90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613db49190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613de86001806002614984565b858560ff166040518463ffffffff1660e01b8152600401613e0b93929190615d82565b6020604051808303816000875af1158015613e2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e4e9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613e826002806001614984565b8561ffff16856040518463ffffffff1660e01b8152600401613ea693929190615d82565b6020604051808303816000875af1158015613ec5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ee99190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613f1d6002806002614984565b858561ffff166040518463ffffffff1660e01b8152600401613f4193929190615d82565b6020604051808303816000875af1158015613f60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f849190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613fb86003806001614984565b8563ffffffff16856040518463ffffffff1660e01b8152600401613fde93929190615d82565b6020604051808303816000875af1158015613ffd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140219190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56140556003806002614984565b858563ffffffff166040518463ffffffff1660e01b815260040161407b93929190615d82565b6020604051808303816000875af115801561409a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140be9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56140f26004806001614984565b8567ffffffffffffffff16856040518463ffffffff1660e01b815260040161411c93929190615d82565b6020604051808303816000875af115801561413b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061415f9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56141936004806002614984565b858567ffffffffffffffff166040518463ffffffff1660e01b81526004016141bd93929190615d82565b6020604051808303816000875af11580156141dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142009190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606001600481111561423b5761423a615c07565b5b60f81b8460ff166040518363ffffffff1660e01b815260040161425f929190615c80565b6020604051808303816000875af115801561427e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142a29190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600260048111156142dc576142db615c07565b5b60f81b8461ffff166040518363ffffffff1660e01b8152600401614301929190615c80565b6020604051808303816000875af1158015614320573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143449190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606003600481111561437e5761437d615c07565b5b60f81b8463ffffffff166040518363ffffffff1660e01b81526004016143a5929190615c80565b6020604051808303816000875af11580156143c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143e89190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060048081111561442157614420615c07565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b815260040161444c929190615c80565b6020604051808303816000875af115801561446b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061448f9190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663c50c9c02600160048111156144c9576144c8615c07565b5b60f81b846040518363ffffffff1660e01b81526004016144ea929190615c80565b6020604051808303816000875af1158015614509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061452d9190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d2c135e56001600481111561456757614566615c07565b5b60f81b846040518363ffffffff1660e01b8152600401614588929190615c80565b6020604051808303816000875af11580156145a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145cb9190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663c50c9c026002600481111561460557614604615c07565b5b60f81b846040518363ffffffff1660e01b8152600401614626929190615c80565b6020604051808303816000875af1158015614645573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146699190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d2c135e5600260048111156146a3576146a2615c07565b5b60f81b846040518363ffffffff1660e01b81526004016146c4929190615c80565b6020604051808303816000875af11580156146e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147079190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663c50c9c026003600481111561474157614740615c07565b5b60f81b846040518363ffffffff1660e01b8152600401614762929190615c80565b6020604051808303816000875af1158015614781573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147a59190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d2c135e5600360048111156147df576147de615c07565b5b60f81b846040518363ffffffff1660e01b8152600401614800929190615c80565b6020604051808303816000875af115801561481f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148439190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663c50c9c0260048081111561487c5761487b615c07565b5b60f81b846040518363ffffffff1660e01b815260040161489d929190615c80565b6020604051808303816000875af11580156148bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148e09190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d2c135e560048081111561491957614918615c07565b5b60f81b846040518363ffffffff1660e01b815260040161493a929190615c80565b6020604051808303816000875af1158015614959573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061497d9190615cd5565b9050919050565b600081600281111561499957614998615c07565b5b60ff1660088460048111156149b1576149b0615c07565b5b61ffff16901b61ffff1660108660048111156149d0576149cf615c07565b5b62ffffff16901b171760e81b90509392505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614b1482614acb565b810181811067ffffffffffffffff82111715614b3357614b32614adc565b5b80604052505050565b6000614b46614ab7565b9050614b528282614b0b565b919050565b6000819050919050565b614b6a81614b57565b8114614b7557600080fd5b50565b600081359050614b8781614b61565b92915050565b600060608284031215614ba357614ba2614ac6565b5b614bad6060614b3c565b90506000614bbd84828501614b78565b6000830152506020614bd184828501614b78565b6020830152506040614be584828501614b78565b60408301525092915050565b600060608284031215614c0757614c06614ac1565b5b6000614c1584828501614b8d565b91505092915050565b600061ffff82169050919050565b614c3581614c1e565b82525050565b6000602082019050614c506000830184614c2c565b92915050565b60008115159050919050565b614c6b81614c56565b8114614c7657600080fd5b50565b600081359050614c8881614c62565b92915050565b600060208284031215614ca457614ca3614ac1565b5b6000614cb284828501614c79565b91505092915050565b614cc481614c56565b82525050565b6000602082019050614cdf6000830184614cbb565b92915050565b600060ff82169050919050565b614cfb81614ce5565b8114614d0657600080fd5b50565b600081359050614d1881614cf2565b92915050565b600080600060608486031215614d3757614d36614ac1565b5b6000614d4586828701614c79565b9350506020614d5686828701614d09565b9250506040614d6786828701614d09565b9150509250925092565b614d7a81614ce5565b82525050565b6000602082019050614d956000830184614d71565b92915050565b614da481614b57565b8114614daf57600080fd5b50565b600081359050614dc181614d9b565b92915050565b600060e08284031215614ddd57614ddc614ac6565b5b614de760e0614b3c565b90506000614df784828501614db2565b6000830152506020614e0b84828501614db2565b6020830152506040614e1f84828501614db2565b6040830152506060614e3384828501614db2565b6060830152506080614e4784828501614db2565b60808301525060a0614e5b84828501614db2565b60a08301525060c0614e6f84828501614db2565b60c08301525092915050565b600060e08284031215614e9157614e90614ac1565b5b6000614e9f84828501614dc7565b91505092915050565b600067ffffffffffffffff82169050919050565b614ec581614ea8565b82525050565b6000602082019050614ee06000830184614ebc565b92915050565b60008060408385031215614efd57614efc614ac1565b5b6000614f0b85828601614d09565b9250506020614f1c85828601614d09565b9150509250929050565b614f2f81614b57565b8114614f3a57600080fd5b50565b600081359050614f4c81614f26565b92915050565b600060a08284031215614f6857614f67614ac6565b5b614f7260a0614b3c565b90506000614f8284828501614f3d565b6000830152506020614f9684828501614f3d565b6020830152506040614faa84828501614f3d565b6040830152506060614fbe84828501614f3d565b6060830152506080614fd284828501614f3d565b60808301525092915050565b600060a08284031215614ff457614ff3614ac1565b5b600061500284828501614f52565b91505092915050565b600063ffffffff82169050919050565b6150248161500b565b82525050565b600060208201905061503f600083018461501b565b92915050565b61504e81614c1e565b811461505957600080fd5b50565b60008135905061506b81615045565b92915050565b61507a8161500b565b811461508557600080fd5b50565b60008135905061509781615071565b92915050565b600080600080608085870312156150b7576150b6614ac1565b5b60006150c587828801614d09565b94505060206150d68782880161505c565b93505060406150e787828801615088565b92505060606150f887828801615088565b91505092959194509250565b61510d81614b57565b811461511857600080fd5b50565b60008135905061512a81615104565b92915050565b6000610100828403121561514757615146614ac6565b5b615152610100614b3c565b905060006151628482850161511b565b60008301525060206151768482850161511b565b602083015250604061518a84828501614b78565b604083015250606061519e84828501614b78565b60608301525060806151b284828501614f3d565b60808301525060a06151c684828501614f3d565b60a08301525060c06151da84828501614db2565b60c08301525060e06151ee84828501614db2565b60e08301525092915050565b6000806000610140848603121561521457615213614ac1565b5b600061522286828701615130565b93505061010061523486828701614d09565b92505061012061524686828701614d09565b9150509250925092565b600082825260208201905092915050565b7f64656372797074416e64436f6d70617265416c6c526573756c74733a2046616960008201527f6c656420746f206465637279707420616e6420636f6d7061726520616c6c207260208201527f6573756c74730000000000000000000000000000000000000000000000000000604082015250565b60006152e3604683615250565b91506152ee82615261565b606082019050919050565b60006020820190508181036000830152615312816152d6565b9050919050565b7f6d7578546573743a2063617374203136206661696c6564000000000000000000600082015250565b600061534f601783615250565b915061535a82615319565b602082019050919050565b6000602082019050818103600083015261537e81615342565b9050919050565b7f6d7578546573743a2063617374203332206661696c6564000000000000000000600082015250565b60006153bb601783615250565b91506153c682615385565b602082019050919050565b600060208201905081810360008301526153ea816153ae565b9050919050565b7f6d7578546573743a2063617374203634206661696c6564000000000000000000600082015250565b6000615427601783615250565b9150615432826153f1565b602082019050919050565b600060208201905081810360008301526154568161541a565b9050919050565b7f72656d546573743a2063617374203136206661696c6564000000000000000000600082015250565b6000615493601783615250565b915061549e8261545d565b602082019050919050565b600060208201905081810360008301526154c281615486565b9050919050565b7f72656d546573743a2063617374203332206661696c6564000000000000000000600082015250565b60006154ff601783615250565b915061550a826154c9565b602082019050919050565b6000602082019050818103600083015261552e816154f2565b9050919050565b7f72656d546573743a2063617374203634206661696c6564000000000000000000600082015250565b600061556b601783615250565b915061557682615535565b602082019050919050565b6000602082019050818103600083015261559a8161555e565b9050919050565b7f72656d546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b60006155fd602783615250565b9150615608826155a1565b604082019050919050565b6000602082019050818103600083015261562c816155f0565b9050919050565b7f72656d546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b600061568f602883615250565b915061569a82615633565b604082019050919050565b600060208201905081810360008301526156be81615682565b9050919050565b7f72656d546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615721602883615250565b915061572c826156c5565b604082019050919050565b6000602082019050818103600083015261575081615714565b9050919050565b7f72656d546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b60006157b3602883615250565b91506157be82615757565b604082019050919050565b600060208201905081810360008301526157e2816157a6565b9050919050565b7f646976546573743a2063617374203136206661696c6564000000000000000000600082015250565b600061581f601783615250565b915061582a826157e9565b602082019050919050565b6000602082019050818103600083015261584e81615812565b9050919050565b7f646976546573743a2063617374203332206661696c6564000000000000000000600082015250565b600061588b601783615250565b915061589682615855565b602082019050919050565b600060208201905081810360008301526158ba8161587e565b9050919050565b7f646976546573743a2063617374203634206661696c6564000000000000000000600082015250565b60006158f7601783615250565b9150615902826158c1565b602082019050919050565b60006020820190508181036000830152615926816158ea565b9050919050565b7f646976546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b6000615989602783615250565b91506159948261592d565b604082019050919050565b600060208201905081810360008301526159b88161597c565b9050919050565b7f646976546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615a1b602883615250565b9150615a26826159bf565b604082019050919050565b60006020820190508181036000830152615a4a81615a0e565b9050919050565b7f646976546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615aad602883615250565b9150615ab882615a51565b604082019050919050565b60006020820190508181036000830152615adc81615aa0565b9050919050565b7f646976546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615b3f602883615250565b9150615b4a82615ae3565b604082019050919050565b60006020820190508181036000830152615b6e81615b32565b9050919050565b7f4661696c656420746f206f6666626f61726420616e64206f6e626f617264206160008201527f6c6c2076616c7565730000000000000000000000000000000000000000000000602082015250565b6000615bd1602983615250565b9150615bdc82615b75565b604082019050919050565b60006020820190508181036000830152615c0081615bc4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b615c6b81615c36565b82525050565b615c7a81614b57565b82525050565b6000604082019050615c956000830185615c62565b615ca26020830184615c71565b9392505050565b615cb281614b57565b8114615cbd57600080fd5b50565b600081519050615ccf81615ca9565b92915050565b600060208284031215615ceb57615cea614ac1565b5b6000615cf984828501615cc0565b91505092915050565b60007fffffff000000000000000000000000000000000000000000000000000000000082169050919050565b615d3781615d02565b82525050565b6000608082019050615d526000830187615d2e565b615d5f6020830186615c71565b615d6c6040830185615c71565b615d796060830184615c71565b95945050505050565b6000606082019050615d976000830186615d2e565b615da46020830185615c71565b615db16040830184615c71565b94935050505056fea2646970667358221220ef50eca926d657c61e3cd6e6ac3a4a7703fafc3b7c5348c2b03682126b4d3b2c64736f6c63430008140033";
|
|
381
381
|
|
|
382
382
|
type Miscellaneous2TestsContractConstructorParams =
|
|
383
383
|
| [signer?: Signer]
|