sidestream-tech / unified-auctions-ui

Unified MakerDAO auctions
https://unified-auctions.makerdao.com
GNU Affero General Public License v3.0
16 stars 13 forks source link

Onboard GNO token #567

Open LukSteib opened 1 year ago

LukSteib commented 1 year ago

Goal

We properly fetch GNO auctions and facilitate participation via DAI bidding and swap

Context

The GNO token will be onboarded as new collateral type with the next executive spell scheduled for 09.11. We already conducted respective tests on goerli (see #556)

Now we want to test GNO based on the respective mainnet.

As input:

Tasks

valiafetisov commented 1 year ago

@KirillDogadin-std please follow proposed instructions and

KirillDogadin-std commented 1 year ago

Clarifications needed:

have latest bytecode of the spell posted in the

what does this exactly mean? would you like me to:

KirillDogadin-std commented 1 year ago

while doing from step 1. of readme step 12 of readme results into:

// batch of some hex
// second batch of some hex

seth-rpc: error:   code       -32603
seth-rpc: error:   data       {"data":"0x","message":"Error: Transaction reverted: trying to deploy a contract whose code is too large","txHash":"0xad2a7d55202603958066e95276bbca8f495dd099e83bafa1d7b73c6270dac32b"}
seth-rpc: error:   message    Error: Transaction reverted: trying to deploy a contract whose code is too large
valiafetisov commented 1 year ago

what does this exactly mean? would you like me to:

  • reproduce the readme process, produce a compiledSpells.json file while following the readme

Yes, follow the readme and produce binary code of the contract, that is then manually added to the compiledSpells.json (as seen in the linked PR). But initially, the command dapp create DssSpell suppose to succeed (and then will be transferrable to our simulation environment). Currently, for me, deploying it fails without a reason, deploying it via simulation works, but doesn't execute was able to deploy it, the problem was invalid gas env var

trying to deploy a contract whose code is too large

What does the previous step print? What is the compiled bytecode (the string that seth send)?

My current output ```sh $ dapp --version dapp 0.35.0 solc, the solidity compiler commandline interface Version: 0.8.6+commit.11564f7e.Linux.g++ hevm 0.49.1 $ git status HEAD detached at 9d9215d nothing to commit, working tree clean $ make DAPP_LIBRARIES=' lib/dss-exec-lib/src/DssExecLib.sol:DssExecLib:0x8De6DDbCd5053d32292AAA0D2105A32d108484a6' \ DAPP_BUILD_OPTIMIZE=0 DAPP_BUILD_OPTIMIZE_RUNS=200 \ dapp --use solc:0.6.12 build dapp---use: Could not find solc-0.6.12 in your path or nix store. Temporarily installing solc-0.6.12... Tip: run `nix-env -f https://github.com/dapphub/dapptools/archive/master.tar.gz -iA solc-static-versions.solc_0_6_12` for a lasting installation of this version. + dapp clean + rm -rf out lib/ds-math/src/math.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: " to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information. lib/dss-exec-lib/src/CollateralOpts.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: " to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information. lib/ds-math/src/math.sol:19:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function add(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:25:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function mul(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:22:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function sub(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:19:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function add(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:25:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function mul(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:22:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function sub(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:19:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function add(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:25:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function mul(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:22:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function sub(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:19:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function add(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:25:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function mul(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:22:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function sub(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:19:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function add(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:25:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function mul(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:22:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function sub(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:19:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function add(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:25:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function mul(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:22:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function sub(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/dss-exec-lib/src/DssAction.sol:42:5: Warning: Function state mutability can be restricted to pure function officeHours() public virtual returns (bool) { ^ (Relevant source part starts here and spans across multiple lines). src/DssSpell.t.base.sol:1666:5: Warning: Function state mutability can be restricted to pure function skipWards(address target, address deployer) internal view returns (bool) { ^ (Relevant source part starts here and spans across multiple lines). lib/dss-exec-lib/src/DssExecLib.sol:134:1: Warning: Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on mainnet. Consider enabling the optimizer (with a low "runs" value!), turning off revert strings, or using libraries. library DssExecLib { ^ (Relevant source part starts here and spans across multiple lines). src/test/config.sol:19:1: Warning: Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on mainnet. Consider enabling the optimizer (with a low "runs" value!), turning off revert strings, or using libraries. contract Config { ^ (Relevant source part starts here and spans across multiple lines). src/DssSpell.t.base.sol:175:1: Warning: Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on mainnet. Consider enabling the optimizer (with a low "runs" value!), turning off revert strings, or using libraries. contract DssSpellTestBase is Config, DSTest, DSMath { ^ (Relevant source part starts here and spans across multiple lines). src/DssSpell.t.sol:46:1: Warning: Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on mainnet. Consider enabling the optimizer (with a low "runs" value!), turning off revert strings, or using libraries. contract DssSpellTest is DssSpellTestBase { ^ (Relevant source part starts here and spans across multiple lines). src/test/starknet.t.sol:83:1: Warning: Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on mainnet. Consider enabling the optimizer (with a low "runs" value!), turning off revert strings, or using libraries. contract StarknetTests is DssSpellTestBase, ConfigStarknet { ^ (Relevant source part starts here and spans across multiple lines). $ dapp create DssSpell ++ seth send --create 6101006040523480156200001257600080fd5b5062278d004201604051620000279062000212565b604051809103906000f08015801562000044573d6000803e3d6000fd5b5073da0ab1e0017debcd72be8599041a2aa3ba7e740f73ffffffffffffffffffffffffffffffffffffffff166321f8a7216040518163ffffffff1660e01b815260040162000092906200032f565b60206040518083038186803b158015620000ab57600080fd5b505afa158015620000c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e69190620002dd565b73ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508160c081815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250506040516024016040516020818303038152906040527f61461954000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060019080519060200190620001f592919062000220565b50600080829050803f915081608081815250505050505062000398565b613c8180620014b383390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026357805160ff191683800117855562000294565b8280016001018555821562000294579182015b828111156200029357825182559160200191906001019062000276565b5b509050620002a39190620002a7565b5090565b5b80821115620002c2576000816000905550600101620002a8565b5090565b600081519050620002d7816200037e565b92915050565b600060208284031215620002f057600080fd5b60006200030084828501620002c6565b91505092915050565b7f4d43445f50415553450000000000000000000000000000000000000000000000815250565b6000602082019050620003456000830162000309565b919050565b600062000357826200035e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b62000389816200034a565b81146200039557600080fd5b50565b60805160a05160601c60c05160e05160601c6110a86200040b600039806104a4528061053352806106e9528061078f5250806102f552806106425250806102d1528061035752806103fc528061056f52806107cb528061086d525080610331528061059052806107ec52506110a86000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80637284e4161161008c578063ae8421e111610066578063ae8421e1146101cd578063b0604a26146101eb578063f7992d85146101f5578063fe7d47bb14610213576100ce565b80637284e416146101875780638456cb59146101a557806396d373e5146101c3576100ce565b8062a7029b146100d35780630a7a1c4d146100f15780634665096d1461010f57806351973ec91461012d57806351f910661461014b5780636e832f0714610169575b600080fd5b6100db610231565b6040516100e89190610d9f565b60405180910390f35b6100f96102cf565b6040516101069190610d02565b60405180910390f35b6101176102f3565b6040516101249190610e79565b60405180910390f35b610135610317565b6040516101429190610dc1565b60405180910390f35b61015361032f565b6040516101609190610d84565b60405180910390f35b610171610353565b60405161017e9190610d69565b60405180910390f35b61018f6103f8565b60405161019c9190610df7565b60405180910390f35b6101ad6104a2565b6040516101ba9190610ddc565b60405180910390f35b6101cb6104c6565b005b6101d561062d565b6040516101e29190610d69565b60405180910390f35b6101f3610640565b005b6101fd610863565b60405161020a9190610e79565b60405180910390f35b61021b610869565b6040516102289190610e79565b60405180910390f35b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102c75780601f1061029c576101008083540402835291602001916102c7565b820191906000526020600020905b8154815290600101906020018083116102aa57829003601f168201915b505050505081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b73da0ab1e0017debcd72be8599041a2aa3ba7e740f81565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e832f076040518163ffffffff1660e01b815260040160206040518083038186803b1580156103bb57600080fd5b505afa1580156103cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f391906109ed565b905090565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637284e4166040518163ffffffff1660e01b815260040160006040518083038186803b15801561046057600080fd5b505afa158015610474573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061049d9190610a57565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600260009054906101000a900460ff1615610516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050d90610e19565b60405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663168ccd677f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060016000546040518563ffffffff1660e01b81526004016105d39493929190610d1d565b600060405180830381600087803b1580156105ed57600080fd5b505af1158015610601573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061062a9190610a16565b50565b600260009054906101000a900460ff1681565b7f00000000000000000000000000000000000000000000000000000000000000004211156106a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069a90610e59565b60405180910390fd5b60008054146106e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106de90610e39565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b15801561074d57600080fd5b505afa158015610761573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107859190610a98565b42016000819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166346d2fbbb7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060016000546040518563ffffffff1660e01b815260040161082f9493929190610d1d565b600060405180830381600087803b15801561084957600080fd5b505af115801561085d573d6000803e3d6000fd5b50505050565b60005481565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bf0fbcec6000546040518263ffffffff1660e01b81526004016108c69190610e79565b60206040518083038186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109169190610a98565b905090565b60008151905061092a81611044565b92915050565b600082601f83011261094157600080fd5b815161095461094f82610ec1565b610e94565b9150808252602083016020830185838301111561097057600080fd5b61097b838284611000565b50505092915050565b600082601f83011261099557600080fd5b81516109a86109a382610eed565b610e94565b915080825260208301602083018583830111156109c457600080fd5b6109cf838284611000565b50505092915050565b6000815190506109e78161105b565b92915050565b6000602082840312156109ff57600080fd5b6000610a0d8482850161091b565b91505092915050565b600060208284031215610a2857600080fd5b600082015167ffffffffffffffff811115610a4257600080fd5b610a4e84828501610930565b91505092915050565b600060208284031215610a6957600080fd5b600082015167ffffffffffffffff811115610a8357600080fd5b610a8f84828501610984565b91505092915050565b600060208284031215610aaa57600080fd5b6000610ab8848285016109d8565b91505092915050565b610aca81610f66565b82525050565b610ad981610f78565b82525050565b610ae881610f84565b82525050565b6000610af982610f2e565b610b038185610f44565b9350610b13818560208601611000565b610b1c81611033565b840191505092915050565b600081546001811660008114610b445760018114610b6a57610bae565b607f6002830416610b558187610f44565b955060ff198316865260208601935050610bae565b60028204610b788187610f44565b9550610b8385610f19565b60005b82811015610ba557815481890152600182019150602081019050610b86565b80880195505050505b505092915050565b610bbf81610fb8565b82525050565b610bce81610fdc565b82525050565b6000610bdf82610f39565b610be98185610f55565b9350610bf9818560208601611000565b610c0281611033565b840191505092915050565b6000610c1a601283610f55565b91507f7370656c6c2d616c72656164792d6361737400000000000000000000000000006000830152602082019050919050565b6000610c5a602583610f55565b91507f54686973207370656c6c2068617320616c7265616479206265656e207363686560008301527f64756c65640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610cc0601983610f55565b91507f5468697320636f6e7472616374206861732065787069726564000000000000006000830152602082019050919050565b610cfc81610fae565b82525050565b6000602082019050610d176000830184610ac1565b92915050565b6000608082019050610d326000830187610ac1565b610d3f6020830186610adf565b8181036040830152610d518185610b27565b9050610d606060830184610cf3565b95945050505050565b6000602082019050610d7e6000830184610ad0565b92915050565b6000602082019050610d996000830184610adf565b92915050565b60006020820190508181036000830152610db98184610aee565b905092915050565b6000602082019050610dd66000830184610bb6565b92915050565b6000602082019050610df16000830184610bc5565b92915050565b60006020820190508181036000830152610e118184610bd4565b905092915050565b60006020820190508181036000830152610e3281610c0d565b9050919050565b60006020820190508181036000830152610e5281610c4d565b9050919050565b60006020820190508181036000830152610e7281610cb3565b9050919050565b6000602082019050610e8e6000830184610cf3565b92915050565b6000604051905081810181811067ffffffffffffffff82111715610eb757600080fd5b8060405250919050565b600067ffffffffffffffff821115610ed857600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff821115610f0457600080fd5b601f19601f8301169050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610f7182610f8e565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610fc382610fca565b9050919050565b6000610fd582610f8e565b9050919050565b6000610fe782610fee565b9050919050565b6000610ff982610f8e565b9050919050565b60005b8381101561101e578082015181840152602081019050611003565b8381111561102d576000848401525b50505050565b6000601f19601f8301169050919050565b61104d81610f78565b811461105857600080fd5b50565b61106481610fae565b811461106f57600080fd5b5056fea264697066735822122072aeb15c2703c2db0b918fc4eda67d465b219afac52fac834726a855ffb49cb364736f6c634300060c0033610100604052738de6ddbcd5053d32292aaa0d2105a32d108484a66336569e776040518163ffffffff1660e01b815260040160206040518083038186803b1580156200004a57600080fd5b505af41580156200005f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200008591906200031a565b73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b815250738de6ddbcd5053d32292aaa0d2105a32d108484a663a16ed56f6040518163ffffffff1660e01b8152600401620000f190620003ad565b60206040518083038186803b1580156200010a57600080fd5b505af41580156200011f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014591906200031a565b73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1660601b815250738de6ddbcd5053d32292aaa0d2105a32d108484a663a16ed56f6040518163ffffffff1660e01b8152600401620001b19062000392565b60206040518083038186803b158015620001ca57600080fd5b505af4158015620001df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020591906200031a565b73ffffffffffffffffffffffffffffffffffffffff1660c09073ffffffffffffffffffffffffffffffffffffffff1660601b815250738de6ddbcd5053d32292aaa0d2105a32d108484a6637e992cb86040518163ffffffff1660e01b815260040160206040518083038186803b1580156200027f57600080fd5b505af415801562000294573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ba91906200031a565b73ffffffffffffffffffffffffffffffffffffffff1660e09073ffffffffffffffffffffffffffffffffffffffff1660601b815250348015620002fc57600080fd5b5062000416565b6000815190506200031481620003fc565b92915050565b6000602082840312156200032d57600080fd5b60006200033d8482850162000303565b91505092915050565b7f4d43445f50534d5f475553445f41000000000000000000000000000000000000815250565b7f4d43445f50534d5f5041585f4100000000000000000000000000000000000000815250565b6000602082019050620003a86000830162000346565b919050565b6000602082019050620003c3600083016200036c565b919050565b6000620003d582620003dc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6200040781620003c8565b81146200041357600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c6138156200046c60003980610c9452508061168252806117215250806115e35250806110be52806111875280611213528061123752506138156000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063614619541461005c5780636e832f07146100665780637284e41614610084578063bf0fbcec146100a2578063f99e36bc146100d2575b600080fd5b6100646100dc565b005b61006e6101b5565b60405161007b9190612efd565b60405180910390f35b61008c6101be565b6040516100999190612f4e565b60405180910390f35b6100bc60048036038101906100b7919061210e565b6101da565b6040516100c991906133d8565b60405180910390f35b6100da6102a9565b005b738de6ddbcd5053d32292aaa0d2105a32d108484a66335329d4c426100ff6101b5565b6040518363ffffffff1660e01b815260040161011c92919061341c565b60206040518083038186803b15801561013457600080fd5b505af4158015610148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016c91906120e5565b6101ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a2906132e4565b60405180910390fd5b6101b36102a9565b565b60006001905090565b6040518060600160405280602e81526020016137b2602e913981565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff64ffffffffff1682111561021057600080fd5b738de6ddbcd5053d32292aaa0d2105a32d108484a663d255745683426102346101b5565b6040518463ffffffff1660e01b815260040161025293929190613445565b60206040518083038186803b15801561026a57600080fd5b505af415801561027e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a29190612137565b9050919050565b738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41733b91ebdfbc4b78d778f62632a4004804ac5d2db0612ee06040518363ffffffff1660e01b81526004016102f8929190612b56565b60006040518083038186803b15801561031057600080fd5b505af4158015610324573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173ccffdbc38b1463847509dcd95e0d9aaf54d1c167612ee06040518363ffffffff1660e01b8152600401610377929190612b56565b60006040518083038186803b15801561038f57600080fd5b505af41580156103a3573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173688d508f3a6b0a377e266405a1583b3316f9a2b3612ee06040518363ffffffff1660e01b81526004016103f6929190612b56565b60006040518083038186803b15801561040e57600080fd5b505af4158015610422573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41731ef753934c40a72a60eab12a68b6f8854439aa78612c846040518363ffffffff1660e01b8152600401610475929190612b2d565b60006040518083038186803b15801561048d57600080fd5b505af41580156104a1573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f417380882f2a36d49fc46c3c654f7f9cb9a2bf0423e1612a946040518363ffffffff1660e01b81526004016104f4929190612b04565b60006040518083038186803b15801561050c57600080fd5b505af4158015610520573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41732165d41af0d8d5034b9c266597c1a415fa0253bd6128916040518363ffffffff1660e01b8152600401610573929190612adb565b60006040518083038186803b15801561058b57600080fd5b505af415801561059f573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f417397fb39171acd7c82c439b6158ea2f71d26ba383d6122f16040518363ffffffff1660e01b81526004016105f2929190612df4565b60006040518083038186803b15801561060a57600080fd5b505af415801561061e573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173dc1f98682f4f8a5c6d54f345f448437b83f5e4326113f56040518363ffffffff1660e01b8152600401610671929190612d42565b60006040518083038186803b15801561068957600080fd5b505af415801561069d573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41735b9c98e8a3d9db6cd4b4b4c1f92d0a551d06f00d6111d86040518363ffffffff1660e01b81526004016106f0929190612d19565b60006040518083038186803b15801561070857600080fd5b505af415801561071c573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173b83b3e9c8e3393889afb272d354a7a3bd1fbcf5c610ed56040518363ffffffff1660e01b815260040161076f929190612cf0565b60006040518083038186803b15801561078757600080fd5b505af415801561079b573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41737ae109a63ff4dc852e063a673b40bed85d22e585610d5d6040518363ffffffff1660e01b81526004016107ee929190612cc7565b60006040518083038186803b15801561080657600080fd5b505af415801561081a573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173e070c2dcfcf6c6409202a8a210f71d51dbae9473610c886040518363ffffffff1660e01b815260040161086d929190612c9e565b60006040518083038186803b15801561088557600080fd5b505af4158015610899573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173a2d55b89654079987cf3985aeff5a7bd44da15a86108e66040518363ffffffff1660e01b81526004016108ec929190612bd1565b60006040518083038186803b15801561090457600080fd5b505af4158015610918573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173a3f0abb4ba74512b5a736c5759446e9b50fda17061075b6040518363ffffffff1660e01b815260040161096b929190612ba8565b60006040518083038186803b15801561098357600080fd5b505af4158015610997573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173a6e8772af29b29b9202a073f8e36f447689beef66102146040518363ffffffff1660e01b81526004016109ea929190612d6b565b60006040518083038186803b158015610a0257600080fd5b505af4158015610a16573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41734efb12d515801ecfa3be456b5f348d3cd68f9e8a61012b6040518363ffffffff1660e01b8152600401610a69929190612c75565b60006040518083038186803b158015610a8157600080fd5b505af4158015610a95573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f417346dfcbc2afd5dd8789ef0737fedb03489d33c42861010f6040518363ffffffff1660e01b8152600401610ae8929190612c23565b60006040518083038186803b158015610b0057600080fd5b505af4158015610b14573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173a519a7ce7b24333055781133b13532aeabfac81b60916040518363ffffffff1660e01b8152600401610b66929190612b7f565b60006040518083038186803b158015610b7e57600080fd5b505af4158015610b92573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41736ebb1a9031177208a4ca50164206bf2fa5ff741660416040518363ffffffff1660e01b8152600401610be4929190612dcb565b60006040518083038186803b158015610bfc57600080fd5b505af4158015610c10573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173e78658a8acfe982fde841abb008e57e6545e38b3601c6040518363ffffffff1660e01b8152600401610c62929190612c4c565b60006040518083038186803b158015610c7a57600080fd5b505af4158015610c8e573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb732dc0420a736d1f40893b9481d8968e4d7424bc0b680df2e4c1b693c300006040518363ffffffff1660e01b8152600401610d0a929190612bfa565b602060405180830381600087803b158015610d2457600080fd5b505af1158015610d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5c91906120e5565b50738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f42406101f402620f4240600f026154606040518463ffffffff1660e01b8152600401610da793929190612ffe565b60006040518083038186803b158015610dbf57600080fd5b505af4158015610dd3573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f42406101f402620f4240600f026170806040518463ffffffff1660e01b8152600401610e21939291906131f4565b60006040518083038186803b158015610e3957600080fd5b505af4158015610e4d573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66327eddd12620f424060fa026040518263ffffffff1660e01b8152600401610e8e9190612fd7565b60006040518083038186803b158015610ea657600080fd5b505af4158015610eba573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f42406101f402620f4240601402620151806040518463ffffffff1660e01b8152600401610f099392919061325e565b60006040518083038186803b158015610f2157600080fd5b505af4158015610f35573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f424060fa02620f4240600a02620151806040518463ffffffff1660e01b8152600401610f83939291906132a1565b60006040518083038186803b158015610f9b57600080fd5b505af4158015610faf573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f42406101f402620f4240601402620151806040518463ffffffff1660e01b8152600401610ffe93929190613120565b60006040518083038186803b15801561101657600080fd5b505af415801561102a573d6000803e3d6000fd5b5050505060007f4d414e412d4100000000000000000000000000000000000000000000000000009050738de6ddbcd5053d32292aaa0d2105a32d108484a663f02b0d02826040518263ffffffff1660e01b815260040161108a9190612f18565b60006040518083038186803b1580156110a257600080fd5b505af41580156110b6573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d9638d36836040518263ffffffff1660e01b81526004016111159190612f33565b60a06040518083038186803b15801561112d57600080fd5b505afa158015611141573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111659190612160565b509350505050738de6ddbcd5053d32292aaa0d2105a32d108484a6638050ec607f00000000000000000000000000000000000000000000000000000000000000008460006040518463ffffffff1660e01b81526004016111c793929190612a98565b60006040518083038186803b1580156111df57600080fd5b505af41580156111f3573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663eb3ffe9e7f00000000000000000000000000000000000000000000000000000000000000006112d97f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663babe8a3f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561129b57600080fd5b505afa1580156112af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d39190612137565b85612018565b6040518363ffffffff1660e01b81526004016112f6929190612e5e565b60006040518083038186803b15801561130e57600080fd5b505af4158015611322573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66327eddd12620f42406064026040518263ffffffff1660e01b81526004016113639190613347565b60006040518083038186803b15801561137b57600080fd5b505af415801561138f573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66327eddd12620f42406064026040518263ffffffff1660e01b81526004016113d091906131a6565b60006040518083038186803b1580156113e857600080fd5b505af41580156113fc573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66327eddd12620f42406064026040518263ffffffff1660e01b815260040161143d91906130b6565b60006040518083038186803b15801561145557600080fd5b505af4158015611469573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66327eddd12620f42406101c2026040518263ffffffff1660e01b81526004016114ab919061336e565b60006040518083038186803b1580156114c357600080fd5b505af41580156114d7573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f4240600502622625a06170806040518463ffffffff1660e01b8152600401611521939291906130dd565b60006040518083038186803b15801561153957600080fd5b505af415801561154d573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f42406003026216e3606170806040518463ffffffff1660e01b815260040161159793929190613163565b60006040518083038186803b1580156115af57600080fd5b505af41580156115c3573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663eb3ffe9e7f00000000000000000000000000000000000000000000000000000000000000006103e8670de0b6b3a76400006001028161161857fe5b046040518363ffffffff1660e01b8152600401611636929190612e93565b60006040518083038186803b15801561164e57600080fd5b505af4158015611662573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663eb3ffe9e7f00000000000000000000000000000000000000000000000000000000000000006103e8670de0b6b3a7640000600102816116b757fe5b046040518363ffffffff1660e01b81526004016116d5929190612e93565b60006040518083038186803b1580156116ed57600080fd5b505af4158015611701573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663eb3ffe9e7f00000000000000000000000000000000000000000000000000000000000000006103e8670de0b6b3a76400006001028161175657fe5b046040518363ffffffff1660e01b8152600401611774929190612ec8565b60006040518083038186803b15801561178c57600080fd5b505af41580156117a0573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663437757b96b033b2e3ca43176a9d2dfd0a560016040518363ffffffff1660e01b81526004016117ea9291906133f3565b60006040518083038186803b15801561180257600080fd5b505af4158015611816573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6637571a78e604051806102a001604052807f474e4f2d410000000000000000000000000000000000000000000000000000008152602001736810e776880c02933d47db1b9fc05908e5386b9673ffffffffffffffffffffffffffffffffffffffff168152602001737bd3f01e24e0f0838788bc8f573cea43a80cabb573ffffffffffffffffffffffffffffffffffffffff16815260200173d9e758bd239e5d568f44d0a748633f6a8d52cbbb73ffffffffffffffffffffffffffffffffffffffff1681526020017317b6d0e4237ea7f880af5f58257cd232a04171d973ffffffffffffffffffffffffffffffffffffffff16815260200173d800ca44ffabecd159c7889c3bf64a217361aec873ffffffffffffffffffffffffffffffffffffffff168152602001600115158152602001600115158152602001600115158152602001624c4b408152602001620186a08152602001621e8480815260200161051481526020016b033b2e3caaae446a355df2a78152602001612ee0815260200161138881526020016120d081526020016109c481526020016188b8815260200160fa8152602001600a8152506040518263ffffffff1660e01b81526004016119f691906133bc565b60006040518083038186803b158015611a0e57600080fd5b505af4158015611a22573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663d0bab9337317b6d0e4237ea7f880af5f58257cd232a04171d9603c6126ac6040518463ffffffff1660e01b8152600401611a7893929190612d94565b60006040518083038186803b158015611a9057600080fd5b505af4158015611aa4573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237624c4b40622dc6c06170806040518463ffffffff1660e01b8152600401611aeb93929190613304565b60006040518083038186803b158015611b0357600080fd5b505af4158015611b17573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6630daa5eb560006040518263ffffffff1660e01b8152600401611b539190613041565b60006040518083038186803b158015611b6b57600080fd5b505af4158015611b7f573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b795307860006040518263ffffffff1660e01b8152600401611bbb9190613041565b60006040518083038186803b158015611bd357600080fd5b505af4158015611be7573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6638050ec60738de6ddbcd5053d32292aaa0d2105a32d108484a6632e77468d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c4957600080fd5b505af4158015611c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8191906120bc565b6b033b2e3c9fd0803ce80000006032026040518363ffffffff1660e01b8152600401611cae929190612e1d565b60006040518083038186803b158015611cc657600080fd5b505af4158015611cda573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6639bd0a56a620557306040518263ffffffff1660e01b8152600401611d189190613068565b60006040518083038186803b158015611d3057600080fd5b505af4158015611d44573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a1736810e776880c02933d47db1b9fc05908e5386b966040518263ffffffff1660e01b8152600401611d9391906131cd565b60006040518083038186803b158015611dab57600080fd5b505af4158015611dbf573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a173d800ca44ffabecd159c7889c3bf64a217361aec86040518263ffffffff1660e01b8152600401611e0e9190613237565b60006040518083038186803b158015611e2657600080fd5b505af4158015611e3a573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a1737bd3f01e24e0f0838788bc8f573cea43a80cabb56040518263ffffffff1660e01b8152600401611e899190613395565b60006040518083038186803b158015611ea157600080fd5b505af4158015611eb5573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a173d9e758bd239e5d568f44d0a748633f6a8d52cbbb6040518263ffffffff1660e01b8152600401611f04919061308f565b60006040518083038186803b158015611f1c57600080fd5b505af4158015611f30573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a17317b6d0e4237ea7f880af5f58257cd232a04171d96040518263ffffffff1660e01b8152600401611f7f9190612f90565b60006040518083038186803b158015611f9757600080fd5b505af4158015611fab573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6635f3a7dd76040518163ffffffff1660e01b8152600401611fe490612fb7565b60006040518083038186803b158015611ffc57600080fd5b505af4158015612010573d6000803e3d6000fd5b505050505050565b6000828284039150811115612062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205990612f70565b60405180910390fd5b92915050565b6000815190506120778161376c565b92915050565b60008151905061208c81613783565b92915050565b6000813590506120a18161379a565b92915050565b6000815190506120b68161379a565b92915050565b6000602082840312156120ce57600080fd5b60006120dc84828501612068565b91505092915050565b6000602082840312156120f757600080fd5b60006121058482850161207d565b91505092915050565b60006020828403121561212057600080fd5b600061212e84828501612092565b91505092915050565b60006020828403121561214957600080fd5b6000612157848285016120a7565b91505092915050565b600080600080600060a0868803121561217857600080fd5b6000612186888289016120a7565b9550506020612197888289016120a7565b94505060406121a8888289016120a7565b93505060606121b9888289016120a7565b92505060806121ca888289016120a7565b9150509295509295909350565b6121e0816134a9565b82525050565b6121ef816134a9565b82525050565b6121fe816134a9565b82525050565b61220d816134bb565b82525050565b61221c816134bb565b82525050565b61222b816134bb565b82525050565b61223a816134c7565b82525050565b612249816134c7565b82525050565b612258816134c7565b82525050565b6122678161350c565b82525050565b6122768161351e565b82525050565b61228581613530565b82525050565b61229481613542565b82525050565b6122a381613554565b82525050565b6122b281613566565b82525050565b6122c181613578565b82525050565b6122d08161358a565b82525050565b6122df8161359c565b82525050565b6122ee816135ae565b82525050565b6122fd816135c0565b82525050565b61230c816135d2565b82525050565b61231b816135e4565b82525050565b61232a816135f6565b82525050565b61233981613608565b82525050565b6123488161361a565b82525050565b6123578161362c565b82525050565b6123668161363e565b82525050565b61237581613650565b82525050565b61238481613662565b82525050565b61239381613674565b82525050565b6123a281613686565b82525050565b6123b181613698565b82525050565b6123c0816136aa565b82525050565b6123cf816136bc565b82525050565b6123de816136ce565b82525050565b6123ed816136e0565b82525050565b6123fc816136f2565b82525050565b61240b81613704565b82525050565b61241a81613716565b82525050565b600061242b8261347c565b6124358185613487565b9350612445818560208601613728565b61244e8161375b565b840191505092915050565b6000612466601583613487565b91507f64732d6d6174682d7375622d756e646572666c6f7700000000000000000000006000830152602082019050919050565b7f4d43445f434c49505f43414c435f474e4f5f4100000000000000000000000000815250565b60006124cc600683613498565b91507f312e31342e3700000000000000000000000000000000000000000000000000006000830152602082019050919050565b7f4554482d42000000000000000000000000000000000000000000000000000000815250565b7f5753544554482d41000000000000000000000000000000000000000000000000815250565b7f52454e4254432d41000000000000000000000000000000000000000000000000815250565b7f4d43445f434c49505f474e4f5f41000000000000000000000000000000000000815250565b7f6c696e6500000000000000000000000000000000000000000000000000000000815250565b7f554e495632444149555344432d41000000000000000000000000000000000000815250565b7f6d61740000000000000000000000000000000000000000000000000000000000815250565b7f4c696e6500000000000000000000000000000000000000000000000000000000815250565b7f74696e0000000000000000000000000000000000000000000000000000000000815250565b7f4c494e4b2d410000000000000000000000000000000000000000000000000000815250565b7f574254432d430000000000000000000000000000000000000000000000000000815250565b7f5946492d41000000000000000000000000000000000000000000000000000000815250565b7f47554e49563344414955534443322d4100000000000000000000000000000000815250565b7f474e4f0000000000000000000000000000000000000000000000000000000000815250565b7f5753544554482d42000000000000000000000000000000000000000000000000815250565b7f5049505f474e4f00000000000000000000000000000000000000000000000000815250565b7f574254432d410000000000000000000000000000000000000000000000000000815250565b7f746f757400000000000000000000000000000000000000000000000000000000815250565b7f574254432d420000000000000000000000000000000000000000000000000000815250565b60006127de601483613487565b91507f4f757473696465206f666669636520686f7572730000000000000000000000006000830152602082019050919050565b7f474e4f2d41000000000000000000000000000000000000000000000000000000815250565b7f47554e49563344414955534443312d4100000000000000000000000000000000815250565b7f50534d2d5041582d410000000000000000000000000000000000000000000000815250565b7f4d43445f4a4f494e5f474e4f5f41000000000000000000000000000000000000815250565b6102a0820160008201516128c0600085018261224f565b5060208201516128d360208501826121f5565b5060408201516128e660408501826121f5565b5060608201516128f960608501826121f5565b50608082015161290c60808501826121f5565b5060a082015161291f60a08501826121f5565b5060c082015161293260c0850182612222565b5060e082015161294560e0850182612222565b5061010082015161295a610100850182612222565b5061012082015161296f610120850182612a7a565b50610140820151612984610140850182612a7a565b50610160820151612999610160850182612a7a565b506101808201516129ae610180850182612a7a565b506101a08201516129c36101a0850182612a7a565b506101c08201516129d86101c0850182612a7a565b506101e08201516129ed6101e0850182612a7a565b50610200820151612a02610200850182612a7a565b50610220820151612a17610220850182612a7a565b50610240820151612a2c610240850182612a7a565b50610260820151612a41610260850182612a7a565b50610280820151612a56610280850182612a7a565b50505050565b612a65816134f1565b82525050565b612a74816134f1565b82525050565b612a83816134f1565b82525050565b612a92816134fb565b82525050565b6000608082019050612aad60008301866121e6565b612aba6020830185612240565b612ac660408301612597565b612ad3606083018461225e565b949350505050565b6000604082019050612af060008301856121e6565b612afd602083018461226d565b9392505050565b6000604082019050612b1960008301856121e6565b612b26602083018461227c565b9392505050565b6000604082019050612b4260008301856121e6565b612b4f602083018461228b565b9392505050565b6000604082019050612b6b60008301856121e6565b612b78602083018461229a565b9392505050565b6000604082019050612b9460008301856121e6565b612ba160208301846122a9565b9392505050565b6000604082019050612bbd60008301856121e6565b612bca60208301846122c7565b9392505050565b6000604082019050612be660008301856121e6565b612bf360208301846122e5565b9392505050565b6000604082019050612c0f60008301856121d7565b612c1c6020830184612303565b9392505050565b6000604082019050612c3860008301856121e6565b612c456020830184612312565b9392505050565b6000604082019050612c6160008301856121e6565b612c6e6020830184612330565b9392505050565b6000604082019050612c8a60008301856121e6565b612c97602083018461233f565b9392505050565b6000604082019050612cb360008301856121e6565b612cc0602083018461235d565b9392505050565b6000604082019050612cdc60008301856121e6565b612ce9602083018461236c565b9392505050565b6000604082019050612d0560008301856121e6565b612d12602083018461238a565b9392505050565b6000604082019050612d2e60008301856121e6565b612d3b6020830184612399565b9392505050565b6000604082019050612d5760008301856121e6565b612d6460208301846123b7565b9392505050565b6000604082019050612d8060008301856121e6565b612d8d60208301846123c6565b9392505050565b6000606082019050612da960008301866121e6565b612db660208301856123d5565b612dc36040830184612411565b949350505050565b6000604082019050612de060008301856121e6565b612ded60208301846123e4565b9392505050565b6000604082019050612e0960008301856121e6565b612e166020830184612402565b9392505050565b6000608082019050612e3260008301856121e6565b612e3e6020830161254b565b612e4a604083016125e3565b612e576060830184612a6b565b9392505050565b6000606082019050612e7360008301856121e6565b612e7f60208301612609565b612e8c6040830184612a6b565b9392505050565b6000606082019050612ea860008301856121e6565b612eb46020830161262f565b612ec16040830184612a6b565b9392505050565b6000606082019050612edd60008301856121e6565b612ee960208301612785565b612ef66040830184612a6b565b9392505050565b6000602082019050612f126000830184612204565b92915050565b6000602082019050612f2d6000830184612240565b92915050565b6000602082019050612f486000830184612231565b92915050565b60006020820190508181036000830152612f688184612420565b905092915050565b60006020820190508181036000830152612f8981612459565b9050919050565b6000604082019050612fa460008301612499565b612fb160208301846121e6565b92915050565b60006020820190508181036000830152612fd0816124bf565b9050919050565b6000604082019050612feb600083016124ff565b612ff86020830184612a6b565b92915050565b600060808201905061301260008301612525565b61301f6020830186612a6b565b61302c6040830185612a6b565b61303960608301846122d6565b949350505050565b60006040820190506130556000830161254b565b613062602083018461225e565b92915050565b600060408201905061307c6000830161254b565b613089602083018461237b565b92915050565b60006040820190506130a360008301612571565b6130b060208301846121e6565b92915050565b60006040820190506130ca600083016125bd565b6130d76020830184612a6b565b92915050565b60006080820190506130f160008301612655565b6130fe6020830186612a6b565b61310b60408301856122f4565b6131186060830184612321565b949350505050565b60006080820190506131346000830161267b565b6131416020830186612a6b565b61314e6040830185612a6b565b61315b60608301846123f3565b949350505050565b6000608082019050613177600083016126a1565b6131846020830186612a6b565b61319160408301856122b8565b61319e6060830184612321565b949350505050565b60006040820190506131ba600083016126c7565b6131c76020830184612a6b565b92915050565b60006040820190506131e1600083016126ed565b6131ee60208301846121e6565b92915050565b600060808201905061320860008301612713565b6132156020830186612a6b565b6132226040830185612a6b565b61322f6060830184612321565b949350505050565b600060408201905061324b60008301612739565b61325860208301846121e6565b92915050565b60006080820190506132726000830161275f565b61327f6020830186612a6b565b61328c6040830185612a6b565b61329960608301846123f3565b949350505050565b60006080820190506132b5600083016127ab565b6132c26020830186612a6b565b6132cf6040830185612a6b565b6132dc60608301846123f3565b949350505050565b600060208201905081810360008301526132fd816127d1565b9050919050565b600060808201905061331860008301612811565b61332560208301866123a8565b613332604083018561234e565b61333f6060830184612321565b949350505050565b600060408201905061335b60008301612837565b6133686020830184612a6b565b92915050565b60006040820190506133826000830161285d565b61338f6020830184612a6b565b92915050565b60006040820190506133a960008301612883565b6133b660208301846121e6565b92915050565b60006102a0820190506133d260008301846128a9565b92915050565b60006020820190506133ed6000830184612a5c565b92915050565b60006040820190506134086000830185612a6b565b6134156020830184612213565b9392505050565b60006040820190506134316000830185612a89565b61343e6020830184612213565b9392505050565b600060608201905061345a6000830186612a89565b6134676020830185612a89565b6134746040830184612213565b949350505050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006134b4826134d1565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600064ffffffffff82169050919050565b6000613517826134f1565b9050919050565b6000613529826134f1565b9050919050565b600061353b826134f1565b9050919050565b600061354d826134f1565b9050919050565b600061355f826134f1565b9050919050565b6000613571826134f1565b9050919050565b6000613583826134f1565b9050919050565b6000613595826134f1565b9050919050565b60006135a7826134f1565b9050919050565b60006135b9826134f1565b9050919050565b60006135cb826134f1565b9050919050565b60006135dd826134f1565b9050919050565b60006135ef826134f1565b9050919050565b6000613601826134f1565b9050919050565b6000613613826134f1565b9050919050565b6000613625826134f1565b9050919050565b6000613637826134f1565b9050919050565b6000613649826134f1565b9050919050565b600061365b826134f1565b9050919050565b600061366d826134f1565b9050919050565b600061367f826134f1565b9050919050565b6000613691826134f1565b9050919050565b60006136a3826134f1565b9050919050565b60006136b5826134f1565b9050919050565b60006136c7826134f1565b9050919050565b60006136d9826134f1565b9050919050565b60006136eb826134f1565b9050919050565b60006136fd826134f1565b9050919050565b600061370f826134f1565b9050919050565b6000613721826134f1565b9050919050565b60005b8381101561374657808201518184015260208101905061372b565b83811115613755576000848401525b50505050565b6000601f19601f8301169050919050565b613775816134a9565b811461378057600080fd5b50565b61378c816134bb565b811461379757600080fd5b50565b6137a3816134f1565b81146137ae57600080fd5b5056fe323032322d31322d3039204d616b657244414f20457865637574697665205370656c6c207c20486173683a203078a26469706673582212203991d84945324ecb98e494da463421f9fb15cadcf88def12e15e86419e87016664736f6c634300060c0033 'DssSpell()' seth-send: Published transaction with 20788 bytes of calldata. seth-send: 0xb6f107601e1e83596a6e39823c9ea873d811f61a8e7e843195d035c47ecb5c89 seth-send: Waiting for transaction receipt... seth-send: Transaction included in block 16139817. 0x90b97E83e22AFa2e6A96b3549A0E495D5Bae61aF ```
KirillDogadin-std commented 1 year ago
my output is ```sh [nix-shell:~/spells]# git status On branch feat/on-gno-off-renbtc Your branch is up to date with 'origin/feat/on-gno-off-renbtc'. nothing to commit, working tree clean [nix-shell:~/spells]# dapp --version dapp 0.35.0 solc, the solidity compiler commandline interface Version: 0.8.6+commit.11564f7e.Linux.g++ make hevm 0.49.1 [nix-shell:~/spells]# make DAPP_LIBRARIES=' lib/dss-exec-lib/src/DssExecLib.sol:DssExecLib:0x8De6DDbCd5053d32292AAA0D2105A32d108484a6' \ DAPP_BUILD_OPTIMIZE=0 DAPP_BUILD_OPTIMIZE_RUNS=200 \ dapp --use solc:0.6.12 build dapp---use: Could not find solc-0.6.12 in your path or nix store. Temporarily installing solc-0.6.12... Tip: run `nix-env -f https://github.com/dapphub/dapptools/archive/master.tar.gz -iA solc-static-versions.solc_0_6_12` for a lasting installation of this version. + dapp clean + rm -rf out lib/ds-math/src/math.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: " to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information. lib/dss-exec-lib/src/CollateralOpts.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: " to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information. lib/ds-math/src/math.sol:19:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function add(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:25:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function mul(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:22:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function sub(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:19:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function add(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:25:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function mul(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:22:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function sub(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:19:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function add(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:25:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function mul(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:22:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function sub(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:19:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function add(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:25:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function mul(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:22:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function sub(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:19:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function add(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:25:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function mul(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:22:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function sub(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:19:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function add(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:25:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function mul(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/ds-math/src/math.sol:22:5: Warning: Variable is shadowed in inline assembly by an instruction of the same name function sub(uint x, uint y) internal pure returns (uint z) { ^ (Relevant source part starts here and spans across multiple lines). lib/dss-exec-lib/src/DssAction.sol:42:5: Warning: Function state mutability can be restricted to pure function officeHours() public virtual returns (bool) { ^ (Relevant source part starts here and spans across multiple lines). src/DssSpell.t.base.sol:1666:5: Warning: Function state mutability can be restricted to pure function skipWards(address target, address deployer) internal view returns (bool) { ^ (Relevant source part starts here and spans across multiple lines). lib/dss-exec-lib/src/DssExecLib.sol:134:1: Warning: Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on mainnet. Consider enabling the optimizer (with a low "runs" value!), turning off revert strings, or using libraries. library DssExecLib { ^ (Relevant source part starts here and spans across multiple lines). src/test/config.sol:19:1: Warning: Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on mainnet. Consider enabling the optimizer (with a low "runs" value!), turning off revert strings, or using libraries. contract Config { ^ (Relevant source part starts here and spans across multiple lines). src/DssSpell.t.base.sol:175:1: Warning: Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on mainnet. Consider enabling the optimizer (with a low "runs" value!), turning off revert strings, or using libraries. contract DssSpellTestBase is Config, DSTest, DSMath { ^ (Relevant source part starts here and spans across multiple lines). src/DssSpell.t.sol:46:1: Warning: Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on mainnet. Consider enabling the optimizer (with a low "runs" value!), turning off revert strings, or using libraries. contract DssSpellTest is DssSpellTestBase { ^ (Relevant source part starts here and spans across multiple lines). src/test/starknet.t.sol:83:1: Warning: Contract code size exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on mainnet. Consider enabling the optimizer (with a low "runs" value!), turning off revert strings, or using libraries. contract StarknetTests is DssSpellTestBase, ConfigStarknet { ^ (Relevant source part starts here and spans across multiple lines). [nix-shell:~/spells]# [nix-shell:~/spells]# dapp create DssSpell ++ seth send --create 6101006040523480156200001257600080fd5b5062278d004201604051620000279062000212565b604051809103906000f08015801562000044573d6000803e3d6000fd5b5073da0ab1e0017debcd72be8599041a2aa3ba7e740f73ffffffffffffffffffffffffffffffffffffffff166321f8a7216040518163ffffffff1660e01b815260040162000092906200032f565b60206040518083038186803b158015620000ab57600080fd5b505afa158015620000c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e69190620002dd565b73ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508160c081815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250506040516024016040516020818303038152906040527f61461954000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060019080519060200190620001f592919062000220565b50600080829050803f915081608081815250505050505062000398565b613c8180620014b383390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026357805160ff191683800117855562000294565b8280016001018555821562000294579182015b828111156200029357825182559160200191906001019062000276565b5b509050620002a39190620002a7565b5090565b5b80821115620002c2576000816000905550600101620002a8565b5090565b600081519050620002d7816200037e565b92915050565b600060208284031215620002f057600080fd5b60006200030084828501620002c6565b91505092915050565b7f4d43445f50415553450000000000000000000000000000000000000000000000815250565b6000602082019050620003456000830162000309565b919050565b600062000357826200035e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b62000389816200034a565b81146200039557600080fd5b50565b60805160a05160601c60c05160e05160601c6110a86200040b600039806104a4528061053352806106e9528061078f5250806102f552806106425250806102d1528061035752806103fc528061056f52806107cb528061086d525080610331528061059052806107ec52506110a86000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80637284e4161161008c578063ae8421e111610066578063ae8421e1146101cd578063b0604a26146101eb578063f7992d85146101f5578063fe7d47bb14610213576100ce565b80637284e416146101875780638456cb59146101a557806396d373e5146101c3576100ce565b8062a7029b146100d35780630a7a1c4d146100f15780634665096d1461010f57806351973ec91461012d57806351f910661461014b5780636e832f0714610169575b600080fd5b6100db610231565b6040516100e89190610d9f565b60405180910390f35b6100f96102cf565b6040516101069190610d02565b60405180910390f35b6101176102f3565b6040516101249190610e79565b60405180910390f35b610135610317565b6040516101429190610dc1565b60405180910390f35b61015361032f565b6040516101609190610d84565b60405180910390f35b610171610353565b60405161017e9190610d69565b60405180910390f35b61018f6103f8565b60405161019c9190610df7565b60405180910390f35b6101ad6104a2565b6040516101ba9190610ddc565b60405180910390f35b6101cb6104c6565b005b6101d561062d565b6040516101e29190610d69565b60405180910390f35b6101f3610640565b005b6101fd610863565b60405161020a9190610e79565b60405180910390f35b61021b610869565b6040516102289190610e79565b60405180910390f35b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102c75780601f1061029c576101008083540402835291602001916102c7565b820191906000526020600020905b8154815290600101906020018083116102aa57829003601f168201915b505050505081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b73da0ab1e0017debcd72be8599041a2aa3ba7e740f81565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e832f076040518163ffffffff1660e01b815260040160206040518083038186803b1580156103bb57600080fd5b505afa1580156103cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f391906109ed565b905090565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637284e4166040518163ffffffff1660e01b815260040160006040518083038186803b15801561046057600080fd5b505afa158015610474573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061049d9190610a57565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600260009054906101000a900460ff1615610516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050d90610e19565b60405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663168ccd677f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060016000546040518563ffffffff1660e01b81526004016105d39493929190610d1d565b600060405180830381600087803b1580156105ed57600080fd5b505af1158015610601573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061062a9190610a16565b50565b600260009054906101000a900460ff1681565b7f00000000000000000000000000000000000000000000000000000000000000004211156106a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069a90610e59565b60405180910390fd5b60008054146106e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106de90610e39565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b15801561074d57600080fd5b505afa158015610761573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107859190610a98565b42016000819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166346d2fbbb7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060016000546040518563ffffffff1660e01b815260040161082f9493929190610d1d565b600060405180830381600087803b15801561084957600080fd5b505af115801561085d573d6000803e3d6000fd5b50505050565b60005481565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bf0fbcec6000546040518263ffffffff1660e01b81526004016108c69190610e79565b60206040518083038186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109169190610a98565b905090565b60008151905061092a81611044565b92915050565b600082601f83011261094157600080fd5b815161095461094f82610ec1565b610e94565b9150808252602083016020830185838301111561097057600080fd5b61097b838284611000565b50505092915050565b600082601f83011261099557600080fd5b81516109a86109a382610eed565b610e94565b915080825260208301602083018583830111156109c457600080fd5b6109cf838284611000565b50505092915050565b6000815190506109e78161105b565b92915050565b6000602082840312156109ff57600080fd5b6000610a0d8482850161091b565b91505092915050565b600060208284031215610a2857600080fd5b600082015167ffffffffffffffff811115610a4257600080fd5b610a4e84828501610930565b91505092915050565b600060208284031215610a6957600080fd5b600082015167ffffffffffffffff811115610a8357600080fd5b610a8f84828501610984565b91505092915050565b600060208284031215610aaa57600080fd5b6000610ab8848285016109d8565b91505092915050565b610aca81610f66565b82525050565b610ad981610f78565b82525050565b610ae881610f84565b82525050565b6000610af982610f2e565b610b038185610f44565b9350610b13818560208601611000565b610b1c81611033565b840191505092915050565b600081546001811660008114610b445760018114610b6a57610bae565b607f6002830416610b558187610f44565b955060ff198316865260208601935050610bae565b60028204610b788187610f44565b9550610b8385610f19565b60005b82811015610ba557815481890152600182019150602081019050610b86565b80880195505050505b505092915050565b610bbf81610fb8565b82525050565b610bce81610fdc565b82525050565b6000610bdf82610f39565b610be98185610f55565b9350610bf9818560208601611000565b610c0281611033565b840191505092915050565b6000610c1a601283610f55565b91507f7370656c6c2d616c72656164792d6361737400000000000000000000000000006000830152602082019050919050565b6000610c5a602583610f55565b91507f54686973207370656c6c2068617320616c7265616479206265656e207363686560008301527f64756c65640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610cc0601983610f55565b91507f5468697320636f6e7472616374206861732065787069726564000000000000006000830152602082019050919050565b610cfc81610fae565b82525050565b6000602082019050610d176000830184610ac1565b92915050565b6000608082019050610d326000830187610ac1565b610d3f6020830186610adf565b8181036040830152610d518185610b27565b9050610d606060830184610cf3565b95945050505050565b6000602082019050610d7e6000830184610ad0565b92915050565b6000602082019050610d996000830184610adf565b92915050565b60006020820190508181036000830152610db98184610aee565b905092915050565b6000602082019050610dd66000830184610bb6565b92915050565b6000602082019050610df16000830184610bc5565b92915050565b60006020820190508181036000830152610e118184610bd4565b905092915050565b60006020820190508181036000830152610e3281610c0d565b9050919050565b60006020820190508181036000830152610e5281610c4d565b9050919050565b60006020820190508181036000830152610e7281610cb3565b9050919050565b6000602082019050610e8e6000830184610cf3565b92915050565b6000604051905081810181811067ffffffffffffffff82111715610eb757600080fd5b8060405250919050565b600067ffffffffffffffff821115610ed857600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff821115610f0457600080fd5b601f19601f8301169050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610f7182610f8e565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610fc382610fca565b9050919050565b6000610fd582610f8e565b9050919050565b6000610fe782610fee565b9050919050565b6000610ff982610f8e565b9050919050565b60005b8381101561101e578082015181840152602081019050611003565b8381111561102d576000848401525b50505050565b6000601f19601f8301169050919050565b61104d81610f78565b811461105857600080fd5b50565b61106481610fae565b811461106f57600080fd5b5056fea264697066735822122072aeb15c2703c2db0b918fc4eda67d465b219afac52fac834726a855ffb49cb364736f6c634300060c0033610100604052738de6ddbcd5053d32292aaa0d2105a32d108484a66336569e776040518163ffffffff1660e01b815260040160206040518083038186803b1580156200004a57600080fd5b505af41580156200005f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200008591906200031a565b73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b815250738de6ddbcd5053d32292aaa0d2105a32d108484a663a16ed56f6040518163ffffffff1660e01b8152600401620000f190620003ad565b60206040518083038186803b1580156200010a57600080fd5b505af41580156200011f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014591906200031a565b73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1660601b815250738de6ddbcd5053d32292aaa0d2105a32d108484a663a16ed56f6040518163ffffffff1660e01b8152600401620001b19062000392565b60206040518083038186803b158015620001ca57600080fd5b505af4158015620001df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020591906200031a565b73ffffffffffffffffffffffffffffffffffffffff1660c09073ffffffffffffffffffffffffffffffffffffffff1660601b815250738de6ddbcd5053d32292aaa0d2105a32d108484a6637e992cb86040518163ffffffff1660e01b815260040160206040518083038186803b1580156200027f57600080fd5b505af415801562000294573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ba91906200031a565b73ffffffffffffffffffffffffffffffffffffffff1660e09073ffffffffffffffffffffffffffffffffffffffff1660601b815250348015620002fc57600080fd5b5062000416565b6000815190506200031481620003fc565b92915050565b6000602082840312156200032d57600080fd5b60006200033d8482850162000303565b91505092915050565b7f4d43445f50534d5f475553445f41000000000000000000000000000000000000815250565b7f4d43445f50534d5f5041585f4100000000000000000000000000000000000000815250565b6000602082019050620003a86000830162000346565b919050565b6000602082019050620003c3600083016200036c565b919050565b6000620003d582620003dc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6200040781620003c8565b81146200041357600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c6138156200046c60003980610c9452508061168252806117215250806115e35250806110be52806111875280611213528061123752506138156000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063614619541461005c5780636e832f07146100665780637284e41614610084578063bf0fbcec146100a2578063f99e36bc146100d2575b600080fd5b6100646100dc565b005b61006e6101b5565b60405161007b9190612efd565b60405180910390f35b61008c6101be565b6040516100999190612f4e565b60405180910390f35b6100bc60048036038101906100b7919061210e565b6101da565b6040516100c991906133d8565b60405180910390f35b6100da6102a9565b005b738de6ddbcd5053d32292aaa0d2105a32d108484a66335329d4c426100ff6101b5565b6040518363ffffffff1660e01b815260040161011c92919061341c565b60206040518083038186803b15801561013457600080fd5b505af4158015610148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016c91906120e5565b6101ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a2906132e4565b60405180910390fd5b6101b36102a9565b565b60006001905090565b6040518060600160405280602e81526020016137b2602e913981565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff64ffffffffff1682111561021057600080fd5b738de6ddbcd5053d32292aaa0d2105a32d108484a663d255745683426102346101b5565b6040518463ffffffff1660e01b815260040161025293929190613445565b60206040518083038186803b15801561026a57600080fd5b505af415801561027e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a29190612137565b9050919050565b738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41733b91ebdfbc4b78d778f62632a4004804ac5d2db0612ee06040518363ffffffff1660e01b81526004016102f8929190612b56565b60006040518083038186803b15801561031057600080fd5b505af4158015610324573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173ccffdbc38b1463847509dcd95e0d9aaf54d1c167612ee06040518363ffffffff1660e01b8152600401610377929190612b56565b60006040518083038186803b15801561038f57600080fd5b505af41580156103a3573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173688d508f3a6b0a377e266405a1583b3316f9a2b3612ee06040518363ffffffff1660e01b81526004016103f6929190612b56565b60006040518083038186803b15801561040e57600080fd5b505af4158015610422573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41731ef753934c40a72a60eab12a68b6f8854439aa78612c846040518363ffffffff1660e01b8152600401610475929190612b2d565b60006040518083038186803b15801561048d57600080fd5b505af41580156104a1573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f417380882f2a36d49fc46c3c654f7f9cb9a2bf0423e1612a946040518363ffffffff1660e01b81526004016104f4929190612b04565b60006040518083038186803b15801561050c57600080fd5b505af4158015610520573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41732165d41af0d8d5034b9c266597c1a415fa0253bd6128916040518363ffffffff1660e01b8152600401610573929190612adb565b60006040518083038186803b15801561058b57600080fd5b505af415801561059f573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f417397fb39171acd7c82c439b6158ea2f71d26ba383d6122f16040518363ffffffff1660e01b81526004016105f2929190612df4565b60006040518083038186803b15801561060a57600080fd5b505af415801561061e573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173dc1f98682f4f8a5c6d54f345f448437b83f5e4326113f56040518363ffffffff1660e01b8152600401610671929190612d42565b60006040518083038186803b15801561068957600080fd5b505af415801561069d573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41735b9c98e8a3d9db6cd4b4b4c1f92d0a551d06f00d6111d86040518363ffffffff1660e01b81526004016106f0929190612d19565b60006040518083038186803b15801561070857600080fd5b505af415801561071c573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173b83b3e9c8e3393889afb272d354a7a3bd1fbcf5c610ed56040518363ffffffff1660e01b815260040161076f929190612cf0565b60006040518083038186803b15801561078757600080fd5b505af415801561079b573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41737ae109a63ff4dc852e063a673b40bed85d22e585610d5d6040518363ffffffff1660e01b81526004016107ee929190612cc7565b60006040518083038186803b15801561080657600080fd5b505af415801561081a573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173e070c2dcfcf6c6409202a8a210f71d51dbae9473610c886040518363ffffffff1660e01b815260040161086d929190612c9e565b60006040518083038186803b15801561088557600080fd5b505af4158015610899573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173a2d55b89654079987cf3985aeff5a7bd44da15a86108e66040518363ffffffff1660e01b81526004016108ec929190612bd1565b60006040518083038186803b15801561090457600080fd5b505af4158015610918573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173a3f0abb4ba74512b5a736c5759446e9b50fda17061075b6040518363ffffffff1660e01b815260040161096b929190612ba8565b60006040518083038186803b15801561098357600080fd5b505af4158015610997573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173a6e8772af29b29b9202a073f8e36f447689beef66102146040518363ffffffff1660e01b81526004016109ea929190612d6b565b60006040518083038186803b158015610a0257600080fd5b505af4158015610a16573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41734efb12d515801ecfa3be456b5f348d3cd68f9e8a61012b6040518363ffffffff1660e01b8152600401610a69929190612c75565b60006040518083038186803b158015610a8157600080fd5b505af4158015610a95573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f417346dfcbc2afd5dd8789ef0737fedb03489d33c42861010f6040518363ffffffff1660e01b8152600401610ae8929190612c23565b60006040518083038186803b158015610b0057600080fd5b505af4158015610b14573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173a519a7ce7b24333055781133b13532aeabfac81b60916040518363ffffffff1660e01b8152600401610b66929190612b7f565b60006040518083038186803b158015610b7e57600080fd5b505af4158015610b92573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41736ebb1a9031177208a4ca50164206bf2fa5ff741660416040518363ffffffff1660e01b8152600401610be4929190612dcb565b60006040518083038186803b158015610bfc57600080fd5b505af4158015610c10573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173e78658a8acfe982fde841abb008e57e6545e38b3601c6040518363ffffffff1660e01b8152600401610c62929190612c4c565b60006040518083038186803b158015610c7a57600080fd5b505af4158015610c8e573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb732dc0420a736d1f40893b9481d8968e4d7424bc0b680df2e4c1b693c300006040518363ffffffff1660e01b8152600401610d0a929190612bfa565b602060405180830381600087803b158015610d2457600080fd5b505af1158015610d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5c91906120e5565b50738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f42406101f402620f4240600f026154606040518463ffffffff1660e01b8152600401610da793929190612ffe565b60006040518083038186803b158015610dbf57600080fd5b505af4158015610dd3573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f42406101f402620f4240600f026170806040518463ffffffff1660e01b8152600401610e21939291906131f4565b60006040518083038186803b158015610e3957600080fd5b505af4158015610e4d573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66327eddd12620f424060fa026040518263ffffffff1660e01b8152600401610e8e9190612fd7565b60006040518083038186803b158015610ea657600080fd5b505af4158015610eba573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f42406101f402620f4240601402620151806040518463ffffffff1660e01b8152600401610f099392919061325e565b60006040518083038186803b158015610f2157600080fd5b505af4158015610f35573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f424060fa02620f4240600a02620151806040518463ffffffff1660e01b8152600401610f83939291906132a1565b60006040518083038186803b158015610f9b57600080fd5b505af4158015610faf573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f42406101f402620f4240601402620151806040518463ffffffff1660e01b8152600401610ffe93929190613120565b60006040518083038186803b15801561101657600080fd5b505af415801561102a573d6000803e3d6000fd5b5050505060007f4d414e412d4100000000000000000000000000000000000000000000000000009050738de6ddbcd5053d32292aaa0d2105a32d108484a663f02b0d02826040518263ffffffff1660e01b815260040161108a9190612f18565b60006040518083038186803b1580156110a257600080fd5b505af41580156110b6573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d9638d36836040518263ffffffff1660e01b81526004016111159190612f33565b60a06040518083038186803b15801561112d57600080fd5b505afa158015611141573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111659190612160565b509350505050738de6ddbcd5053d32292aaa0d2105a32d108484a6638050ec607f00000000000000000000000000000000000000000000000000000000000000008460006040518463ffffffff1660e01b81526004016111c793929190612a98565b60006040518083038186803b1580156111df57600080fd5b505af41580156111f3573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663eb3ffe9e7f00000000000000000000000000000000000000000000000000000000000000006112d97f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663babe8a3f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561129b57600080fd5b505afa1580156112af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d39190612137565b85612018565b6040518363ffffffff1660e01b81526004016112f6929190612e5e565b60006040518083038186803b15801561130e57600080fd5b505af4158015611322573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66327eddd12620f42406064026040518263ffffffff1660e01b81526004016113639190613347565b60006040518083038186803b15801561137b57600080fd5b505af415801561138f573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66327eddd12620f42406064026040518263ffffffff1660e01b81526004016113d091906131a6565b60006040518083038186803b1580156113e857600080fd5b505af41580156113fc573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66327eddd12620f42406064026040518263ffffffff1660e01b815260040161143d91906130b6565b60006040518083038186803b15801561145557600080fd5b505af4158015611469573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66327eddd12620f42406101c2026040518263ffffffff1660e01b81526004016114ab919061336e565b60006040518083038186803b1580156114c357600080fd5b505af41580156114d7573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f4240600502622625a06170806040518463ffffffff1660e01b8152600401611521939291906130dd565b60006040518083038186803b15801561153957600080fd5b505af415801561154d573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f42406003026216e3606170806040518463ffffffff1660e01b815260040161159793929190613163565b60006040518083038186803b1580156115af57600080fd5b505af41580156115c3573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663eb3ffe9e7f00000000000000000000000000000000000000000000000000000000000000006103e8670de0b6b3a76400006001028161161857fe5b046040518363ffffffff1660e01b8152600401611636929190612e93565b60006040518083038186803b15801561164e57600080fd5b505af4158015611662573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663eb3ffe9e7f00000000000000000000000000000000000000000000000000000000000000006103e8670de0b6b3a7640000600102816116b757fe5b046040518363ffffffff1660e01b81526004016116d5929190612e93565b60006040518083038186803b1580156116ed57600080fd5b505af4158015611701573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663eb3ffe9e7f00000000000000000000000000000000000000000000000000000000000000006103e8670de0b6b3a76400006001028161175657fe5b046040518363ffffffff1660e01b8152600401611774929190612ec8565b60006040518083038186803b15801561178c57600080fd5b505af41580156117a0573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663437757b96b033b2e3ca43176a9d2dfd0a560016040518363ffffffff1660e01b81526004016117ea9291906133f3565b60006040518083038186803b15801561180257600080fd5b505af4158015611816573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6637571a78e604051806102a001604052807f474e4f2d410000000000000000000000000000000000000000000000000000008152602001736810e776880c02933d47db1b9fc05908e5386b9673ffffffffffffffffffffffffffffffffffffffff168152602001737bd3f01e24e0f0838788bc8f573cea43a80cabb573ffffffffffffffffffffffffffffffffffffffff16815260200173d9e758bd239e5d568f44d0a748633f6a8d52cbbb73ffffffffffffffffffffffffffffffffffffffff1681526020017317b6d0e4237ea7f880af5f58257cd232a04171d973ffffffffffffffffffffffffffffffffffffffff16815260200173d800ca44ffabecd159c7889c3bf64a217361aec873ffffffffffffffffffffffffffffffffffffffff168152602001600115158152602001600115158152602001600115158152602001624c4b408152602001620186a08152602001621e8480815260200161051481526020016b033b2e3caaae446a355df2a78152602001612ee0815260200161138881526020016120d081526020016109c481526020016188b8815260200160fa8152602001600a8152506040518263ffffffff1660e01b81526004016119f691906133bc565b60006040518083038186803b158015611a0e57600080fd5b505af4158015611a22573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663d0bab9337317b6d0e4237ea7f880af5f58257cd232a04171d9603c6126ac6040518463ffffffff1660e01b8152600401611a7893929190612d94565b60006040518083038186803b158015611a9057600080fd5b505af4158015611aa4573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237624c4b40622dc6c06170806040518463ffffffff1660e01b8152600401611aeb93929190613304565b60006040518083038186803b158015611b0357600080fd5b505af4158015611b17573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6630daa5eb560006040518263ffffffff1660e01b8152600401611b539190613041565b60006040518083038186803b158015611b6b57600080fd5b505af4158015611b7f573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b795307860006040518263ffffffff1660e01b8152600401611bbb9190613041565b60006040518083038186803b158015611bd357600080fd5b505af4158015611be7573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6638050ec60738de6ddbcd5053d32292aaa0d2105a32d108484a6632e77468d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c4957600080fd5b505af4158015611c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8191906120bc565b6b033b2e3c9fd0803ce80000006032026040518363ffffffff1660e01b8152600401611cae929190612e1d565b60006040518083038186803b158015611cc657600080fd5b505af4158015611cda573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6639bd0a56a620557306040518263ffffffff1660e01b8152600401611d189190613068565b60006040518083038186803b158015611d3057600080fd5b505af4158015611d44573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a1736810e776880c02933d47db1b9fc05908e5386b966040518263ffffffff1660e01b8152600401611d9391906131cd565b60006040518083038186803b158015611dab57600080fd5b505af4158015611dbf573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a173d800ca44ffabecd159c7889c3bf64a217361aec86040518263ffffffff1660e01b8152600401611e0e9190613237565b60006040518083038186803b158015611e2657600080fd5b505af4158015611e3a573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a1737bd3f01e24e0f0838788bc8f573cea43a80cabb56040518263ffffffff1660e01b8152600401611e899190613395565b60006040518083038186803b158015611ea157600080fd5b505af4158015611eb5573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a173d9e758bd239e5d568f44d0a748633f6a8d52cbbb6040518263ffffffff1660e01b8152600401611f04919061308f565b60006040518083038186803b158015611f1c57600080fd5b505af4158015611f30573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a17317b6d0e4237ea7f880af5f58257cd232a04171d96040518263ffffffff1660e01b8152600401611f7f9190612f90565b60006040518083038186803b158015611f9757600080fd5b505af4158015611fab573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6635f3a7dd76040518163ffffffff1660e01b8152600401611fe490612fb7565b60006040518083038186803b158015611ffc57600080fd5b505af4158015612010573d6000803e3d6000fd5b505050505050565b6000828284039150811115612062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205990612f70565b60405180910390fd5b92915050565b6000815190506120778161376c565b92915050565b60008151905061208c81613783565b92915050565b6000813590506120a18161379a565b92915050565b6000815190506120b68161379a565b92915050565b6000602082840312156120ce57600080fd5b60006120dc84828501612068565b91505092915050565b6000602082840312156120f757600080fd5b60006121058482850161207d565b91505092915050565b60006020828403121561212057600080fd5b600061212e84828501612092565b91505092915050565b60006020828403121561214957600080fd5b6000612157848285016120a7565b91505092915050565b600080600080600060a0868803121561217857600080fd5b6000612186888289016120a7565b9550506020612197888289016120a7565b94505060406121a8888289016120a7565b93505060606121b9888289016120a7565b92505060806121ca888289016120a7565b9150509295509295909350565b6121e0816134a9565b82525050565b6121ef816134a9565b82525050565b6121fe816134a9565b82525050565b61220d816134bb565b82525050565b61221c816134bb565b82525050565b61222b816134bb565b82525050565b61223a816134c7565b82525050565b612249816134c7565b82525050565b612258816134c7565b82525050565b6122678161350c565b82525050565b6122768161351e565b82525050565b61228581613530565b82525050565b61229481613542565b82525050565b6122a381613554565b82525050565b6122b281613566565b82525050565b6122c181613578565b82525050565b6122d08161358a565b82525050565b6122df8161359c565b82525050565b6122ee816135ae565b82525050565b6122fd816135c0565b82525050565b61230c816135d2565b82525050565b61231b816135e4565b82525050565b61232a816135f6565b82525050565b61233981613608565b82525050565b6123488161361a565b82525050565b6123578161362c565b82525050565b6123668161363e565b82525050565b61237581613650565b82525050565b61238481613662565b82525050565b61239381613674565b82525050565b6123a281613686565b82525050565b6123b181613698565b82525050565b6123c0816136aa565b82525050565b6123cf816136bc565b82525050565b6123de816136ce565b82525050565b6123ed816136e0565b82525050565b6123fc816136f2565b82525050565b61240b81613704565b82525050565b61241a81613716565b82525050565b600061242b8261347c565b6124358185613487565b9350612445818560208601613728565b61244e8161375b565b840191505092915050565b6000612466601583613487565b91507f64732d6d6174682d7375622d756e646572666c6f7700000000000000000000006000830152602082019050919050565b7f4d43445f434c49505f43414c435f474e4f5f4100000000000000000000000000815250565b60006124cc600683613498565b91507f312e31342e3700000000000000000000000000000000000000000000000000006000830152602082019050919050565b7f4554482d42000000000000000000000000000000000000000000000000000000815250565b7f5753544554482d41000000000000000000000000000000000000000000000000815250565b7f52454e4254432d41000000000000000000000000000000000000000000000000815250565b7f4d43445f434c49505f474e4f5f41000000000000000000000000000000000000815250565b7f6c696e6500000000000000000000000000000000000000000000000000000000815250565b7f554e495632444149555344432d41000000000000000000000000000000000000815250565b7f6d61740000000000000000000000000000000000000000000000000000000000815250565b7f4c696e6500000000000000000000000000000000000000000000000000000000815250565b7f74696e0000000000000000000000000000000000000000000000000000000000815250565b7f4c494e4b2d410000000000000000000000000000000000000000000000000000815250565b7f574254432d430000000000000000000000000000000000000000000000000000815250565b7f5946492d41000000000000000000000000000000000000000000000000000000815250565b7f47554e49563344414955534443322d4100000000000000000000000000000000815250565b7f474e4f0000000000000000000000000000000000000000000000000000000000815250565b7f5753544554482d42000000000000000000000000000000000000000000000000815250565b7f5049505f474e4f00000000000000000000000000000000000000000000000000815250565b7f574254432d410000000000000000000000000000000000000000000000000000815250565b7f746f757400000000000000000000000000000000000000000000000000000000815250565b7f574254432d420000000000000000000000000000000000000000000000000000815250565b60006127de601483613487565b91507f4f757473696465206f666669636520686f7572730000000000000000000000006000830152602082019050919050565b7f474e4f2d41000000000000000000000000000000000000000000000000000000815250565b7f47554e49563344414955534443312d4100000000000000000000000000000000815250565b7f50534d2d5041582d410000000000000000000000000000000000000000000000815250565b7f4d43445f4a4f494e5f474e4f5f41000000000000000000000000000000000000815250565b6102a0820160008201516128c0600085018261224f565b5060208201516128d360208501826121f5565b5060408201516128e660408501826121f5565b5060608201516128f960608501826121f5565b50608082015161290c60808501826121f5565b5060a082015161291f60a08501826121f5565b5060c082015161293260c0850182612222565b5060e082015161294560e0850182612222565b5061010082015161295a610100850182612222565b5061012082015161296f610120850182612a7a565b50610140820151612984610140850182612a7a565b50610160820151612999610160850182612a7a565b506101808201516129ae610180850182612a7a565b506101a08201516129c36101a0850182612a7a565b506101c08201516129d86101c0850182612a7a565b506101e08201516129ed6101e0850182612a7a565b50610200820151612a02610200850182612a7a565b50610220820151612a17610220850182612a7a565b50610240820151612a2c610240850182612a7a565b50610260820151612a41610260850182612a7a565b50610280820151612a56610280850182612a7a565b50505050565b612a65816134f1565b82525050565b612a74816134f1565b82525050565b612a83816134f1565b82525050565b612a92816134fb565b82525050565b6000608082019050612aad60008301866121e6565b612aba6020830185612240565b612ac660408301612597565b612ad3606083018461225e565b949350505050565b6000604082019050612af060008301856121e6565b612afd602083018461226d565b9392505050565b6000604082019050612b1960008301856121e6565b612b26602083018461227c565b9392505050565b6000604082019050612b4260008301856121e6565b612b4f602083018461228b565b9392505050565b6000604082019050612b6b60008301856121e6565b612b78602083018461229a565b9392505050565b6000604082019050612b9460008301856121e6565b612ba160208301846122a9565b9392505050565b6000604082019050612bbd60008301856121e6565b612bca60208301846122c7565b9392505050565b6000604082019050612be660008301856121e6565b612bf360208301846122e5565b9392505050565b6000604082019050612c0f60008301856121d7565b612c1c6020830184612303565b9392505050565b6000604082019050612c3860008301856121e6565b612c456020830184612312565b9392505050565b6000604082019050612c6160008301856121e6565b612c6e6020830184612330565b9392505050565b6000604082019050612c8a60008301856121e6565b612c97602083018461233f565b9392505050565b6000604082019050612cb360008301856121e6565b612cc0602083018461235d565b9392505050565b6000604082019050612cdc60008301856121e6565b612ce9602083018461236c565b9392505050565b6000604082019050612d0560008301856121e6565b612d12602083018461238a565b9392505050565b6000604082019050612d2e60008301856121e6565b612d3b6020830184612399565b9392505050565b6000604082019050612d5760008301856121e6565b612d6460208301846123b7565b9392505050565b6000604082019050612d8060008301856121e6565b612d8d60208301846123c6565b9392505050565b6000606082019050612da960008301866121e6565b612db660208301856123d5565b612dc36040830184612411565b949350505050565b6000604082019050612de060008301856121e6565b612ded60208301846123e4565b9392505050565b6000604082019050612e0960008301856121e6565b612e166020830184612402565b9392505050565b6000608082019050612e3260008301856121e6565b612e3e6020830161254b565b612e4a604083016125e3565b612e576060830184612a6b565b9392505050565b6000606082019050612e7360008301856121e6565b612e7f60208301612609565b612e8c6040830184612a6b565b9392505050565b6000606082019050612ea860008301856121e6565b612eb46020830161262f565b612ec16040830184612a6b565b9392505050565b6000606082019050612edd60008301856121e6565b612ee960208301612785565b612ef66040830184612a6b565b9392505050565b6000602082019050612f126000830184612204565b92915050565b6000602082019050612f2d6000830184612240565b92915050565b6000602082019050612f486000830184612231565b92915050565b60006020820190508181036000830152612f688184612420565b905092915050565b60006020820190508181036000830152612f8981612459565b9050919050565b6000604082019050612fa460008301612499565b612fb160208301846121e6565b92915050565b60006020820190508181036000830152612fd0816124bf565b9050919050565b6000604082019050612feb600083016124ff565b612ff86020830184612a6b565b92915050565b600060808201905061301260008301612525565b61301f6020830186612a6b565b61302c6040830185612a6b565b61303960608301846122d6565b949350505050565b60006040820190506130556000830161254b565b613062602083018461225e565b92915050565b600060408201905061307c6000830161254b565b613089602083018461237b565b92915050565b60006040820190506130a360008301612571565b6130b060208301846121e6565b92915050565b60006040820190506130ca600083016125bd565b6130d76020830184612a6b565b92915050565b60006080820190506130f160008301612655565b6130fe6020830186612a6b565b61310b60408301856122f4565b6131186060830184612321565b949350505050565b60006080820190506131346000830161267b565b6131416020830186612a6b565b61314e6040830185612a6b565b61315b60608301846123f3565b949350505050565b6000608082019050613177600083016126a1565b6131846020830186612a6b565b61319160408301856122b8565b61319e6060830184612321565b949350505050565b60006040820190506131ba600083016126c7565b6131c76020830184612a6b565b92915050565b60006040820190506131e1600083016126ed565b6131ee60208301846121e6565b92915050565b600060808201905061320860008301612713565b6132156020830186612a6b565b6132226040830185612a6b565b61322f6060830184612321565b949350505050565b600060408201905061324b60008301612739565b61325860208301846121e6565b92915050565b60006080820190506132726000830161275f565b61327f6020830186612a6b565b61328c6040830185612a6b565b61329960608301846123f3565b949350505050565b60006080820190506132b5600083016127ab565b6132c26020830186612a6b565b6132cf6040830185612a6b565b6132dc60608301846123f3565b949350505050565b600060208201905081810360008301526132fd816127d1565b9050919050565b600060808201905061331860008301612811565b61332560208301866123a8565b613332604083018561234e565b61333f6060830184612321565b949350505050565b600060408201905061335b60008301612837565b6133686020830184612a6b565b92915050565b60006040820190506133826000830161285d565b61338f6020830184612a6b565b92915050565b60006040820190506133a960008301612883565b6133b660208301846121e6565b92915050565b60006102a0820190506133d260008301846128a9565b92915050565b60006020820190506133ed6000830184612a5c565b92915050565b60006040820190506134086000830185612a6b565b6134156020830184612213565b9392505050565b60006040820190506134316000830185612a89565b61343e6020830184612213565b9392505050565b600060608201905061345a6000830186612a89565b6134676020830185612a89565b6134746040830184612213565b949350505050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006134b4826134d1565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600064ffffffffff82169050919050565b6000613517826134f1565b9050919050565b6000613529826134f1565b9050919050565b600061353b826134f1565b9050919050565b600061354d826134f1565b9050919050565b600061355f826134f1565b9050919050565b6000613571826134f1565b9050919050565b6000613583826134f1565b9050919050565b6000613595826134f1565b9050919050565b60006135a7826134f1565b9050919050565b60006135b9826134f1565b9050919050565b60006135cb826134f1565b9050919050565b60006135dd826134f1565b9050919050565b60006135ef826134f1565b9050919050565b6000613601826134f1565b9050919050565b6000613613826134f1565b9050919050565b6000613625826134f1565b9050919050565b6000613637826134f1565b9050919050565b6000613649826134f1565b9050919050565b600061365b826134f1565b9050919050565b600061366d826134f1565b9050919050565b600061367f826134f1565b9050919050565b6000613691826134f1565b9050919050565b60006136a3826134f1565b9050919050565b60006136b5826134f1565b9050919050565b60006136c7826134f1565b9050919050565b60006136d9826134f1565b9050919050565b60006136eb826134f1565b9050919050565b60006136fd826134f1565b9050919050565b600061370f826134f1565b9050919050565b6000613721826134f1565b9050919050565b60005b8381101561374657808201518184015260208101905061372b565b83811115613755576000848401525b50505050565b6000601f19601f8301169050919050565b613775816134a9565b811461378057600080fd5b50565b61378c816134bb565b811461379757600080fd5b50565b6137a3816134f1565b81146137ae57600080fd5b5056fe323032322d31322d3039204d616b657244414f20457865637574697665205370656c6c207c20486173683a203078a26469706673582212203991d84945324ecb98e494da463421f9fb15cadcf88def12e15e86419e87016664736f6c634300060c0033 'DssSpell()' seth-rpc: {"id":1,"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0xf9518b82016f85e8d4a51000832dc6c08080b951346101006040523480156200001257600080fd5b5062278d004201604051620000279062000212565b604051809103906000f08015801562000044573d6000803e3d6000fd5b5073da0ab1e0017debcd72be8599041a2aa3ba7e740f73ffffffffffffffffffffffffffffffffffffffff166321f8a7216040518163ffffffff1660e01b815260040162000092906200032f565b60206040518083038186803b158015620000ab57600080fd5b505afa158015620000c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e69190620002dd565b73ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508160c081815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250506040516024016040516020818303038152906040527f61461954000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060019080519060200190620001f592919062000220565b50600080829050803f915081608081815250505050505062000398565b613c8180620014b383390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026357805160ff191683800117855562000294565b8280016001018555821562000294579182015b828111156200029357825182559160200191906001019062000276565b5b509050620002a39190620002a7565b5090565b5b80821115620002c2576000816000905550600101620002a8565b5090565b600081519050620002d7816200037e565b92915050565b600060208284031215620002f057600080fd5b60006200030084828501620002c6565b91505092915050565b7f4d43445f50415553450000000000000000000000000000000000000000000000815250565b6000602082019050620003456000830162000309565b919050565b600062000357826200035e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b62000389816200034a565b81146200039557600080fd5b50565b60805160a05160601c60c05160e05160601c6110a86200040b600039806104a4528061053352806106e9528061078f5250806102f552806106425250806102d1528061035752806103fc528061056f52806107cb528061086d525080610331528061059052806107ec52506110a86000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80637284e4161161008c578063ae8421e111610066578063ae8421e1146101cd578063b0604a26146101eb578063f7992d85146101f5578063fe7d47bb14610213576100ce565b80637284e416146101875780638456cb59146101a557806396d373e5146101c3576100ce565b8062a7029b146100d35780630a7a1c4d146100f15780634665096d1461010f57806351973ec91461012d57806351f910661461014b5780636e832f0714610169575b600080fd5b6100db610231565b6040516100e89190610d9f565b60405180910390f35b6100f96102cf565b6040516101069190610d02565b60405180910390f35b6101176102f3565b6040516101249190610e79565b60405180910390f35b610135610317565b6040516101429190610dc1565b60405180910390f35b61015361032f565b6040516101609190610d84565b60405180910390f35b610171610353565b60405161017e9190610d69565b60405180910390f35b61018f6103f8565b60405161019c9190610df7565b60405180910390f35b6101ad6104a2565b6040516101ba9190610ddc565b60405180910390f35b6101cb6104c6565b005b6101d561062d565b6040516101e29190610d69565b60405180910390f35b6101f3610640565b005b6101fd610863565b60405161020a9190610e79565b60405180910390f35b61021b610869565b6040516102289190610e79565b60405180910390f35b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102c75780601f1061029c576101008083540402835291602001916102c7565b820191906000526020600020905b8154815290600101906020018083116102aa57829003601f168201915b505050505081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b73da0ab1e0017debcd72be8599041a2aa3ba7e740f81565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e832f076040518163ffffffff1660e01b815260040160206040518083038186803b1580156103bb57600080fd5b505afa1580156103cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f391906109ed565b905090565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637284e4166040518163ffffffff1660e01b815260040160006040518083038186803b15801561046057600080fd5b505afa158015610474573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061049d9190610a57565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600260009054906101000a900460ff1615610516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050d90610e19565b60405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663168ccd677f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060016000546040518563ffffffff1660e01b81526004016105d39493929190610d1d565b600060405180830381600087803b1580156105ed57600080fd5b505af1158015610601573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061062a9190610a16565b50565b600260009054906101000a900460ff1681565b7f00000000000000000000000000000000000000000000000000000000000000004211156106a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069a90610e59565b60405180910390fd5b60008054146106e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106de90610e39565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b15801561074d57600080fd5b505afa158015610761573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107859190610a98565b42016000819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166346d2fbbb7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060016000546040518563ffffffff1660e01b815260040161082f9493929190610d1d565b600060405180830381600087803b15801561084957600080fd5b505af115801561085d573d6000803e3d6000fd5b50505050565b60005481565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bf0fbcec6000546040518263ffffffff1660e01b81526004016108c69190610e79565b60206040518083038186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109169190610a98565b905090565b60008151905061092a81611044565b92915050565b600082601f83011261094157600080fd5b815161095461094f82610ec1565b610e94565b9150808252602083016020830185838301111561097057600080fd5b61097b838284611000565b50505092915050565b600082601f83011261099557600080fd5b81516109a86109a382610eed565b610e94565b915080825260208301602083018583830111156109c457600080fd5b6109cf838284611000565b50505092915050565b6000815190506109e78161105b565b92915050565b6000602082840312156109ff57600080fd5b6000610a0d8482850161091b565b91505092915050565b600060208284031215610a2857600080fd5b600082015167ffffffffffffffff811115610a4257600080fd5b610a4e84828501610930565b91505092915050565b600060208284031215610a6957600080fd5b600082015167ffffffffffffffff811115610a8357600080fd5b610a8f84828501610984565b91505092915050565b600060208284031215610aaa57600080fd5b6000610ab8848285016109d8565b91505092915050565b610aca81610f66565b82525050565b610ad981610f78565b82525050565b610ae881610f84565b82525050565b6000610af982610f2e565b610b038185610f44565b9350610b13818560208601611000565b610b1c81611033565b840191505092915050565b600081546001811660008114610b445760018114610b6a57610bae565b607f6002830416610b558187610f44565b955060ff198316865260208601935050610bae565b60028204610b788187610f44565b9550610b8385610f19565b60005b82811015610ba557815481890152600182019150602081019050610b86565b80880195505050505b505092915050565b610bbf81610fb8565b82525050565b610bce81610fdc565b82525050565b6000610bdf82610f39565b610be98185610f55565b9350610bf9818560208601611000565b610c0281611033565b840191505092915050565b6000610c1a601283610f55565b91507f7370656c6c2d616c72656164792d6361737400000000000000000000000000006000830152602082019050919050565b6000610c5a602583610f55565b91507f54686973207370656c6c2068617320616c7265616479206265656e207363686560008301527f64756c65640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610cc0601983610f55565b91507f5468697320636f6e7472616374206861732065787069726564000000000000006000830152602082019050919050565b610cfc81610fae565b82525050565b6000602082019050610d176000830184610ac1565b92915050565b6000608082019050610d326000830187610ac1565b610d3f6020830186610adf565b8181036040830152610d518185610b27565b9050610d606060830184610cf3565b95945050505050565b6000602082019050610d7e6000830184610ad0565b92915050565b6000602082019050610d996000830184610adf565b92915050565b60006020820190508181036000830152610db98184610aee565b905092915050565b6000602082019050610dd66000830184610bb6565b92915050565b6000602082019050610df16000830184610bc5565b92915050565b60006020820190508181036000830152610e118184610bd4565b905092915050565b60006020820190508181036000830152610e3281610c0d565b9050919050565b60006020820190508181036000830152610e5281610c4d565b9050919050565b60006020820190508181036000830152610e7281610cb3565b9050919050565b6000602082019050610e8e6000830184610cf3565b92915050565b6000604051905081810181811067ffffffffffffffff82111715610eb757600080fd5b8060405250919050565b600067ffffffffffffffff821115610ed857600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff821115610f0457600080fd5b601f19601f8301169050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610f7182610f8e565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610fc382610fca565b9050919050565b6000610fd582610f8e565b9050919050565b6000610fe782610fee565b9050919050565b6000610ff982610f8e565b9050919050565b60005b8381101561101e578082015181840152602081019050611003565b8381111561102d576000848401525b50505050565b6000601f19601f8301169050919050565b61104d81610f78565b811461105857600080fd5b50565b61106481610fae565b811461106f57600080fd5b5056fea264697066735822122072aeb15c2703c2db0b918fc4eda67d465b219afac52fac834726a855ffb49cb364736f6c634300060c0033610100604052738de6ddbcd5053d32292aaa0d2105a32d108484a66336569e776040518163ffffffff1660e01b815260040160206040518083038186803b1580156200004a57600080fd5b505af41580156200005f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200008591906200031a565b73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b815250738de6ddbcd5053d32292aaa0d2105a32d108484a663a16ed56f6040518163ffffffff1660e01b8152600401620000f190620003ad565b60206040518083038186803b1580156200010a57600080fd5b505af41580156200011f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014591906200031a565b73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1660601b815250738de6ddbcd5053d32292aaa0d2105a32d108484a663a16ed56f6040518163ffffffff1660e01b8152600401620001b19062000392565b60206040518083038186803b158015620001ca57600080fd5b505af4158015620001df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020591906200031a565b73ffffffffffffffffffffffffffffffffffffffff1660c09073ffffffffffffffffffffffffffffffffffffffff1660601b815250738de6ddbcd5053d32292aaa0d2105a32d108484a6637e992cb86040518163ffffffff1660e01b815260040160206040518083038186803b1580156200027f57600080fd5b505af415801562000294573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ba91906200031a565b73ffffffffffffffffffffffffffffffffffffffff1660e09073ffffffffffffffffffffffffffffffffffffffff1660601b815250348015620002fc57600080fd5b5062000416565b6000815190506200031481620003fc565b92915050565b6000602082840312156200032d57600080fd5b60006200033d8482850162000303565b91505092915050565b7f4d43445f50534d5f475553445f41000000000000000000000000000000000000815250565b7f4d43445f50534d5f5041585f4100000000000000000000000000000000000000815250565b6000602082019050620003a86000830162000346565b919050565b6000602082019050620003c3600083016200036c565b919050565b6000620003d582620003dc565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6200040781620003c8565b81146200041357600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c6138156200046c60003980610c9452508061168252806117215250806115e35250806110be52806111875280611213528061123752506138156000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063614619541461005c5780636e832f07146100665780637284e41614610084578063bf0fbcec146100a2578063f99e36bc146100d2575b600080fd5b6100646100dc565b005b61006e6101b5565b60405161007b9190612efd565b60405180910390f35b61008c6101be565b6040516100999190612f4e565b60405180910390f35b6100bc60048036038101906100b7919061210e565b6101da565b6040516100c991906133d8565b60405180910390f35b6100da6102a9565b005b738de6ddbcd5053d32292aaa0d2105a32d108484a66335329d4c426100ff6101b5565b6040518363ffffffff1660e01b815260040161011c92919061341c565b60206040518083038186803b15801561013457600080fd5b505af4158015610148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016c91906120e5565b6101ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a2906132e4565b60405180910390fd5b6101b36102a9565b565b60006001905090565b6040518060600160405280602e81526020016137b2602e913981565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff64ffffffffff1682111561021057600080fd5b738de6ddbcd5053d32292aaa0d2105a32d108484a663d255745683426102346101b5565b6040518463ffffffff1660e01b815260040161025293929190613445565b60206040518083038186803b15801561026a57600080fd5b505af415801561027e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a29190612137565b9050919050565b738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41733b91ebdfbc4b78d778f62632a4004804ac5d2db0612ee06040518363ffffffff1660e01b81526004016102f8929190612b56565b60006040518083038186803b15801561031057600080fd5b505af4158015610324573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173ccffdbc38b1463847509dcd95e0d9aaf54d1c167612ee06040518363ffffffff1660e01b8152600401610377929190612b56565b60006040518083038186803b15801561038f57600080fd5b505af41580156103a3573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173688d508f3a6b0a377e266405a1583b3316f9a2b3612ee06040518363ffffffff1660e01b81526004016103f6929190612b56565b60006040518083038186803b15801561040e57600080fd5b505af4158015610422573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41731ef753934c40a72a60eab12a68b6f8854439aa78612c846040518363ffffffff1660e01b8152600401610475929190612b2d565b60006040518083038186803b15801561048d57600080fd5b505af41580156104a1573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f417380882f2a36d49fc46c3c654f7f9cb9a2bf0423e1612a946040518363ffffffff1660e01b81526004016104f4929190612b04565b60006040518083038186803b15801561050c57600080fd5b505af4158015610520573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41732165d41af0d8d5034b9c266597c1a415fa0253bd6128916040518363ffffffff1660e01b8152600401610573929190612adb565b60006040518083038186803b15801561058b57600080fd5b505af415801561059f573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f417397fb39171acd7c82c439b6158ea2f71d26ba383d6122f16040518363ffffffff1660e01b81526004016105f2929190612df4565b60006040518083038186803b15801561060a57600080fd5b505af415801561061e573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173dc1f98682f4f8a5c6d54f345f448437b83f5e4326113f56040518363ffffffff1660e01b8152600401610671929190612d42565b60006040518083038186803b15801561068957600080fd5b505af415801561069d573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41735b9c98e8a3d9db6cd4b4b4c1f92d0a551d06f00d6111d86040518363ffffffff1660e01b81526004016106f0929190612d19565b60006040518083038186803b15801561070857600080fd5b505af415801561071c573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173b83b3e9c8e3393889afb272d354a7a3bd1fbcf5c610ed56040518363ffffffff1660e01b815260040161076f929190612cf0565b60006040518083038186803b15801561078757600080fd5b505af415801561079b573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41737ae109a63ff4dc852e063a673b40bed85d22e585610d5d6040518363ffffffff1660e01b81526004016107ee929190612cc7565b60006040518083038186803b15801561080657600080fd5b505af415801561081a573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173e070c2dcfcf6c6409202a8a210f71d51dbae9473610c886040518363ffffffff1660e01b815260040161086d929190612c9e565b60006040518083038186803b15801561088557600080fd5b505af4158015610899573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173a2d55b89654079987cf3985aeff5a7bd44da15a86108e66040518363ffffffff1660e01b81526004016108ec929190612bd1565b60006040518083038186803b15801561090457600080fd5b505af4158015610918573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173a3f0abb4ba74512b5a736c5759446e9b50fda17061075b6040518363ffffffff1660e01b815260040161096b929190612ba8565b60006040518083038186803b15801561098357600080fd5b505af4158015610997573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173a6e8772af29b29b9202a073f8e36f447689beef66102146040518363ffffffff1660e01b81526004016109ea929190612d6b565b60006040518083038186803b158015610a0257600080fd5b505af4158015610a16573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41734efb12d515801ecfa3be456b5f348d3cd68f9e8a61012b6040518363ffffffff1660e01b8152600401610a69929190612c75565b60006040518083038186803b158015610a8157600080fd5b505af4158015610a95573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f417346dfcbc2afd5dd8789ef0737fedb03489d33c42861010f6040518363ffffffff1660e01b8152600401610ae8929190612c23565b60006040518083038186803b158015610b0057600080fd5b505af4158015610b14573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173a519a7ce7b24333055781133b13532aeabfac81b60916040518363ffffffff1660e01b8152600401610b66929190612b7f565b60006040518083038186803b158015610b7e57600080fd5b505af4158015610b92573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f41736ebb1a9031177208a4ca50164206bf2fa5ff741660416040518363ffffffff1660e01b8152600401610be4929190612dcb565b60006040518083038186803b158015610bfc57600080fd5b505af4158015610c10573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b1698f4173e78658a8acfe982fde841abb008e57e6545e38b3601c6040518363ffffffff1660e01b8152600401610c62929190612c4c565b60006040518083038186803b158015610c7a57600080fd5b505af4158015610c8e573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb732dc0420a736d1f40893b9481d8968e4d7424bc0b680df2e4c1b693c300006040518363ffffffff1660e01b8152600401610d0a929190612bfa565b602060405180830381600087803b158015610d2457600080fd5b505af1158015610d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5c91906120e5565b50738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f42406101f402620f4240600f026154606040518463ffffffff1660e01b8152600401610da793929190612ffe565b60006040518083038186803b158015610dbf57600080fd5b505af4158015610dd3573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f42406101f402620f4240600f026170806040518463ffffffff1660e01b8152600401610e21939291906131f4565b60006040518083038186803b158015610e3957600080fd5b505af4158015610e4d573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66327eddd12620f424060fa026040518263ffffffff1660e01b8152600401610e8e9190612fd7565b60006040518083038186803b158015610ea657600080fd5b505af4158015610eba573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f42406101f402620f4240601402620151806040518463ffffffff1660e01b8152600401610f099392919061325e565b60006040518083038186803b158015610f2157600080fd5b505af4158015610f35573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f424060fa02620f4240600a02620151806040518463ffffffff1660e01b8152600401610f83939291906132a1565b60006040518083038186803b158015610f9b57600080fd5b505af4158015610faf573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f42406101f402620f4240601402620151806040518463ffffffff1660e01b8152600401610ffe93929190613120565b60006040518083038186803b15801561101657600080fd5b505af415801561102a573d6000803e3d6000fd5b5050505060007f4d414e412d4100000000000000000000000000000000000000000000000000009050738de6ddbcd5053d32292aaa0d2105a32d108484a663f02b0d02826040518263ffffffff1660e01b815260040161108a9190612f18565b60006040518083038186803b1580156110a257600080fd5b505af41580156110b6573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d9638d36836040518263ffffffff1660e01b81526004016111159190612f33565b60a06040518083038186803b15801561112d57600080fd5b505afa158015611141573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111659190612160565b509350505050738de6ddbcd5053d32292aaa0d2105a32d108484a6638050ec607f00000000000000000000000000000000000000000000000000000000000000008460006040518463ffffffff1660e01b81526004016111c793929190612a98565b60006040518083038186803b1580156111df57600080fd5b505af41580156111f3573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663eb3ffe9e7f00000000000000000000000000000000000000000000000000000000000000006112d97f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663babe8a3f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561129b57600080fd5b505afa1580156112af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d39190612137565b85612018565b6040518363ffffffff1660e01b81526004016112f6929190612e5e565b60006040518083038186803b15801561130e57600080fd5b505af4158015611322573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66327eddd12620f42406064026040518263ffffffff1660e01b81526004016113639190613347565b60006040518083038186803b15801561137b57600080fd5b505af415801561138f573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66327eddd12620f42406064026040518263ffffffff1660e01b81526004016113d091906131a6565b60006040518083038186803b1580156113e857600080fd5b505af41580156113fc573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66327eddd12620f42406064026040518263ffffffff1660e01b815260040161143d91906130b6565b60006040518083038186803b15801561145557600080fd5b505af4158015611469573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66327eddd12620f42406101c2026040518263ffffffff1660e01b81526004016114ab919061336e565b60006040518083038186803b1580156114c357600080fd5b505af41580156114d7573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f4240600502622625a06170806040518463ffffffff1660e01b8152600401611521939291906130dd565b60006040518083038186803b15801561153957600080fd5b505af415801561154d573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237620f42406003026216e3606170806040518463ffffffff1660e01b815260040161159793929190613163565b60006040518083038186803b1580156115af57600080fd5b505af41580156115c3573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663eb3ffe9e7f00000000000000000000000000000000000000000000000000000000000000006103e8670de0b6b3a76400006001028161161857fe5b046040518363ffffffff1660e01b8152600401611636929190612e93565b60006040518083038186803b15801561164e57600080fd5b505af4158015611662573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663eb3ffe9e7f00000000000000000000000000000000000000000000000000000000000000006103e8670de0b6b3a7640000600102816116b757fe5b046040518363ffffffff1660e01b81526004016116d5929190612e93565b60006040518083038186803b1580156116ed57600080fd5b505af4158015611701573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663eb3ffe9e7f00000000000000000000000000000000000000000000000000000000000000006103e8670de0b6b3a76400006001028161175657fe5b046040518363ffffffff1660e01b8152600401611774929190612ec8565b60006040518083038186803b15801561178c57600080fd5b505af41580156117a0573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663437757b96b033b2e3ca43176a9d2dfd0a560016040518363ffffffff1660e01b81526004016117ea9291906133f3565b60006040518083038186803b15801561180257600080fd5b505af4158015611816573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6637571a78e604051806102a001604052807f474e4f2d410000000000000000000000000000000000000000000000000000008152602001736810e776880c02933d47db1b9fc05908e5386b9673ffffffffffffffffffffffffffffffffffffffff168152602001737bd3f01e24e0f0838788bc8f573cea43a80cabb573ffffffffffffffffffffffffffffffffffffffff16815260200173d9e758bd239e5d568f44d0a748633f6a8d52cbbb73ffffffffffffffffffffffffffffffffffffffff1681526020017317b6d0e4237ea7f880af5f58257cd232a04171d973ffffffffffffffffffffffffffffffffffffffff16815260200173d800ca44ffabecd159c7889c3bf64a217361aec873ffffffffffffffffffffffffffffffffffffffff168152602001600115158152602001600115158152602001600115158152602001624c4b408152602001620186a08152602001621e8480815260200161051481526020016b033b2e3caaae446a355df2a78152602001612ee0815260200161138881526020016120d081526020016109c481526020016188b8815260200160fa8152602001600a8152506040518263ffffffff1660e01b81526004016119f691906133bc565b60006040518083038186803b158015611a0e57600080fd5b505af4158015611a22573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663d0bab9337317b6d0e4237ea7f880af5f58257cd232a04171d9603c6126ac6040518463ffffffff1660e01b8152600401611a7893929190612d94565b60006040518083038186803b158015611a9057600080fd5b505af4158015611aa4573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b085f237624c4b40622dc6c06170806040518463ffffffff1660e01b8152600401611aeb93929190613304565b60006040518083038186803b158015611b0357600080fd5b505af4158015611b17573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6630daa5eb560006040518263ffffffff1660e01b8152600401611b539190613041565b60006040518083038186803b158015611b6b57600080fd5b505af4158015611b7f573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663b795307860006040518263ffffffff1660e01b8152600401611bbb9190613041565b60006040518083038186803b158015611bd357600080fd5b505af4158015611be7573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6638050ec60738de6ddbcd5053d32292aaa0d2105a32d108484a6632e77468d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c4957600080fd5b505af4158015611c5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8191906120bc565b6b033b2e3c9fd0803ce80000006032026040518363ffffffff1660e01b8152600401611cae929190612e1d565b60006040518083038186803b158015611cc657600080fd5b505af4158015611cda573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6639bd0a56a620557306040518263ffffffff1660e01b8152600401611d189190613068565b60006040518083038186803b158015611d3057600080fd5b505af4158015611d44573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a1736810e776880c02933d47db1b9fc05908e5386b966040518263ffffffff1660e01b8152600401611d9391906131cd565b60006040518083038186803b158015611dab57600080fd5b505af4158015611dbf573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a173d800ca44ffabecd159c7889c3bf64a217361aec86040518263ffffffff1660e01b8152600401611e0e9190613237565b60006040518083038186803b158015611e2657600080fd5b505af4158015611e3a573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a1737bd3f01e24e0f0838788bc8f573cea43a80cabb56040518263ffffffff1660e01b8152600401611e899190613395565b60006040518083038186803b158015611ea157600080fd5b505af4158015611eb5573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a173d9e758bd239e5d568f44d0a748633f6a8d52cbbb6040518263ffffffff1660e01b8152600401611f04919061308f565b60006040518083038186803b158015611f1c57600080fd5b505af4158015611f30573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a17317b6d0e4237ea7f880af5f58257cd232a04171d96040518263ffffffff1660e01b8152600401611f7f9190612f90565b60006040518083038186803b158015611f9757600080fd5b505af4158015611fab573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a6635f3a7dd76040518163ffffffff1660e01b8152600401611fe490612fb7565b60006040518083038186803b158015611ffc57600080fd5b505af4158015612010573d6000803e3d6000fd5b505050505050565b6000828284039150811115612062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205990612f70565b60405180910390fd5b92915050565b6000815190506120778161376c565b92915050565b60008151905061208c81613783565b92915050565b6000813590506120a18161379a565b92915050565b6000815190506120b68161379a565b92915050565b6000602082840312156120ce57600080fd5b60006120dc84828501612068565b91505092915050565b6000602082840312156120f757600080fd5b60006121058482850161207d565b91505092915050565b60006020828403121561212057600080fd5b600061212e84828501612092565b91505092915050565b60006020828403121561214957600080fd5b6000612157848285016120a7565b91505092915050565b600080600080600060a0868803121561217857600080fd5b6000612186888289016120a7565b9550506020612197888289016120a7565b94505060406121a8888289016120a7565b93505060606121b9888289016120a7565b92505060806121ca888289016120a7565b9150509295509295909350565b6121e0816134a9565b82525050565b6121ef816134a9565b82525050565b6121fe816134a9565b82525050565b61220d816134bb565b82525050565b61221c816134bb565b82525050565b61222b816134bb565b82525050565b61223a816134c7565b82525050565b612249816134c7565b82525050565b612258816134c7565b82525050565b6122678161350c565b82525050565b6122768161351e565b82525050565b61228581613530565b82525050565b61229481613542565b82525050565b6122a381613554565b82525050565b6122b281613566565b82525050565b6122c181613578565b82525050565b6122d08161358a565b82525050565b6122df8161359c565b82525050565b6122ee816135ae565b82525050565b6122fd816135c0565b82525050565b61230c816135d2565b82525050565b61231b816135e4565b82525050565b61232a816135f6565b82525050565b61233981613608565b82525050565b6123488161361a565b82525050565b6123578161362c565b82525050565b6123668161363e565b82525050565b61237581613650565b82525050565b61238481613662565b82525050565b61239381613674565b82525050565b6123a281613686565b82525050565b6123b181613698565b82525050565b6123c0816136aa565b82525050565b6123cf816136bc565b82525050565b6123de816136ce565b82525050565b6123ed816136e0565b82525050565b6123fc816136f2565b82525050565b61240b81613704565b82525050565b61241a81613716565b82525050565b600061242b8261347c565b6124358185613487565b9350612445818560208601613728565b61244e8161375b565b840191505092915050565b6000612466601583613487565b91507f64732d6d6174682d7375622d756e646572666c6f7700000000000000000000006000830152602082019050919050565b7f4d43445f434c49505f43414c435f474e4f5f4100000000000000000000000000815250565b60006124cc600683613498565b91507f312e31342e3700000000000000000000000000000000000000000000000000006000830152602082019050919050565b7f4554482d42000000000000000000000000000000000000000000000000000000815250565b7f5753544554482d41000000000000000000000000000000000000000000000000815250565b7f52454e4254432d41000000000000000000000000000000000000000000000000815250565b7f4d43445f434c49505f474e4f5f41000000000000000000000000000000000000815250565b7f6c696e6500000000000000000000000000000000000000000000000000000000815250565b7f554e495632444149555344432d41000000000000000000000000000000000000815250565b7f6d61740000000000000000000000000000000000000000000000000000000000815250565b7f4c696e6500000000000000000000000000000000000000000000000000000000815250565b7f74696e0000000000000000000000000000000000000000000000000000000000815250565b7f4c494e4b2d410000000000000000000000000000000000000000000000000000815250565b7f574254432d430000000000000000000000000000000000000000000000000000815250565b7f5946492d41000000000000000000000000000000000000000000000000000000815250565b7f47554e49563344414955534443322d4100000000000000000000000000000000815250565b7f474e4f0000000000000000000000000000000000000000000000000000000000815250565b7f5753544554482d42000000000000000000000000000000000000000000000000815250565b7f5049505f474e4f00000000000000000000000000000000000000000000000000815250565b7f574254432d410000000000000000000000000000000000000000000000000000815250565b7f746f757400000000000000000000000000000000000000000000000000000000815250565b7f574254432d420000000000000000000000000000000000000000000000000000815250565b60006127de601483613487565b91507f4f757473696465206f666669636520686f7572730000000000000000000000006000830152602082019050919050565b7f474e4f2d41000000000000000000000000000000000000000000000000000000815250565b7f47554e49563344414955534443312d4100000000000000000000000000000000815250565b7f50534d2d5041582d410000000000000000000000000000000000000000000000815250565b7f4d43445f4a4f494e5f474e4f5f41000000000000000000000000000000000000815250565b6102a0820160008201516128c0600085018261224f565b5060208201516128d360208501826121f5565b5060408201516128e660408501826121f5565b5060608201516128f960608501826121f5565b50608082015161290c60808501826121f5565b5060a082015161291f60a08501826121f5565b5060c082015161293260c0850182612222565b5060e082015161294560e0850182612222565b5061010082015161295a610100850182612222565b5061012082015161296f610120850182612a7a565b50610140820151612984610140850182612a7a565b50610160820151612999610160850182612a7a565b506101808201516129ae610180850182612a7a565b506101a08201516129c36101a0850182612a7a565b506101c08201516129d86101c0850182612a7a565b506101e08201516129ed6101e0850182612a7a565b50610200820151612a02610200850182612a7a565b50610220820151612a17610220850182612a7a565b50610240820151612a2c610240850182612a7a565b50610260820151612a41610260850182612a7a565b50610280820151612a56610280850182612a7a565b50505050565b612a65816134f1565b82525050565b612a74816134f1565b82525050565b612a83816134f1565b82525050565b612a92816134fb565b82525050565b6000608082019050612aad60008301866121e6565b612aba6020830185612240565b612ac660408301612597565b612ad3606083018461225e565b949350505050565b6000604082019050612af060008301856121e6565b612afd602083018461226d565b9392505050565b6000604082019050612b1960008301856121e6565b612b26602083018461227c565b9392505050565b6000604082019050612b4260008301856121e6565b612b4f602083018461228b565b9392505050565b6000604082019050612b6b60008301856121e6565b612b78602083018461229a565b9392505050565b6000604082019050612b9460008301856121e6565b612ba160208301846122a9565b9392505050565b6000604082019050612bbd60008301856121e6565b612bca60208301846122c7565b9392505050565b6000604082019050612be660008301856121e6565b612bf360208301846122e5565b9392505050565b6000604082019050612c0f60008301856121d7565b612c1c6020830184612303565b9392505050565b6000604082019050612c3860008301856121e6565b612c456020830184612312565b9392505050565b6000604082019050612c6160008301856121e6565b612c6e6020830184612330565b9392505050565b6000604082019050612c8a60008301856121e6565b612c97602083018461233f565b9392505050565b6000604082019050612cb360008301856121e6565b612cc0602083018461235d565b9392505050565b6000604082019050612cdc60008301856121e6565b612ce9602083018461236c565b9392505050565b6000604082019050612d0560008301856121e6565b612d12602083018461238a565b9392505050565b6000604082019050612d2e60008301856121e6565b612d3b6020830184612399565b9392505050565b6000604082019050612d5760008301856121e6565b612d6460208301846123b7565b9392505050565b6000604082019050612d8060008301856121e6565b612d8d60208301846123c6565b9392505050565b6000606082019050612da960008301866121e6565b612db660208301856123d5565b612dc36040830184612411565b949350505050565b6000604082019050612de060008301856121e6565b612ded60208301846123e4565b9392505050565b6000604082019050612e0960008301856121e6565b612e166020830184612402565b9392505050565b6000608082019050612e3260008301856121e6565b612e3e6020830161254b565b612e4a604083016125e3565b612e576060830184612a6b565b9392505050565b6000606082019050612e7360008301856121e6565b612e7f60208301612609565b612e8c6040830184612a6b565b9392505050565b6000606082019050612ea860008301856121e6565b612eb46020830161262f565b612ec16040830184612a6b565b9392505050565b6000606082019050612edd60008301856121e6565b612ee960208301612785565b612ef66040830184612a6b565b9392505050565b6000602082019050612f126000830184612204565b92915050565b6000602082019050612f2d6000830184612240565b92915050565b6000602082019050612f486000830184612231565b92915050565b60006020820190508181036000830152612f688184612420565b905092915050565b60006020820190508181036000830152612f8981612459565b9050919050565b6000604082019050612fa460008301612499565b612fb160208301846121e6565b92915050565b60006020820190508181036000830152612fd0816124bf565b9050919050565b6000604082019050612feb600083016124ff565b612ff86020830184612a6b565b92915050565b600060808201905061301260008301612525565b61301f6020830186612a6b565b61302c6040830185612a6b565b61303960608301846122d6565b949350505050565b60006040820190506130556000830161254b565b613062602083018461225e565b92915050565b600060408201905061307c6000830161254b565b613089602083018461237b565b92915050565b60006040820190506130a360008301612571565b6130b060208301846121e6565b92915050565b60006040820190506130ca600083016125bd565b6130d76020830184612a6b565b92915050565b60006080820190506130f160008301612655565b6130fe6020830186612a6b565b61310b60408301856122f4565b6131186060830184612321565b949350505050565b60006080820190506131346000830161267b565b6131416020830186612a6b565b61314e6040830185612a6b565b61315b60608301846123f3565b949350505050565b6000608082019050613177600083016126a1565b6131846020830186612a6b565b61319160408301856122b8565b61319e6060830184612321565b949350505050565b60006040820190506131ba600083016126c7565b6131c76020830184612a6b565b92915050565b60006040820190506131e1600083016126ed565b6131ee60208301846121e6565b92915050565b600060808201905061320860008301612713565b6132156020830186612a6b565b6132226040830185612a6b565b61322f6060830184612321565b949350505050565b600060408201905061324b60008301612739565b61325860208301846121e6565b92915050565b60006080820190506132726000830161275f565b61327f6020830186612a6b565b61328c6040830185612a6b565b61329960608301846123f3565b949350505050565b60006080820190506132b5600083016127ab565b6132c26020830186612a6b565b6132cf6040830185612a6b565b6132dc60608301846123f3565b949350505050565b600060208201905081810360008301526132fd816127d1565b9050919050565b600060808201905061331860008301612811565b61332560208301866123a8565b613332604083018561234e565b61333f6060830184612321565b949350505050565b600060408201905061335b60008301612837565b6133686020830184612a6b565b92915050565b60006040820190506133826000830161285d565b61338f6020830184612a6b565b92915050565b60006040820190506133a960008301612883565b6133b660208301846121e6565b92915050565b60006102a0820190506133d260008301846128a9565b92915050565b60006020820190506133ed6000830184612a5c565b92915050565b60006040820190506134086000830185612a6b565b6134156020830184612213565b9392505050565b60006040820190506134316000830185612a89565b61343e6020830184612213565b9392505050565b600060608201905061345a6000830186612a89565b6134676020830185612a89565b6134746040830184612213565b949350505050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006134b4826134d1565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600064ffffffffff82169050919050565b6000613517826134f1565b9050919050565b6000613529826134f1565b9050919050565b600061353b826134f1565b9050919050565b600061354d826134f1565b9050919050565b600061355f826134f1565b9050919050565b6000613571826134f1565b9050919050565b6000613583826134f1565b9050919050565b6000613595826134f1565b9050919050565b60006135a7826134f1565b9050919050565b60006135b9826134f1565b9050919050565b60006135cb826134f1565b9050919050565b60006135dd826134f1565b9050919050565b60006135ef826134f1565b9050919050565b6000613601826134f1565b9050919050565b6000613613826134f1565b9050919050565b6000613625826134f1565b9050919050565b6000613637826134f1565b9050919050565b6000613649826134f1565b9050919050565b600061365b826134f1565b9050919050565b600061366d826134f1565b9050919050565b600061367f826134f1565b9050919050565b6000613691826134f1565b9050919050565b60006136a3826134f1565b9050919050565b60006136b5826134f1565b9050919050565b60006136c7826134f1565b9050919050565b60006136d9826134f1565b9050919050565b60006136eb826134f1565b9050919050565b60006136fd826134f1565b9050919050565b600061370f826134f1565b9050919050565b6000613721826134f1565b9050919050565b60005b8381101561374657808201518184015260208101905061372b565b83811115613755576000848401525b50505050565b6000601f19601f8301169050919050565b613775816134a9565b811461378057600080fd5b50565b61378c816134bb565b811461379757600080fd5b50565b6137a3816134f1565b81146137ae57600080fd5b5056fe323032322d31322d3039204d616b657244414f20457865637574697665205370656c6c207c20486173683a203078a26469706673582212203991d84945324ecb98e494da463421f9fb15cadcf88def12e15e86419e87016664736f6c634300060c0033820a95a02ed1b0353abb3062aa5ac0889df0e7b76217a08b8de7dcc77fa2c6139fdcd251a05d94f5f2b2219a9c018b5036dc7bc12c9207666d9628f61b59916f4983c1637b"]} seth-rpc: error: code -32603 seth-rpc: error: data {"data":"0x","message":"Error: Transaction reverted: trying to deploy a contract whose code is too large","txHash":"0x4151eb03dc3d30396c43c2165427f952ed0289c7c50e8c89df0070326a9a547f"} seth-rpc: error: message Error: Transaction reverted: trying to deploy a contract whose code is too large ```

the only difference i found is that my branch is more up-to-date, and i am still in the nix shell. Which i guess should not be the reasons.

valiafetisov commented 1 year ago

I'm also in the nix shell, and your binary is the same as mine. So it's strange that dapp create DssSpell throws an error for you 🤷. Are you executing this on x86 processor? The binary is anyway already in https://github.com/sidestream-tech/unified-auctions-ui/pull/556, deploys well via simulation script, but throws an error during execution. Maybe in order to test, you can try it out with RETH-A branch? Otherwise, let's switch to the active branch PE-1124-2022-12-09 which currently throws an error for me during compilation:

src/DssSpell.t.sol:244:21: ParserError: Expected , but got identifier
            uint256 tin,
                    ^-^
lib/ds-math/src/math.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.
lib/dss-exec-lib/src/CollateralOpts.sol: Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.

make: *** [Makefile:1: all] Error 1
KirillDogadin-std commented 1 year ago

Are you executing this on x86 processor?

no,

rsync or clone the repo to the desired x86 machine (tested with Docker 19.03.12 on Ubuntu 20.04)

The binary is anyway already in https://github.com/sidestream-tech/unified-auctions-ui/pull/556, deploys well via simulation script, but throws an error during execution.

it fails for me as well

> npm run hardhat:simulations                                                                                                                      Y test-goerli-forking 08.Dec.22__14:27 🤡

> auctions-core@1.0.0 hardhat:simulations
> npx hardhat --network testnetwork --config local.hardhat.config.ts run ./simulations/index.ts

✔ Select Simulation › Onboard new collateral
✔ Select the spell you want to deploy › GNO-A onboarding
Deploying spell "GNO-A onboarding"
Forking at the block "16140000"
New RPC endpoint has started on http://localhost:8545
Using wallet with:
     - public key: 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266
     - private key: 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
Spell has been deployed at 0xF66CfDf074D2FFD6A4037be3A669Ed04380Aef2B
New DAI balance: 1000000
Step "Choose spell to deploy" is successfully completed

✔ Press Enter to proceed to the next step "Execute the spell" …
executing spell "0xF66CfDf074D2FFD6A4037be3A669Ed04380Aef2B": minting enough MKR...
New MKR balance: 79131.923819037036948622
executing spell "0xF66CfDf074D2FFD6A4037be3A669Ed04380Aef2B": voting for the spell...
executing spell "0xF66CfDf074D2FFD6A4037be3A669Ed04380Aef2B": scheduling spell...
executing spell "0xF66CfDf074D2FFD6A4037be3A669Ed04380Aef2B": warping time...
executing spell "0xF66CfDf074D2FFD6A4037be3A669Ed04380Aef2B": casting...

/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/@ethersproject/logger/src.ts/index.ts:261
        const error: any = new Error(message);
                           ^
Error: cannot estimate gas; transaction may fail or may require manual gas limit [ See: https://links.ethers.org/v5-errors-UNPREDICTABLE_GAS_LIMIT ] (reason="Error: VM Exception while processing transaction: reverted with reason string 'ds-pause-delegatecall-error'", method="estimateGas", transaction={"from":"0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266","to":"0xF66CfDf074D2FFD6A4037be3A669Ed04380Aef2B","data":"0x96d373e5","accessList":null}, error={"name":"ProviderError","_stack":"ProviderError: HttpProviderError\n    at HttpProvider.request (/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/hardhat/src/internal/core/providers/http.ts:78:19)\n    at AutomaticSenderProvider.request (/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/hardhat/src/internal/core/providers/accounts.ts:341:34)\n    at AutomaticGasProvider.request (/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/hardhat/src/internal/core/providers/gas-providers.ts:135:34)\n    at AutomaticGasPriceProvider.request (/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/hardhat/src/internal/core/providers/gas-providers.ts:153:36)\n    at BackwardsCompatibilityProviderAdapter.send (/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/hardhat/src/internal/core/providers/backwards-compatibility.ts:36:27)\n    at EthersProviderWrapper.send (/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/@nomiclabs/hardhat-ethers/src/internal/ethers-provider-wrapper.ts:13:48)\n    at EthersProviderWrapper.<anonymous> (/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts:601:31)\n    at step (/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:48:23)\n    at Object.next (/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:29:53)\n    at /Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:23:71","code":-32603,"_isProviderError":true,"data":{"message":"Error: VM Exception while processing transaction: reverted with reason string 'ds-pause-delegatecall-error'","data":"0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001b64732d70617573652d64656c656761746563616c6c2d6572726f720000000000"}}, code=UNPREDICTABLE_GAS_LIMIT, version=providers/5.6.8)
    at Logger.makeError (/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/@ethersproject/logger/src.ts/index.ts:261:28)
    at Logger.throwError (/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/@ethersproject/logger/src.ts/index.ts:273:20)
    at checkError (/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts:78:20)
    at EthersProviderWrapper.<anonymous> (/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts:603:20)
    at step (/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:48:23)
    at Object.throw (/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:29:53)
    at rejected (/Users/kirilldogadin/work/unified-auctions-ui/core/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:21:65)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

try it out with RETH-A branch?

let's switch to the active branch PE-1124-2022-12-09

are at this moment not relevant due to the x86 point, right ?

valiafetisov commented 1 year ago

it fails for me as well

In our simulation env it deploys well (see your log excerpt Spell has been deployed) but fails to be casted (which also can be a problem with the compilation)

are at this moment not relevant due to the x86 point, right ?

No idea, just wanted to re-iterate that the instruction was ever tested on x86 server and didn't work for me on M1. You can try to compile RETH-A spell (that definitely worked before) to check your setup.

KirillDogadin-std commented 1 year ago

For RETH-A seems to work

[nix-shell:~/spells]# dapp create DssSpell
++ seth send --create 6101006040523480156200001257600080fd5b5062278d004201604051620000279062000212565b604051809103906000f08015801562000044573d6000803e3d6000fd5b5073da0ab1e0017debcd72be8599041a2aa3ba7e740f73ffffffffffffffffffffffffffffffffffffffff166321f8a7216040518163ffffffff1660e01b815260040162000092906200032f565b60206040518083038186803b158015620000ab57600080fd5b505afa158015620000c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e69190620002dd565b73ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508160c081815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250506040516024016040516020818303038152906040527f61461954000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060019080519060200190620001f592919062000220565b50600080829050803f915081608081815250505050505062000398565b6118c780620014b383390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026357805160ff191683800117855562000294565b8280016001018555821562000294579182015b828111156200029357825182559160200191906001019062000276565b5b509050620002a39190620002a7565b5090565b5b80821115620002c2576000816000905550600101620002a8565b5090565b600081519050620002d7816200037e565b92915050565b600060208284031215620002f057600080fd5b60006200030084828501620002c6565b91505092915050565b7f4d43445f50415553450000000000000000000000000000000000000000000000815250565b6000602082019050620003456000830162000309565b919050565b600062000357826200035e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b62000389816200034a565b81146200039557600080fd5b50565b60805160a05160601c60c05160e05160601c6110a86200040b600039806104a4528061053352806106e9528061078f5250806102f552806106425250806102d1528061035752806103fc528061056f52806107cb528061086d525080610331528061059052806107ec52506110a86000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80637284e4161161008c578063ae8421e111610066578063ae8421e1146101cd578063b0604a26146101eb578063f7992d85146101f5578063fe7d47bb14610213576100ce565b80637284e416146101875780638456cb59146101a557806396d373e5146101c3576100ce565b8062a7029b146100d35780630a7a1c4d146100f15780634665096d1461010f57806351973ec91461012d57806351f910661461014b5780636e832f0714610169575b600080fd5b6100db610231565b6040516100e89190610d9f565b60405180910390f35b6100f96102cf565b6040516101069190610d02565b60405180910390f35b6101176102f3565b6040516101249190610e79565b60405180910390f35b610135610317565b6040516101429190610dc1565b60405180910390f35b61015361032f565b6040516101609190610d84565b60405180910390f35b610171610353565b60405161017e9190610d69565b60405180910390f35b61018f6103f8565b60405161019c9190610df7565b60405180910390f35b6101ad6104a2565b6040516101ba9190610ddc565b60405180910390f35b6101cb6104c6565b005b6101d561062d565b6040516101e29190610d69565b60405180910390f35b6101f3610640565b005b6101fd610863565b60405161020a9190610e79565b60405180910390f35b61021b610869565b6040516102289190610e79565b60405180910390f35b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102c75780601f1061029c576101008083540402835291602001916102c7565b820191906000526020600020905b8154815290600101906020018083116102aa57829003601f168201915b505050505081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b73da0ab1e0017debcd72be8599041a2aa3ba7e740f81565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636e832f076040518163ffffffff1660e01b815260040160206040518083038186803b1580156103bb57600080fd5b505afa1580156103cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f391906109ed565b905090565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637284e4166040518163ffffffff1660e01b815260040160006040518083038186803b15801561046057600080fd5b505afa158015610474573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061049d9190610a57565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600260009054906101000a900460ff1615610516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050d90610e19565b60405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663168ccd677f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060016000546040518563ffffffff1660e01b81526004016105d39493929190610d1d565b600060405180830381600087803b1580156105ed57600080fd5b505af1158015610601573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061062a9190610a16565b50565b600260009054906101000a900460ff1681565b7f00000000000000000000000000000000000000000000000000000000000000004211156106a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069a90610e59565b60405180910390fd5b60008054146106e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106de90610e39565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636a42b8f86040518163ffffffff1660e01b815260040160206040518083038186803b15801561074d57600080fd5b505afa158015610761573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107859190610a98565b42016000819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166346d2fbbb7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000060016000546040518563ffffffff1660e01b815260040161082f9493929190610d1d565b600060405180830381600087803b15801561084957600080fd5b505af115801561085d573d6000803e3d6000fd5b50505050565b60005481565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bf0fbcec6000546040518263ffffffff1660e01b81526004016108c69190610e79565b60206040518083038186803b1580156108de57600080fd5b505afa1580156108f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109169190610a98565b905090565b60008151905061092a81611044565b92915050565b600082601f83011261094157600080fd5b815161095461094f82610ec1565b610e94565b9150808252602083016020830185838301111561097057600080fd5b61097b838284611000565b50505092915050565b600082601f83011261099557600080fd5b81516109a86109a382610eed565b610e94565b915080825260208301602083018583830111156109c457600080fd5b6109cf838284611000565b50505092915050565b6000815190506109e78161105b565b92915050565b6000602082840312156109ff57600080fd5b6000610a0d8482850161091b565b91505092915050565b600060208284031215610a2857600080fd5b600082015167ffffffffffffffff811115610a4257600080fd5b610a4e84828501610930565b91505092915050565b600060208284031215610a6957600080fd5b600082015167ffffffffffffffff811115610a8357600080fd5b610a8f84828501610984565b91505092915050565b600060208284031215610aaa57600080fd5b6000610ab8848285016109d8565b91505092915050565b610aca81610f66565b82525050565b610ad981610f78565b82525050565b610ae881610f84565b82525050565b6000610af982610f2e565b610b038185610f44565b9350610b13818560208601611000565b610b1c81611033565b840191505092915050565b600081546001811660008114610b445760018114610b6a57610bae565b607f6002830416610b558187610f44565b955060ff198316865260208601935050610bae565b60028204610b788187610f44565b9550610b8385610f19565b60005b82811015610ba557815481890152600182019150602081019050610b86565b80880195505050505b505092915050565b610bbf81610fb8565b82525050565b610bce81610fdc565b82525050565b6000610bdf82610f39565b610be98185610f55565b9350610bf9818560208601611000565b610c0281611033565b840191505092915050565b6000610c1a601283610f55565b91507f7370656c6c2d616c72656164792d6361737400000000000000000000000000006000830152602082019050919050565b6000610c5a602583610f55565b91507f54686973207370656c6c2068617320616c7265616479206265656e207363686560008301527f64756c65640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610cc0601983610f55565b91507f5468697320636f6e7472616374206861732065787069726564000000000000006000830152602082019050919050565b610cfc81610fae565b82525050565b6000602082019050610d176000830184610ac1565b92915050565b6000608082019050610d326000830187610ac1565b610d3f6020830186610adf565b8181036040830152610d518185610b27565b9050610d606060830184610cf3565b95945050505050565b6000602082019050610d7e6000830184610ad0565b92915050565b6000602082019050610d996000830184610adf565b92915050565b60006020820190508181036000830152610db98184610aee565b905092915050565b6000602082019050610dd66000830184610bb6565b92915050565b6000602082019050610df16000830184610bc5565b92915050565b60006020820190508181036000830152610e118184610bd4565b905092915050565b60006020820190508181036000830152610e3281610c0d565b9050919050565b60006020820190508181036000830152610e5281610c4d565b9050919050565b60006020820190508181036000830152610e7281610cb3565b9050919050565b6000602082019050610e8e6000830184610cf3565b92915050565b6000604051905081810181811067ffffffffffffffff82111715610eb757600080fd5b8060405250919050565b600067ffffffffffffffff821115610ed857600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff821115610f0457600080fd5b601f19601f8301169050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610f7182610f8e565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610fc382610fca565b9050919050565b6000610fd582610f8e565b9050919050565b6000610fe782610fee565b9050919050565b6000610ff982610f8e565b9050919050565b60005b8381101561101e578082015181840152602081019050611003565b8381111561102d576000848401525b50505050565b6000601f19601f8301169050919050565b61104d81610f78565b811461105857600080fd5b50565b61106481610fae565b811461106f57600080fd5b5056fea264697066735822122094c1414bde0a031a109018279cc910e680895528f3640600934e6173d838fe0064736f6c634300060c0033608060405234801561001057600080fd5b506118a7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063614619541461005c5780636e832f07146100665780637284e41614610084578063bf0fbcec146100a2578063f99e36bc146100d2575b600080fd5b6100646100dc565b005b61006e6101b5565b60405161007b9190611427565b60405180910390f35b61008c6101be565b6040516100999190611442565b60405180910390f35b6100bc60048036038101906100b79190610e83565b6101da565b6040516100c99190611635565b60405180910390f35b6100da6102a9565b005b738de6ddbcd5053d32292aaa0d2105a32d108484a66335329d4c426100ff6101b5565b6040518363ffffffff1660e01b815260040161011c929190611650565b60206040518083038186803b15801561013457600080fd5b505af4158015610148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061016c9190610e5a565b6101ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a29061156b565b60405180910390fd5b6101b36102a9565b565b60006001905090565b6040518060a00160405280606e8152602001611804606e913981565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff64ffffffffff1682111561021057600080fd5b738de6ddbcd5053d32292aaa0d2105a32d108484a663d255745683426102346101b5565b6040518463ffffffff1660e01b815260040161025293929190611679565b60206040518083038186803b15801561026a57600080fd5b505af415801561027e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a29190610eac565b9050919050565b6102b16108d9565b6000738de6ddbcd5053d32292aaa0d2105a32d108484a663a16ed56f6040518163ffffffff1660e01b81526004016102e8906114f2565b60206040518083038186803b15801561030057600080fd5b505af4158015610314573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103389190610e31565b905060008173ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f43d726d6000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103e391906113a2565b6000604051808303816000865af19150503d8060008114610420576040519150601f19603f3d011682016040523d82523d6000602084013e610425565b606091505b50509050600115158115151480156104bc575060008273ffffffffffffffffffffffffffffffffffffffff166347535d7b6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561048257600080fd5b505af1158015610496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ba9190610eac565b145b15610870576000738de6ddbcd5053d32292aaa0d2105a32d108484a663a16ed56f6040518163ffffffff1660e01b81526004016104f8906114d9565b60206040518083038186803b15801561051057600080fd5b505af4158015610524573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105489190610e31565b90506000738de6ddbcd5053d32292aaa0d2105a32d108484a663a16ed56f6040518163ffffffff1660e01b815260040161058190611552565b60206040518083038186803b15801561059957600080fd5b505af41580156105ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d19190610e31565b90508173ffffffffffffffffffffffffffffffffffffffff1663e1f21c6782739f96fe0633ee838d0298e8b8980e6716be81388d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518463ffffffff1660e01b8152600401610644939291906113b9565b600060405180830381600087803b15801561065e57600080fd5b505af1158015610672573d6000803e3d6000fd5b505050506000738de6ddbcd5053d32292aaa0d2105a32d108484a663a16ed56f6040518163ffffffff1660e01b81526004016106ad9061158b565b60206040518083038186803b1580156106c557600080fd5b505af41580156106d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fd9190610e31565b90508073ffffffffffffffffffffffffffffffffffffffff1663be0d56d27f0726cf4161e783ef0043e4998c61ecd70ea3e6f673fd7cf1060130529f849bc26040518263ffffffff1660e01b81526004016107589190611635565b600060405180830381600087803b15801561077257600080fd5b505af1158015610786573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a1739f96fe0633ee838d0298e8b8980e6716be81388d6040518263ffffffff1660e01b81526004016107d5919061150b565b60006040518083038186803b1580156107ed57600080fd5b505af4158015610801573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a1866040518263ffffffff1660e01b815260040161083c919061148b565b60006040518083038186803b15801561085457600080fd5b505af4158015610868573d6000803e3d6000fd5b505050505050505b738de6ddbcd5053d32292aaa0d2105a32d108484a6635f3a7dd76040518163ffffffff1660e01b81526004016108a590611532565b60006040518083038186803b1580156108bd57600080fd5b505af41580156108d1573d6000803e3d6000fd5b505050505050565b6108e16108e3565b565b738de6ddbcd5053d32292aaa0d2105a32d108484a6637571a78e604051806102a001604052807f524554482d410000000000000000000000000000000000000000000000000000815260200173ae78736cd615f374d3085123a210448e74fc639373ffffffffffffffffffffffffffffffffffffffff16815260200173c6424e862f1462281b0a5fac078e4b63006bdebf73ffffffffffffffffffffffffffffffffffffffff1681526020017327ca5e525ea473ed52ea9423cd08ccc081d96a9873ffffffffffffffffffffffffffffffffffffffff16815260200173c59b62afc96cf9737f717b5e5815070c0f15439673ffffffffffffffffffffffffffffffffffffffff16815260200173ee7f0b350aa119b3d05dc733a4621a81972f7d4773ffffffffffffffffffffffffffffffffffffffff168152602001600115158152602001600115158152602001600115158152602001600081526020016103e8600f028152602001620f4240600202815260200161051481526020016b033b2e3ca65dca26e20d5eda8152602001612af881526020016113888152602001611c2081526020016111948152602001614268815260200160fa8152602001600a8152506040518263ffffffff1660e01b8152600401610ac29190611619565b60006040518083038186803b158015610ada57600080fd5b505af4158015610aee573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a663d0bab93373c59b62afc96cf9737f717b5e5815070c0f154396605a6126ac6040518463ffffffff1660e01b8152600401610b44939291906113f0565b60006040518083038186803b158015610b5c57600080fd5b505af4158015610b70573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a173ae78736cd615f374d3085123a210448e74fc63936040518263ffffffff1660e01b8152600401610bbf91906115a4565b60006040518083038186803b158015610bd757600080fd5b505af4158015610beb573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a173ee7f0b350aa119b3d05dc733a4621a81972f7d476040518263ffffffff1660e01b8152600401610c3a91906114b2565b60006040518083038186803b158015610c5257600080fd5b505af4158015610c66573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a173c6424e862f1462281b0a5fac078e4b63006bdebf6040518263ffffffff1660e01b8152600401610cb59190611464565b60006040518083038186803b158015610ccd57600080fd5b505af4158015610ce1573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a17327ca5e525ea473ed52ea9423cd08ccc081d96a986040518263ffffffff1660e01b8152600401610d3091906115cb565b60006040518083038186803b158015610d4857600080fd5b505af4158015610d5c573d6000803e3d6000fd5b50505050738de6ddbcd5053d32292aaa0d2105a32d108484a66319d900a173c59b62afc96cf9737f717b5e5815070c0f1543966040518263ffffffff1660e01b8152600401610dab91906115f2565b60006040518083038186803b158015610dc357600080fd5b505af4158015610dd7573d6000803e3d6000fd5b50505050565b600081519050610dec816117be565b92915050565b600081519050610e01816117d5565b92915050565b600081359050610e16816117ec565b92915050565b600081519050610e2b816117ec565b92915050565b600060208284031215610e4357600080fd5b6000610e5184828501610ddd565b91505092915050565b600060208284031215610e6c57600080fd5b6000610e7a84828501610df2565b91505092915050565b600060208284031215610e9557600080fd5b6000610ea384828501610e07565b91505092915050565b600060208284031215610ebe57600080fd5b6000610ecc84828501610e1c565b91505092915050565b610ede816116f3565b82525050565b610eed816116f3565b82525050565b610efc816116f3565b82525050565b610f0b81611705565b82525050565b610f1a81611705565b82525050565b610f2981611705565b82525050565b610f3881611711565b82525050565b6000610f49826116b0565b610f5381856116c6565b9350610f6381856020860161177a565b80840191505092915050565b610f7881611756565b82525050565b610f8781611768565b82525050565b6000610f98826116bb565b610fa281856116d1565b9350610fb281856020860161177a565b610fbb816117ad565b840191505092915050565b7f4d43445f4a4f494e5f524554485f410000000000000000000000000000000000815250565b7f535441524b4e45545f4441495f4252494447455f4c4547414359000000000000815250565b7f5049505f52455448000000000000000000000000000000000000000000000000815250565b7f535441524b4e45545f455343524f570000000000000000000000000000000000815250565b7f535441524b4e45545f4441495f42524944474500000000000000000000000000815250565b60006110916006836116e2565b91507f312e31342e3300000000000000000000000000000000000000000000000000006000830152602082019050919050565b7f4d43445f44414900000000000000000000000000000000000000000000000000815250565b60006110f76014836116d1565b91507f4f757473696465206f666669636520686f7572730000000000000000000000006000830152602082019050919050565b7f535441524b4e45545f474f565f52454c41590000000000000000000000000000815250565b7f5245544800000000000000000000000000000000000000000000000000000000815250565b7f4d43445f434c49505f524554485f410000000000000000000000000000000000815250565b7f4d43445f434c49505f43414c435f524554485f41000000000000000000000000815250565b6102a0820160008201516111d96000850182610f2f565b5060208201516111ec6020850182610ef3565b5060408201516111ff6040850182610ef3565b5060608201516112126060850182610ef3565b5060808201516112256080850182610ef3565b5060a082015161123860a0850182610ef3565b5060c082015161124b60c0850182610f20565b5060e082015161125e60e0850182610f20565b50610100820151611273610100850182610f20565b50610120820151611288610120850182611384565b5061014082015161129d610140850182611384565b506101608201516112b2610160850182611384565b506101808201516112c7610180850182611384565b506101a08201516112dc6101a0850182611384565b506101c08201516112f16101c0850182611384565b506101e08201516113066101e0850182611384565b5061020082015161131b610200850182611384565b50610220820151611330610220850182611384565b50610240820151611345610240850182611384565b5061026082015161135a610260850182611384565b5061028082015161136f610280850182611384565b50505050565b61137e8161173b565b82525050565b61138d8161173b565b82525050565b61139c81611745565b82525050565b60006113ae8284610f3e565b915081905092915050565b60006060820190506113ce6000830186610ed5565b6113db6020830185610ed5565b6113e86040830184611375565b949350505050565b60006060820190506114056000830186610ee4565b6114126020830185610f6f565b61141f6040830184610f7e565b949350505050565b600060208201905061143c6000830184610f02565b92915050565b6000602082019050818103600083015261145c8184610f8d565b905092915050565b600060408201905061147860008301610fc6565b6114856020830184610ee4565b92915050565b600060408201905061149f60008301610fec565b6114ac6020830184610ee4565b92915050565b60006040820190506114c660008301611012565b6114d36020830184610ee4565b92915050565b60006020820190506114ed60008301611038565b919050565b60006020820190506115066000830161105e565b919050565b600060408201905061151f6000830161105e565b61152c6020830184610ee4565b92915050565b6000602082019050818103600083015261154b81611084565b9050919050565b6000602082019050611566600083016110c4565b919050565b60006020820190508181036000830152611584816110ea565b9050919050565b600060208201905061159f6000830161112a565b919050565b60006040820190506115b860008301611150565b6115c56020830184610ee4565b92915050565b60006040820190506115df60008301611176565b6115ec6020830184610ee4565b92915050565b60006040820190506116066000830161119c565b6116136020830184610ee4565b92915050565b60006102a08201905061162f60008301846111c2565b92915050565b600060208201905061164a6000830184611375565b92915050565b60006040820190506116656000830185611393565b6116726020830184610f11565b9392505050565b600060608201905061168e6000830186611393565b61169b6020830185611393565b6116a86040830184610f11565b949350505050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006116fe8261171b565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600064ffffffffff82169050919050565b60006117618261173b565b9050919050565b60006117738261173b565b9050919050565b60005b8381101561179857808201518184015260208101905061177d565b838111156117a7576000848401525b50505050565b6000601f19601f8301169050919050565b6117c7816116f3565b81146117d257600080fd5b50565b6117de81611705565b81146117e957600080fd5b50565b6117f58161173b565b811461180057600080fd5b5056fe323032322d31302d3236204d616b657244414f20457865637574697665205370656c6c207c20486173683a20307832653866613739646339373032663664336238623033353233666334356334663366393537353161383333653532393538643634313832623065633862326135a26469706673582212203668a2ece3ed57a07f30c0cb9e92f6b0ccef9a01a9e9d47b450e10a27e4d4cca64736f6c634300060c0033 'DssSpell()'
seth-send: Published transaction with 11642 bytes of calldata.
seth-send: 0xe16c9bfc82078ad6650bc7e785605b66ef1ed8414d2b2bd33e4405c5e4a1163d
seth-send: Waiting for transaction receipt...

^[[Cseth-send: Transaction included in block 16140011.