Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Onboard GNO token #567

Open
1 task
LukSteib opened this issue Dec 8, 2022 · 9 comments
Open
1 task

Onboard GNO token #567

LukSteib opened this issue Dec 8, 2022 · 9 comments

Comments

@LukSteib
Copy link
Contributor

LukSteib commented Dec 8, 2022

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

  • Onboard GNO token based on mainnet spell simulation
@valiafetisov
Copy link
Contributor

@KirillDogadin-std please follow proposed instructions and

  • have latest bytecode of the spell posted in the Onboard new GNO-A collateral #556
  • report any problems you encounter there or in the PR
  • fix inconsistencies or unclarity of the instructions in the readme
    • or/and propose a better way to test spell
    • open a separate PR for it

@KirillDogadin-std
Copy link
Contributor

Clarifications needed:

have latest bytecode of the spell posted in the

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

  • reproduce the readme process, produce a compiledSpells.json file while following the readme
  • OR checkout the branch you've linked and run the simulation as the readme says

@KirillDogadin-std
Copy link
Contributor

KirillDogadin-std commented Dec 8, 2022

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
Copy link
Contributor

valiafetisov commented Dec 8, 2022

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
$ 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: <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.
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
Copy link
Contributor

KirillDogadin-std commented Dec 8, 2022

my output is
[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: <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.
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
Copy link
Contributor

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 #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
Copy link
Contributor

KirillDogadin-std commented Dec 8, 2022

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 brackets content made me believe that it would work in docker. I would duplicate the mention x86 in the brackets.

  • i do not have access to x86 machine: nor work-book, nor personal belongings.

The binary is anyway already in #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
Copy link
Contributor

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
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants